From 566ba087469947df7560d55681411a0e5e5f2204 Mon Sep 17 00:00:00 2001 From: pavanvsoratur Date: Sat, 13 Mar 2021 17:12:57 +0530 Subject: [PATCH] first-deploy --- .babelrc | 3 + .gitignore | 24 + migrations/1_initial_migration.js | 5 + migrations/2_deploy_contracts.js | 5 + package-lock.json | 47219 ++++++++++ package.json | 44 + public/index.html | 57 + src/abis/Address.json | 77558 +++++++++++++++ src/abis/Context.json | 77557 +++++++++++++++ src/abis/CryptoBoyStruct.json | 5740 ++ src/abis/CryptoBoys.json | 23130 +++++ src/abis/DateAndTime.json | 20435 ++++ src/abis/DateTime.json | 20503 ++++ src/abis/ERC165.json | 77587 +++++++++++++++ src/abis/ERC721.json | 78030 ++++++++++++++++ src/abis/EnumerableMap.json | 77558 +++++++++++++++ src/abis/EnumerableSet.json | 77558 +++++++++++++++ src/abis/IERC165.json | 77582 +++++++++++++++ src/abis/IERC721.json | 77886 +++++++++++++++ src/abis/IERC721Enumerable.json | 77941 +++++++++++++++ src/abis/IERC721Metadata.json | 77930 +++++++++++++++ src/abis/IERC721Receiver.json | 77598 +++++++++++++++ src/abis/Migrations.json | 1454 + src/abis/SafeMath.json | 77558 +++++++++++++++ src/abis/Strings.json | 77558 +++++++++++++++ src/bootstrap.min.css | 12 + .../AccountDetails/AccountDetails.jsx | 27 + .../AllCryptoBoys/AllCryptoBoys.jsx | 69 + src/components/App.css | 7 + src/components/App.js | 374 + .../ConnectMetamask/ConnectToMetamask.jsx | 31 + src/components/ConnectMetamask/metamask.svg | 1 + .../ContractNotDeployed.jsx | 16 + .../CryptoBoyNFTDetails.jsx | 176 + .../CryptoBoyNFTImage/CryptoBoyNFTImage.jsx | 155 + .../FormAndPreview/FormAndPreview.jsx | 506 + src/components/Loading/Loading.jsx | 8 + src/components/Loading/loading.gif | Bin 0 -> 30624 bytes .../MyCryptoBoyNFTDetails.jsx | 41 + src/components/MyCryptoBoys/MyCryptoBoys.jsx | 73 + src/components/Navbar/Navbar.jsx | 55 + src/components/Queries/Queries.jsx | 129 + src/contracts/CryptoBoys.sol | 137 + src/contracts/ERC721.sol | 1776 + src/contracts/Migrations.sol | 24 + src/index.js | 13 + src/serviceWorker.js | 135 + test/CryptoBoys.test.js | 487 + truffle-config.js | 23 + 49 files changed, 1132795 insertions(+) create mode 100644 .babelrc create mode 100644 .gitignore create mode 100644 migrations/1_initial_migration.js create mode 100644 migrations/2_deploy_contracts.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100755 public/index.html create mode 100644 src/abis/Address.json create mode 100644 src/abis/Context.json create mode 100644 src/abis/CryptoBoyStruct.json create mode 100644 src/abis/CryptoBoys.json create mode 100644 src/abis/DateAndTime.json create mode 100644 src/abis/DateTime.json create mode 100644 src/abis/ERC165.json create mode 100644 src/abis/ERC721.json create mode 100644 src/abis/EnumerableMap.json create mode 100644 src/abis/EnumerableSet.json create mode 100644 src/abis/IERC165.json create mode 100644 src/abis/IERC721.json create mode 100644 src/abis/IERC721Enumerable.json create mode 100644 src/abis/IERC721Metadata.json create mode 100644 src/abis/IERC721Receiver.json create mode 100644 src/abis/Migrations.json create mode 100644 src/abis/SafeMath.json create mode 100644 src/abis/Strings.json create mode 100644 src/bootstrap.min.css create mode 100644 src/components/AccountDetails/AccountDetails.jsx create mode 100644 src/components/AllCryptoBoys/AllCryptoBoys.jsx create mode 100644 src/components/App.css create mode 100755 src/components/App.js create mode 100644 src/components/ConnectMetamask/ConnectToMetamask.jsx create mode 100644 src/components/ConnectMetamask/metamask.svg create mode 100644 src/components/ContractNotDeployed/ContractNotDeployed.jsx create mode 100644 src/components/CryptoBoyNFTDetails/CryptoBoyNFTDetails.jsx create mode 100644 src/components/CryptoBoyNFTImage/CryptoBoyNFTImage.jsx create mode 100644 src/components/FormAndPreview/FormAndPreview.jsx create mode 100644 src/components/Loading/Loading.jsx create mode 100644 src/components/Loading/loading.gif create mode 100644 src/components/MyCryptoBoyNFTDetails/MyCryptoBoyNFTDetails.jsx create mode 100644 src/components/MyCryptoBoys/MyCryptoBoys.jsx create mode 100644 src/components/Navbar/Navbar.jsx create mode 100644 src/components/Queries/Queries.jsx create mode 100644 src/contracts/CryptoBoys.sol create mode 100644 src/contracts/ERC721.sol create mode 100644 src/contracts/Migrations.sol create mode 100755 src/index.js create mode 100755 src/serviceWorker.js create mode 100644 test/CryptoBoys.test.js create mode 100644 truffle-config.js diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..ce6eb60 --- /dev/null +++ b/.babelrc @@ -0,0 +1,3 @@ +{ + "presets": ["es2015", "stage-2", "stage-3"] +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8692cf6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/migrations/1_initial_migration.js b/migrations/1_initial_migration.js new file mode 100644 index 0000000..ee2135d --- /dev/null +++ b/migrations/1_initial_migration.js @@ -0,0 +1,5 @@ +const Migrations = artifacts.require("Migrations"); + +module.exports = function(deployer) { + deployer.deploy(Migrations); +}; diff --git a/migrations/2_deploy_contracts.js b/migrations/2_deploy_contracts.js new file mode 100644 index 0000000..86d8c15 --- /dev/null +++ b/migrations/2_deploy_contracts.js @@ -0,0 +1,5 @@ +const CryptoBoys = artifacts.require("CryptoBoys"); + +module.exports = async function(deployer) { + await deployer.deploy(CryptoBoys); +}; diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..a48b490 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,47219 @@ +{ + "name": "cryptoboys", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "cryptoboys", + "version": "0.1.0", + "dependencies": { + "@openzeppelin/contracts": "^3.4.1", + "babel-polyfill": "6.26.0", + "babel-preset-env": "1.7.0", + "babel-preset-es2015": "6.24.1", + "babel-preset-stage-2": "6.24.1", + "babel-preset-stage-3": "6.24.1", + "babel-register": "6.26.0", + "bootstrap": "4.3.1", + "chai": "4.2.0", + "chai-as-promised": "7.1.1", + "chai-bignumber": "3.0.0", + "dayjs": "^1.10.4", + "ipfs-http-client": "^49.0.2", + "react": "16.8.4", + "react-bootstrap": "1.0.0-beta.5", + "react-dom": "16.8.4", + "react-router-dom": "^5.2.0", + "react-scripts": "2.1.3", + "truffle": "5.0.5", + "truffle-flattener": "^1.5.0", + "web3": "1.0.0-beta.55" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dependencies": { + "@babel/highlight": "^7.12.13" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.8.tgz", + "integrity": "sha512-EaI33z19T4qN3xLXsGf48M2cDqa6ei9tPZlfLdb2HC+e/cFtREiRd8hdSqDbwdLB0/+gLwqJmCYASH0z2bUdog==" + }, + "node_modules/@babel/core": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.10.tgz", + "integrity": "sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.9", + "@babel/helper-compilation-targets": "^7.13.10", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helpers": "^7.13.10", + "@babel/parser": "^7.13.10", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", + "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "dependencies": { + "@babel/types": "^7.13.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/generator/node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", + "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", + "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz", + "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==", + "dependencies": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "^6.3.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dependencies": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.10.tgz", + "integrity": "sha512-YV7r2YxdTUaw84EwNkyrRke/TJHR/UXGiyvACRqvdVJ2/syV2rQuJNnaRLSuYiop8cMRXOgseTGoJCWX0q2fFg==", + "dependencies": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz", + "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "regexpu-core": "^4.7.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/regjsparser": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.7.tgz", + "integrity": "sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ==", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/@babel/helper-define-map": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.12.13.tgz", + "integrity": "sha512-Buu0cZUjCU+WkFi6ZCSr2ONHuDTcQOJGNnXs/lzepONbMyIZ3oDHG4ftrzNK5vGz6ktNmelTRsTFIQQ+ALsIhg==", + "dependencies": { + "@babel/helper-function-name": "^7.12.13", + "@babel/types": "^7.12.13", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz", + "integrity": "sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==", + "dependencies": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0-0" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/@babel/helper-define-polyfill-provider/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz", + "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==", + "dependencies": { + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "dependencies": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz", + "integrity": "sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==", + "dependencies": { + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", + "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", + "dependencies": { + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", + "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz", + "integrity": "sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==", + "dependencies": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==" + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", + "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-wrap-function": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", + "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", + "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "dependencies": { + "@babel/types": "^7.12.1" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==" + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", + "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", + "dependencies": { + "@babel/helper-function-name": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", + "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", + "dependencies": { + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.10.tgz", + "integrity": "sha512-0s7Mlrw9uTWkYua7xWr99Wpk2bnGa0ANleKfksYAES8LpWH4gW1OUr42vqKNf0us5UQNfru2wPqMqRITzq/SIQ==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz", + "integrity": "sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz", + "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.3.0.tgz", + "integrity": "sha512-3W/oCUmsO43FmZIqermmq6TKaRSYhmh/vybPfVFwQWdSb8xwki38uAIvknCRzuyHRuYfCYmJzL9or1v0AffPjg==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.3.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-decorators": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-dynamic-import": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", + "integrity": "sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", + "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz", + "integrity": "sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz", + "integrity": "sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz", + "integrity": "sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-numeric-separator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", + "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz", + "integrity": "sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==", + "dependencies": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-compilation-targets": "^7.13.8", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz", + "integrity": "sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-chaining": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.8.tgz", + "integrity": "sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-private-methods": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz", + "integrity": "sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", + "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz", + "integrity": "sha512-Rw6aIXGuqDLr6/LoBBYE57nKOzQpz/aDkKlMqEwH+Vp0MXbG6H/TfRjaY343LKxzAKAMXIHsQ8JzaZKuDZ9MwA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz", + "integrity": "sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz", + "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz", + "integrity": "sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz", + "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", + "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", + "dependencies": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", + "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz", + "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz", + "integrity": "sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13", + "globals": "^11.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz", + "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz", + "integrity": "sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", + "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", + "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", + "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.2.3.tgz", + "integrity": "sha512-xnt7UIk9GYZRitqCnsVMjQK1O2eKZwFB3CvvHjf5SGx6K6vr/MScCKQDnf1DxRaj501e3pXjti+inbSXX2ZUoQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", + "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", + "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", + "dependencies": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", + "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", + "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", + "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", + "dependencies": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", + "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz", + "integrity": "sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==", + "dependencies": { + "@babel/helper-hoist-variables": "^7.13.0", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-identifier": "^7.12.11", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", + "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", + "dependencies": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", + "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", + "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", + "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz", + "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", + "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.13.10.tgz", + "integrity": "sha512-E+aCW9j7mLq01tOuGV08YzLBt+vSyr4bOPT75B6WrAlrUfmOYOZ/yWk847EH0dv0xXiCihWLEmlX//O30YhpIw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz", + "integrity": "sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.17.tgz", + "integrity": "sha512-mwaVNcXV+l6qJOuRhpdTEj8sT/Z0owAVWf9QujTZ0d2ye9X/K+MTOTSizcgKOj18PGnTc/7g1I4+cIUjsKhBcw==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/types": "^7.12.17" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz", + "integrity": "sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ==", + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.12.17" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.13.tgz", + "integrity": "sha512-FXYw98TTJ125GVCCkFLZXlZ1qGcsYqNQhVBQcZjyrwf8FEUtVfKIoidnO8S0q+KBQpDYNTmiGo1gn67Vti04lQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.13.tgz", + "integrity": "sha512-O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz", + "integrity": "sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz", + "integrity": "sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==", + "dependencies": { + "regenerator-transform": "^0.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator/node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", + "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz", + "integrity": "sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw==", + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "resolve": "^1.8.1", + "semver": "^5.5.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", + "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz", + "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", + "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz", + "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.13.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", + "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz", + "integrity": "sha512-elQEwluzaU8R8dbVuW2Q2Y8Nznf7hnjM7+DSCd14Lo5fF63C9qNLbwZYbmZrtV9/ySpSUpkRpQXvJb6xyu4hCQ==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-typescript": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", + "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", + "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.10.tgz", + "integrity": "sha512-nOsTScuoRghRtUsRr/c69d042ysfPHcu+KOB4A9aAO9eJYqrkat+LF8G1yp1HD18QiwixT2CisZTr/0b3YZPXQ==", + "dependencies": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-compilation-targets": "^7.13.10", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-proposal-async-generator-functions": "^7.13.8", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-dynamic-import": "^7.13.8", + "@babel/plugin-proposal-export-namespace-from": "^7.12.13", + "@babel/plugin-proposal-json-strings": "^7.13.8", + "@babel/plugin-proposal-logical-assignment-operators": "^7.13.8", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", + "@babel/plugin-proposal-numeric-separator": "^7.12.13", + "@babel/plugin-proposal-object-rest-spread": "^7.13.8", + "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.8", + "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.12.13", + "@babel/plugin-transform-arrow-functions": "^7.13.0", + "@babel/plugin-transform-async-to-generator": "^7.13.0", + "@babel/plugin-transform-block-scoped-functions": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.12.13", + "@babel/plugin-transform-classes": "^7.13.0", + "@babel/plugin-transform-computed-properties": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.13.0", + "@babel/plugin-transform-dotall-regex": "^7.12.13", + "@babel/plugin-transform-duplicate-keys": "^7.12.13", + "@babel/plugin-transform-exponentiation-operator": "^7.12.13", + "@babel/plugin-transform-for-of": "^7.13.0", + "@babel/plugin-transform-function-name": "^7.12.13", + "@babel/plugin-transform-literals": "^7.12.13", + "@babel/plugin-transform-member-expression-literals": "^7.12.13", + "@babel/plugin-transform-modules-amd": "^7.13.0", + "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/plugin-transform-modules-systemjs": "^7.13.8", + "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", + "@babel/plugin-transform-new-target": "^7.12.13", + "@babel/plugin-transform-object-super": "^7.12.13", + "@babel/plugin-transform-parameters": "^7.13.0", + "@babel/plugin-transform-property-literals": "^7.12.13", + "@babel/plugin-transform-regenerator": "^7.12.13", + "@babel/plugin-transform-reserved-words": "^7.12.13", + "@babel/plugin-transform-shorthand-properties": "^7.12.13", + "@babel/plugin-transform-spread": "^7.13.0", + "@babel/plugin-transform-sticky-regex": "^7.12.13", + "@babel/plugin-transform-template-literals": "^7.13.0", + "@babel/plugin-transform-typeof-symbol": "^7.12.13", + "@babel/plugin-transform-unicode-escapes": "^7.12.13", + "@babel/plugin-transform-unicode-regex": "^7.12.13", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.13.0", + "babel-plugin-polyfill-corejs2": "^0.1.4", + "babel-plugin-polyfill-corejs3": "^0.1.3", + "babel-plugin-polyfill-regenerator": "^0.1.2", + "core-js-compat": "^3.9.0", + "semver": "^6.3.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.13.tgz", + "integrity": "sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-transform-react-display-name": "^7.12.13", + "@babel/plugin-transform-react-jsx": "^7.12.13", + "@babel/plugin-transform-react-jsx-development": "^7.12.12", + "@babel/plugin-transform-react-pure-annotations": "^7.12.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.1.0.tgz", + "integrity": "sha512-LYveByuF9AOM8WrsNne5+N79k1YxjNB6gmpCQsnuSBAcV8QUeB+ZUxQzL7Rz7HksPbahymKkq2qBR+o36ggFZA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/runtime/node_modules/regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "node_modules/@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/traverse": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@babel/types/node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/@csstools/convert-colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", + "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/@hypnosphi/create-react-context": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@hypnosphi/create-react-context/-/create-react-context-0.3.1.tgz", + "integrity": "sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A==", + "dependencies": { + "gud": "^1.0.0", + "warning": "^4.0.3" + }, + "peerDependencies": { + "prop-types": "^15.0.0", + "react": ">=0.14.0" + } + }, + "node_modules/@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dependencies": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@multiformats/base-x": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", + "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" + }, + "node_modules/@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@openzeppelin/contracts": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.1.tgz", + "integrity": "sha512-cUriqMauq1ylzP2TxePNdPqkwI7Le3Annh4K9rrpvKfSBB/bdW+Iu1ihBaTIABTAAJ85LmKL5SSPPL9ry8d1gQ==" + }, + "node_modules/@react-bootstrap/react-popper": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@react-bootstrap/react-popper/-/react-popper-1.2.1.tgz", + "integrity": "sha512-4l3q7LcZEhrSkI4d3Ie3g4CdrXqqTexXX4PFT45CB0z5z2JUbaxgRwKNq7r5j2bLdVpZm+uvUGqxJw8d9vgbJQ==", + "dependencies": { + "babel-runtime": "6.x.x", + "create-react-context": "^0.2.1", + "popper.js": "^1.14.4", + "prop-types": "^15.6.1", + "typed-styles": "^0.0.5", + "warning": "^3.0.0" + }, + "peerDependencies": { + "react": "0.14.x || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@react-bootstrap/react-popper/node_modules/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/@resolver-engine/core": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@resolver-engine/core/-/core-0.2.1.tgz", + "integrity": "sha512-nsLQHmPJ77QuifqsIvqjaF5B9aHnDzJjp73Q1z6apY3e9nqYrx4Dtowhpsf7Jwftg/XzVDEMQC+OzUBNTS+S1A==", + "dependencies": { + "debug": "^3.1.0", + "request": "^2.85.0" + } + }, + "node_modules/@resolver-engine/core/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@resolver-engine/core/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/@resolver-engine/fs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.2.1.tgz", + "integrity": "sha512-7kJInM1Qo2LJcKyDhuYzh9ZWd+mal/fynfL9BNjWOiTcOpX+jNfqb/UmGUqros5pceBITlWGqS4lU709yHFUbg==", + "dependencies": { + "@resolver-engine/core": "^0.2.1", + "debug": "^3.1.0" + } + }, + "node_modules/@resolver-engine/fs/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@resolver-engine/fs/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/@resolver-engine/imports": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.2.2.tgz", + "integrity": "sha512-u5/HUkvo8q34AA+hnxxqqXGfby5swnH0Myw91o3Sm2TETJlNKXibFGSKBavAH+wvWdBi4Z5gS2Odu0PowgVOUg==", + "dependencies": { + "@resolver-engine/core": "^0.2.1", + "debug": "^3.1.0", + "hosted-git-info": "^2.6.0" + } + }, + "node_modules/@resolver-engine/imports-fs": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.2.2.tgz", + "integrity": "sha512-gFCgMvCwyppjwq0UzIjde/WI+yDs3oatJhozG9xdjJdewwtd7LiF0T5i9lrHAUtqrQbqoFE4E+ZMRVHWpWHpKQ==", + "dependencies": { + "@resolver-engine/fs": "^0.2.1", + "@resolver-engine/imports": "^0.2.2", + "debug": "^3.1.0" + } + }, + "node_modules/@resolver-engine/imports-fs/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@resolver-engine/imports-fs/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/@resolver-engine/imports/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@resolver-engine/imports/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/@solidity-parser/parser": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.8.2.tgz", + "integrity": "sha512-8LySx3qrNXPgB5JiULfG10O3V7QTxI/TLzSw5hFQhXWSkVxZBAv4rZQ0sYgLEbc8g3L2lmnujj1hKul38Eu5NQ==" + }, + "node_modules/@svgr/core": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-2.4.1.tgz", + "integrity": "sha512-2i1cUbjpKt1KcIP05e10vkmu9Aedp32EFqVcSQ08onbB8lVxJqMPci3Hr54aI14S9cLg4JdcpO0D35HHUtT8oQ==", + "dependencies": { + "camelcase": "^5.0.0", + "cosmiconfig": "^5.0.6", + "h2x-core": "^1.1.0", + "h2x-plugin-jsx": "^1.1.0", + "merge-deep": "^3.0.2", + "prettier": "^1.14.2", + "svgo": "^1.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@svgr/webpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-2.4.1.tgz", + "integrity": "sha512-sMHYq0zbMtSHcc9kVfkYI2zrl88u4mKGyQLgKt7r+ul5nITcncm/EPBhzEUrJY5izdlaU6EvyH8zOhZnfaSmOA==", + "dependencies": { + "@babel/core": "^7.0.1", + "@babel/plugin-transform-react-constant-elements": "^7.0.0", + "@babel/preset-env": "^7.0.0", + "@babel/preset-react": "^7.0.0", + "@svgr/core": "^2.4.1", + "loader-utils": "^1.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/node": { + "version": "10.17.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.55.tgz", + "integrity": "sha512-koZJ89uLZufDvToeWO5BrC4CR4OUfHnUz2qoPs/daQH6qq3IN62QFxCTZ+bKaCE0xaoCAJYE4AXre8AbghCrhg==" + }, + "node_modules/@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" + }, + "node_modules/@types/secp256k1": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz", + "integrity": "sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/tapable": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.2.tgz", + "integrity": "sha512-42zEJkBpNfMEAvWR5WlwtTH22oDzcMjFsL9gDGExwF8X8WvAiw7Vwop7hPw03QT8TKfec83LwbHj6SvpqM4ELQ==" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.6.tgz", + "integrity": "sha512-8nkZS48EVsMUU0v6F1LCIOw4RYWLm2plMtbhFTjNgeXmsTNLuU3xTRtnljt9BFQB+iPbLRobkNrCWftWnNC7wQ==", + "dependencies": { + "@webassemblyjs/helper-module-context": "1.7.6", + "@webassemblyjs/helper-wasm-bytecode": "1.7.6", + "@webassemblyjs/wast-parser": "1.7.6", + "mamacro": "^0.0.3" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.6.tgz", + "integrity": "sha512-VBOZvaOyBSkPZdIt5VBMg3vPWxouuM13dPXGWI1cBh3oFLNcFJ8s9YA7S9l4mPI7+Q950QqOmqj06oa83hNWBA==" + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.6.tgz", + "integrity": "sha512-SCzhcQWHXfrfMSKcj8zHg1/kL9kb3aa5TN4plc/EREOs5Xop0ci5bdVBApbk2yfVi8aL+Ly4Qpp3/TRAUInjrg==" + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.6.tgz", + "integrity": "sha512-1/gW5NaGsEOZ02fjnFiU8/OEEXU1uVbv2um0pQ9YVL3IHSkyk6xOwokzyqqO1qDZQUAllb+V8irtClPWntbVqw==" + }, + "node_modules/@webassemblyjs/helper-code-frame": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.6.tgz", + "integrity": "sha512-+suMJOkSn9+vEvDvgyWyrJo5vJsWSDXZmJAjtoUq4zS4eqHyXImpktvHOZwXp1XQjO5H+YQwsBgqTQEc0J/5zg==", + "dependencies": { + "@webassemblyjs/wast-printer": "1.7.6" + } + }, + "node_modules/@webassemblyjs/helper-fsm": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.6.tgz", + "integrity": "sha512-HCS6KN3wgxUihGBW7WFzEC/o8Eyvk0d56uazusnxXthDPnkWiMv+kGi9xXswL2cvfYfeK5yiM17z2K5BVlwypw==" + }, + "node_modules/@webassemblyjs/helper-module-context": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.6.tgz", + "integrity": "sha512-e8/6GbY7OjLM+6OsN7f2krC2qYVNaSr0B0oe4lWdmq5sL++8dYDD1TFbD1TdAdWMRTYNr/Qq7ovXWzia2EbSjw==", + "dependencies": { + "mamacro": "^0.0.3" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.6.tgz", + "integrity": "sha512-PzYFCb7RjjSdAOljyvLWVqd6adAOabJW+8yRT+NWhXuf1nNZWH+igFZCUK9k7Cx7CsBbzIfXjJc7u56zZgFj9Q==" + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.6.tgz", + "integrity": "sha512-3GS628ppDPSuwcYlQ7cDCGr4W2n9c4hLzvnRKeuz+lGsJSmc/ADVoYpm1ts2vlB1tGHkjtQMni+yu8mHoMlKlA==", + "dependencies": { + "@webassemblyjs/ast": "1.7.6", + "@webassemblyjs/helper-buffer": "1.7.6", + "@webassemblyjs/helper-wasm-bytecode": "1.7.6", + "@webassemblyjs/wasm-gen": "1.7.6" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.6.tgz", + "integrity": "sha512-V4cIp0ruyw+hawUHwQLn6o2mFEw4t50tk530oKsYXQhEzKR+xNGDxs/SFFuyTO7X3NzEu4usA3w5jzhl2RYyzQ==", + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.6.tgz", + "integrity": "sha512-ojdlG8WpM394lBow4ncTGJoIVZ4aAtNOWHhfAM7m7zprmkVcKK+2kK5YJ9Bmj6/ketTtOn7wGSHCtMt+LzqgYQ==", + "dependencies": { + "@xtuc/long": "4.2.1" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.6.tgz", + "integrity": "sha512-oId+tLxQ+AeDC34ELRYNSqJRaScB0TClUU6KQfpB8rNT6oelYlz8axsPhf6yPTg7PBJ/Z5WcXmUYiHEWgbbHJw==" + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.6.tgz", + "integrity": "sha512-pTNjLO3o41v/Vz9VFLl+I3YLImpCSpodFW77pNoH4agn5I6GgSxXHXtvWDTvYJFty0jSeXZWLEmbaSIRUDlekg==", + "dependencies": { + "@webassemblyjs/ast": "1.7.6", + "@webassemblyjs/helper-buffer": "1.7.6", + "@webassemblyjs/helper-wasm-bytecode": "1.7.6", + "@webassemblyjs/helper-wasm-section": "1.7.6", + "@webassemblyjs/wasm-gen": "1.7.6", + "@webassemblyjs/wasm-opt": "1.7.6", + "@webassemblyjs/wasm-parser": "1.7.6", + "@webassemblyjs/wast-printer": "1.7.6" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.6.tgz", + "integrity": "sha512-mQvFJVumtmRKEUXMohwn8nSrtjJJl6oXwF3FotC5t6e2hlKMh8sIaW03Sck2MDzw9xPogZD7tdP5kjPlbH9EcQ==", + "dependencies": { + "@webassemblyjs/ast": "1.7.6", + "@webassemblyjs/helper-wasm-bytecode": "1.7.6", + "@webassemblyjs/ieee754": "1.7.6", + "@webassemblyjs/leb128": "1.7.6", + "@webassemblyjs/utf8": "1.7.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.6.tgz", + "integrity": "sha512-go44K90fSIsDwRgtHhX14VtbdDPdK2sZQtZqUcMRvTojdozj5tLI0VVJAzLCfz51NOkFXezPeVTAYFqrZ6rI8Q==", + "dependencies": { + "@webassemblyjs/ast": "1.7.6", + "@webassemblyjs/helper-buffer": "1.7.6", + "@webassemblyjs/wasm-gen": "1.7.6", + "@webassemblyjs/wasm-parser": "1.7.6" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.6.tgz", + "integrity": "sha512-t1T6TfwNY85pDA/HWPA8kB9xA4sp9ajlRg5W7EKikqrynTyFo+/qDzIpvdkOkOGjlS6d4n4SX59SPuIayR22Yg==", + "dependencies": { + "@webassemblyjs/ast": "1.7.6", + "@webassemblyjs/helper-api-error": "1.7.6", + "@webassemblyjs/helper-wasm-bytecode": "1.7.6", + "@webassemblyjs/ieee754": "1.7.6", + "@webassemblyjs/leb128": "1.7.6", + "@webassemblyjs/utf8": "1.7.6" + } + }, + "node_modules/@webassemblyjs/wast-parser": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.6.tgz", + "integrity": "sha512-1MaWTErN0ziOsNUlLdvwS+NS1QWuI/kgJaAGAMHX8+fMJFgOJDmN/xsG4h/A1Gtf/tz5VyXQciaqHZqp2q0vfg==", + "dependencies": { + "@webassemblyjs/ast": "1.7.6", + "@webassemblyjs/floating-point-hex-parser": "1.7.6", + "@webassemblyjs/helper-api-error": "1.7.6", + "@webassemblyjs/helper-code-frame": "1.7.6", + "@webassemblyjs/helper-fsm": "1.7.6", + "@xtuc/long": "4.2.1", + "mamacro": "^0.0.3" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.6.tgz", + "integrity": "sha512-vHdHSK1tOetvDcl1IV1OdDeGNe/NDDQ+KzuZHMtqTVP1xO/tZ/IKNpj5BaGk1OYFdsDWQqb31PIwdEyPntOWRQ==", + "dependencies": { + "@webassemblyjs/ast": "1.7.6", + "@webassemblyjs/wast-parser": "1.7.6", + "@xtuc/long": "4.2.1" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "node_modules/@xtuc/long": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", + "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==" + }, + "node_modules/@zxing/text-encoding": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "optional": true + }, + "node_modules/abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-dynamic-import": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", + "dependencies": { + "acorn": "^5.0.0" + } + }, + "node_modules/acorn-dynamic-import/node_modules/acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz", + "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==", + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "peerDependencies": { + "ajv": ">=5.0.0" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" + }, + "node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/any-signal": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", + "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", + "dependencies": { + "abort-controller": "^3.0.0", + "native-abort-controller": "^1.0.3" + } + }, + "node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/app-module-path": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", + "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=" + }, + "node_modules/append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "dependencies": { + "default-require-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "dependencies": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" + }, + "node_modules/array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" + }, + "node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "node_modules/array-includes": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" + }, + "node_modules/array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" + }, + "node_modules/astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "dependencies": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + }, + "node_modules/autoprefixer/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/autoprefixer/node_modules/browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dependencies": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/autoprefixer/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/autoprefixer/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/autoprefixer/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/autoprefixer/node_modules/postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, + "node_modules/autoprefixer/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/autoprefixer/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "node_modules/axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" + }, + "node_modules/babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dependencies": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "node_modules/babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "node_modules/babel-eslint": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-9.0.0.tgz", + "integrity": "sha512-itv1MwE3TMbY0QtNfeL7wzak1mV47Uy+n6HtSOO4Xd7rvmO+tsGQSgyOEEgo6Y2vHZKZphaoelNeSVj4vkLA1g==", + "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/babel-extract-comments": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz", + "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==", + "dependencies": { + "babylon": "^6.18.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dependencies": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "node_modules/babel-helper-bindify-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", + "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dependencies": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dependencies": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-explode-class": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", + "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "dependencies": { + "babel-helper-bindify-decorators": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dependencies": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dependencies": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-jest": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-23.6.0.tgz", + "integrity": "sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew==", + "dependencies": { + "babel-plugin-istanbul": "^4.1.6", + "babel-preset-jest": "^23.2.0" + }, + "peerDependencies": { + "babel-core": "^6.0.0 || ^7.0.0-0" + } + }, + "node_modules/babel-loader": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.4.tgz", + "integrity": "sha512-fhBhNkUToJcW9nV46v8w87AJOwAJDz84c1CL57n3Stj73FANM/b9TbCUK4YhdOwEyZ+OxhYpdeZDNzSI29Firw==", + "dependencies": { + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1", + "util.promisify": "^1.0.0" + }, + "engines": { + "node": ">= 6.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", + "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", + "dependencies": { + "babel-plugin-syntax-object-rest-spread": "^6.13.0", + "find-up": "^2.1.0", + "istanbul-lib-instrument": "^1.10.1", + "test-exclude": "^4.2.1" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz", + "integrity": "sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=" + }, + "node_modules/babel-plugin-macros": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.5.0.tgz", + "integrity": "sha512-BWw0lD0kVZAXRD3Od1kMrdmfudqzDzYv2qrN3l2ISR1HVp1EgLKfbOrYV9xmY5k3qx3RIu5uPAUZZZHpo0o5Iw==", + "dependencies": { + "cosmiconfig": "^5.0.5", + "resolve": "^1.8.1" + } + }, + "node_modules/babel-plugin-named-asset-import": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.7.tgz", + "integrity": "sha512-squySRkf+6JGnvjoUtDEjSREJEBirnXi9NqP6rjSYsylxQxqBTz+pkmf395i9E2zsvmYUaI40BHo6SqZUdydlw==", + "peerDependencies": { + "@babel/core": "^7.1.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.10.tgz", + "integrity": "sha512-DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA==", + "dependencies": { + "@babel/compat-data": "^7.13.0", + "@babel/helper-define-polyfill-provider": "^0.1.5", + "semver": "^6.1.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz", + "integrity": "sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.1.5", + "core-js-compat": "^3.8.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.6.tgz", + "integrity": "sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg==", + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.1.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" + }, + "node_modules/babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=" + }, + "node_modules/babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=" + }, + "node_modules/babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=" + }, + "node_modules/babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=" + }, + "node_modules/babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" + }, + "node_modules/babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" + }, + "node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" + }, + "node_modules/babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "dependencies": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dependencies": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-plugin-syntax-class-properties": "^6.8.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", + "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "dependencies": { + "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dependencies": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dependencies": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dependencies": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "dependencies": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dependencies": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dependencies": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dependencies": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dependencies": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dependencies": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dependencies": { + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dependencies": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "node_modules/babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dependencies": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "node_modules/babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "dependencies": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, + "node_modules/babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "node_modules/babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dependencies": { + "regenerator-transform": "^0.10.0" + } + }, + "node_modules/babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dependencies": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "node_modules/babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "dependencies": { + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" + } + }, + "node_modules/babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "dependencies": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "node_modules/babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "deprecated": "🙌 Thanks for using Babel: we recommend using babel-preset-env now: please read https://babeljs.io/env to update!", + "dependencies": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" + } + }, + "node_modules/babel-preset-jest": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz", + "integrity": "sha1-jsegOhOPABoaj7HoETZSvxpV2kY=", + "dependencies": { + "babel-plugin-jest-hoist": "^23.2.0", + "babel-plugin-syntax-object-rest-spread": "^6.13.0" + } + }, + "node_modules/babel-preset-react-app": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-7.0.2.tgz", + "integrity": "sha512-mwCk/u2wuiO8qQqblN5PlDa44taY0acq7hw6W+a70W522P7a9mIcdggL1fe5/LgAT7tqCq46q9wwhqaMoYKslQ==", + "dependencies": { + "@babel/core": "7.2.2", + "@babel/plugin-proposal-class-properties": "7.3.0", + "@babel/plugin-proposal-decorators": "7.3.0", + "@babel/plugin-proposal-object-rest-spread": "7.3.2", + "@babel/plugin-syntax-dynamic-import": "7.2.0", + "@babel/plugin-transform-classes": "7.2.2", + "@babel/plugin-transform-destructuring": "7.3.2", + "@babel/plugin-transform-flow-strip-types": "7.2.3", + "@babel/plugin-transform-react-constant-elements": "7.2.0", + "@babel/plugin-transform-react-display-name": "7.2.0", + "@babel/plugin-transform-runtime": "7.2.0", + "@babel/preset-env": "7.3.1", + "@babel/preset-react": "7.0.0", + "@babel/preset-typescript": "7.1.0", + "@babel/runtime": "7.3.1", + "babel-loader": "8.0.5", + "babel-plugin-dynamic-import-node": "2.2.0", + "babel-plugin-macros": "2.5.0", + "babel-plugin-transform-react-remove-prop-types": "0.4.24" + } + }, + "node_modules/babel-preset-react-app/node_modules/@babel/core": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.2.2.tgz", + "integrity": "sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helpers": "^7.2.0", + "@babel/parser": "^7.2.2", + "@babel/template": "^7.2.2", + "@babel/traverse": "^7.2.2", + "@babel/types": "^7.2.2", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.10", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.0.tgz", + "integrity": "sha512-wNHxLkEKTQ2ay0tnsam2z7fGZUi+05ziDJflEt3AZTP3oXLKHJp9HqhfroB/vdMvt3sda9fAbq7FsG8QPDrZBg==", + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.3.0", + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz", + "integrity": "sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", + "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-classes": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz", + "integrity": "sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.1.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "globals": "^11.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-destructuring": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz", + "integrity": "sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.2.0.tgz", + "integrity": "sha512-YYQFg6giRFMsZPKUM9v+VcHOdfSQdz9jHCx3akAi3UYgyjndmdYGSXylQ/V+HswQt4fL8IklchD9HTsaOCrWQQ==", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-preset-react-app/node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz", + "integrity": "sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-preset-react-app/node_modules/@babel/preset-env": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.1.tgz", + "integrity": "sha512-FHKrD6Dxf30e8xgHQO0zJZpUPfVZg+Xwgz5/RdSWCbza9QLNk4Qbp40ctRoqDxml3O8RMzB1DU55SXeDG6PqHQ==", + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.3.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.2.0", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.2.0", + "@babel/plugin-transform-classes": "^7.2.0", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.2.0", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-preset-react-app/node_modules/@babel/preset-react": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.0.0.tgz", + "integrity": "sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/babel-preset-react-app/node_modules/@babel/runtime": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz", + "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==", + "dependencies": { + "regenerator-runtime": "^0.12.0" + } + }, + "node_modules/babel-preset-react-app/node_modules/babel-loader": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.5.tgz", + "integrity": "sha512-NTnHnVRd2JnRqPC0vW+iOQWU5pchDbYXsG2E6DMXEpMfUcQKclF9gmf3G3ZMhzG7IG9ji4coL0cm+FxeWxDpnw==", + "dependencies": { + "find-cache-dir": "^2.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1", + "util.promisify": "^1.0.0" + }, + "engines": { + "node": ">= 6.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-preset-react-app/node_modules/babel-plugin-dynamic-import-node": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.2.0.tgz", + "integrity": "sha512-fP899ELUnTaBcIzmrW7nniyqqdYWrWuJUyPWHxFa/c7r7hS6KC8FscNfLlBNIoPSc55kYMGEEKjPjJGCLbE1qA==", + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-preset-react-app/node_modules/browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dependencies": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/babel-preset-react-app/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/babel-preset-react-app/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/babel-preset-react-app/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/babel-preset-react-app/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/babel-preset-react-app/node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/babel-preset-react-app/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/babel-preset-react-app/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/babel-preset-react-app/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/babel-preset-react-app/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/babel-preset-react-app/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/babel-preset-react-app/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/babel-preset-react-app/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/babel-preset-react-app/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/babel-preset-react-app/node_modules/regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + }, + "node_modules/babel-preset-stage-2": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", + "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "dependencies": { + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-decorators": "^6.24.1", + "babel-preset-stage-3": "^6.24.1" + } + }, + "node_modules/babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "dependencies": { + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" + } + }, + "node_modules/babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dependencies": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-runtime/node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + }, + "node_modules/babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dependencies": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dependencies": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "node_modules/babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dependencies": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "node_modules/babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "bin": { + "babylon": "bin/babylon.js" + } + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base-x": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", + "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bfj": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.1.tgz", + "integrity": "sha512-+GUNvzHR4nRyGybQc2WpNJL4MJazMuvf92ueIyA0bIkPRwhhQu3IfZQ2PSoVPpCBJfmoSdOxu5rnotfFLlvYRQ==", + "dependencies": { + "bluebird": "^3.5.1", + "check-types": "^7.3.0", + "hoopy": "^0.1.2", + "tryer": "^1.0.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/bignumber.js": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/blakejs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", + "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" + }, + "node_modules/blob-to-it": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.2.tgz", + "integrity": "sha512-yD8tikfTlUGEOSHExz4vDCIQFLaBPXIL0KcxGQt9RbwMVXBEh+jokdJyStvTXPgWrdKfwgk7RX8GPsgrYzsyng==", + "dependencies": { + "browser-readablestream-to-it": "^1.0.2" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "node_modules/bootstrap": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.3.1.tgz", + "integrity": "sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jquery": "1.9.1 - 3", + "popper.js": "^1.14.7" + } + }, + "node_modules/borc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", + "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", + "dependencies": { + "bignumber.js": "^9.0.0", + "buffer": "^5.5.0", + "commander": "^2.15.0", + "ieee754": "^1.1.13", + "iso-url": "~0.4.7", + "json-text-sequence": "~0.1.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/borc/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/borc/node_modules/iso-url": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", + "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==", + "engines": { + "node": ">=10" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "node_modules/browser-readablestream-to-it": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.2.tgz", + "integrity": "sha512-lv4M2Z6RKJpyJijJzBQL5MNssS7i8yedl+QkhnLCyPtgNGNSXv1KthzUnye9NlRAtBAI80X6S9i+vK09Rzjcvg==" + }, + "node_modules/browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "dependencies": { + "resolve": "1.1.7" + } + }, + "node_modules/browser-resolve/node_modules/resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + }, + "node_modules/browser-stdout": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", + "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-rsa/node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "dependencies": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" + }, + "node_modules/buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "node_modules/bufferutil": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz", + "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.2.0" + } + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "engines": { + "node": ">=4" + } + }, + "node_modules/camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-api/node_modules/browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dependencies": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001199", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001199.tgz", + "integrity": "sha512-ifbK2eChUCFUwGhlEzIoVwzFt1+iriSjyKKFYNfv6hN34483wyWpLLavYQXhnR036LhkdUYaSDpHg1El++VgHQ==" + }, + "node_modules/capture-exit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz", + "integrity": "sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=", + "dependencies": { + "rsvp": "^3.3.3" + } + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz", + "integrity": "sha512-oEZgAFfEvKtjSRCu6VgYkuGxwrWXMnQzyBmlLPP7r6PWQVtHxP5Z5N6XsuJvtoVax78am/r7lr46bwo3IVEBOg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "node_modules/chai": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "dependencies": { + "check-error": "^1.0.2" + }, + "peerDependencies": { + "chai": ">= 2.1.2 < 5" + } + }, + "node_modules/chai-bignumber": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chai-bignumber/-/chai-bignumber-3.0.0.tgz", + "integrity": "sha512-SubOtaSI2AILWTWe2j0c6i2yFT/f9J6UBjeVGDuwDiPLkF/U5+/eTWUE3sbCZ1KgcPF6UJsDVYbIxaYA097MQA==" + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "engines": { + "node": "*" + } + }, + "node_modules/check-types": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-7.4.0.tgz", + "integrity": "sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg==" + }, + "node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 will break on node v14+. Upgrade to chokidar 3 with 15x less dependencies.", + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/chokidar/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "node_modules/chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==" + }, + "node_modules/cids": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.6.tgz", + "integrity": "sha512-5P+Jas2bVpjiHibp/SOwKY+v7JhAjTChaAZN+vCIrsWXn/JZV0frX22Vp5zZgEyJRPco79pX+yNQ2S3LkRukHQ==", + "dependencies": { + "multibase": "^4.0.1", + "multicodec": "^3.0.1", + "multihashes": "^4.0.1", + "uint8arrays": "^2.1.3" + }, + "engines": { + "node": ">=4.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==", + "deprecated": "CircularJSON is in maintenance only, flatted is its successor." + }, + "node_modules/class-is": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", + "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "node_modules/clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" + }, + "node_modules/cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/cliui/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "engines": { + "node": ">=4" + } + }, + "node_modules/cliui/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/clone-deep": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", + "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", + "dependencies": { + "for-own": "^0.1.3", + "is-plain-object": "^2.0.1", + "kind-of": "^3.0.2", + "lazy-cache": "^1.0.3", + "shallow-clone": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/coa/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "dependencies": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/color-string": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", + "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/confusing-browser-globals": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", + "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==" + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "node_modules/contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "node_modules/cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" + }, + "node_modules/copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==", + "deprecated": "core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.", + "hasInstallScript": true + }, + "node_modules/core-js-compat": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.1.tgz", + "integrity": "sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA==", + "dependencies": { + "browserslist": "^4.16.3", + "semver": "7.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/core-js-compat/node_modules/browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dependencies": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/core-js-compat/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-react-context": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.3.tgz", + "integrity": "sha512-CQBmD0+QGgTaxDL3OX1IDXYqjkp2It4RIbcb99jS6AEg27Ga+a9G3JtK6SIu0HBwPLZlmwt9F7UwWA4Bn92Rag==", + "dependencies": { + "fbjs": "^0.8.0", + "gud": "^1.0.0" + }, + "peerDependencies": { + "prop-types": "^15.0.0", + "react": "^0.14.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "engines": { + "node": "*" + } + }, + "node_modules/css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dependencies": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + }, + "engines": { + "node": ">4" + } + }, + "node_modules/css-declaration-sorter/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-declaration-sorter/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-declaration-sorter/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-declaration-sorter/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/css-declaration-sorter/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-declaration-sorter/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/css-loader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.0.tgz", + "integrity": "sha512-tMXlTYf3mIMt3b0dDCOQFJiVvxbocJ5Ho577WiGPYPZcqVEO218L2iU22pDXzkTZCLDE+9AmGSUkWxeh/nZReA==", + "dependencies": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash.camelcase": "^4.3.0", + "postcss": "^6.0.23", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + }, + "engines": { + "node": ">= 6.9.0 <7.0.0 || >= 8.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "node_modules/css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dependencies": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssdb": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", + "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dependencies": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dependencies": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-preset-default/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-preset-default/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-preset-default/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/cssnano-preset-default/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssnano-preset-default/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-raw-cache/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-util-raw-cache/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-util-raw-cache/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano-util-raw-cache/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/cssnano-util-raw-cache/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssnano-util-raw-cache/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssnano/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/cssnano/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssnano/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "dependencies": { + "css-tree": "^1.1.2" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", + "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "dependencies": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dependencies": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==" + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/dayjs": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz", + "integrity": "sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw==" + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", + "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==" + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dependencies": { + "mimic-response": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "node_modules/default-gateway": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz", + "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==", + "os": [ + "android", + "darwin", + "freebsd", + "linux", + "openbsd", + "sunos", + "win32" + ], + "dependencies": { + "execa": "^0.10.0", + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/default-gateway/node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "engines": { + "node": ">=4" + } + }, + "node_modules/default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "dependencies": { + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "dependencies": { + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/del/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delimit-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", + "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=" + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "node_modules/detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" + }, + "node_modules/detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dependencies": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "bin": { + "detect": "bin/detect-port", + "detect-port": "bin/detect-port" + }, + "engines": { + "node": ">= 4.2.1" + } + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dependencies": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + }, + "node_modules/dns-over-http-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.2.tgz", + "integrity": "sha512-4J7LoLl26mczU6LdWlhvNM51aWXHJmTz6iDUrGz1sqiAgNb6HzBc/huvkgqS6bYfbCzvlOKW/bGkugReliac0A==", + "dependencies": { + "debug": "^4.2.0", + "native-fetch": "^3.0.0", + "receptacle": "^1.3.2" + } + }, + "node_modules/dns-over-http-resolver/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/dns-over-http-resolver/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/dns-over-http-resolver/node_modules/native-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", + "peerDependencies": { + "node-fetch": "*" + } + }, + "node_modules/dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "dependencies": { + "@babel/runtime": "^7.1.2" + } + }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dot-prop/node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.0.0.tgz", + "integrity": "sha512-FlWbnhgjtwD+uNLUGHbMykMOYQaTivdHEmYwAKFjn6GKe/CqY0fNae93ZHTd20snh9ZLr8mTzIL9m0APQ1pjQg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/dotenv-expand": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz", + "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=" + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/duplexify/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/duplexify/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/duplexify/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "node_modules/electron-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.3.tgz", + "integrity": "sha512-1AVMaxrHXTTMqd7EK0MGWusdqNr07Rpj8Th6bG4at0oNgIi/1LBwa9CjT/0Zy+M0k/tSJPS04nFxHj0SXDVgVw==", + "dependencies": { + "encoding": "^0.1.13" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.3.687", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.687.tgz", + "integrity": "sha512-IpzksdQNl3wdgkzf7dnA7/v10w0Utf1dF2L+B4+gKrloBrxCut+au+kky3PYvle3RMdSxZP+UiCZtLbcYRxSNQ==" + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/emoji-regex": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz", + "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==" + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "dependencies": { + "iconv-lite": "^0.6.2" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/enhanced-resolve/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/enhanced-resolve/node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/enhanced-resolve/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/enhanced-resolve/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dependencies": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dependencies": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.6.0.tgz", + "integrity": "sha512-/eVYs9VVVboX286mBK7bbKnO1yamUy2UCRjiY6MryhQL2PaaXCExsCQ2aO83OeYRhU2eCU/FMFP+tVMoOrzNrA==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.5.3", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^4.0.0", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^4.0.0", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "imurmurhash": "^0.1.4", + "inquirer": "^6.1.0", + "is-resolvable": "^1.1.0", + "js-yaml": "^3.12.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.5", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^4.0.3", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^6.14.0 || ^8.10.0 || >=9.10.0" + } + }, + "node_modules/eslint-config-react-app": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-3.0.8.tgz", + "integrity": "sha512-Ovi6Bva67OjXrom9Y/SLJRkrGqKhMAL0XCH8BizPhjEVEhYczl2ZKiNZI2CuqO5/CJwAfMwRXAVGY0KToWr1aA==", + "dependencies": { + "confusing-browser-globals": "^1.0.6" + }, + "peerDependencies": { + "babel-eslint": "9.x", + "eslint": "5.x", + "eslint-plugin-flowtype": "2.x", + "eslint-plugin-import": "2.x", + "eslint-plugin-jsx-a11y": "6.x", + "eslint-plugin-react": "7.x" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "dependencies": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-loader": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.1.1.tgz", + "integrity": "sha512-1GrJFfSevQdYpoDzx8mEE2TDWsb/zmFuY09l6hURg1AeFIKQOvZ+vH0UPjzmd1CZIbfTV5HUkMeBmFiDBkgIsQ==", + "deprecated": "This loader has been deprecated. Please use eslint-webpack-plugin", + "dependencies": { + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" + }, + "peerDependencies": { + "eslint": ">=1.6.0 <6.0.0", + "webpack": ">=2.0.0 <5.0.0" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "dependencies": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-flowtype": { + "version": "2.50.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.1.tgz", + "integrity": "sha512-9kRxF9hfM/O6WGZcZPszOVPd2W0TLHBtceulLTsGfwMPtiCCLnCW0ssRiOOiXyqrCA20pm1iXdXm7gQeN306zQ==", + "dependencies": { + "lodash": "^4.17.10" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": ">=2.0.0" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz", + "integrity": "sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==", + "dependencies": { + "contains-path": "^0.1.0", + "debug": "^2.6.8", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.2.0", + "has": "^1.0.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0", + "resolve": "^1.6.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "2.x - 5.x" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dependencies": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz", + "integrity": "sha512-7gSSmwb3A+fQwtw0arguwMdOdzmKUgnUcbSNlo+GjKLAQFuC2EZxWqG9XHRI8VscBJD5a8raz3RuxQNFW+XJbw==", + "dependencies": { + "aria-query": "^3.0.0", + "array-includes": "^3.0.3", + "ast-types-flow": "^0.0.7", + "axobject-query": "^2.0.1", + "damerau-levenshtein": "^1.0.4", + "emoji-regex": "^6.5.1", + "has": "^1.0.3", + "jsx-ast-utils": "^2.0.1" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz", + "integrity": "sha512-cVVyMadRyW7qsIUh3FHp3u6QHNhOgVrLQYdQEB1bPWBsgbNCHdFAeNMquBMCcZJu59eNthX053L70l7gRt4SCw==", + "dependencies": { + "array-includes": "^3.0.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.0.1", + "prop-types": "^15.6.2" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/espree": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", + "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", + "dependencies": { + "acorn": "^6.0.2", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/eth-ens-namehash": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", + "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", + "dependencies": { + "idna-uts46-hx": "^2.3.1", + "js-sha3": "^0.5.7" + } + }, + "node_modules/eth-ens-namehash/node_modules/js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + }, + "node_modules/eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "dependencies": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "node_modules/ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" + }, + "node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ethereum-cryptography/node_modules/keccak": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", + "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "dependencies": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "node_modules/ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "dependencies": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/ethers": { + "version": "4.0.48", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.48.tgz", + "integrity": "sha512-sZD5K8H28dOrcidzx9f8KYh8083n5BexIO3+SbE4jK83L85FxtpXZBCQdXb8gkg+7sBqomcLhhkU7UHL+F7I2g==", + "dependencies": { + "aes-js": "3.0.0", + "bn.js": "^4.4.0", + "elliptic": "6.5.3", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + } + }, + "node_modules/ethers/node_modules/elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dependencies": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "node_modules/ethers/node_modules/hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/ethers/node_modules/js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + }, + "node_modules/ethers/node_modules/scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" + }, + "node_modules/ethers/node_modules/setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" + }, + "node_modules/ethers/node_modules/uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" + }, + "node_modules/ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", + "dependencies": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/ethjs-unit/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + }, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/eventemitter3": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", + "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dependencies": { + "original": "^1.0.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/exec-sh": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", + "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", + "dependencies": { + "merge": "^1.2.0" + } + }, + "node_modules/execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dependencies": { + "fill-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-range/node_modules/fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dependencies": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-range/node_modules/is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-range/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/expand-range/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expect": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-23.6.0.tgz", + "integrity": "sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w==", + "dependencies": { + "ansi-styles": "^3.2.0", + "jest-diff": "^23.6.0", + "jest-get-type": "^22.1.0", + "jest-matcher-utils": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-regex-util": "^23.3.0" + } + }, + "node_modules/expect/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "node_modules/express/node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "node_modules/express/node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dependencies": { + "type": "^2.0.0" + } + }, + "node_modules/ext/node_modules/type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/external-editor/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-fifo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.0.0.tgz", + "integrity": "sha512-4VEXmjxLj7sbs8J//cn2qhRap50dGzF5n8fjay8mau+Jn4hxSeR3xPFwxMaQq/pDaq7+KQk0PAbC2+nWDkJrmQ==" + }, + "node_modules/fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dependencies": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "node_modules/fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==" + }, + "node_modules/faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fbjs": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", + "dependencies": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + } + }, + "node_modules/fbjs/node_modules/core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=", + "deprecated": "core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3." + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" + }, + "node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dependencies": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/file-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", + "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", + "dependencies": { + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6.9.0 < 7.0.0 || >= 8.9.0" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "node_modules/filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dependencies": { + "glob": "^7.0.3", + "minimatch": "^3.0.3" + } + }, + "node_modules/filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "dependencies": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==" + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/flush-write-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/flush-write-stream/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/flush-write-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/follow-redirects": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", + "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "engines": { + "node": "*" + } + }, + "node_modules/fork-ts-checker-webpack-plugin-alt": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin-alt/-/fork-ts-checker-webpack-plugin-alt-0.4.14.tgz", + "integrity": "sha512-s0wjOBuPdylMRBzZ4yO8LSJuzem3g0MYZFxsjRXrFDQyL5KJBVSq30+GoHM/t/r2CRU4tI6zi04sq6OXK0UYnw==", + "dependencies": { + "babel-code-frame": "^6.22.0", + "chalk": "^2.4.1", + "chokidar": "^2.0.4", + "lodash": "^4.17.11", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "resolve": "^1.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.11.5" + }, + "peerDependencies": { + "webpack": "^2.3.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/fork-ts-checker-webpack-plugin-alt/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fork-ts-checker-webpack-plugin-alt/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fork-ts-checker-webpack-plugin-alt/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/from2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/from2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/from2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/fs-write-stream-atomic/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/fs-write-stream-atomic/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/fs-write-stream-atomic/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "bundleDependencies": [ + "node-pre-gyp" + ], + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "engines": { + "node": ">=4" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dependencies": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-base/node_modules/glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dependencies": { + "is-glob": "^2.0.0" + } + }, + "node_modules/glob-base/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-base/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" + }, + "node_modules/global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "dependencies": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/globalthis": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", + "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "dependencies": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + }, + "node_modules/graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + }, + "node_modules/growl": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", + "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==", + "engines": { + "node": ">=4.x" + } + }, + "node_modules/growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" + }, + "node_modules/gud": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", + "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" + }, + "node_modules/gzip-size": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.0.0.tgz", + "integrity": "sha512-5iI7omclyqrnWw4XbXAmGhPsABkSIDQonv2K0h61lybgofWa6iZyvrI3r2zsJH4P8Nb64fFVzlvfhs0g7BBxAA==", + "dependencies": { + "duplexer": "^0.1.1", + "pify": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/h2x-core": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/h2x-core/-/h2x-core-1.1.1.tgz", + "integrity": "sha512-LdXe4Irs731knLtHgLyFrnJCumfiqXXQwKN1IMUhi37li29PLfLbMDvfK7Rk4wmgHLKP+sIITT1mcJV4QsC3nw==", + "dependencies": { + "h2x-generate": "^1.1.0", + "h2x-parse": "^1.1.1", + "h2x-traverse": "^1.1.0" + } + }, + "node_modules/h2x-generate": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/h2x-generate/-/h2x-generate-1.1.0.tgz", + "integrity": "sha512-L7Hym0yb20QIjvqeULUPOeh/cyvScdOAyJ6oRlh5dF0+w92hf3OiTk1q15KBijde7jGEe+0R4aOmtW8gkPNIzg==", + "dependencies": { + "h2x-traverse": "^1.1.0" + } + }, + "node_modules/h2x-parse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/h2x-parse/-/h2x-parse-1.1.1.tgz", + "integrity": "sha512-WRSmPF+tIWuUXVEZaYRhcZx/JGEJx8LjZpDDtrvMr5m/GTR0NerydCik5dRzcKXPWCtfXxuJRLR4v2P4HB2B1A==", + "dependencies": { + "h2x-types": "^1.1.0", + "jsdom": ">=11.0.0" + } + }, + "node_modules/h2x-plugin-jsx": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/h2x-plugin-jsx/-/h2x-plugin-jsx-1.2.0.tgz", + "integrity": "sha512-a7Vb3BHhJJq0dPDNdqguEyQirENkVsFtvM2YkiaT5h/fmGhmM1nDy3BLeJeSKi2tL2g9v4ykm2Z+GG9QrhDgPA==", + "dependencies": { + "h2x-types": "^1.1.0" + } + }, + "node_modules/h2x-traverse": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/h2x-traverse/-/h2x-traverse-1.1.0.tgz", + "integrity": "sha512-1ND8ZbISLSUgpLHYJRvhvElITvs0g44L7RxjeXViz5XP6rooa+FtXTFLByl2Yg01zj2txubifHIuU4pgvj8l+A==", + "dependencies": { + "h2x-types": "^1.1.0" + } + }, + "node_modules/h2x-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/h2x-types/-/h2x-types-1.1.0.tgz", + "integrity": "sha512-QdH5qfLcdF209UsCdM0ZNZ9Dwm2PHvMfeLZtivBrjX3Y/df4US2pwsUC4HBfWhye/mx/t6puODeC7Oacb/Ol8g==" + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "node_modules/handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "dependencies": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + }, + "bin": { + "handlebars": "bin/handlebars" + }, + "engines": { + "node": ">=0.4.7" + }, + "optionalDependencies": { + "uglify-js": "^3.1.4" + } + }, + "node_modules/handlebars/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "deprecated": "this library is no longer supported", + "dependencies": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/harmony-reflect": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz", + "integrity": "sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==" + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" + }, + "node_modules/history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "dependencies": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoek": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" + }, + "node_modules/hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" + }, + "node_modules/html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==" + }, + "node_modules/html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dependencies": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "bin": { + "html-minifier": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/html-minifier/node_modules/commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + }, + "node_modules/html-webpack-plugin": { + "version": "4.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-alpha.2.tgz", + "integrity": "sha512-tyvhjVpuGqD7QYHi1l1drMQTg5i+qRxpQEGbdnYFREgOKy7aFDf/ocQ/V1fuEDlQx7jV2zMap3Hj2nE9i5eGXw==", + "deprecated": "please switch to a stable version", + "dependencies": { + "@types/tapable": "1.0.2", + "html-minifier": "^3.2.3", + "loader-utils": "^1.1.0", + "lodash": "^4.17.10", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "util.promisify": "1.0.0" + }, + "engines": { + "node": ">=6.9" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/html-webpack-plugin/node_modules/util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dependencies": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/http-parser-js": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", + "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==" + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", + "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", + "dependencies": { + "http-proxy": "^1.16.2", + "is-glob": "^4.0.0", + "lodash": "^4.17.5", + "micromatch": "^3.1.9" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/http-proxy/node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "node_modules/iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" + }, + "node_modules/icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dependencies": { + "postcss": "^6.0.1" + } + }, + "node_modules/identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", + "dependencies": { + "harmony-reflect": "^1.4.6" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "dependencies": { + "punycode": "2.1.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/idna-uts46-hx/node_modules/punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "engines": { + "node": ">=6" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/immer": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", + "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==" + }, + "node_modules/import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dependencies": { + "import-from": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "dependencies": { + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "node_modules/inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "dependencies": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/internal-ip": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz", + "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==", + "os": [ + "android", + "darwin", + "freebsd", + "linux", + "openbsd", + "sunos", + "win32" + ], + "dependencies": { + "default-gateway": "^2.6.0", + "ipaddr.js": "^1.5.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "node_modules/ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ipfs-core-types": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.3.1.tgz", + "integrity": "sha512-xPBsowS951RsuskMo86AWz9y4ReaBot1YsjOhZvKl8ORd8taxIBTT72LnEPwIZ2G24U854Zjxvd/qUMqO14ivg==", + "dependencies": { + "cids": "^1.1.5", + "multiaddr": "^8.0.0", + "peer-id": "^0.14.1" + } + }, + "node_modules/ipfs-core-utils": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.7.2.tgz", + "integrity": "sha512-d7T72GxvhNN+tEHsJjxI5Y4LQVdMMbSwNbWB6nVsIHUEdwm3w85L2u1E/ctNd9aaNGvoBwEcnIZhSmqhMf7stw==", + "dependencies": { + "any-signal": "^2.1.2", + "blob-to-it": "^1.0.1", + "browser-readablestream-to-it": "^1.0.1", + "cids": "^1.1.5", + "err-code": "^2.0.3", + "ipfs-core-types": "^0.3.1", + "ipfs-utils": "^6.0.1", + "it-all": "^1.0.4", + "it-map": "^1.0.4", + "it-peekable": "^1.0.1", + "multiaddr": "^8.0.0", + "multiaddr-to-uri": "^6.0.0", + "parse-duration": "^0.4.4", + "timeout-abort-controller": "^1.1.1", + "uint8arrays": "^2.1.3" + } + }, + "node_modules/ipfs-http-client": { + "version": "49.0.4", + "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-49.0.4.tgz", + "integrity": "sha512-qgWbkcB4glQrUkE2tZR+GVXyrO6aJyspWBjyct/6TzrhCHx7evjz+kUTK+wNm4S9zccUePEml5VNZUmUhoQtbA==", + "dependencies": { + "abort-controller": "^3.0.0", + "any-signal": "^2.1.2", + "bignumber.js": "^9.0.1", + "cids": "^1.1.5", + "debug": "^4.1.1", + "form-data": "^3.0.0", + "ipfs-core-types": "^0.3.1", + "ipfs-core-utils": "^0.7.2", + "ipfs-utils": "^6.0.1", + "ipld-block": "^0.11.0", + "ipld-dag-cbor": "^0.17.0", + "ipld-dag-pb": "^0.20.0", + "ipld-raw": "^6.0.0", + "it-last": "^1.0.4", + "it-map": "^1.0.4", + "it-tar": "^1.2.2", + "it-to-stream": "^0.1.2", + "merge-options": "^3.0.4", + "multiaddr": "^8.0.0", + "multibase": "^4.0.2", + "multicodec": "^3.0.1", + "multihashes": "^4.0.2", + "nanoid": "^3.1.12", + "native-abort-controller": "^1.0.3", + "parse-duration": "^0.4.4", + "stream-to-it": "^0.2.2", + "uint8arrays": "^2.1.3" + }, + "engines": { + "node": ">=10.3.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ipfs-http-client/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/ipfs-http-client/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/ipfs-utils": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-6.0.1.tgz", + "integrity": "sha512-u6fJDi/LpCEj96JM//cdDWJV44YR7jLdxQ6I0d8Hj/BCPIQPTWsjQeSppKxudMjYRpX4kzdv9WxrNM8dc4rtlQ==", + "dependencies": { + "abort-controller": "^3.0.0", + "any-signal": "^2.1.0", + "buffer": "^6.0.1", + "electron-fetch": "^1.7.2", + "err-code": "^2.0.3", + "fs-extra": "^9.0.1", + "is-electron": "^2.2.0", + "iso-url": "^1.0.0", + "it-glob": "0.0.10", + "it-to-stream": "^0.1.2", + "merge-options": "^3.0.4", + "nanoid": "^3.1.20", + "native-abort-controller": "^1.0.3", + "native-fetch": "2.0.1", + "node-fetch": "^2.6.1", + "stream-to-it": "^0.2.2", + "web-encoding": "^1.0.6" + } + }, + "node_modules/ipld-block": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/ipld-block/-/ipld-block-0.11.1.tgz", + "integrity": "sha512-sDqqLqD5qh4QzGq6ssxLHUCnH4emCf/8F8IwjQM2cjEEIEHMUj57XhNYgmGbemdYPznUhffxFGEHsruh5+HQRw==", + "dependencies": { + "cids": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ipld-dag-cbor": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/ipld-dag-cbor/-/ipld-dag-cbor-0.17.1.tgz", + "integrity": "sha512-Bakj/cnxQBdscORyf4LRHxQJQfoaY8KWc7PWROQgX+aw5FCzBt8ga0VM/59K+ABOznsqNvyLR/wz/oYImOpXJw==", + "dependencies": { + "borc": "^2.1.2", + "cids": "^1.0.0", + "is-circular": "^1.0.2", + "multicodec": "^3.0.1", + "multihashing-async": "^2.0.0", + "uint8arrays": "^2.1.3" + }, + "engines": { + "node": ">=6.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ipld-dag-pb": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.20.0.tgz", + "integrity": "sha512-zfM0EdaolqNjAxIrtpuGKvXxWk5YtH9jKinBuQGTcngOsWFQhyybGCTJHGNGGtRjHNJi2hz5Udy/8pzv4kcKyg==", + "dependencies": { + "cids": "^1.0.0", + "class-is": "^1.1.0", + "multicodec": "^2.0.0", + "multihashing-async": "^2.0.0", + "protons": "^2.0.0", + "reset": "^0.1.0", + "run": "^1.4.0", + "stable": "^0.1.8", + "uint8arrays": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0", + "npm": ">=3.0.0" + } + }, + "node_modules/ipld-dag-pb/node_modules/multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "dependencies": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + }, + "engines": { + "node": ">=10.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/ipld-dag-pb/node_modules/multicodec": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", + "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "dependencies": { + "uint8arrays": "1.1.0", + "varint": "^6.0.0" + } + }, + "node_modules/ipld-dag-pb/node_modules/uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "dependencies": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + }, + "node_modules/ipld-dag-pb/node_modules/varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + }, + "node_modules/ipld-raw": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ipld-raw/-/ipld-raw-6.0.0.tgz", + "integrity": "sha512-UK7fjncAzs59iu/o2kwYtb8jgTtW6B+cNWIiNpAJkfRwqoMk1xD/6i25ktzwe4qO8gQgoR9RxA5ibC23nq8BLg==", + "dependencies": { + "cids": "^1.0.0", + "multicodec": "^2.0.0", + "multihashing-async": "^2.0.0" + } + }, + "node_modules/ipld-raw/node_modules/multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "dependencies": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + }, + "engines": { + "node": ">=10.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/ipld-raw/node_modules/multicodec": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", + "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "dependencies": { + "uint8arrays": "1.1.0", + "varint": "^6.0.0" + } + }, + "node_modules/ipld-raw/node_modules/uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "dependencies": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + }, + "node_modules/ipld-raw/node_modules/varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + }, + "node_modules/is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "node_modules/is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "dependencies": { + "call-bind": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dependencies": { + "ci-info": "^1.5.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-circular": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-circular/-/is-circular-1.0.2.tgz", + "integrity": "sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA==" + }, + "node_modules/is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dependencies": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "node_modules/is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-electron": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.0.tgz", + "integrity": "sha512-SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q==" + }, + "node_modules/is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dependencies": { + "is-primitive": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "engines": { + "node": ">=4" + } + }, + "node_modules/is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "node_modules/is-generator-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", + "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/is-ip": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", + "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", + "dependencies": { + "ip-regex": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dependencies": { + "is-path-inside": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dependencies": { + "path-is-inside": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", + "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=" + }, + "node_modules/is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "dependencies": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" + }, + "node_modules/is-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.0.0.tgz", + "integrity": "sha512-F/pJIk8QD6OX5DNhRB7hWamLsUilmkDGho48KbgZ6xg/lmAZXHxzXQ91jzB3yRSw5kdQGGGc4yz8HYhTYIMWPg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dependencies": { + "html-comment-regex": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "node_modules/isemail": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", + "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", + "dependencies": { + "punycode": "2.x.x" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/iso-constants": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/iso-constants/-/iso-constants-0.1.2.tgz", + "integrity": "sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ==", + "hasInstallScript": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/iso-random-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-1.1.1.tgz", + "integrity": "sha512-YEt/7xOwTdu4KXIgtdgGFkiLUsBaddbnkmHyaFdjJYIcD7V4gpQHPvYC5tyh3kA0PQ01y9lWm1ruVdf8Mqzovg==", + "dependencies": { + "buffer": "^5.4.3", + "readable-stream": "^3.4.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/iso-random-stream/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/iso-url": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.4.tgz", + "integrity": "sha512-Gzsd4pb2WAkobYj8cgAdoBYuRsC9O4dFlqjFcNZ1AdIlEzDXacP3SLbc4fOdvn2atKSVmRhGXYasCUmB8119ew==", + "engines": { + "node": ">=14" + } + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "dependencies": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + } + }, + "node_modules/isomorphic-fetch/node_modules/node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "dependencies": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "node_modules/istanbul-api": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", + "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", + "dependencies": { + "async": "^2.1.4", + "fileset": "^2.0.2", + "istanbul-lib-coverage": "^1.2.1", + "istanbul-lib-hook": "^1.2.2", + "istanbul-lib-instrument": "^1.10.2", + "istanbul-lib-report": "^1.1.5", + "istanbul-lib-source-maps": "^1.2.6", + "istanbul-reports": "^1.5.1", + "js-yaml": "^3.7.0", + "mkdirp": "^0.5.1", + "once": "^1.4.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", + "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==" + }, + "node_modules/istanbul-lib-hook": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", + "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", + "dependencies": { + "append-transform": "^0.4.0" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", + "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", + "dependencies": { + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.1", + "semver": "^5.3.0" + } + }, + "node_modules/istanbul-lib-report": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", + "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", + "dependencies": { + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" + } + }, + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dependencies": { + "has-flag": "^1.0.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", + "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", + "dependencies": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/istanbul-lib-source-maps/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/istanbul-reports": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", + "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", + "dependencies": { + "handlebars": "^4.0.3" + } + }, + "node_modules/it-all": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.5.tgz", + "integrity": "sha512-ygD4kA4vp8fi+Y+NBgEKt6W06xSbv6Ub/0V8d1r3uCyJ9Izwa1UspkIOlqY9fOee0Z1w3WRo1+VWyAU4DgtufA==" + }, + "node_modules/it-concat": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-1.0.2.tgz", + "integrity": "sha512-YZtXOe10qBcTDOsz59AscfmsKRoVPYX5AFxCans2L/QL20Jah1H1/+wzWDaJj8zu0KiA9gys3vBoZIZwhsUeeg==", + "dependencies": { + "bl": "^4.0.0" + } + }, + "node_modules/it-glob": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.10.tgz", + "integrity": "sha512-p1PR15djgPV7pxdLOW9j4WcJdla8+91rJdUU2hU2Jm68vkxpIEXK55VHBeH8Lvqh2vqLtM83t8q4BuJxue6niA==", + "dependencies": { + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4" + } + }, + "node_modules/it-last": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.5.tgz", + "integrity": "sha512-PV/2S4zg5g6dkVuKfgrQfN2rUN4wdTI1FzyAvU+i8RV96syut40pa2s9Dut5X7SkjwA3P0tOhLABLdnOJ0Y/4Q==" + }, + "node_modules/it-map": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.5.tgz", + "integrity": "sha512-EElupuWhHVStUgUY+OfTJIS2MZed96lDrAXzJUuqiiqLnIKoBRqtX1ZG2oR0bGDsSppmz83MtzCeKLZ9TVAUxQ==" + }, + "node_modules/it-peekable": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.2.tgz", + "integrity": "sha512-LRPLu94RLm+lxLZbChuc9iCXrKCOu1obWqxfaKhF00yIp30VGkl741b5P60U+rdBxuZD/Gt1bnmakernv7bVFg==" + }, + "node_modules/it-reader": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-2.1.0.tgz", + "integrity": "sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw==", + "dependencies": { + "bl": "^4.0.0" + } + }, + "node_modules/it-tar": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/it-tar/-/it-tar-1.2.2.tgz", + "integrity": "sha512-M8V4a9I+x/vwXTjqvixcEZbQZHjwDIb8iUQ+D4M2QbhAdNs3WKVSl+45u5/F2XFx6jYMFOGzMVlKNK/uONgNIA==", + "dependencies": { + "bl": "^4.0.0", + "buffer": "^5.4.3", + "iso-constants": "^0.1.2", + "it-concat": "^1.0.0", + "it-reader": "^2.0.0", + "p-defer": "^3.0.0" + } + }, + "node_modules/it-tar/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/it-to-stream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-0.1.2.tgz", + "integrity": "sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ==", + "dependencies": { + "buffer": "^5.6.0", + "fast-fifo": "^1.0.0", + "get-iterator": "^1.0.2", + "p-defer": "^3.0.0", + "p-fifo": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "node_modules/it-to-stream/node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/jest": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-23.6.0.tgz", + "integrity": "sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw==", + "dependencies": { + "import-local": "^1.0.0", + "jest-cli": "^23.6.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-changed-files": { + "version": "23.4.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-23.4.2.tgz", + "integrity": "sha512-EyNhTAUWEfwnK0Is/09LxoqNDOn7mU7S3EHskG52djOFS/z+IT0jT3h3Ql61+dklcG7bJJitIWEMB4Sp1piHmA==", + "dependencies": { + "throat": "^4.0.0" + } + }, + "node_modules/jest-cli": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-23.6.0.tgz", + "integrity": "sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ==", + "dependencies": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "import-local": "^1.0.0", + "is-ci": "^1.0.10", + "istanbul-api": "^1.3.1", + "istanbul-lib-coverage": "^1.2.0", + "istanbul-lib-instrument": "^1.10.1", + "istanbul-lib-source-maps": "^1.2.4", + "jest-changed-files": "^23.4.2", + "jest-config": "^23.6.0", + "jest-environment-jsdom": "^23.4.0", + "jest-get-type": "^22.1.0", + "jest-haste-map": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-regex-util": "^23.3.0", + "jest-resolve-dependencies": "^23.6.0", + "jest-runner": "^23.6.0", + "jest-runtime": "^23.6.0", + "jest-snapshot": "^23.6.0", + "jest-util": "^23.4.0", + "jest-validate": "^23.6.0", + "jest-watcher": "^23.4.0", + "jest-worker": "^23.2.0", + "micromatch": "^2.3.11", + "node-notifier": "^5.2.1", + "prompts": "^0.1.9", + "realpath-native": "^1.0.0", + "rimraf": "^2.5.4", + "slash": "^1.0.0", + "string-length": "^2.0.0", + "strip-ansi": "^4.0.0", + "which": "^1.2.12", + "yargs": "^11.0.0" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-cli/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dependencies": { + "arr-flatten": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dependencies": { + "is-posix-bracket": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-cli/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-cli/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-config": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-23.6.0.tgz", + "integrity": "sha512-i8V7z9BeDXab1+VNo78WM0AtWpBRXJLnkT+lyT+Slx/cbP5sZJ0+NDuLcmBE5hXAoK0aUp7vI+MOxR+R4d8SRQ==", + "dependencies": { + "babel-core": "^6.0.0", + "babel-jest": "^23.6.0", + "chalk": "^2.0.1", + "glob": "^7.1.1", + "jest-environment-jsdom": "^23.4.0", + "jest-environment-node": "^23.4.0", + "jest-get-type": "^22.1.0", + "jest-jasmine2": "^23.6.0", + "jest-regex-util": "^23.3.0", + "jest-resolve": "^23.6.0", + "jest-util": "^23.4.0", + "jest-validate": "^23.6.0", + "micromatch": "^2.3.11", + "pretty-format": "^23.6.0" + } + }, + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-config/node_modules/arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dependencies": { + "arr-flatten": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-config/node_modules/array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-config/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-config/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-config/node_modules/expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dependencies": { + "is-posix-bracket": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-config/node_modules/extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-config/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-config/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-config/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-config/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-config/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-diff": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-23.6.0.tgz", + "integrity": "sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g==", + "dependencies": { + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" + } + }, + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-diff/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-diff/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-docblock": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-23.2.0.tgz", + "integrity": "sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c=", + "dependencies": { + "detect-newline": "^2.1.0" + } + }, + "node_modules/jest-each": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-23.6.0.tgz", + "integrity": "sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg==", + "dependencies": { + "chalk": "^2.0.1", + "pretty-format": "^23.6.0" + } + }, + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-each/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-each/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz", + "integrity": "sha1-BWp5UrP+pROsYqFAosNox52eYCM=", + "dependencies": { + "jest-mock": "^23.2.0", + "jest-util": "^23.4.0", + "jsdom": "^11.5.1" + } + }, + "node_modules/jest-environment-jsdom/node_modules/acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/acorn-globals": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", + "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", + "dependencies": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + } + }, + "node_modules/jest-environment-jsdom/node_modules/acorn-globals/node_modules/acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/jest-environment-jsdom/node_modules/cssstyle": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", + "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", + "dependencies": { + "cssom": "0.3.x" + } + }, + "node_modules/jest-environment-jsdom/node_modules/data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "dependencies": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/data-urls/node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/jest-environment-jsdom/node_modules/domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "dependencies": { + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/jest-environment-jsdom/node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/jest-environment-jsdom/node_modules/html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "dependencies": { + "whatwg-encoding": "^1.0.1" + } + }, + "node_modules/jest-environment-jsdom/node_modules/jsdom": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", + "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", + "dependencies": { + "abab": "^2.0.0", + "acorn": "^5.5.3", + "acorn-globals": "^4.1.0", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": "^1.0.0", + "data-urls": "^1.0.0", + "domexception": "^1.0.1", + "escodegen": "^1.9.1", + "html-encoding-sniffer": "^1.0.2", + "left-pad": "^1.3.0", + "nwsapi": "^2.0.7", + "parse5": "4.0.0", + "pn": "^1.1.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.5", + "sax": "^1.2.4", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.3.4", + "w3c-hr-time": "^1.0.1", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.3", + "whatwg-mimetype": "^2.1.0", + "whatwg-url": "^6.4.1", + "ws": "^5.2.0", + "xml-name-validator": "^3.0.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==" + }, + "node_modules/jest-environment-jsdom/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/jest-environment-jsdom/node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "node_modules/jest-environment-jsdom/node_modules/whatwg-url": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", + "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/jest-environment-jsdom/node_modules/ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/jest-environment-node": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-23.4.0.tgz", + "integrity": "sha1-V+gO0IQd6jAxZ8zozXlSHeuv3hA=", + "dependencies": { + "jest-mock": "^23.2.0", + "jest-util": "^23.4.0" + } + }, + "node_modules/jest-get-type": { + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz", + "integrity": "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==" + }, + "node_modules/jest-haste-map": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-23.6.0.tgz", + "integrity": "sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg==", + "dependencies": { + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.1.11", + "invariant": "^2.2.4", + "jest-docblock": "^23.2.0", + "jest-serializer": "^23.0.1", + "jest-worker": "^23.2.0", + "micromatch": "^2.3.11", + "sane": "^2.0.0" + } + }, + "node_modules/jest-haste-map/node_modules/arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dependencies": { + "arr-flatten": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dependencies": { + "is-posix-bracket": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-haste-map/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-jasmine2": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz", + "integrity": "sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ==", + "dependencies": { + "babel-traverse": "^6.0.0", + "chalk": "^2.0.1", + "co": "^4.6.0", + "expect": "^23.6.0", + "is-generator-fn": "^1.0.0", + "jest-diff": "^23.6.0", + "jest-each": "^23.6.0", + "jest-matcher-utils": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-snapshot": "^23.6.0", + "jest-util": "^23.4.0", + "pretty-format": "^23.6.0" + } + }, + "node_modules/jest-jasmine2/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-jasmine2/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-jasmine2/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-leak-detector": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz", + "integrity": "sha512-f/8zA04rsl1Nzj10HIyEsXvYlMpMPcy0QkQilVZDFOaPbv2ur71X5u2+C4ZQJGyV/xvVXtCCZ3wQ99IgQxftCg==", + "dependencies": { + "pretty-format": "^23.6.0" + } + }, + "node_modules/jest-matcher-utils": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz", + "integrity": "sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog==", + "dependencies": { + "chalk": "^2.0.1", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" + } + }, + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-matcher-utils/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-message-util": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-23.4.0.tgz", + "integrity": "sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8=", + "dependencies": { + "@babel/code-frame": "^7.0.0-beta.35", + "chalk": "^2.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0", + "stack-utils": "^1.0.1" + } + }, + "node_modules/jest-message-util/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-message-util/node_modules/arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dependencies": { + "arr-flatten": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-message-util/node_modules/expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dependencies": { + "is-posix-bracket": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-message-util/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-mock": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-23.2.0.tgz", + "integrity": "sha1-rRxg8p6HGdR8JuETgJi20YsmETQ=" + }, + "node_modules/jest-pnp-resolver": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.0.1.tgz", + "integrity": "sha512-kzhvJQp+9k0a/hpvIIzOJgOwfOqmnohdrAMZW2EscH3kxR2VWD7EcPa10cio8EK9V7PcD75bhG1pFnO70zGwSQ==", + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "jest-resolve": "*" + } + }, + "node_modules/jest-regex-util": { + "version": "23.3.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-23.3.0.tgz", + "integrity": "sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U=" + }, + "node_modules/jest-resolve": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-23.6.0.tgz", + "integrity": "sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA==", + "dependencies": { + "browser-resolve": "^1.11.3", + "chalk": "^2.0.1", + "realpath-native": "^1.0.0" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz", + "integrity": "sha512-EkQWkFWjGKwRtRyIwRwI6rtPAEyPWlUC2MpzHissYnzJeHcyCn1Hc8j7Nn1xUVrS5C6W5+ZL37XTem4D4pLZdA==", + "dependencies": { + "jest-regex-util": "^23.3.0", + "jest-snapshot": "^23.6.0" + } + }, + "node_modules/jest-resolve/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-resolve/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-resolve/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runner": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-23.6.0.tgz", + "integrity": "sha512-kw0+uj710dzSJKU6ygri851CObtCD9cN8aNkg8jWJf4ewFyEa6kwmiH/r/M1Ec5IL/6VFa0wnAk6w+gzUtjJzA==", + "dependencies": { + "exit": "^0.1.2", + "graceful-fs": "^4.1.11", + "jest-config": "^23.6.0", + "jest-docblock": "^23.2.0", + "jest-haste-map": "^23.6.0", + "jest-jasmine2": "^23.6.0", + "jest-leak-detector": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-runtime": "^23.6.0", + "jest-util": "^23.4.0", + "jest-worker": "^23.2.0", + "source-map-support": "^0.5.6", + "throat": "^4.0.0" + } + }, + "node_modules/jest-runner/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runner/node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-runtime": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-23.6.0.tgz", + "integrity": "sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw==", + "dependencies": { + "babel-core": "^6.0.0", + "babel-plugin-istanbul": "^4.1.6", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "exit": "^0.1.2", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.1.11", + "jest-config": "^23.6.0", + "jest-haste-map": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-regex-util": "^23.3.0", + "jest-resolve": "^23.6.0", + "jest-snapshot": "^23.6.0", + "jest-util": "^23.4.0", + "jest-validate": "^23.6.0", + "micromatch": "^2.3.11", + "realpath-native": "^1.0.0", + "slash": "^1.0.0", + "strip-bom": "3.0.0", + "write-file-atomic": "^2.1.0", + "yargs": "^11.0.0" + }, + "bin": { + "jest-runtime": "bin/jest-runtime.js" + } + }, + "node_modules/jest-runtime/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dependencies": { + "arr-flatten": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dependencies": { + "is-posix-bracket": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-runtime/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-runtime/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-serializer": { + "version": "23.0.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-23.0.1.tgz", + "integrity": "sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU=" + }, + "node_modules/jest-snapshot": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-23.6.0.tgz", + "integrity": "sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg==", + "dependencies": { + "babel-types": "^6.0.0", + "chalk": "^2.0.1", + "jest-diff": "^23.6.0", + "jest-matcher-utils": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-resolve": "^23.6.0", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^23.6.0", + "semver": "^5.5.0" + } + }, + "node_modules/jest-snapshot/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-snapshot/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-snapshot/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-util": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-23.4.0.tgz", + "integrity": "sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE=", + "dependencies": { + "callsites": "^2.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.11", + "is-ci": "^1.0.10", + "jest-message-util": "^23.4.0", + "mkdirp": "^0.5.1", + "slash": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-util/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-util/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/jest-util/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-validate": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-23.6.0.tgz", + "integrity": "sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A==", + "dependencies": { + "chalk": "^2.0.1", + "jest-get-type": "^22.1.0", + "leven": "^2.1.0", + "pretty-format": "^23.6.0" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-watcher": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-23.4.0.tgz", + "integrity": "sha1-0uKM50+NrWxq/JIrksq+9u0FyRw=", + "dependencies": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "string-length": "^2.0.0" + } + }, + "node_modules/jest-watcher/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-watcher/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-watcher/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-worker": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-23.2.0.tgz", + "integrity": "sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk=", + "dependencies": { + "merge-stream": "^1.0.1" + } + }, + "node_modules/joi": { + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-11.4.0.tgz", + "integrity": "sha512-O7Uw+w/zEWgbL6OcHbyACKSj0PkQeUgmehdoXVSxt92QFCq4+1390Rwh5moI2K/OgC7D8RHRZqHZxT2husMJHA==", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "dependencies": { + "hoek": "4.x.x", + "isemail": "3.x.x", + "topo": "2.x.x" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/jquery": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", + "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", + "peer": true + }, + "node_modules/js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "node_modules/jsdom": { + "version": "16.5.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.1.tgz", + "integrity": "sha512-pF73EOsJgwZekbDHEY5VO/yKXUkab/DuvrQB/ANVizbr6UAHJsDdHXuotZYwkJSGQl1JM+ivXaqY+XBDDL4TiA==", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.0.5", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "html-encoding-sniffer": "^2.0.1", + "is-potential-custom-element-name": "^1.0.0", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "request": "^2.88.2", + "request-promise-native": "^1.0.9", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0", + "ws": "^7.4.4", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jsdom/node_modules/acorn": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", + "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dependencies": { + "jsonify": "~0.0.0" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "node_modules/json-text-sequence": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", + "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", + "dependencies": { + "delimit-stream": "0.1.0" + } + }, + "node_modules/json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" + }, + "node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dependencies": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/jsx-ast-utils": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz", + "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==", + "dependencies": { + "array-includes": "^3.1.1", + "object.assign": "^4.1.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keccak": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", + "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.2.1", + "inherits": "^2.0.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/keycode": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz", + "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=" + }, + "node_modules/keypair": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.2.tgz", + "integrity": "sha512-7zRr8fKOWp/N8xfZyZV6WG1CUvKNiNahSDI4vjJnPJD60lHtIg62dpv60yCgcM2PP8QKv4S2UkZl+8MsYmQRpw==" + }, + "node_modules/killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" + }, + "node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dependencies": { + "graceful-fs": "^4.1.9" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.9" + } + }, + "node_modules/kleur": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-2.0.2.tgz", + "integrity": "sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ==", + "deprecated": "Please upgrade to kleur@3 or migrate to 'ansi-colors' if you prefer the old syntax. Visit for migration path(s).", + "engines": { + "node": ">=6" + } + }, + "node_modules/last-call-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", + "dependencies": { + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" + } + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "dependencies": { + "invert-kv": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/left-pad": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", + "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", + "deprecated": "use String.prototype.padStart()" + }, + "node_modules/leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/libp2p-crypto": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.19.0.tgz", + "integrity": "sha512-w4tduG32px1i6TwekYZBSvizZTvDdMReZkE4DhUkf9IQ8WSqSo98K+6IZaYYM6PzWd5arbcAQQcFCRalJu9Ytw==", + "dependencies": { + "err-code": "^2.0.0", + "is-typedarray": "^1.0.0", + "iso-random-stream": "^1.1.0", + "keypair": "^1.0.1", + "multibase": "^3.0.0", + "multicodec": "^2.0.0", + "multihashing-async": "^2.0.1", + "node-forge": "^0.10.0", + "pem-jwk": "^2.0.0", + "protons": "^2.0.0", + "secp256k1": "^4.0.0", + "uint8arrays": "^1.1.0", + "ursa-optional": "^0.10.1" + }, + "engines": { + "node": ">=10.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/libp2p-crypto/node_modules/multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "dependencies": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + }, + "engines": { + "node": ">=10.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/libp2p-crypto/node_modules/multicodec": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", + "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "dependencies": { + "uint8arrays": "1.1.0", + "varint": "^6.0.0" + } + }, + "node_modules/libp2p-crypto/node_modules/uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "dependencies": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + }, + "node_modules/libp2p-crypto/node_modules/varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + }, + "node_modules/load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "engines": { + "node": ">=4" + } + }, + "node_modules/loader-fs-cache": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", + "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", + "dependencies": { + "find-cache-dir": "^0.1.1", + "mkdirp": "^0.5.1" + } + }, + "node_modules/loader-fs-cache/node_modules/find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "dependencies": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-fs-cache/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-fs-cache/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-fs-cache/node_modules/pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dependencies": { + "find-up": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "node_modules/lodash.tail": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", + "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=" + }, + "node_modules/lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dependencies": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "node_modules/lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dependencies": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, + "node_modules/loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dependencies": { + "tmpl": "1.0.x" + } + }, + "node_modules/mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", + "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==" + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/map-age-cleaner/node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "engines": { + "node": ">=4" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "dependencies": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mem/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/memory-fs/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/memory-fs/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/memory-fs/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==" + }, + "node_modules/merge-deep": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz", + "integrity": "sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==", + "dependencies": { + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "node_modules/merge-options": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", + "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "dependencies": { + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + "dependencies": { + "readable-stream": "^2.0.1" + } + }, + "node_modules/merge-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/merge-stream/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/merge-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", + "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", + "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "dependencies": { + "mime-db": "1.46.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "dependencies": { + "dom-walk": "^0.1.0" + } + }, + "node_modules/mini-create-react-context": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", + "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", + "dependencies": { + "@babel/runtime": "^7.12.1", + "tiny-warning": "^1.0.3" + }, + "peerDependencies": { + "prop-types": "^15.0.0", + "react": "^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.3.tgz", + "integrity": "sha512-Mxs0nxzF1kxPv4TRi2NimewgXlJqh0rGE30vviCU2WHrpbta6wklnUV9dr9FUtoAHmB3p3LeXEC+ZjgHvB0Dzg==", + "dependencies": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "engines": { + "node": ">= 6.9.0 <7.0.0 || >= 8.9.0" + }, + "peerDependencies": { + "webpack": "^4.4.0" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "dependencies": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-object/node_modules/for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz", + "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==", + "dependencies": { + "browser-stdout": "1.3.0", + "commander": "2.11.0", + "debug": "3.1.0", + "diff": "3.3.1", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.3", + "he": "1.1.1", + "mkdirp": "0.5.1", + "supports-color": "4.4.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/mocha/node_modules/commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" + }, + "node_modules/mocha/node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/mocha/node_modules/diff": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", + "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mocha/node_modules/he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "bin": { + "he": "bin/he" + } + }, + "node_modules/mocha/node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "node_modules/mocha/node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "dependencies": { + "has-flag": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/multiaddr": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-8.1.2.tgz", + "integrity": "sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ==", + "dependencies": { + "cids": "^1.0.0", + "class-is": "^1.1.0", + "dns-over-http-resolver": "^1.0.0", + "err-code": "^2.0.3", + "is-ip": "^3.1.0", + "multibase": "^3.0.0", + "uint8arrays": "^1.1.0", + "varint": "^5.0.0" + } + }, + "node_modules/multiaddr-to-uri": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-6.0.0.tgz", + "integrity": "sha512-OjpkVHOXEmIKMO8WChzzQ7aZQcSQX8squxmvtDbRpy7/QNmJ3Z7jv6qyD74C28QtaeNie8O8ngW2AkeiMmKP7A==", + "dependencies": { + "multiaddr": "^8.0.0" + } + }, + "node_modules/multiaddr/node_modules/multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "dependencies": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + }, + "engines": { + "node": ">=10.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/multiaddr/node_modules/uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "dependencies": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + }, + "node_modules/multibase": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.2.tgz", + "integrity": "sha512-l0XMK4O5I9cCfxC0/UMDX/UxlIlrqkjEZQNG+ZUUrsGhnXWgFXgatYOQSONiR/lQGfBO463UyZkh3SiQBpjRIQ==", + "dependencies": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.1.0" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" + }, + "node_modules/multicodec": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.0.1.tgz", + "integrity": "sha512-Y6j3wiPojvkF/z6KFIGt84KdJdP2oILEdzc/3YbD3qQ3EerhqtYlfsZTPPNVoCCxNZZdzIpCKrdYFSav17sIrQ==", + "dependencies": { + "uint8arrays": "^2.1.3", + "varint": "^5.0.2" + } + }, + "node_modules/multihashes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz", + "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==", + "dependencies": { + "multibase": "^4.0.1", + "uint8arrays": "^2.1.3", + "varint": "^5.0.2" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/multihashing-async": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-2.1.2.tgz", + "integrity": "sha512-FTPNnWWxwIK5dXXmTFhySSF8Fkdqf7vzqpV09+RWsmfUhrsL/b3Arg3+bRrBnXTtjxm3JRGI3wSAtQHL0QCxhQ==", + "dependencies": { + "blakejs": "^1.1.0", + "err-code": "^3.0.0", + "js-sha3": "^0.8.0", + "multihashes": "^4.0.1", + "murmurhash3js-revisited": "^3.0.0", + "uint8arrays": "^2.1.3" + }, + "engines": { + "node": ">=12.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/multihashing-async/node_modules/err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + }, + "node_modules/murmurhash3js-revisited": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", + "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "node_modules/nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" + }, + "node_modules/nanoid": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.21.tgz", + "integrity": "sha512-A6oZraK4DJkAOICstsGH98dvycPr/4GGDH7ZWKmMdd3vGcOurZ6JmWFUt0DA5bzrrn2FrUjmv6mFNWvv8jpppA==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/native-abort-controller": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.3.tgz", + "integrity": "sha512-fd5LY5q06mHKZPD5FmMrn7Lkd2H018oBGKNOAdLpctBDEPFKsfJ1nX9ke+XRa8PEJJpjqrpQkGjq2IZ27QNmYA==", + "peerDependencies": { + "abort-controller": "*" + } + }, + "node_modules/native-fetch": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-2.0.1.tgz", + "integrity": "sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ==", + "dependencies": { + "globalthis": "^1.0.1" + }, + "peerDependencies": { + "node-fetch": "*" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "node_modules/next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "node_modules/no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dependencies": { + "lower-case": "^1.1.1" + } + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/node-gyp-build": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", + "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/node-libs-browser/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "node_modules/node-libs-browser/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/node-notifier": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.5.tgz", + "integrity": "sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ==", + "dependencies": { + "growly": "^1.3.0", + "is-wsl": "^1.1.0", + "semver": "^5.5.0", + "shellwords": "^0.1.1", + "which": "^1.3.0" + } + }, + "node_modules/node-releases": { + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==" + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", + "dependencies": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/number-to-bn/node_modules/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + }, + "node_modules/nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dependencies": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", + "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/opn": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.4.0.tgz", + "integrity": "sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==", + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/optimize-css-assets-webpack-plugin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.1.tgz", + "integrity": "sha512-Rqm6sSjWtx9FchdP0uzTQDc7GXDKnwVEGoSxjezPkzMewx7gEWE9IMUYKmigTRC4U3RaNSwYVnUDLuIdtTpm0A==", + "dependencies": { + "cssnano": "^4.1.0", + "last-call-webpack-plugin": "^3.0.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dependencies": { + "url-parse": "^1.4.3" + } + }, + "node_modules/original-require": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/original-require/-/original-require-1.0.1.tgz", + "integrity": "sha1-DxMEcVhM0zURxew4yNWSE/msXiA=" + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "dependencies": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/os-locale/node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/os-locale/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/p-defer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-fifo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", + "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", + "dependencies": { + "fast-fifo": "^1.0.0", + "p-defer": "^3.0.0" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "engines": { + "node": ">=4" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "node_modules/parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/parallel-transform/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/parallel-transform/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/parallel-transform/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-duration": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-0.4.4.tgz", + "integrity": "sha512-KbAJuYGUhZkB9gotDiKLnZ7Z3VTacK3fgwmDdB6ZVDtJbMBT6MfLga0WJaYpPDu0mzqT0NgHtHDt5PY4l0nidg==" + }, + "node_modules/parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dependencies": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-glob/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-glob/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/parse-headers": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "node_modules/path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "dependencies": { + "isarray": "0.0.1" + } + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/peer-id": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.14.3.tgz", + "integrity": "sha512-3ug6gDFWPuzihjjhMC0G/EEyaJaM9JCKPZqvPhwnsbhIUbutbS/MMF8Mb+TdDE1IksOXgCKNmohSZBJ/gFijOg==", + "dependencies": { + "cids": "^1.1.5", + "class-is": "^1.1.0", + "libp2p-crypto": "^0.19.0", + "minimist": "^1.2.5", + "multihashes": "^3.1.1", + "protons": "^2.0.0", + "uint8arrays": "^2.0.5" + }, + "bin": { + "peer-id": "src/bin.js" + }, + "engines": { + "node": ">=10.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/peer-id/node_modules/multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "dependencies": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + }, + "engines": { + "node": ">=10.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/peer-id/node_modules/multihashes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-3.1.2.tgz", + "integrity": "sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ==", + "dependencies": { + "multibase": "^3.1.0", + "uint8arrays": "^2.0.5", + "varint": "^6.0.0" + }, + "engines": { + "node": ">=10.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/peer-id/node_modules/varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + }, + "node_modules/pem-jwk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-2.0.0.tgz", + "integrity": "sha512-rFxu7rVoHgQ5H9YsP50dDWf0rHjreVA2z0yPiWr5WdH/UHb29hKtF7h6l8vNd1cbYR1t0QL+JKhW55a2ZV4KtA==", + "dependencies": { + "asn1.js": "^5.0.1" + }, + "bin": { + "pem-jwk": "bin/pem-jwk.js" + }, + "engines": { + "node": ">=5.10.0" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "optional": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "engines": { + "node": ">=4" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", + "engines": { + "node": ">=4" + } + }, + "node_modules/pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" + }, + "node_modules/pnp-webpack-plugin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.1.0.tgz", + "integrity": "sha512-CPCdcFxx7fEcDMWTDjXe2Wypt4JuMt4q5Q2UrpTcyBBkLiCIyPEh/mCGmUWIcNkKGyXwQ9Y2wVhlKm6ketiBNQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", + "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-attribute-case-insensitive": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", + "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", + "dependencies": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^6.0.2" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-attribute-case-insensitive/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "dependencies": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/postcss-calc/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-calc/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-calc/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-calc/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-calc/node_modules/postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, + "node_modules/postcss-calc/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-calc/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-color-functional-notation": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", + "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-functional-notation/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-color-functional-notation/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-color-functional-notation/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-color-functional-notation/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-color-functional-notation/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-color-functional-notation/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-color-gray": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", + "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", + "dependencies": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-gray/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-color-gray/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-color-gray/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-color-gray/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-color-gray/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-color-gray/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-color-hex-alpha": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", + "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", + "dependencies": { + "postcss": "^7.0.14", + "postcss-values-parser": "^2.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-hex-alpha/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-color-hex-alpha/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-color-hex-alpha/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-color-hex-alpha/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-color-hex-alpha/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-color-hex-alpha/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-color-mod-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", + "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", + "dependencies": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-mod-function/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-color-mod-function/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-color-mod-function/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-color-mod-function/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-color-mod-function/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-color-mod-function/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-color-rebeccapurple": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", + "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-color-rebeccapurple/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-color-rebeccapurple/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-color-rebeccapurple/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-color-rebeccapurple/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-color-rebeccapurple/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-color-rebeccapurple/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dependencies": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-colormin/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-colormin/node_modules/browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dependencies": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/postcss-colormin/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-colormin/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-colormin/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-colormin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-colormin/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-convert-values/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-convert-values/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-convert-values/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-convert-values/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-convert-values/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-convert-values/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-custom-media": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", + "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", + "dependencies": { + "postcss": "^7.0.14" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-custom-media/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-custom-media/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-custom-media/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-custom-media/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-custom-media/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-custom-media/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-custom-properties": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", + "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", + "dependencies": { + "postcss": "^7.0.17", + "postcss-values-parser": "^2.0.1" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-custom-properties/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-custom-properties/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-custom-properties/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-custom-properties/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-custom-properties/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-custom-properties/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-custom-selectors": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", + "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", + "dependencies": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-custom-selectors/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-custom-selectors/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-custom-selectors/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-custom-selectors/node_modules/cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-custom-selectors/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dependencies": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-custom-selectors/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-custom-selectors/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-dir-pseudo-class": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", + "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", + "dependencies": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dependencies": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-dir-pseudo-class/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-comments/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-comments/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-comments/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-comments/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-discard-comments/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-discard-comments/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-duplicates/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-duplicates/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-duplicates/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-duplicates/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-discard-duplicates/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-discard-duplicates/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-empty/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-empty/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-empty/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-empty/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-discard-empty/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-discard-empty/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-overridden/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-overridden/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-overridden/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-discard-overridden/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-discard-overridden/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-discard-overridden/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-double-position-gradients": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", + "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", + "dependencies": { + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-double-position-gradients/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-double-position-gradients/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-double-position-gradients/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-double-position-gradients/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-double-position-gradients/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-double-position-gradients/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-env-function": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", + "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-env-function/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-env-function/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-env-function/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-env-function/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-env-function/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-env-function/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-flexbugs-fixes": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz", + "integrity": "sha512-jr1LHxQvStNNAHlgco6PzY308zvLklh7SJVYuWUwyUQncofaAlD2l+P/gxKHOdqWKe7xJSkVLFF/2Tp+JqMSZA==", + "dependencies": { + "postcss": "^7.0.0" + } + }, + "node_modules/postcss-flexbugs-fixes/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-flexbugs-fixes/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-flexbugs-fixes/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-flexbugs-fixes/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-flexbugs-fixes/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-flexbugs-fixes/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-focus-visible": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", + "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-focus-visible/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-focus-visible/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-focus-visible/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-focus-visible/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-focus-visible/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-focus-visible/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-focus-within": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", + "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-focus-within/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-focus-within/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-focus-within/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-focus-within/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-focus-within/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-focus-within/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-font-variant": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", + "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==", + "dependencies": { + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-font-variant/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-font-variant/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-font-variant/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-font-variant/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-font-variant/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-font-variant/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-gap-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", + "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-gap-properties/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-gap-properties/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-gap-properties/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-gap-properties/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-gap-properties/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-gap-properties/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-image-set-function": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", + "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-image-set-function/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-image-set-function/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-image-set-function/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-image-set-function/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-image-set-function/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-image-set-function/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-initial": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.2.tgz", + "integrity": "sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA==", + "dependencies": { + "lodash.template": "^4.5.0", + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-initial/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-initial/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-initial/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-initial/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-initial/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-initial/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-lab-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", + "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", + "dependencies": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-lab-function/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-lab-function/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-lab-function/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-lab-function/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-lab-function/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-lab-function/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "dependencies": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "dependencies": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-loader/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-loader/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-loader/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-loader/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-loader/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-logical": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", + "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-logical/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-logical/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-logical/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-logical/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-logical/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-logical/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-media-minmax": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", + "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-media-minmax/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-media-minmax/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-media-minmax/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-media-minmax/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-media-minmax/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-media-minmax/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dependencies": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-longhand/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-merge-longhand/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-merge-longhand/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-merge-longhand/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-merge-longhand/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-merge-longhand/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-rules/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-merge-rules/node_modules/browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dependencies": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/postcss-merge-rules/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-merge-rules/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-merge-rules/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-merge-rules/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-merge-rules/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-font-values/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-minify-font-values/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-minify-font-values/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-minify-font-values/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-minify-font-values/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-minify-font-values/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-gradients/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-minify-gradients/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-minify-gradients/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-minify-gradients/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-minify-gradients/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-minify-gradients/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dependencies": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-params/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-minify-params/node_modules/browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dependencies": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/postcss-minify-params/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-minify-params/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-minify-params/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-minify-params/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-minify-params/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dependencies": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-selectors/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-minify-selectors/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-minify-selectors/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-minify-selectors/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-minify-selectors/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-minify-selectors/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", + "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", + "dependencies": { + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dependencies": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dependencies": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dependencies": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-nesting": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", + "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-nesting/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-nesting/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-nesting/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-nesting/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-nesting/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-nesting/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-charset/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-charset/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-charset/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-charset/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-charset/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-charset/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-positions/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-positions/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-positions/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-positions/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-positions/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-positions/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dependencies": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-string/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-string/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-string/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-string/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-string/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-string/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dependencies": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dependencies": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-url/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-url/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-url/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-url/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-url/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-url/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-ordered-values/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-ordered-values/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-ordered-values/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-ordered-values/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-ordered-values/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-ordered-values/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-overflow-shorthand": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", + "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", + "dependencies": { + "postcss": "^7.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-overflow-shorthand/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-overflow-shorthand/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-overflow-shorthand/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-overflow-shorthand/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-overflow-shorthand/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-overflow-shorthand/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-page-break": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", + "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", + "dependencies": { + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-page-break/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-page-break/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-page-break/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-page-break/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-page-break/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-page-break/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-place": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", + "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", + "dependencies": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-place/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-place/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-place/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-place/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-place/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-place/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-preset-env": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.3.1.tgz", + "integrity": "sha512-erl+OcCTr1+jsfJNQjBweyb8Y1s6KngUBwoqJnRXO197PmEE6u9HxZfnpKkTQqasxZljxNHzXR5hMb7MdD0Zdw==", + "dependencies": { + "autoprefixer": "^9.3.1", + "browserslist": "^4.3.4", + "caniuse-lite": "^1.0.30000905", + "cssdb": "^4.1.0", + "postcss": "^7.0.5", + "postcss-attribute-case-insensitive": "^4.0.0", + "postcss-color-functional-notation": "^2.0.1", + "postcss-color-gray": "^5.0.0", + "postcss-color-hex-alpha": "^5.0.2", + "postcss-color-mod-function": "^3.0.3", + "postcss-color-rebeccapurple": "^4.0.1", + "postcss-custom-media": "^7.0.7", + "postcss-custom-properties": "^8.0.9", + "postcss-custom-selectors": "^5.1.2", + "postcss-dir-pseudo-class": "^5.0.0", + "postcss-double-position-gradients": "^1.0.0", + "postcss-env-function": "^2.0.2", + "postcss-focus-visible": "^4.0.0", + "postcss-focus-within": "^3.0.0", + "postcss-font-variant": "^4.0.0", + "postcss-gap-properties": "^2.0.0", + "postcss-image-set-function": "^3.0.1", + "postcss-initial": "^3.0.0", + "postcss-lab-function": "^2.0.1", + "postcss-logical": "^3.0.0", + "postcss-media-minmax": "^4.0.0", + "postcss-nesting": "^7.0.0", + "postcss-overflow-shorthand": "^2.0.0", + "postcss-page-break": "^2.0.0", + "postcss-place": "^4.0.1", + "postcss-pseudo-class-any-link": "^6.0.0", + "postcss-replace-overflow-wrap": "^3.0.0", + "postcss-selector-matches": "^4.0.0", + "postcss-selector-not": "^4.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-preset-env/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-preset-env/node_modules/browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dependencies": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/postcss-preset-env/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-preset-env/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-preset-env/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-preset-env/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-preset-env/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-pseudo-class-any-link": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", + "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", + "dependencies": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dependencies": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-pseudo-class-any-link/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-initial/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-reduce-initial/node_modules/browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dependencies": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/postcss-reduce-initial/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-reduce-initial/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-reduce-initial/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-reduce-initial/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-reduce-initial/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-replace-overflow-wrap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", + "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", + "dependencies": { + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-replace-overflow-wrap/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-replace-overflow-wrap/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-replace-overflow-wrap/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-replace-overflow-wrap/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-replace-overflow-wrap/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-replace-overflow-wrap/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-safe-parser": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz", + "integrity": "sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ==", + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/postcss-safe-parser/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-safe-parser/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-safe-parser/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-safe-parser/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-safe-parser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-safe-parser/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-selector-matches": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", + "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", + "dependencies": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-selector-matches/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-selector-matches/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-selector-matches/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-selector-matches/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-selector-matches/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-selector-matches/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-selector-not": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", + "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==", + "dependencies": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + } + }, + "node_modules/postcss-selector-not/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-selector-not/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-selector-not/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-selector-not/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-selector-not/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-selector-not/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "dependencies": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dependencies": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-svgo/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-svgo/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-svgo/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dependencies": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-unique-selectors/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-unique-selectors/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-unique-selectors/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-unique-selectors/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/postcss-unique-selectors/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-unique-selectors/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "node_modules/postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "dependencies": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=6.14.4" + } + }, + "node_modules/postcss/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-bytes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "dependencies": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "node_modules/pretty-format": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", + "dependencies": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "node_modules/prompts": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-0.1.14.tgz", + "integrity": "sha512-rxkyiE9YH6zAz/rZpywySLKkpaj0NMVyNw1qhsubdbjjSgcayjTShDreZGlFMcGSu5sab3bAKPfFk78PB90+8w==", + "dependencies": { + "kleur": "^2.0.1", + "sisteransi": "^0.1.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "node_modules/prop-types-extra": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", + "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", + "dependencies": { + "react-is": "^16.3.2", + "warning": "^4.0.0" + }, + "peerDependencies": { + "react": ">=0.14.0" + } + }, + "node_modules/protocol-buffers-schema": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.5.1.tgz", + "integrity": "sha512-YVCvdhxWNDP8/nJDyXLuM+UFsuPk4+1PB7WGPVDzm3HTHbzFLxQYeW2iZpS4mmnXrQJGBzt230t/BbEb7PrQaw==" + }, + "node_modules/protons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/protons/-/protons-2.0.0.tgz", + "integrity": "sha512-BTrE9D6/d1NGis+0D8TqAO1THdn4evHQhfjapA0NUaRH4+ecJJcbqaF7TE/DKv5czE9VB/TeOllBOmCyJhHnhg==", + "dependencies": { + "protocol-buffers-schema": "^3.3.1", + "signed-varint": "^2.0.1", + "uint8arrays": "^1.0.0", + "varint": "^5.0.0" + } + }, + "node_modules/protons/node_modules/multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "dependencies": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + }, + "engines": { + "node": ">=10.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/protons/node_modules/uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "dependencies": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + }, + "node_modules/proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "dependencies": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "dependencies": { + "performance-now": "^2.1.0" + } + }, + "node_modules/randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dependencies": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/randomatic/node_modules/is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/randomatic/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/raw-body/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react": { + "version": "16.8.4", + "resolved": "https://registry.npmjs.org/react/-/react-16.8.4.tgz", + "integrity": "sha512-0GQ6gFXfUH7aZcjGVymlPOASTuSjlQL4ZtVC5YKH+3JL6bBLCVO21DknzmaPlI90LN253ojj02nsapy+j7wIjg==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.13.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-app-polyfill": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-0.2.2.tgz", + "integrity": "sha512-mAYn96B/nB6kWG87Ry70F4D4rsycU43VYTj3ZCbKP+SLJXwC0x6YCbwcICh3uW8/C9s1VgP197yx+w7SCWeDdQ==", + "dependencies": { + "core-js": "2.6.4", + "object-assign": "4.1.1", + "promise": "8.0.2", + "raf": "3.4.1", + "whatwg-fetch": "3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/react-app-polyfill/node_modules/core-js": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.4.tgz", + "integrity": "sha512-05qQ5hXShcqGkPZpXEFLIpxayZscVD2kuMBZewxiIPPEagukO4mqgPA9CWhUvFBJfy3ODdK2p9xyHh7FTU9/7A==", + "deprecated": "core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3." + }, + "node_modules/react-app-polyfill/node_modules/promise": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.2.tgz", + "integrity": "sha512-EIyzM39FpVOMbqgzEHhxdrEhtOSDOtjMZQ0M6iVfCE+kWNgCkAyOdnuCWqfmflylftfadU6FkiMgHZA2kUzwRw==", + "dependencies": { + "asap": "~2.0.6" + } + }, + "node_modules/react-app-polyfill/node_modules/whatwg-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + }, + "node_modules/react-bootstrap": { + "version": "1.0.0-beta.5", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.0.0-beta.5.tgz", + "integrity": "sha512-Osm0OtTbYwfsT1rpu88ESWuAHZxfaHFNKFiW8w3w+6YY9/bLEPHbGRZA6W21fg5yvcuKN9hJKT857TTHgY7SoQ==", + "dependencies": { + "@babel/runtime": "^7.2.0", + "@react-bootstrap/react-popper": "1.2.1", + "classnames": "^2.2.6", + "dom-helpers": "^3.4.0", + "invariant": "^2.2.3", + "keycode": "^2.1.2", + "popper.js": "^1.14.6", + "prop-types": "^15.6.2", + "prop-types-extra": "^1.1.0", + "react-context-toolbox": "^2.0.2", + "react-overlays": "^1.0.0", + "react-prop-types": "^0.4.0", + "react-transition-group": "^2.5.1", + "uncontrollable": "^6.0.0", + "warning": "^4.0.1" + }, + "peerDependencies": { + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + } + }, + "node_modules/react-context-toolbox": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/react-context-toolbox/-/react-context-toolbox-2.0.2.tgz", + "integrity": "sha512-tY4j0imkYC3n5ZlYSgFkaw7fmlCp3IoQQ6DxpqeNHzcD0hf+6V+/HeJxviLUZ1Rv1Yn3N3xyO2EhkkZwHn0m1A==", + "peerDependencies": { + "react": ">=16.3.2" + } + }, + "node_modules/react-dev-utils": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-7.0.5.tgz", + "integrity": "sha512-zJnqqb0x6gd63E3xoz5pXAxBPNaW75Hyz7GgQp0qPhMroBCRQtRvG67AoTZZY1z4yCYVJQZAfQJFdnea0Ujbug==", + "dependencies": { + "@babel/code-frame": "7.0.0", + "address": "1.0.3", + "browserslist": "4.4.1", + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "detect-port-alt": "1.1.6", + "escape-string-regexp": "1.0.5", + "filesize": "3.6.1", + "find-up": "3.0.0", + "global-modules": "2.0.0", + "globby": "8.0.2", + "gzip-size": "5.0.0", + "immer": "1.10.0", + "inquirer": "6.2.1", + "is-root": "2.0.0", + "loader-utils": "1.2.3", + "opn": "5.4.0", + "pkg-up": "2.0.0", + "react-error-overlay": "^5.1.4", + "recursive-readdir": "2.2.2", + "shell-quote": "1.6.1", + "sockjs-client": "1.3.0", + "strip-ansi": "5.0.0", + "text-table": "0.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/react-dev-utils/node_modules/@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "dependencies": { + "@babel/highlight": "^7.0.0" + } + }, + "node_modules/react-dev-utils/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/react-dev-utils/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/react-dev-utils/node_modules/browserslist": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.1.tgz", + "integrity": "sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A==", + "dependencies": { + "caniuse-lite": "^1.0.30000929", + "electron-to-chromium": "^1.3.103", + "node-releases": "^1.1.3" + }, + "bin": { + "browserslist": "cli.js" + } + }, + "node_modules/react-dev-utils/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/react-dev-utils/node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/react-dev-utils/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/react-dev-utils/node_modules/inquirer": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz", + "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==", + "dependencies": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.17.10", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.0.0", + "through": "^2.3.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/react-dev-utils/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/react-dev-utils/node_modules/loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/react-dev-utils/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/react-dev-utils/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/react-dev-utils/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/react-dev-utils/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/react-dev-utils/node_modules/strip-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", + "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", + "dependencies": { + "ansi-regex": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/react-dev-utils/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/react-dom": { + "version": "16.8.4", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.4.tgz", + "integrity": "sha512-Ob2wK7XG2tUDt7ps7LtLzGYYB6DXMCLj0G5fO6WeEICtT4/HdpOi7W/xLzZnR6RCG1tYza60nMdqtxzA8FaPJQ==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.13.4" + }, + "peerDependencies": { + "react": "^16.0.0" + } + }, + "node_modules/react-error-overlay": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-5.1.6.tgz", + "integrity": "sha512-X1Y+0jR47ImDVr54Ab6V9eGk0Hnu7fVWGeHQSOXHf/C2pF9c6uy3gef8QUeuUiWlNb0i08InPSE5a/KJzNzw1Q==" + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "node_modules/react-overlays": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-1.2.0.tgz", + "integrity": "sha512-i/FCV8wR6aRaI+Kz/dpJhOdyx+ah2tN1RhT9InPrexyC4uzf3N4bNayFTGtUeQVacj57j1Mqh1CwV60/5153Iw==", + "dependencies": { + "classnames": "^2.2.6", + "dom-helpers": "^3.4.0", + "prop-types": "^15.6.2", + "prop-types-extra": "^1.1.0", + "react-context-toolbox": "^2.0.2", + "react-popper": "^1.3.2", + "uncontrollable": "^6.0.0", + "warning": "^4.0.2" + }, + "peerDependencies": { + "react": ">=16.3.0", + "react-dom": ">=16.3.0" + } + }, + "node_modules/react-popper": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.11.tgz", + "integrity": "sha512-VSA/bS+pSndSF2fiasHK/PTEEAyOpX60+H5EPAjoArr8JGm+oihu4UbrqcEBpQibJxBVCpYyjAX7abJ+7DoYVg==", + "dependencies": { + "@babel/runtime": "^7.1.2", + "@hypnosphi/create-react-context": "^0.3.1", + "deep-equal": "^1.1.1", + "popper.js": "^1.14.4", + "prop-types": "^15.6.1", + "typed-styles": "^0.0.7", + "warning": "^4.0.2" + }, + "peerDependencies": { + "react": "0.14.x || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/react-popper/node_modules/typed-styles": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.7.tgz", + "integrity": "sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==" + }, + "node_modules/react-prop-types": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.4.0.tgz", + "integrity": "sha1-+ZsL+0AGkpya8gUefBQUpcdbk9A=", + "dependencies": { + "warning": "^3.0.0" + }, + "peerDependencies": { + "react": ">=0.14.0" + } + }, + "node_modules/react-prop-types/node_modules/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/react-router": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", + "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", + "dependencies": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.4.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-router-dom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz", + "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==", + "dependencies": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.2.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + }, + "peerDependencies": { + "react": ">=15" + } + }, + "node_modules/react-scripts": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-2.1.3.tgz", + "integrity": "sha512-JASD0QVVgSVleVhA9TeA+UBx+shq887hm/L+09qjZLrqIUvJZHZU+oOnhMFGot02Yop+LKfkvf9KSsTNlu/Rwg==", + "dependencies": { + "@babel/core": "7.1.6", + "@svgr/webpack": "2.4.1", + "babel-core": "7.0.0-bridge.0", + "babel-eslint": "9.0.0", + "babel-jest": "23.6.0", + "babel-loader": "8.0.4", + "babel-plugin-named-asset-import": "^0.3.0", + "babel-preset-react-app": "^7.0.0", + "bfj": "6.1.1", + "case-sensitive-paths-webpack-plugin": "2.1.2", + "chalk": "2.4.1", + "css-loader": "1.0.0", + "dotenv": "6.0.0", + "dotenv-expand": "4.2.0", + "eslint": "5.6.0", + "eslint-config-react-app": "^3.0.6", + "eslint-loader": "2.1.1", + "eslint-plugin-flowtype": "2.50.1", + "eslint-plugin-import": "2.14.0", + "eslint-plugin-jsx-a11y": "6.1.2", + "eslint-plugin-react": "7.11.1", + "file-loader": "2.0.0", + "fork-ts-checker-webpack-plugin-alt": "0.4.14", + "fs-extra": "7.0.0", + "fsevents": "1.2.4", + "html-webpack-plugin": "4.0.0-alpha.2", + "identity-obj-proxy": "3.0.0", + "jest": "23.6.0", + "jest-pnp-resolver": "1.0.1", + "jest-resolve": "23.6.0", + "mini-css-extract-plugin": "0.4.3", + "optimize-css-assets-webpack-plugin": "5.0.1", + "pnp-webpack-plugin": "1.1.0", + "postcss-flexbugs-fixes": "4.1.0", + "postcss-loader": "3.0.0", + "postcss-preset-env": "6.3.1", + "postcss-safe-parser": "4.0.1", + "react-app-polyfill": "^0.2.0", + "react-dev-utils": "^7.0.1", + "resolve": "1.8.1", + "sass-loader": "7.1.0", + "style-loader": "0.23.0", + "terser-webpack-plugin": "1.1.0", + "url-loader": "1.1.1", + "webpack": "4.19.1", + "webpack-dev-server": "3.1.14", + "webpack-manifest-plugin": "2.0.4", + "workbox-webpack-plugin": "3.6.3" + }, + "bin": { + "react-scripts": "bin/react-scripts.js" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "fsevents": "1.2.4" + } + }, + "node_modules/react-scripts/node_modules/@babel/core": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.6.tgz", + "integrity": "sha512-Hz6PJT6e44iUNpAn8AoyAs6B3bl60g7MJQaI0rZEar6ECzh6+srYO1xlIdssio34mPaUtAb1y+XlkkSJzok3yw==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.1.6", + "@babel/helpers": "^7.1.5", + "@babel/parser": "^7.1.6", + "@babel/template": "^7.1.2", + "@babel/traverse": "^7.1.6", + "@babel/types": "^7.1.6", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.10", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/react-scripts/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/react-scripts/node_modules/babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/react-scripts/node_modules/chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/react-scripts/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/react-scripts/node_modules/fs-extra": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz", + "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/react-scripts/node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/react-scripts/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dependencies": { + "graceful-fs": "^4.1.6" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/react-scripts/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/react-scripts/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/react-scripts/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "dependencies": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + }, + "peerDependencies": { + "react": ">=15.0.0", + "react-dom": ">=15.0.0" + } + }, + "node_modules/read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dependencies": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dependencies": { + "pify": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/readdirp/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/readdirp/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/realpath-native": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", + "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", + "dependencies": { + "util.promisify": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/receptacle": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", + "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/receptacle/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "dependencies": { + "minimatch": "3.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "node_modules/regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "dependencies": { + "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" + }, + "node_modules/regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dependencies": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "node_modules/regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dependencies": { + "is-equal-shallow": "^0.1.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regex-not/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "engines": { + "node": ">=6.5.0" + } + }, + "node_modules/regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dependencies": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "node_modules/regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" + }, + "node_modules/regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "node_modules/renderkid": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz", + "integrity": "sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==", + "dependencies": { + "css-select": "^2.0.2", + "dom-converter": "^0.2", + "htmlparser2": "^3.10.1", + "lodash": "^4.17.20", + "strip-ansi": "^3.0.0" + } + }, + "node_modules/repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "dependencies": { + "lodash": "^4.17.19" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", + "dependencies": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "engines": { + "node": ">=0.12.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/request-promise-native/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/request/node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/request/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "node_modules/require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dependencies": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-uncached/node_modules/caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dependencies": { + "callsites": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-uncached/node_modules/callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-uncached/node_modules/resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "node_modules/reset": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/reset/-/reset-0.1.0.tgz", + "integrity": "sha1-n8cxQXGZWubLC35YsGznUir0uvs=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/resolve": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "dependencies": { + "path-parse": "^1.0.5" + } + }, + "node_modules/resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated" + }, + "node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retimer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz", + "integrity": "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==" + }, + "node_modules/rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" + }, + "node_modules/rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rlp": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "dependencies": { + "bn.js": "^4.11.1" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/rsvp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", + "engines": { + "node": "0.12.* || 4.* || 6.* || >= 7.*" + } + }, + "node_modules/run": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/run/-/run-1.4.0.tgz", + "integrity": "sha1-4X2ekEOrL+F3dsspnhI3848LT/o=", + "dependencies": { + "minimatch": "*" + }, + "bin": { + "runjs": "cli.js" + }, + "engines": { + "node": ">=v0.9.0" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/rxjs": { + "version": "6.6.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz", + "integrity": "sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg==", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sane": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz", + "integrity": "sha1-tNwYYcIbQn6SlQej51HiosuKs/o=", + "dependencies": { + "anymatch": "^2.0.0", + "capture-exit": "^1.2.0", + "exec-sh": "^0.2.0", + "fb-watchman": "^2.0.0", + "fsevents": "^1.2.3", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5", + "watch": "~0.18.0" + }, + "bin": { + "sane": "src/cli.js" + }, + "engines": { + "node": ">=0.6.0" + }, + "optionalDependencies": { + "fsevents": "^1.2.3" + } + }, + "node_modules/sass-loader": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz", + "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==", + "dependencies": { + "clone-deep": "^2.0.1", + "loader-utils": "^1.0.1", + "lodash.tail": "^4.1.1", + "neo-async": "^2.5.0", + "pify": "^3.0.0", + "semver": "^5.5.0" + }, + "engines": { + "node": ">= 6.9.0 || >= 8.9.0" + }, + "peerDependencies": { + "webpack": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/sass-loader/node_modules/clone-deep": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "dependencies": { + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sass-loader/node_modules/for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dependencies": { + "for-in": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sass-loader/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sass-loader/node_modules/shallow-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", + "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", + "dependencies": { + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sass-loader/node_modules/shallow-clone/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/scheduler": { + "version": "0.13.6", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.6.tgz", + "integrity": "sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/scrypt": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/scrypt/-/scrypt-6.0.3.tgz", + "integrity": "sha1-BOAUpWgrU/pQwtXM4WfXGcBthw0=", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "nan": "^2.0.8" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "node_modules/scrypt.js": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/scrypt.js/-/scrypt.js-0.3.0.tgz", + "integrity": "sha512-42LTc1nyFsyv/o0gcHtDztrn+aqpkaCNt5Qh7ATBZfhEZU7IC/0oT/qbBH+uRNoAPvs2fwiOId68FDEoSRA8/A==", + "dependencies": { + "scrypt": "^6.0.2", + "scryptsy": "^1.2.1" + }, + "optionalDependencies": { + "scrypt": "^6.0.2" + } + }, + "node_modules/scryptsy": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", + "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", + "dependencies": { + "pbkdf2": "^3.0.3" + } + }, + "node_modules/secp256k1": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", + "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "node_modules/selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "dependencies": { + "node-forge": "^0.10.0" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + }, + "node_modules/serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", + "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==" + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + }, + "node_modules/serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shallow-clone": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", + "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", + "dependencies": { + "is-extendable": "^0.1.1", + "kind-of": "^2.0.1", + "lazy-cache": "^0.2.3", + "mixin-object": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shallow-clone/node_modules/kind-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", + "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", + "dependencies": { + "is-buffer": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shallow-clone/node_modules/lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "dependencies": { + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" + } + }, + "node_modules/shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "node_modules/signed-varint": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/signed-varint/-/signed-varint-2.0.1.tgz", + "integrity": "sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk=", + "dependencies": { + "varint": "~5.0.0" + } + }, + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/simple-get": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", + "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", + "dependencies": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + }, + "node_modules/sisteransi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-0.1.1.tgz", + "integrity": "sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g==" + }, + "node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "dependencies": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + } + }, + "node_modules/sockjs-client": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", + "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", + "dependencies": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + } + }, + "node_modules/sockjs-client/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/sockjs-client/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/sockjs/node_modules/faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/solc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.5.0.tgz", + "integrity": "sha512-mdLHDl9WeYrN+FIKcMc9PlPfnA9DG9ur5QpCDKcv6VC4RINAsTF4EMuXMZMKoQTvZhtLyJIVH/BZ+KU830Z8Xg==", + "dependencies": { + "fs-extra": "^0.30.0", + "keccak": "^1.0.2", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "yargs": "^11.0.0" + }, + "bin": { + "solcjs": "solcjs" + } + }, + "node_modules/solc/node_modules/fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "node_modules/solc/node_modules/jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dependencies": { + "graceful-fs": "^4.1.6" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dependencies": { + "source-map": "^0.5.6" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==" + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/spdy-transport/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/spdy-transport/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/spdy/node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/spdy/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/split-string/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "node_modules/stack-utils": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.4.tgz", + "integrity": "sha512-IPDJfugEGbfizBwBZRZ3xpccMdRyP5lqsBWXGQWimVjua/ccLCeMOAVjlc1R7LxFjo5sEDhyNIXd8mo/AiDS9w==", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-browserify/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/stream-browserify/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-http/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/stream-http/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/stream-http/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + }, + "node_modules/stream-to-it": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.2.tgz", + "integrity": "sha512-waULBmQpVdr6TkDzci6t1P7dIaSZ0bHC1TaPXDUeJC5PpSK7U3T0H0Zeo/LWUnd6mnhXOmGGDKAkjUCHw5IOng==", + "dependencies": { + "get-iterator": "^1.0.2" + } + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/string-length": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", + "dependencies": { + "astral-regex": "^1.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-length/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "engines": { + "node": ">=4" + } + }, + "node_modules/string-length/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dependencies": { + "is-utf8": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-comments": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz", + "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==", + "dependencies": { + "babel-extract-comments": "^1.0.0", + "babel-plugin-transform-object-rest-spread": "^6.26.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "dependencies": { + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/style-loader": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.0.tgz", + "integrity": "sha512-uCcN7XWHkqwGVt7skpInW6IGO1tG6ReyFQ1Cseh0VcN6VdcFQi62aG/2F3Y9ueA8x4IVlfaSUxpmQXQD9QrEuQ==", + "dependencies": { + "loader-utils": "^1.1.0", + "schema-utils": "^0.4.5" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/style-loader/node_modules/schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dependencies": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/stylehacks/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/stylehacks/node_modules/browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "dependencies": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + } + }, + "node_modules/stylehacks/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/stylehacks/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/stylehacks/node_modules/postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + } + }, + "node_modules/stylehacks/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylehacks/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylehacks/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/table": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.3.tgz", + "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", + "dependencies": { + "ajv": "^6.0.1", + "ajv-keywords": "^3.0.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/table/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz", + "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==", + "dependencies": { + "commander": "^2.19.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.10" + }, + "bin": { + "terser": "bin/uglifyjs" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz", + "integrity": "sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==", + "dependencies": { + "cacache": "^11.0.2", + "find-cache-dir": "^2.0.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "terser": "^3.8.1", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "engines": { + "node": ">= 6.9.0 <7.0.0 || >= 8.9.0" + }, + "peerDependencies": { + "webpack": "^4.3.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/test-exclude": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.3.tgz", + "integrity": "sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==", + "dependencies": { + "arrify": "^1.0.1", + "micromatch": "^2.3.11", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + } + }, + "node_modules/test-exclude/node_modules/arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dependencies": { + "arr-flatten": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dependencies": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dependencies": { + "is-posix-bracket": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dependencies": { + "is-extglob": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dependencies": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dependencies": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dependencies": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/test-exclude/node_modules/read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dependencies": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "node_modules/throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "node_modules/timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/timeout-abort-controller": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz", + "integrity": "sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==", + "dependencies": { + "abort-controller": "^3.0.0", + "retimer": "^2.0.0" + } + }, + "node_modules/timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" + }, + "node_modules/tiny-invariant": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", + "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "node_modules/to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/topo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz", + "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "dependencies": { + "hoek": "4.x.x" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tough-cookie/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/truffle": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.0.5.tgz", + "integrity": "sha512-YKAfHvq3C5hGCc+S+14FNDM8iZPeta9McocKSAkYBxDTiRfyT6yeDrHmSNEU7fzNAc7jFSlwhY7Cs5bXUR3RKg==", + "dependencies": { + "app-module-path": "^2.2.0", + "mocha": "^4.1.0", + "original-require": "1.0.1", + "solc": "0.5.0" + }, + "bin": { + "truffle": "build/cli.bundled.js" + } + }, + "node_modules/truffle-flattener": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/truffle-flattener/-/truffle-flattener-1.5.0.tgz", + "integrity": "sha512-vmzWG/L5OXoNruMV6u2l2IaheI091e+t+fFCOR9sl46EE3epkSRIwGCmIP/EYDtPsFBIG7e6exttC9/GlfmxEQ==", + "dependencies": { + "@resolver-engine/imports-fs": "^0.2.2", + "@solidity-parser/parser": "^0.8.0", + "find-up": "^2.1.0", + "mkdirp": "^1.0.4", + "tsort": "0.0.1" + }, + "bin": { + "truffle-flattener": "index.js" + } + }, + "node_modules/truffle-flattener/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "node_modules/tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=" + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-styles": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.5.tgz", + "integrity": "sha512-ht+rEe5UsdEBAa3gr64+QjUOqjOLJfWLvl5HZR5Ev9uo/OnD3p43wPeFSB1hNFc13GXQF/JU1Bn0YHLUqBRIlw==" + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/ua-parser-js": { + "version": "0.7.24", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.24.tgz", + "integrity": "sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw==", + "engines": { + "node": "*" + } + }, + "node_modules/uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "deprecated": "support for ECMAScript is superseded by `uglify-js` as of v3.13.0", + "dependencies": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uglify-es/node_modules/commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + }, + "node_modules/uglify-es/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dependencies": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uglify-js/node_modules/commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" + }, + "node_modules/uglify-js/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglifyjs-webpack-plugin": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", + "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", + "dependencies": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "engines": { + "node": ">= 4.8 < 5.0.0 || >= 5.10" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/cacache": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "dependencies": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dependencies": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/ssri": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dependencies": { + "safe-buffer": "^5.1.1" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + }, + "node_modules/uint8arrays": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.3.tgz", + "integrity": "sha512-2h2Z2OIqzrhHmZTv9ViJVyZZreFkHRHeihh7SxLVY/nLUVJhU4ey/u74tWsgMR6hhMSO2g5rhKmdLQIg3lKiUQ==", + "dependencies": { + "multibase": "^4.0.1", + "web-encoding": "^1.1.0" + } + }, + "node_modules/unbox-primitive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz", + "integrity": "sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==", + "dependencies": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.0", + "has-symbols": "^1.0.0", + "which-boxed-primitive": "^1.0.1" + } + }, + "node_modules/uncontrollable": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-6.2.3.tgz", + "integrity": "sha512-VgOAoBU2ptCL2bfTG2Mra0I8i1u6Aq84AFonD5tmCAYSfs3hWvr2Rlw0q2ntoxXTHjcQOmZOh3FKaN+UZVyREQ==", + "dependencies": { + "@babel/runtime": "^7.4.5", + "invariant": "^2.2.4" + }, + "peerDependencies": { + "react": ">=15.0.0" + } + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", + "engines": { + "node": ">=4" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + }, + "node_modules/uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated" + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-loader": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.1.tgz", + "integrity": "sha512-vugEeXjyYFBCUOpX+ZuaunbK3QXMKaQ3zUnRfIpRBlGkY7QizCnzyyn2ASfcxsvyU3ef+CJppVywnl3Kgf13Gg==", + "dependencies": { + "loader-utils": "^1.1.0", + "mime": "^2.0.3", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6.9.0 < 7.0.0 || >= 8.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/url-parse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", + "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + }, + "node_modules/ursa-optional": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz", + "integrity": "sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.14.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.4.tgz", + "integrity": "sha512-MEF05cPSq3AwJ2C7B7sHAA6i53vONoZbMGX8My5auEVm6W+dJ2Jd/TZPyGJ5CH42V2XtbI5FD28HeHeqlPzZ3Q==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.2.0" + } + }, + "node_modules/utf8": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", + "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=" + }, + "node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/util.promisify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", + "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", + "dependencies": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "for-each": "^0.3.3", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, + "node_modules/varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dependencies": { + "makeerror": "1.0.x" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/watch": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", + "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", + "dependencies": { + "exec-sh": "^0.2.0", + "minimist": "^1.2.0" + }, + "bin": { + "watch": "cli.js" + }, + "engines": { + "node": ">=0.1.95" + } + }, + "node_modules/watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "dependencies": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + }, + "optionalDependencies": { + "chokidar": "^3.4.1", + "watchpack-chokidar2": "^2.0.1" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "optional": true, + "dependencies": { + "chokidar": "^2.1.8" + } + }, + "node_modules/watchpack/node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/watchpack/node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/watchpack/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "optional": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/watchpack/node_modules/chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "optional": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.1" + } + }, + "node_modules/watchpack/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "optional": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/watchpack/node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/watchpack/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "optional": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/watchpack/node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "optional": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/watchpack/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "optional": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/watchpack/node_modules/readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "optional": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/watchpack/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "optional": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/web-encoding": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.0.tgz", + "integrity": "sha512-KzYonGdJnZB3qvhK8hKca5qXk/wp+hgwGNTY1TnqtF2CzDzpN8szOC3ejhX9+wbhCq3vQs/TjM8BykS1kor0lQ==", + "dependencies": { + "@zxing/text-encoding": "0.9.0" + }, + "optionalDependencies": { + "@zxing/text-encoding": "0.9.0" + } + }, + "node_modules/web3": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.0.0-beta.55.tgz", + "integrity": "sha512-yJpwy4IUA3T/F9hWzYQVn0GbJCrAaZ0KTIO3iuqkhaYH0Y09KV7k4GzFi4hN7hT4cFTj4yIKaeVCwQ5kzvi2Vg==", + "hasInstallScript": true, + "dependencies": { + "@babel/runtime": "^7.3.1", + "@types/node": "^10.12.18", + "web3-core": "1.0.0-beta.55", + "web3-eth": "1.0.0-beta.55", + "web3-eth-personal": "1.0.0-beta.55", + "web3-net": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-shh": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "node_modules/web3-core": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.55.tgz", + "integrity": "sha512-AMMp7TLEtE7u8IJAu/THrRhBTZyZzeo7Y6GiWYNwb5+KStC9hIGLr9cI1KX9R6ZioTOLRHrqT7awDhnJ1ku2mg==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "@types/bn.js": "^4.11.4", + "@types/node": "^10.12.18", + "lodash": "^4.17.11", + "web3-core-method": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "node_modules/web3-core-helpers": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.55.tgz", + "integrity": "sha512-suj9Xy/lIqajaYLJTEjr2rlFgu6hGYwChHmf8+qNrC2luZA6kirTamtB9VThWMxbywx7p0bqQFjW6zXogAgWhg==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "lodash": "^4.17.11", + "web3-core": "1.0.0-beta.55", + "web3-eth-iban": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "node_modules/web3-core-method": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.55.tgz", + "integrity": "sha512-w1cW/s2ji9qGELHk2uMJCn1ooay0JJLVoPD1nvmsW6OTRWcVjxa62nJrFQhe6P5lEb83Xk9oHgmCxZoVUHibOw==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "eventemitter3": "3.1.0", + "lodash": "^4.17.11", + "rxjs": "^6.4.0", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-subscriptions": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "node_modules/web3-core-subscriptions": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.55.tgz", + "integrity": "sha512-pb3oQbUzK7IoyXwag8TYInQddg0rr7BHxKc+Pbs/92hVNQ5ps4iGMVJKezdrjlQ1IJEEUiDIglXl4LZ1hIuMkw==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "eventemitter3": "^3.1.0", + "lodash": "^4.17.11" + } + }, + "node_modules/web3-eth": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.0.0-beta.55.tgz", + "integrity": "sha512-F3zJ9I1gOgQdNGfi2Dy2lmj6OqCMJoRN01XHhQZagq0HY1JYMfObtfMi5E3L+qsegsSddHbqp4YY57tKx6uxpA==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "ethereumjs-tx": "^1.3.7", + "rxjs": "^6.4.0", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-core-subscriptions": "1.0.0-beta.55", + "web3-eth-abi": "1.0.0-beta.55", + "web3-eth-accounts": "1.0.0-beta.55", + "web3-eth-contract": "1.0.0-beta.55", + "web3-eth-ens": "1.0.0-beta.55", + "web3-eth-iban": "1.0.0-beta.55", + "web3-eth-personal": "1.0.0-beta.55", + "web3-net": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "node_modules/web3-eth-abi": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.55.tgz", + "integrity": "sha512-3h1xnm/vYmKUXTOYAOP0OsB5uijQV76pNNRGKOB6Dq6GR1pbcbD3WrB/4I643YA8l91t5FRzFzUiA3S77R2iqw==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "ethers": "^4.0.27", + "lodash": "^4.17.11", + "web3-utils": "1.0.0-beta.55" + } + }, + "node_modules/web3-eth-accounts": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.55.tgz", + "integrity": "sha512-VfzvwpSDHXqRVelIxsBVhgbV9BkFvhJ/q+bKhnVUUXV0JAhMK/7uC92TsqKk4EBYuqpHyZ1jjqrL4n03fMU7zw==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "browserify-cipher": "^1.0.1", + "eth-lib": "0.2.8", + "lodash": "^4.17.11", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "scrypt.js": "0.3.0", + "uuid": "3.3.2", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "node_modules/web3-eth-accounts/node_modules/uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/web3-eth-contract": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.55.tgz", + "integrity": "sha512-v6oB1wfH039/A5sTb4ZTKX++fcBTHEkuQGpq50ATIDoxP/UTz2+6S+iL+3sCJTsByPw2/Bni/HM7NmLkXqzg/Q==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "@types/bn.js": "^4.11.4", + "lodash": "^4.17.11", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-core-subscriptions": "1.0.0-beta.55", + "web3-eth-abi": "1.0.0-beta.55", + "web3-eth-accounts": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "node_modules/web3-eth-ens": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.0.0-beta.55.tgz", + "integrity": "sha512-jEL17coO0FJXb7KYq4+7DhVXj0Rh+wHfZ86jOvFUvJsRaUHfqK2TlMatuhD2mbrmxpBYb6oMPnXVnNK9bnD5Rg==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "eth-ens-namehash": "2.0.8", + "lodash": "^4.17.11", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-eth-abi": "1.0.0-beta.55", + "web3-eth-accounts": "1.0.0-beta.55", + "web3-eth-contract": "1.0.0-beta.55", + "web3-net": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "node_modules/web3-eth-iban": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.55.tgz", + "integrity": "sha512-a2Fxsb5Mssa+jiXgjUdIzJipE0175IcQXJbZLpKft2+zeSJWNTbaa3PQD2vPPpIM4W789q06N+f9Zc0Fyls+1g==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "bn.js": "4.11.8", + "web3-utils": "1.0.0-beta.55" + } + }, + "node_modules/web3-eth-iban/node_modules/bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "node_modules/web3-eth-personal": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.55.tgz", + "integrity": "sha512-H0mahLQx6Oj7lpgTamKAswr3rHChRUZijeWAar2Hj7BABQlLRKwx8n09nYhxggvvLYQNQS90JjvQue7rAo2LQQ==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-eth-accounts": "1.0.0-beta.55", + "web3-net": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "node_modules/web3-net": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.55.tgz", + "integrity": "sha512-do2WY8+/GArJSWX7k/zZ7nBnV9Y3n6LhPYkwT3LeFqDzD515bKwlomaNC8hOaTc6UQyXIoPprYTK2FevL7jrZw==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "lodash": "^4.17.11", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "node_modules/web3-providers": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-providers/-/web3-providers-1.0.0-beta.55.tgz", + "integrity": "sha512-MNifc7W+iF6rykpbDR1MuX152jshWdZXHAU9Dk0Ja2/23elhIs4nCWs7wOX9FHrKgdrQbscPoq0uy+0aGzyWVQ==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "@types/node": "^10.12.18", + "eventemitter3": "3.1.0", + "lodash": "^4.17.11", + "url-parse": "1.4.4", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55", + "websocket": "^1.0.28", + "xhr2-cookies": "1.1.0" + } + }, + "node_modules/web3-providers/node_modules/url-parse": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz", + "integrity": "sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==", + "dependencies": { + "querystringify": "^2.0.0", + "requires-port": "^1.0.0" + } + }, + "node_modules/web3-shh": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.0.0-beta.55.tgz", + "integrity": "sha512-lGP2HQ/1ThNnfoU8677aL48KsTx4Ht+2KQIn39dGpxVZqysQmovQIltbymVnAr4h8wofwcEz46iNHGa+PAyNzA==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-core-subscriptions": "1.0.0-beta.55", + "web3-net": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "node_modules/web3-utils": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.55.tgz", + "integrity": "sha512-ASWqUi8gtWK02Tp8ZtcoAbHenMpQXNvHrakgzvqTNNZn26wgpv+Q4mdPi0KOR6ZgHFL8R/9b5BBoUTglS1WPpg==", + "dependencies": { + "@babel/runtime": "^7.3.1", + "@types/bn.js": "^4.11.4", + "@types/node": "^10.12.18", + "bn.js": "4.11.8", + "eth-lib": "0.2.8", + "ethjs-unit": "^0.1.6", + "lodash": "^4.17.11", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "2.1.1" + } + }, + "node_modules/web3-utils/node_modules/bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/webpack": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.19.1.tgz", + "integrity": "sha512-j7Q/5QqZRqIFXJvC0E59ipLV5Hf6lAnS3ezC3I4HMUybwEDikQBVad5d+IpPtmaQPQArvgUZLXIN6lWijHBn4g==", + "dependencies": { + "@webassemblyjs/ast": "1.7.6", + "@webassemblyjs/helper-module-context": "1.7.6", + "@webassemblyjs/wasm-edit": "1.7.6", + "@webassemblyjs/wasm-parser": "1.7.6", + "acorn": "^5.6.2", + "acorn-dynamic-import": "^3.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chrome-trace-event": "^1.0.0", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.0", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", + "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", + "node-libs-browser": "^2.0.0", + "schema-utils": "^0.4.4", + "tapable": "^1.1.0", + "uglifyjs-webpack-plugin": "^1.2.4", + "watchpack": "^1.5.0", + "webpack-sources": "^1.2.0" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz", + "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==", + "dependencies": { + "memory-fs": "~0.4.1", + "mime": "^2.3.1", + "range-parser": "^1.0.3", + "webpack-log": "^2.0.0" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "3.1.14", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz", + "integrity": "sha512-mGXDgz5SlTxcF3hUpfC8hrQ11yhAttuUQWf1Wmb+6zo3x6rb7b9mIfuQvAPLdfDRCGRGvakBWHdHOa0I9p/EVQ==", + "dependencies": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.0.0", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "debug": "^3.1.0", + "del": "^3.0.0", + "express": "^4.16.2", + "html-entities": "^1.2.0", + "http-proxy-middleware": "~0.18.0", + "import-local": "^2.0.0", + "internal-ip": "^3.0.1", + "ip": "^1.1.5", + "killable": "^1.0.0", + "loglevel": "^1.4.1", + "opn": "^5.1.0", + "portfinder": "^1.0.9", + "schema-utils": "^1.0.0", + "selfsigned": "^1.9.1", + "semver": "^5.6.0", + "serve-index": "^1.7.2", + "sockjs": "0.3.19", + "sockjs-client": "1.3.0", + "spdy": "^4.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^5.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "3.4.0", + "webpack-log": "^2.0.0", + "yargs": "12.0.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 6.11.5" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-dev-server/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/webpack-dev-server/node_modules/decamelize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", + "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", + "dependencies": { + "xregexp": "4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-dev-server/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "dependencies": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/webpack-dev-server/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-dev-server/node_modules/yargs": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", + "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", + "dependencies": { + "cliui": "^4.0.0", + "decamelize": "^2.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^10.1.0" + } + }, + "node_modules/webpack-dev-server/node_modules/yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "dependencies": { + "camelcase": "^4.1.0" + } + }, + "node_modules/webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "dependencies": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-manifest-plugin": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.0.4.tgz", + "integrity": "sha512-nejhOHexXDBKQOj/5v5IZSfCeTO3x1Dt1RZEcGfBSul891X/eLIcIVH31gwxPDdsi2Z8LKKFGpM4w9+oTBOSCg==", + "dependencies": { + "fs-extra": "^7.0.0", + "lodash": ">=3.5 <5", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.11.5" + }, + "peerDependencies": { + "webpack": "2 || 3 || 4" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dependencies": { + "graceful-fs": "^4.1.6" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/webpack-manifest-plugin/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dependencies": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/websocket": { + "version": "1.0.33", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.33.tgz", + "integrity": "sha512-XwNqM2rN5eh3G2CUQE3OHZj+0xfdH42+OFK6LdC2yqiC0YU8e5UK0nYre220T0IyyN031V/XOvtHvXozvJYFWA==", + "dependencies": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-encoding/node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "node_modules/whatwg-url": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", + "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "node_modules/workbox-background-sync": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-3.6.3.tgz", + "integrity": "sha512-ypLo0B6dces4gSpaslmDg5wuoUWrHHVJfFWwl1udvSylLdXvnrfhFfriCS42SNEe5lsZtcNZF27W/SMzBlva7Q==", + "dependencies": { + "workbox-core": "^3.6.3" + } + }, + "node_modules/workbox-broadcast-cache-update": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-broadcast-cache-update/-/workbox-broadcast-cache-update-3.6.3.tgz", + "integrity": "sha512-pJl4lbClQcvp0SyTiEw0zLSsVYE1RDlCPtpKnpMjxFtu8lCFTAEuVyzxp9w7GF4/b3P4h5nyQ+q7V9mIR7YzGg==", + "dependencies": { + "workbox-core": "^3.6.3" + } + }, + "node_modules/workbox-build": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-3.6.3.tgz", + "integrity": "sha512-w0clZ/pVjL8VXy6GfthefxpEXs0T8uiRuopZSFVQ8ovfbH6c6kUpEh6DcYwm/Y6dyWPiCucdyAZotgjz+nRz8g==", + "dependencies": { + "babel-runtime": "^6.26.0", + "common-tags": "^1.4.0", + "fs-extra": "^4.0.2", + "glob": "^7.1.2", + "joi": "^11.1.1", + "lodash.template": "^4.4.0", + "pretty-bytes": "^4.0.2", + "stringify-object": "^3.2.2", + "strip-comments": "^1.0.2", + "workbox-background-sync": "^3.6.3", + "workbox-broadcast-cache-update": "^3.6.3", + "workbox-cache-expiration": "^3.6.3", + "workbox-cacheable-response": "^3.6.3", + "workbox-core": "^3.6.3", + "workbox-google-analytics": "^3.6.3", + "workbox-navigation-preload": "^3.6.3", + "workbox-precaching": "^3.6.3", + "workbox-range-requests": "^3.6.3", + "workbox-routing": "^3.6.3", + "workbox-strategies": "^3.6.3", + "workbox-streams": "^3.6.3", + "workbox-sw": "^3.6.3" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/workbox-build/node_modules/fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "node_modules/workbox-build/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dependencies": { + "graceful-fs": "^4.1.6" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/workbox-build/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/workbox-cache-expiration": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-cache-expiration/-/workbox-cache-expiration-3.6.3.tgz", + "integrity": "sha512-+ECNph/6doYx89oopO/UolYdDmQtGUgo8KCgluwBF/RieyA1ZOFKfrSiNjztxOrGJoyBB7raTIOlEEwZ1LaHoA==", + "dependencies": { + "workbox-core": "^3.6.3" + } + }, + "node_modules/workbox-cacheable-response": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-3.6.3.tgz", + "integrity": "sha512-QpmbGA9SLcA7fklBLm06C4zFg577Dt8u3QgLM0eMnnbaVv3rhm4vbmDpBkyTqvgK/Ly8MBDQzlXDtUCswQwqqg==", + "dependencies": { + "workbox-core": "^3.6.3" + } + }, + "node_modules/workbox-core": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-3.6.3.tgz", + "integrity": "sha512-cx9cx0nscPkIWs8Pt98HGrS9/aORuUcSkWjG25GqNWdvD/pSe7/5Oh3BKs0fC+rUshCiyLbxW54q0hA+GqZeSQ==" + }, + "node_modules/workbox-google-analytics": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-3.6.3.tgz", + "integrity": "sha512-RQBUo/6SXtIaQTRFj4RQZ9e1gAl7D8oS5S+Hi173Kk70/BgJjzPwXpC5A249Jv5YfkCOLMQCeF9A27BiD0b0ig==", + "dependencies": { + "workbox-background-sync": "^3.6.3", + "workbox-core": "^3.6.3", + "workbox-routing": "^3.6.3", + "workbox-strategies": "^3.6.3" + } + }, + "node_modules/workbox-navigation-preload": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-3.6.3.tgz", + "integrity": "sha512-dd26xTX16DUu0i+MhqZK/jQXgfIitu0yATM4jhRXEmpMqQ4MxEeNvl2CgjDMOHBnCVMax+CFZQWwxMx/X/PqCw==", + "dependencies": { + "workbox-core": "^3.6.3" + } + }, + "node_modules/workbox-precaching": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-3.6.3.tgz", + "integrity": "sha512-aBqT66BuMFviPTW6IpccZZHzpA8xzvZU2OM1AdhmSlYDXOJyb1+Z6blVD7z2Q8VNtV1UVwQIdImIX+hH3C3PIw==", + "dependencies": { + "workbox-core": "^3.6.3" + } + }, + "node_modules/workbox-range-requests": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-3.6.3.tgz", + "integrity": "sha512-R+yLWQy7D9aRF9yJ3QzwYnGFnGDhMUij4jVBUVtkl67oaVoP1ymZ81AfCmfZro2kpPRI+vmNMfxxW531cqdx8A==", + "dependencies": { + "workbox-core": "^3.6.3" + } + }, + "node_modules/workbox-routing": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-3.6.3.tgz", + "integrity": "sha512-bX20i95OKXXQovXhFOViOK63HYmXvsIwZXKWbSpVeKToxMrp0G/6LZXnhg82ijj/S5yhKNRf9LeGDzaqxzAwMQ==", + "dependencies": { + "workbox-core": "^3.6.3" + } + }, + "node_modules/workbox-strategies": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-3.6.3.tgz", + "integrity": "sha512-Pg5eulqeKet2y8j73Yw6xTgLdElktcWExGkzDVCGqfV9JCvnGuEpz5eVsCIK70+k4oJcBCin9qEg3g3CwEIH3g==", + "dependencies": { + "workbox-core": "^3.6.3" + } + }, + "node_modules/workbox-streams": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-3.6.3.tgz", + "integrity": "sha512-rqDuS4duj+3aZUYI1LsrD2t9hHOjwPqnUIfrXSOxSVjVn83W2MisDF2Bj+dFUZv4GalL9xqErcFW++9gH+Z27w==", + "dependencies": { + "workbox-core": "^3.6.3" + } + }, + "node_modules/workbox-sw": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-3.6.3.tgz", + "integrity": "sha512-IQOUi+RLhvYCiv80RP23KBW/NTtIvzvjex28B8NW1jOm+iV4VIu3VXKXTA6er5/wjjuhmtB28qEAUqADLAyOSg==" + }, + "node_modules/workbox-webpack-plugin": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-3.6.3.tgz", + "integrity": "sha512-RwmKjc7HFHUFHoOlKoZUq9349u0QN3F8W5tZZU0vc1qsBZDINWXRiIBCAKvo/Njgay5sWz7z4I2adnyTo97qIQ==", + "dependencies": { + "babel-runtime": "^6.26.0", + "json-stable-stringify": "^1.0.1", + "workbox-build": "^3.6.3" + }, + "engines": { + "node": ">=4.0.0" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dependencies": { + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "dependencies": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "node_modules/ws": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", + "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "dependencies": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "dependencies": { + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" + } + }, + "node_modules/xhr-request-promise": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", + "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", + "dependencies": { + "xhr-request": "^1.1.0" + } + }, + "node_modules/xhr2-cookies": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", + "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", + "dependencies": { + "cookiejar": "^2.1.1" + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/xregexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", + "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" + }, + "node_modules/yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=", + "engines": { + "node": ">=0.10.32" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/yargs": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.1.tgz", + "integrity": "sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw==", + "dependencies": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" + } + }, + "node_modules/yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "dependencies": { + "camelcase": "^4.1.0" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/yargs/node_modules/y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + } + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/compat-data": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.8.tgz", + "integrity": "sha512-EaI33z19T4qN3xLXsGf48M2cDqa6ei9tPZlfLdb2HC+e/cFtREiRd8hdSqDbwdLB0/+gLwqJmCYASH0z2bUdog==" + }, + "@babel/core": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.10.tgz", + "integrity": "sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.9", + "@babel/helper-compilation-targets": "^7.13.10", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helpers": "^7.13.10", + "@babel/parser": "^7.13.10", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/generator": { + "version": "7.13.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", + "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", + "requires": { + "@babel/types": "^7.13.0", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", + "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", + "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", + "requires": { + "@babel/helper-explode-assignable-expression": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-compilation-targets": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz", + "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==", + "requires": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.14.5", + "semver": "^6.3.0" + }, + "dependencies": { + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.10.tgz", + "integrity": "sha512-YV7r2YxdTUaw84EwNkyrRke/TJHR/UXGiyvACRqvdVJ2/syV2rQuJNnaRLSuYiop8cMRXOgseTGoJCWX0q2fFg==", + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz", + "integrity": "sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "regexpu-core": "^4.7.1" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + }, + "regexpu-core": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", + "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", + "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==" + }, + "regjsparser": { + "version": "0.6.7", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.7.tgz", + "integrity": "sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ==", + "requires": { + "jsesc": "~0.5.0" + } + } + } + }, + "@babel/helper-define-map": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.12.13.tgz", + "integrity": "sha512-Buu0cZUjCU+WkFi6ZCSr2ONHuDTcQOJGNnXs/lzepONbMyIZ3oDHG4ftrzNK5vGz6ktNmelTRsTFIQQ+ALsIhg==", + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/types": "^7.12.13", + "lodash": "^4.17.19" + } + }, + "@babel/helper-define-polyfill-provider": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.5.tgz", + "integrity": "sha512-nXuzCSwlJ/WKr8qxzW816gwyT6VZgiJG17zR40fou70yfAcqjoNyTLl/DQ+FExw5Hx5KNqshmN8Ldl/r2N7cTg==", + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz", + "integrity": "sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA==", + "requires": { + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz", + "integrity": "sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA==", + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz", + "integrity": "sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g==", + "requires": { + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz", + "integrity": "sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ==", + "requires": { + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-module-imports": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz", + "integrity": "sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-module-transforms": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz", + "integrity": "sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw==", + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.12.11", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==" + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz", + "integrity": "sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-wrap-function": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz", + "integrity": "sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw==", + "requires": { + "@babel/helper-member-expression-to-functions": "^7.13.0", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helper-simple-access": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz", + "integrity": "sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", + "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", + "requires": { + "@babel/types": "^7.12.1" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==" + }, + "@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==" + }, + "@babel/helper-wrap-function": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz", + "integrity": "sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA==", + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/helpers": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.13.10.tgz", + "integrity": "sha512-4VO883+MWPDUVRF3PhiLBUFHoX/bsLTGFpFK/HqvvfBZz2D57u9XzPVNFVBTc0PW/CWR9BXTOKt8NF4DInUHcQ==", + "requires": { + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.13.0", + "@babel/types": "^7.13.0" + } + }, + "@babel/highlight": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", + "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.10.tgz", + "integrity": "sha512-0s7Mlrw9uTWkYua7xWr99Wpk2bnGa0ANleKfksYAES8LpWH4gW1OUr42vqKNf0us5UQNfru2wPqMqRITzq/SIQ==" + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz", + "integrity": "sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0", + "@babel/plugin-syntax-async-generators": "^7.8.4" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz", + "integrity": "sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.3.0.tgz", + "integrity": "sha512-3W/oCUmsO43FmZIqermmq6TKaRSYhmh/vybPfVFwQWdSb8xwki38uAIvknCRzuyHRuYfCYmJzL9or1v0AffPjg==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.3.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-decorators": "^7.2.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz", + "integrity": "sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + } + }, + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz", + "integrity": "sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz", + "integrity": "sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-json-strings": "^7.8.3" + } + }, + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz", + "integrity": "sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + } + }, + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz", + "integrity": "sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + } + }, + "@babel/plugin-proposal-numeric-separator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz", + "integrity": "sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz", + "integrity": "sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==", + "requires": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-compilation-targets": "^7.13.8", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.13.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz", + "integrity": "sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + } + }, + "@babel/plugin-proposal-optional-chaining": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.8.tgz", + "integrity": "sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + } + }, + "@babel/plugin-proposal-private-methods": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz", + "integrity": "sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz", + "integrity": "sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.12.13.tgz", + "integrity": "sha512-Rw6aIXGuqDLr6/LoBBYE57nKOzQpz/aDkKlMqEwH+Vp0MXbG6H/TfRjaY343LKxzAKAMXIHsQ8JzaZKuDZ9MwA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.3" + } + }, + "@babel/plugin-syntax-flow": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz", + "integrity": "sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz", + "integrity": "sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-typescript": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.12.13.tgz", + "integrity": "sha512-cHP3u1JiUiG2LFDKbXnwVad81GvfyIOmCD6HIEId6ojrY0Drfy2q1jw7BwN7dE84+kTnBjLkXoL3IEy/3JPu2w==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz", + "integrity": "sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz", + "integrity": "sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg==", + "requires": { + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-remap-async-to-generator": "^7.13.0" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz", + "integrity": "sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz", + "integrity": "sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz", + "integrity": "sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-replace-supers": "^7.13.0", + "@babel/helper-split-export-declaration": "^7.12.13", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + } + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz", + "integrity": "sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz", + "integrity": "sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz", + "integrity": "sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz", + "integrity": "sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz", + "integrity": "sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA==", + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-flow-strip-types": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.2.3.tgz", + "integrity": "sha512-xnt7UIk9GYZRitqCnsVMjQK1O2eKZwFB3CvvHjf5SGx6K6vr/MScCKQDnf1DxRaj501e3pXjti+inbSXX2ZUoQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.2.0" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz", + "integrity": "sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz", + "integrity": "sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ==", + "requires": { + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz", + "integrity": "sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz", + "integrity": "sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz", + "integrity": "sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==", + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz", + "integrity": "sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==", + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-simple-access": "^7.12.13", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.13.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz", + "integrity": "sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A==", + "requires": { + "@babel/helper-hoist-variables": "^7.13.0", + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-identifier": "^7.12.11", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz", + "integrity": "sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==", + "requires": { + "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz", + "integrity": "sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz", + "integrity": "sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz", + "integrity": "sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/helper-replace-supers": "^7.12.13" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz", + "integrity": "sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz", + "integrity": "sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-react-constant-elements": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.13.10.tgz", + "integrity": "sha512-E+aCW9j7mLq01tOuGV08YzLBt+vSyr4bOPT75B6WrAlrUfmOYOZ/yWk847EH0dv0xXiCihWLEmlX//O30YhpIw==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.12.13.tgz", + "integrity": "sha512-MprESJzI9O5VnJZrL7gg1MpdqmiFcUv41Jc7SahxYsNP2kDkFqClxxTZq+1Qv4AFCamm+GXMRDQINNn+qrxmiA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.17.tgz", + "integrity": "sha512-mwaVNcXV+l6qJOuRhpdTEj8sT/Z0owAVWf9QujTZ0d2ye9X/K+MTOTSizcgKOj18PGnTc/7g1I4+cIUjsKhBcw==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.12.13", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-syntax-jsx": "^7.12.13", + "@babel/types": "^7.12.17" + } + }, + "@babel/plugin-transform-react-jsx-development": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.17.tgz", + "integrity": "sha512-BPjYV86SVuOaudFhsJR1zjgxxOhJDt6JHNoD48DxWEIxUCAMjV1ys6DYw4SDYZh0b1QsS2vfIA9t/ZsQGsDOUQ==", + "requires": { + "@babel/plugin-transform-react-jsx": "^7.12.17" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.12.13.tgz", + "integrity": "sha512-FXYw98TTJ125GVCCkFLZXlZ1qGcsYqNQhVBQcZjyrwf8FEUtVfKIoidnO8S0q+KBQpDYNTmiGo1gn67Vti04lQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.12.13.tgz", + "integrity": "sha512-O5JJi6fyfih0WfDgIJXksSPhGP/G0fQpfxYy87sDc+1sFmsCS6wr3aAn+whbzkhbjtq4VMqLRaSzR6IsshIC0Q==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-react-pure-annotations": { + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.12.1.tgz", + "integrity": "sha512-RqeaHiwZtphSIUZ5I85PEH19LOSzxfuEazoY7/pWASCAIBuATQzpSVD+eT6MebeeZT2F4eSL0u4vw6n4Nm0Mjg==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz", + "integrity": "sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA==", + "requires": { + "regenerator-transform": "^0.14.2" + }, + "dependencies": { + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", + "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "requires": { + "@babel/runtime": "^7.8.4" + } + } + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz", + "integrity": "sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.2.0.tgz", + "integrity": "sha512-jIgkljDdq4RYDnJyQsiWbdvGeei/0MOTtSHKO/rfbd/mXBxNpdlulMx49L0HQ4pug1fXannxoqCI+fYSle9eSw==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz", + "integrity": "sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz", + "integrity": "sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz", + "integrity": "sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz", + "integrity": "sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw==", + "requires": { + "@babel/helper-plugin-utils": "^7.13.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz", + "integrity": "sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-typescript": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.13.0.tgz", + "integrity": "sha512-elQEwluzaU8R8dbVuW2Q2Y8Nznf7hnjM7+DSCd14Lo5fF63C9qNLbwZYbmZrtV9/ySpSUpkRpQXvJb6xyu4hCQ==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.13.0", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/plugin-syntax-typescript": "^7.12.13" + } + }, + "@babel/plugin-transform-unicode-escapes": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz", + "integrity": "sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz", + "integrity": "sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA==", + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.12.13", + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/preset-env": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.13.10.tgz", + "integrity": "sha512-nOsTScuoRghRtUsRr/c69d042ysfPHcu+KOB4A9aAO9eJYqrkat+LF8G1yp1HD18QiwixT2CisZTr/0b3YZPXQ==", + "requires": { + "@babel/compat-data": "^7.13.8", + "@babel/helper-compilation-targets": "^7.13.10", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/helper-validator-option": "^7.12.17", + "@babel/plugin-proposal-async-generator-functions": "^7.13.8", + "@babel/plugin-proposal-class-properties": "^7.13.0", + "@babel/plugin-proposal-dynamic-import": "^7.13.8", + "@babel/plugin-proposal-export-namespace-from": "^7.12.13", + "@babel/plugin-proposal-json-strings": "^7.13.8", + "@babel/plugin-proposal-logical-assignment-operators": "^7.13.8", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.13.8", + "@babel/plugin-proposal-numeric-separator": "^7.12.13", + "@babel/plugin-proposal-object-rest-spread": "^7.13.8", + "@babel/plugin-proposal-optional-catch-binding": "^7.13.8", + "@babel/plugin-proposal-optional-chaining": "^7.13.8", + "@babel/plugin-proposal-private-methods": "^7.13.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.12.13", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.12.13", + "@babel/plugin-transform-arrow-functions": "^7.13.0", + "@babel/plugin-transform-async-to-generator": "^7.13.0", + "@babel/plugin-transform-block-scoped-functions": "^7.12.13", + "@babel/plugin-transform-block-scoping": "^7.12.13", + "@babel/plugin-transform-classes": "^7.13.0", + "@babel/plugin-transform-computed-properties": "^7.13.0", + "@babel/plugin-transform-destructuring": "^7.13.0", + "@babel/plugin-transform-dotall-regex": "^7.12.13", + "@babel/plugin-transform-duplicate-keys": "^7.12.13", + "@babel/plugin-transform-exponentiation-operator": "^7.12.13", + "@babel/plugin-transform-for-of": "^7.13.0", + "@babel/plugin-transform-function-name": "^7.12.13", + "@babel/plugin-transform-literals": "^7.12.13", + "@babel/plugin-transform-member-expression-literals": "^7.12.13", + "@babel/plugin-transform-modules-amd": "^7.13.0", + "@babel/plugin-transform-modules-commonjs": "^7.13.8", + "@babel/plugin-transform-modules-systemjs": "^7.13.8", + "@babel/plugin-transform-modules-umd": "^7.13.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.12.13", + "@babel/plugin-transform-new-target": "^7.12.13", + "@babel/plugin-transform-object-super": "^7.12.13", + "@babel/plugin-transform-parameters": "^7.13.0", + "@babel/plugin-transform-property-literals": "^7.12.13", + "@babel/plugin-transform-regenerator": "^7.12.13", + "@babel/plugin-transform-reserved-words": "^7.12.13", + "@babel/plugin-transform-shorthand-properties": "^7.12.13", + "@babel/plugin-transform-spread": "^7.13.0", + "@babel/plugin-transform-sticky-regex": "^7.12.13", + "@babel/plugin-transform-template-literals": "^7.13.0", + "@babel/plugin-transform-typeof-symbol": "^7.12.13", + "@babel/plugin-transform-unicode-escapes": "^7.12.13", + "@babel/plugin-transform-unicode-regex": "^7.12.13", + "@babel/preset-modules": "^0.1.4", + "@babel/types": "^7.13.0", + "babel-plugin-polyfill-corejs2": "^0.1.4", + "babel-plugin-polyfill-corejs3": "^0.1.3", + "babel-plugin-polyfill-regenerator": "^0.1.2", + "core-js-compat": "^3.9.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "@babel/preset-modules": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz", + "integrity": "sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/preset-react": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.12.13.tgz", + "integrity": "sha512-TYM0V9z6Abb6dj1K7i5NrEhA13oS5ujUYQYDfqIBXYHOc2c2VkFgc+q9kyssIyUfy4/hEwqrgSlJ/Qgv8zJLsA==", + "requires": { + "@babel/helper-plugin-utils": "^7.12.13", + "@babel/plugin-transform-react-display-name": "^7.12.13", + "@babel/plugin-transform-react-jsx": "^7.12.13", + "@babel/plugin-transform-react-jsx-development": "^7.12.12", + "@babel/plugin-transform-react-pure-annotations": "^7.12.1" + } + }, + "@babel/preset-typescript": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.1.0.tgz", + "integrity": "sha512-LYveByuF9AOM8WrsNne5+N79k1YxjNB6gmpCQsnuSBAcV8QUeB+ZUxQzL7Rz7HksPbahymKkq2qBR+o36ggFZA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-typescript": "^7.1.0" + } + }, + "@babel/runtime": { + "version": "7.13.10", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.10.tgz", + "integrity": "sha512-4QPkjJq6Ns3V/RgpEahRk+AGfL0eO6RHHtTWoNNr5mO49G6B5+X6d6THgWEAvTrznU5xYpbAlVKRYcsCgh/Akw==", + "requires": { + "regenerator-runtime": "^0.13.4" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + } + } + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", + "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.13.0", + "@babel/helper-function-name": "^7.12.13", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.13.0", + "@babel/types": "^7.13.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "@babel/types": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.0.tgz", + "integrity": "sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA==", + "requires": { + "@babel/helper-validator-identifier": "^7.12.11", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + } + } + }, + "@csstools/convert-colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@csstools/convert-colors/-/convert-colors-1.4.0.tgz", + "integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==" + }, + "@hypnosphi/create-react-context": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@hypnosphi/create-react-context/-/create-react-context-0.3.1.tgz", + "integrity": "sha512-V1klUed202XahrWJLLOT3EXNeCpFHCcJntdFGI15ntCwau+jfT386w7OFTMaCqOgXUH1fa0w/I1oZs+i/Rfr0A==", + "requires": { + "gud": "^1.0.0", + "warning": "^4.0.3" + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@multiformats/base-x": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", + "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" + }, + "@openzeppelin/contracts": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-3.4.1.tgz", + "integrity": "sha512-cUriqMauq1ylzP2TxePNdPqkwI7Le3Annh4K9rrpvKfSBB/bdW+Iu1ihBaTIABTAAJ85LmKL5SSPPL9ry8d1gQ==" + }, + "@react-bootstrap/react-popper": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@react-bootstrap/react-popper/-/react-popper-1.2.1.tgz", + "integrity": "sha512-4l3q7LcZEhrSkI4d3Ie3g4CdrXqqTexXX4PFT45CB0z5z2JUbaxgRwKNq7r5j2bLdVpZm+uvUGqxJw8d9vgbJQ==", + "requires": { + "babel-runtime": "6.x.x", + "create-react-context": "^0.2.1", + "popper.js": "^1.14.4", + "prop-types": "^15.6.1", + "typed-styles": "^0.0.5", + "warning": "^3.0.0" + }, + "dependencies": { + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "@resolver-engine/core": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@resolver-engine/core/-/core-0.2.1.tgz", + "integrity": "sha512-nsLQHmPJ77QuifqsIvqjaF5B9aHnDzJjp73Q1z6apY3e9nqYrx4Dtowhpsf7Jwftg/XzVDEMQC+OzUBNTS+S1A==", + "requires": { + "debug": "^3.1.0", + "request": "^2.85.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "@resolver-engine/fs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@resolver-engine/fs/-/fs-0.2.1.tgz", + "integrity": "sha512-7kJInM1Qo2LJcKyDhuYzh9ZWd+mal/fynfL9BNjWOiTcOpX+jNfqb/UmGUqros5pceBITlWGqS4lU709yHFUbg==", + "requires": { + "@resolver-engine/core": "^0.2.1", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "@resolver-engine/imports": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@resolver-engine/imports/-/imports-0.2.2.tgz", + "integrity": "sha512-u5/HUkvo8q34AA+hnxxqqXGfby5swnH0Myw91o3Sm2TETJlNKXibFGSKBavAH+wvWdBi4Z5gS2Odu0PowgVOUg==", + "requires": { + "@resolver-engine/core": "^0.2.1", + "debug": "^3.1.0", + "hosted-git-info": "^2.6.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "@resolver-engine/imports-fs": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@resolver-engine/imports-fs/-/imports-fs-0.2.2.tgz", + "integrity": "sha512-gFCgMvCwyppjwq0UzIjde/WI+yDs3oatJhozG9xdjJdewwtd7LiF0T5i9lrHAUtqrQbqoFE4E+ZMRVHWpWHpKQ==", + "requires": { + "@resolver-engine/fs": "^0.2.1", + "@resolver-engine/imports": "^0.2.2", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "@solidity-parser/parser": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.8.2.tgz", + "integrity": "sha512-8LySx3qrNXPgB5JiULfG10O3V7QTxI/TLzSw5hFQhXWSkVxZBAv4rZQ0sYgLEbc8g3L2lmnujj1hKul38Eu5NQ==" + }, + "@svgr/core": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-2.4.1.tgz", + "integrity": "sha512-2i1cUbjpKt1KcIP05e10vkmu9Aedp32EFqVcSQ08onbB8lVxJqMPci3Hr54aI14S9cLg4JdcpO0D35HHUtT8oQ==", + "requires": { + "camelcase": "^5.0.0", + "cosmiconfig": "^5.0.6", + "h2x-core": "^1.1.0", + "h2x-plugin-jsx": "^1.1.0", + "merge-deep": "^3.0.2", + "prettier": "^1.14.2", + "svgo": "^1.0.5" + } + }, + "@svgr/webpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-2.4.1.tgz", + "integrity": "sha512-sMHYq0zbMtSHcc9kVfkYI2zrl88u4mKGyQLgKt7r+ul5nITcncm/EPBhzEUrJY5izdlaU6EvyH8zOhZnfaSmOA==", + "requires": { + "@babel/core": "^7.0.1", + "@babel/plugin-transform-react-constant-elements": "^7.0.0", + "@babel/preset-env": "^7.0.0", + "@babel/preset-react": "^7.0.0", + "@svgr/core": "^2.4.1", + "loader-utils": "^1.1.0" + } + }, + "@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "10.17.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.55.tgz", + "integrity": "sha512-koZJ89uLZufDvToeWO5BrC4CR4OUfHnUz2qoPs/daQH6qq3IN62QFxCTZ+bKaCE0xaoCAJYE4AXre8AbghCrhg==" + }, + "@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", + "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==" + }, + "@types/secp256k1": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.1.tgz", + "integrity": "sha512-+ZjSA8ELlOp8SlKi0YLB2tz9d5iPNEmOBd+8Rz21wTMdaXQIa9b6TEnD6l5qKOCypE7FSyPyck12qZJxSDNoog==", + "requires": { + "@types/node": "*" + } + }, + "@types/tapable": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.2.tgz", + "integrity": "sha512-42zEJkBpNfMEAvWR5WlwtTH22oDzcMjFsL9gDGExwF8X8WvAiw7Vwop7hPw03QT8TKfec83LwbHj6SvpqM4ELQ==" + }, + "@webassemblyjs/ast": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.6.tgz", + "integrity": "sha512-8nkZS48EVsMUU0v6F1LCIOw4RYWLm2plMtbhFTjNgeXmsTNLuU3xTRtnljt9BFQB+iPbLRobkNrCWftWnNC7wQ==", + "requires": { + "@webassemblyjs/helper-module-context": "1.7.6", + "@webassemblyjs/helper-wasm-bytecode": "1.7.6", + "@webassemblyjs/wast-parser": "1.7.6", + "mamacro": "^0.0.3" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.7.6.tgz", + "integrity": "sha512-VBOZvaOyBSkPZdIt5VBMg3vPWxouuM13dPXGWI1cBh3oFLNcFJ8s9YA7S9l4mPI7+Q950QqOmqj06oa83hNWBA==" + }, + "@webassemblyjs/helper-api-error": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.7.6.tgz", + "integrity": "sha512-SCzhcQWHXfrfMSKcj8zHg1/kL9kb3aa5TN4plc/EREOs5Xop0ci5bdVBApbk2yfVi8aL+Ly4Qpp3/TRAUInjrg==" + }, + "@webassemblyjs/helper-buffer": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.7.6.tgz", + "integrity": "sha512-1/gW5NaGsEOZ02fjnFiU8/OEEXU1uVbv2um0pQ9YVL3IHSkyk6xOwokzyqqO1qDZQUAllb+V8irtClPWntbVqw==" + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.7.6.tgz", + "integrity": "sha512-+suMJOkSn9+vEvDvgyWyrJo5vJsWSDXZmJAjtoUq4zS4eqHyXImpktvHOZwXp1XQjO5H+YQwsBgqTQEc0J/5zg==", + "requires": { + "@webassemblyjs/wast-printer": "1.7.6" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.7.6.tgz", + "integrity": "sha512-HCS6KN3wgxUihGBW7WFzEC/o8Eyvk0d56uazusnxXthDPnkWiMv+kGi9xXswL2cvfYfeK5yiM17z2K5BVlwypw==" + }, + "@webassemblyjs/helper-module-context": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.7.6.tgz", + "integrity": "sha512-e8/6GbY7OjLM+6OsN7f2krC2qYVNaSr0B0oe4lWdmq5sL++8dYDD1TFbD1TdAdWMRTYNr/Qq7ovXWzia2EbSjw==", + "requires": { + "mamacro": "^0.0.3" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.7.6.tgz", + "integrity": "sha512-PzYFCb7RjjSdAOljyvLWVqd6adAOabJW+8yRT+NWhXuf1nNZWH+igFZCUK9k7Cx7CsBbzIfXjJc7u56zZgFj9Q==" + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.7.6.tgz", + "integrity": "sha512-3GS628ppDPSuwcYlQ7cDCGr4W2n9c4hLzvnRKeuz+lGsJSmc/ADVoYpm1ts2vlB1tGHkjtQMni+yu8mHoMlKlA==", + "requires": { + "@webassemblyjs/ast": "1.7.6", + "@webassemblyjs/helper-buffer": "1.7.6", + "@webassemblyjs/helper-wasm-bytecode": "1.7.6", + "@webassemblyjs/wasm-gen": "1.7.6" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.7.6.tgz", + "integrity": "sha512-V4cIp0ruyw+hawUHwQLn6o2mFEw4t50tk530oKsYXQhEzKR+xNGDxs/SFFuyTO7X3NzEu4usA3w5jzhl2RYyzQ==", + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.7.6.tgz", + "integrity": "sha512-ojdlG8WpM394lBow4ncTGJoIVZ4aAtNOWHhfAM7m7zprmkVcKK+2kK5YJ9Bmj6/ketTtOn7wGSHCtMt+LzqgYQ==", + "requires": { + "@xtuc/long": "4.2.1" + } + }, + "@webassemblyjs/utf8": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.7.6.tgz", + "integrity": "sha512-oId+tLxQ+AeDC34ELRYNSqJRaScB0TClUU6KQfpB8rNT6oelYlz8axsPhf6yPTg7PBJ/Z5WcXmUYiHEWgbbHJw==" + }, + "@webassemblyjs/wasm-edit": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.7.6.tgz", + "integrity": "sha512-pTNjLO3o41v/Vz9VFLl+I3YLImpCSpodFW77pNoH4agn5I6GgSxXHXtvWDTvYJFty0jSeXZWLEmbaSIRUDlekg==", + "requires": { + "@webassemblyjs/ast": "1.7.6", + "@webassemblyjs/helper-buffer": "1.7.6", + "@webassemblyjs/helper-wasm-bytecode": "1.7.6", + "@webassemblyjs/helper-wasm-section": "1.7.6", + "@webassemblyjs/wasm-gen": "1.7.6", + "@webassemblyjs/wasm-opt": "1.7.6", + "@webassemblyjs/wasm-parser": "1.7.6", + "@webassemblyjs/wast-printer": "1.7.6" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.7.6.tgz", + "integrity": "sha512-mQvFJVumtmRKEUXMohwn8nSrtjJJl6oXwF3FotC5t6e2hlKMh8sIaW03Sck2MDzw9xPogZD7tdP5kjPlbH9EcQ==", + "requires": { + "@webassemblyjs/ast": "1.7.6", + "@webassemblyjs/helper-wasm-bytecode": "1.7.6", + "@webassemblyjs/ieee754": "1.7.6", + "@webassemblyjs/leb128": "1.7.6", + "@webassemblyjs/utf8": "1.7.6" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.7.6.tgz", + "integrity": "sha512-go44K90fSIsDwRgtHhX14VtbdDPdK2sZQtZqUcMRvTojdozj5tLI0VVJAzLCfz51NOkFXezPeVTAYFqrZ6rI8Q==", + "requires": { + "@webassemblyjs/ast": "1.7.6", + "@webassemblyjs/helper-buffer": "1.7.6", + "@webassemblyjs/wasm-gen": "1.7.6", + "@webassemblyjs/wasm-parser": "1.7.6" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.7.6.tgz", + "integrity": "sha512-t1T6TfwNY85pDA/HWPA8kB9xA4sp9ajlRg5W7EKikqrynTyFo+/qDzIpvdkOkOGjlS6d4n4SX59SPuIayR22Yg==", + "requires": { + "@webassemblyjs/ast": "1.7.6", + "@webassemblyjs/helper-api-error": "1.7.6", + "@webassemblyjs/helper-wasm-bytecode": "1.7.6", + "@webassemblyjs/ieee754": "1.7.6", + "@webassemblyjs/leb128": "1.7.6", + "@webassemblyjs/utf8": "1.7.6" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.7.6.tgz", + "integrity": "sha512-1MaWTErN0ziOsNUlLdvwS+NS1QWuI/kgJaAGAMHX8+fMJFgOJDmN/xsG4h/A1Gtf/tz5VyXQciaqHZqp2q0vfg==", + "requires": { + "@webassemblyjs/ast": "1.7.6", + "@webassemblyjs/floating-point-hex-parser": "1.7.6", + "@webassemblyjs/helper-api-error": "1.7.6", + "@webassemblyjs/helper-code-frame": "1.7.6", + "@webassemblyjs/helper-fsm": "1.7.6", + "@xtuc/long": "4.2.1", + "mamacro": "^0.0.3" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.7.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.7.6.tgz", + "integrity": "sha512-vHdHSK1tOetvDcl1IV1OdDeGNe/NDDQ+KzuZHMtqTVP1xO/tZ/IKNpj5BaGk1OYFdsDWQqb31PIwdEyPntOWRQ==", + "requires": { + "@webassemblyjs/ast": "1.7.6", + "@webassemblyjs/wast-parser": "1.7.6", + "@xtuc/long": "4.2.1" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + }, + "@xtuc/long": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.1.tgz", + "integrity": "sha512-FZdkNBDqBRHKQ2MEbSC17xnPFOhZxeJ2YGSfr2BKf3sujG49Qe3bB+rGCwQfIaA7WHnGeGkSijX4FuBCdrzW/g==" + }, + "@zxing/text-encoding": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz", + "integrity": "sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==", + "optional": true + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" + }, + "acorn-dynamic-import": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", + "requires": { + "acorn": "^5.0.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==" + } + } + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + } + } + }, + "acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "requires": {} + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + }, + "address": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/address/-/address-1.0.3.tgz", + "integrity": "sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==" + }, + "aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0=" + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", + "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", + "requires": {} + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "requires": {} + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", + "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==" + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==" + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=" + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "any-signal": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/any-signal/-/any-signal-2.1.2.tgz", + "integrity": "sha512-B+rDnWasMi/eWcajPcCWSlYc7muXOrcYrqgyzcdKisl2H/WTlQ0gip1KyQfr0ZlxJdsuWCj/LWwQm7fhyhRfIQ==", + "requires": { + "abort-controller": "^3.0.0", + "native-abort-controller": "^1.0.3" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "app-module-path": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz", + "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=" + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "requires": { + "default-require-extensions": "^1.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", + "requires": { + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=" + }, + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=" + }, + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==" + }, + "array-includes": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz", + "integrity": "sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.5" + } + }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=" + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=" + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=" + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=" + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", + "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" + }, + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" + }, + "axobject-query": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.2.0.tgz", + "integrity": "sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==" + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "babel-eslint": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-9.0.0.tgz", + "integrity": "sha512-itv1MwE3TMbY0QtNfeL7wzak1mV47Uy+n6HtSOO4Xd7rvmO+tsGQSgyOEEgo6Y2vHZKZphaoelNeSVj4vkLA1g==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "eslint-scope": "3.7.1", + "eslint-visitor-keys": "^1.0.0" + } + }, + "babel-extract-comments": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz", + "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==", + "requires": { + "babylon": "^6.18.0" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "babel-helper-bindify-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", + "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "requires": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-explode-class": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", + "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "requires": { + "babel-helper-bindify-decorators": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-jest": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-23.6.0.tgz", + "integrity": "sha512-lqKGG6LYXYu+DQh/slrQ8nxXQkEkhugdXsU6St7GmhVS7Ilc/22ArwqXNJrf0QaOBjZB0360qZMwXqDYQHXaew==", + "requires": { + "babel-plugin-istanbul": "^4.1.6", + "babel-preset-jest": "^23.2.0" + } + }, + "babel-loader": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.4.tgz", + "integrity": "sha512-fhBhNkUToJcW9nV46v8w87AJOwAJDz84c1CL57n3Stj73FANM/b9TbCUK4YhdOwEyZ+OxhYpdeZDNzSI29Firw==", + "requires": { + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1", + "util.promisify": "^1.0.0" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-istanbul": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-4.1.6.tgz", + "integrity": "sha512-PWP9FQ1AhZhS01T/4qLSKoHGY/xvkZdVBGlKM/HuxxS3+sC66HhTNR7+MpbO/so/cz/wY94MeSWJuP1hXIPfwQ==", + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.13.0", + "find-up": "^2.1.0", + "istanbul-lib-instrument": "^1.10.1", + "test-exclude": "^4.2.1" + } + }, + "babel-plugin-jest-hoist": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-23.2.0.tgz", + "integrity": "sha1-5h+uBaHKiAGq3uV6bWa4zvr0QWc=" + }, + "babel-plugin-macros": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.5.0.tgz", + "integrity": "sha512-BWw0lD0kVZAXRD3Od1kMrdmfudqzDzYv2qrN3l2ISR1HVp1EgLKfbOrYV9xmY5k3qx3RIu5uPAUZZZHpo0o5Iw==", + "requires": { + "cosmiconfig": "^5.0.5", + "resolve": "^1.8.1" + } + }, + "babel-plugin-named-asset-import": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/babel-plugin-named-asset-import/-/babel-plugin-named-asset-import-0.3.7.tgz", + "integrity": "sha512-squySRkf+6JGnvjoUtDEjSREJEBirnXi9NqP6rjSYsylxQxqBTz+pkmf395i9E2zsvmYUaI40BHo6SqZUdydlw==", + "requires": {} + }, + "babel-plugin-polyfill-corejs2": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.10.tgz", + "integrity": "sha512-DO95wD4g0A8KRaHKi0D51NdGXzvpqVLnLu5BTvDlpqUEpTmeEtypgC1xqesORaWmiUOQI14UHKlzNd9iZ2G3ZA==", + "requires": { + "@babel/compat-data": "^7.13.0", + "@babel/helper-define-polyfill-provider": "^0.1.5", + "semver": "^6.1.1" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + } + } + }, + "babel-plugin-polyfill-corejs3": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz", + "integrity": "sha512-u+gbS9bbPhZWEeyy1oR/YaaSpod/KDT07arZHb80aTpl8H5ZBq+uN1nN9/xtX7jQyfLdPfoqI4Rue/MQSWJquw==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.1.5", + "core-js-compat": "^3.8.1" + } + }, + "babel-plugin-polyfill-regenerator": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.6.tgz", + "integrity": "sha512-OUrYG9iKPKz8NxswXbRAdSwF0GhRdIEMTloQATJi4bDuFqrXaXcCUT/VGNrr8pBcjMh1RxZ7Xt9cytVJTJfvMg==", + "requires": { + "@babel/helper-define-polyfill-provider": "^0.1.5" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=" + }, + "babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=" + }, + "babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=" + }, + "babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=" + }, + "babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=" + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=" + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=" + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=" + }, + "babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-plugin-syntax-class-properties": "^6.8.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", + "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "requires": { + "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, + "babel-plugin-transform-react-remove-prop-types": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz", + "integrity": "sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==" + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "requires": { + "regenerator-transform": "^0.10.0" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "requires": { + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" + } + }, + "babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" + } + }, + "babel-preset-jest": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-23.2.0.tgz", + "integrity": "sha1-jsegOhOPABoaj7HoETZSvxpV2kY=", + "requires": { + "babel-plugin-jest-hoist": "^23.2.0", + "babel-plugin-syntax-object-rest-spread": "^6.13.0" + } + }, + "babel-preset-react-app": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/babel-preset-react-app/-/babel-preset-react-app-7.0.2.tgz", + "integrity": "sha512-mwCk/u2wuiO8qQqblN5PlDa44taY0acq7hw6W+a70W522P7a9mIcdggL1fe5/LgAT7tqCq46q9wwhqaMoYKslQ==", + "requires": { + "@babel/core": "7.2.2", + "@babel/plugin-proposal-class-properties": "7.3.0", + "@babel/plugin-proposal-decorators": "7.3.0", + "@babel/plugin-proposal-object-rest-spread": "7.3.2", + "@babel/plugin-syntax-dynamic-import": "7.2.0", + "@babel/plugin-transform-classes": "7.2.2", + "@babel/plugin-transform-destructuring": "7.3.2", + "@babel/plugin-transform-flow-strip-types": "7.2.3", + "@babel/plugin-transform-react-constant-elements": "7.2.0", + "@babel/plugin-transform-react-display-name": "7.2.0", + "@babel/plugin-transform-runtime": "7.2.0", + "@babel/preset-env": "7.3.1", + "@babel/preset-react": "7.0.0", + "@babel/preset-typescript": "7.1.0", + "@babel/runtime": "7.3.1", + "babel-loader": "8.0.5", + "babel-plugin-dynamic-import-node": "2.2.0", + "babel-plugin-macros": "2.5.0", + "babel-plugin-transform-react-remove-prop-types": "0.4.24" + }, + "dependencies": { + "@babel/core": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.2.2.tgz", + "integrity": "sha512-59vB0RWt09cAct5EIe58+NzGP4TFSD3Bz//2/ELy3ZeTeKF6VTD1AXlH8BGGbCX0PuobZBsIzO7IAI9PH67eKw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.2.2", + "@babel/helpers": "^7.2.0", + "@babel/parser": "^7.2.2", + "@babel/template": "^7.2.2", + "@babel/traverse": "^7.2.2", + "@babel/types": "^7.2.2", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.10", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.3.0.tgz", + "integrity": "sha512-wNHxLkEKTQ2ay0tnsam2z7fGZUi+05ziDJflEt3AZTP3oXLKHJp9HqhfroB/vdMvt3sda9fAbq7FsG8QPDrZBg==", + "requires": { + "@babel/helper-create-class-features-plugin": "^7.3.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.3.2.tgz", + "integrity": "sha512-DjeMS+J2+lpANkYLLO+m6GjoTMygYglKmRe6cDTbFv3L9i6mmiE8fe6B8MtCSLZpVXscD5kn7s6SgtHrDoBWoA==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", + "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.2.2.tgz", + "integrity": "sha512-gEZvgTy1VtcDOaQty1l10T3jQmJKlNVxLDCs+3rCVPr6nMkODLELxViq5X9l+rfxbie3XrfrMCYYY6eX3aOcOQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.1.0", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.0.0", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.3.2.tgz", + "integrity": "sha512-Lrj/u53Ufqxl/sGxyjsJ2XNtNuEjDyjpqdhMNh5aZ+XFOdThL46KBj27Uem4ggoezSYBxKWAil6Hu8HtwqesYw==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-react-constant-elements": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.2.0.tgz", + "integrity": "sha512-YYQFg6giRFMsZPKUM9v+VcHOdfSQdz9jHCx3akAi3UYgyjndmdYGSXylQ/V+HswQt4fL8IklchD9HTsaOCrWQQ==", + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz", + "integrity": "sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/preset-env": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.1.tgz", + "integrity": "sha512-FHKrD6Dxf30e8xgHQO0zJZpUPfVZg+Xwgz5/RdSWCbza9QLNk4Qbp40ctRoqDxml3O8RMzB1DU55SXeDG6PqHQ==", + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.3.1", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.2.0", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.2.0", + "@babel/plugin-transform-classes": "^7.2.0", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.2.0", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" + } + }, + "@babel/preset-react": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.0.0.tgz", + "integrity": "sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w==", + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0" + } + }, + "@babel/runtime": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.1.tgz", + "integrity": "sha512-7jGW8ppV0ant637pIqAcFfQDDH1orEPGJb8aXfUozuCU3QqX7rX4DA8iwrbPrR1hcH0FTTHz47yQnk+bl5xHQA==", + "requires": { + "regenerator-runtime": "^0.12.0" + } + }, + "babel-loader": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.5.tgz", + "integrity": "sha512-NTnHnVRd2JnRqPC0vW+iOQWU5pchDbYXsG2E6DMXEpMfUcQKclF9gmf3G3ZMhzG7IG9ji4coL0cm+FxeWxDpnw==", + "requires": { + "find-cache-dir": "^2.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1", + "util.promisify": "^1.0.0" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.2.0.tgz", + "integrity": "sha512-fP899ELUnTaBcIzmrW7nniyqqdYWrWuJUyPWHxFa/c7r7hS6KC8FscNfLlBNIoPSc55kYMGEEKjPjJGCLbE1qA==", + "requires": { + "object.assign": "^4.1.0" + } + }, + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + } + }, + "regenerator-runtime": { + "version": "0.12.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz", + "integrity": "sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==" + } + } + }, + "babel-preset-stage-2": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", + "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "requires": { + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-decorators": "^6.24.1", + "babel-preset-stage-3": "^6.24.1" + } + }, + "babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "requires": { + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==" + } + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "base-x": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz", + "integrity": "sha512-Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bfj": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/bfj/-/bfj-6.1.1.tgz", + "integrity": "sha512-+GUNvzHR4nRyGybQc2WpNJL4MJazMuvf92ueIyA0bIkPRwhhQu3IfZQ2PSoVPpCBJfmoSdOxu5rnotfFLlvYRQ==", + "requires": { + "bluebird": "^3.5.1", + "check-types": "^7.3.0", + "hoopy": "^0.1.2", + "tryer": "^1.0.0" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "bignumber.js": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", + "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } + } + }, + "blakejs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", + "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=" + }, + "blob-to-it": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/blob-to-it/-/blob-to-it-1.0.2.tgz", + "integrity": "sha512-yD8tikfTlUGEOSHExz4vDCIQFLaBPXIL0KcxGQt9RbwMVXBEh+jokdJyStvTXPgWrdKfwgk7RX8GPsgrYzsyng==", + "requires": { + "browser-readablestream-to-it": "^1.0.2" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" + }, + "bootstrap": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.3.1.tgz", + "integrity": "sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag==", + "requires": {} + }, + "borc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", + "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", + "requires": { + "bignumber.js": "^9.0.0", + "buffer": "^5.5.0", + "commander": "^2.15.0", + "ieee754": "^1.1.13", + "iso-url": "~0.4.7", + "json-text-sequence": "~0.1.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "iso-url": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", + "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==" + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "browser-readablestream-to-it": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browser-readablestream-to-it/-/browser-readablestream-to-it-1.0.2.tgz", + "integrity": "sha512-lv4M2Z6RKJpyJijJzBQL5MNssS7i8yedl+QkhnLCyPtgNGNSXv1KthzUnye9NlRAtBAI80X6S9i+vK09Rzjcvg==" + }, + "browser-resolve": { + "version": "1.11.3", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", + "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", + "requires": { + "resolve": "1.1.7" + }, + "dependencies": { + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=" + } + } + }, + "browser-stdout": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", + "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + } + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "bn.js": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", + "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha1-vhYedsNU9veIrkBx9j806MTwpCo=", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==" + }, + "buffer-to-arraybuffer": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/buffer-to-arraybuffer/-/buffer-to-arraybuffer-0.0.5.tgz", + "integrity": "sha1-YGSkD6dutDxyOrqe+PbhIW0QURo=" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "bufferutil": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.3.tgz", + "integrity": "sha512-yEYTwGndELGvfXsImMBLop58eaGW+YdONi1fNjTINSY98tmMmFijBG6WXgdkfuLNt4imzQNtIE+eBp1PVpMCSw==", + "requires": { + "node-gyp-build": "^4.2.0" + } + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=" + }, + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" + }, + "cacache": { + "version": "11.3.3", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.3.tgz", + "integrity": "sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==", + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=" + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=" + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + }, + "dependencies": { + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + } + } + }, + "caniuse-lite": { + "version": "1.0.30001199", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001199.tgz", + "integrity": "sha512-ifbK2eChUCFUwGhlEzIoVwzFt1+iriSjyKKFYNfv6hN34483wyWpLLavYQXhnR036LhkdUYaSDpHg1El++VgHQ==" + }, + "capture-exit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-1.2.0.tgz", + "integrity": "sha1-HF/MSJ/QqwDU8ax64QcuMXP7q28=", + "requires": { + "rsvp": "^3.3.3" + } + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.1.2.tgz", + "integrity": "sha512-oEZgAFfEvKtjSRCu6VgYkuGxwrWXMnQzyBmlLPP7r6PWQVtHxP5Z5N6XsuJvtoVax78am/r7lr46bwo3IVEBOg==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "chai": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", + "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + } + }, + "chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "requires": { + "check-error": "^1.0.2" + } + }, + "chai-bignumber": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chai-bignumber/-/chai-bignumber-3.0.0.tgz", + "integrity": "sha512-SubOtaSI2AILWTWe2j0c6i2yFT/f9J6UBjeVGDuwDiPLkF/U5+/eTWUE3sbCZ1KgcPF6UJsDVYbIxaYA097MQA==" + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==" + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=" + }, + "check-types": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/check-types/-/check-types-7.4.0.tgz", + "integrity": "sha512-YbulWHdfP99UfZ73NcUDlNJhEIDgm9Doq9GhpyXbF+7Aegi3CVV7qqMCKTTqJxlvEvnQBp9IA+dxsGN6xK/nSg==" + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "dependencies": { + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + } + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==" + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", + "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", + "requires": { + "tslib": "^1.9.0" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==" + }, + "cids": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/cids/-/cids-1.1.6.tgz", + "integrity": "sha512-5P+Jas2bVpjiHibp/SOwKY+v7JhAjTChaAZN+vCIrsWXn/JZV0frX22Vp5zZgEyJRPco79pX+yNQ2S3LkRukHQ==", + "requires": { + "multibase": "^4.0.1", + "multicodec": "^3.0.1", + "multihashes": "^4.0.1", + "uint8arrays": "^2.1.3" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.3.3.tgz", + "integrity": "sha512-UZK3NBx2Mca+b5LsG7bY183pHWt5Y1xts4P3Pz7ENTwGVnJOUWbRb3ocjvX7hx9tq/yTAdclXm9sZ38gNuem4A==" + }, + "class-is": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/class-is/-/class-is-1.1.0.tgz", + "integrity": "sha512-rhjH9AG1fvabIDoGRVH587413LPjTZgmDF9fOFCbFJQV4yuocX1mHxxvXI4g3cGwbVY9wAYIoKlg1N79frJKQw==" + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + } + } + }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" + }, + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", + "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", + "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==" + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "clone-deep": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", + "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", + "requires": { + "for-own": "^0.1.3", + "is-plain-object": "^2.0.1", + "kind-of": "^3.0.2", + "lazy-cache": "^1.0.3", + "shallow-clone": "^0.1.2" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "color-string": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.5.tgz", + "integrity": "sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "common-tags": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "confusing-browser-globals": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz", + "integrity": "sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==" + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==" + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=" + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==" + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" + }, + "cookiejar": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz", + "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==" + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, + "core-js": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.12.tgz", + "integrity": "sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==" + }, + "core-js-compat": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.9.1.tgz", + "integrity": "sha512-jXAirMQxrkbiiLsCx9bQPJFA6llDadKMpYrBJQJ3/c4/vsPP/fAf29h24tviRlvwUL6AmY5CHLu2GvjuYviQqA==", + "requires": { + "browserslist": "^4.16.3", + "semver": "7.0.0" + }, + "dependencies": { + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==" + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "create-react-context": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/create-react-context/-/create-react-context-0.2.3.tgz", + "integrity": "sha512-CQBmD0+QGgTaxDL3OX1IDXYqjkp2It4RIbcb99jS6AEg27Ga+a9G3JtK6SIu0HBwPLZlmwt9F7UwWA4Bn92Rag==", + "requires": { + "fbjs": "^0.8.0", + "gud": "^1.0.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=" + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "css-loader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-1.0.0.tgz", + "integrity": "sha512-tMXlTYf3mIMt3b0dDCOQFJiVvxbocJ5Ho577WiGPYPZcqVEO218L2iU22pDXzkTZCLDE+9AmGSUkWxeh/nZReA==", + "requires": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash.camelcase": "^4.3.0", + "postcss": "^6.0.23", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", + "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==" + }, + "css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", + "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "css-what": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", + "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==" + }, + "cssdb": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-4.4.0.tgz", + "integrity": "sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=" + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=" + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==" + }, + "csso": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", + "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", + "requires": { + "css-tree": "^1.1.2" + }, + "dependencies": { + "css-tree": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", + "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", + "requires": { + "mdn-data": "2.0.14", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", + "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + } + } + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=" + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "damerau-levenshtein": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", + "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "dayjs": { + "version": "1.10.4", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.10.4.tgz", + "integrity": "sha512-RI/Hh4kqRc1UKLOAf/T5zdMMX5DQIlDxwUe3wSyMMnEbGunnpENCdbUgM+dW7kXidZqCttBrmw7BhN4TMddkCw==" + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decimal.js": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", + "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", + "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", + "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "default-gateway": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-2.7.2.tgz", + "integrity": "sha512-lAc4i9QJR0YHSDFdzeBQKfZ1SRDG3hsJNEkrpcZa8QhBfidLAilT60BDEIVUUGqosFp425KOgB3uYqcnQrWafQ==", + "requires": { + "execa": "^0.10.0", + "ip-regex": "^2.1.0" + }, + "dependencies": { + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" + } + } + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "requires": { + "strip-bom": "^2.0.0" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "requires": { + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delimit-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", + "integrity": "sha1-m4MZR3wOX4rrPONXrjBfwl6hzSs=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=" + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "requires": { + "repeating": "^2.0.0" + } + }, + "detect-newline": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", + "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=" + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" + }, + "detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=" + }, + "dns-over-http-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/dns-over-http-resolver/-/dns-over-http-resolver-1.2.2.tgz", + "integrity": "sha512-4J7LoLl26mczU6LdWlhvNM51aWXHJmTz6iDUrGz1sqiAgNb6HzBc/huvkgqS6bYfbCzvlOKW/bGkugReliac0A==", + "requires": { + "debug": "^4.2.0", + "native-fetch": "^3.0.0", + "receptacle": "^1.3.2" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "native-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-3.0.0.tgz", + "integrity": "sha512-G3Z7vx0IFb/FQ4JxvtqGABsOTIqRWvgQz6e+erkB+JJD6LrszQtMozEHI4EkmgZQvnGHrpLVzUWk7t4sJCIkVw==", + "requires": {} + } + } + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", + "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "requires": { + "utila": "~0.4" + } + }, + "dom-helpers": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-3.4.0.tgz", + "integrity": "sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA==", + "requires": { + "@babel/runtime": "^7.1.2" + } + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", + "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", + "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==" + } + } + }, + "dom-walk": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.2.tgz", + "integrity": "sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==" + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==" + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" + } + } + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", + "requires": { + "is-obj": "^2.0.0" + }, + "dependencies": { + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==" + } + } + }, + "dotenv": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.0.0.tgz", + "integrity": "sha512-FlWbnhgjtwD+uNLUGHbMykMOYQaTivdHEmYwAKFjn6GKe/CqY0fNae93ZHTd20snh9ZLr8mTzIL9m0APQ1pjQg==" + }, + "dotenv-expand": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-4.2.0.tgz", + "integrity": "sha1-3vHxyl1gWdJKdm5YeULCEQbOEnU=" + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==" + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" + }, + "electron-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/electron-fetch/-/electron-fetch-1.7.3.tgz", + "integrity": "sha512-1AVMaxrHXTTMqd7EK0MGWusdqNr07Rpj8Th6bG4at0oNgIi/1LBwa9CjT/0Zy+M0k/tSJPS04nFxHj0SXDVgVw==", + "requires": { + "encoding": "^0.1.13" + } + }, + "electron-to-chromium": { + "version": "1.3.687", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.687.tgz", + "integrity": "sha512-IpzksdQNl3wdgkzf7dnA7/v10w0Utf1dF2L+B4+gKrloBrxCut+au+kky3PYvle3RMdSxZP+UiCZtLbcYRxSNQ==" + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "emoji-regex": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz", + "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "requires": { + "iconv-lite": "^0.6.2" + } + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz", + "integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==", + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==" + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz", + "integrity": "sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.2", + "is-string": "^1.0.5", + "object-inspect": "^1.9.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + } + } + }, + "eslint": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.6.0.tgz", + "integrity": "sha512-/eVYs9VVVboX286mBK7bbKnO1yamUy2UCRjiY6MryhQL2PaaXCExsCQ2aO83OeYRhU2eCU/FMFP+tVMoOrzNrA==", + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.5.3", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^4.0.0", + "eslint-utils": "^1.3.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^4.0.0", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.7.0", + "ignore": "^4.0.6", + "imurmurhash": "^0.1.4", + "inquirer": "^6.1.0", + "is-resolvable": "^1.1.0", + "js-yaml": "^3.12.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.5", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^2.0.0", + "require-uncached": "^1.0.3", + "semver": "^5.5.1", + "strip-ansi": "^4.0.0", + "strip-json-comments": "^2.0.1", + "table": "^4.0.3", + "text-table": "^0.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "eslint-config-react-app": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-3.0.8.tgz", + "integrity": "sha512-Ovi6Bva67OjXrom9Y/SLJRkrGqKhMAL0XCH8BizPhjEVEhYczl2ZKiNZI2CuqO5/CJwAfMwRXAVGY0KToWr1aA==", + "requires": { + "confusing-browser-globals": "^1.0.6" + } + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA==", + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "dependencies": { + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + } + } + }, + "eslint-loader": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-2.1.1.tgz", + "integrity": "sha512-1GrJFfSevQdYpoDzx8mEE2TDWsb/zmFuY09l6hURg1AeFIKQOvZ+vH0UPjzmd1CZIbfTV5HUkMeBmFiDBkgIsQ==", + "requires": { + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz", + "integrity": "sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA==", + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + } + }, + "eslint-plugin-flowtype": { + "version": "2.50.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-2.50.1.tgz", + "integrity": "sha512-9kRxF9hfM/O6WGZcZPszOVPd2W0TLHBtceulLTsGfwMPtiCCLnCW0ssRiOOiXyqrCA20pm1iXdXm7gQeN306zQ==", + "requires": { + "lodash": "^4.17.10" + } + }, + "eslint-plugin-import": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.14.0.tgz", + "integrity": "sha512-FpuRtniD/AY6sXByma2Wr0TXvXJ4nA/2/04VPlfpmUDPOpOY264x+ILiwnrk/k4RINgDAyFZByxqPUbSQ5YE7g==", + "requires": { + "contains-path": "^0.1.0", + "debug": "^2.6.8", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.1", + "eslint-module-utils": "^2.2.0", + "has": "^1.0.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.3", + "read-pkg-up": "^2.0.0", + "resolve": "^1.6.0" + }, + "dependencies": { + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "eslint-plugin-jsx-a11y": { + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz", + "integrity": "sha512-7gSSmwb3A+fQwtw0arguwMdOdzmKUgnUcbSNlo+GjKLAQFuC2EZxWqG9XHRI8VscBJD5a8raz3RuxQNFW+XJbw==", + "requires": { + "aria-query": "^3.0.0", + "array-includes": "^3.0.3", + "ast-types-flow": "^0.0.7", + "axobject-query": "^2.0.1", + "damerau-levenshtein": "^1.0.4", + "emoji-regex": "^6.5.1", + "has": "^1.0.3", + "jsx-ast-utils": "^2.0.1" + } + }, + "eslint-plugin-react": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.11.1.tgz", + "integrity": "sha512-cVVyMadRyW7qsIUh3FHp3u6QHNhOgVrLQYdQEB1bPWBsgbNCHdFAeNMquBMCcZJu59eNthX053L70l7gRt4SCw==", + "requires": { + "array-includes": "^3.0.3", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.0.1", + "prop-types": "^15.6.2" + } + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "requires": { + "eslint-visitor-keys": "^1.1.0" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==" + }, + "espree": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", + "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", + "requires": { + "acorn": "^6.0.2", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==" + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" + }, + "eth-ens-namehash": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz", + "integrity": "sha1-IprEbsqG1S4MmR58sq74P/D2i88=", + "requires": { + "idna-uts46-hx": "^2.3.1", + "js-sha3": "^0.5.7" + }, + "dependencies": { + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + } + } + }, + "eth-lib": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/eth-lib/-/eth-lib-0.2.8.tgz", + "integrity": "sha512-ArJ7x1WcWOlSpzdoTBX8vkwlkSQ85CjjifSZtV4co64vWxSV8geWfPI9x4SVYu3DSxnX4yWFVTtGL+j9DUFLNw==", + "requires": { + "bn.js": "^4.11.6", + "elliptic": "^6.4.0", + "xhr-request-promise": "^0.1.2" + } + }, + "ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" + }, + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + }, + "dependencies": { + "keccak": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz", + "integrity": "sha512-epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==", + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + } + } + }, + "ethereumjs-tx": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.7.tgz", + "integrity": "sha512-wvLMxzt1RPhAQ9Yi3/HKZTn0FZYpnsmQdbKYfUUpi4j1SEIcbkd9tndVjcPrufY3V7j2IebOpC00Zp2P/Ay2kA==", + "requires": { + "ethereum-common": "^0.0.18", + "ethereumjs-util": "^5.0.0" + } + }, + "ethereumjs-util": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.2.1.tgz", + "integrity": "sha512-v3kT+7zdyCm1HIqWlLNrHGqHGLpGYIhjeHxQjnDXjLT2FyGJDsd3LWMYUo7pAFRrk86CR3nUJfhC81CCoJNNGQ==", + "requires": { + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "^0.1.3", + "rlp": "^2.0.0", + "safe-buffer": "^5.1.1" + } + }, + "ethers": { + "version": "4.0.48", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-4.0.48.tgz", + "integrity": "sha512-sZD5K8H28dOrcidzx9f8KYh8083n5BexIO3+SbE4jK83L85FxtpXZBCQdXb8gkg+7sBqomcLhhkU7UHL+F7I2g==", + "requires": { + "aes-js": "3.0.0", + "bn.js": "^4.4.0", + "elliptic": "6.5.3", + "hash.js": "1.1.3", + "js-sha3": "0.5.7", + "scrypt-js": "2.0.4", + "setimmediate": "1.0.4", + "uuid": "2.0.1", + "xmlhttprequest": "1.8.0" + }, + "dependencies": { + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "js-sha3": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.5.7.tgz", + "integrity": "sha1-DU/9gALVMzqrr0oj7tL2N0yfKOc=" + }, + "scrypt-js": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.4.tgz", + "integrity": "sha512-4KsaGcPnuhtCZQCxFxN3GVYIhKFPTdLd8PLC552XwbMndtD0cjRFAhDuuydXQ0h08ZfPgzqe6EKHozpuH74iDw==" + }, + "setimmediate": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.4.tgz", + "integrity": "sha1-IOgd5iLUoCWIzgyNqJc8vPHTE48=" + }, + "uuid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" + } + } + }, + "ethjs-unit": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-unit/-/ethjs-unit-0.1.6.tgz", + "integrity": "sha1-xmWSHkduh7ziqdWIpv4EBbLEFpk=", + "requires": { + "bn.js": "4.11.6", + "number-to-bn": "1.7.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, + "eventemitter3": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", + "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "exec-sh": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz", + "integrity": "sha512-FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==", + "requires": { + "merge": "^1.2.0" + } + }, + "execa": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.10.0.tgz", + "integrity": "sha512-7XOMnz8Ynx1gGo/3hyV9loYNPWM94jG3+3T3Y8tsfSstFmETmENCMU/A/zj8Lyaj1lkgEepKepvd6240tBRvlw==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + } + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "expect": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/expect/-/expect-23.6.0.tgz", + "integrity": "sha512-dgSoOHgmtn/aDGRVFWclQyPDKl2CQRq0hmIEoUAuQs/2rn2NcvCWcSCovm6BLeuB/7EZuLGu2QfnR+qRt5OM4w==", + "requires": { + "ansi-styles": "^3.2.0", + "jest-diff": "^23.6.0", + "jest-get-type": "^22.1.0", + "jest-matcher-utils": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-regex-util": "^23.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==" + } + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.5.0.tgz", + "integrity": "sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw==" + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "^0.1.0" + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-fifo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.0.0.tgz", + "integrity": "sha512-4VEXmjxLj7sbs8J//cn2qhRap50dGzF5n8fjay8mau+Jn4hxSeR3xPFwxMaQq/pDaq7+KQk0PAbC2+nWDkJrmQ==" + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==" + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "requires": { + "bser": "2.1.1" + } + }, + "fbjs": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", + "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", + "requires": { + "core-js": "^1.0.0", + "isomorphic-fetch": "^2.1.1", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^0.7.18" + }, + "dependencies": { + "core-js": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", + "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" + } + } + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", + "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==" + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "file-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-2.0.0.tgz", + "integrity": "sha512-YCsBfd1ZGCyonOKLxPiKPdu+8ld9HAaMEvJewzz+b2eTF7uL5Zm/HdBF6FjCrpCMRq25Mi0U1gl4pwn2TlH7hQ==", + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=" + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "requires": { + "glob": "^7.0.3", + "minimatch": "^3.0.3" + } + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==" + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-1.3.4.tgz", + "integrity": "sha512-VwyB3Lkgacfik2vhqR4uv2rvebqmDvFu4jlN/C1RzWoJEo8I7z4Q404oiqYCkq41mni8EzQnm95emU9seckwtg==", + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==" + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "follow-redirects": { + "version": "1.13.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.3.tgz", + "integrity": "sha512-DUgl6+HDzB0iEptNQEXLx/KhTmDb8tZUHSeLqpnjpknR70H0nC2t9N73BK6fN4hOvJ84pKlIQVQ4k5FFlBedKA==" + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=" + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "fork-ts-checker-webpack-plugin-alt": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin-alt/-/fork-ts-checker-webpack-plugin-alt-0.4.14.tgz", + "integrity": "sha512-s0wjOBuPdylMRBzZ4yO8LSJuzem3g0MYZFxsjRXrFDQyL5KJBVSq30+GoHM/t/r2CRU4tI6zi04sq6OXK0UYnw==", + "requires": { + "babel-code-frame": "^6.22.0", + "chalk": "^2.4.1", + "chokidar": "^2.0.4", + "lodash": "^4.17.11", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "resolve": "^1.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==" + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=" + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-iterator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-iterator/-/get-iterator-1.0.2.tgz", + "integrity": "sha512-v+dm9bNVfOYsY1OrhaCrmyOcYoSeVvbt+hHZ0Au+T+p1y+0Uyj9aMaGIeUTT6xdpRbWzDeYKvfOslPhggQMcsg==" + }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==" + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "requires": { + "is-glob": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" + }, + "global": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/global/-/global-4.4.0.tgz", + "integrity": "sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==", + "requires": { + "min-document": "^2.19.0", + "process": "^0.11.10" + } + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "globalthis": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.2.tgz", + "integrity": "sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==", + "requires": { + "define-properties": "^1.1.3" + } + }, + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==" + } + } + }, + "graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + }, + "growl": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz", + "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==" + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=" + }, + "gud": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gud/-/gud-1.0.0.tgz", + "integrity": "sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw==" + }, + "gzip-size": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.0.0.tgz", + "integrity": "sha512-5iI7omclyqrnWw4XbXAmGhPsABkSIDQonv2K0h61lybgofWa6iZyvrI3r2zsJH4P8Nb64fFVzlvfhs0g7BBxAA==", + "requires": { + "duplexer": "^0.1.1", + "pify": "^3.0.0" + } + }, + "h2x-core": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/h2x-core/-/h2x-core-1.1.1.tgz", + "integrity": "sha512-LdXe4Irs731knLtHgLyFrnJCumfiqXXQwKN1IMUhi37li29PLfLbMDvfK7Rk4wmgHLKP+sIITT1mcJV4QsC3nw==", + "requires": { + "h2x-generate": "^1.1.0", + "h2x-parse": "^1.1.1", + "h2x-traverse": "^1.1.0" + } + }, + "h2x-generate": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/h2x-generate/-/h2x-generate-1.1.0.tgz", + "integrity": "sha512-L7Hym0yb20QIjvqeULUPOeh/cyvScdOAyJ6oRlh5dF0+w92hf3OiTk1q15KBijde7jGEe+0R4aOmtW8gkPNIzg==", + "requires": { + "h2x-traverse": "^1.1.0" + } + }, + "h2x-parse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/h2x-parse/-/h2x-parse-1.1.1.tgz", + "integrity": "sha512-WRSmPF+tIWuUXVEZaYRhcZx/JGEJx8LjZpDDtrvMr5m/GTR0NerydCik5dRzcKXPWCtfXxuJRLR4v2P4HB2B1A==", + "requires": { + "h2x-types": "^1.1.0", + "jsdom": ">=11.0.0" + } + }, + "h2x-plugin-jsx": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/h2x-plugin-jsx/-/h2x-plugin-jsx-1.2.0.tgz", + "integrity": "sha512-a7Vb3BHhJJq0dPDNdqguEyQirENkVsFtvM2YkiaT5h/fmGhmM1nDy3BLeJeSKi2tL2g9v4ykm2Z+GG9QrhDgPA==", + "requires": { + "h2x-types": "^1.1.0" + } + }, + "h2x-traverse": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/h2x-traverse/-/h2x-traverse-1.1.0.tgz", + "integrity": "sha512-1ND8ZbISLSUgpLHYJRvhvElITvs0g44L7RxjeXViz5XP6rooa+FtXTFLByl2Yg01zj2txubifHIuU4pgvj8l+A==", + "requires": { + "h2x-types": "^1.1.0" + } + }, + "h2x-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/h2x-types/-/h2x-types-1.1.0.tgz", + "integrity": "sha512-QdH5qfLcdF209UsCdM0ZNZ9Dwm2PHvMfeLZtivBrjX3Y/df4US2pwsUC4HBfWhye/mx/t6puODeC7Oacb/Ol8g==" + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "handlebars": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", + "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "requires": { + "minimist": "^1.2.5", + "neo-async": "^2.6.0", + "source-map": "^0.6.1", + "uglify-js": "^3.1.4", + "wordwrap": "^1.0.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "harmony-reflect": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/harmony-reflect/-/harmony-reflect-1.6.1.tgz", + "integrity": "sha512-WJTeyp0JzGtHcuMsi7rw2VwtkvLa+JyfEKJCFyfcS0+CDkjQ5lHPu7zEhFZP+PDSRrEgXa5Ah0l1MbgbE41XjA==" + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==" + }, + "history": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", + "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", + "requires": { + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoek": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.1.tgz", + "integrity": "sha512-QLg82fGkfnJ/4iy1xZ81/9SIJiq1NGFUMGs6ParyjBZr6jW2Ufj/snDqTHixNlHdPNwN2RLVD0Pi3igeK9+JfA==" + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz", + "integrity": "sha512-HRcs+2mr52W0K+x8RzcLzuPPmVIKMSv97RGHy0Ea9y/mpcaK+xTrjICA04KAHi4GRzxliNqNJEFYWHghy3rSfQ==" + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==" + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=" + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=" + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==" + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-entities": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", + "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==" + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==" + } + } + }, + "html-webpack-plugin": { + "version": "4.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-alpha.2.tgz", + "integrity": "sha512-tyvhjVpuGqD7QYHi1l1drMQTg5i+qRxpQEGbdnYFREgOKy7aFDf/ocQ/V1fuEDlQx7jV2zMap3Hj2nE9i5eGXw==", + "requires": { + "@types/tapable": "1.0.2", + "html-minifier": "^3.2.3", + "loader-utils": "^1.1.0", + "lodash": "^4.17.10", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "util.promisify": "1.0.0" + }, + "dependencies": { + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + } + } + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==" + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=" + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "http-parser-js": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", + "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==" + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "dependencies": { + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + } + } + }, + "http-proxy-middleware": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.18.0.tgz", + "integrity": "sha512-Fs25KVMPAIIcgjMZkVHJoKg9VcXcC1C8yb9JUgeDvVXY0S/zgVIhMb+qVswDIgtJe2DfckMSY2d6TuTEutlk6Q==", + "requires": { + "http-proxy": "^1.16.2", + "is-glob": "^4.0.0", + "lodash": "^4.17.5", + "micromatch": "^3.1.9" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=" + }, + "iconv-lite": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", + "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "requires": { + "postcss": "^6.0.1" + } + }, + "identity-obj-proxy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", + "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", + "requires": { + "harmony-reflect": "^1.4.6" + } + }, + "idna-uts46-hx": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz", + "integrity": "sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA==", + "requires": { + "punycode": "2.1.0" + }, + "dependencies": { + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=" + } + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=" + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" + }, + "immer": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", + "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==" + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "requires": { + "resolve-from": "^3.0.0" + } + }, + "import-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "requires": { + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=" + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "inquirer": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", + "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "internal-ip": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-3.0.1.tgz", + "integrity": "sha512-NXXgESC2nNVtU+pqmC9e6R8B1GpKxzsAQhffvh5AL79qKnodd+L7tnEQmTiUAVngqLalPbSqRA7XGIEL5nCd0Q==", + "requires": { + "default-gateway": "^2.6.0", + "ipaddr.js": "^1.5.2" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", + "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=" + }, + "ip-regex": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", + "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==" + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" + }, + "ipfs-core-types": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/ipfs-core-types/-/ipfs-core-types-0.3.1.tgz", + "integrity": "sha512-xPBsowS951RsuskMo86AWz9y4ReaBot1YsjOhZvKl8ORd8taxIBTT72LnEPwIZ2G24U854Zjxvd/qUMqO14ivg==", + "requires": { + "cids": "^1.1.5", + "multiaddr": "^8.0.0", + "peer-id": "^0.14.1" + } + }, + "ipfs-core-utils": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ipfs-core-utils/-/ipfs-core-utils-0.7.2.tgz", + "integrity": "sha512-d7T72GxvhNN+tEHsJjxI5Y4LQVdMMbSwNbWB6nVsIHUEdwm3w85L2u1E/ctNd9aaNGvoBwEcnIZhSmqhMf7stw==", + "requires": { + "any-signal": "^2.1.2", + "blob-to-it": "^1.0.1", + "browser-readablestream-to-it": "^1.0.1", + "cids": "^1.1.5", + "err-code": "^2.0.3", + "ipfs-core-types": "^0.3.1", + "ipfs-utils": "^6.0.1", + "it-all": "^1.0.4", + "it-map": "^1.0.4", + "it-peekable": "^1.0.1", + "multiaddr": "^8.0.0", + "multiaddr-to-uri": "^6.0.0", + "parse-duration": "^0.4.4", + "timeout-abort-controller": "^1.1.1", + "uint8arrays": "^2.1.3" + } + }, + "ipfs-http-client": { + "version": "49.0.4", + "resolved": "https://registry.npmjs.org/ipfs-http-client/-/ipfs-http-client-49.0.4.tgz", + "integrity": "sha512-qgWbkcB4glQrUkE2tZR+GVXyrO6aJyspWBjyct/6TzrhCHx7evjz+kUTK+wNm4S9zccUePEml5VNZUmUhoQtbA==", + "requires": { + "abort-controller": "^3.0.0", + "any-signal": "^2.1.2", + "bignumber.js": "^9.0.1", + "cids": "^1.1.5", + "debug": "^4.1.1", + "form-data": "^3.0.0", + "ipfs-core-types": "^0.3.1", + "ipfs-core-utils": "^0.7.2", + "ipfs-utils": "^6.0.1", + "ipld-block": "^0.11.0", + "ipld-dag-cbor": "^0.17.0", + "ipld-dag-pb": "^0.20.0", + "ipld-raw": "^6.0.0", + "it-last": "^1.0.4", + "it-map": "^1.0.4", + "it-tar": "^1.2.2", + "it-to-stream": "^0.1.2", + "merge-options": "^3.0.4", + "multiaddr": "^8.0.0", + "multibase": "^4.0.2", + "multicodec": "^3.0.1", + "multihashes": "^4.0.2", + "nanoid": "^3.1.12", + "native-abort-controller": "^1.0.3", + "parse-duration": "^0.4.4", + "stream-to-it": "^0.2.2", + "uint8arrays": "^2.1.3" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "ipfs-utils": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ipfs-utils/-/ipfs-utils-6.0.1.tgz", + "integrity": "sha512-u6fJDi/LpCEj96JM//cdDWJV44YR7jLdxQ6I0d8Hj/BCPIQPTWsjQeSppKxudMjYRpX4kzdv9WxrNM8dc4rtlQ==", + "requires": { + "abort-controller": "^3.0.0", + "any-signal": "^2.1.0", + "buffer": "^6.0.1", + "electron-fetch": "^1.7.2", + "err-code": "^2.0.3", + "fs-extra": "^9.0.1", + "is-electron": "^2.2.0", + "iso-url": "^1.0.0", + "it-glob": "0.0.10", + "it-to-stream": "^0.1.2", + "merge-options": "^3.0.4", + "nanoid": "^3.1.20", + "native-abort-controller": "^1.0.3", + "native-fetch": "2.0.1", + "node-fetch": "^2.6.1", + "stream-to-it": "^0.2.2", + "web-encoding": "^1.0.6" + } + }, + "ipld-block": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/ipld-block/-/ipld-block-0.11.1.tgz", + "integrity": "sha512-sDqqLqD5qh4QzGq6ssxLHUCnH4emCf/8F8IwjQM2cjEEIEHMUj57XhNYgmGbemdYPznUhffxFGEHsruh5+HQRw==", + "requires": { + "cids": "^1.0.0" + } + }, + "ipld-dag-cbor": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/ipld-dag-cbor/-/ipld-dag-cbor-0.17.1.tgz", + "integrity": "sha512-Bakj/cnxQBdscORyf4LRHxQJQfoaY8KWc7PWROQgX+aw5FCzBt8ga0VM/59K+ABOznsqNvyLR/wz/oYImOpXJw==", + "requires": { + "borc": "^2.1.2", + "cids": "^1.0.0", + "is-circular": "^1.0.2", + "multicodec": "^3.0.1", + "multihashing-async": "^2.0.0", + "uint8arrays": "^2.1.3" + } + }, + "ipld-dag-pb": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/ipld-dag-pb/-/ipld-dag-pb-0.20.0.tgz", + "integrity": "sha512-zfM0EdaolqNjAxIrtpuGKvXxWk5YtH9jKinBuQGTcngOsWFQhyybGCTJHGNGGtRjHNJi2hz5Udy/8pzv4kcKyg==", + "requires": { + "cids": "^1.0.0", + "class-is": "^1.1.0", + "multicodec": "^2.0.0", + "multihashing-async": "^2.0.0", + "protons": "^2.0.0", + "reset": "^0.1.0", + "run": "^1.4.0", + "stable": "^0.1.8", + "uint8arrays": "^1.0.0" + }, + "dependencies": { + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } + }, + "multicodec": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", + "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "requires": { + "uint8arrays": "1.1.0", + "varint": "^6.0.0" + } + }, + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "requires": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + }, + "varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + } + } + }, + "ipld-raw": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/ipld-raw/-/ipld-raw-6.0.0.tgz", + "integrity": "sha512-UK7fjncAzs59iu/o2kwYtb8jgTtW6B+cNWIiNpAJkfRwqoMk1xD/6i25ktzwe4qO8gQgoR9RxA5ibC23nq8BLg==", + "requires": { + "cids": "^1.0.0", + "multicodec": "^2.0.0", + "multihashing-async": "^2.0.0" + }, + "dependencies": { + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } + }, + "multicodec": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", + "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "requires": { + "uint8arrays": "1.1.0", + "varint": "^6.0.0" + } + }, + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "requires": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + }, + "varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + } + } + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "is-arguments": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", + "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-bigint": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.1.tgz", + "integrity": "sha512-J0ELF4yHFxHy0cmSxZuheDOz2luOdVvqjwmEcj8H/L1JHeuEDSDbeRP+Dk9kFVk5RTFzbucJ2Kb9F7ixY2QaCg==" + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.0.tgz", + "integrity": "sha512-a7Uprx8UtD+HWdyYwnD1+ExtTgqQtD2k/1yJgtXP6wnMm8byhkoTZRl+95LLThpzNZJ5aEvi46cdH+ayMFRwmA==", + "requires": { + "call-bind": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-circular": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-circular/-/is-circular-1.0.2.tgz", + "integrity": "sha512-YttjnrswnUYRVJvxCvu8z+PGMUSzC2JttP0OEXezlAEdp3EXzhf7IZ3j0gRAybJBQupedIZFhY61Tga6E0qASA==" + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "^6.0.0" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==" + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=" + }, + "is-electron": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.0.tgz", + "integrity": "sha512-SpMppC2XR3YdxSzczXReBjqs2zGscWQpBIKqwXYBFic0ERaxNVgwLCHwOLZeESfdJQjX0RDvrJ1lBXX2ij+G1Q==" + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==" + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-function": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.2.tgz", + "integrity": "sha512-lw7DUp0aWXYg+CBCN+JKkcE0Q2RayZnSvnZBlwgxHBQhqt5pZNVy4Ri7H9GmmXkdu7LUthszM+Tor1u/2iBcpQ==" + }, + "is-generator-fn": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-1.0.0.tgz", + "integrity": "sha1-lp1J4bszKfa7fwkIm+JleLLd1Go=" + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" + }, + "is-ip": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-3.1.0.tgz", + "integrity": "sha512-35vd5necO7IitFPjd/YBeqwWnyDWbuLH9ZXQdMfDA8TEo7pv5X8yfrvVO3xbJbLUlERCMvf6X0hTUamQxCYJ9Q==", + "requires": { + "ip-regex": "^4.0.0" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-number-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.4.tgz", + "integrity": "sha512-zohwelOAur+5uXtk8O3GPQ1eAcu4ZX3UwxQhUlfFFMNpUd83gXgjbhJh6HmB6LUNV/ieOLQuDwJO3dWJosUeMw==" + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=" + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=" + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "^3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=" + }, + "is-potential-custom-element-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", + "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=" + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=" + }, + "is-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz", + "integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==", + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.1" + } + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=" + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==" + }, + "is-root": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.0.0.tgz", + "integrity": "sha512-F/pJIk8QD6OX5DNhRB7hWamLsUilmkDGho48KbgZ6xg/lmAZXHxzXQ91jzB3yRSw5kdQGGGc4yz8HYhTYIMWPg==" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz", + "integrity": "sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==" + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "isemail": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/isemail/-/isemail-3.2.0.tgz", + "integrity": "sha512-zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==", + "requires": { + "punycode": "2.x.x" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "iso-constants": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/iso-constants/-/iso-constants-0.1.2.tgz", + "integrity": "sha512-OTCM5ZCQsHBCI4Wdu4tSxvDIkmDHd5EwJDps5mKqnQnWJSKlnwMs3EDZ4n3Fh1tmkWkDlyd2vCDbEYuPbyrUNQ==" + }, + "iso-random-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/iso-random-stream/-/iso-random-stream-1.1.1.tgz", + "integrity": "sha512-YEt/7xOwTdu4KXIgtdgGFkiLUsBaddbnkmHyaFdjJYIcD7V4gpQHPvYC5tyh3kA0PQ01y9lWm1ruVdf8Mqzovg==", + "requires": { + "buffer": "^5.4.3", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } + } + }, + "iso-url": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-1.1.4.tgz", + "integrity": "sha512-Gzsd4pb2WAkobYj8cgAdoBYuRsC9O4dFlqjFcNZ1AdIlEzDXacP3SLbc4fOdvn2atKSVmRhGXYasCUmB8119ew==" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "requires": { + "node-fetch": "^1.0.1", + "whatwg-fetch": ">=0.10.0" + }, + "dependencies": { + "node-fetch": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", + "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", + "requires": { + "encoding": "^0.1.11", + "is-stream": "^1.0.1" + } + } + } + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "istanbul-api": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.3.7.tgz", + "integrity": "sha512-4/ApBnMVeEPG3EkSzcw25wDe4N66wxwn+KKn6b47vyek8Xb3NBAcg4xfuQbS7BqcZuTX4wxfD5lVagdggR3gyA==", + "requires": { + "async": "^2.1.4", + "fileset": "^2.0.2", + "istanbul-lib-coverage": "^1.2.1", + "istanbul-lib-hook": "^1.2.2", + "istanbul-lib-instrument": "^1.10.2", + "istanbul-lib-report": "^1.1.5", + "istanbul-lib-source-maps": "^1.2.6", + "istanbul-reports": "^1.5.1", + "js-yaml": "^3.7.0", + "mkdirp": "^0.5.1", + "once": "^1.4.0" + } + }, + "istanbul-lib-coverage": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.2.1.tgz", + "integrity": "sha512-PzITeunAgyGbtY1ibVIUiV679EFChHjoMNRibEIobvmrCRaIgwLxNucOSimtNWUhEib/oO7QY2imD75JVgCJWQ==" + }, + "istanbul-lib-hook": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.2.tgz", + "integrity": "sha512-/Jmq7Y1VeHnZEQ3TL10VHyb564mn6VrQXHchON9Jf/AEcmQ3ZIiyD1BVzNOKTZf/G3gE+kiGK6SmpF9y3qGPLw==", + "requires": { + "append-transform": "^0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.10.2.tgz", + "integrity": "sha512-aWHxfxDqvh/ZlxR8BBaEPVSWDPUkGD63VjGQn3jcw8jCp7sHEMKcrj4xfJn/ABzdMEHiQNyvDQhqm5o8+SQg7A==", + "requires": { + "babel-generator": "^6.18.0", + "babel-template": "^6.16.0", + "babel-traverse": "^6.18.0", + "babel-types": "^6.18.0", + "babylon": "^6.18.0", + "istanbul-lib-coverage": "^1.2.1", + "semver": "^5.3.0" + } + }, + "istanbul-lib-report": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.5.tgz", + "integrity": "sha512-UsYfRMoi6QO/doUshYNqcKJqVmFe9w51GZz8BS3WB0lYxAllQYklka2wP9+dGZeHYaWIdcXUx8JGdbqaoXRXzw==", + "requires": { + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" + }, + "dependencies": { + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.6.tgz", + "integrity": "sha512-TtbsY5GIHgbMsMiRw35YBHGpZ1DVFEO19vxxeiDMYaeOFOCzfnYVxvl6pOUIZR4dtPhAGpSMup8OyF8ubsaqEg==", + "requires": { + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.1", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "istanbul-reports": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.5.1.tgz", + "integrity": "sha512-+cfoZ0UXzWjhAdzosCPP3AN8vvef8XDkWtTfgaN+7L3YTpNYITnCaEkceo5SEYy644VkHka/P1FvkWvrG/rrJw==", + "requires": { + "handlebars": "^4.0.3" + } + }, + "it-all": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/it-all/-/it-all-1.0.5.tgz", + "integrity": "sha512-ygD4kA4vp8fi+Y+NBgEKt6W06xSbv6Ub/0V8d1r3uCyJ9Izwa1UspkIOlqY9fOee0Z1w3WRo1+VWyAU4DgtufA==" + }, + "it-concat": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-concat/-/it-concat-1.0.2.tgz", + "integrity": "sha512-YZtXOe10qBcTDOsz59AscfmsKRoVPYX5AFxCans2L/QL20Jah1H1/+wzWDaJj8zu0KiA9gys3vBoZIZwhsUeeg==", + "requires": { + "bl": "^4.0.0" + } + }, + "it-glob": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/it-glob/-/it-glob-0.0.10.tgz", + "integrity": "sha512-p1PR15djgPV7pxdLOW9j4WcJdla8+91rJdUU2hU2Jm68vkxpIEXK55VHBeH8Lvqh2vqLtM83t8q4BuJxue6niA==", + "requires": { + "fs-extra": "^9.0.1", + "minimatch": "^3.0.4" + } + }, + "it-last": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/it-last/-/it-last-1.0.5.tgz", + "integrity": "sha512-PV/2S4zg5g6dkVuKfgrQfN2rUN4wdTI1FzyAvU+i8RV96syut40pa2s9Dut5X7SkjwA3P0tOhLABLdnOJ0Y/4Q==" + }, + "it-map": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/it-map/-/it-map-1.0.5.tgz", + "integrity": "sha512-EElupuWhHVStUgUY+OfTJIS2MZed96lDrAXzJUuqiiqLnIKoBRqtX1ZG2oR0bGDsSppmz83MtzCeKLZ9TVAUxQ==" + }, + "it-peekable": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/it-peekable/-/it-peekable-1.0.2.tgz", + "integrity": "sha512-LRPLu94RLm+lxLZbChuc9iCXrKCOu1obWqxfaKhF00yIp30VGkl741b5P60U+rdBxuZD/Gt1bnmakernv7bVFg==" + }, + "it-reader": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/it-reader/-/it-reader-2.1.0.tgz", + "integrity": "sha512-hSysqWTO9Tlwc5EGjVf8JYZzw0D2FsxD/g+eNNWrez9zODxWt6QlN6JAMmycK72Mv4jHEKEXoyzUN4FYGmJaZw==", + "requires": { + "bl": "^4.0.0" + } + }, + "it-tar": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/it-tar/-/it-tar-1.2.2.tgz", + "integrity": "sha512-M8V4a9I+x/vwXTjqvixcEZbQZHjwDIb8iUQ+D4M2QbhAdNs3WKVSl+45u5/F2XFx6jYMFOGzMVlKNK/uONgNIA==", + "requires": { + "bl": "^4.0.0", + "buffer": "^5.4.3", + "iso-constants": "^0.1.2", + "it-concat": "^1.0.0", + "it-reader": "^2.0.0", + "p-defer": "^3.0.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } + } + }, + "it-to-stream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/it-to-stream/-/it-to-stream-0.1.2.tgz", + "integrity": "sha512-DTB5TJRZG3untmZehcaFN0kGWl2bNv7tnJRgQHAO9QEt8jfvVRrebZtnD5NZd4SCj4WVPjl0LSrugNWE/UaZRQ==", + "requires": { + "buffer": "^5.6.0", + "fast-fifo": "^1.0.0", + "get-iterator": "^1.0.2", + "p-defer": "^3.0.0", + "p-fifo": "^1.0.0", + "readable-stream": "^3.6.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + } + } + }, + "jest": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest/-/jest-23.6.0.tgz", + "integrity": "sha512-lWzcd+HSiqeuxyhG+EnZds6iO3Y3ZEnMrfZq/OTGvF/C+Z4fPMCdhWTGSAiO2Oym9rbEXfwddHhh6jqrTF3+Lw==", + "requires": { + "import-local": "^1.0.0", + "jest-cli": "^23.6.0" + } + }, + "jest-changed-files": { + "version": "23.4.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-23.4.2.tgz", + "integrity": "sha512-EyNhTAUWEfwnK0Is/09LxoqNDOn7mU7S3EHskG52djOFS/z+IT0jT3h3Ql61+dklcG7bJJitIWEMB4Sp1piHmA==", + "requires": { + "throat": "^4.0.0" + } + }, + "jest-cli": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-23.6.0.tgz", + "integrity": "sha512-hgeD1zRUp1E1zsiyOXjEn4LzRLWdJBV//ukAHGlx6s5mfCNJTbhbHjgxnDUXA8fsKWN/HqFFF6X5XcCwC/IvYQ==", + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "import-local": "^1.0.0", + "is-ci": "^1.0.10", + "istanbul-api": "^1.3.1", + "istanbul-lib-coverage": "^1.2.0", + "istanbul-lib-instrument": "^1.10.1", + "istanbul-lib-source-maps": "^1.2.4", + "jest-changed-files": "^23.4.2", + "jest-config": "^23.6.0", + "jest-environment-jsdom": "^23.4.0", + "jest-get-type": "^22.1.0", + "jest-haste-map": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-regex-util": "^23.3.0", + "jest-resolve-dependencies": "^23.6.0", + "jest-runner": "^23.6.0", + "jest-runtime": "^23.6.0", + "jest-snapshot": "^23.6.0", + "jest-util": "^23.4.0", + "jest-validate": "^23.6.0", + "jest-watcher": "^23.4.0", + "jest-worker": "^23.2.0", + "micromatch": "^2.3.11", + "node-notifier": "^5.2.1", + "prompts": "^0.1.9", + "realpath-native": "^1.0.0", + "rimraf": "^2.5.4", + "slash": "^1.0.0", + "string-length": "^2.0.0", + "strip-ansi": "^4.0.0", + "which": "^1.2.12", + "yargs": "^11.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jest-config": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-23.6.0.tgz", + "integrity": "sha512-i8V7z9BeDXab1+VNo78WM0AtWpBRXJLnkT+lyT+Slx/cbP5sZJ0+NDuLcmBE5hXAoK0aUp7vI+MOxR+R4d8SRQ==", + "requires": { + "babel-core": "^6.0.0", + "babel-jest": "^23.6.0", + "chalk": "^2.0.1", + "glob": "^7.1.1", + "jest-environment-jsdom": "^23.4.0", + "jest-environment-node": "^23.4.0", + "jest-get-type": "^22.1.0", + "jest-jasmine2": "^23.6.0", + "jest-regex-util": "^23.3.0", + "jest-resolve": "^23.6.0", + "jest-util": "^23.4.0", + "jest-validate": "^23.6.0", + "micromatch": "^2.3.11", + "pretty-format": "^23.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jest-diff": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-23.6.0.tgz", + "integrity": "sha512-Gz9l5Ov+X3aL5L37IT+8hoCUsof1CVYBb2QEkOupK64XyRR3h+uRpYIm97K7sY8diFxowR8pIGEdyfMKTixo3g==", + "requires": { + "chalk": "^2.0.1", + "diff": "^3.2.0", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jest-docblock": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-23.2.0.tgz", + "integrity": "sha1-8IXh8YVI2Z/dabICB+b9VdkTg6c=", + "requires": { + "detect-newline": "^2.1.0" + } + }, + "jest-each": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-23.6.0.tgz", + "integrity": "sha512-x7V6M/WGJo6/kLoissORuvLIeAoyo2YqLOoCDkohgJ4XOXSqOtyvr8FbInlAWS77ojBsZrafbozWoKVRdtxFCg==", + "requires": { + "chalk": "^2.0.1", + "pretty-format": "^23.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jest-environment-jsdom": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-23.4.0.tgz", + "integrity": "sha1-BWp5UrP+pROsYqFAosNox52eYCM=", + "requires": { + "jest-mock": "^23.2.0", + "jest-util": "^23.4.0", + "jsdom": "^11.5.1" + }, + "dependencies": { + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==" + }, + "acorn-globals": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", + "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", + "requires": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + }, + "dependencies": { + "acorn": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==" + } + } + }, + "acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.2.0.tgz", + "integrity": "sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==" + }, + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "cssstyle": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", + "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", + "requires": { + "cssom": "0.3.x" + } + }, + "data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", + "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", + "requires": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + }, + "dependencies": { + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + } + } + }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", + "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", + "requires": { + "webidl-conversions": "^4.0.2" + } + }, + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + } + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", + "requires": { + "whatwg-encoding": "^1.0.1" + } + }, + "jsdom": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", + "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", + "requires": { + "abab": "^2.0.0", + "acorn": "^5.5.3", + "acorn-globals": "^4.1.0", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": "^1.0.0", + "data-urls": "^1.0.0", + "domexception": "^1.0.1", + "escodegen": "^1.9.1", + "html-encoding-sniffer": "^1.0.2", + "left-pad": "^1.3.0", + "nwsapi": "^2.0.7", + "parse5": "4.0.0", + "pn": "^1.1.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.5", + "sax": "^1.2.4", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.3.4", + "w3c-hr-time": "^1.0.1", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.3", + "whatwg-mimetype": "^2.1.0", + "whatwg-url": "^6.4.1", + "ws": "^5.2.0", + "xml-name-validator": "^3.0.0" + } + }, + "parse5": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", + "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "requires": { + "punycode": "^2.1.0" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==" + }, + "whatwg-url": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", + "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "ws": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", + "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", + "requires": { + "async-limiter": "~1.0.0" + } + } + } + }, + "jest-environment-node": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-23.4.0.tgz", + "integrity": "sha1-V+gO0IQd6jAxZ8zozXlSHeuv3hA=", + "requires": { + "jest-mock": "^23.2.0", + "jest-util": "^23.4.0" + } + }, + "jest-get-type": { + "version": "22.4.3", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz", + "integrity": "sha512-/jsz0Y+V29w1chdXVygEKSz2nBoHoYqNShPe+QgxSNjAuP1i8+k4LbQNrfoliKej0P45sivkSCh7yiD6ubHS3w==" + }, + "jest-haste-map": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-23.6.0.tgz", + "integrity": "sha512-uyNhMyl6dr6HaXGHp8VF7cK6KpC6G9z9LiMNsst+rJIZ8l7wY0tk8qwjPmEghczojZ2/ZhtEdIabZ0OQRJSGGg==", + "requires": { + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.1.11", + "invariant": "^2.2.4", + "jest-docblock": "^23.2.0", + "jest-serializer": "^23.0.1", + "jest-worker": "^23.2.0", + "micromatch": "^2.3.11", + "sane": "^2.0.0" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "jest-jasmine2": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-23.6.0.tgz", + "integrity": "sha512-pe2Ytgs1nyCs8IvsEJRiRTPC0eVYd8L/dXJGU08GFuBwZ4sYH/lmFDdOL3ZmvJR8QKqV9MFuwlsAi/EWkFUbsQ==", + "requires": { + "babel-traverse": "^6.0.0", + "chalk": "^2.0.1", + "co": "^4.6.0", + "expect": "^23.6.0", + "is-generator-fn": "^1.0.0", + "jest-diff": "^23.6.0", + "jest-each": "^23.6.0", + "jest-matcher-utils": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-snapshot": "^23.6.0", + "jest-util": "^23.4.0", + "pretty-format": "^23.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jest-leak-detector": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-23.6.0.tgz", + "integrity": "sha512-f/8zA04rsl1Nzj10HIyEsXvYlMpMPcy0QkQilVZDFOaPbv2ur71X5u2+C4ZQJGyV/xvVXtCCZ3wQ99IgQxftCg==", + "requires": { + "pretty-format": "^23.6.0" + } + }, + "jest-matcher-utils": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-23.6.0.tgz", + "integrity": "sha512-rosyCHQfBcol4NsckTn01cdelzWLU9Cq7aaigDf8VwwpIRvWE/9zLgX2bON+FkEW69/0UuYslUe22SOdEf2nog==", + "requires": { + "chalk": "^2.0.1", + "jest-get-type": "^22.1.0", + "pretty-format": "^23.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jest-message-util": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-23.4.0.tgz", + "integrity": "sha1-F2EMUJQjSVCNAaPR4L2iwHkIap8=", + "requires": { + "@babel/code-frame": "^7.0.0-beta.35", + "chalk": "^2.0.1", + "micromatch": "^2.3.11", + "slash": "^1.0.0", + "stack-utils": "^1.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jest-mock": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-23.2.0.tgz", + "integrity": "sha1-rRxg8p6HGdR8JuETgJi20YsmETQ=" + }, + "jest-pnp-resolver": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.0.1.tgz", + "integrity": "sha512-kzhvJQp+9k0a/hpvIIzOJgOwfOqmnohdrAMZW2EscH3kxR2VWD7EcPa10cio8EK9V7PcD75bhG1pFnO70zGwSQ==", + "requires": {} + }, + "jest-regex-util": { + "version": "23.3.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-23.3.0.tgz", + "integrity": "sha1-X4ZylUfCeFxAAs6qj4Sf6MpHG8U=" + }, + "jest-resolve": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-23.6.0.tgz", + "integrity": "sha512-XyoRxNtO7YGpQDmtQCmZjum1MljDqUCob7XlZ6jy9gsMugHdN2hY4+Acz9Qvjz2mSsOnPSH7skBmDYCHXVZqkA==", + "requires": { + "browser-resolve": "^1.11.3", + "chalk": "^2.0.1", + "realpath-native": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jest-resolve-dependencies": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-23.6.0.tgz", + "integrity": "sha512-EkQWkFWjGKwRtRyIwRwI6rtPAEyPWlUC2MpzHissYnzJeHcyCn1Hc8j7Nn1xUVrS5C6W5+ZL37XTem4D4pLZdA==", + "requires": { + "jest-regex-util": "^23.3.0", + "jest-snapshot": "^23.6.0" + } + }, + "jest-runner": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-23.6.0.tgz", + "integrity": "sha512-kw0+uj710dzSJKU6ygri851CObtCD9cN8aNkg8jWJf4ewFyEa6kwmiH/r/M1Ec5IL/6VFa0wnAk6w+gzUtjJzA==", + "requires": { + "exit": "^0.1.2", + "graceful-fs": "^4.1.11", + "jest-config": "^23.6.0", + "jest-docblock": "^23.2.0", + "jest-haste-map": "^23.6.0", + "jest-jasmine2": "^23.6.0", + "jest-leak-detector": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-runtime": "^23.6.0", + "jest-util": "^23.4.0", + "jest-worker": "^23.2.0", + "source-map-support": "^0.5.6", + "throat": "^4.0.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "jest-runtime": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-23.6.0.tgz", + "integrity": "sha512-ycnLTNPT2Gv+TRhnAYAQ0B3SryEXhhRj1kA6hBPSeZaNQkJ7GbZsxOLUkwg6YmvWGdX3BB3PYKFLDQCAE1zNOw==", + "requires": { + "babel-core": "^6.0.0", + "babel-plugin-istanbul": "^4.1.6", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "exit": "^0.1.2", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.1.11", + "jest-config": "^23.6.0", + "jest-haste-map": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-regex-util": "^23.3.0", + "jest-resolve": "^23.6.0", + "jest-snapshot": "^23.6.0", + "jest-util": "^23.4.0", + "jest-validate": "^23.6.0", + "micromatch": "^2.3.11", + "realpath-native": "^1.0.0", + "slash": "^1.0.0", + "strip-bom": "3.0.0", + "write-file-atomic": "^2.1.0", + "yargs": "^11.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jest-serializer": { + "version": "23.0.1", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-23.0.1.tgz", + "integrity": "sha1-o3dq6zEekP6D+rnlM+hRAr0WQWU=" + }, + "jest-snapshot": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-23.6.0.tgz", + "integrity": "sha512-tM7/Bprftun6Cvj2Awh/ikS7zV3pVwjRYU2qNYS51VZHgaAMBs5l4o/69AiDHhQrj5+LA2Lq4VIvK7zYk/bswg==", + "requires": { + "babel-types": "^6.0.0", + "chalk": "^2.0.1", + "jest-diff": "^23.6.0", + "jest-matcher-utils": "^23.6.0", + "jest-message-util": "^23.4.0", + "jest-resolve": "^23.6.0", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^23.6.0", + "semver": "^5.5.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jest-util": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-23.4.0.tgz", + "integrity": "sha1-TQY8uSe68KI4Mf9hvsLLv0l5NWE=", + "requires": { + "callsites": "^2.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.11", + "is-ci": "^1.0.10", + "jest-message-util": "^23.4.0", + "mkdirp": "^0.5.1", + "slash": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jest-validate": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-23.6.0.tgz", + "integrity": "sha512-OFKapYxe72yz7agrDAWi8v2WL8GIfVqcbKRCLbRG9PAxtzF9b1SEDdTpytNDN12z2fJynoBwpMpvj2R39plI2A==", + "requires": { + "chalk": "^2.0.1", + "jest-get-type": "^22.1.0", + "leven": "^2.1.0", + "pretty-format": "^23.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jest-watcher": { + "version": "23.4.0", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-23.4.0.tgz", + "integrity": "sha1-0uKM50+NrWxq/JIrksq+9u0FyRw=", + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "string-length": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jest-worker": { + "version": "23.2.0", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-23.2.0.tgz", + "integrity": "sha1-+vcGqNo2+uYOsmlXJX+ntdjqArk=", + "requires": { + "merge-stream": "^1.0.1" + } + }, + "joi": { + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/joi/-/joi-11.4.0.tgz", + "integrity": "sha512-O7Uw+w/zEWgbL6OcHbyACKSj0PkQeUgmehdoXVSxt92QFCq4+1390Rwh5moI2K/OgC7D8RHRZqHZxT2husMJHA==", + "requires": { + "hoek": "4.x.x", + "isemail": "3.x.x", + "topo": "2.x.x" + } + }, + "jquery": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz", + "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==", + "peer": true + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==" + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" + }, + "jsdom": { + "version": "16.5.1", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.5.1.tgz", + "integrity": "sha512-pF73EOsJgwZekbDHEY5VO/yKXUkab/DuvrQB/ANVizbr6UAHJsDdHXuotZYwkJSGQl1JM+ivXaqY+XBDDL4TiA==", + "requires": { + "abab": "^2.0.5", + "acorn": "^8.0.5", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "html-encoding-sniffer": "^2.0.1", + "is-potential-custom-element-name": "^1.0.0", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "request": "^2.88.2", + "request-promise-native": "^1.0.9", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0", + "ws": "^7.4.4", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.1.0.tgz", + "integrity": "sha512-LWCF/Wn0nfHOmJ9rzQApGnxnvgfROzGilS8936rqN/lfcYkY9MYZzdMqN+2NJ4SlTc+m5HiSa+kNfDtI64dwUA==" + } + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json-text-sequence": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", + "integrity": "sha1-py8hfcSvxGKf/1/rME3BvVGi89I=", + "requires": { + "delimit-stream": "0.1.0" + } + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==" + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "jsx-ast-utils": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz", + "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==", + "requires": { + "array-includes": "^3.1.1", + "object.assign": "^4.1.0" + } + }, + "keccak": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.4.0.tgz", + "integrity": "sha512-eZVaCpblK5formjPjeTBik7TAg+pqnDrMHIffSvi9Lh7PQgM1+hSzakUeZFCk9DVVG0dacZJuaz2ntwlzZUIBw==", + "requires": { + "bindings": "^1.2.1", + "inherits": "^2.0.3", + "nan": "^2.2.1", + "safe-buffer": "^5.1.0" + } + }, + "keycode": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.0.tgz", + "integrity": "sha1-PQr1bce4uOXLqNCpfxByBO7CKwQ=" + }, + "keypair": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/keypair/-/keypair-1.0.2.tgz", + "integrity": "sha512-7zRr8fKOWp/N8xfZyZV6WG1CUvKNiNahSDI4vjJnPJD60lHtIg62dpv60yCgcM2PP8QKv4S2UkZl+8MsYmQRpw==" + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", + "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "requires": { + "graceful-fs": "^4.1.9" + } + }, + "kleur": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-2.0.2.tgz", + "integrity": "sha512-77XF9iTllATmG9lSlIv0qdQ2BQ/h9t0bJllHlbvsQ0zUWfU7Yi0S8L5JXzPZgkefIiajLmBJJ4BsMJmqcf7oxQ==" + }, + "last-call-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", + "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", + "requires": { + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", + "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "requires": { + "invert-kv": "^2.0.0" + } + }, + "left-pad": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", + "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==" + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=" + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "libp2p-crypto": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/libp2p-crypto/-/libp2p-crypto-0.19.0.tgz", + "integrity": "sha512-w4tduG32px1i6TwekYZBSvizZTvDdMReZkE4DhUkf9IQ8WSqSo98K+6IZaYYM6PzWd5arbcAQQcFCRalJu9Ytw==", + "requires": { + "err-code": "^2.0.0", + "is-typedarray": "^1.0.0", + "iso-random-stream": "^1.1.0", + "keypair": "^1.0.1", + "multibase": "^3.0.0", + "multicodec": "^2.0.0", + "multihashing-async": "^2.0.1", + "node-forge": "^0.10.0", + "pem-jwk": "^2.0.0", + "protons": "^2.0.0", + "secp256k1": "^4.0.0", + "uint8arrays": "^1.1.0", + "ursa-optional": "^0.10.1" + }, + "dependencies": { + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } + }, + "multicodec": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-2.1.3.tgz", + "integrity": "sha512-0tOH2Gtio39uO41o+2xl9UhRkCWxU5ZmZSbFCh/OjGzkWJI8e6lkN/s4Mj1YfyWoBod+2+S3W+6wO6nhkwN8pA==", + "requires": { + "uint8arrays": "1.1.0", + "varint": "^6.0.0" + } + }, + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "requires": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + }, + "varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + } + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=" + } + } + }, + "loader-fs-cache": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", + "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", + "requires": { + "find-cache-dir": "^0.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "requires": { + "find-up": "^1.0.0" + } + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==" + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha1-gteb/zCmfEAF/9XiUVMArZyk168=" + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" + }, + "lodash.tail": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", + "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=" + }, + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=" + }, + "loglevel": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", + "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=" + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "requires": { + "pify": "^3.0.0" + } + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "requires": { + "tmpl": "1.0.x" + } + }, + "mamacro": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", + "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==" + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "requires": { + "p-defer": "^1.0.0" + }, + "dependencies": { + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=" + } + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", + "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + } + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=" + }, + "merge": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz", + "integrity": "sha512-VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==" + }, + "merge-deep": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.3.tgz", + "integrity": "sha512-qtmzAS6t6grwEkNrunqTBdn0qKwFgNWvlxUbAV8es9M7Ot1EbyApytCnvE0jALPa46ZpKDUo527kKiaWplmlFA==", + "requires": { + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + }, + "merge-options": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/merge-options/-/merge-options-3.0.4.tgz", + "integrity": "sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ==", + "requires": { + "is-plain-obj": "^2.1.0" + } + }, + "merge-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", + "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", + "requires": { + "readable-stream": "^2.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=" + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mime": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz", + "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==" + }, + "mime-db": { + "version": "1.46.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.46.0.tgz", + "integrity": "sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ==" + }, + "mime-types": { + "version": "2.1.29", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.29.tgz", + "integrity": "sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ==", + "requires": { + "mime-db": "1.46.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "requires": { + "dom-walk": "^0.1.0" + } + }, + "mini-create-react-context": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz", + "integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==", + "requires": { + "@babel/runtime": "^7.12.1", + "tiny-warning": "^1.0.3" + } + }, + "mini-css-extract-plugin": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.3.tgz", + "integrity": "sha512-Mxs0nxzF1kxPv4TRi2NimewgXlJqh0rGE30vviCU2WHrpbta6wklnUV9dr9FUtoAHmB3p3LeXEC+ZjgHvB0Dzg==", + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", + "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "requires": { + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=" + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "mocha": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz", + "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==", + "requires": { + "browser-stdout": "1.3.0", + "commander": "2.11.0", + "debug": "3.1.0", + "diff": "3.3.1", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.3", + "he": "1.1.1", + "mkdirp": "0.5.1", + "supports-color": "4.4.0" + }, + "dependencies": { + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==" + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "diff": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz", + "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==" + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=" + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "requires": { + "has-flag": "^2.0.0" + } + } + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multiaddr": { + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/multiaddr/-/multiaddr-8.1.2.tgz", + "integrity": "sha512-r13IzW8+Sv9zab9Gt8RPMIN2WkptIPq99EpAzg4IbJ/zTELhiEwXWr9bAmEatSCI4j/LSA6ESJzvz95JZ+ZYXQ==", + "requires": { + "cids": "^1.0.0", + "class-is": "^1.1.0", + "dns-over-http-resolver": "^1.0.0", + "err-code": "^2.0.3", + "is-ip": "^3.1.0", + "multibase": "^3.0.0", + "uint8arrays": "^1.1.0", + "varint": "^5.0.0" + }, + "dependencies": { + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } + }, + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "requires": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + } + } + }, + "multiaddr-to-uri": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/multiaddr-to-uri/-/multiaddr-to-uri-6.0.0.tgz", + "integrity": "sha512-OjpkVHOXEmIKMO8WChzzQ7aZQcSQX8squxmvtDbRpy7/QNmJ3Z7jv6qyD74C28QtaeNie8O8ngW2AkeiMmKP7A==", + "requires": { + "multiaddr": "^8.0.0" + } + }, + "multibase": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.2.tgz", + "integrity": "sha512-l0XMK4O5I9cCfxC0/UMDX/UxlIlrqkjEZQNG+ZUUrsGhnXWgFXgatYOQSONiR/lQGfBO463UyZkh3SiQBpjRIQ==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.1.0" + } + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", + "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=" + }, + "multicodec": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/multicodec/-/multicodec-3.0.1.tgz", + "integrity": "sha512-Y6j3wiPojvkF/z6KFIGt84KdJdP2oILEdzc/3YbD3qQ3EerhqtYlfsZTPPNVoCCxNZZdzIpCKrdYFSav17sIrQ==", + "requires": { + "uint8arrays": "^2.1.3", + "varint": "^5.0.2" + } + }, + "multihashes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-4.0.2.tgz", + "integrity": "sha512-xpx++1iZr4ZQHjN1mcrXS6904R36LWLxX/CBifczjtmrtCXEX623DMWOF1eiNSg+pFpiZDFVBgou/4v6ayCHSQ==", + "requires": { + "multibase": "^4.0.1", + "uint8arrays": "^2.1.3", + "varint": "^5.0.2" + } + }, + "multihashing-async": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/multihashing-async/-/multihashing-async-2.1.2.tgz", + "integrity": "sha512-FTPNnWWxwIK5dXXmTFhySSF8Fkdqf7vzqpV09+RWsmfUhrsL/b3Arg3+bRrBnXTtjxm3JRGI3wSAtQHL0QCxhQ==", + "requires": { + "blakejs": "^1.1.0", + "err-code": "^3.0.0", + "js-sha3": "^0.8.0", + "multihashes": "^4.0.1", + "murmurhash3js-revisited": "^3.0.0", + "uint8arrays": "^2.1.3" + }, + "dependencies": { + "err-code": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-3.0.1.tgz", + "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==" + } + } + }, + "murmurhash3js-revisited": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/murmurhash3js-revisited/-/murmurhash3js-revisited-3.0.0.tgz", + "integrity": "sha512-/sF3ee6zvScXMb1XFJ8gDsSnY+X8PbOyjIuBhtgis10W2Jx4ZjIhikUCIF9c4gpJxVnQIsPAFrSwTCuAjicP6g==" + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=" + }, + "nan": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", + "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==" + }, + "nanoid": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.21.tgz", + "integrity": "sha512-A6oZraK4DJkAOICstsGH98dvycPr/4GGDH7ZWKmMdd3vGcOurZ6JmWFUt0DA5bzrrn2FrUjmv6mFNWvv8jpppA==" + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "native-abort-controller": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/native-abort-controller/-/native-abort-controller-1.0.3.tgz", + "integrity": "sha512-fd5LY5q06mHKZPD5FmMrn7Lkd2H018oBGKNOAdLpctBDEPFKsfJ1nX9ke+XRa8PEJJpjqrpQkGjq2IZ27QNmYA==", + "requires": {} + }, + "native-fetch": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/native-fetch/-/native-fetch-2.0.1.tgz", + "integrity": "sha512-gv4Bea+ga9QdXINurpkEqun3ap3vnB+WYoe4c8ddqUYEH7B2h6iD39RF8uVN7OwmSfMY3RDxkvBnoI4e2/vLXQ==", + "requires": { + "globalthis": "^1.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" + }, + "node-gyp-build": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz", + "integrity": "sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==" + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", + "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "node-notifier": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.5.tgz", + "integrity": "sha512-tVbHs7DyTLtzOiN78izLA85zRqB9NvEXkAf014Vx3jtSvn/xBl6bR8ZYifj+dFcFrKI21huSQgJZ6ZtL3B4HfQ==", + "requires": { + "growly": "^1.3.0", + "is-wsl": "^1.1.0", + "semver": "^5.5.0", + "shellwords": "^0.1.1", + "which": "^1.3.0" + } + }, + "node-releases": { + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==" + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "requires": { + "path-key": "^2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "number-to-bn": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/number-to-bn/-/number-to-bn-1.7.0.tgz", + "integrity": "sha1-uzYjWS9+X54AMLGXe9QaDFP+HqA=", + "requires": { + "bn.js": "4.11.6", + "strip-hex-prefix": "1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha1-UzRK2xRhehP26N0s4okF0cC6MhU=" + } + } + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + } + } + }, + "object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==" + }, + "object-inspect": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", + "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==" + }, + "object-is": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", + "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz", + "integrity": "sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2" + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz", + "integrity": "sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.2", + "has": "^1.0.3" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "opn": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.4.0.tgz", + "integrity": "sha512-YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==", + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optimize-css-assets-webpack-plugin": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.1.tgz", + "integrity": "sha512-Rqm6sSjWtx9FchdP0uzTQDc7GXDKnwVEGoSxjezPkzMewx7gEWE9IMUYKmigTRC4U3RaNSwYVnUDLuIdtTpm0A==", + "requires": { + "cssnano": "^4.1.0", + "last-call-webpack-plugin": "^3.0.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "requires": { + "url-parse": "^1.4.3" + } + }, + "original-require": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/original-require/-/original-require-1.0.1.tgz", + "integrity": "sha1-DxMEcVhM0zURxew4yNWSE/msXiA=" + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", + "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "dependencies": { + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "p-defer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", + "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==" + }, + "p-fifo": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-fifo/-/p-fifo-1.0.0.tgz", + "integrity": "sha512-IjoCxXW48tqdtDFz6fqo5q1UfFVjjVZe8TC1QRflvNUJtNfCUhxOUw6MOVZhDPjqhSzc26xKdugsO17gmzd5+A==", + "requires": { + "fast-fifo": "^1.0.0", + "p-defer": "^3.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=" + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", + "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==" + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==" + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=" + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "requires": { + "no-case": "^2.2.0" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-duration": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/parse-duration/-/parse-duration-0.4.4.tgz", + "integrity": "sha512-KbAJuYGUhZkB9gotDiKLnZ7Z3VTacK3fgwmDdB6ZVDtJbMBT6MfLga0WJaYpPDu0mzqT0NgHtHDt5PY4l0nidg==" + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + }, + "dependencies": { + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "^1.0.0" + } + } + } + }, + "parse-headers": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.3.tgz", + "integrity": "sha512-QhhZ+DCCit2Coi2vmAKbq5RGTRcQUOE2+REgv8vdyu7MnYx2eZztegqtTx99TZ86GTIwqiy3+4nQTWZ2tgmdCA==" + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==" + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "path-to-regexp": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", + "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "requires": { + "isarray": "0.0.1" + } + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "requires": { + "pify": "^3.0.0" + } + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "peer-id": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/peer-id/-/peer-id-0.14.3.tgz", + "integrity": "sha512-3ug6gDFWPuzihjjhMC0G/EEyaJaM9JCKPZqvPhwnsbhIUbutbS/MMF8Mb+TdDE1IksOXgCKNmohSZBJ/gFijOg==", + "requires": { + "cids": "^1.1.5", + "class-is": "^1.1.0", + "libp2p-crypto": "^0.19.0", + "minimist": "^1.2.5", + "multihashes": "^3.1.1", + "protons": "^2.0.0", + "uint8arrays": "^2.0.5" + }, + "dependencies": { + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } + }, + "multihashes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multihashes/-/multihashes-3.1.2.tgz", + "integrity": "sha512-AP4IoV/YzkNrfbQKZE3OMPibrmy350OmCd6cJkwyM8oExaXIlOY4UnOOVSQtAEuq/LR01XfXKCESidzZvSwHCQ==", + "requires": { + "multibase": "^3.1.0", + "uint8arrays": "^2.0.5", + "varint": "^6.0.0" + } + }, + "varint": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/varint/-/varint-6.0.0.tgz", + "integrity": "sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==" + } + } + }, + "pem-jwk": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pem-jwk/-/pem-jwk-2.0.0.tgz", + "integrity": "sha512-rFxu7rVoHgQ5H9YsP50dDWf0rHjreVA2z0yPiWr5WdH/UHb29hKtF7h6l8vNd1cbYR1t0QL+JKhW55a2ZV4KtA==", + "requires": { + "asn1.js": "^5.0.1" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "optional": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "requires": { + "find-up": "^2.1.0" + } + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "requires": { + "find-up": "^2.1.0" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz", + "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==" + }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", + "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==" + }, + "pnp-webpack-plugin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.1.0.tgz", + "integrity": "sha512-CPCdcFxx7fEcDMWTDjXe2Wypt4JuMt4q5Q2UrpTcyBBkLiCIyPEh/mCGmUWIcNkKGyXwQ9Y2wVhlKm6ketiBNQ==" + }, + "popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==" + }, + "portfinder": { + "version": "1.0.28", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", + "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-attribute-case-insensitive": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", + "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^6.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", + "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-color-functional-notation": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", + "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-color-gray": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", + "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-color-hex-alpha": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", + "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", + "requires": { + "postcss": "^7.0.14", + "postcss-values-parser": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-color-mod-function": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", + "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-color-rebeccapurple": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", + "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-custom-media": { + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", + "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", + "requires": { + "postcss": "^7.0.14" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-custom-properties": { + "version": "8.0.11", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", + "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", + "requires": { + "postcss": "^7.0.17", + "postcss-values-parser": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-custom-selectors": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", + "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-dir-pseudo-class": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", + "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-double-position-gradients": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", + "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", + "requires": { + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-env-function": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", + "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-flexbugs-fixes": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz", + "integrity": "sha512-jr1LHxQvStNNAHlgco6PzY308zvLklh7SJVYuWUwyUQncofaAlD2l+P/gxKHOdqWKe7xJSkVLFF/2Tp+JqMSZA==", + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-focus-visible": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", + "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-focus-within": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", + "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-font-variant": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz", + "integrity": "sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-gap-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", + "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-image-set-function": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", + "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-initial": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.2.tgz", + "integrity": "sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA==", + "requires": { + "lodash.template": "^4.5.0", + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-lab-function": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", + "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", + "requires": { + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", + "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-logical": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", + "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-media-minmax": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", + "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz", + "integrity": "sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw==", + "requires": { + "postcss": "^6.0.1" + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + } + }, + "postcss-nesting": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", + "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-overflow-shorthand": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", + "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-page-break": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", + "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-place": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", + "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", + "requires": { + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-preset-env": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.3.1.tgz", + "integrity": "sha512-erl+OcCTr1+jsfJNQjBweyb8Y1s6KngUBwoqJnRXO197PmEE6u9HxZfnpKkTQqasxZljxNHzXR5hMb7MdD0Zdw==", + "requires": { + "autoprefixer": "^9.3.1", + "browserslist": "^4.3.4", + "caniuse-lite": "^1.0.30000905", + "cssdb": "^4.1.0", + "postcss": "^7.0.5", + "postcss-attribute-case-insensitive": "^4.0.0", + "postcss-color-functional-notation": "^2.0.1", + "postcss-color-gray": "^5.0.0", + "postcss-color-hex-alpha": "^5.0.2", + "postcss-color-mod-function": "^3.0.3", + "postcss-color-rebeccapurple": "^4.0.1", + "postcss-custom-media": "^7.0.7", + "postcss-custom-properties": "^8.0.9", + "postcss-custom-selectors": "^5.1.2", + "postcss-dir-pseudo-class": "^5.0.0", + "postcss-double-position-gradients": "^1.0.0", + "postcss-env-function": "^2.0.2", + "postcss-focus-visible": "^4.0.0", + "postcss-focus-within": "^3.0.0", + "postcss-font-variant": "^4.0.0", + "postcss-gap-properties": "^2.0.0", + "postcss-image-set-function": "^3.0.1", + "postcss-initial": "^3.0.0", + "postcss-lab-function": "^2.0.1", + "postcss-logical": "^3.0.0", + "postcss-media-minmax": "^4.0.0", + "postcss-nesting": "^7.0.0", + "postcss-overflow-shorthand": "^2.0.0", + "postcss-page-break": "^2.0.0", + "postcss-place": "^4.0.1", + "postcss-pseudo-class-any-link": "^6.0.0", + "postcss-replace-overflow-wrap": "^3.0.0", + "postcss-selector-matches": "^4.0.0", + "postcss-selector-not": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-pseudo-class-any-link": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", + "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", + "requires": { + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==" + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-replace-overflow-wrap": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", + "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", + "requires": { + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-safe-parser": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz", + "integrity": "sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ==", + "requires": { + "postcss": "^7.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-selector-matches": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", + "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-selector-not": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz", + "integrity": "sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ==", + "requires": { + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "postcss-values-parser": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", + "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" + }, + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==" + }, + "pretty-bytes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=" + }, + "pretty-error": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.2.tgz", + "integrity": "sha512-EY5oDzmsX5wvuynAByrmY0P0hcp+QpnAKbJng2A2MPjVKXCxrDSUkzghVJ4ZGPIv+JC4gX8fPUWscC0RtjsWGw==", + "requires": { + "lodash": "^4.17.20", + "renderkid": "^2.0.4" + } + }, + "pretty-format": { + "version": "23.6.0", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", + "integrity": "sha512-zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==", + "requires": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + } + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "requires": { + "asap": "~2.0.3" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=" + }, + "prompts": { + "version": "0.1.14", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-0.1.14.tgz", + "integrity": "sha512-rxkyiE9YH6zAz/rZpywySLKkpaj0NMVyNw1qhsubdbjjSgcayjTShDreZGlFMcGSu5sab3bAKPfFk78PB90+8w==", + "requires": { + "kleur": "^2.0.1", + "sisteransi": "^0.1.1" + } + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "prop-types-extra": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", + "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", + "requires": { + "react-is": "^16.3.2", + "warning": "^4.0.0" + } + }, + "protocol-buffers-schema": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.5.1.tgz", + "integrity": "sha512-YVCvdhxWNDP8/nJDyXLuM+UFsuPk4+1PB7WGPVDzm3HTHbzFLxQYeW2iZpS4mmnXrQJGBzt230t/BbEb7PrQaw==" + }, + "protons": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/protons/-/protons-2.0.0.tgz", + "integrity": "sha512-BTrE9D6/d1NGis+0D8TqAO1THdn4evHQhfjapA0NUaRH4+ecJJcbqaF7TE/DKv5czE9VB/TeOllBOmCyJhHnhg==", + "requires": { + "protocol-buffers-schema": "^3.3.1", + "signed-varint": "^2.0.1", + "uint8arrays": "^1.0.0", + "varint": "^5.0.0" + }, + "dependencies": { + "multibase": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/multibase/-/multibase-3.1.2.tgz", + "integrity": "sha512-bpklWHs70LO3smJUHOjcnzGceJJvn9ui0Vau6Za0B/GBepaXswmW8Ufea0uD9pROf/qCQ4N4lZ3sf3U+SNf0tw==", + "requires": { + "@multiformats/base-x": "^4.0.1", + "web-encoding": "^1.0.6" + } + }, + "uint8arrays": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-1.1.0.tgz", + "integrity": "sha512-cLdlZ6jnFczsKf5IH1gPHTtcHtPGho5r4CvctohmQjw8K7Q3gFdfIGHxSTdTaCKrL4w09SsPRJTqRS0drYeszA==", + "requires": { + "multibase": "^3.0.0", + "web-encoding": "^1.0.2" + } + } + } + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=" + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=" + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "raf": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", + "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", + "requires": { + "performance-now": "^2.1.0" + } + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + } + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "react": { + "version": "16.8.4", + "resolved": "https://registry.npmjs.org/react/-/react-16.8.4.tgz", + "integrity": "sha512-0GQ6gFXfUH7aZcjGVymlPOASTuSjlQL4ZtVC5YKH+3JL6bBLCVO21DknzmaPlI90LN253ojj02nsapy+j7wIjg==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.13.4" + } + }, + "react-app-polyfill": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-0.2.2.tgz", + "integrity": "sha512-mAYn96B/nB6kWG87Ry70F4D4rsycU43VYTj3ZCbKP+SLJXwC0x6YCbwcICh3uW8/C9s1VgP197yx+w7SCWeDdQ==", + "requires": { + "core-js": "2.6.4", + "object-assign": "4.1.1", + "promise": "8.0.2", + "raf": "3.4.1", + "whatwg-fetch": "3.0.0" + }, + "dependencies": { + "core-js": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.4.tgz", + "integrity": "sha512-05qQ5hXShcqGkPZpXEFLIpxayZscVD2kuMBZewxiIPPEagukO4mqgPA9CWhUvFBJfy3ODdK2p9xyHh7FTU9/7A==" + }, + "promise": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/promise/-/promise-8.0.2.tgz", + "integrity": "sha512-EIyzM39FpVOMbqgzEHhxdrEhtOSDOtjMZQ0M6iVfCE+kWNgCkAyOdnuCWqfmflylftfadU6FkiMgHZA2kUzwRw==", + "requires": { + "asap": "~2.0.6" + } + }, + "whatwg-fetch": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", + "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" + } + } + }, + "react-bootstrap": { + "version": "1.0.0-beta.5", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.0.0-beta.5.tgz", + "integrity": "sha512-Osm0OtTbYwfsT1rpu88ESWuAHZxfaHFNKFiW8w3w+6YY9/bLEPHbGRZA6W21fg5yvcuKN9hJKT857TTHgY7SoQ==", + "requires": { + "@babel/runtime": "^7.2.0", + "@react-bootstrap/react-popper": "1.2.1", + "classnames": "^2.2.6", + "dom-helpers": "^3.4.0", + "invariant": "^2.2.3", + "keycode": "^2.1.2", + "popper.js": "^1.14.6", + "prop-types": "^15.6.2", + "prop-types-extra": "^1.1.0", + "react-context-toolbox": "^2.0.2", + "react-overlays": "^1.0.0", + "react-prop-types": "^0.4.0", + "react-transition-group": "^2.5.1", + "uncontrollable": "^6.0.0", + "warning": "^4.0.1" + } + }, + "react-context-toolbox": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/react-context-toolbox/-/react-context-toolbox-2.0.2.tgz", + "integrity": "sha512-tY4j0imkYC3n5ZlYSgFkaw7fmlCp3IoQQ6DxpqeNHzcD0hf+6V+/HeJxviLUZ1Rv1Yn3N3xyO2EhkkZwHn0m1A==", + "requires": {} + }, + "react-dev-utils": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-7.0.5.tgz", + "integrity": "sha512-zJnqqb0x6gd63E3xoz5pXAxBPNaW75Hyz7GgQp0qPhMroBCRQtRvG67AoTZZY1z4yCYVJQZAfQJFdnea0Ujbug==", + "requires": { + "@babel/code-frame": "7.0.0", + "address": "1.0.3", + "browserslist": "4.4.1", + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "detect-port-alt": "1.1.6", + "escape-string-regexp": "1.0.5", + "filesize": "3.6.1", + "find-up": "3.0.0", + "global-modules": "2.0.0", + "globby": "8.0.2", + "gzip-size": "5.0.0", + "immer": "1.10.0", + "inquirer": "6.2.1", + "is-root": "2.0.0", + "loader-utils": "1.2.3", + "opn": "5.4.0", + "pkg-up": "2.0.0", + "react-error-overlay": "^5.1.4", + "recursive-readdir": "2.2.2", + "shell-quote": "1.6.1", + "sockjs-client": "1.3.0", + "strip-ansi": "5.0.0", + "text-table": "0.2.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz", + "integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==", + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.4.1.tgz", + "integrity": "sha512-pEBxEXg7JwaakBXjATYw/D1YZh4QUSCX/Mnd/wnqSRPPSi1U39iDhDoKGoBUcraKdxDlrYqJxSI5nNvD+dWP2A==", + "requires": { + "caniuse-lite": "^1.0.30000929", + "electron-to-chromium": "^1.3.103", + "node-releases": "^1.1.3" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=" + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "inquirer": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz", + "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==", + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.0", + "figures": "^2.0.0", + "lodash": "^4.17.10", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.1.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.0.0", + "through": "^2.3.6" + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "strip-ansi": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz", + "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==", + "requires": { + "ansi-regex": "^4.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "react-dom": { + "version": "16.8.4", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.8.4.tgz", + "integrity": "sha512-Ob2wK7XG2tUDt7ps7LtLzGYYB6DXMCLj0G5fO6WeEICtT4/HdpOi7W/xLzZnR6RCG1tYza60nMdqtxzA8FaPJQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.13.4" + } + }, + "react-error-overlay": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-5.1.6.tgz", + "integrity": "sha512-X1Y+0jR47ImDVr54Ab6V9eGk0Hnu7fVWGeHQSOXHf/C2pF9c6uy3gef8QUeuUiWlNb0i08InPSE5a/KJzNzw1Q==" + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "react-lifecycles-compat": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz", + "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" + }, + "react-overlays": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-1.2.0.tgz", + "integrity": "sha512-i/FCV8wR6aRaI+Kz/dpJhOdyx+ah2tN1RhT9InPrexyC4uzf3N4bNayFTGtUeQVacj57j1Mqh1CwV60/5153Iw==", + "requires": { + "classnames": "^2.2.6", + "dom-helpers": "^3.4.0", + "prop-types": "^15.6.2", + "prop-types-extra": "^1.1.0", + "react-context-toolbox": "^2.0.2", + "react-popper": "^1.3.2", + "uncontrollable": "^6.0.0", + "warning": "^4.0.2" + } + }, + "react-popper": { + "version": "1.3.11", + "resolved": "https://registry.npmjs.org/react-popper/-/react-popper-1.3.11.tgz", + "integrity": "sha512-VSA/bS+pSndSF2fiasHK/PTEEAyOpX60+H5EPAjoArr8JGm+oihu4UbrqcEBpQibJxBVCpYyjAX7abJ+7DoYVg==", + "requires": { + "@babel/runtime": "^7.1.2", + "@hypnosphi/create-react-context": "^0.3.1", + "deep-equal": "^1.1.1", + "popper.js": "^1.14.4", + "prop-types": "^15.6.1", + "typed-styles": "^0.0.7", + "warning": "^4.0.2" + }, + "dependencies": { + "typed-styles": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.7.tgz", + "integrity": "sha512-pzP0PWoZUhsECYjABgCGQlRGL1n7tOHsgwYv3oIiEpJwGhFTuty/YNeduxQYzXXa3Ge5BdT6sHYIQYpl4uJ+5Q==" + } + } + }, + "react-prop-types": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/react-prop-types/-/react-prop-types-0.4.0.tgz", + "integrity": "sha1-+ZsL+0AGkpya8gUefBQUpcdbk9A=", + "requires": { + "warning": "^3.0.0" + }, + "dependencies": { + "warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w=", + "requires": { + "loose-envify": "^1.0.0" + } + } + } + }, + "react-router": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz", + "integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.4.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, + "react-router-dom": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz", + "integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==", + "requires": { + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", + "react-router": "5.2.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" + } + }, + "react-scripts": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-2.1.3.tgz", + "integrity": "sha512-JASD0QVVgSVleVhA9TeA+UBx+shq887hm/L+09qjZLrqIUvJZHZU+oOnhMFGot02Yop+LKfkvf9KSsTNlu/Rwg==", + "requires": { + "@babel/core": "7.1.6", + "@svgr/webpack": "2.4.1", + "babel-core": "7.0.0-bridge.0", + "babel-eslint": "9.0.0", + "babel-jest": "23.6.0", + "babel-loader": "8.0.4", + "babel-plugin-named-asset-import": "^0.3.0", + "babel-preset-react-app": "^7.0.0", + "bfj": "6.1.1", + "case-sensitive-paths-webpack-plugin": "2.1.2", + "chalk": "2.4.1", + "css-loader": "1.0.0", + "dotenv": "6.0.0", + "dotenv-expand": "4.2.0", + "eslint": "5.6.0", + "eslint-config-react-app": "^3.0.6", + "eslint-loader": "2.1.1", + "eslint-plugin-flowtype": "2.50.1", + "eslint-plugin-import": "2.14.0", + "eslint-plugin-jsx-a11y": "6.1.2", + "eslint-plugin-react": "7.11.1", + "file-loader": "2.0.0", + "fork-ts-checker-webpack-plugin-alt": "0.4.14", + "fs-extra": "7.0.0", + "fsevents": "1.2.4", + "html-webpack-plugin": "4.0.0-alpha.2", + "identity-obj-proxy": "3.0.0", + "jest": "23.6.0", + "jest-pnp-resolver": "1.0.1", + "jest-resolve": "23.6.0", + "mini-css-extract-plugin": "0.4.3", + "optimize-css-assets-webpack-plugin": "5.0.1", + "pnp-webpack-plugin": "1.1.0", + "postcss-flexbugs-fixes": "4.1.0", + "postcss-loader": "3.0.0", + "postcss-preset-env": "6.3.1", + "postcss-safe-parser": "4.0.1", + "react-app-polyfill": "^0.2.0", + "react-dev-utils": "^7.0.1", + "resolve": "1.8.1", + "sass-loader": "7.1.0", + "style-loader": "0.23.0", + "terser-webpack-plugin": "1.1.0", + "url-loader": "1.1.1", + "webpack": "4.19.1", + "webpack-dev-server": "3.1.14", + "webpack-manifest-plugin": "2.0.4", + "workbox-webpack-plugin": "3.6.3" + }, + "dependencies": { + "@babel/core": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.1.6.tgz", + "integrity": "sha512-Hz6PJT6e44iUNpAn8AoyAs6B3bl60g7MJQaI0rZEar6ECzh6+srYO1xlIdssio34mPaUtAb1y+XlkkSJzok3yw==", + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/generator": "^7.1.6", + "@babel/helpers": "^7.1.5", + "@babel/parser": "^7.1.6", + "@babel/template": "^7.1.2", + "@babel/traverse": "^7.1.6", + "@babel/types": "^7.1.6", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.10", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "babel-core": { + "version": "7.0.0-bridge.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz", + "integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==", + "requires": {} + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "fs-extra": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz", + "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } + }, + "react-transition-group": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-2.9.0.tgz", + "integrity": "sha512-+HzNTCHpeQyl4MJ/bdE0u6XRMe9+XG/+aL4mCxVN4DnPBQ0/5bfHWPDuOZUzYdMj94daZaZdCCc1Dzt9R/xSSg==", + "requires": { + "dom-helpers": "^3.4.0", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2", + "react-lifecycles-compat": "^3.0.4" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "dependencies": { + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + } + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "realpath-native": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", + "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", + "requires": { + "util.promisify": "^1.0.0" + } + }, + "receptacle": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz", + "integrity": "sha512-HrsFvqZZheusncQRiEE7GatOAETrARKV/lnfYicIm8lbvp/JQOdADOfhjBd2DajvoszEyxSM6RlAAIZgEoeu/A==", + "requires": { + "ms": "^2.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "requires": { + "minimatch": "3.0.4" + } + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==" + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==" + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=" + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "renderkid": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.5.tgz", + "integrity": "sha512-ccqoLg+HLOHq1vdfYNm4TBeaCDIi1FLt3wGojTDSvdewUv65oTmI3cnT2E4hRjl1gzKZIPK+KZrXzlUYKnR+vQ==", + "requires": { + "css-select": "^2.0.2", + "dom-converter": "^0.2", + "htmlparser2": "^3.10.1", + "lodash": "^4.17.20", + "strip-ansi": "^3.0.0" + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, + "request-promise-core": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", + "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", + "requires": { + "lodash": "^4.17.19" + } + }, + "request-promise-native": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", + "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", + "requires": { + "request-promise-core": "1.1.4", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "dependencies": { + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/require-uncached/-/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + }, + "dependencies": { + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=" + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=" + } + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=" + }, + "reset": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/reset/-/reset-0.1.0.tgz", + "integrity": "sha1-n8cxQXGZWubLC35YsGznUir0uvs=" + }, + "resolve": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", + "requires": { + "path-parse": "^1.0.5" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=" + }, + "resolve-pathname": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz", + "integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==" + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" + }, + "retimer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz", + "integrity": "sha512-KLXY85WkEq2V2bKex/LOO1ViXVn2KGYe4PYysAdYdjmraYIUsVkXu8O4am+8+5UbaaGl1qho4aqAAPHNQ4GSbg==" + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=" + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rlp": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.6.tgz", + "integrity": "sha512-HAfAmL6SDYNWPUOJNrM500x4Thn4PZsEy5pijPh40U9WfNk0z15hUYzO9xVIMAdIHdFtD8CBDHd75Td1g36Mjg==", + "requires": { + "bn.js": "^4.11.1" + } + }, + "rsvp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==" + }, + "run": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/run/-/run-1.4.0.tgz", + "integrity": "sha1-4X2ekEOrL+F3dsspnhI3848LT/o=", + "requires": { + "minimatch": "*" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "requires": { + "aproba": "^1.1.1" + } + }, + "rxjs": { + "version": "6.6.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.6.tgz", + "integrity": "sha512-/oTwee4N4iWzAMAL9xdGKjkEHmIwupR3oXbQjCKywF1BeFohswF3vZdogbmEF6pZkOsXTzWkrZszrWpQTByYVg==", + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sane": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/sane/-/sane-2.5.2.tgz", + "integrity": "sha1-tNwYYcIbQn6SlQej51HiosuKs/o=", + "requires": { + "anymatch": "^2.0.0", + "capture-exit": "^1.2.0", + "exec-sh": "^0.2.0", + "fb-watchman": "^2.0.0", + "fsevents": "^1.2.3", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5", + "watch": "~0.18.0" + } + }, + "sass-loader": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-7.1.0.tgz", + "integrity": "sha512-+G+BKGglmZM2GUSfT9TLuEp6tzehHPjAMoRRItOojWIqIGPloVCMhNIQuG639eJ+y033PaGTSjLaTHts8Kw79w==", + "requires": { + "clone-deep": "^2.0.1", + "loader-utils": "^1.0.1", + "lodash.tail": "^4.1.1", + "neo-async": "^2.5.0", + "pify": "^3.0.0", + "semver": "^5.5.0" + }, + "dependencies": { + "clone-deep": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-2.0.2.tgz", + "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", + "requires": { + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" + } + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "requires": { + "for-in": "^1.0.1" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "shallow-clone": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-1.0.0.tgz", + "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "requires": { + "xmlchars": "^2.2.0" + } + }, + "scheduler": { + "version": "0.13.6", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.13.6.tgz", + "integrity": "sha512-IWnObHt413ucAYKsD9J1QShUKkbKLQQHdxRyw73sw4FN26iWr3DY/H34xGPe4nmL1DwXyWmSWmMrA9TfQbE/XQ==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", + "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "scrypt": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/scrypt/-/scrypt-6.0.3.tgz", + "integrity": "sha1-BOAUpWgrU/pQwtXM4WfXGcBthw0=", + "optional": true, + "requires": { + "nan": "^2.0.8" + } + }, + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "scrypt.js": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/scrypt.js/-/scrypt.js-0.3.0.tgz", + "integrity": "sha512-42LTc1nyFsyv/o0gcHtDztrn+aqpkaCNt5Qh7ATBZfhEZU7IC/0oT/qbBH+uRNoAPvs2fwiOId68FDEoSRA8/A==", + "requires": { + "scrypt": "^6.0.2", + "scryptsy": "^1.2.1" + } + }, + "scryptsy": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", + "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", + "requires": { + "pbkdf2": "^3.0.3" + } + }, + "secp256k1": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz", + "integrity": "sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==", + "requires": { + "elliptic": "^6.5.2", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=" + }, + "selfsigned": { + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "requires": { + "node-forge": "^0.10.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==" + } + } + }, + "serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", + "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==" + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==" + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shallow-clone": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", + "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", + "requires": { + "is-extendable": "^0.1.1", + "kind-of": "^2.0.1", + "lazy-cache": "^0.2.3", + "mixin-object": "^2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", + "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", + "requires": { + "is-buffer": "^1.0.2" + } + }, + "lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=" + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" + }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "requires": { + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" + } + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "signed-varint": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/signed-varint/-/signed-varint-2.0.1.tgz", + "integrity": "sha1-UKmYnafJjCxh2tEZvJdHDvhSgSk=", + "requires": { + "varint": "~5.0.0" + } + }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==" + }, + "simple-get": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-2.8.1.tgz", + "integrity": "sha512-lSSHRSw3mQNUGPAYRqo7xy9dhKmxFXIjLjp4KHpf99GEH2VH7C3AM+Qfx6du6jhfUi6Vm7XnbEVEf7Wb6N8jRw==", + "requires": { + "decompress-response": "^3.3.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" + } + } + }, + "sisteransi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-0.1.1.tgz", + "integrity": "sha512-PmGOd02bM9YO5ifxpw36nrNMBTptEtfRl4qUYl9SndkolplkrZZOW7PGHjrZL53QvMVj9nQ+TKqUnRsw4tJa4g==" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-1.0.0.tgz", + "integrity": "sha512-POqxBK6Lb3q6s047D/XsDVNPnF9Dl8JSaqe9h9lURl0OdNqy/ujDrOiIHtsqXMGbWWTIomRzAMaTyawAU//Reg==", + "requires": { + "is-fullwidth-code-point": "^2.0.0" + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "^3.2.0" + } + }, + "sockjs": { + "version": "0.3.19", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", + "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" + }, + "dependencies": { + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "sockjs-client": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", + "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "solc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.5.0.tgz", + "integrity": "sha512-mdLHDl9WeYrN+FIKcMc9PlPfnA9DG9ur5QpCDKcv6VC4RINAsTF4EMuXMZMKoQTvZhtLyJIVH/BZ+KU830Z8Xg==", + "requires": { + "fs-extra": "^0.30.0", + "keccak": "^1.0.2", + "memorystream": "^0.3.1", + "require-from-string": "^2.0.0", + "semver": "^5.5.0", + "yargs": "^11.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^2.1.0", + "klaw": "^1.0.0", + "path-is-absolute": "^1.0.0", + "rimraf": "^2.2.8" + } + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "requires": { + "graceful-fs": "^4.1.6" + } + } + } + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "requires": { + "source-map": "^0.5.6" + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", + "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==" + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "^3.0.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", + "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" + }, + "stack-utils": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.4.tgz", + "integrity": "sha512-IPDJfugEGbfizBwBZRZ3xpccMdRyP5lqsBWXGQWimVjua/ccLCeMOAVjlc1R7LxFjo5sEDhyNIXd8mo/AiDS9w==", + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + } + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==" + }, + "stream-to-it": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.2.tgz", + "integrity": "sha512-waULBmQpVdr6TkDzci6t1P7dIaSZ0bHC1TaPXDUeJC5PpSK7U3T0H0Zeo/LWUnd6mnhXOmGGDKAkjUCHw5IOng==", + "requires": { + "get-iterator": "^1.0.2" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, + "string-length": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", + "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", + "requires": { + "astral-regex": "^1.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=" + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-comments": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz", + "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==", + "requires": { + "babel-extract-comments": "^1.0.0", + "babel-plugin-transform-object-rest-spread": "^6.26.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=" + }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "style-loader": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.0.tgz", + "integrity": "sha512-uCcN7XWHkqwGVt7skpInW6IGO1tG6ReyFQ1Cseh0VcN6VdcFQi62aG/2F3Y9ueA8x4IVlfaSUxpmQXQD9QrEuQ==", + "requires": { + "loader-utils": "^1.1.0", + "schema-utils": "^0.4.5" + }, + "dependencies": { + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "browserslist": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.3.tgz", + "integrity": "sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw==", + "requires": { + "caniuse-lite": "^1.0.30001181", + "colorette": "^1.2.1", + "electron-to-chromium": "^1.3.649", + "escalade": "^3.1.1", + "node-releases": "^1.1.70" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", + "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", + "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", + "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + } + } + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "table": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/table/-/table-4.0.3.tgz", + "integrity": "sha512-S7rnFITmBH1EnyKcvxBh1LjYeQMmnZtCXSEbHcH6S0NoKit24ZuFO/T1vDcLdYsLQkM188PVVhQmzKIuThNkKg==", + "requires": { + "ajv": "^6.0.1", + "ajv-keywords": "^3.0.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" + }, + "terser": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz", + "integrity": "sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==", + "requires": { + "commander": "^2.19.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.10" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "terser-webpack-plugin": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.1.0.tgz", + "integrity": "sha512-61lV0DSxMAZ8AyZG7/A4a3UPlrbOBo8NIQ4tJzLPAdGOQ+yoNC7l5ijEow27lBAL2humer01KLS6bGIMYQxKoA==", + "requires": { + "cacache": "^11.0.2", + "find-cache-dir": "^2.0.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "terser": "^3.8.1", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "dependencies": { + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "test-exclude": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.2.3.tgz", + "integrity": "sha512-SYbXgY64PT+4GAL2ocI3HwPa4Q4TBKm0cwAVeKOt/Aoc0gSpNRjJX8w0pA1LMKZ3LBmd8pYBqApFNQLII9kavA==", + "requires": { + "arrify": "^1.0.1", + "micromatch": "^2.3.11", + "object-assign": "^4.1.0", + "read-pkg-up": "^1.0.1", + "require-main-filename": "^1.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=" + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=" + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "requires": { + "is-extglob": "^1.0.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=" + }, + "throat": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", + "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==" + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "timeout-abort-controller": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/timeout-abort-controller/-/timeout-abort-controller-1.1.1.tgz", + "integrity": "sha512-BsF9i3NAJag6T0ZEjki9j654zoafI2X6ayuNd6Tp8+Ul6Tr5s4jo973qFeiWrRSweqvskC+AHDKUmIW4b7pdhQ==", + "requires": { + "abort-controller": "^3.0.0", + "retimer": "^2.0.0" + } + }, + "timers-browserify": { + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", + "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=" + }, + "tiny-invariant": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz", + "integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=" + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==" + }, + "topo": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/topo/-/topo-2.0.2.tgz", + "integrity": "sha1-zVYVdSU5BXwNwEkaYhw7xvvh0YI=", + "requires": { + "hoek": "4.x.x" + } + }, + "tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "dependencies": { + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } + }, + "tr46": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", + "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", + "requires": { + "punycode": "^2.1.1" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + }, + "truffle": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.0.5.tgz", + "integrity": "sha512-YKAfHvq3C5hGCc+S+14FNDM8iZPeta9McocKSAkYBxDTiRfyT6yeDrHmSNEU7fzNAc7jFSlwhY7Cs5bXUR3RKg==", + "requires": { + "app-module-path": "^2.2.0", + "mocha": "^4.1.0", + "original-require": "1.0.1", + "solc": "0.5.0" + } + }, + "truffle-flattener": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/truffle-flattener/-/truffle-flattener-1.5.0.tgz", + "integrity": "sha512-vmzWG/L5OXoNruMV6u2l2IaheI091e+t+fFCOR9sl46EE3epkSRIwGCmIP/EYDtPsFBIG7e6exttC9/GlfmxEQ==", + "requires": { + "@resolver-engine/imports-fs": "^0.2.2", + "@solidity-parser/parser": "^0.8.0", + "find-up": "^2.1.0", + "mkdirp": "^1.0.4", + "tsort": "0.0.1" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + } + } + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tryer/-/tryer-1.0.1.tgz", + "integrity": "sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA==" + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" + }, + "tsort": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tsort/-/tsort-0.0.1.tgz", + "integrity": "sha1-4igPXoF/i/QnVlf9D5rr1E9aJ4Y=" + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typed-styles": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/typed-styles/-/typed-styles-0.0.5.tgz", + "integrity": "sha512-ht+rEe5UsdEBAa3gr64+QjUOqjOLJfWLvl5HZR5Ev9uo/OnD3p43wPeFSB1hNFc13GXQF/JU1Bn0YHLUqBRIlw==" + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "ua-parser-js": { + "version": "0.7.24", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.24.tgz", + "integrity": "sha512-yo+miGzQx5gakzVK3QFfN0/L9uVhosXBBO7qmnk7c2iw1IhL212wfA3zbnI54B0obGwC/5NWub/iT9sReMx+Fw==" + }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "requires": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "uglifyjs-webpack-plugin": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", + "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "dependencies": { + "cacache": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "ssri": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" + } + } + }, + "uint8arrays": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-2.1.3.tgz", + "integrity": "sha512-2h2Z2OIqzrhHmZTv9ViJVyZZreFkHRHeihh7SxLVY/nLUVJhU4ey/u74tWsgMR6hhMSO2g5rhKmdLQIg3lKiUQ==", + "requires": { + "multibase": "^4.0.1", + "web-encoding": "^1.1.0" + } + }, + "unbox-primitive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.0.tgz", + "integrity": "sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.0", + "has-symbols": "^1.0.0", + "which-boxed-primitive": "^1.0.1" + } + }, + "uncontrollable": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-6.2.3.tgz", + "integrity": "sha512-VgOAoBU2ptCL2bfTG2Mra0I8i1u6Aq84AFonD5tmCAYSfs3hWvr2Rlw0q2ntoxXTHjcQOmZOh3FKaN+UZVyREQ==", + "requires": { + "@babel/runtime": "^7.4.5", + "invariant": "^2.2.4" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==" + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==" + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==" + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=" + } + } + }, + "url-loader": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-1.1.1.tgz", + "integrity": "sha512-vugEeXjyYFBCUOpX+ZuaunbK3QXMKaQ3zUnRfIpRBlGkY7QizCnzyyn2ASfcxsvyU3ef+CJppVywnl3Kgf13Gg==", + "requires": { + "loader-utils": "^1.1.0", + "mime": "^2.0.3", + "schema-utils": "^1.0.0" + } + }, + "url-parse": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.1.tgz", + "integrity": "sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q==", + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "url-set-query": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-set-query/-/url-set-query-1.0.0.tgz", + "integrity": "sha1-AW6M/Xwg7gXK/neV6JK9BwL6ozk=" + }, + "ursa-optional": { + "version": "0.10.2", + "resolved": "https://registry.npmjs.org/ursa-optional/-/ursa-optional-0.10.2.tgz", + "integrity": "sha512-TKdwuLboBn7M34RcvVTuQyhvrA8gYKapuVdm0nBP0mnBc7oECOfUQZrY91cefL3/nm64ZyrejSRrhTVdX7NG/A==", + "requires": { + "bindings": "^1.5.0", + "nan": "^2.14.2" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" + }, + "utf-8-validate": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.4.tgz", + "integrity": "sha512-MEF05cPSq3AwJ2C7B7sHAA6i53vONoZbMGX8My5auEVm6W+dJ2Jd/TZPyGJ5CH42V2XtbI5FD28HeHeqlPzZ3Q==", + "requires": { + "node-gyp-build": "^4.2.0" + } + }, + "utf8": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", + "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=" + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "util.promisify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", + "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "for-each": "^0.3.3", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.1" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "value-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz", + "integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==" + }, + "varint": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/varint/-/varint-5.0.2.tgz", + "integrity": "sha512-lKxKYG6H03yCZUpAGOPOsMcGxd1RHCu1iKvEHYDPmTyq2HueGhD73ssNBqqQWfvYs04G9iUFRvmAVLW20Jw6ow==" + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=" + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==" + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "requires": { + "makeerror": "1.0.x" + } + }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "watch": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/watch/-/watch-0.18.0.tgz", + "integrity": "sha1-KAlUdsbffJDJYxOJkMClQj60uYY=", + "requires": { + "exec-sh": "^0.2.0", + "minimist": "^1.2.0" + } + }, + "watchpack": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", + "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.1" + }, + "dependencies": { + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "optional": true + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "optional": true + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "watchpack-chokidar2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", + "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "optional": true, + "requires": { + "chokidar": "^2.1.8" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "web-encoding": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/web-encoding/-/web-encoding-1.1.0.tgz", + "integrity": "sha512-KzYonGdJnZB3qvhK8hKca5qXk/wp+hgwGNTY1TnqtF2CzDzpN8szOC3ejhX9+wbhCq3vQs/TjM8BykS1kor0lQ==", + "requires": { + "@zxing/text-encoding": "0.9.0" + } + }, + "web3": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3/-/web3-1.0.0-beta.55.tgz", + "integrity": "sha512-yJpwy4IUA3T/F9hWzYQVn0GbJCrAaZ0KTIO3iuqkhaYH0Y09KV7k4GzFi4hN7hT4cFTj4yIKaeVCwQ5kzvi2Vg==", + "requires": { + "@babel/runtime": "^7.3.1", + "@types/node": "^10.12.18", + "web3-core": "1.0.0-beta.55", + "web3-eth": "1.0.0-beta.55", + "web3-eth-personal": "1.0.0-beta.55", + "web3-net": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-shh": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-core": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.0.0-beta.55.tgz", + "integrity": "sha512-AMMp7TLEtE7u8IJAu/THrRhBTZyZzeo7Y6GiWYNwb5+KStC9hIGLr9cI1KX9R6ZioTOLRHrqT7awDhnJ1ku2mg==", + "requires": { + "@babel/runtime": "^7.3.1", + "@types/bn.js": "^4.11.4", + "@types/node": "^10.12.18", + "lodash": "^4.17.11", + "web3-core-method": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-core-helpers": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-core-helpers/-/web3-core-helpers-1.0.0-beta.55.tgz", + "integrity": "sha512-suj9Xy/lIqajaYLJTEjr2rlFgu6hGYwChHmf8+qNrC2luZA6kirTamtB9VThWMxbywx7p0bqQFjW6zXogAgWhg==", + "requires": { + "@babel/runtime": "^7.3.1", + "lodash": "^4.17.11", + "web3-core": "1.0.0-beta.55", + "web3-eth-iban": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-core-method": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-core-method/-/web3-core-method-1.0.0-beta.55.tgz", + "integrity": "sha512-w1cW/s2ji9qGELHk2uMJCn1ooay0JJLVoPD1nvmsW6OTRWcVjxa62nJrFQhe6P5lEb83Xk9oHgmCxZoVUHibOw==", + "requires": { + "@babel/runtime": "^7.3.1", + "eventemitter3": "3.1.0", + "lodash": "^4.17.11", + "rxjs": "^6.4.0", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-subscriptions": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-core-subscriptions": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-core-subscriptions/-/web3-core-subscriptions-1.0.0-beta.55.tgz", + "integrity": "sha512-pb3oQbUzK7IoyXwag8TYInQddg0rr7BHxKc+Pbs/92hVNQ5ps4iGMVJKezdrjlQ1IJEEUiDIglXl4LZ1hIuMkw==", + "requires": { + "@babel/runtime": "^7.3.1", + "eventemitter3": "^3.1.0", + "lodash": "^4.17.11" + } + }, + "web3-eth": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth/-/web3-eth-1.0.0-beta.55.tgz", + "integrity": "sha512-F3zJ9I1gOgQdNGfi2Dy2lmj6OqCMJoRN01XHhQZagq0HY1JYMfObtfMi5E3L+qsegsSddHbqp4YY57tKx6uxpA==", + "requires": { + "@babel/runtime": "^7.3.1", + "ethereumjs-tx": "^1.3.7", + "rxjs": "^6.4.0", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-core-subscriptions": "1.0.0-beta.55", + "web3-eth-abi": "1.0.0-beta.55", + "web3-eth-accounts": "1.0.0-beta.55", + "web3-eth-contract": "1.0.0-beta.55", + "web3-eth-ens": "1.0.0-beta.55", + "web3-eth-iban": "1.0.0-beta.55", + "web3-eth-personal": "1.0.0-beta.55", + "web3-net": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-eth-abi": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-abi/-/web3-eth-abi-1.0.0-beta.55.tgz", + "integrity": "sha512-3h1xnm/vYmKUXTOYAOP0OsB5uijQV76pNNRGKOB6Dq6GR1pbcbD3WrB/4I643YA8l91t5FRzFzUiA3S77R2iqw==", + "requires": { + "@babel/runtime": "^7.3.1", + "ethers": "^4.0.27", + "lodash": "^4.17.11", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-eth-accounts": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-accounts/-/web3-eth-accounts-1.0.0-beta.55.tgz", + "integrity": "sha512-VfzvwpSDHXqRVelIxsBVhgbV9BkFvhJ/q+bKhnVUUXV0JAhMK/7uC92TsqKk4EBYuqpHyZ1jjqrL4n03fMU7zw==", + "requires": { + "@babel/runtime": "^7.3.1", + "browserify-cipher": "^1.0.1", + "eth-lib": "0.2.8", + "lodash": "^4.17.11", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "scrypt.js": "0.3.0", + "uuid": "3.3.2", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + }, + "dependencies": { + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==" + } + } + }, + "web3-eth-contract": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-contract/-/web3-eth-contract-1.0.0-beta.55.tgz", + "integrity": "sha512-v6oB1wfH039/A5sTb4ZTKX++fcBTHEkuQGpq50ATIDoxP/UTz2+6S+iL+3sCJTsByPw2/Bni/HM7NmLkXqzg/Q==", + "requires": { + "@babel/runtime": "^7.3.1", + "@types/bn.js": "^4.11.4", + "lodash": "^4.17.11", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-core-subscriptions": "1.0.0-beta.55", + "web3-eth-abi": "1.0.0-beta.55", + "web3-eth-accounts": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-eth-ens": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-ens/-/web3-eth-ens-1.0.0-beta.55.tgz", + "integrity": "sha512-jEL17coO0FJXb7KYq4+7DhVXj0Rh+wHfZ86jOvFUvJsRaUHfqK2TlMatuhD2mbrmxpBYb6oMPnXVnNK9bnD5Rg==", + "requires": { + "@babel/runtime": "^7.3.1", + "eth-ens-namehash": "2.0.8", + "lodash": "^4.17.11", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-eth-abi": "1.0.0-beta.55", + "web3-eth-accounts": "1.0.0-beta.55", + "web3-eth-contract": "1.0.0-beta.55", + "web3-net": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-eth-iban": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-iban/-/web3-eth-iban-1.0.0-beta.55.tgz", + "integrity": "sha512-a2Fxsb5Mssa+jiXgjUdIzJipE0175IcQXJbZLpKft2+zeSJWNTbaa3PQD2vPPpIM4W789q06N+f9Zc0Fyls+1g==", + "requires": { + "@babel/runtime": "^7.3.1", + "bn.js": "4.11.8", + "web3-utils": "1.0.0-beta.55" + }, + "dependencies": { + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + } + } + }, + "web3-eth-personal": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-eth-personal/-/web3-eth-personal-1.0.0-beta.55.tgz", + "integrity": "sha512-H0mahLQx6Oj7lpgTamKAswr3rHChRUZijeWAar2Hj7BABQlLRKwx8n09nYhxggvvLYQNQS90JjvQue7rAo2LQQ==", + "requires": { + "@babel/runtime": "^7.3.1", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-eth-accounts": "1.0.0-beta.55", + "web3-net": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-net": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-net/-/web3-net-1.0.0-beta.55.tgz", + "integrity": "sha512-do2WY8+/GArJSWX7k/zZ7nBnV9Y3n6LhPYkwT3LeFqDzD515bKwlomaNC8hOaTc6UQyXIoPprYTK2FevL7jrZw==", + "requires": { + "@babel/runtime": "^7.3.1", + "lodash": "^4.17.11", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-providers": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-providers/-/web3-providers-1.0.0-beta.55.tgz", + "integrity": "sha512-MNifc7W+iF6rykpbDR1MuX152jshWdZXHAU9Dk0Ja2/23elhIs4nCWs7wOX9FHrKgdrQbscPoq0uy+0aGzyWVQ==", + "requires": { + "@babel/runtime": "^7.3.1", + "@types/node": "^10.12.18", + "eventemitter3": "3.1.0", + "lodash": "^4.17.11", + "url-parse": "1.4.4", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55", + "websocket": "^1.0.28", + "xhr2-cookies": "1.1.0" + }, + "dependencies": { + "url-parse": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.4.tgz", + "integrity": "sha512-/92DTTorg4JjktLNLe6GPS2/RvAd/RGr6LuktmWSMLEOa6rjnlrFXNgSbSmkNvCoL2T028A0a1JaJLzRMlFoHg==", + "requires": { + "querystringify": "^2.0.0", + "requires-port": "^1.0.0" + } + } + } + }, + "web3-shh": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-shh/-/web3-shh-1.0.0-beta.55.tgz", + "integrity": "sha512-lGP2HQ/1ThNnfoU8677aL48KsTx4Ht+2KQIn39dGpxVZqysQmovQIltbymVnAr4h8wofwcEz46iNHGa+PAyNzA==", + "requires": { + "@babel/runtime": "^7.3.1", + "web3-core": "1.0.0-beta.55", + "web3-core-helpers": "1.0.0-beta.55", + "web3-core-method": "1.0.0-beta.55", + "web3-core-subscriptions": "1.0.0-beta.55", + "web3-net": "1.0.0-beta.55", + "web3-providers": "1.0.0-beta.55", + "web3-utils": "1.0.0-beta.55" + } + }, + "web3-utils": { + "version": "1.0.0-beta.55", + "resolved": "https://registry.npmjs.org/web3-utils/-/web3-utils-1.0.0-beta.55.tgz", + "integrity": "sha512-ASWqUi8gtWK02Tp8ZtcoAbHenMpQXNvHrakgzvqTNNZn26wgpv+Q4mdPi0KOR6ZgHFL8R/9b5BBoUTglS1WPpg==", + "requires": { + "@babel/runtime": "^7.3.1", + "@types/bn.js": "^4.11.4", + "@types/node": "^10.12.18", + "bn.js": "4.11.8", + "eth-lib": "0.2.8", + "ethjs-unit": "^0.1.6", + "lodash": "^4.17.11", + "number-to-bn": "1.7.0", + "randombytes": "^2.1.0", + "utf8": "2.1.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + } + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + }, + "webpack": { + "version": "4.19.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.19.1.tgz", + "integrity": "sha512-j7Q/5QqZRqIFXJvC0E59ipLV5Hf6lAnS3ezC3I4HMUybwEDikQBVad5d+IpPtmaQPQArvgUZLXIN6lWijHBn4g==", + "requires": { + "@webassemblyjs/ast": "1.7.6", + "@webassemblyjs/helper-module-context": "1.7.6", + "@webassemblyjs/wasm-edit": "1.7.6", + "@webassemblyjs/wasm-parser": "1.7.6", + "acorn": "^5.6.2", + "acorn-dynamic-import": "^3.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chrome-trace-event": "^1.0.0", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.0", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", + "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", + "node-libs-browser": "^2.0.0", + "schema-utils": "^0.4.4", + "tapable": "^1.1.0", + "uglifyjs-webpack-plugin": "^1.2.4", + "watchpack": "^1.5.0", + "webpack-sources": "^1.2.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==" + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "webpack-dev-middleware": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.4.0.tgz", + "integrity": "sha512-Q9Iyc0X9dP9bAsYskAVJ/hmIZZQwf/3Sy4xCAZgL5cUkjZmUZLt4l5HpbST/Pdgjn3u6pE7u5OdGd1apgzRujA==", + "requires": { + "memory-fs": "~0.4.1", + "mime": "^2.3.1", + "range-parser": "^1.0.3", + "webpack-log": "^2.0.0" + } + }, + "webpack-dev-server": { + "version": "3.1.14", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.14.tgz", + "integrity": "sha512-mGXDgz5SlTxcF3hUpfC8hrQ11yhAttuUQWf1Wmb+6zo3x6rb7b9mIfuQvAPLdfDRCGRGvakBWHdHOa0I9p/EVQ==", + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.0.0", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "debug": "^3.1.0", + "del": "^3.0.0", + "express": "^4.16.2", + "html-entities": "^1.2.0", + "http-proxy-middleware": "~0.18.0", + "import-local": "^2.0.0", + "internal-ip": "^3.0.1", + "ip": "^1.1.5", + "killable": "^1.0.0", + "loglevel": "^1.4.1", + "opn": "^5.1.0", + "portfinder": "^1.0.9", + "schema-utils": "^1.0.0", + "selfsigned": "^1.9.1", + "semver": "^5.6.0", + "serve-index": "^1.7.2", + "sockjs": "0.3.19", + "sockjs-client": "1.3.0", + "spdy": "^4.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^5.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "3.4.0", + "webpack-log": "^2.0.0", + "yargs": "12.0.2" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-2.0.0.tgz", + "integrity": "sha512-Ikpp5scV3MSYxY39ymh45ZLEecsTdv/Xj2CaQfI8RLMuwi7XvjX9H/fhraiSuU+C5w5NTDu4ZU72xNiZnurBPg==", + "requires": { + "xregexp": "4.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", + "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "requires": { + "find-up": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "yargs": { + "version": "12.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.2.tgz", + "integrity": "sha512-e7SkEx6N6SIZ5c5H22RTZae61qtn3PYUE8JYbBFlK9sYmh3DMQ6E5ygtaG/2BW0JZi4WGgTR2IV5ChqlqrDGVQ==", + "requires": { + "cliui": "^4.0.0", + "decamelize": "^2.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^10.1.0" + } + }, + "yargs-parser": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", + "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", + "requires": { + "camelcase": "^4.1.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", + "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-manifest-plugin": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.0.4.tgz", + "integrity": "sha512-nejhOHexXDBKQOj/5v5IZSfCeTO3x1Dt1RZEcGfBSul891X/eLIcIVH31gwxPDdsi2Z8LKKFGpM4w9+oTBOSCg==", + "requires": { + "fs-extra": "^7.0.0", + "lodash": ">=3.5 <5", + "tapable": "^1.0.0" + }, + "dependencies": { + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "websocket": { + "version": "1.0.33", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.33.tgz", + "integrity": "sha512-XwNqM2rN5eh3G2CUQE3OHZj+0xfdH42+OFK6LdC2yqiC0YU8e5UK0nYre220T0IyyN031V/XOvtHvXozvJYFWA==", + "requires": { + "bufferutil": "^4.0.1", + "debug": "^2.2.0", + "es5-ext": "^0.10.50", + "typedarray-to-buffer": "^3.1.5", + "utf-8-validate": "^5.0.2", + "yaeti": "^0.0.6" + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "requires": { + "iconv-lite": "0.4.24" + }, + "dependencies": { + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + } + } + }, + "whatwg-fetch": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", + "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==" + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "whatwg-url": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", + "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" + }, + "workbox-background-sync": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-3.6.3.tgz", + "integrity": "sha512-ypLo0B6dces4gSpaslmDg5wuoUWrHHVJfFWwl1udvSylLdXvnrfhFfriCS42SNEe5lsZtcNZF27W/SMzBlva7Q==", + "requires": { + "workbox-core": "^3.6.3" + } + }, + "workbox-broadcast-cache-update": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-broadcast-cache-update/-/workbox-broadcast-cache-update-3.6.3.tgz", + "integrity": "sha512-pJl4lbClQcvp0SyTiEw0zLSsVYE1RDlCPtpKnpMjxFtu8lCFTAEuVyzxp9w7GF4/b3P4h5nyQ+q7V9mIR7YzGg==", + "requires": { + "workbox-core": "^3.6.3" + } + }, + "workbox-build": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-3.6.3.tgz", + "integrity": "sha512-w0clZ/pVjL8VXy6GfthefxpEXs0T8uiRuopZSFVQ8ovfbH6c6kUpEh6DcYwm/Y6dyWPiCucdyAZotgjz+nRz8g==", + "requires": { + "babel-runtime": "^6.26.0", + "common-tags": "^1.4.0", + "fs-extra": "^4.0.2", + "glob": "^7.1.2", + "joi": "^11.1.1", + "lodash.template": "^4.4.0", + "pretty-bytes": "^4.0.2", + "stringify-object": "^3.2.2", + "strip-comments": "^1.0.2", + "workbox-background-sync": "^3.6.3", + "workbox-broadcast-cache-update": "^3.6.3", + "workbox-cache-expiration": "^3.6.3", + "workbox-cacheable-response": "^3.6.3", + "workbox-core": "^3.6.3", + "workbox-google-analytics": "^3.6.3", + "workbox-navigation-preload": "^3.6.3", + "workbox-precaching": "^3.6.3", + "workbox-range-requests": "^3.6.3", + "workbox-routing": "^3.6.3", + "workbox-strategies": "^3.6.3", + "workbox-streams": "^3.6.3", + "workbox-sw": "^3.6.3" + }, + "dependencies": { + "fs-extra": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", + "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } + }, + "workbox-cache-expiration": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-cache-expiration/-/workbox-cache-expiration-3.6.3.tgz", + "integrity": "sha512-+ECNph/6doYx89oopO/UolYdDmQtGUgo8KCgluwBF/RieyA1ZOFKfrSiNjztxOrGJoyBB7raTIOlEEwZ1LaHoA==", + "requires": { + "workbox-core": "^3.6.3" + } + }, + "workbox-cacheable-response": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-3.6.3.tgz", + "integrity": "sha512-QpmbGA9SLcA7fklBLm06C4zFg577Dt8u3QgLM0eMnnbaVv3rhm4vbmDpBkyTqvgK/Ly8MBDQzlXDtUCswQwqqg==", + "requires": { + "workbox-core": "^3.6.3" + } + }, + "workbox-core": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-3.6.3.tgz", + "integrity": "sha512-cx9cx0nscPkIWs8Pt98HGrS9/aORuUcSkWjG25GqNWdvD/pSe7/5Oh3BKs0fC+rUshCiyLbxW54q0hA+GqZeSQ==" + }, + "workbox-google-analytics": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-3.6.3.tgz", + "integrity": "sha512-RQBUo/6SXtIaQTRFj4RQZ9e1gAl7D8oS5S+Hi173Kk70/BgJjzPwXpC5A249Jv5YfkCOLMQCeF9A27BiD0b0ig==", + "requires": { + "workbox-background-sync": "^3.6.3", + "workbox-core": "^3.6.3", + "workbox-routing": "^3.6.3", + "workbox-strategies": "^3.6.3" + } + }, + "workbox-navigation-preload": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-3.6.3.tgz", + "integrity": "sha512-dd26xTX16DUu0i+MhqZK/jQXgfIitu0yATM4jhRXEmpMqQ4MxEeNvl2CgjDMOHBnCVMax+CFZQWwxMx/X/PqCw==", + "requires": { + "workbox-core": "^3.6.3" + } + }, + "workbox-precaching": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-3.6.3.tgz", + "integrity": "sha512-aBqT66BuMFviPTW6IpccZZHzpA8xzvZU2OM1AdhmSlYDXOJyb1+Z6blVD7z2Q8VNtV1UVwQIdImIX+hH3C3PIw==", + "requires": { + "workbox-core": "^3.6.3" + } + }, + "workbox-range-requests": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-3.6.3.tgz", + "integrity": "sha512-R+yLWQy7D9aRF9yJ3QzwYnGFnGDhMUij4jVBUVtkl67oaVoP1ymZ81AfCmfZro2kpPRI+vmNMfxxW531cqdx8A==", + "requires": { + "workbox-core": "^3.6.3" + } + }, + "workbox-routing": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-3.6.3.tgz", + "integrity": "sha512-bX20i95OKXXQovXhFOViOK63HYmXvsIwZXKWbSpVeKToxMrp0G/6LZXnhg82ijj/S5yhKNRf9LeGDzaqxzAwMQ==", + "requires": { + "workbox-core": "^3.6.3" + } + }, + "workbox-strategies": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-3.6.3.tgz", + "integrity": "sha512-Pg5eulqeKet2y8j73Yw6xTgLdElktcWExGkzDVCGqfV9JCvnGuEpz5eVsCIK70+k4oJcBCin9qEg3g3CwEIH3g==", + "requires": { + "workbox-core": "^3.6.3" + } + }, + "workbox-streams": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-3.6.3.tgz", + "integrity": "sha512-rqDuS4duj+3aZUYI1LsrD2t9hHOjwPqnUIfrXSOxSVjVn83W2MisDF2Bj+dFUZv4GalL9xqErcFW++9gH+Z27w==", + "requires": { + "workbox-core": "^3.6.3" + } + }, + "workbox-sw": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-sw/-/workbox-sw-3.6.3.tgz", + "integrity": "sha512-IQOUi+RLhvYCiv80RP23KBW/NTtIvzvjex28B8NW1jOm+iV4VIu3VXKXTA6er5/wjjuhmtB28qEAUqADLAyOSg==" + }, + "workbox-webpack-plugin": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-3.6.3.tgz", + "integrity": "sha512-RwmKjc7HFHUFHoOlKoZUq9349u0QN3F8W5tZZU0vc1qsBZDINWXRiIBCAKvo/Njgay5sWz7z4I2adnyTo97qIQ==", + "requires": { + "babel-runtime": "^6.26.0", + "json-stable-stringify": "^1.0.1", + "workbox-build": "^3.6.3" + } + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/write/-/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "requires": { + "mkdirp": "^0.5.1" + } + }, + "write-file-atomic": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", + "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" + } + }, + "ws": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.4.tgz", + "integrity": "sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==", + "requires": {} + }, + "xhr": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.6.0.tgz", + "integrity": "sha512-/eCGLb5rxjx5e3mF1A7s+pLlR6CGyqWN91fv1JgER5mVWg1MZmlhBvy9kjcsOdRk8RrIujotWyJamfyrp+WIcA==", + "requires": { + "global": "~4.4.0", + "is-function": "^1.0.1", + "parse-headers": "^2.0.0", + "xtend": "^4.0.0" + } + }, + "xhr-request": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr-request/-/xhr-request-1.1.0.tgz", + "integrity": "sha512-Y7qzEaR3FDtL3fP30k9wO/e+FBnBByZeybKOhASsGP30NIkRAAkKD/sCnLvgEfAIEC1rcmK7YG8f4oEnIrrWzA==", + "requires": { + "buffer-to-arraybuffer": "^0.0.5", + "object-assign": "^4.1.1", + "query-string": "^5.0.1", + "simple-get": "^2.7.0", + "timed-out": "^4.0.1", + "url-set-query": "^1.0.0", + "xhr": "^2.0.4" + } + }, + "xhr-request-promise": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/xhr-request-promise/-/xhr-request-promise-0.1.3.tgz", + "integrity": "sha512-YUBytBsuwgitWtdRzXDDkWAXzhdGB8bYm0sSzMPZT7Z2MBjMSTHFsyCT1yCRATY+XC69DUrQraRAEgcoCRaIPg==", + "requires": { + "xhr-request": "^1.1.0" + } + }, + "xhr2-cookies": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xhr2-cookies/-/xhr2-cookies-1.1.0.tgz", + "integrity": "sha1-fXdEnQmZGX8VXLc7I99yUF7YnUg=", + "requires": { + "cookiejar": "^2.1.1" + } + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" + }, + "xregexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.0.0.tgz", + "integrity": "sha512-PHyM+sQouu7xspQQwELlGwwd05mXUFqwFYfqPO0cC7x4fxyHnnuetmQr6CjJiafIDoH4MogHb9dOoJzR/Y4rFg==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", + "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==" + }, + "yaeti": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz", + "integrity": "sha1-8m9ITXJoTPQr7ft2lwqhYI+/lXc=" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "yargs": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.1.tgz", + "integrity": "sha512-PRU7gJrJaXv3q3yQZ/+/X6KBswZiaQ+zOmdprZcouPYtQgvNU35i+68M4b1ZHLZtYFT5QObFLV+ZkmJYcwKdiw==", + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" + }, + "dependencies": { + "y18n": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + } + } + }, + "yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "requires": { + "camelcase": "^4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..5f35e33 --- /dev/null +++ b/package.json @@ -0,0 +1,44 @@ +{ + "name": "cryptoboys", + "version": "0.1.0", + "description": "Crypto Boys NFT Marketplace", + "author": "devpavan04", + "dependencies": { + "@openzeppelin/contracts": "^3.4.1", + "babel-polyfill": "6.26.0", + "babel-preset-env": "1.7.0", + "babel-preset-es2015": "6.24.1", + "babel-preset-stage-2": "6.24.1", + "babel-preset-stage-3": "6.24.1", + "babel-register": "6.26.0", + "bootstrap": "4.3.1", + "chai": "4.2.0", + "chai-as-promised": "7.1.1", + "chai-bignumber": "3.0.0", + "dayjs": "^1.10.4", + "ipfs-http-client": "^49.0.2", + "react": "16.8.4", + "react-bootstrap": "1.0.0-beta.5", + "react-dom": "16.8.4", + "react-router-dom": "^5.2.0", + "react-scripts": "2.1.3", + "truffle": "5.0.5", + "truffle-flattener": "^1.5.0", + "web3": "1.0.0-beta.55" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": "react-app" + }, + "browserslist": [ + ">0.2%", + "not dead", + "not ie <= 11", + "not op_mini all" + ] +} diff --git a/public/index.html b/public/index.html new file mode 100755 index 0000000..28103f3 --- /dev/null +++ b/public/index.html @@ -0,0 +1,57 @@ + + + + + + + + + + + Crypto Boy NFT + + + +
+ + + + + + + diff --git a/src/abis/Address.json b/src/abis/Address.json new file mode 100644 index 0000000..1564df4 --- /dev/null +++ b/src/abis/Address.json @@ -0,0 +1,77558 @@ +{ + "contractName": "Address", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Collection of functions related to the address type\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":\"Address\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":{\"keccak256\":\"0xac9220652f9879c5fb3116025d59e8fbf6c2c3d149aed9f617b88edd31402044\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48de100723de94a6590c6db5bae5098a93445194389c3f3eeb104c7239ef3044\",\"dweb:/ipfs/QmVHLEtfLqBqX7XQRHfLuuwtufRBFJFHfgY4zbFRpaZwXC\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202a6b41dd50e148511ca3ced33658c6fea73c1f953955854c6e5ba336f0b3b5bb64736f6c63430007060033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202a6b41dd50e148511ca3ced33658c6fea73c1f953955854c6e5ba336f0b3b5bb64736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "18048:7684:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "18048:7684:1:-:0;;;;;;;;", + "source": "// SPDX-License-Identifier: MIT\n\n// File: @openzeppelin/contracts/utils/Context.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\n\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Enumerable is IERC721 {\n\n /**\n * @dev Returns the total amount of tokens stored by the contract.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);\n\n /**\n * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n * Use along with {totalSupply} to enumerate all tokens.\n */\n function tokenByIndex(uint256 index) external view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\npragma solidity >=0.6.0 <0.8.0;\n\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts may inherit from this and call {_registerInterface} to declare\n * their support of an interface.\n */\nabstract contract ERC165 is IERC165 {\n /*\n * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7\n */\n bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;\n\n /**\n * @dev Mapping of interface ids to whether or not it's supported.\n */\n mapping(bytes4 => bool) private _supportedInterfaces;\n\n constructor () {\n // Derived contracts need only register support for their own interfaces,\n // we register support for ERC165 itself here\n _registerInterface(_INTERFACE_ID_ERC165);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n *\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return _supportedInterfaces[interfaceId];\n }\n\n /**\n * @dev Registers the contract as an implementer of the interface defined by\n * `interfaceId`. Support of the actual ERC165 interface is automatic and\n * registering its interface id is not required.\n *\n * See {IERC165-supportsInterface}.\n *\n * Requirements:\n *\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).\n */\n function _registerInterface(bytes4 interfaceId) internal virtual {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the substraction of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n return a - b;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) return 0;\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: division by zero\");\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: modulo by zero\");\n return a % b;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {trySub}.\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryDiv}.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting with custom message when dividing by zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryMod}.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a % b;\n }\n}\n\n// File: @openzeppelin/contracts/utils/Address.sol\npragma solidity >=0.6.2 <0.8.0;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n // solhint-disable-next-line no-inline-assembly\n assembly { size := extcodesize(account) }\n return size > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: value }(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.staticcall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableSet.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) { // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n bytes32 lastvalue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastvalue;\n // Update the index for the moved value\n set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n require(set._values.length > index, \"EnumerableSet: index out of bounds\");\n return set._values[index];\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableMap.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing an enumerable variant of Solidity's\n * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n * type.\n *\n * Maps have the following properties:\n *\n * - Entries are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Entries are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableMap for EnumerableMap.UintToAddressMap;\n *\n * // Declare a set state variable\n * EnumerableMap.UintToAddressMap private myMap;\n * }\n * ```\n *\n * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n * supported.\n */\nlibrary EnumerableMap {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Map type with\n // bytes32 keys and values.\n // The Map implementation uses private functions, and user-facing\n // implementations (such as Uint256ToAddressMap) are just wrappers around\n // the underlying Map.\n // This means that we can only create new EnumerableMaps for types that fit\n // in bytes32.\n\n struct MapEntry {\n bytes32 _key;\n bytes32 _value;\n }\n\n struct Map {\n // Storage of map keys and values\n MapEntry[] _entries;\n\n // Position of the entry defined by a key in the `entries` array, plus 1\n // because index 0 means a key is not in the map.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex == 0) { // Equivalent to !contains(map, key)\n map._entries.push(MapEntry({ _key: key, _value: value }));\n // The entry is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n map._indexes[key] = map._entries.length;\n return true;\n } else {\n map._entries[keyIndex - 1]._value = value;\n return false;\n }\n }\n\n /**\n * @dev Removes a key-value pair from a map. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function _remove(Map storage map, bytes32 key) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex != 0) { // Equivalent to contains(map, key)\n // To delete a key-value pair from the _entries array in O(1), we swap the entry to delete with the last one\n // in the array, and then remove the last entry (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = keyIndex - 1;\n uint256 lastIndex = map._entries.length - 1;\n\n // When the entry to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n MapEntry storage lastEntry = map._entries[lastIndex];\n\n // Move the last entry to the index where the entry to delete is\n map._entries[toDeleteIndex] = lastEntry;\n // Update the index for the moved entry\n map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved entry was stored\n map._entries.pop();\n\n // Delete the index for the deleted slot\n delete map._indexes[key];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function _contains(Map storage map, bytes32 key) private view returns (bool) {\n return map._indexes[key] != 0;\n }\n\n /**\n * @dev Returns the number of key-value pairs in the map. O(1).\n */\n function _length(Map storage map) private view returns (uint256) {\n return map._entries.length;\n }\n\n /**\n * @dev Returns the key-value pair stored at position `index` in the map. O(1).\n *\n * Note that there are no guarantees on the ordering of entries inside the\n * array, and it may change when more entries are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) {\n require(map._entries.length > index, \"EnumerableMap: index out of bounds\");\n\n MapEntry storage entry = map._entries[index];\n return (entry._key, entry._value);\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n */\n function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) {\n uint256 keyIndex = map._indexes[key];\n if (keyIndex == 0) return (false, 0); // Equivalent to contains(map, key)\n return (true, map._entries[keyIndex - 1]._value); // All indexes are 1-based\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function _get(Map storage map, bytes32 key) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, \"EnumerableMap: nonexistent key\"); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n /**\n * @dev Same as {_get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {_tryGet}.\n */\n function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n // UintToAddressMap\n\n struct UintToAddressMap {\n Map _inner;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) {\n return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {\n return _remove(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {\n return _contains(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns the number of elements in the map. O(1).\n */\n function length(UintToAddressMap storage map) internal view returns (uint256) {\n return _length(map._inner);\n }\n\n /**\n * @dev Returns the element stored at position `index` in the set. O(1).\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {\n (bytes32 key, bytes32 value) = _at(map._inner, index);\n return (uint256(key), address(uint160(uint256(value))));\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n *\n * _Available since v3.4._\n */\n function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) {\n (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key));\n return (success, address(uint160(uint256(value))));\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key)))));\n }\n\n /**\n * @dev Same as {get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryGet}.\n */\n function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage))));\n }\n}\n\n// File: @openzeppelin/contracts/utils/Strings.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n /**\n * @dev Converts a `uint256` to its ASCII `string` representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n uint256 index = digits - 1;\n temp = value;\n while (temp != 0) {\n buffer[index--] = bytes1(uint8(48 + temp % 10));\n temp /= 10;\n }\n return string(buffer);\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 Non-Fungible Token Standard basic implementation\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable {\n using SafeMath for uint256;\n using Address for address;\n using EnumerableSet for EnumerableSet.UintSet;\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n using Strings for uint256;\n\n // Equals to `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n // which can be also obtained as `IERC721Receiver(0).onERC721Received.selector`\n bytes4 private constant _ERC721_RECEIVED = 0x150b7a02;\n\n // Mapping from holder address to their (enumerable) set of owned tokens\n mapping (address => EnumerableSet.UintSet) private _holderTokens;\n\n // Enumerable mapping from token ids to their owners\n EnumerableMap.UintToAddressMap private _tokenOwners;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Optional mapping for token URIs\n mapping (uint256 => string) private _tokenURIs;\n\n // Base URI\n string private _baseURI;\n\n /*\n * bytes4(keccak256('balanceOf(address)')) == 0x70a08231\n * bytes4(keccak256('ownerOf(uint256)')) == 0x6352211e\n * bytes4(keccak256('approve(address,uint256)')) == 0x095ea7b3\n * bytes4(keccak256('getApproved(uint256)')) == 0x081812fc\n * bytes4(keccak256('setApprovalForAll(address,bool)')) == 0xa22cb465\n * bytes4(keccak256('isApprovedForAll(address,address)')) == 0xe985e9c5\n * bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde\n *\n * => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^\n * 0xa22cb465 ^ 0xe985e9c5 ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n /*\n * bytes4(keccak256('name()')) == 0x06fdde03\n * bytes4(keccak256('symbol()')) == 0x95d89b41\n * bytes4(keccak256('tokenURI(uint256)')) == 0xc87b56dd\n *\n * => 0x06fdde03 ^ 0x95d89b41 ^ 0xc87b56dd == 0x5b5e139f\n */\n bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f;\n\n /*\n * bytes4(keccak256('totalSupply()')) == 0x18160ddd\n * bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) == 0x2f745c59\n * bytes4(keccak256('tokenByIndex(uint256)')) == 0x4f6ccce7\n *\n * => 0x18160ddd ^ 0x2f745c59 ^ 0x4f6ccce7 == 0x780e9d63\n */\n bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor (string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n return _holderTokens[owner].length();\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n return _tokenOwners.get(tokenId, \"ERC721: owner query for nonexistent token\");\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).\n if (bytes(_tokenURI).length > 0) {\n return string(abi.encodePacked(base, _tokenURI));\n }\n // If there is a baseURI but no tokenURI, concatenate the tokenID to the baseURI.\n return string(abi.encodePacked(base, tokenId.toString()));\n }\n\n /**\n * @dev Returns the base URI set via {_setBaseURI}. This will be\n * automatically added as a prefix in {tokenURI} to each token's URI, or\n * to the token ID if no specific URI is set for that token ID.\n */\n function baseURI() public view virtual returns (string memory) {\n return _baseURI;\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\n return _holderTokens[owner].at(index);\n }\n\n /**\n * @dev See {IERC721Enumerable-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n // _tokenOwners are indexed by tokenIds, so .length() returns the number of tokenIds\n return _tokenOwners.length();\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenByIndex}.\n */\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\n (uint256 tokenId, ) = _tokenOwners.at(index);\n return tokenId;\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(_msgSender() == owner || ERC721.isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n require(operator != _msgSender(), \"ERC721: approve to caller\");\n\n _operatorApprovals[_msgSender()][operator] = approved;\n emit ApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n _safeTransfer(from, to, tokenId, _data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `_data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _tokenOwners.contains(tokenId);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || ERC721.isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n d*\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory _data) internal virtual {\n _mint(to, tokenId);\n require(_checkOnERC721Received(address(0), to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId);\n\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId); // internal owner\n\n _beforeTokenTransfer(owner, address(0), tokenId);\n\n // Clear approvals\n _approve(address(0), tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n\n _holderTokens[owner].remove(tokenId);\n\n _tokenOwners.remove(tokenId);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\"); // internal owner\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId);\n\n // Clear approvals from the previous owner\n _approve(address(0), tokenId);\n\n _holderTokens[from].remove(tokenId);\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = _tokenURI;\n }\n\n /**\n * @dev Internal function to set the base URI for all token IDs. It is\n * automatically added as a prefix to the value returned in {tokenURI},\n * or to the token ID if {tokenURI} is empty.\n */\n function _setBaseURI(string memory baseURI_) internal virtual {\n _baseURI = baseURI_;\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data)\n private returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n bytes memory returndata = to.functionCall(abi.encodeWithSelector(\n IERC721Receiver(to).onERC721Received.selector,\n _msgSender(),\n from,\n tokenId,\n _data\n ), \"ERC721: transfer to non ERC721Receiver implementer\");\n bytes4 retval = abi.decode(returndata, (bytes4));\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits an {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId); // internal owner\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n * transferred to `to`.\n * - When `from` is zero, `tokenId` will be minted for `to`.\n * - When `to` is zero, ``from``'s `tokenId` will be burned.\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual { }\n}\n", + "sourcePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "ast": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "id": 3499, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 509, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "84:31:1" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 530, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 517, + "nodeType": "Block", + "src": "719:34:1", + "statements": [ + { + "expression": { + "expression": { + "id": 514, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "736:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "736:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 513, + "id": 516, + "nodeType": "Return", + "src": "729:17:1" + } + ] + }, + "id": 518, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 510, + "nodeType": "ParameterList", + "parameters": [], + "src": "668:2:1" + }, + "returnParameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 518, + "src": "702:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "702:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "701:17:1" + }, + "scope": 530, + "src": "649:104:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 528, + "nodeType": "Block", + "src": "824:165:1", + "statements": [ + { + "expression": { + "id": 523, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "834:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 524, + "nodeType": "ExpressionStatement", + "src": "834:4:1" + }, + { + "expression": { + "expression": { + "id": 525, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "974:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "src": "974:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 522, + "id": 527, + "nodeType": "Return", + "src": "967:15:1" + } + ] + }, + "id": 529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 519, + "nodeType": "ParameterList", + "parameters": [], + "src": "776:2:1" + }, + "returnParameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "810:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 520, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "810:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "809:14:1" + }, + "scope": 530, + "src": "759:230:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "617:374:1" + }, + { + "id": 531, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1053:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 532, + "nodeType": "StructuredDocumentation", + "src": "1086:279:1", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 541, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 533, + "nodeType": "StructuredDocumentation", + "src": "1390:340:1", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 540, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1762:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 534, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1762:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1761:20:1" + }, + "returnParameters": { + "id": 539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1805:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1805:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1804:6:1" + }, + "scope": 541, + "src": "1735:76:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1366:447:1" + }, + { + "id": 542, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1873:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 544, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "1996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 545, + "nodeType": "InheritanceSpecifier", + "src": "1996:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "1907:67:1", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 655, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 546, + "nodeType": "StructuredDocumentation", + "src": "2010:88:1", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 554, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 548, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2118:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 550, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2140:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2140:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 552, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2160:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2117:67:1" + }, + "src": "2103:82:1" + }, + { + "anonymous": false, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "2191:94:1", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 563, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 557, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2305:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2305:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 559, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2328:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 561, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2354:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2354:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2304:74:1" + }, + "src": "2290:89:1" + }, + { + "anonymous": false, + "documentation": { + "id": 564, + "nodeType": "StructuredDocumentation", + "src": "2385:117:1", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 572, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 566, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2528:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2528:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2551:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2551:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 570, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2577:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 569, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2577:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2527:64:1" + }, + "src": "2507:85:1" + }, + { + "documentation": { + "id": 573, + "nodeType": "StructuredDocumentation", + "src": "2598:76:1", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2698:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 574, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2698:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2697:15:1" + }, + "returnParameters": { + "id": 579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2736:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2735:17:1" + }, + "scope": 655, + "src": "2679:74:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 581, + "nodeType": "StructuredDocumentation", + "src": "2759:131:1", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 588, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 583, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2912:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2912:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2911:17:1" + }, + "returnParameters": { + "id": 587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2952:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2951:15:1" + }, + "scope": 655, + "src": "2895:72:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 589, + "nodeType": "StructuredDocumentation", + "src": "2973:690:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 598, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 591, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3694:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3694:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3708:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3708:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3720:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3720:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3693:43:1" + }, + "returnParameters": { + "id": 597, + "nodeType": "ParameterList", + "parameters": [], + "src": "3745:0:1" + }, + "scope": 655, + "src": "3668:78:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 599, + "nodeType": "StructuredDocumentation", + "src": "3752:504:1", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 608, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 601, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4283:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4283:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 603, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4297:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 602, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4297:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4309:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4309:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4282:43:1" + }, + "returnParameters": { + "id": 607, + "nodeType": "ParameterList", + "parameters": [], + "src": "4334:0:1" + }, + "scope": 655, + "src": "4261:74:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 609, + "nodeType": "StructuredDocumentation", + "src": "4341:452:1", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 616, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 611, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4815:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4815:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4827:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4814:29:1" + }, + "returnParameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [], + "src": "4852:0:1" + }, + "scope": 655, + "src": "4798:55:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 617, + "nodeType": "StructuredDocumentation", + "src": "4859:139:1", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 619, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5024:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5024:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5023:17:1" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5064:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5064:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5063:18:1" + }, + "scope": 655, + "src": "5003:79:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 625, + "nodeType": "StructuredDocumentation", + "src": "5088:309:1", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 632, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5429:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5429:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5447:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 628, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5447:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5428:34:1" + }, + "returnParameters": { + "id": 631, + "nodeType": "ParameterList", + "parameters": [], + "src": "5471:0:1" + }, + "scope": 655, + "src": "5402:70:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 633, + "nodeType": "StructuredDocumentation", + "src": "5478:138:1", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 642, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5647:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5647:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5662:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5662:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5646:33:1" + }, + "returnParameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5703:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 639, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5703:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5702:6:1" + }, + "scope": 655, + "src": "5621:88:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 643, + "nodeType": "StructuredDocumentation", + "src": "5715:568:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 654, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6314:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6314:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6328:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6340:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6340:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6357:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 650, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6357:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6313:64:1" + }, + "returnParameters": { + "id": 653, + "nodeType": "ParameterList", + "parameters": [], + "src": "6386:0:1" + }, + "scope": 655, + "src": "6288:99:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1975:4414:1" + }, + { + "id": 656, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "6457:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 658, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "6654:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 659, + "nodeType": "InheritanceSpecifier", + "src": "6654:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 657, + "nodeType": "StructuredDocumentation", + "src": "6491:133:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 680, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 660, + "nodeType": "StructuredDocumentation", + "src": "6669:58:1", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 665, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [], + "src": "6745:2:1" + }, + "returnParameters": { + "id": 664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 663, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 665, + "src": "6771:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 662, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6771:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6770:15:1" + }, + "scope": 680, + "src": "6732:54:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 666, + "nodeType": "StructuredDocumentation", + "src": "6792:60:1", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 671, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 667, + "nodeType": "ParameterList", + "parameters": [], + "src": "6872:2:1" + }, + "returnParameters": { + "id": 670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 669, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "6898:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 668, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6897:15:1" + }, + "scope": 680, + "src": "6857:56:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 672, + "nodeType": "StructuredDocumentation", + "src": "6919:90:1", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 679, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7032:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7031:17:1" + }, + "returnParameters": { + "id": 678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7072:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 676, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7072:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7071:15:1" + }, + "scope": 680, + "src": "7014:73:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "6625:464:1" + }, + { + "id": 681, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "7161:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 683, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "7363:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 684, + "nodeType": "InheritanceSpecifier", + "src": "7363:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 682, + "nodeType": "StructuredDocumentation", + "src": "7195:136:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 709, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 685, + "nodeType": "StructuredDocumentation", + "src": "7378:82:1", + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "functionSelector": "18160ddd", + "id": 690, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 686, + "nodeType": "ParameterList", + "parameters": [], + "src": "7485:2:1" + }, + "returnParameters": { + "id": 689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 688, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "7511:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 687, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7511:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7510:9:1" + }, + "scope": 709, + "src": "7465:55:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "7526:171:1", + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "functionSelector": "2f745c59", + "id": 700, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7731:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7731:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7746:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7746:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7730:30:1" + }, + "returnParameters": { + "id": 699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 698, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7784:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7784:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7783:17:1" + }, + "scope": 709, + "src": "7702:99:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 701, + "nodeType": "StructuredDocumentation", + "src": "7807:164:1", + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "functionSelector": "4f6ccce7", + "id": 708, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 703, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "7998:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7998:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7997:15:1" + }, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "8036:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8036:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8035:9:1" + }, + "scope": 709, + "src": "7976:69:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "7332:715:1" + }, + { + "id": 710, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "8117:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 711, + "nodeType": "StructuredDocumentation", + "src": "8150:152:1", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 726, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 712, + "nodeType": "StructuredDocumentation", + "src": "8335:485:1", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 725, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8851:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8851:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8869:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8883:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8900:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 719, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8900:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8850:70:1" + }, + "returnParameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8939:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 722, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8939:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "8938:8:1" + }, + "scope": 726, + "src": "8825:122:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "8303:646:1" + }, + { + "id": 727, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9009:31:1" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 729, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "9243:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 730, + "nodeType": "InheritanceSpecifier", + "src": "9243:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "documentation": { + "id": 728, + "nodeType": "StructuredDocumentation", + "src": "9043:171:1", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "fullyImplemented": true, + "id": 781, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 733, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9340:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 731, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9340:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783031666663396137", + "id": 732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "9404:82:1", + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 738, + "mutability": "mutable", + "name": "_supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9491:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 737, + "keyType": { + "id": 735, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9499:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "9491:23:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 736, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9509:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 745, + "nodeType": "Block", + "src": "9565:193:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 742, + "name": "_INTERFACE_ID_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "9730:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 741, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "9711:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9711:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 744, + "nodeType": "ExpressionStatement", + "src": "9711:40:1" + } + ] + }, + "id": 746, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 739, + "nodeType": "ParameterList", + "parameters": [], + "src": "9562:2:1" + }, + "returnParameters": { + "id": 740, + "nodeType": "ParameterList", + "parameters": [], + "src": "9565:0:1" + }, + "scope": 781, + "src": "9550:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 540 + ], + "body": { + "id": 759, + "nodeType": "Block", + "src": "9999:57:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 755, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10016:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 757, + "indexExpression": { + "id": 756, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "10037:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10016:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 754, + "id": 758, + "nodeType": "Return", + "src": "10009:40:1" + } + ] + }, + "documentation": { + "id": 747, + "nodeType": "StructuredDocumentation", + "src": "9764:139:1", + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 760, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 751, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9975:8:1" + }, + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9935:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 748, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9935:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "9934:20:1" + }, + "returnParameters": { + "id": 754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 753, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9993:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9993:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9992:6:1" + }, + "scope": 781, + "src": "9908:148:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 779, + "nodeType": "Block", + "src": "10515:133:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 767, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10533:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10548:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "10533:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10560:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + }, + "value": "ERC165: invalid interface id" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "id": 766, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "10525:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10525:66:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 772, + "nodeType": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "expression": { + "id": 777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 773, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10601:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 775, + "indexExpression": { + "id": 774, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10622:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10637:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10601:40:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 778, + "nodeType": "ExpressionStatement", + "src": "10601:40:1" + } + ] + }, + "documentation": { + "id": 761, + "nodeType": "StructuredDocumentation", + "src": "10062:383:1", + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 780, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 763, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 780, + "src": "10478:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 762, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "10478:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "10477:20:1" + }, + "returnParameters": { + "id": 765, + "nodeType": "ParameterList", + "parameters": [], + "src": "10515:0:1" + }, + "scope": 781, + "src": "10450:198:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "9215:1435:1" + }, + { + "id": 782, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10703:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 783, + "nodeType": "StructuredDocumentation", + "src": "10736:563:1", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 1135, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 813, + "nodeType": "Block", + "src": "11535:98:1", + "statements": [ + { + "assignments": [ + 796 + ], + "declarations": [ + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 813, + "src": "11545:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 795, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 800, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 797, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11557:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "11561:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11557:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 801, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11576:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 802, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11580:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11576:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 808, + "nodeType": "IfStatement", + "src": "11572:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11591:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11598:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 806, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11590:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 794, + "id": 807, + "nodeType": "Return", + "src": "11583:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11618:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 810, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11624:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 811, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11617:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 794, + "id": 812, + "nodeType": "Return", + "src": "11610:16:1" + } + ] + }, + "documentation": { + "id": 784, + "nodeType": "StructuredDocumentation", + "src": "11323:131:1", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 814, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11475:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11475:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11486:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11486:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11474:22:1" + }, + "returnParameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 791, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11526:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 792, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11526:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11519:15:1" + }, + "scope": 1135, + "src": "11459:174:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 840, + "nodeType": "Block", + "src": "11855:75:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 826, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11869:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 827, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11873:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11869:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 833, + "nodeType": "IfStatement", + "src": "11865:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11884:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 831, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11883:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 825, + "id": 832, + "nodeType": "Return", + "src": "11876:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11911:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 835, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11917:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 836, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11921:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11917:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 838, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11910:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 825, + "id": 839, + "nodeType": "Return", + "src": "11903:20:1" + } + ] + }, + "documentation": { + "id": 815, + "nodeType": "StructuredDocumentation", + "src": "11639:135:1", + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 841, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 817, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11795:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11795:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 819, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11806:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11806:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11794:22:1" + }, + "returnParameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11840:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 821, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11840:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 824, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11846:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11846:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11839:15:1" + }, + "scope": 1135, + "src": "11779:151:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 881, + "nodeType": "Block", + "src": "12154:359:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 853, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12386:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12391:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12386:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 860, + "nodeType": "IfStatement", + "src": "12382:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12402:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12408:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 858, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12401:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 859, + "nodeType": "Return", + "src": "12394:16:1" + } + }, + { + "assignments": [ + 862 + ], + "declarations": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "12420:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12420:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 866, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12432:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 864, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12436:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12432:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 867, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12451:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 868, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12455:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 870, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12460:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 876, + "nodeType": "IfStatement", + "src": "12447:33:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12471:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12478:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 874, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12470:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 875, + "nodeType": "Return", + "src": "12463:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12498:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 878, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12504:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12497:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 852, + "id": 880, + "nodeType": "Return", + "src": "12490:16:1" + } + ] + }, + "documentation": { + "id": 842, + "nodeType": "StructuredDocumentation", + "src": "11936:137:1", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 844, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12094:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12094:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 846, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12105:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12093:22:1" + }, + "returnParameters": { + "id": 852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12139:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 848, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12139:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12145:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12145:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12138:15:1" + }, + "scope": 1135, + "src": "12078:435:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 908, + "nodeType": "Block", + "src": "12738:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 894, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12752:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12757:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12752:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 901, + "nodeType": "IfStatement", + "src": "12748:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12768:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12775:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 899, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12767:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 893, + "id": 900, + "nodeType": "Return", + "src": "12760:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12795:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 903, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "12801:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 904, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12805:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12801:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 906, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12794:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 893, + "id": 907, + "nodeType": "Return", + "src": "12787:20:1" + } + ] + }, + "documentation": { + "id": 883, + "nodeType": "StructuredDocumentation", + "src": "12519:138:1", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 909, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12678:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12678:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12689:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12689:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12677:22:1" + }, + "returnParameters": { + "id": 893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12723:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 889, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12723:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12729:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12729:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12722:15:1" + }, + "scope": 1135, + "src": "12662:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 935, + "nodeType": "Block", + "src": "13049:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 921, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13063:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13068:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13063:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 928, + "nodeType": "IfStatement", + "src": "13059:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13079:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13086:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 926, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13078:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 920, + "id": 927, + "nodeType": "Return", + "src": "13071:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13106:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 930, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "13112:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 931, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13116:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13112:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13105:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 920, + "id": 934, + "nodeType": "Return", + "src": "13098:20:1" + } + ] + }, + "documentation": { + "id": 910, + "nodeType": "StructuredDocumentation", + "src": "12820:148:1", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 912, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "12989:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12989:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 914, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13000:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 913, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13000:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12988:22:1" + }, + "returnParameters": { + "id": 920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 917, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13034:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 916, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13034:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 919, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13040:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13040:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13033:15:1" + }, + "scope": 1135, + "src": "12973:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 961, + "nodeType": "Block", + "src": "13427:108:1", + "statements": [ + { + "assignments": [ + 947 + ], + "declarations": [ + { + "constant": false, + "id": 947, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "13437:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13437:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 951, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13449:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 949, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 941, + "src": "13453:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13449:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 953, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13472:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 954, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13477:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13480:29:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 952, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13464:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 958, + "nodeType": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "expression": { + "id": 959, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13527:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 945, + "id": 960, + "nodeType": "Return", + "src": "13520:8:1" + } + ] + }, + "documentation": { + "id": 937, + "nodeType": "StructuredDocumentation", + "src": "13131:224:1", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13373:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13384:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13384:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13372:22:1" + }, + "returnParameters": { + "id": 945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13418:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13418:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13417:9:1" + }, + "scope": 1135, + "src": "13360:175:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 983, + "nodeType": "Block", + "src": "13873:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 973, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13896:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13891:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13883:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 979, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13949:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 980, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13953:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13949:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 971, + "id": 982, + "nodeType": "Return", + "src": "13942:12:1" + } + ] + }, + "documentation": { + "id": 963, + "nodeType": "StructuredDocumentation", + "src": "13541:260:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 984, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13819:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 964, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 967, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13830:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13830:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13818:22:1" + }, + "returnParameters": { + "id": 971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 970, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13864:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13864:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13863:9:1" + }, + "scope": 1135, + "src": "13806:155:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "14275:148:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 994, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14289:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14294:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14289:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "IfStatement", + "src": "14285:20:1", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14304:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 993, + "id": 998, + "nodeType": "Return", + "src": "14297:8:1" + } + }, + { + "assignments": [ + 1001 + ], + "declarations": [ + { + "constant": false, + "id": 1001, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "14315:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14315:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1005, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1002, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14327:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1003, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14331:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14327:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1007, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14350:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1008, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14354:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1010, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14359:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14362:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1006, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14342:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14342:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "expression": { + "id": 1015, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14415:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 993, + "id": 1016, + "nodeType": "Return", + "src": "14408:8:1" + } + ] + }, + "documentation": { + "id": 985, + "nodeType": "StructuredDocumentation", + "src": "13967:236:1", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14221:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 989, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14232:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 988, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14232:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14220:22:1" + }, + "returnParameters": { + "id": 993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 992, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14266:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14266:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14265:9:1" + }, + "scope": 1135, + "src": "14208:215:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1039, + "nodeType": "Block", + "src": "14954:83:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1029, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "14972:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14976:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14972:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14979:28:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14964:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14964:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1034, + "nodeType": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1035, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1021, + "src": "15025:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1036, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "15029:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15025:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1027, + "id": 1038, + "nodeType": "Return", + "src": "15018:12:1" + } + ] + }, + "documentation": { + "id": 1019, + "nodeType": "StructuredDocumentation", + "src": "14429:453:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1040, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1021, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14900:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14900:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1023, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14911:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14899:22:1" + }, + "returnParameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1026, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14945:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14945:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14944:9:1" + }, + "scope": 1135, + "src": "14887:150:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1061, + "nodeType": "Block", + "src": "15557:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1051, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15575:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15579:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15582:26:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 1050, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "15567:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15567:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1056, + "nodeType": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1057, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1043, + "src": "15626:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1058, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15630:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15626:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1049, + "id": 1060, + "nodeType": "Return", + "src": "15619:12:1" + } + ] + }, + "documentation": { + "id": 1041, + "nodeType": "StructuredDocumentation", + "src": "15043:442:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1062, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1043, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15503:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1045, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15514:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15502:22:1" + }, + "returnParameters": { + "id": 1049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1048, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15548:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15548:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15547:9:1" + }, + "scope": 1135, + "src": "15490:148:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1085, + "nodeType": "Block", + "src": "16197:68:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16215:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1076, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16220:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16215:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1078, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "16223:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1074, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "16207:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16207:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1080, + "nodeType": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16253:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1082, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16257:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16253:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1073, + "id": 1084, + "nodeType": "Return", + "src": "16246:12:1" + } + ] + }, + "documentation": { + "id": 1063, + "nodeType": "StructuredDocumentation", + "src": "15644:453:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1086, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16115:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16115:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16126:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16137:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1068, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16137:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16114:50:1" + }, + "returnParameters": { + "id": 1073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16188:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16188:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16187:9:1" + }, + "scope": 1135, + "src": "16102:163:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1109, + "nodeType": "Block", + "src": "17017:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1099, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17035:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17039:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17035:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1102, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1093, + "src": "17042:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17027:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17027:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1105, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "17072:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1106, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17076:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17072:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1097, + "id": 1108, + "nodeType": "Return", + "src": "17065:12:1" + } + ] + }, + "documentation": { + "id": 1087, + "nodeType": "StructuredDocumentation", + "src": "16271:646:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16935:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16935:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16946:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16946:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1093, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16957:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1092, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16957:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16934:50:1" + }, + "returnParameters": { + "id": 1097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1096, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "17008:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17008:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17007:9:1" + }, + "scope": 1135, + "src": "16922:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1133, + "nodeType": "Block", + "src": "17825:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1123, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17843:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17847:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17843:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1126, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "17850:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17835:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1128, + "nodeType": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1129, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "17880:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1130, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17880:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1121, + "id": 1132, + "nodeType": "Return", + "src": "17873:12:1" + } + ] + }, + "documentation": { + "id": 1111, + "nodeType": "StructuredDocumentation", + "src": "17090:635:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17743:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17743:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17754:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17754:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17765:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1116, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17765:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17742:50:1" + }, + "returnParameters": { + "id": 1121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17816:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17816:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17815:9:1" + }, + "scope": 1135, + "src": "17730:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "11300:6594:1" + }, + { + "id": 1136, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "17947:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1137, + "nodeType": "StructuredDocumentation", + "src": "17980:67:1", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 1430, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1153, + "nodeType": "Block", + "src": "18706:347:1", + "statements": [ + { + "assignments": [ + 1146 + ], + "declarations": [ + { + "constant": false, + "id": 1146, + "mutability": "mutable", + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 1153, + "src": "18903:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18903:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1147, + "nodeType": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "18990:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18992:28:1", + "value": { + "arguments": [ + { + "name": "account", + "nodeType": "YulIdentifier", + "src": "19012:7:1" + } + ], + "functionName": { + "name": "extcodesize", + "nodeType": "YulIdentifier", + "src": "19000:11:1" + }, + "nodeType": "YulFunctionCall", + "src": "19000:20:1" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "18992:4:1" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "id": 1148, + "nodeType": "InlineAssembly", + "src": "18981:41:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1149, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "19038:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19045:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19038:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1144, + "id": 1152, + "nodeType": "Return", + "src": "19031:15:1" + } + ] + }, + "documentation": { + "id": 1138, + "nodeType": "StructuredDocumentation", + "src": "18070:565:1", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1154, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1140, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18660:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18660:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18659:17:1" + }, + "returnParameters": { + "id": 1144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1143, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18700:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1142, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18700:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "18699:6:1" + }, + "scope": 1430, + "src": "18640:413:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1187, + "nodeType": "Block", + "src": "20041:320:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1165, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "20067:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20059:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1163, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20059:7:1", + "typeDescriptions": {} + } + }, + "id": 1166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20059:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "20059:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1168, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20084:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20059:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20092:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 1162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20051:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1172, + "nodeType": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "assignments": [ + 1174, + null + ], + "declarations": [ + { + "constant": false, + "id": 1174, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1187, + "src": "20213:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1173, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20213:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1181, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20263:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 1175, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1157, + "src": "20231:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "20231:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1177, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20254:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "20231:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20231:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1183, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "20284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20293:60:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 1182, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20276:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20276:78:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1186, + "nodeType": "ExpressionStatement", + "src": "20276:78:1" + } + ] + }, + "documentation": { + "id": 1155, + "nodeType": "StructuredDocumentation", + "src": "19059:906:1", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1188, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1157, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "19989:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19989:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1159, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "20016:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19988:43:1" + }, + "returnParameters": { + "id": 1161, + "nodeType": "ParameterList", + "parameters": [], + "src": "20041:0:1" + }, + "scope": 1430, + "src": "19970:391:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1204, + "nodeType": "Block", + "src": "21191:82:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1199, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "21219:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1200, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "21227:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21233:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 1198, + "name": "functionCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "src": "21206:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21206:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1197, + "id": 1203, + "nodeType": "Return", + "src": "21199:67:1" + } + ] + }, + "documentation": { + "id": 1189, + "nodeType": "StructuredDocumentation", + "src": "20367:730:1", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1205, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21124:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21124:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21140:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1192, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21140:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21123:35:1" + }, + "returnParameters": { + "id": 1197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1196, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21177:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1195, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21176:14:1" + }, + "scope": 1430, + "src": "21102:171:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1224, + "nodeType": "Block", + "src": "21612:76:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1218, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "21651:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1219, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "21659:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21665:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 1221, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "21668:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1217, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "21629:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21629:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1216, + "id": 1223, + "nodeType": "Return", + "src": "21622:59:1" + } + ] + }, + "documentation": { + "id": 1206, + "nodeType": "StructuredDocumentation", + "src": "21279:211:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1208, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21517:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21517:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21533:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1209, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21533:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1212, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21552:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1211, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "21552:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "21516:63:1" + }, + "returnParameters": { + "id": 1216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1215, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21598:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1214, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21598:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21597:14:1" + }, + "scope": 1430, + "src": "21495:193:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1244, + "nodeType": "Block", + "src": "22163:111:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1238, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "22202:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1239, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "22210:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1240, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1232, + "src": "22216:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22223:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 1237, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "22180:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22180:87:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1236, + "id": 1243, + "nodeType": "Return", + "src": "22173:94:1" + } + ] + }, + "documentation": { + "id": 1226, + "nodeType": "StructuredDocumentation", + "src": "21694:351:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1245, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1228, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22081:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22081:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1230, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22097:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1229, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22097:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1232, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22116:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "22080:50:1" + }, + "returnParameters": { + "id": 1236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1235, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22149:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1234, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22149:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22148:14:1" + }, + "scope": 1430, + "src": "22050:224:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1294, + "nodeType": "Block", + "src": "22663:382:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1262, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "22689:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22681:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22681:7:1", + "typeDescriptions": {} + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22681:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "22681:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1265, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22706:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22681:30:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 1267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22713:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 1259, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22673:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22673:81:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1269, + "nodeType": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1272, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22783:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1271, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "22772:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22772:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22792:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 1270, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22764:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22764:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1276, + "nodeType": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "assignments": [ + 1278, + 1280 + ], + "declarations": [ + { + "constant": false, + "id": 1278, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22895:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1277, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22895:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1280, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22909:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1279, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22909:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1287, + "initialValue": { + "arguments": [ + { + "id": 1285, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1250, + "src": "22964:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1281, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22936:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "22936:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1283, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22956:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "22936:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22936:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1289, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "23004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1290, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1280, + "src": "23013:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1291, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "23025:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1288, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "22986:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22986:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1258, + "id": 1293, + "nodeType": "Return", + "src": "22979:59:1" + } + ] + }, + "documentation": { + "id": 1246, + "nodeType": "StructuredDocumentation", + "src": "22280:237:1", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1295, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1248, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22553:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22553:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1250, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22569:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1249, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22569:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1252, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22588:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22588:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1254, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22603:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1253, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "22603:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "22552:78:1" + }, + "returnParameters": { + "id": 1258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1257, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22649:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1256, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22649:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22648:14:1" + }, + "scope": 1430, + "src": "22522:523:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1311, + "nodeType": "Block", + "src": "23322:97:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1306, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1298, + "src": "23358:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1307, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "23366:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23372:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 1305, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "src": "23339:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23339:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1304, + "id": 1310, + "nodeType": "Return", + "src": "23332:80:1" + } + ] + }, + "documentation": { + "id": 1296, + "nodeType": "StructuredDocumentation", + "src": "23051:166:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1298, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23250:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23250:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23266:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1299, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23266:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23249:35:1" + }, + "returnParameters": { + "id": 1304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1303, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23308:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23308:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23307:14:1" + }, + "scope": 1430, + "src": "23222:197:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1346, + "nodeType": "Block", + "src": "23731:288:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1326, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1325, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "23749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23749:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23769:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + }, + "value": "Address: static call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "id": 1324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "23741:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23741:67:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1330, + "nodeType": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "assignments": [ + 1332, + 1334 + ], + "declarations": [ + { + "constant": false, + "id": 1332, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23879:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1331, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23879:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1334, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23893:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1333, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23893:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1339, + "initialValue": { + "arguments": [ + { + "id": 1337, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "23938:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1335, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23920:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "23920:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23920:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1341, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "23978:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1342, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1334, + "src": "23987:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1343, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "23999:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1340, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "23960:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23960:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1323, + "id": 1345, + "nodeType": "Return", + "src": "23953:59:1" + } + ] + }, + "documentation": { + "id": 1313, + "nodeType": "StructuredDocumentation", + "src": "23425:173:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1315, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23631:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23631:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1317, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23647:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1316, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23647:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1319, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23666:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1318, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "23666:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "23630:63:1" + }, + "returnParameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1322, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23717:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1321, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23717:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23716:14:1" + }, + "scope": 1430, + "src": "23603:416:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1363, + "nodeType": "Block", + "src": "24295:101:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1358, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "24333:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1359, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "24341:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24347:41:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 1357, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "src": "24312:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24312:77:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1356, + "id": 1362, + "nodeType": "Return", + "src": "24305:84:1" + } + ] + }, + "documentation": { + "id": 1348, + "nodeType": "StructuredDocumentation", + "src": "24025:168:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1364, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1350, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24228:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24244:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1351, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24227:35:1" + }, + "returnParameters": { + "id": 1356, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1355, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24281:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1354, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24281:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24280:14:1" + }, + "scope": 1430, + "src": "24198:198:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1398, + "nodeType": "Block", + "src": "24707:292:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1378, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24736:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1377, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "24725:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24725:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24745:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + }, + "value": "Address: delegate call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "id": 1376, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "24717:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24717:69:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1382, + "nodeType": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "assignments": [ + 1384, + 1386 + ], + "declarations": [ + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24857:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1383, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "24857:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24871:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1385, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24871:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1391, + "initialValue": { + "arguments": [ + { + "id": 1389, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1369, + "src": "24918:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1387, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "24898:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24898:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1393, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1384, + "src": "24958:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1394, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1386, + "src": "24967:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1395, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1371, + "src": "24979:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1392, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "24940:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24940:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1375, + "id": 1397, + "nodeType": "Return", + "src": "24933:59:1" + } + ] + }, + "documentation": { + "id": 1365, + "nodeType": "StructuredDocumentation", + "src": "24402:175:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1399, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1367, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24612:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24612:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1369, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24628:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1368, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24628:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1371, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24647:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1370, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "24647:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "24611:63:1" + }, + "returnParameters": { + "id": 1375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1374, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24693:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1373, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24693:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24692:14:1" + }, + "scope": 1430, + "src": "24582:417:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1428, + "nodeType": "Block", + "src": "25134:596:1", + "statements": [ + { + "condition": { + "id": 1410, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "25148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1426, + "nodeType": "Block", + "src": "25205:519:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1414, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25289:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "25289:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25309:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25289:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1424, + "nodeType": "Block", + "src": "25661:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1421, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1405, + "src": "25686:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1420, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "25679:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25679:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1423, + "nodeType": "ExpressionStatement", + "src": "25679:20:1" + } + ] + }, + "id": 1425, + "nodeType": "IfStatement", + "src": "25285:429:1", + "trueBody": { + "id": 1419, + "nodeType": "Block", + "src": "25312:343:1", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "25496:145:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "25518:40:1", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25547:10:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "25541:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "25541:17:1" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "25522:15:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25590:2:1", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25594:10:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25586:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "25586:19:1" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "25607:15:1" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "25579:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "25579:44:1" + }, + "nodeType": "YulExpressionStatement", + "src": "25579:44:1" + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "id": 1418, + "nodeType": "InlineAssembly", + "src": "25487:154:1" + } + ] + } + } + ] + }, + "id": 1427, + "nodeType": "IfStatement", + "src": "25144:580:1", + "trueBody": { + "id": 1413, + "nodeType": "Block", + "src": "25157:42:1", + "statements": [ + { + "expression": { + "id": 1411, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25178:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1409, + "id": 1412, + "nodeType": "Return", + "src": "25171:17:1" + } + ] + } + } + ] + }, + "id": 1429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1401, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25032:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1400, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "25032:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1403, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25046:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1402, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25046:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1405, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25071:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1404, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "25071:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "25031:67:1" + }, + "returnParameters": { + "id": 1409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1408, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25120:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1407, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25120:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "25119:14:1" + }, + "scope": 1430, + "src": "25005:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3499, + "src": "18048:7684:1" + }, + { + "id": 1431, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "25791:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1432, + "nodeType": "StructuredDocumentation", + "src": "25824:686:1", + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "fullyImplemented": true, + "id": 1921, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableSet.Set", + "id": 1440, + "members": [ + { + "constant": false, + "id": 1435, + "mutability": "mutable", + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27033:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1433, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27033:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1434, + "nodeType": "ArrayTypeName", + "src": "27033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1439, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27184:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1438, + "keyType": { + "id": 1436, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "27184:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "26979:249:1", + "visibility": "public" + }, + { + "body": { + "id": 1480, + "nodeType": "Block", + "src": "27467:335:1", + "statements": [ + { + "condition": { + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "27481:22:1", + "subExpression": { + "arguments": [ + { + "id": 1451, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27492:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + { + "id": 1452, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27497:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1450, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "27482:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27482:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1478, + "nodeType": "Block", + "src": "27759:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27780:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1449, + "id": 1477, + "nodeType": "Return", + "src": "27773:12:1" + } + ] + }, + "id": 1479, + "nodeType": "IfStatement", + "src": "27477:319:1", + "trueBody": { + "id": 1475, + "nodeType": "Block", + "src": "27505:248:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1460, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27536:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "expression": { + "id": 1455, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1458, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27519:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "27519:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 1461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27519:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1462, + "nodeType": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "expression": { + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1463, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27677:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "27677:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1467, + "indexExpression": { + "id": 1465, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27690:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "27677:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1468, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27699:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1469, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27699:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "27699:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27677:40:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1472, + "nodeType": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27738:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1449, + "id": 1474, + "nodeType": "Return", + "src": "27731:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1441, + "nodeType": "StructuredDocumentation", + "src": "27234:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1481, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27412:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1442, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27412:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1445, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27429:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1444, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27411:32:1" + }, + "returnParameters": { + "id": 1449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1447, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "27461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "27460:6:1" + }, + "scope": 1921, + "src": "27398:404:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1560, + "nodeType": "Block", + "src": "28042:1440:1", + "statements": [ + { + "assignments": [ + 1492 + ], + "declarations": [ + { + "constant": false, + "id": 1492, + "mutability": "mutable", + "name": "valueIndex", + "nodeType": "VariableDeclaration", + "scope": 1560, + "src": "28152:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28152:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1497, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1493, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28173:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1494, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "28173:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1496, + "indexExpression": { + "id": 1495, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "28186:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28173:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1498, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28207:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28221:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28207:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1558, + "nodeType": "Block", + "src": "29439:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29460:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1490, + "id": 1557, + "nodeType": "Return", + "src": "29453:12:1" + } + ] + }, + "id": 1559, + "nodeType": "IfStatement", + "src": "28203:1273:1", + "trueBody": { + "id": 1555, + "nodeType": "Block", + "src": "28224:1209:1", + "statements": [ + { + "assignments": [ + 1502 + ], + "declarations": [ + { + "constant": false, + "id": 1502, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28564:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28564:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1506, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1503, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28588:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28588:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "assignments": [ + 1508 + ], + "declarations": [ + { + "constant": false, + "id": 1508, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28616:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28616:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1514, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1509, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28636:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28636:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "28636:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28657:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28636:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "assignments": [ + 1516 + ], + "declarations": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "lastvalue", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28898:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1515, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28898:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1521, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1517, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28918:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1520, + "indexExpression": { + "id": 1519, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "28930:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28918:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "expression": { + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1522, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29032:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1525, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29032:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1526, + "indexExpression": { + "id": 1524, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29044:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29032:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1527, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29061:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "29032:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1529, + "nodeType": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "expression": { + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1530, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29136:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1533, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29136:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1534, + "indexExpression": { + "id": 1532, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29149:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29136:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1535, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29162:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29178:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "29162:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29136:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1539, + "nodeType": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 1540, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29285:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "29285:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29285:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1546, + "nodeType": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "expression": { + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "29370:26:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 1547, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29377:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29377:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1550, + "indexExpression": { + "id": 1549, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "29390:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29377:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1552, + "nodeType": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29418:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1490, + "id": 1554, + "nodeType": "Return", + "src": "29411:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1482, + "nodeType": "StructuredDocumentation", + "src": "27808:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1561, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "27987:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1483, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27987:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1486, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28004:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1485, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27986:32:1" + }, + "returnParameters": { + "id": 1490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28036:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1488, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "28036:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "28035:6:1" + }, + "scope": 1921, + "src": "27970:1512:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1578, + "nodeType": "Block", + "src": "29642:48:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 1571, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "29659:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29659:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1574, + "indexExpression": { + "id": 1573, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "29672:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29659:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29682:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "29659:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1570, + "id": 1577, + "nodeType": "Return", + "src": "29652:31:1" + } + ] + }, + "documentation": { + "id": 1562, + "nodeType": "StructuredDocumentation", + "src": "29488:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1579, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1564, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29582:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1563, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29582:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29599:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1565, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "29599:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "29581:32:1" + }, + "returnParameters": { + "id": 1570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29636:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "29636:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "29635:6:1" + }, + "scope": 1921, + "src": "29563:127:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1591, + "nodeType": "Block", + "src": "29836:42:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 1587, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1582, + "src": "29853:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1588, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29853:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "29853:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1586, + "id": 1590, + "nodeType": "Return", + "src": "29846:25:1" + } + ] + }, + "documentation": { + "id": 1580, + "nodeType": "StructuredDocumentation", + "src": "29696:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1582, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29788:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1581, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29788:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "src": "29787:17:1" + }, + "returnParameters": { + "id": 1586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1585, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29827:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29826:9:1" + }, + "scope": 1921, + "src": "29771:107:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1616, + "nodeType": "Block", + "src": "30286:125:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1603, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30304:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30304:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "30304:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1606, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30325:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30304:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30332:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + }, + "value": "EnumerableSet: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "id": 1602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "30296:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30296:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1610, + "nodeType": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 1611, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30386:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30386:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1614, + "indexExpression": { + "id": 1613, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30398:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30386:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1601, + "id": 1615, + "nodeType": "Return", + "src": "30379:25:1" + } + ] + }, + "documentation": { + "id": 1593, + "nodeType": "StructuredDocumentation", + "src": "29883:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1617, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1595, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30223:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1594, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30223:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30240:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30240:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30222:32:1" + }, + "returnParameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1600, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30277:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1599, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30276:9:1" + }, + "scope": 1921, + "src": "30210:201:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableSet.Bytes32Set", + "id": 1620, + "members": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "30464:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1618, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30464:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "30436:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1636, + "nodeType": "Block", + "src": "30727:47:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1631, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "30749:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "30749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1625, + "src": "30761:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1630, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "30744:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30744:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1629, + "id": 1635, + "nodeType": "Return", + "src": "30737:30:1" + } + ] + }, + "documentation": { + "id": 1621, + "nodeType": "StructuredDocumentation", + "src": "30487:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30664:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1622, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30664:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30688:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1624, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30688:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30663:39:1" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30721:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "30721:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "30720:6:1" + }, + "scope": 1921, + "src": "30651:123:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1653, + "nodeType": "Block", + "src": "31021:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1648, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "31046:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31046:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1650, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "31058:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1647, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "31038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31038:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1646, + "id": 1652, + "nodeType": "Return", + "src": "31031:33:1" + } + ] + }, + "documentation": { + "id": 1638, + "nodeType": "StructuredDocumentation", + "src": "30780:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1654, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30958:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1639, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30958:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30982:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1641, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30982:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30957:39:1" + }, + "returnParameters": { + "id": 1646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1645, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "31015:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31015:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31014:6:1" + }, + "scope": 1921, + "src": "30942:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1670, + "nodeType": "Block", + "src": "31238:52:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1665, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1657, + "src": "31265:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31265:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1667, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1659, + "src": "31277:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1664, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "31255:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31255:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1663, + "id": 1669, + "nodeType": "Return", + "src": "31248:35:1" + } + ] + }, + "documentation": { + "id": 1655, + "nodeType": "StructuredDocumentation", + "src": "31077:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1671, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1657, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31170:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1656, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31170:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31194:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1658, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31194:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31169:39:1" + }, + "returnParameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1662, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31232:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1661, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31232:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31231:6:1" + }, + "scope": 1921, + "src": "31152:138:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "31443:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1680, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1674, + "src": "31468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1681, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31468:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1679, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "31460:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31460:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1678, + "id": 1683, + "nodeType": "Return", + "src": "31453:26:1" + } + ] + }, + "documentation": { + "id": 1672, + "nodeType": "StructuredDocumentation", + "src": "31296:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1685, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1674, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31387:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1673, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + } + ], + "src": "31386:24:1" + }, + "returnParameters": { + "id": 1678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31434:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31434:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31433:9:1" + }, + "scope": 1921, + "src": "31371:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1701, + "nodeType": "Block", + "src": "31901:46:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1696, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1688, + "src": "31922:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1697, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31922:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1698, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "31934:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1695, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "31918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31918:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1694, + "id": 1700, + "nodeType": "Return", + "src": "31911:29:1" + } + ] + }, + "documentation": { + "id": 1686, + "nodeType": "StructuredDocumentation", + "src": "31491:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1688, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31830:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1687, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31830:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1690, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31854:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31854:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31829:39:1" + }, + "returnParameters": { + "id": 1694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31892:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1692, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31892:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31891:9:1" + }, + "scope": 1921, + "src": "31818:129:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.AddressSet", + "id": 1705, + "members": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1705, + "src": "32000:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1703, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "32000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "31972:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1730, + "nodeType": "Block", + "src": "32263:74:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1716, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1708, + "src": "32285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32285:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "32321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32313:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1722, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32313:7:1", + "typeDescriptions": {} + } + }, + "id": 1725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32313:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32305:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1720, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32305:7:1", + "typeDescriptions": {} + } + }, + "id": 1726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32305:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1718, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32297:7:1", + "typeDescriptions": {} + } + }, + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32297:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1715, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "32280:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32280:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1714, + "id": 1729, + "nodeType": "Return", + "src": "32273:57:1" + } + ] + }, + "documentation": { + "id": 1706, + "nodeType": "StructuredDocumentation", + "src": "32023:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1731, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1708, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32200:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1707, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32200:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32224:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32224:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32199:39:1" + }, + "returnParameters": { + "id": 1714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1713, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32257:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1712, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32257:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32256:6:1" + }, + "scope": 1921, + "src": "32187:150:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1756, + "nodeType": "Block", + "src": "32584:77:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1742, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "32609:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1743, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32609:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1750, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "32645:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32637:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1748, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32637:7:1", + "typeDescriptions": {} + } + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32637:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32629:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32629:7:1", + "typeDescriptions": {} + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32629:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32621:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1744, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32621:7:1", + "typeDescriptions": {} + } + }, + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32621:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1741, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "32601:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32601:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1740, + "id": 1755, + "nodeType": "Return", + "src": "32594:60:1" + } + ] + }, + "documentation": { + "id": 1732, + "nodeType": "StructuredDocumentation", + "src": "32343:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1757, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1734, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32521:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1733, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32521:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1736, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32545:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32545:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32520:39:1" + }, + "returnParameters": { + "id": 1740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1739, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32578:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1738, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32578:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32577:6:1" + }, + "scope": 1921, + "src": "32505:156:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1782, + "nodeType": "Block", + "src": "32828:79:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1768, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1760, + "src": "32855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1776, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1762, + "src": "32891:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1774, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32883:7:1", + "typeDescriptions": {} + } + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32883:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32875:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32875:7:1", + "typeDescriptions": {} + } + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32875:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1770, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32867:7:1", + "typeDescriptions": {} + } + }, + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32867:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1767, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "32845:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32845:55:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1766, + "id": 1781, + "nodeType": "Return", + "src": "32838:62:1" + } + ] + }, + "documentation": { + "id": 1758, + "nodeType": "StructuredDocumentation", + "src": "32667:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1783, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1760, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32760:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1759, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32760:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1762, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32784:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32784:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32759:39:1" + }, + "returnParameters": { + "id": 1766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1765, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32822:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1764, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32822:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32821:6:1" + }, + "scope": 1921, + "src": "32742:165:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1796, + "nodeType": "Block", + "src": "33060:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1792, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1786, + "src": "33085:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33085:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1791, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "33077:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33077:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1790, + "id": 1795, + "nodeType": "Return", + "src": "33070:26:1" + } + ] + }, + "documentation": { + "id": 1784, + "nodeType": "StructuredDocumentation", + "src": "32913:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1797, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1786, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33004:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1785, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33004:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + } + ], + "src": "33003:24:1" + }, + "returnParameters": { + "id": 1790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1789, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33050:9:1" + }, + "scope": 1921, + "src": "32988:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1822, + "nodeType": "Block", + "src": "33518:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1814, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "33563:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33563:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1816, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "33575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1813, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "33559:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33559:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33551:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33551:7:1", + "typeDescriptions": {} + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33551:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33543:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1809, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "33543:7:1", + "typeDescriptions": {} + } + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33543:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33535:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33535:7:1", + "typeDescriptions": {} + } + }, + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33535:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 1806, + "id": 1821, + "nodeType": "Return", + "src": "33528:56:1" + } + ] + }, + "documentation": { + "id": 1798, + "nodeType": "StructuredDocumentation", + "src": "33108:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1823, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1800, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33447:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1799, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33447:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1802, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33471:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33471:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33446:39:1" + }, + "returnParameters": { + "id": 1806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33509:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33509:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "33508:9:1" + }, + "scope": 1921, + "src": "33435:156:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.UintSet", + "id": 1826, + "members": [ + { + "constant": false, + "id": 1825, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1826, + "src": "33639:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1824, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "33639:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "UintSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "33614:42:1", + "visibility": "public" + }, + { + "body": { + "id": 1845, + "nodeType": "Block", + "src": "33899:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1837, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1829, + "src": "33921:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "33921:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1841, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "33941:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33933:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1839, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "33933:7:1", + "typeDescriptions": {} + } + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33933:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1836, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "33916:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33916:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1835, + "id": 1844, + "nodeType": "Return", + "src": "33909:39:1" + } + ] + }, + "documentation": { + "id": 1827, + "nodeType": "StructuredDocumentation", + "src": "33662:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1846, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1829, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33839:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1828, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "33839:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1831, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33860:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33860:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33838:36:1" + }, + "returnParameters": { + "id": 1835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1834, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33893:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1833, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "33893:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "33892:6:1" + }, + "scope": 1921, + "src": "33826:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1865, + "nodeType": "Block", + "src": "34199:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1857, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1849, + "src": "34224:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34224:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1861, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "34244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34236:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1859, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34236:7:1", + "typeDescriptions": {} + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34236:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1856, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "34216:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34216:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1855, + "id": 1864, + "nodeType": "Return", + "src": "34209:42:1" + } + ] + }, + "documentation": { + "id": 1847, + "nodeType": "StructuredDocumentation", + "src": "33961:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1849, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34139:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1848, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34139:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1851, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34160:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34138:36:1" + }, + "returnParameters": { + "id": 1855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1854, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34193:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1853, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34193:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34192:6:1" + }, + "scope": 1921, + "src": "34123:135:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1885, + "nodeType": "Block", + "src": "34422:61:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1877, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1869, + "src": "34449:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34449:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1881, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "34469:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1879, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34461:7:1", + "typeDescriptions": {} + } + }, + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34461:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1876, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "34439:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34439:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1875, + "id": 1884, + "nodeType": "Return", + "src": "34432:44:1" + } + ] + }, + "documentation": { + "id": 1867, + "nodeType": "StructuredDocumentation", + "src": "34264:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1886, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1869, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34357:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1868, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34378:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34378:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34356:36:1" + }, + "returnParameters": { + "id": 1875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1874, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34416:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1873, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34416:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34415:6:1" + }, + "scope": 1921, + "src": "34339:144:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1899, + "nodeType": "Block", + "src": "34633:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1895, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1889, + "src": "34658:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34658:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1894, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "34650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34650:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1893, + "id": 1898, + "nodeType": "Return", + "src": "34643:26:1" + } + ] + }, + "documentation": { + "id": 1887, + "nodeType": "StructuredDocumentation", + "src": "34489:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1900, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1889, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34580:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1888, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + } + ], + "src": "34579:21:1" + }, + "returnParameters": { + "id": 1893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34624:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34623:9:1" + }, + "scope": 1921, + "src": "34564:112:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1919, + "nodeType": "Block", + "src": "35088:55:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1913, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "35117:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "35117:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1915, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1905, + "src": "35129:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1912, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "35113:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35113:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "35105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35105:7:1", + "typeDescriptions": {} + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35105:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1909, + "id": 1918, + "nodeType": "Return", + "src": "35098:38:1" + } + ] + }, + "documentation": { + "id": 1901, + "nodeType": "StructuredDocumentation", + "src": "34681:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1920, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35020:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1902, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "35020:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1905, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35041:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35041:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35019:36:1" + }, + "returnParameters": { + "id": 1909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1908, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35079:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1907, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35079:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35078:9:1" + }, + "scope": 1921, + "src": "35008:135:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "26511:8634:1" + }, + { + "id": 1922, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "35204:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1923, + "nodeType": "StructuredDocumentation", + "src": "35237:705:1", + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "fullyImplemented": true, + "id": 2480, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableMap.MapEntry", + "id": 1928, + "members": [ + { + "constant": false, + "id": 1925, + "mutability": "mutable", + "name": "_key", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36455:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1924, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1927, + "mutability": "mutable", + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36477:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1926, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36477:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "MapEntry", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36429:69:1", + "visibility": "public" + }, + { + "canonicalName": "EnumerableMap.Map", + "id": 1936, + "members": [ + { + "constant": false, + "id": 1931, + "mutability": "mutable", + "name": "_entries", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36567:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + }, + "typeName": { + "baseType": { + "id": 1929, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "36567:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "id": 1930, + "nodeType": "ArrayTypeName", + "src": "36567:10:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1935, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36736:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1934, + "keyType": { + "id": 1932, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "36736:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "36756:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Map", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36504:276:1", + "visibility": "public" + }, + { + "body": { + "id": 1997, + "nodeType": "Block", + "src": "37089:596:1", + "statements": [ + { + "assignments": [ + 1949 + ], + "declarations": [ + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 1997, + "src": "37197:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "37197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1954, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1950, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1953, + "indexExpression": { + "id": 1952, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37229:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37216:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1955, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37248:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37260:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "37248:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1995, + "nodeType": "Block", + "src": "37587:92:1", + "statements": [ + { + "expression": { + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 1982, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37601:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1987, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37601:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1988, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1984, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37614:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37625:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "37614:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37601:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 1989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "37601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1990, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37637:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "37601:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1992, + "nodeType": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37663:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1947, + "id": 1994, + "nodeType": "Return", + "src": "37656:12:1" + } + ] + }, + "id": 1996, + "nodeType": "IfStatement", + "src": "37244:435:1", + "trueBody": { + "id": 1981, + "nodeType": "Block", + "src": "37263:318:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1964, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37349:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1965, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37362:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1963, + "name": "MapEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1928, + "src": "37332:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_MapEntry_$1928_storage_ptr_$", + "typeString": "type(struct EnumerableMap.MapEntry storage pointer)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "nodeType": "FunctionCall", + "src": "37332:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "expression": { + "expression": { + "id": 1958, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37314:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37314:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "37314:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$1928_storage_$returns$__$", + "typeString": "function (struct EnumerableMap.MapEntry storage ref)" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37314:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1968, + "nodeType": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "expression": { + "id": 1977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1969, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37506:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37506:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1973, + "indexExpression": { + "id": 1971, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "37506:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1974, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37526:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37526:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "37526:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37506:39:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1978, + "nodeType": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37566:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1947, + "id": 1980, + "nodeType": "Return", + "src": "37559:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1937, + "nodeType": "StructuredDocumentation", + "src": "36786:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1998, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37021:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 1938, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37021:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37038:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1940, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1943, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1942, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37020:45:1" + }, + "returnParameters": { + "id": 1947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1946, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37083:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1945, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37083:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37082:6:1" + }, + "scope": 2480, + "src": "37007:678:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2078, + "nodeType": "Block", + "src": "37923:1447:1", + "statements": [ + { + "assignments": [ + 2009 + ], + "declarations": [ + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2078, + "src": "38031:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2014, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2010, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38050:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2011, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "38050:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2013, + "indexExpression": { + "id": 2012, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "38063:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38050:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2015, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38082:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38094:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "38082:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2076, + "nodeType": "Block", + "src": "39327:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39348:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2007, + "id": 2075, + "nodeType": "Return", + "src": "39341:12:1" + } + ] + }, + "id": 2077, + "nodeType": "IfStatement", + "src": "38078:1286:1", + "trueBody": { + "id": 2073, + "nodeType": "Block", + "src": "38097:1224:1", + "statements": [ + { + "assignments": [ + 2019 + ], + "declarations": [ + { + "constant": false, + "id": 2019, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38438:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2023, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2020, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38462:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38473:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38462:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "assignments": [ + 2025 + ], + "declarations": [ + { + "constant": false, + "id": 2025, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38488:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38488:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2031, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2026, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38508:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38508:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "38508:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38530:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38508:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "assignments": [ + 2033 + ], + "declarations": [ + { + "constant": false, + "id": 2033, + "mutability": "mutable", + "name": "lastEntry", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38771:26:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2032, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "38771:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2038, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2034, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38800:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38800:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2037, + "indexExpression": { + "id": 2036, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2025, + "src": "38813:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38800:23:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "expression": { + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2039, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38915:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38915:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2043, + "indexExpression": { + "id": 2041, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "38928:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "38915:27:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2044, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "38945:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "src": "38915:39:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2046, + "nodeType": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2047, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2051, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39020:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2052, + "indexExpression": { + "expression": { + "id": 2049, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "39033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "39033:14:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39020:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2053, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "39051:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39067:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "39051:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39020:48:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 2058, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39174:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2061, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39174:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "39174:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "39174:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2064, + "nodeType": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "expression": { + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "39260:24:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 2065, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39267:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2066, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39267:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2068, + "indexExpression": { + "id": 2067, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "39280:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39267:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2070, + "nodeType": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39306:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2007, + "id": 2072, + "nodeType": "Return", + "src": "39299:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1999, + "nodeType": "StructuredDocumentation", + "src": "37691:157:1", + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2079, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2001, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37870:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2000, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37870:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37887:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2002, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37887:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37869:30:1" + }, + "returnParameters": { + "id": 2007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2006, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37917:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2005, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37917:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37916:6:1" + }, + "scope": 2480, + "src": "37853:1517:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2096, + "nodeType": "Block", + "src": "39526:46:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 2089, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2082, + "src": "39543:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2090, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39543:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2092, + "indexExpression": { + "id": 2091, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2084, + "src": "39556:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "39543:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39564:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "39543:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2088, + "id": 2095, + "nodeType": "Return", + "src": "39536:29:1" + } + ] + }, + "documentation": { + "id": 2080, + "nodeType": "StructuredDocumentation", + "src": "39376:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2082, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39468:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2081, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2084, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39485:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2083, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "39485:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "39467:30:1" + }, + "returnParameters": { + "id": 2088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2087, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2086, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "39520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "39519:6:1" + }, + "scope": 2480, + "src": "39449:123:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2109, + "nodeType": "Block", + "src": "39727:43:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 2105, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "39744:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39744:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "39744:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2104, + "id": 2108, + "nodeType": "Return", + "src": "39737:26:1" + } + ] + }, + "documentation": { + "id": 2098, + "nodeType": "StructuredDocumentation", + "src": "39578:79:1", + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2100, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39679:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2099, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39679:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "src": "39678:17:1" + }, + "returnParameters": { + "id": 2104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2103, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39718:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "39718:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "39717:9:1" + }, + "scope": 2480, + "src": "39662:108:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2144, + "nodeType": "Block", + "src": "40198:189:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2123, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "40216:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2126, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40216:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40245:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + }, + "value": "EnumerableMap: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "id": 2122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "40208:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "40208:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2130, + "nodeType": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "assignments": [ + 2132 + ], + "declarations": [ + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "entry", + "nodeType": "VariableDeclaration", + "scope": 2144, + "src": "40293:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2131, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "40293:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2137, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2133, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40318:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40318:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2136, + "indexExpression": { + "id": 2135, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40331:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40318:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "expression": { + "components": [ + { + "expression": { + "id": 2138, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40355:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2139, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "40355:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 2140, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40367:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40367:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40354:26:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "functionReturnParameters": 2121, + "id": 2143, + "nodeType": "Return", + "src": "40347:33:1" + } + ] + }, + "documentation": { + "id": 2111, + "nodeType": "StructuredDocumentation", + "src": "39775:333:1", + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2145, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2113, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40126:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2112, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40126:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2115, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40143:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40143:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "40125:32:1" + }, + "returnParameters": { + "id": 2121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40180:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40180:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40189:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2119, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40189:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40179:18:1" + }, + "scope": 2480, + "src": "40113:274:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2182, + "nodeType": "Block", + "src": "40613:220:1", + "statements": [ + { + "assignments": [ + 2158 + ], + "declarations": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2182, + "src": "40623:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40623:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2163, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2159, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40642:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "40642:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2162, + "indexExpression": { + "id": 2161, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2150, + "src": "40655:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40642:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2164, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40673:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40685:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "40673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2171, + "nodeType": "IfStatement", + "src": "40669:36:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40696:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40703:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2169, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40695:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2156, + "id": 2170, + "nodeType": "Return", + "src": "40688:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40759:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 2173, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40765:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2174, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40765:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2178, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2175, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40778:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40789:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "40778:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40765:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40765:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2180, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40758:41:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "functionReturnParameters": 2156, + "id": 2181, + "nodeType": "Return", + "src": "40751:48:1" + } + ] + }, + "documentation": { + "id": 2146, + "nodeType": "StructuredDocumentation", + "src": "40393:131:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2183, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2151, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40546:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2147, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40546:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2150, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40563:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2149, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40563:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40545:30:1" + }, + "returnParameters": { + "id": 2156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2153, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40598:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2152, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "40598:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2155, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40604:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2154, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40604:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40597:15:1" + }, + "scope": 2480, + "src": "40529:304:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2215, + "nodeType": "Block", + "src": "41060:232:1", + "statements": [ + { + "assignments": [ + 2194 + ], + "declarations": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2215, + "src": "41070:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41070:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2199, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2195, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41089:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2196, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41089:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2198, + "indexExpression": { + "id": 2197, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2188, + "src": "41102:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41089:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2201, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41124:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41136:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41124:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "id": 2204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41139:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + }, + "value": "EnumerableMap: nonexistent key" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "id": 2200, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41116:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2206, + "nodeType": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2207, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41225:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2208, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41225:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2212, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2209, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41238:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41249:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41238:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41225:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2213, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41225:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2192, + "id": 2214, + "nodeType": "Return", + "src": "41218:40:1" + } + ] + }, + "documentation": { + "id": 2184, + "nodeType": "StructuredDocumentation", + "src": "40839:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2186, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "40999:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2185, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40999:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2188, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41016:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2187, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40998:30:1" + }, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2190, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41050:9:1" + }, + "scope": 2480, + "src": "40985:307:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2250, + "nodeType": "Block", + "src": "41677:212:1", + "statements": [ + { + "assignments": [ + 2229 + ], + "declarations": [ + { + "constant": false, + "id": 2229, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2250, + "src": "41687:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41687:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2234, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2230, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41706:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2231, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41706:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2233, + "indexExpression": { + "id": 2232, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "41719:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41706:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2236, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41741:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41753:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41741:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2239, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2223, + "src": "41756:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2235, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41733:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41733:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2241, + "nodeType": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2242, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41822:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41822:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2247, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2244, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41835:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41846:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41835:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41822:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41822:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2227, + "id": 2249, + "nodeType": "Return", + "src": "41815:40:1" + } + ] + }, + "documentation": { + "id": 2217, + "nodeType": "StructuredDocumentation", + "src": "41298:271:1", + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2251, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2219, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41588:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2218, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41588:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2221, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41605:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2220, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2223, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41618:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2222, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "41618:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "41587:58:1" + }, + "returnParameters": { + "id": 2227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2226, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41668:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2225, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41668:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41667:9:1" + }, + "scope": 2480, + "src": "41574:315:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableMap.UintToAddressMap", + "id": 2254, + "members": [ + { + "constant": false, + "id": 2253, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 2254, + "src": "41954:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2252, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41954:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "name": "UintToAddressMap", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "41920:51:1", + "visibility": "public" + }, + { + "body": { + "id": 2285, + "nodeType": "Block", + "src": "42293:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2267, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "42315:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42315:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2271, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2259, + "src": "42335:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42327:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2269, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42327:7:1", + "typeDescriptions": {} + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42327:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2279, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2261, + "src": "42365:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2277, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "42357:7:1", + "typeDescriptions": {} + } + }, + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42357:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42349:7:1", + "typeDescriptions": {} + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42349:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42341:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42341:7:1", + "typeDescriptions": {} + } + }, + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42341:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2266, + "name": "_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1998, + "src": "42310:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42310:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2265, + "id": 2284, + "nodeType": "Return", + "src": "42303:71:1" + } + ] + }, + "documentation": { + "id": 2255, + "nodeType": "StructuredDocumentation", + "src": "41977:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2286, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2257, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42211:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2256, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42211:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2259, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42241:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2258, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42241:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2261, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42254:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "42254:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "42210:58:1" + }, + "returnParameters": { + "id": 2265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2264, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42287:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2263, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42287:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42286:6:1" + }, + "scope": 2480, + "src": "42198:183:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2305, + "nodeType": "Block", + "src": "42623:57:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2297, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2289, + "src": "42648:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2298, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42648:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2301, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2291, + "src": "42668:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42660:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2299, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42660:7:1", + "typeDescriptions": {} + } + }, + "id": 2302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42660:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2296, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2079, + "src": "42640:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)" + } + }, + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42640:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2295, + "id": 2304, + "nodeType": "Return", + "src": "42633:40:1" + } + ] + }, + "documentation": { + "id": 2287, + "nodeType": "StructuredDocumentation", + "src": "42387:148:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2289, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42556:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2288, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42556:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2291, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42586:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42586:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42555:43:1" + }, + "returnParameters": { + "id": 2295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2294, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42617:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2293, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42617:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42616:6:1" + }, + "scope": 2480, + "src": "42540:140:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2325, + "nodeType": "Block", + "src": "42849:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2317, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2309, + "src": "42876:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42876:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2321, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "42896:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42888:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2319, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42888:7:1", + "typeDescriptions": {} + } + }, + "id": 2322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42888:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2316, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2097, + "src": "42866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42866:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2315, + "id": 2324, + "nodeType": "Return", + "src": "42859:42:1" + } + ] + }, + "documentation": { + "id": 2307, + "nodeType": "StructuredDocumentation", + "src": "42686:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2326, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2309, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42777:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2308, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42777:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2311, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42807:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42807:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42776:43:1" + }, + "returnParameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2314, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42843:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42843:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42842:6:1" + }, + "scope": 2480, + "src": "42759:149:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2339, + "nodeType": "Block", + "src": "43069:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2335, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2329, + "src": "43094:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43094:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "id": 2334, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2110, + "src": "43086:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)" + } + }, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43086:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2333, + "id": 2338, + "nodeType": "Return", + "src": "43079:26:1" + } + ] + }, + "documentation": { + "id": 2327, + "nodeType": "StructuredDocumentation", + "src": "42914:72:1", + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2340, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2329, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43007:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2328, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43007:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + } + ], + "src": "43006:30:1" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43060:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43059:9:1" + }, + "scope": 2480, + "src": "42991:121:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2378, + "nodeType": "Block", + "src": "43538:135:1", + "statements": [ + { + "assignments": [ + 2353, + 2355 + ], + "declarations": [ + { + "constant": false, + "id": 2353, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43549:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2352, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43549:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2355, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43562:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2354, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43562:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2361, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2357, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "43583:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2358, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "id": 2359, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "43595:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2356, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "43579:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)" + } + }, + "id": 2360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43579:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "expression": { + "components": [ + { + "arguments": [ + { + "id": 2364, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "43627:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43619:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43619:7:1", + "typeDescriptions": {} + } + }, + "id": 2365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43619:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2372, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2355, + "src": "43657:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43649:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43649:7:1", + "typeDescriptions": {} + } + }, + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43649:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43641:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2368, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "43641:7:1", + "typeDescriptions": {} + } + }, + "id": 2374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43641:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43633:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43633:7:1", + "typeDescriptions": {} + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43633:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2376, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43618:48:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$", + "typeString": "tuple(uint256,address payable)" + } + }, + "functionReturnParameters": 2351, + "id": 2377, + "nodeType": "Return", + "src": "43611:55:1" + } + ] + }, + "documentation": { + "id": 2341, + "nodeType": "StructuredDocumentation", + "src": "43117:318:1", + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2379, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43452:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2342, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43452:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2345, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43482:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43482:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43451:45:1" + }, + "returnParameters": { + "id": 2351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2348, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43520:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43520:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2350, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43529:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43529:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43519:18:1" + }, + "scope": 2480, + "src": "43440:233:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2417, + "nodeType": "Block", + "src": "43950:142:1", + "statements": [ + { + "assignments": [ + 2392, + 2394 + ], + "declarations": [ + { + "constant": false, + "id": 2392, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43961:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43961:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43975:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2393, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2403, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2396, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "44000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44000:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2400, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2384, + "src": "44020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44012:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2398, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44012:7:1", + "typeDescriptions": {} + } + }, + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44012:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2395, + "name": "_tryGet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2183, + "src": "43992:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)" + } + }, + "id": 2402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43992:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "expression": { + "components": [ + { + "id": 2404, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2392, + "src": "44043:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2411, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "44076:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44068:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44068:7:1", + "typeDescriptions": {} + } + }, + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44068:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2407, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44060:7:1", + "typeDescriptions": {} + } + }, + "id": 2413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44060:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44052:7:1", + "typeDescriptions": {} + } + }, + "id": 2414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44052:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2415, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44042:43:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_payable_$", + "typeString": "tuple(bool,address payable)" + } + }, + "functionReturnParameters": 2390, + "id": 2416, + "nodeType": "Return", + "src": "44035:50:1" + } + ] + }, + "documentation": { + "id": 2380, + "nodeType": "StructuredDocumentation", + "src": "43679:169:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2418, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2382, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43869:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2381, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43869:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2384, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43899:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43868:43:1" + }, + "returnParameters": { + "id": 2390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2387, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43935:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2386, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2389, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43941:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43941:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43934:15:1" + }, + "scope": 2480, + "src": "43853:239:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2446, + "nodeType": "Block", + "src": "44332:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2435, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "44378:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44378:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2439, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2423, + "src": "44398:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44390:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2437, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44390:7:1", + "typeDescriptions": {} + } + }, + "id": 2440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44390:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2434, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "src": "44373:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)" + } + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44373:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44365:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44365:7:1", + "typeDescriptions": {} + } + }, + "id": 2442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44365:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2430, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44357:7:1", + "typeDescriptions": {} + } + }, + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44357:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44349:7:1", + "typeDescriptions": {} + } + }, + "id": 2444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44349:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2427, + "id": 2445, + "nodeType": "Return", + "src": "44342:64:1" + } + ] + }, + "documentation": { + "id": 2419, + "nodeType": "StructuredDocumentation", + "src": "44098:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2447, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2421, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44257:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2420, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44257:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2423, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44287:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44287:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "44256:43:1" + }, + "returnParameters": { + "id": 2427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2426, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44323:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44323:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44322:9:1" + }, + "scope": 2480, + "src": "44244:169:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2478, + "nodeType": "Block", + "src": "44809:95:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2466, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2450, + "src": "44855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2467, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2470, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2452, + "src": "44875:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2468, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44867:7:1", + "typeDescriptions": {} + } + }, + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44867:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 2472, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "44881:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2465, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "src": "44850:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)" + } + }, + "id": 2473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44850:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44842:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44842:7:1", + "typeDescriptions": {} + } + }, + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44842:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44834:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2461, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44834:7:1", + "typeDescriptions": {} + } + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44834:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44826:7:1", + "typeDescriptions": {} + } + }, + "id": 2476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44826:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2458, + "id": 2477, + "nodeType": "Return", + "src": "44819:78:1" + } + ] + }, + "documentation": { + "id": 2448, + "nodeType": "StructuredDocumentation", + "src": "44419:269:1", + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2450, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44706:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2449, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44706:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2452, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44736:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2454, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44749:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2453, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "44749:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "44705:71:1" + }, + "returnParameters": { + "id": 2458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2457, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44799:9:1" + }, + "scope": 2480, + "src": "44693:211:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "35943:8963:1" + }, + { + "id": 2481, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "44959:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2482, + "nodeType": "StructuredDocumentation", + "src": "44992:34:1", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2566, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2564, + "nodeType": "Block", + "src": "45207:654:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2490, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45409:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45418:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45409:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2496, + "nodeType": "IfStatement", + "src": "45405:51:1", + "trueBody": { + "id": 2495, + "nodeType": "Block", + "src": "45421:35:1", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45442:3:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "functionReturnParameters": 2489, + "id": 2494, + "nodeType": "Return", + "src": "45435:10:1" + } + ] + } + }, + { + "assignments": [ + 2498 + ], + "declarations": [ + { + "constant": false, + "id": 2498, + "mutability": "mutable", + "name": "temp", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45465:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2500, + "initialValue": { + "id": 2499, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45480:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "assignments": [ + 2502 + ], + "declarations": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "digits", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45495:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45495:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2503, + "nodeType": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "body": { + "id": 2514, + "nodeType": "Block", + "src": "45537:57:1", + "statements": [ + { + "expression": { + "id": 2508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "45551:8:1", + "subExpression": { + "id": 2507, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45551:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2509, + "nodeType": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "expression": { + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2510, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45581:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45573:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2513, + "nodeType": "ExpressionStatement", + "src": "45573:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2504, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45526:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45534:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45526:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2515, + "nodeType": "WhileStatement", + "src": "45519:75:1" + }, + { + "assignments": [ + 2517 + ], + "declarations": [ + { + "constant": false, + "id": 2517, + "mutability": "mutable", + "name": "buffer", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45603:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2516, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2522, + "initialValue": { + "arguments": [ + { + "id": 2520, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45635:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "45625:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2518, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45629:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45625:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "assignments": [ + 2524 + ], + "declarations": [ + { + "constant": false, + "id": 2524, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45652:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45652:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2528, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2525, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45668:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45677:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "45668:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "expression": { + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2529, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45688:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2530, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45695:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45688:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2532, + "nodeType": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "body": { + "id": 2557, + "nodeType": "Block", + "src": "45728:96:1", + "statements": [ + { + "expression": { + "id": 2551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2536, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45742:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2539, + "indexExpression": { + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "45749:7:1", + "subExpression": { + "id": 2537, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2524, + "src": "45749:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "45742:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3438", + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45773:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2545, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45778:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3130", + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45785:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45778:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45773:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45767:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2542, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "45767:5:1", + "typeDescriptions": {} + } + }, + "id": 2549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45767:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 2540, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "45760:6:1", + "typeDescriptions": {} + } + }, + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45760:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "45742:47:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2552, + "nodeType": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "expression": { + "id": 2555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2553, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45803:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45811:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45803:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2556, + "nodeType": "ExpressionStatement", + "src": "45803:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2533, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45717:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45725:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45717:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2558, + "nodeType": "WhileStatement", + "src": "45710:114:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2561, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45847:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45840:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2559, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45840:6:1", + "typeDescriptions": {} + } + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45840:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2489, + "id": 2563, + "nodeType": "Return", + "src": "45833:21:1" + } + ] + }, + "documentation": { + "id": 2483, + "nodeType": "StructuredDocumentation", + "src": "45049:82:1", + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2485, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45154:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45154:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "45153:15:1" + }, + "returnParameters": { + "id": 2489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2488, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45192:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2487, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45192:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "45191:15:1" + }, + "scope": 2566, + "src": "45136:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "45027:836:1" + }, + { + "id": 2567, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "45922:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2569, + "name": "Context", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 530, + "src": "46099:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 2570, + "nodeType": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "baseName": { + "id": 2571, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 781, + "src": "46108:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$781", + "typeString": "contract ERC165" + } + }, + "id": 2572, + "nodeType": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "baseName": { + "id": 2573, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "46116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 2574, + "nodeType": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "baseName": { + "id": 2575, + "name": "IERC721Metadata", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 680, + "src": "46125:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Metadata_$680", + "typeString": "contract IERC721Metadata" + } + }, + "id": 2576, + "nodeType": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "baseName": { + "id": 2577, + "name": "IERC721Enumerable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 709, + "src": "46142:17:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Enumerable_$709", + "typeString": "contract IERC721Enumerable" + } + }, + "id": 2578, + "nodeType": "InheritanceSpecifier", + "src": "46142:17:1" + } + ], + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "documentation": { + "id": 2568, + "nodeType": "StructuredDocumentation", + "src": "45955:124:1", + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": true, + "id": 3498, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2581, + "libraryName": { + "id": 2579, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1135, + "src": "46172:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$1135", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "46166:27:1", + "typeName": { + "id": 2580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46185:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 2584, + "libraryName": { + "id": 2582, + "name": "Address", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1430, + "src": "46204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + }, + "nodeType": "UsingForDirective", + "src": "46198:26:1", + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46216:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 2587, + "libraryName": { + "id": 2585, + "name": "EnumerableSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1921, + "src": "46235:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableSet_$1921", + "typeString": "library EnumerableSet" + } + }, + "nodeType": "UsingForDirective", + "src": "46229:46:1", + "typeName": { + "id": 2586, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46253:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + { + "id": 2590, + "libraryName": { + "id": 2588, + "name": "EnumerableMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2480, + "src": "46286:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableMap_$2480", + "typeString": "library EnumerableMap" + } + }, + "nodeType": "UsingForDirective", + "src": "46280:55:1", + "typeName": { + "id": 2589, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46304:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + } + }, + { + "id": 2593, + "libraryName": { + "id": 2591, + "name": "Strings", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2566, + "src": "46346:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Strings_$2566", + "typeString": "library Strings" + } + }, + "nodeType": "UsingForDirective", + "src": "46340:26:1", + "typeName": { + "id": 2592, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46358:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 2596, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46544:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2594, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "46544:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783135306237613032", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46587:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_353073666_by_1", + "typeString": "int_const 353073666" + }, + "value": "0x150b7a02" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2600, + "mutability": "mutable", + "name": "_holderTokens", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46681:64:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "typeName": { + "id": 2599, + "keyType": { + "id": 2597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "46681:42:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "valueType": { + "id": 2598, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46701:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2602, + "mutability": "mutable", + "name": "_tokenOwners", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46809:51:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2601, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46809:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2606, + "mutability": "mutable", + "name": "_tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46916:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 2605, + "keyType": { + "id": 2603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46925:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "46916:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 2604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46936:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2612, + "mutability": "mutable", + "name": "_operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47023:73:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 2611, + "keyType": { + "id": 2607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47023:46:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 2610, + "keyType": { + "id": 2608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47043:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2609, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "47063:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2614, + "mutability": "mutable", + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47121:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2613, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47121:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2616, + "mutability": "mutable", + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47168:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47168:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2620, + "mutability": "mutable", + "name": "_tokenURIs", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47236:46:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 2619, + "keyType": { + "id": 2617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "47245:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "47236:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 2618, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47256:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2622, + "mutability": "mutable", + "name": "_baseURI", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47305:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2621, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47305:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2625, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48204:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2623, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48204:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783830616335386364", + "id": 2624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48251:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2628, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48527:66:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2626, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48527:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783562356531333966", + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1532892063_by_1", + "typeString": "int_const 1532892063" + }, + "value": "0x5b5e139f" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2631, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48898:68:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2629, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783738306539643633", + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48956:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2014223715_by_1", + "typeString": "int_const 2014223715" + }, + "value": "0x780e9d63" + }, + "visibility": "private" + }, + { + "body": { + "id": 2659, + "nodeType": "Block", + "src": "49143:305:1", + "statements": [ + { + "expression": { + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2639, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "49153:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2640, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "49161:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49153:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2642, + "nodeType": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "expression": { + "id": 2645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2643, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "49176:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2644, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2636, + "src": "49186:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49176:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2646, + "nodeType": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2648, + "name": "_INTERFACE_ID_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "49300:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2647, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49281:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49281:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2650, + "nodeType": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2652, + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "49350:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2651, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49331:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49331:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2654, + "nodeType": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2656, + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2631, + "src": "49409:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2655, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49390:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49390:51:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2658, + "nodeType": "ExpressionStatement", + "src": "49390:51:1" + } + ] + }, + "documentation": { + "id": 2632, + "nodeType": "StructuredDocumentation", + "src": "48973:108:1", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2660, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2634, + "mutability": "mutable", + "name": "name_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49099:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2633, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49099:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2636, + "mutability": "mutable", + "name": "symbol_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49120:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2635, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49120:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "49098:44:1" + }, + "returnParameters": { + "id": 2638, + "nodeType": "ParameterList", + "parameters": [], + "src": "49143:0:1" + }, + "scope": 3498, + "src": "49086:362:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 580 + ], + "body": { + "id": 2685, + "nodeType": "Block", + "src": "49588:137:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2670, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49606:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49623:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "49615:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49615:7:1", + "typeDescriptions": {} + } + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49615:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "49606:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49627:44:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + }, + "value": "ERC721: balance query for the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "id": 2669, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "49598:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49598:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2678, + "nodeType": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 2679, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "49689:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2681, + "indexExpression": { + "id": 2680, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49703:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "49689:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2682, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "49689:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + } + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49689:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2668, + "id": 2684, + "nodeType": "Return", + "src": "49682:36:1" + } + ] + }, + "documentation": { + "id": 2661, + "nodeType": "StructuredDocumentation", + "src": "49454:48:1", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 2686, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2665, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49561:8:1" + }, + "parameters": { + "id": 2664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2663, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49526:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49526:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49525:15:1" + }, + "returnParameters": { + "id": 2668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2667, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49579:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49579:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49578:9:1" + }, + "scope": 3498, + "src": "49507:218:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 588 + ], + "body": { + "id": 2701, + "nodeType": "Block", + "src": "49863:94:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2697, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "49897:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49906:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + }, + "value": "ERC721: owner query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "expression": { + "id": 2695, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "49880:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2696, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 2479, + "src": "49880:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + } + }, + "id": 2699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49880:70:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2694, + "id": 2700, + "nodeType": "Return", + "src": "49873:77:1" + } + ] + }, + "documentation": { + "id": 2687, + "nodeType": "StructuredDocumentation", + "src": "49731:46:1", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 2702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2691, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49836:8:1" + }, + "parameters": { + "id": 2690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2689, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49799:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49799:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49798:17:1" + }, + "returnParameters": { + "id": 2694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49854:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49854:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49853:9:1" + }, + "scope": 3498, + "src": "49782:175:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 665 + ], + "body": { + "id": 2711, + "nodeType": "Block", + "src": "50088:29:1", + "statements": [ + { + "expression": { + "id": 2709, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "50105:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2708, + "id": 2710, + "nodeType": "Return", + "src": "50098:12:1" + } + ] + }, + "documentation": { + "id": 2703, + "nodeType": "StructuredDocumentation", + "src": "49963:51:1", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 2712, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2705, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50055:8:1" + }, + "parameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [], + "src": "50032:2:1" + }, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2707, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2712, + "src": "50073:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2706, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50073:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50072:15:1" + }, + "scope": 3498, + "src": "50019:98:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 671 + ], + "body": { + "id": 2721, + "nodeType": "Block", + "src": "50252:31:1", + "statements": [ + { + "expression": { + "id": 2719, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "50269:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2718, + "id": 2720, + "nodeType": "Return", + "src": "50262:14:1" + } + ] + }, + "documentation": { + "id": 2713, + "nodeType": "StructuredDocumentation", + "src": "50123:53:1", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 2722, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2715, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50219:8:1" + }, + "parameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [], + "src": "50196:2:1" + }, + "returnParameters": { + "id": 2718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2717, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2722, + "src": "50237:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2716, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50237:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50236:15:1" + }, + "scope": 3498, + "src": "50181:102:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 679 + ], + "body": { + "id": 2789, + "nodeType": "Block", + "src": "50437:688:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2733, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50463:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2732, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "50455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50455:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50473:49:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + }, + "value": "ERC721Metadata: URI query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "id": 2731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "50447:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50447:76:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "assignments": [ + 2739 + ], + "declarations": [ + { + "constant": false, + "id": 2739, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50534:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50534:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2743, + "initialValue": { + "baseExpression": { + "id": 2740, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "50560:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 2742, + "indexExpression": { + "id": 2741, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50571:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "50560:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "assignments": [ + 2745 + ], + "declarations": [ + { + "constant": false, + "id": 2745, + "mutability": "mutable", + "name": "base", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50589:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50589:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2748, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2746, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2799, + "src": "50610:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 2747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50610:9:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2751, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50698:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50692:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50692:5:1", + "typeDescriptions": {} + } + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50692:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50692:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50714:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50692:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2759, + "nodeType": "IfStatement", + "src": "50688:70:1", + "trueBody": { + "id": 2758, + "nodeType": "Block", + "src": "50717:41:1", + "statements": [ + { + "expression": { + "id": 2756, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50738:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2757, + "nodeType": "Return", + "src": "50731:16:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2762, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50860:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2760, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50860:5:1", + "typeDescriptions": {} + } + }, + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50860:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50860:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50886:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50860:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2777, + "nodeType": "IfStatement", + "src": "50856:106:1", + "trueBody": { + "id": 2776, + "nodeType": "Block", + "src": "50889:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2771, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50934:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 2772, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50940:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2769, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "50917:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "50917:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50917:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50910:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2767, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50910:6:1", + "typeDescriptions": {} + } + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50910:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2775, + "nodeType": "Return", + "src": "50903:48:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2782, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "51092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2783, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "51098:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2565, + "src": "51098:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 2785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51098:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2780, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "51075:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "51075:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51075:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "51068:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2778, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51068:6:1", + "typeDescriptions": {} + } + }, + "id": 2787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51068:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2788, + "nodeType": "Return", + "src": "51061:57:1" + } + ] + }, + "documentation": { + "id": 2723, + "nodeType": "StructuredDocumentation", + "src": "50289:55:1", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 2790, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50404:8:1" + }, + "parameters": { + "id": 2726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2725, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50367:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50367:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "50366:17:1" + }, + "returnParameters": { + "id": 2730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50422:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2728, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50422:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50421:15:1" + }, + "scope": 3498, + "src": "50349:776:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2798, + "nodeType": "Block", + "src": "51420:32:1", + "statements": [ + { + "expression": { + "id": 2796, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "51437:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2795, + "id": 2797, + "nodeType": "Return", + "src": "51430:15:1" + } + ] + }, + "documentation": { + "id": 2791, + "nodeType": "StructuredDocumentation", + "src": "51131:221:1", + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "functionSelector": "6c0360eb", + "id": 2799, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "baseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2792, + "nodeType": "ParameterList", + "parameters": [], + "src": "51373:2:1" + }, + "returnParameters": { + "id": 2795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2799, + "src": "51405:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2793, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51405:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "51404:15:1" + }, + "scope": 3498, + "src": "51357:95:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 700 + ], + "body": { + "id": 2817, + "nodeType": "Block", + "src": "51637:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2814, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "51678:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 2810, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "51654:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2812, + "indexExpression": { + "id": 2811, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2802, + "src": "51668:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "51654:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2813, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 1920, + "src": "51654:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51654:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2809, + "id": 2816, + "nodeType": "Return", + "src": "51647:37:1" + } + ] + }, + "documentation": { + "id": 2800, + "nodeType": "StructuredDocumentation", + "src": "51458:68:1", + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "functionSelector": "2f745c59", + "id": 2818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2806, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51610:8:1" + }, + "parameters": { + "id": 2805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2802, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51560:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "51560:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2804, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51575:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2803, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51575:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51559:30:1" + }, + "returnParameters": { + "id": 2809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2808, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51628:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51628:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51627:9:1" + }, + "scope": 3498, + "src": "51531:160:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 690 + ], + "body": { + "id": 2829, + "nodeType": "Block", + "src": "51832:138:1", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2825, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "51942:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 2340, + "src": "51942:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51942:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2824, + "id": 2828, + "nodeType": "Return", + "src": "51935:28:1" + } + ] + }, + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "51697:60:1", + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 2830, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2821, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51805:8:1" + }, + "parameters": { + "id": 2820, + "nodeType": "ParameterList", + "parameters": [], + "src": "51782:2:1" + }, + "returnParameters": { + "id": 2824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2823, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2830, + "src": "51823:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51823:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51822:9:1" + }, + "scope": 3498, + "src": "51762:208:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 708 + ], + "body": { + "id": 2848, + "nodeType": "Block", + "src": "52126:85:1", + "statements": [ + { + "assignments": [ + 2840, + null + ], + "declarations": [ + { + "constant": false, + "id": 2840, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2848, + "src": "52137:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2839, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52137:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2845, + "initialValue": { + "arguments": [ + { + "id": 2843, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2833, + "src": "52174:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2841, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "52158:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 2379, + "src": "52158:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + } + }, + "id": 2844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52158:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$", + "typeString": "tuple(uint256,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "expression": { + "id": 2846, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2840, + "src": "52197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2838, + "id": 2847, + "nodeType": "Return", + "src": "52190:14:1" + } + ] + }, + "documentation": { + "id": 2831, + "nodeType": "StructuredDocumentation", + "src": "51976:61:1", + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "functionSelector": "4f6ccce7", + "id": 2849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2835, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52099:8:1" + }, + "parameters": { + "id": 2834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2833, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52064:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52064:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52063:15:1" + }, + "returnParameters": { + "id": 2838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2837, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52117:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52116:9:1" + }, + "scope": 3498, + "src": "52042:169:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 616 + ], + "body": { + "id": 2892, + "nodeType": "Block", + "src": "52338:325:1", + "statements": [ + { + "assignments": [ + 2859 + ], + "declarations": [ + { + "constant": false, + "id": 2859, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2892, + "src": "52348:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52348:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2864, + "initialValue": { + "arguments": [ + { + "id": 2862, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52379:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2860, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52364:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "52364:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52364:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2866, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52405:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2867, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52411:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52405:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "id": 2869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52418:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + }, + "value": "ERC721: approval to current owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "id": 2865, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52397:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52397:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2871, + "nodeType": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2873, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52473:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52473:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2875, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52489:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52473:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 2879, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52522:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2880, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52529:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52529:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 2877, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52498:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "52498:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52498:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "52473:69:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52556:58:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + }, + "value": "ERC721: approve caller is not owner nor approved for all" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "id": 2872, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52465:159:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2886, + "nodeType": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2888, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52644:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2889, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52648:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2887, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "52635:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52635:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2891, + "nodeType": "ExpressionStatement", + "src": "52635:21:1" + } + ] + }, + "documentation": { + "id": 2850, + "nodeType": "StructuredDocumentation", + "src": "52217:46:1", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 2893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2856, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52329:8:1" + }, + "parameters": { + "id": 2855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2852, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52285:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52285:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2854, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52297:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52284:29:1" + }, + "returnParameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [], + "src": "52338:0:1" + }, + "scope": 3498, + "src": "52268:395:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 624 + ], + "body": { + "id": 2913, + "nodeType": "Block", + "src": "52809:132:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2904, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2903, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "52827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52827:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52845:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + }, + "value": "ERC721: approved query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "id": 2902, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52819:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2908, + "nodeType": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "expression": { + "baseExpression": { + "id": 2909, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "52910:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 2911, + "indexExpression": { + "id": 2910, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52926:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "52910:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2901, + "id": 2912, + "nodeType": "Return", + "src": "52903:31:1" + } + ] + }, + "documentation": { + "id": 2894, + "nodeType": "StructuredDocumentation", + "src": "52669:50:1", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 2914, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2898, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52782:8:1" + }, + "parameters": { + "id": 2897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2896, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52745:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52744:17:1" + }, + "returnParameters": { + "id": 2901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2900, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2899, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "52799:9:1" + }, + "scope": 3498, + "src": "52724:217:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 632 + ], + "body": { + "id": 2947, + "nodeType": "Block", + "src": "53092:206:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2924, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53110:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2925, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53122:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53122:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "53110:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "id": 2928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53136:27:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + }, + "value": "ERC721: approve to caller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "id": 2923, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53102:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53102:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2930, + "nodeType": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "expression": { + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 2931, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53175:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2935, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2932, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53194:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53194:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53175:32:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2936, + "indexExpression": { + "id": 2934, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53208:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "53175:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2937, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53220:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "53175:53:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2941, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53258:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53258:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2943, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53272:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2944, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53282:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2940, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "53243:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 2945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53243:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2946, + "nodeType": "EmitStatement", + "src": "53238:53:1" + } + ] + }, + "documentation": { + "id": 2915, + "nodeType": "StructuredDocumentation", + "src": "52947:56:1", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 2948, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2921, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53083:8:1" + }, + "parameters": { + "id": 2920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2917, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53035:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53035:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2919, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53053:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2918, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53053:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53034:33:1" + }, + "returnParameters": { + "id": 2922, + "nodeType": "ParameterList", + "parameters": [], + "src": "53092:0:1" + }, + "scope": 3498, + "src": "53008:290:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 642 + ], + "body": { + "id": 2965, + "nodeType": "Block", + "src": "53467:59:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 2959, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53484:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2961, + "indexExpression": { + "id": 2960, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "53503:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2963, + "indexExpression": { + "id": 2962, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "53510:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2958, + "id": 2964, + "nodeType": "Return", + "src": "53477:42:1" + } + ] + }, + "documentation": { + "id": 2949, + "nodeType": "StructuredDocumentation", + "src": "53304:55:1", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 2966, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2955, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53443:8:1" + }, + "parameters": { + "id": 2954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53390:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53390:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2953, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53405:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53405:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "53389:33:1" + }, + "returnParameters": { + "id": 2958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2957, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2956, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53460:6:1" + }, + "scope": 3498, + "src": "53364:162:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 608 + ], + "body": { + "id": 2992, + "nodeType": "Block", + "src": "53677:211:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2979, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53766:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53766:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2981, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53780:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2978, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "53747:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53747:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53790:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 2977, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53739:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53739:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2985, + "nodeType": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2987, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2969, + "src": "53863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2988, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2971, + "src": "53869:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2989, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53873:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2986, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "53853:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53853:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2991, + "nodeType": "ExpressionStatement", + "src": "53853:28:1" + } + ] + }, + "documentation": { + "id": 2967, + "nodeType": "StructuredDocumentation", + "src": "53532:51:1", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 2993, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2975, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53668:8:1" + }, + "parameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2969, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53610:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53610:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2971, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53624:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53624:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2973, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53636:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "53636:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53609:43:1" + }, + "returnParameters": { + "id": 2976, + "nodeType": "ParameterList", + "parameters": [], + "src": "53677:0:1" + }, + "scope": 3498, + "src": "53588:300:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 598 + ], + "body": { + "id": 3011, + "nodeType": "Block", + "src": "54047:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3005, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2996, + "src": "54074:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3006, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2998, + "src": "54080:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3007, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3000, + "src": "54084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54093:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3004, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "src": "54057:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54057:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3010, + "nodeType": "ExpressionStatement", + "src": "54057:39:1" + } + ] + }, + "documentation": { + "id": 2994, + "nodeType": "StructuredDocumentation", + "src": "53894:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 3012, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3002, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54038:8:1" + }, + "parameters": { + "id": 3001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2996, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53980:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53980:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2998, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53994:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2997, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53994:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3000, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "54006:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54006:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53979:43:1" + }, + "returnParameters": { + "id": 3003, + "nodeType": "ParameterList", + "parameters": [], + "src": "54047:0:1" + }, + "scope": 3498, + "src": "53954:149:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 654 + ], + "body": { + "id": 3041, + "nodeType": "Block", + "src": "54282:169:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3027, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "54319:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54319:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3029, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3026, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "54300:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 3030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54300:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 3031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54343:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 3025, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "54292:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54292:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3033, + "nodeType": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3035, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3015, + "src": "54419:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3036, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3017, + "src": "54425:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3037, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3038, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3021, + "src": "54438:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3034, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3071, + "src": "54405:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54405:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3040, + "nodeType": "ExpressionStatement", + "src": "54405:39:1" + } + ] + }, + "documentation": { + "id": 3013, + "nodeType": "StructuredDocumentation", + "src": "54109:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 3042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3023, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54273:8:1" + }, + "parameters": { + "id": 3022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3015, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54195:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54195:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3017, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54209:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3016, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54209:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3019, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54221:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3021, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54238:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3020, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "54238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "54194:63:1" + }, + "returnParameters": { + "id": 3024, + "nodeType": "ParameterList", + "parameters": [], + "src": "54282:0:1" + }, + "scope": 3498, + "src": "54169:282:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 3070, + "nodeType": "Block", + "src": "55416:166:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3055, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55436:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55442:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3057, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55446:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3054, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "55426:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55426:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3059, + "nodeType": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3062, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55495:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3063, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55501:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3064, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55505:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3065, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3051, + "src": "55514:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3061, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "55472:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55472:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55522:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3060, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "55464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55464:111:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3069, + "nodeType": "ExpressionStatement", + "src": "55464:111:1" + } + ] + }, + "documentation": { + "id": 3043, + "nodeType": "StructuredDocumentation", + "src": "54457:851:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3071, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3045, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55336:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55336:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3047, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55350:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55350:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3049, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55362:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55362:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3051, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55379:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3050, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "55379:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "55335:63:1" + }, + "returnParameters": { + "id": 3053, + "nodeType": "ParameterList", + "parameters": [], + "src": "55416:0:1" + }, + "scope": 3498, + "src": "55313:269:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3084, + "nodeType": "Block", + "src": "55956:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3081, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "55995:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3079, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "55973:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3080, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 2326, + "src": "55973:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + } + }, + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55973:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3078, + "id": 3083, + "nodeType": "Return", + "src": "55966:37:1" + } + ] + }, + "documentation": { + "id": 3072, + "nodeType": "StructuredDocumentation", + "src": "55588:292:1", + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3085, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3074, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55902:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3073, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55902:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "55901:17:1" + }, + "returnParameters": { + "id": 3078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3077, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55950:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3076, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "55950:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "55949:6:1" + }, + "scope": 3498, + "src": "55885:125:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3126, + "nodeType": "Block", + "src": "56267:252:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3097, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56293:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3096, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "56285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56285:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 3099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56303:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + }, + "value": "ERC721: operator query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "id": 3095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "56277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56277:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3101, + "nodeType": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "assignments": [ + 3103 + ], + "declarations": [ + { + "constant": false, + "id": 3103, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3126, + "src": "56360:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56360:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3108, + "initialValue": { + "arguments": [ + { + "id": 3106, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56391:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3104, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56376:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "56376:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56376:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3109, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56417:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3110, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56428:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56417:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3113, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56449:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3112, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "56437:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56437:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3115, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56437:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:51:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 3120, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56496:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3121, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3118, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "56472:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56472:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:94:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3124, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56416:96:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3094, + "id": 3125, + "nodeType": "Return", + "src": "56409:103:1" + } + ] + }, + "documentation": { + "id": 3086, + "nodeType": "StructuredDocumentation", + "src": "56016:147:1", + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3088, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56196:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56196:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3090, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56213:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56213:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56195:34:1" + }, + "returnParameters": { + "id": 3094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3093, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56261:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3092, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "56261:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "56260:6:1" + }, + "scope": 3498, + "src": "56168:351:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3141, + "nodeType": "Block", + "src": "56915:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3136, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3130, + "src": "56935:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3137, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3132, + "src": "56939:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56948:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3135, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "src": "56925:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 3139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56925:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3140, + "nodeType": "ExpressionStatement", + "src": "56925:26:1" + } + ] + }, + "documentation": { + "id": 3128, + "nodeType": "StructuredDocumentation", + "src": "56525:320:1", + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3142, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3130, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56869:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3132, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56881:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56881:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56868:29:1" + }, + "returnParameters": { + "id": 3134, + "nodeType": "ParameterList", + "parameters": [], + "src": "56915:0:1" + }, + "scope": 3498, + "src": "56850:108:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3170, + "nodeType": "Block", + "src": "57264:162:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3153, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57280:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3154, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3152, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "57274:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57274:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3156, + "nodeType": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57341:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57333:7:1", + "typeDescriptions": {} + } + }, + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57333:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3163, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57345:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3164, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3165, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "57358:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3158, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "57310:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57310:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57366:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3157, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57302:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57302:117:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3169, + "nodeType": "ExpressionStatement", + "src": "57302:117:1" + } + ] + }, + "documentation": { + "id": 3143, + "nodeType": "StructuredDocumentation", + "src": "56964:210:1", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3171, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3145, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57198:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3144, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57198:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3147, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57210:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57210:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3149, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57227:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3148, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "57227:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "57197:49:1" + }, + "returnParameters": { + "id": 3151, + "nodeType": "ParameterList", + "parameters": [], + "src": "57264:0:1" + }, + "scope": 3498, + "src": "57179:247:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3229, + "nodeType": "Block", + "src": "57809:332:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3180, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57827:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57841:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57833:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57833:7:1", + "typeDescriptions": {} + } + }, + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57833:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "57827:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57845:34:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + }, + "value": "ERC721: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "id": 3179, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57819:61:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "57898:17:1", + "subExpression": { + "arguments": [ + { + "id": 3191, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57907:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3190, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "57899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57899:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57917:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + }, + "value": "ERC721: token already minted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "id": 3189, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57890:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57890:58:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3196, + "nodeType": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57988:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57980:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57980:7:1", + "typeDescriptions": {} + } + }, + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57980:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3202, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57992:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3203, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3197, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "57959:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57959:45:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3205, + "nodeType": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3210, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58037:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3206, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58015:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3208, + "indexExpression": { + "id": 3207, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58029:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58015:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3209, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "58015:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58015:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3212, + "nodeType": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3216, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58073:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3217, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58082:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3213, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58056:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3215, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "58056:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58056:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3219, + "nodeType": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58118:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58110:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58110:7:1", + "typeDescriptions": {} + } + }, + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58110:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3225, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58122:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3226, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3220, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58101:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58101:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3228, + "nodeType": "EmitStatement", + "src": "58096:38:1" + } + ] + }, + "documentation": { + "id": 3172, + "nodeType": "StructuredDocumentation", + "src": "57432:311:1", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3174, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57763:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57763:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3176, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57775:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57775:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "57762:29:1" + }, + "returnParameters": { + "id": 3178, + "nodeType": "ParameterList", + "parameters": [], + "src": "57809:0:1" + }, + "scope": 3498, + "src": "57748:393:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3298, + "nodeType": "Block", + "src": "58407:478:1", + "statements": [ + { + "assignments": [ + 3237 + ], + "declarations": [ + { + "constant": false, + "id": 3237, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "58417:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58417:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3242, + "initialValue": { + "arguments": [ + { + "id": 3240, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58448:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3238, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "58433:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "58433:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58433:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3244, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58506:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58521:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58513:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58513:7:1", + "typeDescriptions": {} + } + }, + "id": 3248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58513:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3249, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58525:7:1", + "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": 3243, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "58485:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58485:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3251, + "nodeType": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58588:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58580:7:1", + "typeDescriptions": {} + } + }, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58580:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3257, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58592:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3252, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "58571:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58571:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3259, + "nodeType": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 3262, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58656:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3264, + "indexExpression": { + "id": 3263, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58667:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58656:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 3261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58650:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3260, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "58650:5:1", + "typeDescriptions": {} + } + }, + "id": 3265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58650:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes storage pointer" + } + }, + "id": 3266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "58650:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 3267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58687:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "58650:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3275, + "nodeType": "IfStatement", + "src": "58646:95:1", + "trueBody": { + "id": 3274, + "nodeType": "Block", + "src": "58690:51:1", + "statements": [ + { + "expression": { + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "58704:26:1", + "subExpression": { + "baseExpression": { + "id": 3269, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58711:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3271, + "indexExpression": { + "id": 3270, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58722:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "58711:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3273, + "nodeType": "ExpressionStatement", + "src": "58704:26:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 3280, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58779:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3276, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58751:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3278, + "indexExpression": { + "id": 3277, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58765:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58751:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3279, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "58751:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58751:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3282, + "nodeType": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3286, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58818:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3283, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58798:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 2306, + "src": "58798:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + } + }, + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58798:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3288, + "nodeType": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3290, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58851:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58866:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58858:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58858:7:1", + "typeDescriptions": {} + } + }, + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58858:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3295, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58870:7:1", + "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": 3289, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58842:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58842:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3297, + "nodeType": "EmitStatement", + "src": "58837:41:1" + } + ] + }, + "documentation": { + "id": 3231, + "nodeType": "StructuredDocumentation", + "src": "58147:206:1", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3299, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3233, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3299, + "src": "58373:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "58372:17:1" + }, + "returnParameters": { + "id": 3235, + "nodeType": "ParameterList", + "parameters": [], + "src": "58407:0:1" + }, + "scope": 3498, + "src": "58358:527:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3370, + "nodeType": "Block", + "src": "59288:505:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3312, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59321:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3310, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "59306:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "59306:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59306:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3314, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59333:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "59306:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59339:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + }, + "value": "ERC721: transfer of token that is not own" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "id": 3309, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59298:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59298:85:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3318, + "nodeType": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3320, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59419:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59433:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59425:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59425:7:1", + "typeDescriptions": {} + } + }, + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59425:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "59419:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59437:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + }, + "value": "ERC721: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "id": 3319, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59411:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59411:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3328, + "nodeType": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3330, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59508:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3331, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59514:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3332, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59518:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3329, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "59487:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59487:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3334, + "nodeType": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59605:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59597:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59597:7:1", + "typeDescriptions": {} + } + }, + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59597:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3340, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59609:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3335, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "59588:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59588:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3342, + "nodeType": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3347, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59655:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3343, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59628:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3345, + "indexExpression": { + "id": 3344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59642:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59628:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3346, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "59628:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59628:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3354, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59695:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3350, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3352, + "indexExpression": { + "id": 3351, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59687:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59673:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3353, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "59673:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59673:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3356, + "nodeType": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3360, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59731:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3361, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59740:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3357, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "59714:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "59714:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59714:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3363, + "nodeType": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3365, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59768:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3366, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59774:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3367, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59778:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3364, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "59759:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59759:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3369, + "nodeType": "EmitStatement", + "src": "59754:32:1" + } + ] + }, + "documentation": { + "id": 3300, + "nodeType": "StructuredDocumentation", + "src": "58891:313:1", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3302, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59228:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3304, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59242:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59242:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3306, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59254:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3305, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59254:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "59227:43:1" + }, + "returnParameters": { + "id": 3308, + "nodeType": "ParameterList", + "parameters": [], + "src": "59288:0:1" + }, + "scope": 3498, + "src": "59209:584:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3392, + "nodeType": "Block", + "src": "60021:131:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3381, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60047:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3380, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "60039:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60039:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "id": 3383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "60057:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + }, + "value": "ERC721Metadata: URI set of nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "id": 3379, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "60031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60031:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3385, + "nodeType": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "expression": { + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3386, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "60114:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3388, + "indexExpression": { + "id": 3387, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60125:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "60114:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3389, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "60136:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60114:31:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3391, + "nodeType": "ExpressionStatement", + "src": "60114:31:1" + } + ] + }, + "documentation": { + "id": 3372, + "nodeType": "StructuredDocumentation", + "src": "59799:136:1", + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setTokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3374, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59962:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59962:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3376, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59979:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3375, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "59979:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "59961:42:1" + }, + "returnParameters": { + "id": 3378, + "nodeType": "ParameterList", + "parameters": [], + "src": "60021:0:1" + }, + "scope": 3498, + "src": "59940:212:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3403, + "nodeType": "Block", + "src": "60437:36:1", + "statements": [ + { + "expression": { + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3399, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "60447:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3400, + "name": "baseURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "60458:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60447:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3402, + "nodeType": "ExpressionStatement", + "src": "60447:19:1" + } + ] + }, + "documentation": { + "id": 3394, + "nodeType": "StructuredDocumentation", + "src": "60158:212:1", + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3404, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setBaseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3396, + "mutability": "mutable", + "name": "baseURI_", + "nodeType": "VariableDeclaration", + "scope": 3404, + "src": "60396:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3395, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "60396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "60395:24:1" + }, + "returnParameters": { + "id": 3398, + "nodeType": "ParameterList", + "parameters": [], + "src": "60437:0:1" + }, + "scope": 3498, + "src": "60375:98:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3461, + "nodeType": "Block", + "src": "61156:459:1", + "statements": [ + { + "condition": { + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "61170:16:1", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3418, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61171:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 1154, + "src": "61171:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61171:15:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3425, + "nodeType": "IfStatement", + "src": "61166:58:1", + "trueBody": { + "id": 3424, + "nodeType": "Block", + "src": "61188:36:1", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 3422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61209:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3417, + "id": 3423, + "nodeType": "Return", + "src": "61202:11:1" + } + ] + } + }, + { + "assignments": [ + 3427 + ], + "declarations": [ + { + "constant": false, + "id": 3427, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61233:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3426, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61233:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3445, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 3433, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61327:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3432, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "61311:15:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$726_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 3434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61311:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$726", + "typeString": "contract IERC721Receiver" + } + }, + "id": 3435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 725, + "src": "61311:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "61311:45:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3437, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "61370:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61370:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3439, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "61396:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3440, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "61414:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3441, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3413, + "src": "61435:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3430, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61275:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "61275:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 3442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61275:175:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61452:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "expression": { + "id": 3428, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61259:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 1225, + "src": "61259:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 3444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61259:246:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "assignments": [ + 3447 + ], + "declarations": [ + { + "constant": false, + "id": 3447, + "mutability": "mutable", + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61515:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3446, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61515:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "id": 3455, + "initialValue": { + "arguments": [ + { + "id": 3450, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3427, + "src": "61542:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 3452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "61555:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 3451, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61555:6:1", + "typeDescriptions": {} + } + } + ], + "id": 3453, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61554:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "expression": { + "id": 3448, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61531:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "61531:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61531:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3456, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "61581:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3457, + "name": "_ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "61591:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "61581:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3459, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61580:28:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3417, + "id": 3460, + "nodeType": "Return", + "src": "61573:35:1" + } + ] + }, + "documentation": { + "id": 3405, + "nodeType": "StructuredDocumentation", + "src": "60479:542:1", + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3462, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3407, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61058:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61058:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3409, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61072:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61072:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3411, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61084:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3410, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3413, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61101:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3412, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61101:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "61057:63:1" + }, + "returnParameters": { + "id": 3417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3416, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61146:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3415, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "61146:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "61145:6:1" + }, + "scope": 3498, + "src": "61026:589:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3485, + "nodeType": "Block", + "src": "61791:125:1", + "statements": [ + { + "expression": { + "id": 3474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3470, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "61801:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 3472, + "indexExpression": { + "id": 3471, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61817:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "61801:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3473, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61828:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "61801:29:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3475, + "nodeType": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 3479, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61869:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3477, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "61854:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "61854:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61854:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3481, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61879:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3482, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3476, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "61845:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61845:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3484, + "nodeType": "EmitStatement", + "src": "61840:51:1" + } + ] + }, + "documentation": { + "id": 3463, + "nodeType": "StructuredDocumentation", + "src": "61621:101:1", + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3486, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3465, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61745:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61745:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3467, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61757:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61757:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "61744:29:1" + }, + "returnParameters": { + "id": 3469, + "nodeType": "ParameterList", + "parameters": [], + "src": "61791:0:1" + }, + "scope": 3498, + "src": "61727:189:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3496, + "nodeType": "Block", + "src": "62602:3:1", + "statements": [] + }, + "documentation": { + "id": 3487, + "nodeType": "StructuredDocumentation", + "src": "61922:585:1", + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3497, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3489, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62542:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62542:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3491, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62556:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62556:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3493, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62568:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "62568:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "62541:43:1" + }, + "returnParameters": { + "id": 3495, + "nodeType": "ParameterList", + "parameters": [], + "src": "62602:0:1" + }, + "scope": 3498, + "src": "62512:93:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "46080:16527:1" + } + ], + "src": "84:62524:1" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "license": "MIT" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 509, + "name": "PragmaDirective", + "src": "84:31:1" + }, + { + "attributes": { + "abstract": true, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgSender", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 510, + "name": "ParameterList", + "src": "668:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 518, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 511, + "name": "ElementaryTypeName", + "src": "702:15:1" + } + ], + "id": 512, + "name": "VariableDeclaration", + "src": "702:15:1" + } + ], + "id": 513, + "name": "ParameterList", + "src": "701:17:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 513 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 514, + "name": "Identifier", + "src": "736:3:1" + } + ], + "id": 515, + "name": "MemberAccess", + "src": "736:10:1" + } + ], + "id": 516, + "name": "Return", + "src": "729:17:1" + } + ], + "id": 517, + "name": "Block", + "src": "719:34:1" + } + ], + "id": 518, + "name": "FunctionDefinition", + "src": "649:104:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgData", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 519, + "name": "ParameterList", + "src": "776:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 529, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 520, + "name": "ElementaryTypeName", + "src": "810:5:1" + } + ], + "id": 521, + "name": "VariableDeclaration", + "src": "810:12:1" + } + ], + "id": 522, + "name": "ParameterList", + "src": "809:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "contract Context", + "value": "this" + }, + "id": 523, + "name": "Identifier", + "src": "834:4:1" + } + ], + "id": 524, + "name": "ExpressionStatement", + "src": "834:4:1" + }, + { + "attributes": { + "functionReturnParameters": 522 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "data", + "type": "bytes calldata" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 525, + "name": "Identifier", + "src": "974:3:1" + } + ], + "id": 526, + "name": "MemberAccess", + "src": "974:8:1" + } + ], + "id": 527, + "name": "Return", + "src": "967:15:1" + } + ], + "id": 528, + "name": "Block", + "src": "824:165:1" + } + ], + "id": 529, + "name": "FunctionDefinition", + "src": "759:230:1" + } + ], + "id": 530, + "name": "ContractDefinition", + "src": "617:374:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 531, + "name": "PragmaDirective", + "src": "1053:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "id": 532, + "name": "StructuredDocumentation", + "src": "1086:279:1" + }, + { + "attributes": { + "functionSelector": "01ffc9a7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 541, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "id": 533, + "name": "StructuredDocumentation", + "src": "1390:340:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 534, + "name": "ElementaryTypeName", + "src": "1762:6:1" + } + ], + "id": 535, + "name": "VariableDeclaration", + "src": "1762:18:1" + } + ], + "id": 536, + "name": "ParameterList", + "src": "1761:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 537, + "name": "ElementaryTypeName", + "src": "1805:4:1" + } + ], + "id": 538, + "name": "VariableDeclaration", + "src": "1805:4:1" + } + ], + "id": 539, + "name": "ParameterList", + "src": "1804:6:1" + } + ], + "id": 540, + "name": "FunctionDefinition", + "src": "1735:76:1" + } + ], + "id": 541, + "name": "ContractDefinition", + "src": "1366:447:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 542, + "name": "PragmaDirective", + "src": "1873:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "id": 543, + "name": "StructuredDocumentation", + "src": "1907:67:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 544, + "name": "UserDefinedTypeName", + "src": "1996:7:1" + } + ], + "id": 545, + "name": "InheritanceSpecifier", + "src": "1996:7:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Transfer" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 546, + "name": "StructuredDocumentation", + "src": "2010:88:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "from", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 547, + "name": "ElementaryTypeName", + "src": "2118:7:1" + } + ], + "id": 548, + "name": "VariableDeclaration", + "src": "2118:20:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "to", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 549, + "name": "ElementaryTypeName", + "src": "2140:7:1" + } + ], + "id": 550, + "name": "VariableDeclaration", + "src": "2140:18:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 551, + "name": "ElementaryTypeName", + "src": "2160:7:1" + } + ], + "id": 552, + "name": "VariableDeclaration", + "src": "2160:23:1" + } + ], + "id": 553, + "name": "ParameterList", + "src": "2117:67:1" + } + ], + "id": 554, + "name": "EventDefinition", + "src": "2103:82:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Approval" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 555, + "name": "StructuredDocumentation", + "src": "2191:94:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 556, + "name": "ElementaryTypeName", + "src": "2305:7:1" + } + ], + "id": 557, + "name": "VariableDeclaration", + "src": "2305:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 558, + "name": "ElementaryTypeName", + "src": "2328:7:1" + } + ], + "id": 559, + "name": "VariableDeclaration", + "src": "2328:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 560, + "name": "ElementaryTypeName", + "src": "2354:7:1" + } + ], + "id": 561, + "name": "VariableDeclaration", + "src": "2354:23:1" + } + ], + "id": 562, + "name": "ParameterList", + "src": "2304:74:1" + } + ], + "id": 563, + "name": "EventDefinition", + "src": "2290:89:1" + }, + { + "attributes": { + "anonymous": false, + "name": "ApprovalForAll" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 564, + "name": "StructuredDocumentation", + "src": "2385:117:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 565, + "name": "ElementaryTypeName", + "src": "2528:7:1" + } + ], + "id": 566, + "name": "VariableDeclaration", + "src": "2528:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 567, + "name": "ElementaryTypeName", + "src": "2551:7:1" + } + ], + "id": 568, + "name": "VariableDeclaration", + "src": "2551:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 569, + "name": "ElementaryTypeName", + "src": "2577:4:1" + } + ], + "id": 570, + "name": "VariableDeclaration", + "src": "2577:13:1" + } + ], + "id": 571, + "name": "ParameterList", + "src": "2527:64:1" + } + ], + "id": 572, + "name": "EventDefinition", + "src": "2507:85:1" + }, + { + "attributes": { + "functionSelector": "70a08231", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "id": 573, + "name": "StructuredDocumentation", + "src": "2598:76:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 574, + "name": "ElementaryTypeName", + "src": "2698:7:1" + } + ], + "id": 575, + "name": "VariableDeclaration", + "src": "2698:13:1" + } + ], + "id": 576, + "name": "ParameterList", + "src": "2697:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "balance", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 577, + "name": "ElementaryTypeName", + "src": "2736:7:1" + } + ], + "id": 578, + "name": "VariableDeclaration", + "src": "2736:15:1" + } + ], + "id": 579, + "name": "ParameterList", + "src": "2735:17:1" + } + ], + "id": 580, + "name": "FunctionDefinition", + "src": "2679:74:1" + }, + { + "attributes": { + "functionSelector": "6352211e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 581, + "name": "StructuredDocumentation", + "src": "2759:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 582, + "name": "ElementaryTypeName", + "src": "2912:7:1" + } + ], + "id": 583, + "name": "VariableDeclaration", + "src": "2912:15:1" + } + ], + "id": 584, + "name": "ParameterList", + "src": "2911:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 585, + "name": "ElementaryTypeName", + "src": "2952:7:1" + } + ], + "id": 586, + "name": "VariableDeclaration", + "src": "2952:13:1" + } + ], + "id": 587, + "name": "ParameterList", + "src": "2951:15:1" + } + ], + "id": 588, + "name": "FunctionDefinition", + "src": "2895:72:1" + }, + { + "attributes": { + "functionSelector": "42842e0e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 589, + "name": "StructuredDocumentation", + "src": "2973:690:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 590, + "name": "ElementaryTypeName", + "src": "3694:7:1" + } + ], + "id": 591, + "name": "VariableDeclaration", + "src": "3694:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 592, + "name": "ElementaryTypeName", + "src": "3708:7:1" + } + ], + "id": 593, + "name": "VariableDeclaration", + "src": "3708:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 594, + "name": "ElementaryTypeName", + "src": "3720:7:1" + } + ], + "id": 595, + "name": "VariableDeclaration", + "src": "3720:15:1" + } + ], + "id": 596, + "name": "ParameterList", + "src": "3693:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 597, + "name": "ParameterList", + "src": "3745:0:1" + } + ], + "id": 598, + "name": "FunctionDefinition", + "src": "3668:78:1" + }, + { + "attributes": { + "functionSelector": "23b872dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "id": 599, + "name": "StructuredDocumentation", + "src": "3752:504:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 600, + "name": "ElementaryTypeName", + "src": "4283:7:1" + } + ], + "id": 601, + "name": "VariableDeclaration", + "src": "4283:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 602, + "name": "ElementaryTypeName", + "src": "4297:7:1" + } + ], + "id": 603, + "name": "VariableDeclaration", + "src": "4297:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 604, + "name": "ElementaryTypeName", + "src": "4309:7:1" + } + ], + "id": 605, + "name": "VariableDeclaration", + "src": "4309:15:1" + } + ], + "id": 606, + "name": "ParameterList", + "src": "4282:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 607, + "name": "ParameterList", + "src": "4334:0:1" + } + ], + "id": 608, + "name": "FunctionDefinition", + "src": "4261:74:1" + }, + { + "attributes": { + "functionSelector": "095ea7b3", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "id": 609, + "name": "StructuredDocumentation", + "src": "4341:452:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 610, + "name": "ElementaryTypeName", + "src": "4815:7:1" + } + ], + "id": 611, + "name": "VariableDeclaration", + "src": "4815:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 612, + "name": "ElementaryTypeName", + "src": "4827:7:1" + } + ], + "id": 613, + "name": "VariableDeclaration", + "src": "4827:15:1" + } + ], + "id": 614, + "name": "ParameterList", + "src": "4814:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 615, + "name": "ParameterList", + "src": "4852:0:1" + } + ], + "id": 616, + "name": "FunctionDefinition", + "src": "4798:55:1" + }, + { + "attributes": { + "functionSelector": "081812fc", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 617, + "name": "StructuredDocumentation", + "src": "4859:139:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 618, + "name": "ElementaryTypeName", + "src": "5024:7:1" + } + ], + "id": 619, + "name": "VariableDeclaration", + "src": "5024:15:1" + } + ], + "id": 620, + "name": "ParameterList", + "src": "5023:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 621, + "name": "ElementaryTypeName", + "src": "5064:7:1" + } + ], + "id": 622, + "name": "VariableDeclaration", + "src": "5064:16:1" + } + ], + "id": 623, + "name": "ParameterList", + "src": "5063:18:1" + } + ], + "id": 624, + "name": "FunctionDefinition", + "src": "5003:79:1" + }, + { + "attributes": { + "functionSelector": "a22cb465", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "id": 625, + "name": "StructuredDocumentation", + "src": "5088:309:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 626, + "name": "ElementaryTypeName", + "src": "5429:7:1" + } + ], + "id": 627, + "name": "VariableDeclaration", + "src": "5429:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_approved", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 628, + "name": "ElementaryTypeName", + "src": "5447:4:1" + } + ], + "id": 629, + "name": "VariableDeclaration", + "src": "5447:14:1" + } + ], + "id": 630, + "name": "ParameterList", + "src": "5428:34:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 631, + "name": "ParameterList", + "src": "5471:0:1" + } + ], + "id": 632, + "name": "FunctionDefinition", + "src": "5402:70:1" + }, + { + "attributes": { + "functionSelector": "e985e9c5", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "id": 633, + "name": "StructuredDocumentation", + "src": "5478:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 634, + "name": "ElementaryTypeName", + "src": "5647:7:1" + } + ], + "id": 635, + "name": "VariableDeclaration", + "src": "5647:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 636, + "name": "ElementaryTypeName", + "src": "5662:7:1" + } + ], + "id": 637, + "name": "VariableDeclaration", + "src": "5662:16:1" + } + ], + "id": 638, + "name": "ParameterList", + "src": "5646:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 639, + "name": "ElementaryTypeName", + "src": "5703:4:1" + } + ], + "id": 640, + "name": "VariableDeclaration", + "src": "5703:4:1" + } + ], + "id": 641, + "name": "ParameterList", + "src": "5702:6:1" + } + ], + "id": 642, + "name": "FunctionDefinition", + "src": "5621:88:1" + }, + { + "attributes": { + "functionSelector": "b88d4fde", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 643, + "name": "StructuredDocumentation", + "src": "5715:568:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 644, + "name": "ElementaryTypeName", + "src": "6314:7:1" + } + ], + "id": 645, + "name": "VariableDeclaration", + "src": "6314:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 646, + "name": "ElementaryTypeName", + "src": "6328:7:1" + } + ], + "id": 647, + "name": "VariableDeclaration", + "src": "6328:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 648, + "name": "ElementaryTypeName", + "src": "6340:7:1" + } + ], + "id": 649, + "name": "VariableDeclaration", + "src": "6340:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 654, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 650, + "name": "ElementaryTypeName", + "src": "6357:5:1" + } + ], + "id": 651, + "name": "VariableDeclaration", + "src": "6357:19:1" + } + ], + "id": 652, + "name": "ParameterList", + "src": "6313:64:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 653, + "name": "ParameterList", + "src": "6386:0:1" + } + ], + "id": 654, + "name": "FunctionDefinition", + "src": "6288:99:1" + } + ], + "id": 655, + "name": "ContractDefinition", + "src": "1975:4414:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 656, + "name": "PragmaDirective", + "src": "6457:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 657, + "name": "StructuredDocumentation", + "src": "6491:133:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 658, + "name": "UserDefinedTypeName", + "src": "6654:7:1" + } + ], + "id": 659, + "name": "InheritanceSpecifier", + "src": "6654:7:1" + }, + { + "attributes": { + "functionSelector": "06fdde03", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection name." + }, + "id": 660, + "name": "StructuredDocumentation", + "src": "6669:58:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 661, + "name": "ParameterList", + "src": "6745:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 665, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 662, + "name": "ElementaryTypeName", + "src": "6771:6:1" + } + ], + "id": 663, + "name": "VariableDeclaration", + "src": "6771:13:1" + } + ], + "id": 664, + "name": "ParameterList", + "src": "6770:15:1" + } + ], + "id": 665, + "name": "FunctionDefinition", + "src": "6732:54:1" + }, + { + "attributes": { + "functionSelector": "95d89b41", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection symbol." + }, + "id": 666, + "name": "StructuredDocumentation", + "src": "6792:60:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 667, + "name": "ParameterList", + "src": "6872:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 671, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 668, + "name": "ElementaryTypeName", + "src": "6898:6:1" + } + ], + "id": 669, + "name": "VariableDeclaration", + "src": "6898:13:1" + } + ], + "id": 670, + "name": "ParameterList", + "src": "6897:15:1" + } + ], + "id": 671, + "name": "FunctionDefinition", + "src": "6857:56:1" + }, + { + "attributes": { + "functionSelector": "c87b56dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "id": 672, + "name": "StructuredDocumentation", + "src": "6919:90:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 679, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 673, + "name": "ElementaryTypeName", + "src": "7032:7:1" + } + ], + "id": 674, + "name": "VariableDeclaration", + "src": "7032:15:1" + } + ], + "id": 675, + "name": "ParameterList", + "src": "7031:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 679, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 676, + "name": "ElementaryTypeName", + "src": "7072:6:1" + } + ], + "id": 677, + "name": "VariableDeclaration", + "src": "7072:13:1" + } + ], + "id": 678, + "name": "ParameterList", + "src": "7071:15:1" + } + ], + "id": 679, + "name": "FunctionDefinition", + "src": "7014:73:1" + } + ], + "id": 680, + "name": "ContractDefinition", + "src": "6625:464:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 681, + "name": "PragmaDirective", + "src": "7161:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 682, + "name": "StructuredDocumentation", + "src": "7195:136:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 683, + "name": "UserDefinedTypeName", + "src": "7363:7:1" + } + ], + "id": 684, + "name": "InheritanceSpecifier", + "src": "7363:7:1" + }, + { + "attributes": { + "functionSelector": "18160ddd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "id": 685, + "name": "StructuredDocumentation", + "src": "7378:82:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 686, + "name": "ParameterList", + "src": "7485:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 690, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 687, + "name": "ElementaryTypeName", + "src": "7511:7:1" + } + ], + "id": 688, + "name": "VariableDeclaration", + "src": "7511:7:1" + } + ], + "id": 689, + "name": "ParameterList", + "src": "7510:9:1" + } + ], + "id": 690, + "name": "FunctionDefinition", + "src": "7465:55:1" + }, + { + "attributes": { + "functionSelector": "2f745c59", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "id": 691, + "name": "StructuredDocumentation", + "src": "7526:171:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 692, + "name": "ElementaryTypeName", + "src": "7731:7:1" + } + ], + "id": 693, + "name": "VariableDeclaration", + "src": "7731:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 694, + "name": "ElementaryTypeName", + "src": "7746:7:1" + } + ], + "id": 695, + "name": "VariableDeclaration", + "src": "7746:13:1" + } + ], + "id": 696, + "name": "ParameterList", + "src": "7730:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 697, + "name": "ElementaryTypeName", + "src": "7784:7:1" + } + ], + "id": 698, + "name": "VariableDeclaration", + "src": "7784:15:1" + } + ], + "id": 699, + "name": "ParameterList", + "src": "7783:17:1" + } + ], + "id": 700, + "name": "FunctionDefinition", + "src": "7702:99:1" + }, + { + "attributes": { + "functionSelector": "4f6ccce7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "id": 701, + "name": "StructuredDocumentation", + "src": "7807:164:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 702, + "name": "ElementaryTypeName", + "src": "7998:7:1" + } + ], + "id": 703, + "name": "VariableDeclaration", + "src": "7998:13:1" + } + ], + "id": 704, + "name": "ParameterList", + "src": "7997:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 705, + "name": "ElementaryTypeName", + "src": "8036:7:1" + } + ], + "id": 706, + "name": "VariableDeclaration", + "src": "8036:7:1" + } + ], + "id": 707, + "name": "ParameterList", + "src": "8035:9:1" + } + ], + "id": 708, + "name": "FunctionDefinition", + "src": "7976:69:1" + } + ], + "id": 709, + "name": "ContractDefinition", + "src": "7332:715:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 710, + "name": "PragmaDirective", + "src": "8117:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "id": 711, + "name": "StructuredDocumentation", + "src": "8150:152:1" + }, + { + "attributes": { + "functionSelector": "150b7a02", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "onERC721Received", + "scope": 726, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "id": 712, + "name": "StructuredDocumentation", + "src": "8335:485:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 713, + "name": "ElementaryTypeName", + "src": "8851:7:1" + } + ], + "id": 714, + "name": "VariableDeclaration", + "src": "8851:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 715, + "name": "ElementaryTypeName", + "src": "8869:7:1" + } + ], + "id": 716, + "name": "VariableDeclaration", + "src": "8869:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 717, + "name": "ElementaryTypeName", + "src": "8883:7:1" + } + ], + "id": 718, + "name": "VariableDeclaration", + "src": "8883:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 725, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 719, + "name": "ElementaryTypeName", + "src": "8900:5:1" + } + ], + "id": 720, + "name": "VariableDeclaration", + "src": "8900:19:1" + } + ], + "id": 721, + "name": "ParameterList", + "src": "8850:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 722, + "name": "ElementaryTypeName", + "src": "8939:6:1" + } + ], + "id": 723, + "name": "VariableDeclaration", + "src": "8939:6:1" + } + ], + "id": 724, + "name": "ParameterList", + "src": "8938:8:1" + } + ], + "id": 725, + "name": "FunctionDefinition", + "src": "8825:122:1" + } + ], + "id": 726, + "name": "ContractDefinition", + "src": "8303:646:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 727, + "name": "PragmaDirective", + "src": "9009:31:1" + }, + { + "attributes": { + "abstract": true, + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "id": 728, + "name": "StructuredDocumentation", + "src": "9043:171:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 729, + "name": "UserDefinedTypeName", + "src": "9243:7:1" + } + ], + "id": 730, + "name": "InheritanceSpecifier", + "src": "9243:7:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 731, + "name": "ElementaryTypeName", + "src": "9340:6:1" + }, + { + "attributes": { + "hexvalue": "30783031666663396137", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 33540519", + "value": "0x01ffc9a7" + }, + "id": 732, + "name": "Literal", + "src": "9387:10:1" + } + ], + "id": 733, + "name": "VariableDeclaration", + "src": "9340:57:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_supportedInterfaces", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes4 => bool)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes4 => bool)" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 735, + "name": "ElementaryTypeName", + "src": "9499:6:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 736, + "name": "ElementaryTypeName", + "src": "9509:4:1" + } + ], + "id": 737, + "name": "Mapping", + "src": "9491:23:1" + }, + { + "attributes": { + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 734, + "name": "StructuredDocumentation", + "src": "9404:82:1" + } + ], + "id": 738, + "name": "VariableDeclaration", + "src": "9491:52:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 739, + "name": "ParameterList", + "src": "9562:2:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 740, + "name": "ParameterList", + "src": "9565:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 741, + "name": "Identifier", + "src": "9711:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 733, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC165" + }, + "id": 742, + "name": "Identifier", + "src": "9730:20:1" + } + ], + "id": 743, + "name": "FunctionCall", + "src": "9711:40:1" + } + ], + "id": 744, + "name": "ExpressionStatement", + "src": "9711:40:1" + } + ], + "id": 745, + "name": "Block", + "src": "9565:193:1" + } + ], + "id": 746, + "name": "FunctionDefinition", + "src": "9550:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 540 + ], + "functionSelector": "01ffc9a7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 781, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "id": 747, + "name": "StructuredDocumentation", + "src": "9764:139:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 751, + "name": "OverrideSpecifier", + "src": "9975:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 748, + "name": "ElementaryTypeName", + "src": "9935:6:1" + } + ], + "id": 749, + "name": "VariableDeclaration", + "src": "9935:18:1" + } + ], + "id": 750, + "name": "ParameterList", + "src": "9934:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 752, + "name": "ElementaryTypeName", + "src": "9993:4:1" + } + ], + "id": 753, + "name": "VariableDeclaration", + "src": "9993:4:1" + } + ], + "id": 754, + "name": "ParameterList", + "src": "9992:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 754 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 755, + "name": "Identifier", + "src": "10016:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 749, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 756, + "name": "Identifier", + "src": "10037:11:1" + } + ], + "id": 757, + "name": "IndexAccess", + "src": "10016:33:1" + } + ], + "id": 758, + "name": "Return", + "src": "10009:40:1" + } + ], + "id": 759, + "name": "Block", + "src": "9999:57:1" + } + ], + "id": 760, + "name": "FunctionDefinition", + "src": "9908:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_registerInterface", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 761, + "name": "StructuredDocumentation", + "src": "10062:383:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 780, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 762, + "name": "ElementaryTypeName", + "src": "10478:6:1" + } + ], + "id": 763, + "name": "VariableDeclaration", + "src": "10478:18:1" + } + ], + "id": 764, + "name": "ParameterList", + "src": "10477:20:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 765, + "name": "ParameterList", + "src": "10515:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 766, + "name": "Identifier", + "src": "10525:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 767, + "name": "Identifier", + "src": "10533:11:1" + }, + { + "attributes": { + "hexvalue": "30786666666666666666", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4294967295", + "value": "0xffffffff" + }, + "id": 768, + "name": "Literal", + "src": "10548:10:1" + } + ], + "id": 769, + "name": "BinaryOperation", + "src": "10533:25:1" + }, + { + "attributes": { + "hexvalue": "4552433136353a20696e76616c696420696e74657266616365206964", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC165: invalid interface id\"", + "value": "ERC165: invalid interface id" + }, + "id": 770, + "name": "Literal", + "src": "10560:30:1" + } + ], + "id": 771, + "name": "FunctionCall", + "src": "10525:66:1" + } + ], + "id": 772, + "name": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 773, + "name": "Identifier", + "src": "10601:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 774, + "name": "Identifier", + "src": "10622:11:1" + } + ], + "id": 775, + "name": "IndexAccess", + "src": "10601:33:1" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 776, + "name": "Literal", + "src": "10637:4:1" + } + ], + "id": 777, + "name": "Assignment", + "src": "10601:40:1" + } + ], + "id": 778, + "name": "ExpressionStatement", + "src": "10601:40:1" + } + ], + "id": 779, + "name": "Block", + "src": "10515:133:1" + } + ], + "id": 780, + "name": "FunctionDefinition", + "src": "10450:198:1" + } + ], + "id": 781, + "name": "ContractDefinition", + "src": "9215:1435:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 782, + "name": "PragmaDirective", + "src": "10703:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "id": 783, + "name": "StructuredDocumentation", + "src": "10736:563:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryAdd", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 784, + "name": "StructuredDocumentation", + "src": "11323:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 785, + "name": "ElementaryTypeName", + "src": "11475:7:1" + } + ], + "id": 786, + "name": "VariableDeclaration", + "src": "11475:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 787, + "name": "ElementaryTypeName", + "src": "11486:7:1" + } + ], + "id": 788, + "name": "VariableDeclaration", + "src": "11486:9:1" + } + ], + "id": 789, + "name": "ParameterList", + "src": "11474:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 790, + "name": "ElementaryTypeName", + "src": "11520:4:1" + } + ], + "id": 791, + "name": "VariableDeclaration", + "src": "11520:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 792, + "name": "ElementaryTypeName", + "src": "11526:7:1" + } + ], + "id": 793, + "name": "VariableDeclaration", + "src": "11526:7:1" + } + ], + "id": 794, + "name": "ParameterList", + "src": "11519:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 796 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 813, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 795, + "name": "ElementaryTypeName", + "src": "11545:7:1" + } + ], + "id": 796, + "name": "VariableDeclaration", + "src": "11545:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 797, + "name": "Identifier", + "src": "11557:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 788, + "type": "uint256", + "value": "b" + }, + "id": 798, + "name": "Identifier", + "src": "11561:1:1" + } + ], + "id": 799, + "name": "BinaryOperation", + "src": "11557:5:1" + } + ], + "id": 800, + "name": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 801, + "name": "Identifier", + "src": "11576:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 802, + "name": "Identifier", + "src": "11580:1:1" + } + ], + "id": 803, + "name": "BinaryOperation", + "src": "11576:5:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 804, + "name": "Literal", + "src": "11591:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 805, + "name": "Literal", + "src": "11598:1:1" + } + ], + "id": 806, + "name": "TupleExpression", + "src": "11590:10:1" + } + ], + "id": 807, + "name": "Return", + "src": "11583:17:1" + } + ], + "id": 808, + "name": "IfStatement", + "src": "11572:28:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 809, + "name": "Literal", + "src": "11618:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 810, + "name": "Identifier", + "src": "11624:1:1" + } + ], + "id": 811, + "name": "TupleExpression", + "src": "11617:9:1" + } + ], + "id": 812, + "name": "Return", + "src": "11610:16:1" + } + ], + "id": 813, + "name": "Block", + "src": "11535:98:1" + } + ], + "id": 814, + "name": "FunctionDefinition", + "src": "11459:174:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "trySub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 815, + "name": "StructuredDocumentation", + "src": "11639:135:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 816, + "name": "ElementaryTypeName", + "src": "11795:7:1" + } + ], + "id": 817, + "name": "VariableDeclaration", + "src": "11795:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 818, + "name": "ElementaryTypeName", + "src": "11806:7:1" + } + ], + "id": 819, + "name": "VariableDeclaration", + "src": "11806:9:1" + } + ], + "id": 820, + "name": "ParameterList", + "src": "11794:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 821, + "name": "ElementaryTypeName", + "src": "11840:4:1" + } + ], + "id": 822, + "name": "VariableDeclaration", + "src": "11840:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 823, + "name": "ElementaryTypeName", + "src": "11846:7:1" + } + ], + "id": 824, + "name": "VariableDeclaration", + "src": "11846:7:1" + } + ], + "id": 825, + "name": "ParameterList", + "src": "11839:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 826, + "name": "Identifier", + "src": "11869:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 827, + "name": "Identifier", + "src": "11873:1:1" + } + ], + "id": 828, + "name": "BinaryOperation", + "src": "11869:5:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 829, + "name": "Literal", + "src": "11884:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 830, + "name": "Literal", + "src": "11891:1:1" + } + ], + "id": 831, + "name": "TupleExpression", + "src": "11883:10:1" + } + ], + "id": 832, + "name": "Return", + "src": "11876:17:1" + } + ], + "id": 833, + "name": "IfStatement", + "src": "11865:28:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 834, + "name": "Literal", + "src": "11911:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 835, + "name": "Identifier", + "src": "11917:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 836, + "name": "Identifier", + "src": "11921:1:1" + } + ], + "id": 837, + "name": "BinaryOperation", + "src": "11917:5:1" + } + ], + "id": 838, + "name": "TupleExpression", + "src": "11910:13:1" + } + ], + "id": 839, + "name": "Return", + "src": "11903:20:1" + } + ], + "id": 840, + "name": "Block", + "src": "11855:75:1" + } + ], + "id": 841, + "name": "FunctionDefinition", + "src": "11779:151:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 842, + "name": "StructuredDocumentation", + "src": "11936:137:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 843, + "name": "ElementaryTypeName", + "src": "12094:7:1" + } + ], + "id": 844, + "name": "VariableDeclaration", + "src": "12094:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 845, + "name": "ElementaryTypeName", + "src": "12105:7:1" + } + ], + "id": 846, + "name": "VariableDeclaration", + "src": "12105:9:1" + } + ], + "id": 847, + "name": "ParameterList", + "src": "12093:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 848, + "name": "ElementaryTypeName", + "src": "12139:4:1" + } + ], + "id": 849, + "name": "VariableDeclaration", + "src": "12139:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 850, + "name": "ElementaryTypeName", + "src": "12145:7:1" + } + ], + "id": 851, + "name": "VariableDeclaration", + "src": "12145:7:1" + } + ], + "id": 852, + "name": "ParameterList", + "src": "12138:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 853, + "name": "Identifier", + "src": "12386:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 854, + "name": "Literal", + "src": "12391:1:1" + } + ], + "id": 855, + "name": "BinaryOperation", + "src": "12386:6:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 856, + "name": "Literal", + "src": "12402:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 857, + "name": "Literal", + "src": "12408:1:1" + } + ], + "id": 858, + "name": "TupleExpression", + "src": "12401:9:1" + } + ], + "id": 859, + "name": "Return", + "src": "12394:16:1" + } + ], + "id": 860, + "name": "IfStatement", + "src": "12382:28:1" + }, + { + "attributes": { + "assignments": [ + 862 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 881, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 861, + "name": "ElementaryTypeName", + "src": "12420:7:1" + } + ], + "id": 862, + "name": "VariableDeclaration", + "src": "12420:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 863, + "name": "Identifier", + "src": "12432:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 864, + "name": "Identifier", + "src": "12436:1:1" + } + ], + "id": 865, + "name": "BinaryOperation", + "src": "12432:5:1" + } + ], + "id": 866, + "name": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 867, + "name": "Identifier", + "src": "12451:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 868, + "name": "Identifier", + "src": "12455:1:1" + } + ], + "id": 869, + "name": "BinaryOperation", + "src": "12451:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 870, + "name": "Identifier", + "src": "12460:1:1" + } + ], + "id": 871, + "name": "BinaryOperation", + "src": "12451:10:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 872, + "name": "Literal", + "src": "12471:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 873, + "name": "Literal", + "src": "12478:1:1" + } + ], + "id": 874, + "name": "TupleExpression", + "src": "12470:10:1" + } + ], + "id": 875, + "name": "Return", + "src": "12463:17:1" + } + ], + "id": 876, + "name": "IfStatement", + "src": "12447:33:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 877, + "name": "Literal", + "src": "12498:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 878, + "name": "Identifier", + "src": "12504:1:1" + } + ], + "id": 879, + "name": "TupleExpression", + "src": "12497:9:1" + } + ], + "id": 880, + "name": "Return", + "src": "12490:16:1" + } + ], + "id": 881, + "name": "Block", + "src": "12154:359:1" + } + ], + "id": 882, + "name": "FunctionDefinition", + "src": "12078:435:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryDiv", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 883, + "name": "StructuredDocumentation", + "src": "12519:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 884, + "name": "ElementaryTypeName", + "src": "12678:7:1" + } + ], + "id": 885, + "name": "VariableDeclaration", + "src": "12678:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 886, + "name": "ElementaryTypeName", + "src": "12689:7:1" + } + ], + "id": 887, + "name": "VariableDeclaration", + "src": "12689:9:1" + } + ], + "id": 888, + "name": "ParameterList", + "src": "12677:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 889, + "name": "ElementaryTypeName", + "src": "12723:4:1" + } + ], + "id": 890, + "name": "VariableDeclaration", + "src": "12723:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 891, + "name": "ElementaryTypeName", + "src": "12729:7:1" + } + ], + "id": 892, + "name": "VariableDeclaration", + "src": "12729:7:1" + } + ], + "id": 893, + "name": "ParameterList", + "src": "12722:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 894, + "name": "Identifier", + "src": "12752:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 895, + "name": "Literal", + "src": "12757:1:1" + } + ], + "id": 896, + "name": "BinaryOperation", + "src": "12752:6:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 897, + "name": "Literal", + "src": "12768:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 898, + "name": "Literal", + "src": "12775:1:1" + } + ], + "id": 899, + "name": "TupleExpression", + "src": "12767:10:1" + } + ], + "id": 900, + "name": "Return", + "src": "12760:17:1" + } + ], + "id": 901, + "name": "IfStatement", + "src": "12748:29:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 902, + "name": "Literal", + "src": "12795:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 885, + "type": "uint256", + "value": "a" + }, + "id": 903, + "name": "Identifier", + "src": "12801:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 904, + "name": "Identifier", + "src": "12805:1:1" + } + ], + "id": 905, + "name": "BinaryOperation", + "src": "12801:5:1" + } + ], + "id": 906, + "name": "TupleExpression", + "src": "12794:13:1" + } + ], + "id": 907, + "name": "Return", + "src": "12787:20:1" + } + ], + "id": 908, + "name": "Block", + "src": "12738:76:1" + } + ], + "id": 909, + "name": "FunctionDefinition", + "src": "12662:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 910, + "name": "StructuredDocumentation", + "src": "12820:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 911, + "name": "ElementaryTypeName", + "src": "12989:7:1" + } + ], + "id": 912, + "name": "VariableDeclaration", + "src": "12989:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 913, + "name": "ElementaryTypeName", + "src": "13000:7:1" + } + ], + "id": 914, + "name": "VariableDeclaration", + "src": "13000:9:1" + } + ], + "id": 915, + "name": "ParameterList", + "src": "12988:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 916, + "name": "ElementaryTypeName", + "src": "13034:4:1" + } + ], + "id": 917, + "name": "VariableDeclaration", + "src": "13034:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 918, + "name": "ElementaryTypeName", + "src": "13040:7:1" + } + ], + "id": 919, + "name": "VariableDeclaration", + "src": "13040:7:1" + } + ], + "id": 920, + "name": "ParameterList", + "src": "13033:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 921, + "name": "Identifier", + "src": "13063:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 922, + "name": "Literal", + "src": "13068:1:1" + } + ], + "id": 923, + "name": "BinaryOperation", + "src": "13063:6:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 924, + "name": "Literal", + "src": "13079:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 925, + "name": "Literal", + "src": "13086:1:1" + } + ], + "id": 926, + "name": "TupleExpression", + "src": "13078:10:1" + } + ], + "id": 927, + "name": "Return", + "src": "13071:17:1" + } + ], + "id": 928, + "name": "IfStatement", + "src": "13059:29:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 929, + "name": "Literal", + "src": "13106:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 912, + "type": "uint256", + "value": "a" + }, + "id": 930, + "name": "Identifier", + "src": "13112:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 931, + "name": "Identifier", + "src": "13116:1:1" + } + ], + "id": 932, + "name": "BinaryOperation", + "src": "13112:5:1" + } + ], + "id": 933, + "name": "TupleExpression", + "src": "13105:13:1" + } + ], + "id": 934, + "name": "Return", + "src": "13098:20:1" + } + ], + "id": 935, + "name": "Block", + "src": "13049:76:1" + } + ], + "id": 936, + "name": "FunctionDefinition", + "src": "12973:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 937, + "name": "StructuredDocumentation", + "src": "13131:224:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 938, + "name": "ElementaryTypeName", + "src": "13373:7:1" + } + ], + "id": 939, + "name": "VariableDeclaration", + "src": "13373:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 940, + "name": "ElementaryTypeName", + "src": "13384:7:1" + } + ], + "id": 941, + "name": "VariableDeclaration", + "src": "13384:9:1" + } + ], + "id": 942, + "name": "ParameterList", + "src": "13372:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 943, + "name": "ElementaryTypeName", + "src": "13418:7:1" + } + ], + "id": 944, + "name": "VariableDeclaration", + "src": "13418:7:1" + } + ], + "id": 945, + "name": "ParameterList", + "src": "13417:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 947 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 961, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 946, + "name": "ElementaryTypeName", + "src": "13437:7:1" + } + ], + "id": 947, + "name": "VariableDeclaration", + "src": "13437:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 948, + "name": "Identifier", + "src": "13449:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 941, + "type": "uint256", + "value": "b" + }, + "id": 949, + "name": "Identifier", + "src": "13453:1:1" + } + ], + "id": 950, + "name": "BinaryOperation", + "src": "13449:5:1" + } + ], + "id": 951, + "name": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 952, + "name": "Identifier", + "src": "13464:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 953, + "name": "Identifier", + "src": "13472:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 954, + "name": "Identifier", + "src": "13477:1:1" + } + ], + "id": 955, + "name": "BinaryOperation", + "src": "13472:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: addition overflow\"", + "value": "SafeMath: addition overflow" + }, + "id": 956, + "name": "Literal", + "src": "13480:29:1" + } + ], + "id": 957, + "name": "FunctionCall", + "src": "13464:46:1" + } + ], + "id": 958, + "name": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "attributes": { + "functionReturnParameters": 945 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 959, + "name": "Identifier", + "src": "13527:1:1" + } + ], + "id": 960, + "name": "Return", + "src": "13520:8:1" + } + ], + "id": 961, + "name": "Block", + "src": "13427:108:1" + } + ], + "id": 962, + "name": "FunctionDefinition", + "src": "13360:175:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 963, + "name": "StructuredDocumentation", + "src": "13541:260:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 964, + "name": "ElementaryTypeName", + "src": "13819:7:1" + } + ], + "id": 965, + "name": "VariableDeclaration", + "src": "13819:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 966, + "name": "ElementaryTypeName", + "src": "13830:7:1" + } + ], + "id": 967, + "name": "VariableDeclaration", + "src": "13830:9:1" + } + ], + "id": 968, + "name": "ParameterList", + "src": "13818:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 969, + "name": "ElementaryTypeName", + "src": "13864:7:1" + } + ], + "id": 970, + "name": "VariableDeclaration", + "src": "13864:7:1" + } + ], + "id": 971, + "name": "ParameterList", + "src": "13863:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 972, + "name": "Identifier", + "src": "13883:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 973, + "name": "Identifier", + "src": "13891:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 974, + "name": "Identifier", + "src": "13896:1:1" + } + ], + "id": 975, + "name": "BinaryOperation", + "src": "13891:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: subtraction overflow\"", + "value": "SafeMath: subtraction overflow" + }, + "id": 976, + "name": "Literal", + "src": "13899:32:1" + } + ], + "id": 977, + "name": "FunctionCall", + "src": "13883:49:1" + } + ], + "id": 978, + "name": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "attributes": { + "functionReturnParameters": 971 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 979, + "name": "Identifier", + "src": "13949:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 980, + "name": "Identifier", + "src": "13953:1:1" + } + ], + "id": 981, + "name": "BinaryOperation", + "src": "13949:5:1" + } + ], + "id": 982, + "name": "Return", + "src": "13942:12:1" + } + ], + "id": 983, + "name": "Block", + "src": "13873:88:1" + } + ], + "id": 984, + "name": "FunctionDefinition", + "src": "13806:155:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 985, + "name": "StructuredDocumentation", + "src": "13967:236:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 986, + "name": "ElementaryTypeName", + "src": "14221:7:1" + } + ], + "id": 987, + "name": "VariableDeclaration", + "src": "14221:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 988, + "name": "ElementaryTypeName", + "src": "14232:7:1" + } + ], + "id": 989, + "name": "VariableDeclaration", + "src": "14232:9:1" + } + ], + "id": 990, + "name": "ParameterList", + "src": "14220:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 991, + "name": "ElementaryTypeName", + "src": "14266:7:1" + } + ], + "id": 992, + "name": "VariableDeclaration", + "src": "14266:7:1" + } + ], + "id": 993, + "name": "ParameterList", + "src": "14265:9:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 994, + "name": "Identifier", + "src": "14289:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 995, + "name": "Literal", + "src": "14294:1:1" + } + ], + "id": 996, + "name": "BinaryOperation", + "src": "14289:6:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 997, + "name": "Literal", + "src": "14304:1:1" + } + ], + "id": 998, + "name": "Return", + "src": "14297:8:1" + } + ], + "id": 999, + "name": "IfStatement", + "src": "14285:20:1" + }, + { + "attributes": { + "assignments": [ + 1001 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 1017, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1000, + "name": "ElementaryTypeName", + "src": "14315:7:1" + } + ], + "id": 1001, + "name": "VariableDeclaration", + "src": "14315:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1002, + "name": "Identifier", + "src": "14327:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1003, + "name": "Identifier", + "src": "14331:1:1" + } + ], + "id": 1004, + "name": "BinaryOperation", + "src": "14327:5:1" + } + ], + "id": 1005, + "name": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1006, + "name": "Identifier", + "src": "14342:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1007, + "name": "Identifier", + "src": "14350:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1008, + "name": "Identifier", + "src": "14354:1:1" + } + ], + "id": 1009, + "name": "BinaryOperation", + "src": "14350:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1010, + "name": "Identifier", + "src": "14359:1:1" + } + ], + "id": 1011, + "name": "BinaryOperation", + "src": "14350:10:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: multiplication overflow\"", + "value": "SafeMath: multiplication overflow" + }, + "id": 1012, + "name": "Literal", + "src": "14362:35:1" + } + ], + "id": 1013, + "name": "FunctionCall", + "src": "14342:56:1" + } + ], + "id": 1014, + "name": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1015, + "name": "Identifier", + "src": "14415:1:1" + } + ], + "id": 1016, + "name": "Return", + "src": "14408:8:1" + } + ], + "id": 1017, + "name": "Block", + "src": "14275:148:1" + } + ], + "id": 1018, + "name": "FunctionDefinition", + "src": "14208:215:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1019, + "name": "StructuredDocumentation", + "src": "14429:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1020, + "name": "ElementaryTypeName", + "src": "14900:7:1" + } + ], + "id": 1021, + "name": "VariableDeclaration", + "src": "14900:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1022, + "name": "ElementaryTypeName", + "src": "14911:7:1" + } + ], + "id": 1023, + "name": "VariableDeclaration", + "src": "14911:9:1" + } + ], + "id": 1024, + "name": "ParameterList", + "src": "14899:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1025, + "name": "ElementaryTypeName", + "src": "14945:7:1" + } + ], + "id": 1026, + "name": "VariableDeclaration", + "src": "14945:7:1" + } + ], + "id": 1027, + "name": "ParameterList", + "src": "14944:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1028, + "name": "Identifier", + "src": "14964:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1029, + "name": "Identifier", + "src": "14972:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1030, + "name": "Literal", + "src": "14976:1:1" + } + ], + "id": 1031, + "name": "BinaryOperation", + "src": "14972:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206469766973696f6e206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: division by zero\"", + "value": "SafeMath: division by zero" + }, + "id": 1032, + "name": "Literal", + "src": "14979:28:1" + } + ], + "id": 1033, + "name": "FunctionCall", + "src": "14964:44:1" + } + ], + "id": 1034, + "name": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "attributes": { + "functionReturnParameters": 1027 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1021, + "type": "uint256", + "value": "a" + }, + "id": 1035, + "name": "Identifier", + "src": "15025:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1036, + "name": "Identifier", + "src": "15029:1:1" + } + ], + "id": 1037, + "name": "BinaryOperation", + "src": "15025:5:1" + } + ], + "id": 1038, + "name": "Return", + "src": "15018:12:1" + } + ], + "id": 1039, + "name": "Block", + "src": "14954:83:1" + } + ], + "id": 1040, + "name": "FunctionDefinition", + "src": "14887:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1041, + "name": "StructuredDocumentation", + "src": "15043:442:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1042, + "name": "ElementaryTypeName", + "src": "15503:7:1" + } + ], + "id": 1043, + "name": "VariableDeclaration", + "src": "15503:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1044, + "name": "ElementaryTypeName", + "src": "15514:7:1" + } + ], + "id": 1045, + "name": "VariableDeclaration", + "src": "15514:9:1" + } + ], + "id": 1046, + "name": "ParameterList", + "src": "15502:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1047, + "name": "ElementaryTypeName", + "src": "15548:7:1" + } + ], + "id": 1048, + "name": "VariableDeclaration", + "src": "15548:7:1" + } + ], + "id": 1049, + "name": "ParameterList", + "src": "15547:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1050, + "name": "Identifier", + "src": "15567:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1051, + "name": "Identifier", + "src": "15575:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1052, + "name": "Literal", + "src": "15579:1:1" + } + ], + "id": 1053, + "name": "BinaryOperation", + "src": "15575:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: modulo by zero\"", + "value": "SafeMath: modulo by zero" + }, + "id": 1054, + "name": "Literal", + "src": "15582:26:1" + } + ], + "id": 1055, + "name": "FunctionCall", + "src": "15567:42:1" + } + ], + "id": 1056, + "name": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "attributes": { + "functionReturnParameters": 1049 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1043, + "type": "uint256", + "value": "a" + }, + "id": 1057, + "name": "Identifier", + "src": "15626:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1058, + "name": "Identifier", + "src": "15630:1:1" + } + ], + "id": 1059, + "name": "BinaryOperation", + "src": "15626:5:1" + } + ], + "id": 1060, + "name": "Return", + "src": "15619:12:1" + } + ], + "id": 1061, + "name": "Block", + "src": "15557:81:1" + } + ], + "id": 1062, + "name": "FunctionDefinition", + "src": "15490:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1063, + "name": "StructuredDocumentation", + "src": "15644:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1064, + "name": "ElementaryTypeName", + "src": "16115:7:1" + } + ], + "id": 1065, + "name": "VariableDeclaration", + "src": "16115:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1066, + "name": "ElementaryTypeName", + "src": "16126:7:1" + } + ], + "id": 1067, + "name": "VariableDeclaration", + "src": "16126:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1086, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1068, + "name": "ElementaryTypeName", + "src": "16137:6:1" + } + ], + "id": 1069, + "name": "VariableDeclaration", + "src": "16137:26:1" + } + ], + "id": 1070, + "name": "ParameterList", + "src": "16114:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1071, + "name": "ElementaryTypeName", + "src": "16188:7:1" + } + ], + "id": 1072, + "name": "VariableDeclaration", + "src": "16188:7:1" + } + ], + "id": 1073, + "name": "ParameterList", + "src": "16187:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1074, + "name": "Identifier", + "src": "16207:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1075, + "name": "Identifier", + "src": "16215:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1076, + "name": "Identifier", + "src": "16220:1:1" + } + ], + "id": 1077, + "name": "BinaryOperation", + "src": "16215:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1069, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1078, + "name": "Identifier", + "src": "16223:12:1" + } + ], + "id": 1079, + "name": "FunctionCall", + "src": "16207:29:1" + } + ], + "id": 1080, + "name": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "attributes": { + "functionReturnParameters": 1073 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1081, + "name": "Identifier", + "src": "16253:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1082, + "name": "Identifier", + "src": "16257:1:1" + } + ], + "id": 1083, + "name": "BinaryOperation", + "src": "16253:5:1" + } + ], + "id": 1084, + "name": "Return", + "src": "16246:12:1" + } + ], + "id": 1085, + "name": "Block", + "src": "16197:68:1" + } + ], + "id": 1086, + "name": "FunctionDefinition", + "src": "16102:163:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1087, + "name": "StructuredDocumentation", + "src": "16271:646:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1088, + "name": "ElementaryTypeName", + "src": "16935:7:1" + } + ], + "id": 1089, + "name": "VariableDeclaration", + "src": "16935:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1090, + "name": "ElementaryTypeName", + "src": "16946:7:1" + } + ], + "id": 1091, + "name": "VariableDeclaration", + "src": "16946:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1110, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1092, + "name": "ElementaryTypeName", + "src": "16957:6:1" + } + ], + "id": 1093, + "name": "VariableDeclaration", + "src": "16957:26:1" + } + ], + "id": 1094, + "name": "ParameterList", + "src": "16934:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1095, + "name": "ElementaryTypeName", + "src": "17008:7:1" + } + ], + "id": 1096, + "name": "VariableDeclaration", + "src": "17008:7:1" + } + ], + "id": 1097, + "name": "ParameterList", + "src": "17007:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1098, + "name": "Identifier", + "src": "17027:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1099, + "name": "Identifier", + "src": "17035:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1100, + "name": "Literal", + "src": "17039:1:1" + } + ], + "id": 1101, + "name": "BinaryOperation", + "src": "17035:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1093, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1102, + "name": "Identifier", + "src": "17042:12:1" + } + ], + "id": 1103, + "name": "FunctionCall", + "src": "17027:28:1" + } + ], + "id": 1104, + "name": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1097 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1089, + "type": "uint256", + "value": "a" + }, + "id": 1105, + "name": "Identifier", + "src": "17072:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1106, + "name": "Identifier", + "src": "17076:1:1" + } + ], + "id": 1107, + "name": "BinaryOperation", + "src": "17072:5:1" + } + ], + "id": 1108, + "name": "Return", + "src": "17065:12:1" + } + ], + "id": 1109, + "name": "Block", + "src": "17017:67:1" + } + ], + "id": 1110, + "name": "FunctionDefinition", + "src": "16922:162:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1111, + "name": "StructuredDocumentation", + "src": "17090:635:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1112, + "name": "ElementaryTypeName", + "src": "17743:7:1" + } + ], + "id": 1113, + "name": "VariableDeclaration", + "src": "17743:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1114, + "name": "ElementaryTypeName", + "src": "17754:7:1" + } + ], + "id": 1115, + "name": "VariableDeclaration", + "src": "17754:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1134, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1116, + "name": "ElementaryTypeName", + "src": "17765:6:1" + } + ], + "id": 1117, + "name": "VariableDeclaration", + "src": "17765:26:1" + } + ], + "id": 1118, + "name": "ParameterList", + "src": "17742:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1119, + "name": "ElementaryTypeName", + "src": "17816:7:1" + } + ], + "id": 1120, + "name": "VariableDeclaration", + "src": "17816:7:1" + } + ], + "id": 1121, + "name": "ParameterList", + "src": "17815:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1122, + "name": "Identifier", + "src": "17835:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1123, + "name": "Identifier", + "src": "17843:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1124, + "name": "Literal", + "src": "17847:1:1" + } + ], + "id": 1125, + "name": "BinaryOperation", + "src": "17843:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1117, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1126, + "name": "Identifier", + "src": "17850:12:1" + } + ], + "id": 1127, + "name": "FunctionCall", + "src": "17835:28:1" + } + ], + "id": 1128, + "name": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1121 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "uint256", + "value": "a" + }, + "id": 1129, + "name": "Identifier", + "src": "17880:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1130, + "name": "Identifier", + "src": "17884:1:1" + } + ], + "id": 1131, + "name": "BinaryOperation", + "src": "17880:5:1" + } + ], + "id": 1132, + "name": "Return", + "src": "17873:12:1" + } + ], + "id": 1133, + "name": "Block", + "src": "17825:67:1" + } + ], + "id": 1134, + "name": "FunctionDefinition", + "src": "17730:162:1" + } + ], + "id": 1135, + "name": "ContractDefinition", + "src": "11300:6594:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 1136, + "name": "PragmaDirective", + "src": "17947:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Collection of functions related to the address type" + }, + "id": 1137, + "name": "StructuredDocumentation", + "src": "17980:67:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isContract", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1138, + "name": "StructuredDocumentation", + "src": "18070:565:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "account", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1139, + "name": "ElementaryTypeName", + "src": "18660:7:1" + } + ], + "id": 1140, + "name": "VariableDeclaration", + "src": "18660:15:1" + } + ], + "id": 1141, + "name": "ParameterList", + "src": "18659:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1142, + "name": "ElementaryTypeName", + "src": "18700:4:1" + } + ], + "id": 1143, + "name": "VariableDeclaration", + "src": "18700:4:1" + } + ], + "id": 1144, + "name": "ParameterList", + "src": "18699:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1146 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "size", + "scope": 1153, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1145, + "name": "ElementaryTypeName", + "src": "18903:7:1" + } + ], + "id": 1146, + "name": "VariableDeclaration", + "src": "18903:12:1" + } + ], + "id": 1147, + "name": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "operations": "{ size := extcodesize(account) }" + }, + "children": [], + "id": 1148, + "name": "InlineAssembly", + "src": "18981:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1144 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1146, + "type": "uint256", + "value": "size" + }, + "id": 1149, + "name": "Identifier", + "src": "19038:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1150, + "name": "Literal", + "src": "19045:1:1" + } + ], + "id": 1151, + "name": "BinaryOperation", + "src": "19038:8:1" + } + ], + "id": 1152, + "name": "Return", + "src": "19031:15:1" + } + ], + "id": 1153, + "name": "Block", + "src": "18706:347:1" + } + ], + "id": 1154, + "name": "FunctionDefinition", + "src": "18640:413:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sendValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1155, + "name": "StructuredDocumentation", + "src": "19059:906:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "recipient", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 1156, + "name": "ElementaryTypeName", + "src": "19989:15:1" + } + ], + "id": 1157, + "name": "VariableDeclaration", + "src": "19989:25:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "amount", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1158, + "name": "ElementaryTypeName", + "src": "20016:7:1" + } + ], + "id": 1159, + "name": "VariableDeclaration", + "src": "20016:14:1" + } + ], + "id": 1160, + "name": "ParameterList", + "src": "19988:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1161, + "name": "ParameterList", + "src": "20041:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1162, + "name": "Identifier", + "src": "20051:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1163, + "name": "ElementaryTypeName", + "src": "20059:7:1" + } + ], + "id": 1164, + "name": "ElementaryTypeNameExpression", + "src": "20059:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1165, + "name": "Identifier", + "src": "20067:4:1" + } + ], + "id": 1166, + "name": "FunctionCall", + "src": "20059:13:1" + } + ], + "id": 1167, + "name": "MemberAccess", + "src": "20059:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1168, + "name": "Identifier", + "src": "20084:6:1" + } + ], + "id": 1169, + "name": "BinaryOperation", + "src": "20059:31:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance\"", + "value": "Address: insufficient balance" + }, + "id": 1170, + "name": "Literal", + "src": "20092:31:1" + } + ], + "id": 1171, + "name": "FunctionCall", + "src": "20051:73:1" + } + ], + "id": 1172, + "name": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "attributes": { + "assignments": [ + 1174, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1187, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1173, + "name": "ElementaryTypeName", + "src": "20213:4:1" + } + ], + "id": 1174, + "name": "VariableDeclaration", + "src": "20213:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1157, + "type": "address payable", + "value": "recipient" + }, + "id": 1175, + "name": "Identifier", + "src": "20231:9:1" + } + ], + "id": 1176, + "name": "MemberAccess", + "src": "20231:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1177, + "name": "Identifier", + "src": "20254:6:1" + } + ], + "id": 1178, + "name": "FunctionCallOptions", + "src": "20231:31:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 1179, + "name": "Literal", + "src": "20263:2:1" + } + ], + "id": 1180, + "name": "FunctionCall", + "src": "20231:35:1" + } + ], + "id": 1181, + "name": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1182, + "name": "Identifier", + "src": "20276:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1174, + "type": "bool", + "value": "success" + }, + "id": 1183, + "name": "Identifier", + "src": "20284:7:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: unable to send value, recipient may have reverted\"", + "value": "Address: unable to send value, recipient may have reverted" + }, + "id": 1184, + "name": "Literal", + "src": "20293:60:1" + } + ], + "id": 1185, + "name": "FunctionCall", + "src": "20276:78:1" + } + ], + "id": 1186, + "name": "ExpressionStatement", + "src": "20276:78:1" + } + ], + "id": 1187, + "name": "Block", + "src": "20041:320:1" + } + ], + "id": 1188, + "name": "FunctionDefinition", + "src": "19970:391:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1189, + "name": "StructuredDocumentation", + "src": "20367:730:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1205, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1190, + "name": "ElementaryTypeName", + "src": "21124:7:1" + } + ], + "id": 1191, + "name": "VariableDeclaration", + "src": "21124:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1192, + "name": "ElementaryTypeName", + "src": "21140:5:1" + } + ], + "id": 1193, + "name": "VariableDeclaration", + "src": "21140:17:1" + } + ], + "id": 1194, + "name": "ParameterList", + "src": "21123:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1195, + "name": "ElementaryTypeName", + "src": "21177:5:1" + } + ], + "id": 1196, + "name": "VariableDeclaration", + "src": "21177:12:1" + } + ], + "id": 1197, + "name": "ParameterList", + "src": "21176:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1197 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionCall" + }, + "id": 1198, + "name": "Identifier", + "src": "21206:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1191, + "type": "address", + "value": "target" + }, + "id": 1199, + "name": "Identifier", + "src": "21219:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1193, + "type": "bytes memory", + "value": "data" + }, + "id": 1200, + "name": "Identifier", + "src": "21227:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call failed\"", + "value": "Address: low-level call failed" + }, + "id": 1201, + "name": "Literal", + "src": "21233:32:1" + } + ], + "id": 1202, + "name": "FunctionCall", + "src": "21206:60:1" + } + ], + "id": 1203, + "name": "Return", + "src": "21199:67:1" + } + ], + "id": 1204, + "name": "Block", + "src": "21191:82:1" + } + ], + "id": 1205, + "name": "FunctionDefinition", + "src": "21102:171:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1206, + "name": "StructuredDocumentation", + "src": "21279:211:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1225, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1207, + "name": "ElementaryTypeName", + "src": "21517:7:1" + } + ], + "id": 1208, + "name": "VariableDeclaration", + "src": "21517:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1209, + "name": "ElementaryTypeName", + "src": "21533:5:1" + } + ], + "id": 1210, + "name": "VariableDeclaration", + "src": "21533:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1211, + "name": "ElementaryTypeName", + "src": "21552:6:1" + } + ], + "id": 1212, + "name": "VariableDeclaration", + "src": "21552:26:1" + } + ], + "id": 1213, + "name": "ParameterList", + "src": "21516:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1214, + "name": "ElementaryTypeName", + "src": "21598:5:1" + } + ], + "id": 1215, + "name": "VariableDeclaration", + "src": "21598:12:1" + } + ], + "id": 1216, + "name": "ParameterList", + "src": "21597:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1216 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1217, + "name": "Identifier", + "src": "21629:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1208, + "type": "address", + "value": "target" + }, + "id": 1218, + "name": "Identifier", + "src": "21651:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1210, + "type": "bytes memory", + "value": "data" + }, + "id": 1219, + "name": "Identifier", + "src": "21659:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1220, + "name": "Literal", + "src": "21665:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1212, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1221, + "name": "Identifier", + "src": "21668:12:1" + } + ], + "id": 1222, + "name": "FunctionCall", + "src": "21629:52:1" + } + ], + "id": 1223, + "name": "Return", + "src": "21622:59:1" + } + ], + "id": 1224, + "name": "Block", + "src": "21612:76:1" + } + ], + "id": 1225, + "name": "FunctionDefinition", + "src": "21495:193:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1226, + "name": "StructuredDocumentation", + "src": "21694:351:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1227, + "name": "ElementaryTypeName", + "src": "22081:7:1" + } + ], + "id": 1228, + "name": "VariableDeclaration", + "src": "22081:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1229, + "name": "ElementaryTypeName", + "src": "22097:5:1" + } + ], + "id": 1230, + "name": "VariableDeclaration", + "src": "22097:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1231, + "name": "ElementaryTypeName", + "src": "22116:7:1" + } + ], + "id": 1232, + "name": "VariableDeclaration", + "src": "22116:13:1" + } + ], + "id": 1233, + "name": "ParameterList", + "src": "22080:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1234, + "name": "ElementaryTypeName", + "src": "22149:5:1" + } + ], + "id": 1235, + "name": "VariableDeclaration", + "src": "22149:12:1" + } + ], + "id": 1236, + "name": "ParameterList", + "src": "22148:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1236 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1237, + "name": "Identifier", + "src": "22180:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1228, + "type": "address", + "value": "target" + }, + "id": 1238, + "name": "Identifier", + "src": "22202:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1230, + "type": "bytes memory", + "value": "data" + }, + "id": 1239, + "name": "Identifier", + "src": "22210:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1232, + "type": "uint256", + "value": "value" + }, + "id": 1240, + "name": "Identifier", + "src": "22216:5:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call with value failed\"", + "value": "Address: low-level call with value failed" + }, + "id": 1241, + "name": "Literal", + "src": "22223:43:1" + } + ], + "id": 1242, + "name": "FunctionCall", + "src": "22180:87:1" + } + ], + "id": 1243, + "name": "Return", + "src": "22173:94:1" + } + ], + "id": 1244, + "name": "Block", + "src": "22163:111:1" + } + ], + "id": 1245, + "name": "FunctionDefinition", + "src": "22050:224:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1246, + "name": "StructuredDocumentation", + "src": "22280:237:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1247, + "name": "ElementaryTypeName", + "src": "22553:7:1" + } + ], + "id": 1248, + "name": "VariableDeclaration", + "src": "22553:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1249, + "name": "ElementaryTypeName", + "src": "22569:5:1" + } + ], + "id": 1250, + "name": "VariableDeclaration", + "src": "22569:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1251, + "name": "ElementaryTypeName", + "src": "22588:7:1" + } + ], + "id": 1252, + "name": "VariableDeclaration", + "src": "22588:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1253, + "name": "ElementaryTypeName", + "src": "22603:6:1" + } + ], + "id": 1254, + "name": "VariableDeclaration", + "src": "22603:26:1" + } + ], + "id": 1255, + "name": "ParameterList", + "src": "22552:78:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1256, + "name": "ElementaryTypeName", + "src": "22649:5:1" + } + ], + "id": 1257, + "name": "VariableDeclaration", + "src": "22649:12:1" + } + ], + "id": 1258, + "name": "ParameterList", + "src": "22648:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1259, + "name": "Identifier", + "src": "22673:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1260, + "name": "ElementaryTypeName", + "src": "22681:7:1" + } + ], + "id": 1261, + "name": "ElementaryTypeNameExpression", + "src": "22681:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1262, + "name": "Identifier", + "src": "22689:4:1" + } + ], + "id": 1263, + "name": "FunctionCall", + "src": "22681:13:1" + } + ], + "id": 1264, + "name": "MemberAccess", + "src": "22681:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1265, + "name": "Identifier", + "src": "22706:5:1" + } + ], + "id": 1266, + "name": "BinaryOperation", + "src": "22681:30:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance for call\"", + "value": "Address: insufficient balance for call" + }, + "id": 1267, + "name": "Literal", + "src": "22713:40:1" + } + ], + "id": 1268, + "name": "FunctionCall", + "src": "22673:81:1" + } + ], + "id": 1269, + "name": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1270, + "name": "Identifier", + "src": "22764:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1271, + "name": "Identifier", + "src": "22772:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1272, + "name": "Identifier", + "src": "22783:6:1" + } + ], + "id": 1273, + "name": "FunctionCall", + "src": "22772:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: call to non-contract\"", + "value": "Address: call to non-contract" + }, + "id": 1274, + "name": "Literal", + "src": "22792:31:1" + } + ], + "id": 1275, + "name": "FunctionCall", + "src": "22764:60:1" + } + ], + "id": 1276, + "name": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "attributes": { + "assignments": [ + 1278, + 1280 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1294, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1277, + "name": "ElementaryTypeName", + "src": "22895:4:1" + } + ], + "id": 1278, + "name": "VariableDeclaration", + "src": "22895:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1279, + "name": "ElementaryTypeName", + "src": "22909:5:1" + } + ], + "id": 1280, + "name": "VariableDeclaration", + "src": "22909:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1281, + "name": "Identifier", + "src": "22936:6:1" + } + ], + "id": 1282, + "name": "MemberAccess", + "src": "22936:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1283, + "name": "Identifier", + "src": "22956:5:1" + } + ], + "id": 1284, + "name": "FunctionCallOptions", + "src": "22936:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1250, + "type": "bytes memory", + "value": "data" + }, + "id": 1285, + "name": "Identifier", + "src": "22964:4:1" + } + ], + "id": 1286, + "name": "FunctionCall", + "src": "22936:33:1" + } + ], + "id": 1287, + "name": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "attributes": { + "functionReturnParameters": 1258 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1288, + "name": "Identifier", + "src": "22986:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1278, + "type": "bool", + "value": "success" + }, + "id": 1289, + "name": "Identifier", + "src": "23004:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1280, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1290, + "name": "Identifier", + "src": "23013:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1254, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1291, + "name": "Identifier", + "src": "23025:12:1" + } + ], + "id": 1292, + "name": "FunctionCall", + "src": "22986:52:1" + } + ], + "id": 1293, + "name": "Return", + "src": "22979:59:1" + } + ], + "id": 1294, + "name": "Block", + "src": "22663:382:1" + } + ], + "id": 1295, + "name": "FunctionDefinition", + "src": "22522:523:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1296, + "name": "StructuredDocumentation", + "src": "23051:166:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1312, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1297, + "name": "ElementaryTypeName", + "src": "23250:7:1" + } + ], + "id": 1298, + "name": "VariableDeclaration", + "src": "23250:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1299, + "name": "ElementaryTypeName", + "src": "23266:5:1" + } + ], + "id": 1300, + "name": "VariableDeclaration", + "src": "23266:17:1" + } + ], + "id": 1301, + "name": "ParameterList", + "src": "23249:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1302, + "name": "ElementaryTypeName", + "src": "23308:5:1" + } + ], + "id": 1303, + "name": "VariableDeclaration", + "src": "23308:12:1" + } + ], + "id": 1304, + "name": "ParameterList", + "src": "23307:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1304 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "type": "function (address,bytes memory,string memory) view returns (bytes memory)", + "value": "functionStaticCall" + }, + "id": 1305, + "name": "Identifier", + "src": "23339:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1298, + "type": "address", + "value": "target" + }, + "id": 1306, + "name": "Identifier", + "src": "23358:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1300, + "type": "bytes memory", + "value": "data" + }, + "id": 1307, + "name": "Identifier", + "src": "23366:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level static call failed\"", + "value": "Address: low-level static call failed" + }, + "id": 1308, + "name": "Literal", + "src": "23372:39:1" + } + ], + "id": 1309, + "name": "FunctionCall", + "src": "23339:73:1" + } + ], + "id": 1310, + "name": "Return", + "src": "23332:80:1" + } + ], + "id": 1311, + "name": "Block", + "src": "23322:97:1" + } + ], + "id": 1312, + "name": "FunctionDefinition", + "src": "23222:197:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1313, + "name": "StructuredDocumentation", + "src": "23425:173:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1347, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1314, + "name": "ElementaryTypeName", + "src": "23631:7:1" + } + ], + "id": 1315, + "name": "VariableDeclaration", + "src": "23631:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1316, + "name": "ElementaryTypeName", + "src": "23647:5:1" + } + ], + "id": 1317, + "name": "VariableDeclaration", + "src": "23647:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1318, + "name": "ElementaryTypeName", + "src": "23666:6:1" + } + ], + "id": 1319, + "name": "VariableDeclaration", + "src": "23666:26:1" + } + ], + "id": 1320, + "name": "ParameterList", + "src": "23630:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1321, + "name": "ElementaryTypeName", + "src": "23717:5:1" + } + ], + "id": 1322, + "name": "VariableDeclaration", + "src": "23717:12:1" + } + ], + "id": 1323, + "name": "ParameterList", + "src": "23716:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1324, + "name": "Identifier", + "src": "23741:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1325, + "name": "Identifier", + "src": "23749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1326, + "name": "Identifier", + "src": "23760:6:1" + } + ], + "id": 1327, + "name": "FunctionCall", + "src": "23749:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: static call to non-contract\"", + "value": "Address: static call to non-contract" + }, + "id": 1328, + "name": "Literal", + "src": "23769:38:1" + } + ], + "id": 1329, + "name": "FunctionCall", + "src": "23741:67:1" + } + ], + "id": 1330, + "name": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "attributes": { + "assignments": [ + 1332, + 1334 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1346, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1331, + "name": "ElementaryTypeName", + "src": "23879:4:1" + } + ], + "id": 1332, + "name": "VariableDeclaration", + "src": "23879:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1346, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1333, + "name": "ElementaryTypeName", + "src": "23893:5:1" + } + ], + "id": 1334, + "name": "VariableDeclaration", + "src": "23893:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "staticcall", + "type": "function (bytes memory) view returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1335, + "name": "Identifier", + "src": "23920:6:1" + } + ], + "id": 1336, + "name": "MemberAccess", + "src": "23920:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1317, + "type": "bytes memory", + "value": "data" + }, + "id": 1337, + "name": "Identifier", + "src": "23938:4:1" + } + ], + "id": 1338, + "name": "FunctionCall", + "src": "23920:23:1" + } + ], + "id": 1339, + "name": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "attributes": { + "functionReturnParameters": 1323 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1340, + "name": "Identifier", + "src": "23960:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1332, + "type": "bool", + "value": "success" + }, + "id": 1341, + "name": "Identifier", + "src": "23978:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1334, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1342, + "name": "Identifier", + "src": "23987:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1319, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1343, + "name": "Identifier", + "src": "23999:12:1" + } + ], + "id": 1344, + "name": "FunctionCall", + "src": "23960:52:1" + } + ], + "id": 1345, + "name": "Return", + "src": "23953:59:1" + } + ], + "id": 1346, + "name": "Block", + "src": "23731:288:1" + } + ], + "id": 1347, + "name": "FunctionDefinition", + "src": "23603:416:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1348, + "name": "StructuredDocumentation", + "src": "24025:168:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1364, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1349, + "name": "ElementaryTypeName", + "src": "24228:7:1" + } + ], + "id": 1350, + "name": "VariableDeclaration", + "src": "24228:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1351, + "name": "ElementaryTypeName", + "src": "24244:5:1" + } + ], + "id": 1352, + "name": "VariableDeclaration", + "src": "24244:17:1" + } + ], + "id": 1353, + "name": "ParameterList", + "src": "24227:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1354, + "name": "ElementaryTypeName", + "src": "24281:5:1" + } + ], + "id": 1355, + "name": "VariableDeclaration", + "src": "24281:12:1" + } + ], + "id": 1356, + "name": "ParameterList", + "src": "24280:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1356 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionDelegateCall" + }, + "id": 1357, + "name": "Identifier", + "src": "24312:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1350, + "type": "address", + "value": "target" + }, + "id": 1358, + "name": "Identifier", + "src": "24333:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1352, + "type": "bytes memory", + "value": "data" + }, + "id": 1359, + "name": "Identifier", + "src": "24341:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level delegate call failed\"", + "value": "Address: low-level delegate call failed" + }, + "id": 1360, + "name": "Literal", + "src": "24347:41:1" + } + ], + "id": 1361, + "name": "FunctionCall", + "src": "24312:77:1" + } + ], + "id": 1362, + "name": "Return", + "src": "24305:84:1" + } + ], + "id": 1363, + "name": "Block", + "src": "24295:101:1" + } + ], + "id": 1364, + "name": "FunctionDefinition", + "src": "24198:198:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1365, + "name": "StructuredDocumentation", + "src": "24402:175:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1399, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1366, + "name": "ElementaryTypeName", + "src": "24612:7:1" + } + ], + "id": 1367, + "name": "VariableDeclaration", + "src": "24612:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1368, + "name": "ElementaryTypeName", + "src": "24628:5:1" + } + ], + "id": 1369, + "name": "VariableDeclaration", + "src": "24628:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1370, + "name": "ElementaryTypeName", + "src": "24647:6:1" + } + ], + "id": 1371, + "name": "VariableDeclaration", + "src": "24647:26:1" + } + ], + "id": 1372, + "name": "ParameterList", + "src": "24611:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1373, + "name": "ElementaryTypeName", + "src": "24693:5:1" + } + ], + "id": 1374, + "name": "VariableDeclaration", + "src": "24693:12:1" + } + ], + "id": 1375, + "name": "ParameterList", + "src": "24692:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1376, + "name": "Identifier", + "src": "24717:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1377, + "name": "Identifier", + "src": "24725:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1378, + "name": "Identifier", + "src": "24736:6:1" + } + ], + "id": 1379, + "name": "FunctionCall", + "src": "24725:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: delegate call to non-contract\"", + "value": "Address: delegate call to non-contract" + }, + "id": 1380, + "name": "Literal", + "src": "24745:40:1" + } + ], + "id": 1381, + "name": "FunctionCall", + "src": "24717:69:1" + } + ], + "id": 1382, + "name": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "attributes": { + "assignments": [ + 1384, + 1386 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1398, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1383, + "name": "ElementaryTypeName", + "src": "24857:4:1" + } + ], + "id": 1384, + "name": "VariableDeclaration", + "src": "24857:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1398, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1385, + "name": "ElementaryTypeName", + "src": "24871:5:1" + } + ], + "id": 1386, + "name": "VariableDeclaration", + "src": "24871:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "delegatecall", + "type": "function (bytes memory) returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1387, + "name": "Identifier", + "src": "24898:6:1" + } + ], + "id": 1388, + "name": "MemberAccess", + "src": "24898:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1369, + "type": "bytes memory", + "value": "data" + }, + "id": 1389, + "name": "Identifier", + "src": "24918:4:1" + } + ], + "id": 1390, + "name": "FunctionCall", + "src": "24898:25:1" + } + ], + "id": 1391, + "name": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "attributes": { + "functionReturnParameters": 1375 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1392, + "name": "Identifier", + "src": "24940:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1384, + "type": "bool", + "value": "success" + }, + "id": 1393, + "name": "Identifier", + "src": "24958:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1386, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1394, + "name": "Identifier", + "src": "24967:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1371, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1395, + "name": "Identifier", + "src": "24979:12:1" + } + ], + "id": 1396, + "name": "FunctionCall", + "src": "24940:52:1" + } + ], + "id": 1397, + "name": "Return", + "src": "24933:59:1" + } + ], + "id": 1398, + "name": "Block", + "src": "24707:292:1" + } + ], + "id": 1399, + "name": "FunctionDefinition", + "src": "24582:417:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_verifyCallResult", + "scope": 1430, + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1429, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1400, + "name": "ElementaryTypeName", + "src": "25032:4:1" + } + ], + "id": 1401, + "name": "VariableDeclaration", + "src": "25032:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1402, + "name": "ElementaryTypeName", + "src": "25046:5:1" + } + ], + "id": 1403, + "name": "VariableDeclaration", + "src": "25046:23:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1404, + "name": "ElementaryTypeName", + "src": "25071:6:1" + } + ], + "id": 1405, + "name": "VariableDeclaration", + "src": "25071:26:1" + } + ], + "id": 1406, + "name": "ParameterList", + "src": "25031:67:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1407, + "name": "ElementaryTypeName", + "src": "25120:5:1" + } + ], + "id": 1408, + "name": "VariableDeclaration", + "src": "25120:12:1" + } + ], + "id": 1409, + "name": "ParameterList", + "src": "25119:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1401, + "type": "bool", + "value": "success" + }, + "id": 1410, + "name": "Identifier", + "src": "25148:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1409 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1411, + "name": "Identifier", + "src": "25178:10:1" + } + ], + "id": 1412, + "name": "Return", + "src": "25171:17:1" + } + ], + "id": 1413, + "name": "Block", + "src": "25157:42:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1414, + "name": "Identifier", + "src": "25289:10:1" + } + ], + "id": 1415, + "name": "MemberAccess", + "src": "25289:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1416, + "name": "Literal", + "src": "25309:1:1" + } + ], + "id": 1417, + "name": "BinaryOperation", + "src": "25289:21:1" + }, + { + "children": [ + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "operations": "{\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n}" + }, + "children": [], + "id": 1418, + "name": "InlineAssembly", + "src": "25487:154:1" + } + ], + "id": 1419, + "name": "Block", + "src": "25312:343:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "type": "function (string memory) pure", + "value": "revert" + }, + "id": 1420, + "name": "Identifier", + "src": "25679:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1405, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1421, + "name": "Identifier", + "src": "25686:12:1" + } + ], + "id": 1422, + "name": "FunctionCall", + "src": "25679:20:1" + } + ], + "id": 1423, + "name": "ExpressionStatement", + "src": "25679:20:1" + } + ], + "id": 1424, + "name": "Block", + "src": "25661:53:1" + } + ], + "id": 1425, + "name": "IfStatement", + "src": "25285:429:1" + } + ], + "id": 1426, + "name": "Block", + "src": "25205:519:1" + } + ], + "id": 1427, + "name": "IfStatement", + "src": "25144:580:1" + } + ], + "id": 1428, + "name": "Block", + "src": "25134:596:1" + } + ], + "id": 1429, + "name": "FunctionDefinition", + "src": "25005:725:1" + } + ], + "id": 1430, + "name": "ContractDefinition", + "src": "18048:7684:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1431, + "name": "PragmaDirective", + "src": "25791:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "id": 1432, + "name": "StructuredDocumentation", + "src": "25824:686:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Set", + "name": "Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_values", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "bytes32[]" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1433, + "name": "ElementaryTypeName", + "src": "27033:7:1" + } + ], + "id": 1434, + "name": "ArrayTypeName", + "src": "27033:9:1" + } + ], + "id": 1435, + "name": "VariableDeclaration", + "src": "27033:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1436, + "name": "ElementaryTypeName", + "src": "27193:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1437, + "name": "ElementaryTypeName", + "src": "27204:7:1" + } + ], + "id": 1438, + "name": "Mapping", + "src": "27184:28:1" + } + ], + "id": 1439, + "name": "VariableDeclaration", + "src": "27184:37:1" + } + ], + "id": 1440, + "name": "StructDefinition", + "src": "26979:249:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1441, + "name": "StructuredDocumentation", + "src": "27234:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1481, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1442, + "name": "UserDefinedTypeName", + "src": "27412:3:1" + } + ], + "id": 1443, + "name": "VariableDeclaration", + "src": "27412:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1444, + "name": "ElementaryTypeName", + "src": "27429:7:1" + } + ], + "id": 1445, + "name": "VariableDeclaration", + "src": "27429:13:1" + } + ], + "id": 1446, + "name": "ParameterList", + "src": "27411:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1447, + "name": "ElementaryTypeName", + "src": "27461:4:1" + } + ], + "id": 1448, + "name": "VariableDeclaration", + "src": "27461:4:1" + } + ], + "id": 1449, + "name": "ParameterList", + "src": "27460:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1450, + "name": "Identifier", + "src": "27482:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1451, + "name": "Identifier", + "src": "27492:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1452, + "name": "Identifier", + "src": "27497:5:1" + } + ], + "id": 1453, + "name": "FunctionCall", + "src": "27482:21:1" + } + ], + "id": 1454, + "name": "UnaryOperation", + "src": "27481:22:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1455, + "name": "Identifier", + "src": "27519:3:1" + } + ], + "id": 1458, + "name": "MemberAccess", + "src": "27519:11:1" + } + ], + "id": 1459, + "name": "MemberAccess", + "src": "27519:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1460, + "name": "Identifier", + "src": "27536:5:1" + } + ], + "id": 1461, + "name": "FunctionCall", + "src": "27519:23:1" + } + ], + "id": 1462, + "name": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1463, + "name": "Identifier", + "src": "27677:3:1" + } + ], + "id": 1466, + "name": "MemberAccess", + "src": "27677:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1465, + "name": "Identifier", + "src": "27690:5:1" + } + ], + "id": 1467, + "name": "IndexAccess", + "src": "27677:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1468, + "name": "Identifier", + "src": "27699:3:1" + } + ], + "id": 1469, + "name": "MemberAccess", + "src": "27699:11:1" + } + ], + "id": 1470, + "name": "MemberAccess", + "src": "27699:18:1" + } + ], + "id": 1471, + "name": "Assignment", + "src": "27677:40:1" + } + ], + "id": 1472, + "name": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1473, + "name": "Literal", + "src": "27738:4:1" + } + ], + "id": 1474, + "name": "Return", + "src": "27731:11:1" + } + ], + "id": 1475, + "name": "Block", + "src": "27505:248:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1476, + "name": "Literal", + "src": "27780:5:1" + } + ], + "id": 1477, + "name": "Return", + "src": "27773:12:1" + } + ], + "id": 1478, + "name": "Block", + "src": "27759:37:1" + } + ], + "id": 1479, + "name": "IfStatement", + "src": "27477:319:1" + } + ], + "id": 1480, + "name": "Block", + "src": "27467:335:1" + } + ], + "id": 1481, + "name": "FunctionDefinition", + "src": "27398:404:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1482, + "name": "StructuredDocumentation", + "src": "27808:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1561, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1483, + "name": "UserDefinedTypeName", + "src": "27987:3:1" + } + ], + "id": 1484, + "name": "VariableDeclaration", + "src": "27987:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1485, + "name": "ElementaryTypeName", + "src": "28004:7:1" + } + ], + "id": 1486, + "name": "VariableDeclaration", + "src": "28004:13:1" + } + ], + "id": 1487, + "name": "ParameterList", + "src": "27986:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1488, + "name": "ElementaryTypeName", + "src": "28036:4:1" + } + ], + "id": 1489, + "name": "VariableDeclaration", + "src": "28036:4:1" + } + ], + "id": 1490, + "name": "ParameterList", + "src": "28035:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1492 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "valueIndex", + "scope": 1560, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1491, + "name": "ElementaryTypeName", + "src": "28152:7:1" + } + ], + "id": 1492, + "name": "VariableDeclaration", + "src": "28152:18:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1493, + "name": "Identifier", + "src": "28173:3:1" + } + ], + "id": 1494, + "name": "MemberAccess", + "src": "28173:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1495, + "name": "Identifier", + "src": "28186:5:1" + } + ], + "id": 1496, + "name": "IndexAccess", + "src": "28173:19:1" + } + ], + "id": 1497, + "name": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1498, + "name": "Identifier", + "src": "28207:10:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1499, + "name": "Literal", + "src": "28221:1:1" + } + ], + "id": 1500, + "name": "BinaryOperation", + "src": "28207:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1501, + "name": "ElementaryTypeName", + "src": "28564:7:1" + } + ], + "id": 1502, + "name": "VariableDeclaration", + "src": "28564:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1503, + "name": "Identifier", + "src": "28588:10:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1504, + "name": "Literal", + "src": "28601:1:1" + } + ], + "id": 1505, + "name": "BinaryOperation", + "src": "28588:14:1" + } + ], + "id": 1506, + "name": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "attributes": { + "assignments": [ + 1508 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1507, + "name": "ElementaryTypeName", + "src": "28616:7:1" + } + ], + "id": 1508, + "name": "VariableDeclaration", + "src": "28616:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1509, + "name": "Identifier", + "src": "28636:3:1" + } + ], + "id": 1510, + "name": "MemberAccess", + "src": "28636:11:1" + } + ], + "id": 1511, + "name": "MemberAccess", + "src": "28636:18:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1512, + "name": "Literal", + "src": "28657:1:1" + } + ], + "id": 1513, + "name": "BinaryOperation", + "src": "28636:22:1" + } + ], + "id": 1514, + "name": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "attributes": { + "assignments": [ + 1516 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastvalue", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1515, + "name": "ElementaryTypeName", + "src": "28898:7:1" + } + ], + "id": 1516, + "name": "VariableDeclaration", + "src": "28898:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1517, + "name": "Identifier", + "src": "28918:3:1" + } + ], + "id": 1518, + "name": "MemberAccess", + "src": "28918:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1508, + "type": "uint256", + "value": "lastIndex" + }, + "id": 1519, + "name": "Identifier", + "src": "28930:9:1" + } + ], + "id": 1520, + "name": "IndexAccess", + "src": "28918:22:1" + } + ], + "id": 1521, + "name": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1522, + "name": "Identifier", + "src": "29032:3:1" + } + ], + "id": 1525, + "name": "MemberAccess", + "src": "29032:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1524, + "name": "Identifier", + "src": "29044:13:1" + } + ], + "id": 1526, + "name": "IndexAccess", + "src": "29032:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1527, + "name": "Identifier", + "src": "29061:9:1" + } + ], + "id": 1528, + "name": "Assignment", + "src": "29032:38:1" + } + ], + "id": 1529, + "name": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1530, + "name": "Identifier", + "src": "29136:3:1" + } + ], + "id": 1533, + "name": "MemberAccess", + "src": "29136:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1532, + "name": "Identifier", + "src": "29149:9:1" + } + ], + "id": 1534, + "name": "IndexAccess", + "src": "29136:23:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1535, + "name": "Identifier", + "src": "29162:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1536, + "name": "Literal", + "src": "29178:1:1" + } + ], + "id": 1537, + "name": "BinaryOperation", + "src": "29162:17:1" + } + ], + "id": 1538, + "name": "Assignment", + "src": "29136:43:1" + } + ], + "id": 1539, + "name": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1540, + "name": "Identifier", + "src": "29285:3:1" + } + ], + "id": 1543, + "name": "MemberAccess", + "src": "29285:11:1" + } + ], + "id": 1544, + "name": "MemberAccess", + "src": "29285:15:1" + } + ], + "id": 1545, + "name": "FunctionCall", + "src": "29285:17:1" + } + ], + "id": 1546, + "name": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1547, + "name": "Identifier", + "src": "29377:3:1" + } + ], + "id": 1548, + "name": "MemberAccess", + "src": "29377:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1549, + "name": "Identifier", + "src": "29390:5:1" + } + ], + "id": 1550, + "name": "IndexAccess", + "src": "29377:19:1" + } + ], + "id": 1551, + "name": "UnaryOperation", + "src": "29370:26:1" + } + ], + "id": 1552, + "name": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1553, + "name": "Literal", + "src": "29418:4:1" + } + ], + "id": 1554, + "name": "Return", + "src": "29411:11:1" + } + ], + "id": 1555, + "name": "Block", + "src": "28224:1209:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1556, + "name": "Literal", + "src": "29460:5:1" + } + ], + "id": 1557, + "name": "Return", + "src": "29453:12:1" + } + ], + "id": 1558, + "name": "Block", + "src": "29439:37:1" + } + ], + "id": 1559, + "name": "IfStatement", + "src": "28203:1273:1" + } + ], + "id": 1560, + "name": "Block", + "src": "28042:1440:1" + } + ], + "id": 1561, + "name": "FunctionDefinition", + "src": "27970:1512:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1562, + "name": "StructuredDocumentation", + "src": "29488:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1579, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1563, + "name": "UserDefinedTypeName", + "src": "29582:3:1" + } + ], + "id": 1564, + "name": "VariableDeclaration", + "src": "29582:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1565, + "name": "ElementaryTypeName", + "src": "29599:7:1" + } + ], + "id": 1566, + "name": "VariableDeclaration", + "src": "29599:13:1" + } + ], + "id": 1567, + "name": "ParameterList", + "src": "29581:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1568, + "name": "ElementaryTypeName", + "src": "29636:4:1" + } + ], + "id": 1569, + "name": "VariableDeclaration", + "src": "29636:4:1" + } + ], + "id": 1570, + "name": "ParameterList", + "src": "29635:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1570 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1564, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1571, + "name": "Identifier", + "src": "29659:3:1" + } + ], + "id": 1572, + "name": "MemberAccess", + "src": "29659:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1566, + "type": "bytes32", + "value": "value" + }, + "id": 1573, + "name": "Identifier", + "src": "29672:5:1" + } + ], + "id": 1574, + "name": "IndexAccess", + "src": "29659:19:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1575, + "name": "Literal", + "src": "29682:1:1" + } + ], + "id": 1576, + "name": "BinaryOperation", + "src": "29659:24:1" + } + ], + "id": 1577, + "name": "Return", + "src": "29652:31:1" + } + ], + "id": 1578, + "name": "Block", + "src": "29642:48:1" + } + ], + "id": 1579, + "name": "FunctionDefinition", + "src": "29563:127:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1580, + "name": "StructuredDocumentation", + "src": "29696:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1592, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1581, + "name": "UserDefinedTypeName", + "src": "29788:3:1" + } + ], + "id": 1582, + "name": "VariableDeclaration", + "src": "29788:15:1" + } + ], + "id": 1583, + "name": "ParameterList", + "src": "29787:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1592, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1584, + "name": "ElementaryTypeName", + "src": "29827:7:1" + } + ], + "id": 1585, + "name": "VariableDeclaration", + "src": "29827:7:1" + } + ], + "id": 1586, + "name": "ParameterList", + "src": "29826:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1586 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1582, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1587, + "name": "Identifier", + "src": "29853:3:1" + } + ], + "id": 1588, + "name": "MemberAccess", + "src": "29853:11:1" + } + ], + "id": 1589, + "name": "MemberAccess", + "src": "29853:18:1" + } + ], + "id": 1590, + "name": "Return", + "src": "29846:25:1" + } + ], + "id": 1591, + "name": "Block", + "src": "29836:42:1" + } + ], + "id": 1592, + "name": "FunctionDefinition", + "src": "29771:107:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1593, + "name": "StructuredDocumentation", + "src": "29883:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1617, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1594, + "name": "UserDefinedTypeName", + "src": "30223:3:1" + } + ], + "id": 1595, + "name": "VariableDeclaration", + "src": "30223:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1596, + "name": "ElementaryTypeName", + "src": "30240:7:1" + } + ], + "id": 1597, + "name": "VariableDeclaration", + "src": "30240:13:1" + } + ], + "id": 1598, + "name": "ParameterList", + "src": "30222:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1599, + "name": "ElementaryTypeName", + "src": "30277:7:1" + } + ], + "id": 1600, + "name": "VariableDeclaration", + "src": "30277:7:1" + } + ], + "id": 1601, + "name": "ParameterList", + "src": "30276:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1602, + "name": "Identifier", + "src": "30296:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1603, + "name": "Identifier", + "src": "30304:3:1" + } + ], + "id": 1604, + "name": "MemberAccess", + "src": "30304:11:1" + } + ], + "id": 1605, + "name": "MemberAccess", + "src": "30304:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1606, + "name": "Identifier", + "src": "30325:5:1" + } + ], + "id": 1607, + "name": "BinaryOperation", + "src": "30304:26:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableSet: index out of bounds\"", + "value": "EnumerableSet: index out of bounds" + }, + "id": 1608, + "name": "Literal", + "src": "30332:36:1" + } + ], + "id": 1609, + "name": "FunctionCall", + "src": "30296:73:1" + } + ], + "id": 1610, + "name": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "attributes": { + "functionReturnParameters": 1601 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1611, + "name": "Identifier", + "src": "30386:3:1" + } + ], + "id": 1612, + "name": "MemberAccess", + "src": "30386:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1613, + "name": "Identifier", + "src": "30398:5:1" + } + ], + "id": 1614, + "name": "IndexAccess", + "src": "30386:18:1" + } + ], + "id": 1615, + "name": "Return", + "src": "30379:25:1" + } + ], + "id": 1616, + "name": "Block", + "src": "30286:125:1" + } + ], + "id": 1617, + "name": "FunctionDefinition", + "src": "30210:201:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Bytes32Set", + "name": "Bytes32Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1620, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1618, + "name": "UserDefinedTypeName", + "src": "30464:3:1" + } + ], + "id": 1619, + "name": "VariableDeclaration", + "src": "30464:10:1" + } + ], + "id": 1620, + "name": "StructDefinition", + "src": "30436:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1621, + "name": "StructuredDocumentation", + "src": "30487:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1637, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1622, + "name": "UserDefinedTypeName", + "src": "30664:10:1" + } + ], + "id": 1623, + "name": "VariableDeclaration", + "src": "30664:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1624, + "name": "ElementaryTypeName", + "src": "30688:7:1" + } + ], + "id": 1625, + "name": "VariableDeclaration", + "src": "30688:13:1" + } + ], + "id": 1626, + "name": "ParameterList", + "src": "30663:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1627, + "name": "ElementaryTypeName", + "src": "30721:4:1" + } + ], + "id": 1628, + "name": "VariableDeclaration", + "src": "30721:4:1" + } + ], + "id": 1629, + "name": "ParameterList", + "src": "30720:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1629 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1630, + "name": "Identifier", + "src": "30744:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1623, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1631, + "name": "Identifier", + "src": "30749:3:1" + } + ], + "id": 1632, + "name": "MemberAccess", + "src": "30749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1625, + "type": "bytes32", + "value": "value" + }, + "id": 1633, + "name": "Identifier", + "src": "30761:5:1" + } + ], + "id": 1634, + "name": "FunctionCall", + "src": "30744:23:1" + } + ], + "id": 1635, + "name": "Return", + "src": "30737:30:1" + } + ], + "id": 1636, + "name": "Block", + "src": "30727:47:1" + } + ], + "id": 1637, + "name": "FunctionDefinition", + "src": "30651:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1638, + "name": "StructuredDocumentation", + "src": "30780:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1654, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1639, + "name": "UserDefinedTypeName", + "src": "30958:10:1" + } + ], + "id": 1640, + "name": "VariableDeclaration", + "src": "30958:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1641, + "name": "ElementaryTypeName", + "src": "30982:7:1" + } + ], + "id": 1642, + "name": "VariableDeclaration", + "src": "30982:13:1" + } + ], + "id": 1643, + "name": "ParameterList", + "src": "30957:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1644, + "name": "ElementaryTypeName", + "src": "31015:4:1" + } + ], + "id": 1645, + "name": "VariableDeclaration", + "src": "31015:4:1" + } + ], + "id": 1646, + "name": "ParameterList", + "src": "31014:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1646 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1647, + "name": "Identifier", + "src": "31038:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1640, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1648, + "name": "Identifier", + "src": "31046:3:1" + } + ], + "id": 1649, + "name": "MemberAccess", + "src": "31046:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1642, + "type": "bytes32", + "value": "value" + }, + "id": 1650, + "name": "Identifier", + "src": "31058:5:1" + } + ], + "id": 1651, + "name": "FunctionCall", + "src": "31038:26:1" + } + ], + "id": 1652, + "name": "Return", + "src": "31031:33:1" + } + ], + "id": 1653, + "name": "Block", + "src": "31021:50:1" + } + ], + "id": 1654, + "name": "FunctionDefinition", + "src": "30942:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1655, + "name": "StructuredDocumentation", + "src": "31077:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1671, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1656, + "name": "UserDefinedTypeName", + "src": "31170:10:1" + } + ], + "id": 1657, + "name": "VariableDeclaration", + "src": "31170:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1658, + "name": "ElementaryTypeName", + "src": "31194:7:1" + } + ], + "id": 1659, + "name": "VariableDeclaration", + "src": "31194:13:1" + } + ], + "id": 1660, + "name": "ParameterList", + "src": "31169:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1661, + "name": "ElementaryTypeName", + "src": "31232:4:1" + } + ], + "id": 1662, + "name": "VariableDeclaration", + "src": "31232:4:1" + } + ], + "id": 1663, + "name": "ParameterList", + "src": "31231:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1663 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1664, + "name": "Identifier", + "src": "31255:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1657, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1665, + "name": "Identifier", + "src": "31265:3:1" + } + ], + "id": 1666, + "name": "MemberAccess", + "src": "31265:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1659, + "type": "bytes32", + "value": "value" + }, + "id": 1667, + "name": "Identifier", + "src": "31277:5:1" + } + ], + "id": 1668, + "name": "FunctionCall", + "src": "31255:28:1" + } + ], + "id": 1669, + "name": "Return", + "src": "31248:35:1" + } + ], + "id": 1670, + "name": "Block", + "src": "31238:52:1" + } + ], + "id": 1671, + "name": "FunctionDefinition", + "src": "31152:138:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1672, + "name": "StructuredDocumentation", + "src": "31296:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1685, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1673, + "name": "UserDefinedTypeName", + "src": "31387:10:1" + } + ], + "id": 1674, + "name": "VariableDeclaration", + "src": "31387:22:1" + } + ], + "id": 1675, + "name": "ParameterList", + "src": "31386:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1685, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1676, + "name": "ElementaryTypeName", + "src": "31434:7:1" + } + ], + "id": 1677, + "name": "VariableDeclaration", + "src": "31434:7:1" + } + ], + "id": 1678, + "name": "ParameterList", + "src": "31433:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1678 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1679, + "name": "Identifier", + "src": "31460:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1674, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1680, + "name": "Identifier", + "src": "31468:3:1" + } + ], + "id": 1681, + "name": "MemberAccess", + "src": "31468:10:1" + } + ], + "id": 1682, + "name": "FunctionCall", + "src": "31460:19:1" + } + ], + "id": 1683, + "name": "Return", + "src": "31453:26:1" + } + ], + "id": 1684, + "name": "Block", + "src": "31443:43:1" + } + ], + "id": 1685, + "name": "FunctionDefinition", + "src": "31371:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1686, + "name": "StructuredDocumentation", + "src": "31491:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1702, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1687, + "name": "UserDefinedTypeName", + "src": "31830:10:1" + } + ], + "id": 1688, + "name": "VariableDeclaration", + "src": "31830:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1689, + "name": "ElementaryTypeName", + "src": "31854:7:1" + } + ], + "id": 1690, + "name": "VariableDeclaration", + "src": "31854:13:1" + } + ], + "id": 1691, + "name": "ParameterList", + "src": "31829:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1692, + "name": "ElementaryTypeName", + "src": "31892:7:1" + } + ], + "id": 1693, + "name": "VariableDeclaration", + "src": "31892:7:1" + } + ], + "id": 1694, + "name": "ParameterList", + "src": "31891:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1695, + "name": "Identifier", + "src": "31918:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1688, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1696, + "name": "Identifier", + "src": "31922:3:1" + } + ], + "id": 1697, + "name": "MemberAccess", + "src": "31922:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1690, + "type": "uint256", + "value": "index" + }, + "id": 1698, + "name": "Identifier", + "src": "31934:5:1" + } + ], + "id": 1699, + "name": "FunctionCall", + "src": "31918:22:1" + } + ], + "id": 1700, + "name": "Return", + "src": "31911:29:1" + } + ], + "id": 1701, + "name": "Block", + "src": "31901:46:1" + } + ], + "id": 1702, + "name": "FunctionDefinition", + "src": "31818:129:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.AddressSet", + "name": "AddressSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1705, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1703, + "name": "UserDefinedTypeName", + "src": "32000:3:1" + } + ], + "id": 1704, + "name": "VariableDeclaration", + "src": "32000:10:1" + } + ], + "id": 1705, + "name": "StructDefinition", + "src": "31972:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1706, + "name": "StructuredDocumentation", + "src": "32023:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1731, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1707, + "name": "UserDefinedTypeName", + "src": "32200:10:1" + } + ], + "id": 1708, + "name": "VariableDeclaration", + "src": "32200:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1709, + "name": "ElementaryTypeName", + "src": "32224:7:1" + } + ], + "id": 1710, + "name": "VariableDeclaration", + "src": "32224:13:1" + } + ], + "id": 1711, + "name": "ParameterList", + "src": "32199:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1712, + "name": "ElementaryTypeName", + "src": "32257:4:1" + } + ], + "id": 1713, + "name": "VariableDeclaration", + "src": "32257:4:1" + } + ], + "id": 1714, + "name": "ParameterList", + "src": "32256:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1714 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1715, + "name": "Identifier", + "src": "32280:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1708, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1716, + "name": "Identifier", + "src": "32285:3:1" + } + ], + "id": 1717, + "name": "MemberAccess", + "src": "32285:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1718, + "name": "ElementaryTypeName", + "src": "32297:7:1" + } + ], + "id": 1719, + "name": "ElementaryTypeNameExpression", + "src": "32297:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1720, + "name": "ElementaryTypeName", + "src": "32305:7:1" + } + ], + "id": 1721, + "name": "ElementaryTypeNameExpression", + "src": "32305:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1722, + "name": "ElementaryTypeName", + "src": "32313:7:1" + } + ], + "id": 1723, + "name": "ElementaryTypeNameExpression", + "src": "32313:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1710, + "type": "address", + "value": "value" + }, + "id": 1724, + "name": "Identifier", + "src": "32321:5:1" + } + ], + "id": 1725, + "name": "FunctionCall", + "src": "32313:14:1" + } + ], + "id": 1726, + "name": "FunctionCall", + "src": "32305:23:1" + } + ], + "id": 1727, + "name": "FunctionCall", + "src": "32297:32:1" + } + ], + "id": 1728, + "name": "FunctionCall", + "src": "32280:50:1" + } + ], + "id": 1729, + "name": "Return", + "src": "32273:57:1" + } + ], + "id": 1730, + "name": "Block", + "src": "32263:74:1" + } + ], + "id": 1731, + "name": "FunctionDefinition", + "src": "32187:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1732, + "name": "StructuredDocumentation", + "src": "32343:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1757, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1733, + "name": "UserDefinedTypeName", + "src": "32521:10:1" + } + ], + "id": 1734, + "name": "VariableDeclaration", + "src": "32521:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1735, + "name": "ElementaryTypeName", + "src": "32545:7:1" + } + ], + "id": 1736, + "name": "VariableDeclaration", + "src": "32545:13:1" + } + ], + "id": 1737, + "name": "ParameterList", + "src": "32520:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1738, + "name": "ElementaryTypeName", + "src": "32578:4:1" + } + ], + "id": 1739, + "name": "VariableDeclaration", + "src": "32578:4:1" + } + ], + "id": 1740, + "name": "ParameterList", + "src": "32577:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1740 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1741, + "name": "Identifier", + "src": "32601:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1734, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1742, + "name": "Identifier", + "src": "32609:3:1" + } + ], + "id": 1743, + "name": "MemberAccess", + "src": "32609:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1744, + "name": "ElementaryTypeName", + "src": "32621:7:1" + } + ], + "id": 1745, + "name": "ElementaryTypeNameExpression", + "src": "32621:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1746, + "name": "ElementaryTypeName", + "src": "32629:7:1" + } + ], + "id": 1747, + "name": "ElementaryTypeNameExpression", + "src": "32629:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1748, + "name": "ElementaryTypeName", + "src": "32637:7:1" + } + ], + "id": 1749, + "name": "ElementaryTypeNameExpression", + "src": "32637:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1736, + "type": "address", + "value": "value" + }, + "id": 1750, + "name": "Identifier", + "src": "32645:5:1" + } + ], + "id": 1751, + "name": "FunctionCall", + "src": "32637:14:1" + } + ], + "id": 1752, + "name": "FunctionCall", + "src": "32629:23:1" + } + ], + "id": 1753, + "name": "FunctionCall", + "src": "32621:32:1" + } + ], + "id": 1754, + "name": "FunctionCall", + "src": "32601:53:1" + } + ], + "id": 1755, + "name": "Return", + "src": "32594:60:1" + } + ], + "id": 1756, + "name": "Block", + "src": "32584:77:1" + } + ], + "id": 1757, + "name": "FunctionDefinition", + "src": "32505:156:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1758, + "name": "StructuredDocumentation", + "src": "32667:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1783, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1759, + "name": "UserDefinedTypeName", + "src": "32760:10:1" + } + ], + "id": 1760, + "name": "VariableDeclaration", + "src": "32760:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1761, + "name": "ElementaryTypeName", + "src": "32784:7:1" + } + ], + "id": 1762, + "name": "VariableDeclaration", + "src": "32784:13:1" + } + ], + "id": 1763, + "name": "ParameterList", + "src": "32759:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1764, + "name": "ElementaryTypeName", + "src": "32822:4:1" + } + ], + "id": 1765, + "name": "VariableDeclaration", + "src": "32822:4:1" + } + ], + "id": 1766, + "name": "ParameterList", + "src": "32821:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1766 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1767, + "name": "Identifier", + "src": "32845:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1760, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1768, + "name": "Identifier", + "src": "32855:3:1" + } + ], + "id": 1769, + "name": "MemberAccess", + "src": "32855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1770, + "name": "ElementaryTypeName", + "src": "32867:7:1" + } + ], + "id": 1771, + "name": "ElementaryTypeNameExpression", + "src": "32867:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1772, + "name": "ElementaryTypeName", + "src": "32875:7:1" + } + ], + "id": 1773, + "name": "ElementaryTypeNameExpression", + "src": "32875:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1774, + "name": "ElementaryTypeName", + "src": "32883:7:1" + } + ], + "id": 1775, + "name": "ElementaryTypeNameExpression", + "src": "32883:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1762, + "type": "address", + "value": "value" + }, + "id": 1776, + "name": "Identifier", + "src": "32891:5:1" + } + ], + "id": 1777, + "name": "FunctionCall", + "src": "32883:14:1" + } + ], + "id": 1778, + "name": "FunctionCall", + "src": "32875:23:1" + } + ], + "id": 1779, + "name": "FunctionCall", + "src": "32867:32:1" + } + ], + "id": 1780, + "name": "FunctionCall", + "src": "32845:55:1" + } + ], + "id": 1781, + "name": "Return", + "src": "32838:62:1" + } + ], + "id": 1782, + "name": "Block", + "src": "32828:79:1" + } + ], + "id": 1783, + "name": "FunctionDefinition", + "src": "32742:165:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1784, + "name": "StructuredDocumentation", + "src": "32913:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1797, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1785, + "name": "UserDefinedTypeName", + "src": "33004:10:1" + } + ], + "id": 1786, + "name": "VariableDeclaration", + "src": "33004:22:1" + } + ], + "id": 1787, + "name": "ParameterList", + "src": "33003:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1797, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1788, + "name": "ElementaryTypeName", + "src": "33051:7:1" + } + ], + "id": 1789, + "name": "VariableDeclaration", + "src": "33051:7:1" + } + ], + "id": 1790, + "name": "ParameterList", + "src": "33050:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1790 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1791, + "name": "Identifier", + "src": "33077:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1786, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1792, + "name": "Identifier", + "src": "33085:3:1" + } + ], + "id": 1793, + "name": "MemberAccess", + "src": "33085:10:1" + } + ], + "id": 1794, + "name": "FunctionCall", + "src": "33077:19:1" + } + ], + "id": 1795, + "name": "Return", + "src": "33070:26:1" + } + ], + "id": 1796, + "name": "Block", + "src": "33060:43:1" + } + ], + "id": 1797, + "name": "FunctionDefinition", + "src": "32988:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1798, + "name": "StructuredDocumentation", + "src": "33108:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1823, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1799, + "name": "UserDefinedTypeName", + "src": "33447:10:1" + } + ], + "id": 1800, + "name": "VariableDeclaration", + "src": "33447:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1801, + "name": "ElementaryTypeName", + "src": "33471:7:1" + } + ], + "id": 1802, + "name": "VariableDeclaration", + "src": "33471:13:1" + } + ], + "id": 1803, + "name": "ParameterList", + "src": "33446:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1804, + "name": "ElementaryTypeName", + "src": "33509:7:1" + } + ], + "id": 1805, + "name": "VariableDeclaration", + "src": "33509:7:1" + } + ], + "id": 1806, + "name": "ParameterList", + "src": "33508:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1806 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1807, + "name": "ElementaryTypeName", + "src": "33535:7:1" + } + ], + "id": 1808, + "name": "ElementaryTypeNameExpression", + "src": "33535:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1809, + "name": "ElementaryTypeName", + "src": "33543:7:1" + } + ], + "id": 1810, + "name": "ElementaryTypeNameExpression", + "src": "33543:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1811, + "name": "ElementaryTypeName", + "src": "33551:7:1" + } + ], + "id": 1812, + "name": "ElementaryTypeNameExpression", + "src": "33551:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1813, + "name": "Identifier", + "src": "33559:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1800, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1814, + "name": "Identifier", + "src": "33563:3:1" + } + ], + "id": 1815, + "name": "MemberAccess", + "src": "33563:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1802, + "type": "uint256", + "value": "index" + }, + "id": 1816, + "name": "Identifier", + "src": "33575:5:1" + } + ], + "id": 1817, + "name": "FunctionCall", + "src": "33559:22:1" + } + ], + "id": 1818, + "name": "FunctionCall", + "src": "33551:31:1" + } + ], + "id": 1819, + "name": "FunctionCall", + "src": "33543:40:1" + } + ], + "id": 1820, + "name": "FunctionCall", + "src": "33535:49:1" + } + ], + "id": 1821, + "name": "Return", + "src": "33528:56:1" + } + ], + "id": 1822, + "name": "Block", + "src": "33518:73:1" + } + ], + "id": 1823, + "name": "FunctionDefinition", + "src": "33435:156:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.UintSet", + "name": "UintSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1826, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1824, + "name": "UserDefinedTypeName", + "src": "33639:3:1" + } + ], + "id": 1825, + "name": "VariableDeclaration", + "src": "33639:10:1" + } + ], + "id": 1826, + "name": "StructDefinition", + "src": "33614:42:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1827, + "name": "StructuredDocumentation", + "src": "33662:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1846, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1828, + "name": "UserDefinedTypeName", + "src": "33839:7:1" + } + ], + "id": 1829, + "name": "VariableDeclaration", + "src": "33839:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1830, + "name": "ElementaryTypeName", + "src": "33860:7:1" + } + ], + "id": 1831, + "name": "VariableDeclaration", + "src": "33860:13:1" + } + ], + "id": 1832, + "name": "ParameterList", + "src": "33838:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1833, + "name": "ElementaryTypeName", + "src": "33893:4:1" + } + ], + "id": 1834, + "name": "VariableDeclaration", + "src": "33893:4:1" + } + ], + "id": 1835, + "name": "ParameterList", + "src": "33892:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1835 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1836, + "name": "Identifier", + "src": "33916:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1829, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1837, + "name": "Identifier", + "src": "33921:3:1" + } + ], + "id": 1838, + "name": "MemberAccess", + "src": "33921:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1839, + "name": "ElementaryTypeName", + "src": "33933:7:1" + } + ], + "id": 1840, + "name": "ElementaryTypeNameExpression", + "src": "33933:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1831, + "type": "uint256", + "value": "value" + }, + "id": 1841, + "name": "Identifier", + "src": "33941:5:1" + } + ], + "id": 1842, + "name": "FunctionCall", + "src": "33933:14:1" + } + ], + "id": 1843, + "name": "FunctionCall", + "src": "33916:32:1" + } + ], + "id": 1844, + "name": "Return", + "src": "33909:39:1" + } + ], + "id": 1845, + "name": "Block", + "src": "33899:56:1" + } + ], + "id": 1846, + "name": "FunctionDefinition", + "src": "33826:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1847, + "name": "StructuredDocumentation", + "src": "33961:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1866, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1848, + "name": "UserDefinedTypeName", + "src": "34139:7:1" + } + ], + "id": 1849, + "name": "VariableDeclaration", + "src": "34139:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1850, + "name": "ElementaryTypeName", + "src": "34160:7:1" + } + ], + "id": 1851, + "name": "VariableDeclaration", + "src": "34160:13:1" + } + ], + "id": 1852, + "name": "ParameterList", + "src": "34138:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1853, + "name": "ElementaryTypeName", + "src": "34193:4:1" + } + ], + "id": 1854, + "name": "VariableDeclaration", + "src": "34193:4:1" + } + ], + "id": 1855, + "name": "ParameterList", + "src": "34192:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1855 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1856, + "name": "Identifier", + "src": "34216:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1849, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1857, + "name": "Identifier", + "src": "34224:3:1" + } + ], + "id": 1858, + "name": "MemberAccess", + "src": "34224:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1859, + "name": "ElementaryTypeName", + "src": "34236:7:1" + } + ], + "id": 1860, + "name": "ElementaryTypeNameExpression", + "src": "34236:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1851, + "type": "uint256", + "value": "value" + }, + "id": 1861, + "name": "Identifier", + "src": "34244:5:1" + } + ], + "id": 1862, + "name": "FunctionCall", + "src": "34236:14:1" + } + ], + "id": 1863, + "name": "FunctionCall", + "src": "34216:35:1" + } + ], + "id": 1864, + "name": "Return", + "src": "34209:42:1" + } + ], + "id": 1865, + "name": "Block", + "src": "34199:59:1" + } + ], + "id": 1866, + "name": "FunctionDefinition", + "src": "34123:135:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1867, + "name": "StructuredDocumentation", + "src": "34264:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1886, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1868, + "name": "UserDefinedTypeName", + "src": "34357:7:1" + } + ], + "id": 1869, + "name": "VariableDeclaration", + "src": "34357:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1870, + "name": "ElementaryTypeName", + "src": "34378:7:1" + } + ], + "id": 1871, + "name": "VariableDeclaration", + "src": "34378:13:1" + } + ], + "id": 1872, + "name": "ParameterList", + "src": "34356:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1873, + "name": "ElementaryTypeName", + "src": "34416:4:1" + } + ], + "id": 1874, + "name": "VariableDeclaration", + "src": "34416:4:1" + } + ], + "id": 1875, + "name": "ParameterList", + "src": "34415:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1875 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1876, + "name": "Identifier", + "src": "34439:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1869, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1877, + "name": "Identifier", + "src": "34449:3:1" + } + ], + "id": 1878, + "name": "MemberAccess", + "src": "34449:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1879, + "name": "ElementaryTypeName", + "src": "34461:7:1" + } + ], + "id": 1880, + "name": "ElementaryTypeNameExpression", + "src": "34461:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1871, + "type": "uint256", + "value": "value" + }, + "id": 1881, + "name": "Identifier", + "src": "34469:5:1" + } + ], + "id": 1882, + "name": "FunctionCall", + "src": "34461:14:1" + } + ], + "id": 1883, + "name": "FunctionCall", + "src": "34439:37:1" + } + ], + "id": 1884, + "name": "Return", + "src": "34432:44:1" + } + ], + "id": 1885, + "name": "Block", + "src": "34422:61:1" + } + ], + "id": 1886, + "name": "FunctionDefinition", + "src": "34339:144:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1887, + "name": "StructuredDocumentation", + "src": "34489:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1900, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1888, + "name": "UserDefinedTypeName", + "src": "34580:7:1" + } + ], + "id": 1889, + "name": "VariableDeclaration", + "src": "34580:19:1" + } + ], + "id": 1890, + "name": "ParameterList", + "src": "34579:21:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1900, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1891, + "name": "ElementaryTypeName", + "src": "34624:7:1" + } + ], + "id": 1892, + "name": "VariableDeclaration", + "src": "34624:7:1" + } + ], + "id": 1893, + "name": "ParameterList", + "src": "34623:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1894, + "name": "Identifier", + "src": "34650:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1889, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1895, + "name": "Identifier", + "src": "34658:3:1" + } + ], + "id": 1896, + "name": "MemberAccess", + "src": "34658:10:1" + } + ], + "id": 1897, + "name": "FunctionCall", + "src": "34650:19:1" + } + ], + "id": 1898, + "name": "Return", + "src": "34643:26:1" + } + ], + "id": 1899, + "name": "Block", + "src": "34633:43:1" + } + ], + "id": 1900, + "name": "FunctionDefinition", + "src": "34564:112:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1901, + "name": "StructuredDocumentation", + "src": "34681:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1920, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1902, + "name": "UserDefinedTypeName", + "src": "35020:7:1" + } + ], + "id": 1903, + "name": "VariableDeclaration", + "src": "35020:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1904, + "name": "ElementaryTypeName", + "src": "35041:7:1" + } + ], + "id": 1905, + "name": "VariableDeclaration", + "src": "35041:13:1" + } + ], + "id": 1906, + "name": "ParameterList", + "src": "35019:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1907, + "name": "ElementaryTypeName", + "src": "35079:7:1" + } + ], + "id": 1908, + "name": "VariableDeclaration", + "src": "35079:7:1" + } + ], + "id": 1909, + "name": "ParameterList", + "src": "35078:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1909 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1910, + "name": "ElementaryTypeName", + "src": "35105:7:1" + } + ], + "id": 1911, + "name": "ElementaryTypeNameExpression", + "src": "35105:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1912, + "name": "Identifier", + "src": "35113:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1903, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1913, + "name": "Identifier", + "src": "35117:3:1" + } + ], + "id": 1914, + "name": "MemberAccess", + "src": "35117:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1905, + "type": "uint256", + "value": "index" + }, + "id": 1915, + "name": "Identifier", + "src": "35129:5:1" + } + ], + "id": 1916, + "name": "FunctionCall", + "src": "35113:22:1" + } + ], + "id": 1917, + "name": "FunctionCall", + "src": "35105:31:1" + } + ], + "id": 1918, + "name": "Return", + "src": "35098:38:1" + } + ], + "id": 1919, + "name": "Block", + "src": "35088:55:1" + } + ], + "id": 1920, + "name": "FunctionDefinition", + "src": "35008:135:1" + } + ], + "id": 1921, + "name": "ContractDefinition", + "src": "26511:8634:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1922, + "name": "PragmaDirective", + "src": "35204:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "id": 1923, + "name": "StructuredDocumentation", + "src": "35237:705:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.MapEntry", + "name": "MapEntry", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_key", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1924, + "name": "ElementaryTypeName", + "src": "36455:7:1" + } + ], + "id": 1925, + "name": "VariableDeclaration", + "src": "36455:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_value", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1926, + "name": "ElementaryTypeName", + "src": "36477:7:1" + } + ], + "id": 1927, + "name": "VariableDeclaration", + "src": "36477:14:1" + } + ], + "id": 1928, + "name": "StructDefinition", + "src": "36429:69:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.Map", + "name": "Map", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_entries", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.MapEntry[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "struct EnumerableMap.MapEntry[]" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 1929, + "name": "UserDefinedTypeName", + "src": "36567:8:1" + } + ], + "id": 1930, + "name": "ArrayTypeName", + "src": "36567:10:1" + } + ], + "id": 1931, + "name": "VariableDeclaration", + "src": "36567:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1932, + "name": "ElementaryTypeName", + "src": "36745:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1933, + "name": "ElementaryTypeName", + "src": "36756:7:1" + } + ], + "id": 1934, + "name": "Mapping", + "src": "36736:28:1" + } + ], + "id": 1935, + "name": "VariableDeclaration", + "src": "36736:37:1" + } + ], + "id": 1936, + "name": "StructDefinition", + "src": "36504:276:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1937, + "name": "StructuredDocumentation", + "src": "36786:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 1998, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 1938, + "name": "UserDefinedTypeName", + "src": "37021:3:1" + } + ], + "id": 1939, + "name": "VariableDeclaration", + "src": "37021:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1940, + "name": "ElementaryTypeName", + "src": "37038:7:1" + } + ], + "id": 1941, + "name": "VariableDeclaration", + "src": "37038:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1942, + "name": "ElementaryTypeName", + "src": "37051:7:1" + } + ], + "id": 1943, + "name": "VariableDeclaration", + "src": "37051:13:1" + } + ], + "id": 1944, + "name": "ParameterList", + "src": "37020:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1945, + "name": "ElementaryTypeName", + "src": "37083:4:1" + } + ], + "id": 1946, + "name": "VariableDeclaration", + "src": "37083:4:1" + } + ], + "id": 1947, + "name": "ParameterList", + "src": "37082:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1949 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 1997, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1948, + "name": "ElementaryTypeName", + "src": "37197:7:1" + } + ], + "id": 1949, + "name": "VariableDeclaration", + "src": "37197:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1950, + "name": "Identifier", + "src": "37216:3:1" + } + ], + "id": 1951, + "name": "MemberAccess", + "src": "37216:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1952, + "name": "Identifier", + "src": "37229:3:1" + } + ], + "id": 1953, + "name": "IndexAccess", + "src": "37216:17:1" + } + ], + "id": 1954, + "name": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1955, + "name": "Identifier", + "src": "37248:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1956, + "name": "Literal", + "src": "37260:1:1" + } + ], + "id": 1957, + "name": "BinaryOperation", + "src": "37248:13:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (struct EnumerableMap.MapEntry storage ref)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1958, + "name": "Identifier", + "src": "37314:3:1" + } + ], + "id": 1961, + "name": "MemberAccess", + "src": "37314:12:1" + } + ], + "id": 1962, + "name": "MemberAccess", + "src": "37314:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": true, + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "tryCall": false, + "type": "struct EnumerableMap.MapEntry memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1928, + "type": "type(struct EnumerableMap.MapEntry storage pointer)", + "value": "MapEntry" + }, + "id": 1963, + "name": "Identifier", + "src": "37332:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1964, + "name": "Identifier", + "src": "37349:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1965, + "name": "Identifier", + "src": "37362:5:1" + } + ], + "id": 1966, + "name": "FunctionCall", + "src": "37332:38:1" + } + ], + "id": 1967, + "name": "FunctionCall", + "src": "37314:57:1" + } + ], + "id": 1968, + "name": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1969, + "name": "Identifier", + "src": "37506:3:1" + } + ], + "id": 1972, + "name": "MemberAccess", + "src": "37506:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1971, + "name": "Identifier", + "src": "37519:3:1" + } + ], + "id": 1973, + "name": "IndexAccess", + "src": "37506:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1974, + "name": "Identifier", + "src": "37526:3:1" + } + ], + "id": 1975, + "name": "MemberAccess", + "src": "37526:12:1" + } + ], + "id": 1976, + "name": "MemberAccess", + "src": "37526:19:1" + } + ], + "id": 1977, + "name": "Assignment", + "src": "37506:39:1" + } + ], + "id": 1978, + "name": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1979, + "name": "Literal", + "src": "37566:4:1" + } + ], + "id": 1980, + "name": "Return", + "src": "37559:11:1" + } + ], + "id": 1981, + "name": "Block", + "src": "37263:318:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1982, + "name": "Identifier", + "src": "37601:3:1" + } + ], + "id": 1987, + "name": "MemberAccess", + "src": "37601:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1984, + "name": "Identifier", + "src": "37614:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1985, + "name": "Literal", + "src": "37625:1:1" + } + ], + "id": 1986, + "name": "BinaryOperation", + "src": "37614:12:1" + } + ], + "id": 1988, + "name": "IndexAccess", + "src": "37601:26:1" + } + ], + "id": 1989, + "name": "MemberAccess", + "src": "37601:33:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1990, + "name": "Identifier", + "src": "37637:5:1" + } + ], + "id": 1991, + "name": "Assignment", + "src": "37601:41:1" + } + ], + "id": 1992, + "name": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1993, + "name": "Literal", + "src": "37663:5:1" + } + ], + "id": 1994, + "name": "Return", + "src": "37656:12:1" + } + ], + "id": 1995, + "name": "Block", + "src": "37587:92:1" + } + ], + "id": 1996, + "name": "IfStatement", + "src": "37244:435:1" + } + ], + "id": 1997, + "name": "Block", + "src": "37089:596:1" + } + ], + "id": 1998, + "name": "FunctionDefinition", + "src": "37007:678:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 1999, + "name": "StructuredDocumentation", + "src": "37691:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2079, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2000, + "name": "UserDefinedTypeName", + "src": "37870:3:1" + } + ], + "id": 2001, + "name": "VariableDeclaration", + "src": "37870:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2002, + "name": "ElementaryTypeName", + "src": "37887:7:1" + } + ], + "id": 2003, + "name": "VariableDeclaration", + "src": "37887:11:1" + } + ], + "id": 2004, + "name": "ParameterList", + "src": "37869:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2005, + "name": "ElementaryTypeName", + "src": "37917:4:1" + } + ], + "id": 2006, + "name": "VariableDeclaration", + "src": "37917:4:1" + } + ], + "id": 2007, + "name": "ParameterList", + "src": "37916:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2009 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2078, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2008, + "name": "ElementaryTypeName", + "src": "38031:7:1" + } + ], + "id": 2009, + "name": "VariableDeclaration", + "src": "38031:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2010, + "name": "Identifier", + "src": "38050:3:1" + } + ], + "id": 2011, + "name": "MemberAccess", + "src": "38050:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2012, + "name": "Identifier", + "src": "38063:3:1" + } + ], + "id": 2013, + "name": "IndexAccess", + "src": "38050:17:1" + } + ], + "id": 2014, + "name": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2015, + "name": "Identifier", + "src": "38082:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2016, + "name": "Literal", + "src": "38094:1:1" + } + ], + "id": 2017, + "name": "BinaryOperation", + "src": "38082:13:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2019 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2018, + "name": "ElementaryTypeName", + "src": "38438:7:1" + } + ], + "id": 2019, + "name": "VariableDeclaration", + "src": "38438:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2020, + "name": "Identifier", + "src": "38462:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2021, + "name": "Literal", + "src": "38473:1:1" + } + ], + "id": 2022, + "name": "BinaryOperation", + "src": "38462:12:1" + } + ], + "id": 2023, + "name": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "attributes": { + "assignments": [ + 2025 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2024, + "name": "ElementaryTypeName", + "src": "38488:7:1" + } + ], + "id": 2025, + "name": "VariableDeclaration", + "src": "38488:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2026, + "name": "Identifier", + "src": "38508:3:1" + } + ], + "id": 2027, + "name": "MemberAccess", + "src": "38508:12:1" + } + ], + "id": 2028, + "name": "MemberAccess", + "src": "38508:19:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2029, + "name": "Literal", + "src": "38530:1:1" + } + ], + "id": 2030, + "name": "BinaryOperation", + "src": "38508:23:1" + } + ], + "id": 2031, + "name": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "attributes": { + "assignments": [ + 2033 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastEntry", + "scope": 2073, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2032, + "name": "UserDefinedTypeName", + "src": "38771:8:1" + } + ], + "id": 2033, + "name": "VariableDeclaration", + "src": "38771:26:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2034, + "name": "Identifier", + "src": "38800:3:1" + } + ], + "id": 2035, + "name": "MemberAccess", + "src": "38800:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2025, + "type": "uint256", + "value": "lastIndex" + }, + "id": 2036, + "name": "Identifier", + "src": "38813:9:1" + } + ], + "id": 2037, + "name": "IndexAccess", + "src": "38800:23:1" + } + ], + "id": 2038, + "name": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2039, + "name": "Identifier", + "src": "38915:3:1" + } + ], + "id": 2042, + "name": "MemberAccess", + "src": "38915:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2041, + "name": "Identifier", + "src": "38928:13:1" + } + ], + "id": 2043, + "name": "IndexAccess", + "src": "38915:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2044, + "name": "Identifier", + "src": "38945:9:1" + } + ], + "id": 2045, + "name": "Assignment", + "src": "38915:39:1" + } + ], + "id": 2046, + "name": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2047, + "name": "Identifier", + "src": "39020:3:1" + } + ], + "id": 2051, + "name": "MemberAccess", + "src": "39020:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2049, + "name": "Identifier", + "src": "39033:9:1" + } + ], + "id": 2050, + "name": "MemberAccess", + "src": "39033:14:1" + } + ], + "id": 2052, + "name": "IndexAccess", + "src": "39020:28:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2053, + "name": "Identifier", + "src": "39051:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2054, + "name": "Literal", + "src": "39067:1:1" + } + ], + "id": 2055, + "name": "BinaryOperation", + "src": "39051:17:1" + } + ], + "id": 2056, + "name": "Assignment", + "src": "39020:48:1" + } + ], + "id": 2057, + "name": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2058, + "name": "Identifier", + "src": "39174:3:1" + } + ], + "id": 2061, + "name": "MemberAccess", + "src": "39174:12:1" + } + ], + "id": 2062, + "name": "MemberAccess", + "src": "39174:16:1" + } + ], + "id": 2063, + "name": "FunctionCall", + "src": "39174:18:1" + } + ], + "id": 2064, + "name": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2065, + "name": "Identifier", + "src": "39267:3:1" + } + ], + "id": 2066, + "name": "MemberAccess", + "src": "39267:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2067, + "name": "Identifier", + "src": "39280:3:1" + } + ], + "id": 2068, + "name": "IndexAccess", + "src": "39267:17:1" + } + ], + "id": 2069, + "name": "UnaryOperation", + "src": "39260:24:1" + } + ], + "id": 2070, + "name": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2071, + "name": "Literal", + "src": "39306:4:1" + } + ], + "id": 2072, + "name": "Return", + "src": "39299:11:1" + } + ], + "id": 2073, + "name": "Block", + "src": "38097:1224:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2074, + "name": "Literal", + "src": "39348:5:1" + } + ], + "id": 2075, + "name": "Return", + "src": "39341:12:1" + } + ], + "id": 2076, + "name": "Block", + "src": "39327:37:1" + } + ], + "id": 2077, + "name": "IfStatement", + "src": "38078:1286:1" + } + ], + "id": 2078, + "name": "Block", + "src": "37923:1447:1" + } + ], + "id": 2079, + "name": "FunctionDefinition", + "src": "37853:1517:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2080, + "name": "StructuredDocumentation", + "src": "39376:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2097, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2081, + "name": "UserDefinedTypeName", + "src": "39468:3:1" + } + ], + "id": 2082, + "name": "VariableDeclaration", + "src": "39468:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2083, + "name": "ElementaryTypeName", + "src": "39485:7:1" + } + ], + "id": 2084, + "name": "VariableDeclaration", + "src": "39485:11:1" + } + ], + "id": 2085, + "name": "ParameterList", + "src": "39467:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2086, + "name": "ElementaryTypeName", + "src": "39520:4:1" + } + ], + "id": 2087, + "name": "VariableDeclaration", + "src": "39520:4:1" + } + ], + "id": 2088, + "name": "ParameterList", + "src": "39519:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2088 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2082, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2089, + "name": "Identifier", + "src": "39543:3:1" + } + ], + "id": 2090, + "name": "MemberAccess", + "src": "39543:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2084, + "type": "bytes32", + "value": "key" + }, + "id": 2091, + "name": "Identifier", + "src": "39556:3:1" + } + ], + "id": 2092, + "name": "IndexAccess", + "src": "39543:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2093, + "name": "Literal", + "src": "39564:1:1" + } + ], + "id": 2094, + "name": "BinaryOperation", + "src": "39543:22:1" + } + ], + "id": 2095, + "name": "Return", + "src": "39536:29:1" + } + ], + "id": 2096, + "name": "Block", + "src": "39526:46:1" + } + ], + "id": 2097, + "name": "FunctionDefinition", + "src": "39449:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2098, + "name": "StructuredDocumentation", + "src": "39578:79:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2110, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2099, + "name": "UserDefinedTypeName", + "src": "39679:3:1" + } + ], + "id": 2100, + "name": "VariableDeclaration", + "src": "39679:15:1" + } + ], + "id": 2101, + "name": "ParameterList", + "src": "39678:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2102, + "name": "ElementaryTypeName", + "src": "39718:7:1" + } + ], + "id": 2103, + "name": "VariableDeclaration", + "src": "39718:7:1" + } + ], + "id": 2104, + "name": "ParameterList", + "src": "39717:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2104 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2100, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2105, + "name": "Identifier", + "src": "39744:3:1" + } + ], + "id": 2106, + "name": "MemberAccess", + "src": "39744:12:1" + } + ], + "id": 2107, + "name": "MemberAccess", + "src": "39744:19:1" + } + ], + "id": 2108, + "name": "Return", + "src": "39737:26:1" + } + ], + "id": 2109, + "name": "Block", + "src": "39727:43:1" + } + ], + "id": 2110, + "name": "FunctionDefinition", + "src": "39662:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2111, + "name": "StructuredDocumentation", + "src": "39775:333:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2145, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2112, + "name": "UserDefinedTypeName", + "src": "40126:3:1" + } + ], + "id": 2113, + "name": "VariableDeclaration", + "src": "40126:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2114, + "name": "ElementaryTypeName", + "src": "40143:7:1" + } + ], + "id": 2115, + "name": "VariableDeclaration", + "src": "40143:13:1" + } + ], + "id": 2116, + "name": "ParameterList", + "src": "40125:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2117, + "name": "ElementaryTypeName", + "src": "40180:7:1" + } + ], + "id": 2118, + "name": "VariableDeclaration", + "src": "40180:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2119, + "name": "ElementaryTypeName", + "src": "40189:7:1" + } + ], + "id": 2120, + "name": "VariableDeclaration", + "src": "40189:7:1" + } + ], + "id": 2121, + "name": "ParameterList", + "src": "40179:18:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2122, + "name": "Identifier", + "src": "40208:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2123, + "name": "Identifier", + "src": "40216:3:1" + } + ], + "id": 2124, + "name": "MemberAccess", + "src": "40216:12:1" + } + ], + "id": 2125, + "name": "MemberAccess", + "src": "40216:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2126, + "name": "Identifier", + "src": "40238:5:1" + } + ], + "id": 2127, + "name": "BinaryOperation", + "src": "40216:27:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: index out of bounds\"", + "value": "EnumerableMap: index out of bounds" + }, + "id": 2128, + "name": "Literal", + "src": "40245:36:1" + } + ], + "id": 2129, + "name": "FunctionCall", + "src": "40208:74:1" + } + ], + "id": 2130, + "name": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "attributes": { + "assignments": [ + 2132 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "entry", + "scope": 2144, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2131, + "name": "UserDefinedTypeName", + "src": "40293:8:1" + } + ], + "id": 2132, + "name": "VariableDeclaration", + "src": "40293:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2133, + "name": "Identifier", + "src": "40318:3:1" + } + ], + "id": 2134, + "name": "MemberAccess", + "src": "40318:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2135, + "name": "Identifier", + "src": "40331:5:1" + } + ], + "id": 2136, + "name": "IndexAccess", + "src": "40318:19:1" + } + ], + "id": 2137, + "name": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2121 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bytes32,bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2138, + "name": "Identifier", + "src": "40355:5:1" + } + ], + "id": 2139, + "name": "MemberAccess", + "src": "40355:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2140, + "name": "Identifier", + "src": "40367:5:1" + } + ], + "id": 2141, + "name": "MemberAccess", + "src": "40367:12:1" + } + ], + "id": 2142, + "name": "TupleExpression", + "src": "40354:26:1" + } + ], + "id": 2143, + "name": "Return", + "src": "40347:33:1" + } + ], + "id": 2144, + "name": "Block", + "src": "40198:189:1" + } + ], + "id": 2145, + "name": "FunctionDefinition", + "src": "40113:274:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2146, + "name": "StructuredDocumentation", + "src": "40393:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2183, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2147, + "name": "UserDefinedTypeName", + "src": "40546:3:1" + } + ], + "id": 2148, + "name": "VariableDeclaration", + "src": "40546:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2149, + "name": "ElementaryTypeName", + "src": "40563:7:1" + } + ], + "id": 2150, + "name": "VariableDeclaration", + "src": "40563:11:1" + } + ], + "id": 2151, + "name": "ParameterList", + "src": "40545:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2152, + "name": "ElementaryTypeName", + "src": "40598:4:1" + } + ], + "id": 2153, + "name": "VariableDeclaration", + "src": "40598:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2154, + "name": "ElementaryTypeName", + "src": "40604:7:1" + } + ], + "id": 2155, + "name": "VariableDeclaration", + "src": "40604:7:1" + } + ], + "id": 2156, + "name": "ParameterList", + "src": "40597:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2158 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2182, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2157, + "name": "ElementaryTypeName", + "src": "40623:7:1" + } + ], + "id": 2158, + "name": "VariableDeclaration", + "src": "40623:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2159, + "name": "Identifier", + "src": "40642:3:1" + } + ], + "id": 2160, + "name": "MemberAccess", + "src": "40642:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2150, + "type": "bytes32", + "value": "key" + }, + "id": 2161, + "name": "Identifier", + "src": "40655:3:1" + } + ], + "id": 2162, + "name": "IndexAccess", + "src": "40642:17:1" + } + ], + "id": 2163, + "name": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2164, + "name": "Identifier", + "src": "40673:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2165, + "name": "Literal", + "src": "40685:1:1" + } + ], + "id": 2166, + "name": "BinaryOperation", + "src": "40673:13:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2167, + "name": "Literal", + "src": "40696:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2168, + "name": "Literal", + "src": "40703:1:1" + } + ], + "id": 2169, + "name": "TupleExpression", + "src": "40695:10:1" + } + ], + "id": 2170, + "name": "Return", + "src": "40688:17:1" + } + ], + "id": 2171, + "name": "IfStatement", + "src": "40669:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,bytes32)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2172, + "name": "Literal", + "src": "40759:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2173, + "name": "Identifier", + "src": "40765:3:1" + } + ], + "id": 2174, + "name": "MemberAccess", + "src": "40765:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2175, + "name": "Identifier", + "src": "40778:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2176, + "name": "Literal", + "src": "40789:1:1" + } + ], + "id": 2177, + "name": "BinaryOperation", + "src": "40778:12:1" + } + ], + "id": 2178, + "name": "IndexAccess", + "src": "40765:26:1" + } + ], + "id": 2179, + "name": "MemberAccess", + "src": "40765:33:1" + } + ], + "id": 2180, + "name": "TupleExpression", + "src": "40758:41:1" + } + ], + "id": 2181, + "name": "Return", + "src": "40751:48:1" + } + ], + "id": 2182, + "name": "Block", + "src": "40613:220:1" + } + ], + "id": 2183, + "name": "FunctionDefinition", + "src": "40529:304:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2184, + "name": "StructuredDocumentation", + "src": "40839:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2216, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2185, + "name": "UserDefinedTypeName", + "src": "40999:3:1" + } + ], + "id": 2186, + "name": "VariableDeclaration", + "src": "40999:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2187, + "name": "ElementaryTypeName", + "src": "41016:7:1" + } + ], + "id": 2188, + "name": "VariableDeclaration", + "src": "41016:11:1" + } + ], + "id": 2189, + "name": "ParameterList", + "src": "40998:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2190, + "name": "ElementaryTypeName", + "src": "41051:7:1" + } + ], + "id": 2191, + "name": "VariableDeclaration", + "src": "41051:7:1" + } + ], + "id": 2192, + "name": "ParameterList", + "src": "41050:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2194 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2215, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2193, + "name": "ElementaryTypeName", + "src": "41070:7:1" + } + ], + "id": 2194, + "name": "VariableDeclaration", + "src": "41070:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2195, + "name": "Identifier", + "src": "41089:3:1" + } + ], + "id": 2196, + "name": "MemberAccess", + "src": "41089:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2188, + "type": "bytes32", + "value": "key" + }, + "id": 2197, + "name": "Identifier", + "src": "41102:3:1" + } + ], + "id": 2198, + "name": "IndexAccess", + "src": "41089:17:1" + } + ], + "id": 2199, + "name": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2200, + "name": "Identifier", + "src": "41116:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2201, + "name": "Identifier", + "src": "41124:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2202, + "name": "Literal", + "src": "41136:1:1" + } + ], + "id": 2203, + "name": "BinaryOperation", + "src": "41124:13:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: nonexistent key\"", + "value": "EnumerableMap: nonexistent key" + }, + "id": 2204, + "name": "Literal", + "src": "41139:32:1" + } + ], + "id": 2205, + "name": "FunctionCall", + "src": "41116:56:1" + } + ], + "id": 2206, + "name": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "attributes": { + "functionReturnParameters": 2192 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2207, + "name": "Identifier", + "src": "41225:3:1" + } + ], + "id": 2208, + "name": "MemberAccess", + "src": "41225:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2209, + "name": "Identifier", + "src": "41238:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2210, + "name": "Literal", + "src": "41249:1:1" + } + ], + "id": 2211, + "name": "BinaryOperation", + "src": "41238:12:1" + } + ], + "id": 2212, + "name": "IndexAccess", + "src": "41225:26:1" + } + ], + "id": 2213, + "name": "MemberAccess", + "src": "41225:33:1" + } + ], + "id": 2214, + "name": "Return", + "src": "41218:40:1" + } + ], + "id": 2215, + "name": "Block", + "src": "41060:232:1" + } + ], + "id": 2216, + "name": "FunctionDefinition", + "src": "40985:307:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2217, + "name": "StructuredDocumentation", + "src": "41298:271:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2251, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2218, + "name": "UserDefinedTypeName", + "src": "41588:3:1" + } + ], + "id": 2219, + "name": "VariableDeclaration", + "src": "41588:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2220, + "name": "ElementaryTypeName", + "src": "41605:7:1" + } + ], + "id": 2221, + "name": "VariableDeclaration", + "src": "41605:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2251, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2222, + "name": "ElementaryTypeName", + "src": "41618:6:1" + } + ], + "id": 2223, + "name": "VariableDeclaration", + "src": "41618:26:1" + } + ], + "id": 2224, + "name": "ParameterList", + "src": "41587:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2225, + "name": "ElementaryTypeName", + "src": "41668:7:1" + } + ], + "id": 2226, + "name": "VariableDeclaration", + "src": "41668:7:1" + } + ], + "id": 2227, + "name": "ParameterList", + "src": "41667:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2229 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2250, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2228, + "name": "ElementaryTypeName", + "src": "41687:7:1" + } + ], + "id": 2229, + "name": "VariableDeclaration", + "src": "41687:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2230, + "name": "Identifier", + "src": "41706:3:1" + } + ], + "id": 2231, + "name": "MemberAccess", + "src": "41706:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2221, + "type": "bytes32", + "value": "key" + }, + "id": 2232, + "name": "Identifier", + "src": "41719:3:1" + } + ], + "id": 2233, + "name": "IndexAccess", + "src": "41706:17:1" + } + ], + "id": 2234, + "name": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2235, + "name": "Identifier", + "src": "41733:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2236, + "name": "Identifier", + "src": "41741:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2237, + "name": "Literal", + "src": "41753:1:1" + } + ], + "id": 2238, + "name": "BinaryOperation", + "src": "41741:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2223, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2239, + "name": "Identifier", + "src": "41756:12:1" + } + ], + "id": 2240, + "name": "FunctionCall", + "src": "41733:36:1" + } + ], + "id": 2241, + "name": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2227 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2242, + "name": "Identifier", + "src": "41822:3:1" + } + ], + "id": 2243, + "name": "MemberAccess", + "src": "41822:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2244, + "name": "Identifier", + "src": "41835:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2245, + "name": "Literal", + "src": "41846:1:1" + } + ], + "id": 2246, + "name": "BinaryOperation", + "src": "41835:12:1" + } + ], + "id": 2247, + "name": "IndexAccess", + "src": "41822:26:1" + } + ], + "id": 2248, + "name": "MemberAccess", + "src": "41822:33:1" + } + ], + "id": 2249, + "name": "Return", + "src": "41815:40:1" + } + ], + "id": 2250, + "name": "Block", + "src": "41677:212:1" + } + ], + "id": 2251, + "name": "FunctionDefinition", + "src": "41574:315:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.UintToAddressMap", + "name": "UintToAddressMap", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 2254, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2252, + "name": "UserDefinedTypeName", + "src": "41954:3:1" + } + ], + "id": 2253, + "name": "VariableDeclaration", + "src": "41954:10:1" + } + ], + "id": 2254, + "name": "StructDefinition", + "src": "41920:51:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2255, + "name": "StructuredDocumentation", + "src": "41977:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2286, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2256, + "name": "UserDefinedTypeName", + "src": "42211:16:1" + } + ], + "id": 2257, + "name": "VariableDeclaration", + "src": "42211:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2258, + "name": "ElementaryTypeName", + "src": "42241:7:1" + } + ], + "id": 2259, + "name": "VariableDeclaration", + "src": "42241:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2260, + "name": "ElementaryTypeName", + "src": "42254:7:1" + } + ], + "id": 2261, + "name": "VariableDeclaration", + "src": "42254:13:1" + } + ], + "id": 2262, + "name": "ParameterList", + "src": "42210:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2263, + "name": "ElementaryTypeName", + "src": "42287:4:1" + } + ], + "id": 2264, + "name": "VariableDeclaration", + "src": "42287:4:1" + } + ], + "id": 2265, + "name": "ParameterList", + "src": "42286:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2265 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1998, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)", + "value": "_set" + }, + "id": 2266, + "name": "Identifier", + "src": "42310:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2257, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2267, + "name": "Identifier", + "src": "42315:3:1" + } + ], + "id": 2268, + "name": "MemberAccess", + "src": "42315:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2269, + "name": "ElementaryTypeName", + "src": "42327:7:1" + } + ], + "id": 2270, + "name": "ElementaryTypeNameExpression", + "src": "42327:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2259, + "type": "uint256", + "value": "key" + }, + "id": 2271, + "name": "Identifier", + "src": "42335:3:1" + } + ], + "id": 2272, + "name": "FunctionCall", + "src": "42327:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2273, + "name": "ElementaryTypeName", + "src": "42341:7:1" + } + ], + "id": 2274, + "name": "ElementaryTypeNameExpression", + "src": "42341:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2275, + "name": "ElementaryTypeName", + "src": "42349:7:1" + } + ], + "id": 2276, + "name": "ElementaryTypeNameExpression", + "src": "42349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2277, + "name": "ElementaryTypeName", + "src": "42357:7:1" + } + ], + "id": 2278, + "name": "ElementaryTypeNameExpression", + "src": "42357:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2261, + "type": "address", + "value": "value" + }, + "id": 2279, + "name": "Identifier", + "src": "42365:5:1" + } + ], + "id": 2280, + "name": "FunctionCall", + "src": "42357:14:1" + } + ], + "id": 2281, + "name": "FunctionCall", + "src": "42349:23:1" + } + ], + "id": 2282, + "name": "FunctionCall", + "src": "42341:32:1" + } + ], + "id": 2283, + "name": "FunctionCall", + "src": "42310:64:1" + } + ], + "id": 2284, + "name": "Return", + "src": "42303:71:1" + } + ], + "id": 2285, + "name": "Block", + "src": "42293:88:1" + } + ], + "id": 2286, + "name": "FunctionDefinition", + "src": "42198:183:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2287, + "name": "StructuredDocumentation", + "src": "42387:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2306, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2288, + "name": "UserDefinedTypeName", + "src": "42556:16:1" + } + ], + "id": 2289, + "name": "VariableDeclaration", + "src": "42556:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2290, + "name": "ElementaryTypeName", + "src": "42586:7:1" + } + ], + "id": 2291, + "name": "VariableDeclaration", + "src": "42586:11:1" + } + ], + "id": 2292, + "name": "ParameterList", + "src": "42555:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2293, + "name": "ElementaryTypeName", + "src": "42617:4:1" + } + ], + "id": 2294, + "name": "VariableDeclaration", + "src": "42617:4:1" + } + ], + "id": 2295, + "name": "ParameterList", + "src": "42616:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2295 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2079, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 2296, + "name": "Identifier", + "src": "42640:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2289, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2297, + "name": "Identifier", + "src": "42648:3:1" + } + ], + "id": 2298, + "name": "MemberAccess", + "src": "42648:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2299, + "name": "ElementaryTypeName", + "src": "42660:7:1" + } + ], + "id": 2300, + "name": "ElementaryTypeNameExpression", + "src": "42660:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2291, + "type": "uint256", + "value": "key" + }, + "id": 2301, + "name": "Identifier", + "src": "42668:3:1" + } + ], + "id": 2302, + "name": "FunctionCall", + "src": "42660:12:1" + } + ], + "id": 2303, + "name": "FunctionCall", + "src": "42640:33:1" + } + ], + "id": 2304, + "name": "Return", + "src": "42633:40:1" + } + ], + "id": 2305, + "name": "Block", + "src": "42623:57:1" + } + ], + "id": 2306, + "name": "FunctionDefinition", + "src": "42540:140:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2307, + "name": "StructuredDocumentation", + "src": "42686:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2326, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2308, + "name": "UserDefinedTypeName", + "src": "42777:16:1" + } + ], + "id": 2309, + "name": "VariableDeclaration", + "src": "42777:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2310, + "name": "ElementaryTypeName", + "src": "42807:7:1" + } + ], + "id": 2311, + "name": "VariableDeclaration", + "src": "42807:11:1" + } + ], + "id": 2312, + "name": "ParameterList", + "src": "42776:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2313, + "name": "ElementaryTypeName", + "src": "42843:4:1" + } + ], + "id": 2314, + "name": "VariableDeclaration", + "src": "42843:4:1" + } + ], + "id": 2315, + "name": "ParameterList", + "src": "42842:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2315 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2097, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 2316, + "name": "Identifier", + "src": "42866:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2309, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2317, + "name": "Identifier", + "src": "42876:3:1" + } + ], + "id": 2318, + "name": "MemberAccess", + "src": "42876:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2319, + "name": "ElementaryTypeName", + "src": "42888:7:1" + } + ], + "id": 2320, + "name": "ElementaryTypeNameExpression", + "src": "42888:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2311, + "type": "uint256", + "value": "key" + }, + "id": 2321, + "name": "Identifier", + "src": "42896:3:1" + } + ], + "id": 2322, + "name": "FunctionCall", + "src": "42888:12:1" + } + ], + "id": 2323, + "name": "FunctionCall", + "src": "42866:35:1" + } + ], + "id": 2324, + "name": "Return", + "src": "42859:42:1" + } + ], + "id": 2325, + "name": "Block", + "src": "42849:59:1" + } + ], + "id": 2326, + "name": "FunctionDefinition", + "src": "42759:149:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2327, + "name": "StructuredDocumentation", + "src": "42914:72:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2340, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2328, + "name": "UserDefinedTypeName", + "src": "43007:16:1" + } + ], + "id": 2329, + "name": "VariableDeclaration", + "src": "43007:28:1" + } + ], + "id": 2330, + "name": "ParameterList", + "src": "43006:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2340, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2331, + "name": "ElementaryTypeName", + "src": "43060:7:1" + } + ], + "id": 2332, + "name": "VariableDeclaration", + "src": "43060:7:1" + } + ], + "id": 2333, + "name": "ParameterList", + "src": "43059:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2333 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2110, + "type": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 2334, + "name": "Identifier", + "src": "43086:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2329, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2335, + "name": "Identifier", + "src": "43094:3:1" + } + ], + "id": 2336, + "name": "MemberAccess", + "src": "43094:10:1" + } + ], + "id": 2337, + "name": "FunctionCall", + "src": "43086:19:1" + } + ], + "id": 2338, + "name": "Return", + "src": "43079:26:1" + } + ], + "id": 2339, + "name": "Block", + "src": "43069:43:1" + } + ], + "id": 2340, + "name": "FunctionDefinition", + "src": "42991:121:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2341, + "name": "StructuredDocumentation", + "src": "43117:318:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2379, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2342, + "name": "UserDefinedTypeName", + "src": "43452:16:1" + } + ], + "id": 2343, + "name": "VariableDeclaration", + "src": "43452:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2344, + "name": "ElementaryTypeName", + "src": "43482:7:1" + } + ], + "id": 2345, + "name": "VariableDeclaration", + "src": "43482:13:1" + } + ], + "id": 2346, + "name": "ParameterList", + "src": "43451:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2347, + "name": "ElementaryTypeName", + "src": "43520:7:1" + } + ], + "id": 2348, + "name": "VariableDeclaration", + "src": "43520:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2349, + "name": "ElementaryTypeName", + "src": "43529:7:1" + } + ], + "id": 2350, + "name": "VariableDeclaration", + "src": "43529:7:1" + } + ], + "id": 2351, + "name": "ParameterList", + "src": "43519:18:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2353, + 2355 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2352, + "name": "ElementaryTypeName", + "src": "43549:7:1" + } + ], + "id": 2353, + "name": "VariableDeclaration", + "src": "43549:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2354, + "name": "ElementaryTypeName", + "src": "43562:7:1" + } + ], + "id": 2355, + "name": "VariableDeclaration", + "src": "43562:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bytes32,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2145, + "type": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)", + "value": "_at" + }, + "id": 2356, + "name": "Identifier", + "src": "43579:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2343, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2357, + "name": "Identifier", + "src": "43583:3:1" + } + ], + "id": 2358, + "name": "MemberAccess", + "src": "43583:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2345, + "type": "uint256", + "value": "index" + }, + "id": 2359, + "name": "Identifier", + "src": "43595:5:1" + } + ], + "id": 2360, + "name": "FunctionCall", + "src": "43579:22:1" + } + ], + "id": 2361, + "name": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "attributes": { + "functionReturnParameters": 2351 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(uint256,address payable)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2362, + "name": "ElementaryTypeName", + "src": "43619:7:1" + } + ], + "id": 2363, + "name": "ElementaryTypeNameExpression", + "src": "43619:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2353, + "type": "bytes32", + "value": "key" + }, + "id": 2364, + "name": "Identifier", + "src": "43627:3:1" + } + ], + "id": 2365, + "name": "FunctionCall", + "src": "43619:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2366, + "name": "ElementaryTypeName", + "src": "43633:7:1" + } + ], + "id": 2367, + "name": "ElementaryTypeNameExpression", + "src": "43633:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2368, + "name": "ElementaryTypeName", + "src": "43641:7:1" + } + ], + "id": 2369, + "name": "ElementaryTypeNameExpression", + "src": "43641:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2370, + "name": "ElementaryTypeName", + "src": "43649:7:1" + } + ], + "id": 2371, + "name": "ElementaryTypeNameExpression", + "src": "43649:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2355, + "type": "bytes32", + "value": "value" + }, + "id": 2372, + "name": "Identifier", + "src": "43657:5:1" + } + ], + "id": 2373, + "name": "FunctionCall", + "src": "43649:14:1" + } + ], + "id": 2374, + "name": "FunctionCall", + "src": "43641:23:1" + } + ], + "id": 2375, + "name": "FunctionCall", + "src": "43633:32:1" + } + ], + "id": 2376, + "name": "TupleExpression", + "src": "43618:48:1" + } + ], + "id": 2377, + "name": "Return", + "src": "43611:55:1" + } + ], + "id": 2378, + "name": "Block", + "src": "43538:135:1" + } + ], + "id": 2379, + "name": "FunctionDefinition", + "src": "43440:233:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2380, + "name": "StructuredDocumentation", + "src": "43679:169:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2418, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2381, + "name": "UserDefinedTypeName", + "src": "43869:16:1" + } + ], + "id": 2382, + "name": "VariableDeclaration", + "src": "43869:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2383, + "name": "ElementaryTypeName", + "src": "43899:7:1" + } + ], + "id": 2384, + "name": "VariableDeclaration", + "src": "43899:11:1" + } + ], + "id": 2385, + "name": "ParameterList", + "src": "43868:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2386, + "name": "ElementaryTypeName", + "src": "43935:4:1" + } + ], + "id": 2387, + "name": "VariableDeclaration", + "src": "43935:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2388, + "name": "ElementaryTypeName", + "src": "43941:7:1" + } + ], + "id": 2389, + "name": "VariableDeclaration", + "src": "43941:7:1" + } + ], + "id": 2390, + "name": "ParameterList", + "src": "43934:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2392, + 2394 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "43961:4:1" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "43961:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "43975:7:1" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "43975:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2183, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)", + "value": "_tryGet" + }, + "id": 2395, + "name": "Identifier", + "src": "43992:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2382, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2396, + "name": "Identifier", + "src": "44000:3:1" + } + ], + "id": 2397, + "name": "MemberAccess", + "src": "44000:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "44012:7:1" + } + ], + "id": 2399, + "name": "ElementaryTypeNameExpression", + "src": "44012:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2384, + "type": "uint256", + "value": "key" + }, + "id": 2400, + "name": "Identifier", + "src": "44020:3:1" + } + ], + "id": 2401, + "name": "FunctionCall", + "src": "44012:12:1" + } + ], + "id": 2402, + "name": "FunctionCall", + "src": "43992:33:1" + } + ], + "id": 2403, + "name": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "attributes": { + "functionReturnParameters": 2390 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,address payable)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2392, + "type": "bool", + "value": "success" + }, + "id": 2404, + "name": "Identifier", + "src": "44043:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2405, + "name": "ElementaryTypeName", + "src": "44052:7:1" + } + ], + "id": 2406, + "name": "ElementaryTypeNameExpression", + "src": "44052:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "44060:7:1" + } + ], + "id": 2408, + "name": "ElementaryTypeNameExpression", + "src": "44060:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "44068:7:1" + } + ], + "id": 2410, + "name": "ElementaryTypeNameExpression", + "src": "44068:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2394, + "type": "bytes32", + "value": "value" + }, + "id": 2411, + "name": "Identifier", + "src": "44076:5:1" + } + ], + "id": 2412, + "name": "FunctionCall", + "src": "44068:14:1" + } + ], + "id": 2413, + "name": "FunctionCall", + "src": "44060:23:1" + } + ], + "id": 2414, + "name": "FunctionCall", + "src": "44052:32:1" + } + ], + "id": 2415, + "name": "TupleExpression", + "src": "44042:43:1" + } + ], + "id": 2416, + "name": "Return", + "src": "44035:50:1" + } + ], + "id": 2417, + "name": "Block", + "src": "43950:142:1" + } + ], + "id": 2418, + "name": "FunctionDefinition", + "src": "43853:239:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2419, + "name": "StructuredDocumentation", + "src": "44098:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2447, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2420, + "name": "UserDefinedTypeName", + "src": "44257:16:1" + } + ], + "id": 2421, + "name": "VariableDeclaration", + "src": "44257:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2422, + "name": "ElementaryTypeName", + "src": "44287:7:1" + } + ], + "id": 2423, + "name": "VariableDeclaration", + "src": "44287:11:1" + } + ], + "id": 2424, + "name": "ParameterList", + "src": "44256:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2425, + "name": "ElementaryTypeName", + "src": "44323:7:1" + } + ], + "id": 2426, + "name": "VariableDeclaration", + "src": "44323:7:1" + } + ], + "id": 2427, + "name": "ParameterList", + "src": "44322:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2427 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2428, + "name": "ElementaryTypeName", + "src": "44349:7:1" + } + ], + "id": 2429, + "name": "ElementaryTypeNameExpression", + "src": "44349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2430, + "name": "ElementaryTypeName", + "src": "44357:7:1" + } + ], + "id": 2431, + "name": "ElementaryTypeNameExpression", + "src": "44357:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2432, + "name": "ElementaryTypeName", + "src": "44365:7:1" + } + ], + "id": 2433, + "name": "ElementaryTypeNameExpression", + "src": "44365:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)", + "value": "_get" + }, + "id": 2434, + "name": "Identifier", + "src": "44373:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2421, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2435, + "name": "Identifier", + "src": "44378:3:1" + } + ], + "id": 2436, + "name": "MemberAccess", + "src": "44378:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "44390:7:1" + } + ], + "id": 2438, + "name": "ElementaryTypeNameExpression", + "src": "44390:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2423, + "type": "uint256", + "value": "key" + }, + "id": 2439, + "name": "Identifier", + "src": "44398:3:1" + } + ], + "id": 2440, + "name": "FunctionCall", + "src": "44390:12:1" + } + ], + "id": 2441, + "name": "FunctionCall", + "src": "44373:30:1" + } + ], + "id": 2442, + "name": "FunctionCall", + "src": "44365:39:1" + } + ], + "id": 2443, + "name": "FunctionCall", + "src": "44357:48:1" + } + ], + "id": 2444, + "name": "FunctionCall", + "src": "44349:57:1" + } + ], + "id": 2445, + "name": "Return", + "src": "44342:64:1" + } + ], + "id": 2446, + "name": "Block", + "src": "44332:81:1" + } + ], + "id": 2447, + "name": "FunctionDefinition", + "src": "44244:169:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2448, + "name": "StructuredDocumentation", + "src": "44419:269:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2479, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2449, + "name": "UserDefinedTypeName", + "src": "44706:16:1" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "44706:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2451, + "name": "ElementaryTypeName", + "src": "44736:7:1" + } + ], + "id": 2452, + "name": "VariableDeclaration", + "src": "44736:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2479, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "44749:6:1" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "44749:26:1" + } + ], + "id": 2455, + "name": "ParameterList", + "src": "44705:71:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2456, + "name": "ElementaryTypeName", + "src": "44800:7:1" + } + ], + "id": 2457, + "name": "VariableDeclaration", + "src": "44800:7:1" + } + ], + "id": 2458, + "name": "ParameterList", + "src": "44799:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2458 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "44826:7:1" + } + ], + "id": 2460, + "name": "ElementaryTypeNameExpression", + "src": "44826:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "44834:7:1" + } + ], + "id": 2462, + "name": "ElementaryTypeNameExpression", + "src": "44834:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2463, + "name": "ElementaryTypeName", + "src": "44842:7:1" + } + ], + "id": 2464, + "name": "ElementaryTypeNameExpression", + "src": "44842:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)", + "value": "_get" + }, + "id": 2465, + "name": "Identifier", + "src": "44850:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2450, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2466, + "name": "Identifier", + "src": "44855:3:1" + } + ], + "id": 2467, + "name": "MemberAccess", + "src": "44855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2468, + "name": "ElementaryTypeName", + "src": "44867:7:1" + } + ], + "id": 2469, + "name": "ElementaryTypeNameExpression", + "src": "44867:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2452, + "type": "uint256", + "value": "key" + }, + "id": 2470, + "name": "Identifier", + "src": "44875:3:1" + } + ], + "id": 2471, + "name": "FunctionCall", + "src": "44867:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2454, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2472, + "name": "Identifier", + "src": "44881:12:1" + } + ], + "id": 2473, + "name": "FunctionCall", + "src": "44850:44:1" + } + ], + "id": 2474, + "name": "FunctionCall", + "src": "44842:53:1" + } + ], + "id": 2475, + "name": "FunctionCall", + "src": "44834:62:1" + } + ], + "id": 2476, + "name": "FunctionCall", + "src": "44826:71:1" + } + ], + "id": 2477, + "name": "Return", + "src": "44819:78:1" + } + ], + "id": 2478, + "name": "Block", + "src": "44809:95:1" + } + ], + "id": 2479, + "name": "FunctionDefinition", + "src": "44693:211:1" + } + ], + "id": 2480, + "name": "ContractDefinition", + "src": "35943:8963:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2481, + "name": "PragmaDirective", + "src": "44959:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev String operations." + }, + "id": 2482, + "name": "StructuredDocumentation", + "src": "44992:34:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toString", + "scope": 2566, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2483, + "name": "StructuredDocumentation", + "src": "45049:82:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2565, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2484, + "name": "ElementaryTypeName", + "src": "45154:7:1" + } + ], + "id": 2485, + "name": "VariableDeclaration", + "src": "45154:13:1" + } + ], + "id": 2486, + "name": "ParameterList", + "src": "45153:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2565, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "45192:6:1" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "45192:13:1" + } + ], + "id": 2489, + "name": "ParameterList", + "src": "45191:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2490, + "name": "Identifier", + "src": "45409:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2491, + "name": "Literal", + "src": "45418:1:1" + } + ], + "id": 2492, + "name": "BinaryOperation", + "src": "45409:10:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"0\"", + "value": "0" + }, + "id": 2493, + "name": "Literal", + "src": "45442:3:1" + } + ], + "id": 2494, + "name": "Return", + "src": "45435:10:1" + } + ], + "id": 2495, + "name": "Block", + "src": "45421:35:1" + } + ], + "id": 2496, + "name": "IfStatement", + "src": "45405:51:1" + }, + { + "attributes": { + "assignments": [ + 2498 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "temp", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2497, + "name": "ElementaryTypeName", + "src": "45465:7:1" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "45465:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2499, + "name": "Identifier", + "src": "45480:5:1" + } + ], + "id": 2500, + "name": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "attributes": { + "assignments": [ + 2502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "digits", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "45495:7:1" + } + ], + "id": 2502, + "name": "VariableDeclaration", + "src": "45495:14:1" + } + ], + "id": 2503, + "name": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2504, + "name": "Identifier", + "src": "45526:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2505, + "name": "Literal", + "src": "45534:1:1" + } + ], + "id": 2506, + "name": "BinaryOperation", + "src": "45526:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2507, + "name": "Identifier", + "src": "45551:6:1" + } + ], + "id": 2508, + "name": "UnaryOperation", + "src": "45551:8:1" + } + ], + "id": 2509, + "name": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2510, + "name": "Identifier", + "src": "45573:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2511, + "name": "Literal", + "src": "45581:2:1" + } + ], + "id": 2512, + "name": "Assignment", + "src": "45573:10:1" + } + ], + "id": 2513, + "name": "ExpressionStatement", + "src": "45573:10:1" + } + ], + "id": 2514, + "name": "Block", + "src": "45537:57:1" + } + ], + "id": 2515, + "name": "WhileStatement", + "src": "45519:75:1" + }, + { + "attributes": { + "assignments": [ + 2517 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "buffer", + "scope": 2564, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2516, + "name": "ElementaryTypeName", + "src": "45603:5:1" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "45603:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "function (uint256) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "45629:5:1" + } + ], + "id": 2519, + "name": "NewExpression", + "src": "45625:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2520, + "name": "Identifier", + "src": "45635:6:1" + } + ], + "id": 2521, + "name": "FunctionCall", + "src": "45625:17:1" + } + ], + "id": 2522, + "name": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "attributes": { + "assignments": [ + 2524 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2523, + "name": "ElementaryTypeName", + "src": "45652:7:1" + } + ], + "id": 2524, + "name": "VariableDeclaration", + "src": "45652:13:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2525, + "name": "Identifier", + "src": "45668:6:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2526, + "name": "Literal", + "src": "45677:1:1" + } + ], + "id": 2527, + "name": "BinaryOperation", + "src": "45668:10:1" + } + ], + "id": 2528, + "name": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2529, + "name": "Identifier", + "src": "45688:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2530, + "name": "Identifier", + "src": "45695:5:1" + } + ], + "id": 2531, + "name": "Assignment", + "src": "45688:12:1" + } + ], + "id": 2532, + "name": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2533, + "name": "Identifier", + "src": "45717:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2534, + "name": "Literal", + "src": "45725:1:1" + } + ], + "id": 2535, + "name": "BinaryOperation", + "src": "45717:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2536, + "name": "Identifier", + "src": "45742:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "--", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2524, + "type": "uint256", + "value": "index" + }, + "id": 2537, + "name": "Identifier", + "src": "45749:5:1" + } + ], + "id": 2538, + "name": "UnaryOperation", + "src": "45749:7:1" + } + ], + "id": 2539, + "name": "IndexAccess", + "src": "45742:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes1", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes1)" + }, + "children": [ + { + "attributes": { + "name": "bytes1" + }, + "id": 2540, + "name": "ElementaryTypeName", + "src": "45760:6:1" + } + ], + "id": 2541, + "name": "ElementaryTypeNameExpression", + "src": "45760:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 2542, + "name": "ElementaryTypeName", + "src": "45767:5:1" + } + ], + "id": 2543, + "name": "ElementaryTypeNameExpression", + "src": "45767:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "hexvalue": "3438", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 48", + "value": "48" + }, + "id": 2544, + "name": "Literal", + "src": "45773:2:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2545, + "name": "Identifier", + "src": "45778:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2546, + "name": "Literal", + "src": "45785:2:1" + } + ], + "id": 2547, + "name": "BinaryOperation", + "src": "45778:9:1" + } + ], + "id": 2548, + "name": "BinaryOperation", + "src": "45773:14:1" + } + ], + "id": 2549, + "name": "FunctionCall", + "src": "45767:21:1" + } + ], + "id": 2550, + "name": "FunctionCall", + "src": "45760:29:1" + } + ], + "id": 2551, + "name": "Assignment", + "src": "45742:47:1" + } + ], + "id": 2552, + "name": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2553, + "name": "Identifier", + "src": "45803:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2554, + "name": "Literal", + "src": "45811:2:1" + } + ], + "id": 2555, + "name": "Assignment", + "src": "45803:10:1" + } + ], + "id": 2556, + "name": "ExpressionStatement", + "src": "45803:10:1" + } + ], + "id": 2557, + "name": "Block", + "src": "45728:96:1" + } + ], + "id": 2558, + "name": "WhileStatement", + "src": "45710:114:1" + }, + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2559, + "name": "ElementaryTypeName", + "src": "45840:6:1" + } + ], + "id": 2560, + "name": "ElementaryTypeNameExpression", + "src": "45840:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2561, + "name": "Identifier", + "src": "45847:6:1" + } + ], + "id": 2562, + "name": "FunctionCall", + "src": "45840:14:1" + } + ], + "id": 2563, + "name": "Return", + "src": "45833:21:1" + } + ], + "id": 2564, + "name": "Block", + "src": "45207:654:1" + } + ], + "id": 2565, + "name": "FunctionDefinition", + "src": "45136:725:1" + } + ], + "id": 2566, + "name": "ContractDefinition", + "src": "45027:836:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2567, + "name": "PragmaDirective", + "src": "45922:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 2568, + "name": "StructuredDocumentation", + "src": "45955:124:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "Context", + "referencedDeclaration": 530, + "type": "contract Context" + }, + "id": 2569, + "name": "UserDefinedTypeName", + "src": "46099:7:1" + } + ], + "id": 2570, + "name": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "ERC165", + "referencedDeclaration": 781, + "type": "contract ERC165" + }, + "id": 2571, + "name": "UserDefinedTypeName", + "src": "46108:6:1" + } + ], + "id": 2572, + "name": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 2573, + "name": "UserDefinedTypeName", + "src": "46116:7:1" + } + ], + "id": 2574, + "name": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Metadata", + "referencedDeclaration": 680, + "type": "contract IERC721Metadata" + }, + "id": 2575, + "name": "UserDefinedTypeName", + "src": "46125:15:1" + } + ], + "id": 2576, + "name": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Enumerable", + "referencedDeclaration": 709, + "type": "contract IERC721Enumerable" + }, + "id": 2577, + "name": "UserDefinedTypeName", + "src": "46142:17:1" + } + ], + "id": 2578, + "name": "InheritanceSpecifier", + "src": "46142:17:1" + }, + { + "children": [ + { + "attributes": { + "name": "SafeMath", + "referencedDeclaration": 1135, + "type": "library SafeMath" + }, + "id": 2579, + "name": "UserDefinedTypeName", + "src": "46172:8:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2580, + "name": "ElementaryTypeName", + "src": "46185:7:1" + } + ], + "id": 2581, + "name": "UsingForDirective", + "src": "46166:27:1" + }, + { + "children": [ + { + "attributes": { + "name": "Address", + "referencedDeclaration": 1430, + "type": "library Address" + }, + "id": 2582, + "name": "UserDefinedTypeName", + "src": "46204:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "46216:7:1" + } + ], + "id": 2584, + "name": "UsingForDirective", + "src": "46198:26:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableSet", + "referencedDeclaration": 1921, + "type": "library EnumerableSet" + }, + "id": 2585, + "name": "UserDefinedTypeName", + "src": "46235:13:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2586, + "name": "UserDefinedTypeName", + "src": "46253:21:1" + } + ], + "id": 2587, + "name": "UsingForDirective", + "src": "46229:46:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableMap", + "referencedDeclaration": 2480, + "type": "library EnumerableMap" + }, + "id": 2588, + "name": "UserDefinedTypeName", + "src": "46286:13:1" + }, + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2589, + "name": "UserDefinedTypeName", + "src": "46304:30:1" + } + ], + "id": 2590, + "name": "UsingForDirective", + "src": "46280:55:1" + }, + { + "children": [ + { + "attributes": { + "name": "Strings", + "referencedDeclaration": 2566, + "type": "library Strings" + }, + "id": 2591, + "name": "UserDefinedTypeName", + "src": "46346:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2592, + "name": "ElementaryTypeName", + "src": "46358:7:1" + } + ], + "id": 2593, + "name": "UsingForDirective", + "src": "46340:26:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "46544:6:1" + }, + { + "attributes": { + "hexvalue": "30783135306237613032", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 353073666", + "value": "0x150b7a02" + }, + "id": 2595, + "name": "Literal", + "src": "46587:10:1" + } + ], + "id": 2596, + "name": "VariableDeclaration", + "src": "46544:53:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_holderTokens", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => struct EnumerableSet.UintSet)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct EnumerableSet.UintSet)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2597, + "name": "ElementaryTypeName", + "src": "46690:7:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2598, + "name": "UserDefinedTypeName", + "src": "46701:21:1" + } + ], + "id": 2599, + "name": "Mapping", + "src": "46681:42:1" + } + ], + "id": 2600, + "name": "VariableDeclaration", + "src": "46681:64:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenOwners", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2601, + "name": "UserDefinedTypeName", + "src": "46809:30:1" + } + ], + "id": 2602, + "name": "VariableDeclaration", + "src": "46809:51:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => address)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => address)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2603, + "name": "ElementaryTypeName", + "src": "46925:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "46936:7:1" + } + ], + "id": 2605, + "name": "Mapping", + "src": "46916:28:1" + } + ], + "id": 2606, + "name": "VariableDeclaration", + "src": "46916:52:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_operatorApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => mapping(address => bool))", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => mapping(address => bool))" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2607, + "name": "ElementaryTypeName", + "src": "47032:7:1" + }, + { + "attributes": { + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2608, + "name": "ElementaryTypeName", + "src": "47052:7:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2609, + "name": "ElementaryTypeName", + "src": "47063:4:1" + } + ], + "id": 2610, + "name": "Mapping", + "src": "47043:25:1" + } + ], + "id": 2611, + "name": "Mapping", + "src": "47023:46:1" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "47023:73:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_name", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "47121:6:1" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "47121:20:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_symbol", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "47168:6:1" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "47168:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURIs", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => string)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => string)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "47245:7:1" + }, + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2618, + "name": "ElementaryTypeName", + "src": "47256:6:1" + } + ], + "id": 2619, + "name": "Mapping", + "src": "47236:27:1" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "47236:46:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_baseURI", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2621, + "name": "ElementaryTypeName", + "src": "47305:6:1" + } + ], + "id": 2622, + "name": "VariableDeclaration", + "src": "47305:23:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2623, + "name": "ElementaryTypeName", + "src": "48204:6:1" + }, + { + "attributes": { + "hexvalue": "30783830616335386364", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2158778573", + "value": "0x80ac58cd" + }, + "id": 2624, + "name": "Literal", + "src": "48251:10:1" + } + ], + "id": 2625, + "name": "VariableDeclaration", + "src": "48204:57:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2626, + "name": "ElementaryTypeName", + "src": "48527:6:1" + }, + { + "attributes": { + "hexvalue": "30783562356531333966", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1532892063", + "value": "0x5b5e139f" + }, + "id": 2627, + "name": "Literal", + "src": "48583:10:1" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "48527:66:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "48898:6:1" + }, + { + "attributes": { + "hexvalue": "30783738306539643633", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2014223715", + "value": "0x780e9d63" + }, + "id": 2630, + "name": "Literal", + "src": "48956:10:1" + } + ], + "id": 2631, + "name": "VariableDeclaration", + "src": "48898:68:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2632, + "name": "StructuredDocumentation", + "src": "48973:108:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "name_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2633, + "name": "ElementaryTypeName", + "src": "49099:6:1" + } + ], + "id": 2634, + "name": "VariableDeclaration", + "src": "49099:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "symbol_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2635, + "name": "ElementaryTypeName", + "src": "49120:6:1" + } + ], + "id": 2636, + "name": "VariableDeclaration", + "src": "49120:21:1" + } + ], + "id": 2637, + "name": "ParameterList", + "src": "49098:44:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2638, + "name": "ParameterList", + "src": "49143:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2639, + "name": "Identifier", + "src": "49153:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2634, + "type": "string memory", + "value": "name_" + }, + "id": 2640, + "name": "Identifier", + "src": "49161:5:1" + } + ], + "id": 2641, + "name": "Assignment", + "src": "49153:13:1" + } + ], + "id": 2642, + "name": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2643, + "name": "Identifier", + "src": "49176:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2636, + "type": "string memory", + "value": "symbol_" + }, + "id": 2644, + "name": "Identifier", + "src": "49186:7:1" + } + ], + "id": 2645, + "name": "Assignment", + "src": "49176:17:1" + } + ], + "id": 2646, + "name": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2647, + "name": "Identifier", + "src": "49281:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2625, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721" + }, + "id": 2648, + "name": "Identifier", + "src": "49300:20:1" + } + ], + "id": 2649, + "name": "FunctionCall", + "src": "49281:40:1" + } + ], + "id": 2650, + "name": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2651, + "name": "Identifier", + "src": "49331:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2628, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_METADATA" + }, + "id": 2652, + "name": "Identifier", + "src": "49350:29:1" + } + ], + "id": 2653, + "name": "FunctionCall", + "src": "49331:49:1" + } + ], + "id": 2654, + "name": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2655, + "name": "Identifier", + "src": "49390:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2631, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_ENUMERABLE" + }, + "id": 2656, + "name": "Identifier", + "src": "49409:31:1" + } + ], + "id": 2657, + "name": "FunctionCall", + "src": "49390:51:1" + } + ], + "id": 2658, + "name": "ExpressionStatement", + "src": "49390:51:1" + } + ], + "id": 2659, + "name": "Block", + "src": "49143:305:1" + } + ], + "id": 2660, + "name": "FunctionDefinition", + "src": "49086:362:1" + }, + { + "attributes": { + "baseFunctions": [ + 580 + ], + "functionSelector": "70a08231", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-balanceOf}." + }, + "id": 2661, + "name": "StructuredDocumentation", + "src": "49454:48:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2665, + "name": "OverrideSpecifier", + "src": "49561:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2662, + "name": "ElementaryTypeName", + "src": "49526:7:1" + } + ], + "id": 2663, + "name": "VariableDeclaration", + "src": "49526:13:1" + } + ], + "id": 2664, + "name": "ParameterList", + "src": "49525:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2666, + "name": "ElementaryTypeName", + "src": "49579:7:1" + } + ], + "id": 2667, + "name": "VariableDeclaration", + "src": "49579:7:1" + } + ], + "id": 2668, + "name": "ParameterList", + "src": "49578:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2669, + "name": "Identifier", + "src": "49598:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2670, + "name": "Identifier", + "src": "49606:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2671, + "name": "ElementaryTypeName", + "src": "49615:7:1" + } + ], + "id": 2672, + "name": "ElementaryTypeNameExpression", + "src": "49615:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2673, + "name": "Literal", + "src": "49623:1:1" + } + ], + "id": 2674, + "name": "FunctionCall", + "src": "49615:10:1" + } + ], + "id": 2675, + "name": "BinaryOperation", + "src": "49606:19:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: balance query for the zero address\"", + "value": "ERC721: balance query for the zero address" + }, + "id": 2676, + "name": "Literal", + "src": "49627:44:1" + } + ], + "id": 2677, + "name": "FunctionCall", + "src": "49598:74:1" + } + ], + "id": 2678, + "name": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "attributes": { + "functionReturnParameters": 2668 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 1900, + "type": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2679, + "name": "Identifier", + "src": "49689:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2680, + "name": "Identifier", + "src": "49703:5:1" + } + ], + "id": 2681, + "name": "IndexAccess", + "src": "49689:20:1" + } + ], + "id": 2682, + "name": "MemberAccess", + "src": "49689:27:1" + } + ], + "id": 2683, + "name": "FunctionCall", + "src": "49689:29:1" + } + ], + "id": 2684, + "name": "Return", + "src": "49682:36:1" + } + ], + "id": 2685, + "name": "Block", + "src": "49588:137:1" + } + ], + "id": 2686, + "name": "FunctionDefinition", + "src": "49507:218:1" + }, + { + "attributes": { + "baseFunctions": [ + 588 + ], + "functionSelector": "6352211e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-ownerOf}." + }, + "id": 2687, + "name": "StructuredDocumentation", + "src": "49731:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2691, + "name": "OverrideSpecifier", + "src": "49836:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2688, + "name": "ElementaryTypeName", + "src": "49799:7:1" + } + ], + "id": 2689, + "name": "VariableDeclaration", + "src": "49799:15:1" + } + ], + "id": 2690, + "name": "ParameterList", + "src": "49798:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2692, + "name": "ElementaryTypeName", + "src": "49854:7:1" + } + ], + "id": 2693, + "name": "VariableDeclaration", + "src": "49854:7:1" + } + ], + "id": 2694, + "name": "ParameterList", + "src": "49853:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "get", + "referencedDeclaration": 2479, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2695, + "name": "Identifier", + "src": "49880:12:1" + } + ], + "id": 2696, + "name": "MemberAccess", + "src": "49880:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2689, + "type": "uint256", + "value": "tokenId" + }, + "id": 2697, + "name": "Identifier", + "src": "49897:7:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: owner query for nonexistent token\"", + "value": "ERC721: owner query for nonexistent token" + }, + "id": 2698, + "name": "Literal", + "src": "49906:43:1" + } + ], + "id": 2699, + "name": "FunctionCall", + "src": "49880:70:1" + } + ], + "id": 2700, + "name": "Return", + "src": "49873:77:1" + } + ], + "id": 2701, + "name": "Block", + "src": "49863:94:1" + } + ], + "id": 2702, + "name": "FunctionDefinition", + "src": "49782:175:1" + }, + { + "attributes": { + "baseFunctions": [ + 665 + ], + "functionSelector": "06fdde03", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-name}." + }, + "id": 2703, + "name": "StructuredDocumentation", + "src": "49963:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2705, + "name": "OverrideSpecifier", + "src": "50055:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2704, + "name": "ParameterList", + "src": "50032:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2712, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2706, + "name": "ElementaryTypeName", + "src": "50073:6:1" + } + ], + "id": 2707, + "name": "VariableDeclaration", + "src": "50073:13:1" + } + ], + "id": 2708, + "name": "ParameterList", + "src": "50072:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2708 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2709, + "name": "Identifier", + "src": "50105:5:1" + } + ], + "id": 2710, + "name": "Return", + "src": "50098:12:1" + } + ], + "id": 2711, + "name": "Block", + "src": "50088:29:1" + } + ], + "id": 2712, + "name": "FunctionDefinition", + "src": "50019:98:1" + }, + { + "attributes": { + "baseFunctions": [ + 671 + ], + "functionSelector": "95d89b41", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-symbol}." + }, + "id": 2713, + "name": "StructuredDocumentation", + "src": "50123:53:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2715, + "name": "OverrideSpecifier", + "src": "50219:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2714, + "name": "ParameterList", + "src": "50196:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2722, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2716, + "name": "ElementaryTypeName", + "src": "50237:6:1" + } + ], + "id": 2717, + "name": "VariableDeclaration", + "src": "50237:13:1" + } + ], + "id": 2718, + "name": "ParameterList", + "src": "50236:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2718 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2719, + "name": "Identifier", + "src": "50269:7:1" + } + ], + "id": 2720, + "name": "Return", + "src": "50262:14:1" + } + ], + "id": 2721, + "name": "Block", + "src": "50252:31:1" + } + ], + "id": 2722, + "name": "FunctionDefinition", + "src": "50181:102:1" + }, + { + "attributes": { + "baseFunctions": [ + 679 + ], + "functionSelector": "c87b56dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "id": 2723, + "name": "StructuredDocumentation", + "src": "50289:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2727, + "name": "OverrideSpecifier", + "src": "50404:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2790, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2724, + "name": "ElementaryTypeName", + "src": "50367:7:1" + } + ], + "id": 2725, + "name": "VariableDeclaration", + "src": "50367:15:1" + } + ], + "id": 2726, + "name": "ParameterList", + "src": "50366:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2790, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2728, + "name": "ElementaryTypeName", + "src": "50422:6:1" + } + ], + "id": 2729, + "name": "VariableDeclaration", + "src": "50422:13:1" + } + ], + "id": 2730, + "name": "ParameterList", + "src": "50421:15:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2731, + "name": "Identifier", + "src": "50447:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2732, + "name": "Identifier", + "src": "50455:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2733, + "name": "Identifier", + "src": "50463:7:1" + } + ], + "id": 2734, + "name": "FunctionCall", + "src": "50455:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI query for nonexistent token\"", + "value": "ERC721Metadata: URI query for nonexistent token" + }, + "id": 2735, + "name": "Literal", + "src": "50473:49:1" + } + ], + "id": 2736, + "name": "FunctionCall", + "src": "50447:76:1" + } + ], + "id": 2737, + "name": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "attributes": { + "assignments": [ + 2739 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2738, + "name": "ElementaryTypeName", + "src": "50534:6:1" + } + ], + "id": 2739, + "name": "VariableDeclaration", + "src": "50534:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 2740, + "name": "Identifier", + "src": "50560:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2741, + "name": "Identifier", + "src": "50571:7:1" + } + ], + "id": 2742, + "name": "IndexAccess", + "src": "50560:19:1" + } + ], + "id": 2743, + "name": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "attributes": { + "assignments": [ + 2745 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "base", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2744, + "name": "ElementaryTypeName", + "src": "50589:6:1" + } + ], + "id": 2745, + "name": "VariableDeclaration", + "src": "50589:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2799, + "type": "function () view returns (string memory)", + "value": "baseURI" + }, + "id": 2746, + "name": "Identifier", + "src": "50610:7:1" + } + ], + "id": 2747, + "name": "FunctionCall", + "src": "50610:9:1" + } + ], + "id": 2748, + "name": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2749, + "name": "ElementaryTypeName", + "src": "50692:5:1" + } + ], + "id": 2750, + "name": "ElementaryTypeNameExpression", + "src": "50692:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2751, + "name": "Identifier", + "src": "50698:4:1" + } + ], + "id": 2752, + "name": "FunctionCall", + "src": "50692:11:1" + } + ], + "id": 2753, + "name": "MemberAccess", + "src": "50692:18:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2754, + "name": "Literal", + "src": "50714:1:1" + } + ], + "id": 2755, + "name": "BinaryOperation", + "src": "50692:23:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2756, + "name": "Identifier", + "src": "50738:9:1" + } + ], + "id": 2757, + "name": "Return", + "src": "50731:16:1" + } + ], + "id": 2758, + "name": "Block", + "src": "50717:41:1" + } + ], + "id": 2759, + "name": "IfStatement", + "src": "50688:70:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2760, + "name": "ElementaryTypeName", + "src": "50860:5:1" + } + ], + "id": 2761, + "name": "ElementaryTypeNameExpression", + "src": "50860:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2762, + "name": "Identifier", + "src": "50866:9:1" + } + ], + "id": 2763, + "name": "FunctionCall", + "src": "50860:16:1" + } + ], + "id": 2764, + "name": "MemberAccess", + "src": "50860:23:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2765, + "name": "Literal", + "src": "50886:1:1" + } + ], + "id": 2766, + "name": "BinaryOperation", + "src": "50860:27:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2767, + "name": "ElementaryTypeName", + "src": "50910:6:1" + } + ], + "id": 2768, + "name": "ElementaryTypeNameExpression", + "src": "50910:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2769, + "name": "Identifier", + "src": "50917:3:1" + } + ], + "id": 2770, + "name": "MemberAccess", + "src": "50917:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2771, + "name": "Identifier", + "src": "50934:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2772, + "name": "Identifier", + "src": "50940:9:1" + } + ], + "id": 2773, + "name": "FunctionCall", + "src": "50917:33:1" + } + ], + "id": 2774, + "name": "FunctionCall", + "src": "50910:41:1" + } + ], + "id": 2775, + "name": "Return", + "src": "50903:48:1" + } + ], + "id": 2776, + "name": "Block", + "src": "50889:73:1" + } + ], + "id": 2777, + "name": "IfStatement", + "src": "50856:106:1" + }, + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2778, + "name": "ElementaryTypeName", + "src": "51068:6:1" + } + ], + "id": 2779, + "name": "ElementaryTypeNameExpression", + "src": "51068:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2780, + "name": "Identifier", + "src": "51075:3:1" + } + ], + "id": 2781, + "name": "MemberAccess", + "src": "51075:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2782, + "name": "Identifier", + "src": "51092:4:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "toString", + "referencedDeclaration": 2565, + "type": "function (uint256) pure returns (string memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2783, + "name": "Identifier", + "src": "51098:7:1" + } + ], + "id": 2784, + "name": "MemberAccess", + "src": "51098:16:1" + } + ], + "id": 2785, + "name": "FunctionCall", + "src": "51098:18:1" + } + ], + "id": 2786, + "name": "FunctionCall", + "src": "51075:42:1" + } + ], + "id": 2787, + "name": "FunctionCall", + "src": "51068:50:1" + } + ], + "id": 2788, + "name": "Return", + "src": "51061:57:1" + } + ], + "id": 2789, + "name": "Block", + "src": "50437:688:1" + } + ], + "id": 2790, + "name": "FunctionDefinition", + "src": "50349:776:1" + }, + { + "attributes": { + "functionSelector": "6c0360eb", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "baseURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "id": 2791, + "name": "StructuredDocumentation", + "src": "51131:221:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2792, + "name": "ParameterList", + "src": "51373:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2799, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2793, + "name": "ElementaryTypeName", + "src": "51405:6:1" + } + ], + "id": 2794, + "name": "VariableDeclaration", + "src": "51405:13:1" + } + ], + "id": 2795, + "name": "ParameterList", + "src": "51404:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2795 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 2796, + "name": "Identifier", + "src": "51437:8:1" + } + ], + "id": 2797, + "name": "Return", + "src": "51430:15:1" + } + ], + "id": 2798, + "name": "Block", + "src": "51420:32:1" + } + ], + "id": 2799, + "name": "FunctionDefinition", + "src": "51357:95:1" + }, + { + "attributes": { + "baseFunctions": [ + 700 + ], + "functionSelector": "2f745c59", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "id": 2800, + "name": "StructuredDocumentation", + "src": "51458:68:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2806, + "name": "OverrideSpecifier", + "src": "51610:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2801, + "name": "ElementaryTypeName", + "src": "51560:7:1" + } + ], + "id": 2802, + "name": "VariableDeclaration", + "src": "51560:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2803, + "name": "ElementaryTypeName", + "src": "51575:7:1" + } + ], + "id": 2804, + "name": "VariableDeclaration", + "src": "51575:13:1" + } + ], + "id": 2805, + "name": "ParameterList", + "src": "51559:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2807, + "name": "ElementaryTypeName", + "src": "51628:7:1" + } + ], + "id": 2808, + "name": "VariableDeclaration", + "src": "51628:7:1" + } + ], + "id": 2809, + "name": "ParameterList", + "src": "51627:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2809 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 1920, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2810, + "name": "Identifier", + "src": "51654:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2802, + "type": "address", + "value": "owner" + }, + "id": 2811, + "name": "Identifier", + "src": "51668:5:1" + } + ], + "id": 2812, + "name": "IndexAccess", + "src": "51654:20:1" + } + ], + "id": 2813, + "name": "MemberAccess", + "src": "51654:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2804, + "type": "uint256", + "value": "index" + }, + "id": 2814, + "name": "Identifier", + "src": "51678:5:1" + } + ], + "id": 2815, + "name": "FunctionCall", + "src": "51654:30:1" + } + ], + "id": 2816, + "name": "Return", + "src": "51647:37:1" + } + ], + "id": 2817, + "name": "Block", + "src": "51637:54:1" + } + ], + "id": 2818, + "name": "FunctionDefinition", + "src": "51531:160:1" + }, + { + "attributes": { + "baseFunctions": [ + 690 + ], + "functionSelector": "18160ddd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "id": 2819, + "name": "StructuredDocumentation", + "src": "51697:60:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2821, + "name": "OverrideSpecifier", + "src": "51805:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2820, + "name": "ParameterList", + "src": "51782:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2830, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2822, + "name": "ElementaryTypeName", + "src": "51823:7:1" + } + ], + "id": 2823, + "name": "VariableDeclaration", + "src": "51823:7:1" + } + ], + "id": 2824, + "name": "ParameterList", + "src": "51822:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2824 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 2340, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2825, + "name": "Identifier", + "src": "51942:12:1" + } + ], + "id": 2826, + "name": "MemberAccess", + "src": "51942:19:1" + } + ], + "id": 2827, + "name": "FunctionCall", + "src": "51942:21:1" + } + ], + "id": 2828, + "name": "Return", + "src": "51935:28:1" + } + ], + "id": 2829, + "name": "Block", + "src": "51832:138:1" + } + ], + "id": 2830, + "name": "FunctionDefinition", + "src": "51762:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 708 + ], + "functionSelector": "4f6ccce7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "id": 2831, + "name": "StructuredDocumentation", + "src": "51976:61:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2835, + "name": "OverrideSpecifier", + "src": "52099:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2832, + "name": "ElementaryTypeName", + "src": "52064:7:1" + } + ], + "id": 2833, + "name": "VariableDeclaration", + "src": "52064:13:1" + } + ], + "id": 2834, + "name": "ParameterList", + "src": "52063:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2836, + "name": "ElementaryTypeName", + "src": "52117:7:1" + } + ], + "id": 2837, + "name": "VariableDeclaration", + "src": "52117:7:1" + } + ], + "id": 2838, + "name": "ParameterList", + "src": "52116:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2840, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2848, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2839, + "name": "ElementaryTypeName", + "src": "52137:7:1" + } + ], + "id": 2840, + "name": "VariableDeclaration", + "src": "52137:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(uint256,address)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 2379, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2841, + "name": "Identifier", + "src": "52158:12:1" + } + ], + "id": 2842, + "name": "MemberAccess", + "src": "52158:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2833, + "type": "uint256", + "value": "index" + }, + "id": 2843, + "name": "Identifier", + "src": "52174:5:1" + } + ], + "id": 2844, + "name": "FunctionCall", + "src": "52158:22:1" + } + ], + "id": 2845, + "name": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2838 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2840, + "type": "uint256", + "value": "tokenId" + }, + "id": 2846, + "name": "Identifier", + "src": "52197:7:1" + } + ], + "id": 2847, + "name": "Return", + "src": "52190:14:1" + } + ], + "id": 2848, + "name": "Block", + "src": "52126:85:1" + } + ], + "id": 2849, + "name": "FunctionDefinition", + "src": "52042:169:1" + }, + { + "attributes": { + "baseFunctions": [ + 616 + ], + "functionSelector": "095ea7b3", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-approve}." + }, + "id": 2850, + "name": "StructuredDocumentation", + "src": "52217:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2856, + "name": "OverrideSpecifier", + "src": "52329:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2851, + "name": "ElementaryTypeName", + "src": "52285:7:1" + } + ], + "id": 2852, + "name": "VariableDeclaration", + "src": "52285:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2853, + "name": "ElementaryTypeName", + "src": "52297:7:1" + } + ], + "id": 2854, + "name": "VariableDeclaration", + "src": "52297:15:1" + } + ], + "id": 2855, + "name": "ParameterList", + "src": "52284:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2857, + "name": "ParameterList", + "src": "52338:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2859 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2892, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2858, + "name": "ElementaryTypeName", + "src": "52348:7:1" + } + ], + "id": 2859, + "name": "VariableDeclaration", + "src": "52348:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2860, + "name": "Identifier", + "src": "52364:6:1" + } + ], + "id": 2861, + "name": "MemberAccess", + "src": "52364:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2862, + "name": "Identifier", + "src": "52379:7:1" + } + ], + "id": 2863, + "name": "FunctionCall", + "src": "52364:23:1" + } + ], + "id": 2864, + "name": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2865, + "name": "Identifier", + "src": "52397:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2866, + "name": "Identifier", + "src": "52405:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2867, + "name": "Identifier", + "src": "52411:5:1" + } + ], + "id": 2868, + "name": "BinaryOperation", + "src": "52405:11:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approval to current owner\"", + "value": "ERC721: approval to current owner" + }, + "id": 2869, + "name": "Literal", + "src": "52418:35:1" + } + ], + "id": 2870, + "name": "FunctionCall", + "src": "52397:57:1" + } + ], + "id": 2871, + "name": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2872, + "name": "Identifier", + "src": "52465:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2873, + "name": "Identifier", + "src": "52473:10:1" + } + ], + "id": 2874, + "name": "FunctionCall", + "src": "52473:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2875, + "name": "Identifier", + "src": "52489:5:1" + } + ], + "id": 2876, + "name": "BinaryOperation", + "src": "52473:21:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2877, + "name": "Identifier", + "src": "52498:6:1" + } + ], + "id": 2878, + "name": "MemberAccess", + "src": "52498:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2879, + "name": "Identifier", + "src": "52522:5:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2880, + "name": "Identifier", + "src": "52529:10:1" + } + ], + "id": 2881, + "name": "FunctionCall", + "src": "52529:12:1" + } + ], + "id": 2882, + "name": "FunctionCall", + "src": "52498:44:1" + } + ], + "id": 2883, + "name": "BinaryOperation", + "src": "52473:69:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve caller is not owner nor approved for all\"", + "value": "ERC721: approve caller is not owner nor approved for all" + }, + "id": 2884, + "name": "Literal", + "src": "52556:58:1" + } + ], + "id": 2885, + "name": "FunctionCall", + "src": "52465:159:1" + } + ], + "id": 2886, + "name": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 2887, + "name": "Identifier", + "src": "52635:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2888, + "name": "Identifier", + "src": "52644:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2889, + "name": "Identifier", + "src": "52648:7:1" + } + ], + "id": 2890, + "name": "FunctionCall", + "src": "52635:21:1" + } + ], + "id": 2891, + "name": "ExpressionStatement", + "src": "52635:21:1" + } + ], + "id": 2892, + "name": "Block", + "src": "52338:325:1" + } + ], + "id": 2893, + "name": "FunctionDefinition", + "src": "52268:395:1" + }, + { + "attributes": { + "baseFunctions": [ + 624 + ], + "functionSelector": "081812fc", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-getApproved}." + }, + "id": 2894, + "name": "StructuredDocumentation", + "src": "52669:50:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2898, + "name": "OverrideSpecifier", + "src": "52782:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2895, + "name": "ElementaryTypeName", + "src": "52745:7:1" + } + ], + "id": 2896, + "name": "VariableDeclaration", + "src": "52745:15:1" + } + ], + "id": 2897, + "name": "ParameterList", + "src": "52744:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2899, + "name": "ElementaryTypeName", + "src": "52800:7:1" + } + ], + "id": 2900, + "name": "VariableDeclaration", + "src": "52800:7:1" + } + ], + "id": 2901, + "name": "ParameterList", + "src": "52799:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2902, + "name": "Identifier", + "src": "52819:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2903, + "name": "Identifier", + "src": "52827:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2904, + "name": "Identifier", + "src": "52835:7:1" + } + ], + "id": 2905, + "name": "FunctionCall", + "src": "52827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approved query for nonexistent token\"", + "value": "ERC721: approved query for nonexistent token" + }, + "id": 2906, + "name": "Literal", + "src": "52845:46:1" + } + ], + "id": 2907, + "name": "FunctionCall", + "src": "52819:73:1" + } + ], + "id": 2908, + "name": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "attributes": { + "functionReturnParameters": 2901 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 2909, + "name": "Identifier", + "src": "52910:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2910, + "name": "Identifier", + "src": "52926:7:1" + } + ], + "id": 2911, + "name": "IndexAccess", + "src": "52910:24:1" + } + ], + "id": 2912, + "name": "Return", + "src": "52903:31:1" + } + ], + "id": 2913, + "name": "Block", + "src": "52809:132:1" + } + ], + "id": 2914, + "name": "FunctionDefinition", + "src": "52724:217:1" + }, + { + "attributes": { + "baseFunctions": [ + 632 + ], + "functionSelector": "a22cb465", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "id": 2915, + "name": "StructuredDocumentation", + "src": "52947:56:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2921, + "name": "OverrideSpecifier", + "src": "53083:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2916, + "name": "ElementaryTypeName", + "src": "53035:7:1" + } + ], + "id": 2917, + "name": "VariableDeclaration", + "src": "53035:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "approved", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2918, + "name": "ElementaryTypeName", + "src": "53053:4:1" + } + ], + "id": 2919, + "name": "VariableDeclaration", + "src": "53053:13:1" + } + ], + "id": 2920, + "name": "ParameterList", + "src": "53034:33:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2922, + "name": "ParameterList", + "src": "53092:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2923, + "name": "Identifier", + "src": "53102:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2924, + "name": "Identifier", + "src": "53110:8:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2925, + "name": "Identifier", + "src": "53122:10:1" + } + ], + "id": 2926, + "name": "FunctionCall", + "src": "53122:12:1" + } + ], + "id": 2927, + "name": "BinaryOperation", + "src": "53110:24:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f766520746f2063616c6c6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve to caller\"", + "value": "ERC721: approve to caller" + }, + "id": 2928, + "name": "Literal", + "src": "53136:27:1" + } + ], + "id": 2929, + "name": "FunctionCall", + "src": "53102:62:1" + } + ], + "id": 2930, + "name": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2931, + "name": "Identifier", + "src": "53175:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2932, + "name": "Identifier", + "src": "53194:10:1" + } + ], + "id": 2933, + "name": "FunctionCall", + "src": "53194:12:1" + } + ], + "id": 2935, + "name": "IndexAccess", + "src": "53175:32:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2934, + "name": "Identifier", + "src": "53208:8:1" + } + ], + "id": 2936, + "name": "IndexAccess", + "src": "53175:42:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2937, + "name": "Identifier", + "src": "53220:8:1" + } + ], + "id": 2938, + "name": "Assignment", + "src": "53175:53:1" + } + ], + "id": 2939, + "name": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 572, + "type": "function (address,address,bool)", + "value": "ApprovalForAll" + }, + "id": 2940, + "name": "Identifier", + "src": "53243:14:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2941, + "name": "Identifier", + "src": "53258:10:1" + } + ], + "id": 2942, + "name": "FunctionCall", + "src": "53258:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2943, + "name": "Identifier", + "src": "53272:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2944, + "name": "Identifier", + "src": "53282:8:1" + } + ], + "id": 2945, + "name": "FunctionCall", + "src": "53243:48:1" + } + ], + "id": 2946, + "name": "EmitStatement", + "src": "53238:53:1" + } + ], + "id": 2947, + "name": "Block", + "src": "53092:206:1" + } + ], + "id": 2948, + "name": "FunctionDefinition", + "src": "53008:290:1" + }, + { + "attributes": { + "baseFunctions": [ + 642 + ], + "functionSelector": "e985e9c5", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "id": 2949, + "name": "StructuredDocumentation", + "src": "53304:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2955, + "name": "OverrideSpecifier", + "src": "53443:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2950, + "name": "ElementaryTypeName", + "src": "53390:7:1" + } + ], + "id": 2951, + "name": "VariableDeclaration", + "src": "53390:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2952, + "name": "ElementaryTypeName", + "src": "53405:7:1" + } + ], + "id": 2953, + "name": "VariableDeclaration", + "src": "53405:16:1" + } + ], + "id": 2954, + "name": "ParameterList", + "src": "53389:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2956, + "name": "ElementaryTypeName", + "src": "53461:4:1" + } + ], + "id": 2957, + "name": "VariableDeclaration", + "src": "53461:4:1" + } + ], + "id": 2958, + "name": "ParameterList", + "src": "53460:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2958 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2959, + "name": "Identifier", + "src": "53484:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2951, + "type": "address", + "value": "owner" + }, + "id": 2960, + "name": "Identifier", + "src": "53503:5:1" + } + ], + "id": 2961, + "name": "IndexAccess", + "src": "53484:25:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2953, + "type": "address", + "value": "operator" + }, + "id": 2962, + "name": "Identifier", + "src": "53510:8:1" + } + ], + "id": 2963, + "name": "IndexAccess", + "src": "53484:35:1" + } + ], + "id": 2964, + "name": "Return", + "src": "53477:42:1" + } + ], + "id": 2965, + "name": "Block", + "src": "53467:59:1" + } + ], + "id": 2966, + "name": "FunctionDefinition", + "src": "53364:162:1" + }, + { + "attributes": { + "baseFunctions": [ + 608 + ], + "functionSelector": "23b872dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-transferFrom}." + }, + "id": 2967, + "name": "StructuredDocumentation", + "src": "53532:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2975, + "name": "OverrideSpecifier", + "src": "53668:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2968, + "name": "ElementaryTypeName", + "src": "53610:7:1" + } + ], + "id": 2969, + "name": "VariableDeclaration", + "src": "53610:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2970, + "name": "ElementaryTypeName", + "src": "53624:7:1" + } + ], + "id": 2971, + "name": "VariableDeclaration", + "src": "53624:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2972, + "name": "ElementaryTypeName", + "src": "53636:7:1" + } + ], + "id": 2973, + "name": "VariableDeclaration", + "src": "53636:15:1" + } + ], + "id": 2974, + "name": "ParameterList", + "src": "53609:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2976, + "name": "ParameterList", + "src": "53677:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2977, + "name": "Identifier", + "src": "53739:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 2978, + "name": "Identifier", + "src": "53747:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2979, + "name": "Identifier", + "src": "53766:10:1" + } + ], + "id": 2980, + "name": "FunctionCall", + "src": "53766:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2981, + "name": "Identifier", + "src": "53780:7:1" + } + ], + "id": 2982, + "name": "FunctionCall", + "src": "53747:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 2983, + "name": "Literal", + "src": "53790:51:1" + } + ], + "id": 2984, + "name": "FunctionCall", + "src": "53739:103:1" + } + ], + "id": 2985, + "name": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 2986, + "name": "Identifier", + "src": "53853:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2969, + "type": "address", + "value": "from" + }, + "id": 2987, + "name": "Identifier", + "src": "53863:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2971, + "type": "address", + "value": "to" + }, + "id": 2988, + "name": "Identifier", + "src": "53869:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2989, + "name": "Identifier", + "src": "53873:7:1" + } + ], + "id": 2990, + "name": "FunctionCall", + "src": "53853:28:1" + } + ], + "id": 2991, + "name": "ExpressionStatement", + "src": "53853:28:1" + } + ], + "id": 2992, + "name": "Block", + "src": "53677:211:1" + } + ], + "id": 2993, + "name": "FunctionDefinition", + "src": "53588:300:1" + }, + { + "attributes": { + "baseFunctions": [ + 598 + ], + "functionSelector": "42842e0e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 2994, + "name": "StructuredDocumentation", + "src": "53894:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3002, + "name": "OverrideSpecifier", + "src": "54038:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2995, + "name": "ElementaryTypeName", + "src": "53980:7:1" + } + ], + "id": 2996, + "name": "VariableDeclaration", + "src": "53980:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2997, + "name": "ElementaryTypeName", + "src": "53994:7:1" + } + ], + "id": 2998, + "name": "VariableDeclaration", + "src": "53994:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2999, + "name": "ElementaryTypeName", + "src": "54006:7:1" + } + ], + "id": 3000, + "name": "VariableDeclaration", + "src": "54006:15:1" + } + ], + "id": 3001, + "name": "ParameterList", + "src": "53979:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3003, + "name": "ParameterList", + "src": "54047:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "type": "function (address,address,uint256,bytes memory)", + "value": "safeTransferFrom" + }, + "id": 3004, + "name": "Identifier", + "src": "54057:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2996, + "type": "address", + "value": "from" + }, + "id": 3005, + "name": "Identifier", + "src": "54074:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2998, + "type": "address", + "value": "to" + }, + "id": 3006, + "name": "Identifier", + "src": "54080:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3000, + "type": "uint256", + "value": "tokenId" + }, + "id": 3007, + "name": "Identifier", + "src": "54084:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3008, + "name": "Literal", + "src": "54093:2:1" + } + ], + "id": 3009, + "name": "FunctionCall", + "src": "54057:39:1" + } + ], + "id": 3010, + "name": "ExpressionStatement", + "src": "54057:39:1" + } + ], + "id": 3011, + "name": "Block", + "src": "54047:56:1" + } + ], + "id": 3012, + "name": "FunctionDefinition", + "src": "53954:149:1" + }, + { + "attributes": { + "baseFunctions": [ + 654 + ], + "functionSelector": "b88d4fde", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 3013, + "name": "StructuredDocumentation", + "src": "54109:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3023, + "name": "OverrideSpecifier", + "src": "54273:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3014, + "name": "ElementaryTypeName", + "src": "54195:7:1" + } + ], + "id": 3015, + "name": "VariableDeclaration", + "src": "54195:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3016, + "name": "ElementaryTypeName", + "src": "54209:7:1" + } + ], + "id": 3017, + "name": "VariableDeclaration", + "src": "54209:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3018, + "name": "ElementaryTypeName", + "src": "54221:7:1" + } + ], + "id": 3019, + "name": "VariableDeclaration", + "src": "54221:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3042, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3020, + "name": "ElementaryTypeName", + "src": "54238:5:1" + } + ], + "id": 3021, + "name": "VariableDeclaration", + "src": "54238:18:1" + } + ], + "id": 3022, + "name": "ParameterList", + "src": "54194:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3024, + "name": "ParameterList", + "src": "54282:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3025, + "name": "Identifier", + "src": "54292:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 3026, + "name": "Identifier", + "src": "54300:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3027, + "name": "Identifier", + "src": "54319:10:1" + } + ], + "id": 3028, + "name": "FunctionCall", + "src": "54319:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3029, + "name": "Identifier", + "src": "54333:7:1" + } + ], + "id": 3030, + "name": "FunctionCall", + "src": "54300:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 3031, + "name": "Literal", + "src": "54343:51:1" + } + ], + "id": 3032, + "name": "FunctionCall", + "src": "54292:103:1" + } + ], + "id": 3033, + "name": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3071, + "type": "function (address,address,uint256,bytes memory)", + "value": "_safeTransfer" + }, + "id": 3034, + "name": "Identifier", + "src": "54405:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3015, + "type": "address", + "value": "from" + }, + "id": 3035, + "name": "Identifier", + "src": "54419:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3017, + "type": "address", + "value": "to" + }, + "id": 3036, + "name": "Identifier", + "src": "54425:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3037, + "name": "Identifier", + "src": "54429:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3021, + "type": "bytes memory", + "value": "_data" + }, + "id": 3038, + "name": "Identifier", + "src": "54438:5:1" + } + ], + "id": 3039, + "name": "FunctionCall", + "src": "54405:39:1" + } + ], + "id": 3040, + "name": "ExpressionStatement", + "src": "54405:39:1" + } + ], + "id": 3041, + "name": "Block", + "src": "54282:169:1" + } + ], + "id": 3042, + "name": "FunctionDefinition", + "src": "54169:282:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3043, + "name": "StructuredDocumentation", + "src": "54457:851:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3044, + "name": "ElementaryTypeName", + "src": "55336:7:1" + } + ], + "id": 3045, + "name": "VariableDeclaration", + "src": "55336:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3046, + "name": "ElementaryTypeName", + "src": "55350:7:1" + } + ], + "id": 3047, + "name": "VariableDeclaration", + "src": "55350:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3048, + "name": "ElementaryTypeName", + "src": "55362:7:1" + } + ], + "id": 3049, + "name": "VariableDeclaration", + "src": "55362:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3071, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3050, + "name": "ElementaryTypeName", + "src": "55379:5:1" + } + ], + "id": 3051, + "name": "VariableDeclaration", + "src": "55379:18:1" + } + ], + "id": 3052, + "name": "ParameterList", + "src": "55335:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3053, + "name": "ParameterList", + "src": "55416:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 3054, + "name": "Identifier", + "src": "55426:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3055, + "name": "Identifier", + "src": "55436:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3056, + "name": "Identifier", + "src": "55442:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3057, + "name": "Identifier", + "src": "55446:7:1" + } + ], + "id": 3058, + "name": "FunctionCall", + "src": "55426:28:1" + } + ], + "id": 3059, + "name": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3060, + "name": "Identifier", + "src": "55464:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3061, + "name": "Identifier", + "src": "55472:22:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3062, + "name": "Identifier", + "src": "55495:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3063, + "name": "Identifier", + "src": "55501:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3064, + "name": "Identifier", + "src": "55505:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3051, + "type": "bytes memory", + "value": "_data" + }, + "id": 3065, + "name": "Identifier", + "src": "55514:5:1" + } + ], + "id": 3066, + "name": "FunctionCall", + "src": "55472:48:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3067, + "name": "Literal", + "src": "55522:52:1" + } + ], + "id": 3068, + "name": "FunctionCall", + "src": "55464:111:1" + } + ], + "id": 3069, + "name": "ExpressionStatement", + "src": "55464:111:1" + } + ], + "id": 3070, + "name": "Block", + "src": "55416:166:1" + } + ], + "id": 3071, + "name": "FunctionDefinition", + "src": "55313:269:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_exists", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3072, + "name": "StructuredDocumentation", + "src": "55588:292:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3073, + "name": "ElementaryTypeName", + "src": "55902:7:1" + } + ], + "id": 3074, + "name": "VariableDeclaration", + "src": "55902:15:1" + } + ], + "id": 3075, + "name": "ParameterList", + "src": "55901:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3076, + "name": "ElementaryTypeName", + "src": "55950:4:1" + } + ], + "id": 3077, + "name": "VariableDeclaration", + "src": "55950:4:1" + } + ], + "id": 3078, + "name": "ParameterList", + "src": "55949:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3078 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "contains", + "referencedDeclaration": 2326, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3079, + "name": "Identifier", + "src": "55973:12:1" + } + ], + "id": 3080, + "name": "MemberAccess", + "src": "55973:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3074, + "type": "uint256", + "value": "tokenId" + }, + "id": 3081, + "name": "Identifier", + "src": "55995:7:1" + } + ], + "id": 3082, + "name": "FunctionCall", + "src": "55973:30:1" + } + ], + "id": 3083, + "name": "Return", + "src": "55966:37:1" + } + ], + "id": 3084, + "name": "Block", + "src": "55956:54:1" + } + ], + "id": 3085, + "name": "FunctionDefinition", + "src": "55885:125:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_isApprovedOrOwner", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3086, + "name": "StructuredDocumentation", + "src": "56016:147:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "spender", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3087, + "name": "ElementaryTypeName", + "src": "56196:7:1" + } + ], + "id": 3088, + "name": "VariableDeclaration", + "src": "56196:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3089, + "name": "ElementaryTypeName", + "src": "56213:7:1" + } + ], + "id": 3090, + "name": "VariableDeclaration", + "src": "56213:15:1" + } + ], + "id": 3091, + "name": "ParameterList", + "src": "56195:34:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3092, + "name": "ElementaryTypeName", + "src": "56261:4:1" + } + ], + "id": 3093, + "name": "VariableDeclaration", + "src": "56261:4:1" + } + ], + "id": 3094, + "name": "ParameterList", + "src": "56260:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3095, + "name": "Identifier", + "src": "56277:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3096, + "name": "Identifier", + "src": "56285:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3097, + "name": "Identifier", + "src": "56293:7:1" + } + ], + "id": 3098, + "name": "FunctionCall", + "src": "56285:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: operator query for nonexistent token\"", + "value": "ERC721: operator query for nonexistent token" + }, + "id": 3099, + "name": "Literal", + "src": "56303:46:1" + } + ], + "id": 3100, + "name": "FunctionCall", + "src": "56277:73:1" + } + ], + "id": 3101, + "name": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "attributes": { + "assignments": [ + 3103 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3126, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3102, + "name": "ElementaryTypeName", + "src": "56360:7:1" + } + ], + "id": 3103, + "name": "VariableDeclaration", + "src": "56360:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3104, + "name": "Identifier", + "src": "56376:6:1" + } + ], + "id": 3105, + "name": "MemberAccess", + "src": "56376:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3106, + "name": "Identifier", + "src": "56391:7:1" + } + ], + "id": 3107, + "name": "FunctionCall", + "src": "56376:23:1" + } + ], + "id": 3108, + "name": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "attributes": { + "functionReturnParameters": 3094 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3109, + "name": "Identifier", + "src": "56417:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3110, + "name": "Identifier", + "src": "56428:5:1" + } + ], + "id": 3111, + "name": "BinaryOperation", + "src": "56417:16:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2914, + "type": "function (uint256) view returns (address)", + "value": "getApproved" + }, + "id": 3112, + "name": "Identifier", + "src": "56437:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3113, + "name": "Identifier", + "src": "56449:7:1" + } + ], + "id": 3114, + "name": "FunctionCall", + "src": "56437:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3115, + "name": "Identifier", + "src": "56461:7:1" + } + ], + "id": 3116, + "name": "BinaryOperation", + "src": "56437:31:1" + } + ], + "id": 3117, + "name": "BinaryOperation", + "src": "56417:51:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3118, + "name": "Identifier", + "src": "56472:6:1" + } + ], + "id": 3119, + "name": "MemberAccess", + "src": "56472:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3120, + "name": "Identifier", + "src": "56496:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3121, + "name": "Identifier", + "src": "56503:7:1" + } + ], + "id": 3122, + "name": "FunctionCall", + "src": "56472:39:1" + } + ], + "id": 3123, + "name": "BinaryOperation", + "src": "56417:94:1" + } + ], + "id": 3124, + "name": "TupleExpression", + "src": "56416:96:1" + } + ], + "id": 3125, + "name": "Return", + "src": "56409:103:1" + } + ], + "id": 3126, + "name": "Block", + "src": "56267:252:1" + } + ], + "id": 3127, + "name": "FunctionDefinition", + "src": "56168:351:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3128, + "name": "StructuredDocumentation", + "src": "56525:320:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3129, + "name": "ElementaryTypeName", + "src": "56869:7:1" + } + ], + "id": 3130, + "name": "VariableDeclaration", + "src": "56869:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3131, + "name": "ElementaryTypeName", + "src": "56881:7:1" + } + ], + "id": 3132, + "name": "VariableDeclaration", + "src": "56881:15:1" + } + ], + "id": 3133, + "name": "ParameterList", + "src": "56868:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3134, + "name": "ParameterList", + "src": "56915:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "type": "function (address,uint256,bytes memory)", + "value": "_safeMint" + }, + "id": 3135, + "name": "Identifier", + "src": "56925:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3130, + "type": "address", + "value": "to" + }, + "id": 3136, + "name": "Identifier", + "src": "56935:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3132, + "type": "uint256", + "value": "tokenId" + }, + "id": 3137, + "name": "Identifier", + "src": "56939:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3138, + "name": "Literal", + "src": "56948:2:1" + } + ], + "id": 3139, + "name": "FunctionCall", + "src": "56925:26:1" + } + ], + "id": 3140, + "name": "ExpressionStatement", + "src": "56925:26:1" + } + ], + "id": 3141, + "name": "Block", + "src": "56915:43:1" + } + ], + "id": 3142, + "name": "FunctionDefinition", + "src": "56850:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3143, + "name": "StructuredDocumentation", + "src": "56964:210:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3144, + "name": "ElementaryTypeName", + "src": "57198:7:1" + } + ], + "id": 3145, + "name": "VariableDeclaration", + "src": "57198:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3146, + "name": "ElementaryTypeName", + "src": "57210:7:1" + } + ], + "id": 3147, + "name": "VariableDeclaration", + "src": "57210:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3171, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3148, + "name": "ElementaryTypeName", + "src": "57227:5:1" + } + ], + "id": 3149, + "name": "VariableDeclaration", + "src": "57227:18:1" + } + ], + "id": 3150, + "name": "ParameterList", + "src": "57197:49:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3151, + "name": "ParameterList", + "src": "57264:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3230, + "type": "function (address,uint256)", + "value": "_mint" + }, + "id": 3152, + "name": "Identifier", + "src": "57274:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3153, + "name": "Identifier", + "src": "57280:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3154, + "name": "Identifier", + "src": "57284:7:1" + } + ], + "id": 3155, + "name": "FunctionCall", + "src": "57274:18:1" + } + ], + "id": 3156, + "name": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3157, + "name": "Identifier", + "src": "57302:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3158, + "name": "Identifier", + "src": "57310:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3159, + "name": "ElementaryTypeName", + "src": "57333:7:1" + } + ], + "id": 3160, + "name": "ElementaryTypeNameExpression", + "src": "57333:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3161, + "name": "Literal", + "src": "57341:1:1" + } + ], + "id": 3162, + "name": "FunctionCall", + "src": "57333:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3163, + "name": "Identifier", + "src": "57345:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3164, + "name": "Identifier", + "src": "57349:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3149, + "type": "bytes memory", + "value": "_data" + }, + "id": 3165, + "name": "Identifier", + "src": "57358:5:1" + } + ], + "id": 3166, + "name": "FunctionCall", + "src": "57310:54:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3167, + "name": "Literal", + "src": "57366:52:1" + } + ], + "id": 3168, + "name": "FunctionCall", + "src": "57302:117:1" + } + ], + "id": 3169, + "name": "ExpressionStatement", + "src": "57302:117:1" + } + ], + "id": 3170, + "name": "Block", + "src": "57264:162:1" + } + ], + "id": 3171, + "name": "FunctionDefinition", + "src": "57179:247:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_mint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3172, + "name": "StructuredDocumentation", + "src": "57432:311:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3173, + "name": "ElementaryTypeName", + "src": "57763:7:1" + } + ], + "id": 3174, + "name": "VariableDeclaration", + "src": "57763:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3175, + "name": "ElementaryTypeName", + "src": "57775:7:1" + } + ], + "id": 3176, + "name": "VariableDeclaration", + "src": "57775:15:1" + } + ], + "id": 3177, + "name": "ParameterList", + "src": "57762:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3178, + "name": "ParameterList", + "src": "57809:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3179, + "name": "Identifier", + "src": "57819:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3180, + "name": "Identifier", + "src": "57827:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3181, + "name": "ElementaryTypeName", + "src": "57833:7:1" + } + ], + "id": 3182, + "name": "ElementaryTypeNameExpression", + "src": "57833:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3183, + "name": "Literal", + "src": "57841:1:1" + } + ], + "id": 3184, + "name": "FunctionCall", + "src": "57833:10:1" + } + ], + "id": 3185, + "name": "BinaryOperation", + "src": "57827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: mint to the zero address\"", + "value": "ERC721: mint to the zero address" + }, + "id": 3186, + "name": "Literal", + "src": "57845:34:1" + } + ], + "id": 3187, + "name": "FunctionCall", + "src": "57819:61:1" + } + ], + "id": 3188, + "name": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3189, + "name": "Identifier", + "src": "57890:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3190, + "name": "Identifier", + "src": "57899:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3191, + "name": "Identifier", + "src": "57907:7:1" + } + ], + "id": 3192, + "name": "FunctionCall", + "src": "57899:16:1" + } + ], + "id": 3193, + "name": "UnaryOperation", + "src": "57898:17:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: token already minted\"", + "value": "ERC721: token already minted" + }, + "id": 3194, + "name": "Literal", + "src": "57917:30:1" + } + ], + "id": 3195, + "name": "FunctionCall", + "src": "57890:58:1" + } + ], + "id": 3196, + "name": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3197, + "name": "Identifier", + "src": "57959:20:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3198, + "name": "ElementaryTypeName", + "src": "57980:7:1" + } + ], + "id": 3199, + "name": "ElementaryTypeNameExpression", + "src": "57980:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3200, + "name": "Literal", + "src": "57988:1:1" + } + ], + "id": 3201, + "name": "FunctionCall", + "src": "57980:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3202, + "name": "Identifier", + "src": "57992:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3203, + "name": "Identifier", + "src": "57996:7:1" + } + ], + "id": 3204, + "name": "FunctionCall", + "src": "57959:45:1" + } + ], + "id": 3205, + "name": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3206, + "name": "Identifier", + "src": "58015:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3207, + "name": "Identifier", + "src": "58029:2:1" + } + ], + "id": 3208, + "name": "IndexAccess", + "src": "58015:17:1" + } + ], + "id": 3209, + "name": "MemberAccess", + "src": "58015:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3210, + "name": "Identifier", + "src": "58037:7:1" + } + ], + "id": 3211, + "name": "FunctionCall", + "src": "58015:30:1" + } + ], + "id": 3212, + "name": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3213, + "name": "Identifier", + "src": "58056:12:1" + } + ], + "id": 3215, + "name": "MemberAccess", + "src": "58056:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3216, + "name": "Identifier", + "src": "58073:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3217, + "name": "Identifier", + "src": "58082:2:1" + } + ], + "id": 3218, + "name": "FunctionCall", + "src": "58056:29:1" + } + ], + "id": 3219, + "name": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3220, + "name": "Identifier", + "src": "58101:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3221, + "name": "ElementaryTypeName", + "src": "58110:7:1" + } + ], + "id": 3222, + "name": "ElementaryTypeNameExpression", + "src": "58110:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3223, + "name": "Literal", + "src": "58118:1:1" + } + ], + "id": 3224, + "name": "FunctionCall", + "src": "58110:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3225, + "name": "Identifier", + "src": "58122:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3226, + "name": "Identifier", + "src": "58126:7:1" + } + ], + "id": 3227, + "name": "FunctionCall", + "src": "58101:33:1" + } + ], + "id": 3228, + "name": "EmitStatement", + "src": "58096:38:1" + } + ], + "id": 3229, + "name": "Block", + "src": "57809:332:1" + } + ], + "id": 3230, + "name": "FunctionDefinition", + "src": "57748:393:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_burn", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3231, + "name": "StructuredDocumentation", + "src": "58147:206:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3299, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3232, + "name": "ElementaryTypeName", + "src": "58373:7:1" + } + ], + "id": 3233, + "name": "VariableDeclaration", + "src": "58373:15:1" + } + ], + "id": 3234, + "name": "ParameterList", + "src": "58372:17:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3235, + "name": "ParameterList", + "src": "58407:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 3237 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3298, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3236, + "name": "ElementaryTypeName", + "src": "58417:7:1" + } + ], + "id": 3237, + "name": "VariableDeclaration", + "src": "58417:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3238, + "name": "Identifier", + "src": "58433:6:1" + } + ], + "id": 3239, + "name": "MemberAccess", + "src": "58433:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3240, + "name": "Identifier", + "src": "58448:7:1" + } + ], + "id": 3241, + "name": "FunctionCall", + "src": "58433:23:1" + } + ], + "id": 3242, + "name": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3243, + "name": "Identifier", + "src": "58485:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3244, + "name": "Identifier", + "src": "58506:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3245, + "name": "ElementaryTypeName", + "src": "58513:7:1" + } + ], + "id": 3246, + "name": "ElementaryTypeNameExpression", + "src": "58513:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3247, + "name": "Literal", + "src": "58521:1:1" + } + ], + "id": 3248, + "name": "FunctionCall", + "src": "58513:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3249, + "name": "Identifier", + "src": "58525:7:1" + } + ], + "id": 3250, + "name": "FunctionCall", + "src": "58485:48:1" + } + ], + "id": 3251, + "name": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3252, + "name": "Identifier", + "src": "58571:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3253, + "name": "ElementaryTypeName", + "src": "58580:7:1" + } + ], + "id": 3254, + "name": "ElementaryTypeNameExpression", + "src": "58580:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3255, + "name": "Literal", + "src": "58588:1:1" + } + ], + "id": 3256, + "name": "FunctionCall", + "src": "58580:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3257, + "name": "Identifier", + "src": "58592:7:1" + } + ], + "id": 3258, + "name": "FunctionCall", + "src": "58571:29:1" + } + ], + "id": 3259, + "name": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes storage pointer", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 3260, + "name": "ElementaryTypeName", + "src": "58650:5:1" + } + ], + "id": 3261, + "name": "ElementaryTypeNameExpression", + "src": "58650:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3262, + "name": "Identifier", + "src": "58656:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3263, + "name": "Identifier", + "src": "58667:7:1" + } + ], + "id": 3264, + "name": "IndexAccess", + "src": "58656:19:1" + } + ], + "id": 3265, + "name": "FunctionCall", + "src": "58650:26:1" + } + ], + "id": 3266, + "name": "MemberAccess", + "src": "58650:33:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3267, + "name": "Literal", + "src": "58687:1:1" + } + ], + "id": 3268, + "name": "BinaryOperation", + "src": "58650:38:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3269, + "name": "Identifier", + "src": "58711:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3270, + "name": "Identifier", + "src": "58722:7:1" + } + ], + "id": 3271, + "name": "IndexAccess", + "src": "58711:19:1" + } + ], + "id": 3272, + "name": "UnaryOperation", + "src": "58704:26:1" + } + ], + "id": 3273, + "name": "ExpressionStatement", + "src": "58704:26:1" + } + ], + "id": 3274, + "name": "Block", + "src": "58690:51:1" + } + ], + "id": 3275, + "name": "IfStatement", + "src": "58646:95:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3276, + "name": "Identifier", + "src": "58751:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3277, + "name": "Identifier", + "src": "58765:5:1" + } + ], + "id": 3278, + "name": "IndexAccess", + "src": "58751:20:1" + } + ], + "id": 3279, + "name": "MemberAccess", + "src": "58751:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3280, + "name": "Identifier", + "src": "58779:7:1" + } + ], + "id": 3281, + "name": "FunctionCall", + "src": "58751:36:1" + } + ], + "id": 3282, + "name": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 2306, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3283, + "name": "Identifier", + "src": "58798:12:1" + } + ], + "id": 3285, + "name": "MemberAccess", + "src": "58798:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3286, + "name": "Identifier", + "src": "58818:7:1" + } + ], + "id": 3287, + "name": "FunctionCall", + "src": "58798:28:1" + } + ], + "id": 3288, + "name": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3289, + "name": "Identifier", + "src": "58842:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3290, + "name": "Identifier", + "src": "58851:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3291, + "name": "ElementaryTypeName", + "src": "58858:7:1" + } + ], + "id": 3292, + "name": "ElementaryTypeNameExpression", + "src": "58858:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3293, + "name": "Literal", + "src": "58866:1:1" + } + ], + "id": 3294, + "name": "FunctionCall", + "src": "58858:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3295, + "name": "Identifier", + "src": "58870:7:1" + } + ], + "id": 3296, + "name": "FunctionCall", + "src": "58842:36:1" + } + ], + "id": 3297, + "name": "EmitStatement", + "src": "58837:41:1" + } + ], + "id": 3298, + "name": "Block", + "src": "58407:478:1" + } + ], + "id": 3299, + "name": "FunctionDefinition", + "src": "58358:527:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_transfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3300, + "name": "StructuredDocumentation", + "src": "58891:313:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3301, + "name": "ElementaryTypeName", + "src": "59228:7:1" + } + ], + "id": 3302, + "name": "VariableDeclaration", + "src": "59228:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3303, + "name": "ElementaryTypeName", + "src": "59242:7:1" + } + ], + "id": 3304, + "name": "VariableDeclaration", + "src": "59242:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3305, + "name": "ElementaryTypeName", + "src": "59254:7:1" + } + ], + "id": 3306, + "name": "VariableDeclaration", + "src": "59254:15:1" + } + ], + "id": 3307, + "name": "ParameterList", + "src": "59227:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3308, + "name": "ParameterList", + "src": "59288:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3309, + "name": "Identifier", + "src": "59298:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3310, + "name": "Identifier", + "src": "59306:6:1" + } + ], + "id": 3311, + "name": "MemberAccess", + "src": "59306:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3312, + "name": "Identifier", + "src": "59321:7:1" + } + ], + "id": 3313, + "name": "FunctionCall", + "src": "59306:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3314, + "name": "Identifier", + "src": "59333:4:1" + } + ], + "id": 3315, + "name": "BinaryOperation", + "src": "59306:31:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer of token that is not own\"", + "value": "ERC721: transfer of token that is not own" + }, + "id": 3316, + "name": "Literal", + "src": "59339:43:1" + } + ], + "id": 3317, + "name": "FunctionCall", + "src": "59298:85:1" + } + ], + "id": 3318, + "name": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3319, + "name": "Identifier", + "src": "59411:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3320, + "name": "Identifier", + "src": "59419:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3321, + "name": "ElementaryTypeName", + "src": "59425:7:1" + } + ], + "id": 3322, + "name": "ElementaryTypeNameExpression", + "src": "59425:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3323, + "name": "Literal", + "src": "59433:1:1" + } + ], + "id": 3324, + "name": "FunctionCall", + "src": "59425:10:1" + } + ], + "id": 3325, + "name": "BinaryOperation", + "src": "59419:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to the zero address\"", + "value": "ERC721: transfer to the zero address" + }, + "id": 3326, + "name": "Literal", + "src": "59437:38:1" + } + ], + "id": 3327, + "name": "FunctionCall", + "src": "59411:65:1" + } + ], + "id": 3328, + "name": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3329, + "name": "Identifier", + "src": "59487:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3330, + "name": "Identifier", + "src": "59508:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3331, + "name": "Identifier", + "src": "59514:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3332, + "name": "Identifier", + "src": "59518:7:1" + } + ], + "id": 3333, + "name": "FunctionCall", + "src": "59487:39:1" + } + ], + "id": 3334, + "name": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3335, + "name": "Identifier", + "src": "59588:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3336, + "name": "ElementaryTypeName", + "src": "59597:7:1" + } + ], + "id": 3337, + "name": "ElementaryTypeNameExpression", + "src": "59597:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3338, + "name": "Literal", + "src": "59605:1:1" + } + ], + "id": 3339, + "name": "FunctionCall", + "src": "59597:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3340, + "name": "Identifier", + "src": "59609:7:1" + } + ], + "id": 3341, + "name": "FunctionCall", + "src": "59588:29:1" + } + ], + "id": 3342, + "name": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3343, + "name": "Identifier", + "src": "59628:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3344, + "name": "Identifier", + "src": "59642:4:1" + } + ], + "id": 3345, + "name": "IndexAccess", + "src": "59628:19:1" + } + ], + "id": 3346, + "name": "MemberAccess", + "src": "59628:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3347, + "name": "Identifier", + "src": "59655:7:1" + } + ], + "id": 3348, + "name": "FunctionCall", + "src": "59628:35:1" + } + ], + "id": 3349, + "name": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3350, + "name": "Identifier", + "src": "59673:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3351, + "name": "Identifier", + "src": "59687:2:1" + } + ], + "id": 3352, + "name": "IndexAccess", + "src": "59673:17:1" + } + ], + "id": 3353, + "name": "MemberAccess", + "src": "59673:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3354, + "name": "Identifier", + "src": "59695:7:1" + } + ], + "id": 3355, + "name": "FunctionCall", + "src": "59673:30:1" + } + ], + "id": 3356, + "name": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3357, + "name": "Identifier", + "src": "59714:12:1" + } + ], + "id": 3359, + "name": "MemberAccess", + "src": "59714:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3360, + "name": "Identifier", + "src": "59731:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3361, + "name": "Identifier", + "src": "59740:2:1" + } + ], + "id": 3362, + "name": "FunctionCall", + "src": "59714:29:1" + } + ], + "id": 3363, + "name": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3364, + "name": "Identifier", + "src": "59759:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3365, + "name": "Identifier", + "src": "59768:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3366, + "name": "Identifier", + "src": "59774:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3367, + "name": "Identifier", + "src": "59778:7:1" + } + ], + "id": 3368, + "name": "FunctionCall", + "src": "59759:27:1" + } + ], + "id": 3369, + "name": "EmitStatement", + "src": "59754:32:1" + } + ], + "id": 3370, + "name": "Block", + "src": "59288:505:1" + } + ], + "id": 3371, + "name": "FunctionDefinition", + "src": "59209:584:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setTokenURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3372, + "name": "StructuredDocumentation", + "src": "59799:136:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3393, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3373, + "name": "ElementaryTypeName", + "src": "59962:7:1" + } + ], + "id": 3374, + "name": "VariableDeclaration", + "src": "59962:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 3393, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3375, + "name": "ElementaryTypeName", + "src": "59979:6:1" + } + ], + "id": 3376, + "name": "VariableDeclaration", + "src": "59979:23:1" + } + ], + "id": 3377, + "name": "ParameterList", + "src": "59961:42:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3378, + "name": "ParameterList", + "src": "60021:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3379, + "name": "Identifier", + "src": "60031:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3380, + "name": "Identifier", + "src": "60039:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3381, + "name": "Identifier", + "src": "60047:7:1" + } + ], + "id": 3382, + "name": "FunctionCall", + "src": "60039:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI set of nonexistent token\"", + "value": "ERC721Metadata: URI set of nonexistent token" + }, + "id": 3383, + "name": "Literal", + "src": "60057:46:1" + } + ], + "id": 3384, + "name": "FunctionCall", + "src": "60031:73:1" + } + ], + "id": 3385, + "name": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3386, + "name": "Identifier", + "src": "60114:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3387, + "name": "Identifier", + "src": "60125:7:1" + } + ], + "id": 3388, + "name": "IndexAccess", + "src": "60114:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3376, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 3389, + "name": "Identifier", + "src": "60136:9:1" + } + ], + "id": 3390, + "name": "Assignment", + "src": "60114:31:1" + } + ], + "id": 3391, + "name": "ExpressionStatement", + "src": "60114:31:1" + } + ], + "id": 3392, + "name": "Block", + "src": "60021:131:1" + } + ], + "id": 3393, + "name": "FunctionDefinition", + "src": "59940:212:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setBaseURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3394, + "name": "StructuredDocumentation", + "src": "60158:212:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "baseURI_", + "scope": 3404, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3395, + "name": "ElementaryTypeName", + "src": "60396:6:1" + } + ], + "id": 3396, + "name": "VariableDeclaration", + "src": "60396:22:1" + } + ], + "id": 3397, + "name": "ParameterList", + "src": "60395:24:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3398, + "name": "ParameterList", + "src": "60437:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 3399, + "name": "Identifier", + "src": "60447:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3396, + "type": "string memory", + "value": "baseURI_" + }, + "id": 3400, + "name": "Identifier", + "src": "60458:8:1" + } + ], + "id": 3401, + "name": "Assignment", + "src": "60447:19:1" + } + ], + "id": 3402, + "name": "ExpressionStatement", + "src": "60447:19:1" + } + ], + "id": 3403, + "name": "Block", + "src": "60437:36:1" + } + ], + "id": 3404, + "name": "FunctionDefinition", + "src": "60375:98:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_checkOnERC721Received", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3405, + "name": "StructuredDocumentation", + "src": "60479:542:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3406, + "name": "ElementaryTypeName", + "src": "61058:7:1" + } + ], + "id": 3407, + "name": "VariableDeclaration", + "src": "61058:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3408, + "name": "ElementaryTypeName", + "src": "61072:7:1" + } + ], + "id": 3409, + "name": "VariableDeclaration", + "src": "61072:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3410, + "name": "ElementaryTypeName", + "src": "61084:7:1" + } + ], + "id": 3411, + "name": "VariableDeclaration", + "src": "61084:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3462, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3412, + "name": "ElementaryTypeName", + "src": "61101:5:1" + } + ], + "id": 3413, + "name": "VariableDeclaration", + "src": "61101:18:1" + } + ], + "id": 3414, + "name": "ParameterList", + "src": "61057:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3415, + "name": "ElementaryTypeName", + "src": "61146:4:1" + } + ], + "id": 3416, + "name": "VariableDeclaration", + "src": "61146:4:1" + } + ], + "id": 3417, + "name": "ParameterList", + "src": "61145:6:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isContract", + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3418, + "name": "Identifier", + "src": "61171:2:1" + } + ], + "id": 3419, + "name": "MemberAccess", + "src": "61171:13:1" + } + ], + "id": 3420, + "name": "FunctionCall", + "src": "61171:15:1" + } + ], + "id": 3421, + "name": "UnaryOperation", + "src": "61170:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 3422, + "name": "Literal", + "src": "61209:4:1" + } + ], + "id": 3423, + "name": "Return", + "src": "61202:11:1" + } + ], + "id": 3424, + "name": "Block", + "src": "61188:36:1" + } + ], + "id": 3425, + "name": "IfStatement", + "src": "61166:58:1" + }, + { + "attributes": { + "assignments": [ + 3427 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 3461, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3426, + "name": "ElementaryTypeName", + "src": "61233:5:1" + } + ], + "id": 3427, + "name": "VariableDeclaration", + "src": "61233:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "functionCall", + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3428, + "name": "Identifier", + "src": "61259:2:1" + } + ], + "id": 3429, + "name": "MemberAccess", + "src": "61259:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodeWithSelector", + "type": "function (bytes4) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3430, + "name": "Identifier", + "src": "61275:3:1" + } + ], + "id": 3431, + "name": "MemberAccess", + "src": "61275:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "selector", + "type": "bytes4" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "onERC721Received", + "referencedDeclaration": 725, + "type": "function (address,address,uint256,bytes memory) external returns (bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "contract IERC721Receiver", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 726, + "type": "type(contract IERC721Receiver)", + "value": "IERC721Receiver" + }, + "id": 3432, + "name": "Identifier", + "src": "61311:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3433, + "name": "Identifier", + "src": "61327:2:1" + } + ], + "id": 3434, + "name": "FunctionCall", + "src": "61311:19:1" + } + ], + "id": 3435, + "name": "MemberAccess", + "src": "61311:36:1" + } + ], + "id": 3436, + "name": "MemberAccess", + "src": "61311:45:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3437, + "name": "Identifier", + "src": "61370:10:1" + } + ], + "id": 3438, + "name": "FunctionCall", + "src": "61370:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3407, + "type": "address", + "value": "from" + }, + "id": 3439, + "name": "Identifier", + "src": "61396:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3411, + "type": "uint256", + "value": "tokenId" + }, + "id": 3440, + "name": "Identifier", + "src": "61414:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3413, + "type": "bytes memory", + "value": "_data" + }, + "id": 3441, + "name": "Identifier", + "src": "61435:5:1" + } + ], + "id": 3442, + "name": "FunctionCall", + "src": "61275:175:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3443, + "name": "Literal", + "src": "61452:52:1" + } + ], + "id": 3444, + "name": "FunctionCall", + "src": "61259:246:1" + } + ], + "id": 3445, + "name": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "attributes": { + "assignments": [ + 3447 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "retval", + "scope": 3461, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 3446, + "name": "ElementaryTypeName", + "src": "61515:6:1" + } + ], + "id": 3447, + "name": "VariableDeclaration", + "src": "61515:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes4", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "decode", + "type": "function () pure" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3448, + "name": "Identifier", + "src": "61531:3:1" + } + ], + "id": 3449, + "name": "MemberAccess", + "src": "61531:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3427, + "type": "bytes memory", + "value": "returndata" + }, + "id": 3450, + "name": "Identifier", + "src": "61542:10:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "name": "bytes4" + }, + "id": 3451, + "name": "ElementaryTypeName", + "src": "61555:6:1" + } + ], + "id": 3452, + "name": "ElementaryTypeNameExpression", + "src": "61555:6:1" + } + ], + "id": 3453, + "name": "TupleExpression", + "src": "61554:8:1" + } + ], + "id": 3454, + "name": "FunctionCall", + "src": "61531:32:1" + } + ], + "id": 3455, + "name": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3447, + "type": "bytes4", + "value": "retval" + }, + "id": 3456, + "name": "Identifier", + "src": "61581:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2596, + "type": "bytes4", + "value": "_ERC721_RECEIVED" + }, + "id": 3457, + "name": "Identifier", + "src": "61591:16:1" + } + ], + "id": 3458, + "name": "BinaryOperation", + "src": "61581:26:1" + } + ], + "id": 3459, + "name": "TupleExpression", + "src": "61580:28:1" + } + ], + "id": 3460, + "name": "Return", + "src": "61573:35:1" + } + ], + "id": 3461, + "name": "Block", + "src": "61156:459:1" + } + ], + "id": 3462, + "name": "FunctionDefinition", + "src": "61026:589:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3463, + "name": "StructuredDocumentation", + "src": "61621:101:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3464, + "name": "ElementaryTypeName", + "src": "61745:7:1" + } + ], + "id": 3465, + "name": "VariableDeclaration", + "src": "61745:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3466, + "name": "ElementaryTypeName", + "src": "61757:7:1" + } + ], + "id": 3467, + "name": "VariableDeclaration", + "src": "61757:15:1" + } + ], + "id": 3468, + "name": "ParameterList", + "src": "61744:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3469, + "name": "ParameterList", + "src": "61791:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 3470, + "name": "Identifier", + "src": "61801:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3471, + "name": "Identifier", + "src": "61817:7:1" + } + ], + "id": 3472, + "name": "IndexAccess", + "src": "61801:24:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3473, + "name": "Identifier", + "src": "61828:2:1" + } + ], + "id": 3474, + "name": "Assignment", + "src": "61801:29:1" + } + ], + "id": 3475, + "name": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 563, + "type": "function (address,address,uint256)", + "value": "Approval" + }, + "id": 3476, + "name": "Identifier", + "src": "61845:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3477, + "name": "Identifier", + "src": "61854:6:1" + } + ], + "id": 3478, + "name": "MemberAccess", + "src": "61854:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3479, + "name": "Identifier", + "src": "61869:7:1" + } + ], + "id": 3480, + "name": "FunctionCall", + "src": "61854:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3481, + "name": "Identifier", + "src": "61879:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3482, + "name": "Identifier", + "src": "61883:7:1" + } + ], + "id": 3483, + "name": "FunctionCall", + "src": "61845:46:1" + } + ], + "id": 3484, + "name": "EmitStatement", + "src": "61840:51:1" + } + ], + "id": 3485, + "name": "Block", + "src": "61791:125:1" + } + ], + "id": 3486, + "name": "FunctionDefinition", + "src": "61727:189:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_beforeTokenTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3487, + "name": "StructuredDocumentation", + "src": "61922:585:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3488, + "name": "ElementaryTypeName", + "src": "62542:7:1" + } + ], + "id": 3489, + "name": "VariableDeclaration", + "src": "62542:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3490, + "name": "ElementaryTypeName", + "src": "62556:7:1" + } + ], + "id": 3491, + "name": "VariableDeclaration", + "src": "62556:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3492, + "name": "ElementaryTypeName", + "src": "62568:7:1" + } + ], + "id": 3493, + "name": "VariableDeclaration", + "src": "62568:15:1" + } + ], + "id": 3494, + "name": "ParameterList", + "src": "62541:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3495, + "name": "ParameterList", + "src": "62602:0:1" + }, + { + "attributes": { + "statements": [ + null + ] + }, + "children": [], + "id": 3496, + "name": "Block", + "src": "62602:3:1" + } + ], + "id": 3497, + "name": "FunctionDefinition", + "src": "62512:93:1" + } + ], + "id": 3498, + "name": "ContractDefinition", + "src": "46080:16527:1" + } + ], + "id": 3499, + "name": "SourceUnit", + "src": "84:62524:1" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-13T11:18:06.883Z", + "devdoc": { + "details": "Collection of functions related to the address type", + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/abis/Context.json b/src/abis/Context.json new file mode 100644 index 0000000..0fdec16 --- /dev/null +++ b/src/abis/Context.json @@ -0,0 +1,77557 @@ +{ + "contractName": "Context", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":\"Context\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":{\"keccak256\":\"0xac9220652f9879c5fb3116025d59e8fbf6c2c3d149aed9f617b88edd31402044\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48de100723de94a6590c6db5bae5098a93445194389c3f3eeb104c7239ef3044\",\"dweb:/ipfs/QmVHLEtfLqBqX7XQRHfLuuwtufRBFJFHfgY4zbFRpaZwXC\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "", + "deployedSourceMap": "", + "source": "// SPDX-License-Identifier: MIT\n\n// File: @openzeppelin/contracts/utils/Context.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\n\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Enumerable is IERC721 {\n\n /**\n * @dev Returns the total amount of tokens stored by the contract.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);\n\n /**\n * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n * Use along with {totalSupply} to enumerate all tokens.\n */\n function tokenByIndex(uint256 index) external view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\npragma solidity >=0.6.0 <0.8.0;\n\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts may inherit from this and call {_registerInterface} to declare\n * their support of an interface.\n */\nabstract contract ERC165 is IERC165 {\n /*\n * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7\n */\n bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;\n\n /**\n * @dev Mapping of interface ids to whether or not it's supported.\n */\n mapping(bytes4 => bool) private _supportedInterfaces;\n\n constructor () {\n // Derived contracts need only register support for their own interfaces,\n // we register support for ERC165 itself here\n _registerInterface(_INTERFACE_ID_ERC165);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n *\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return _supportedInterfaces[interfaceId];\n }\n\n /**\n * @dev Registers the contract as an implementer of the interface defined by\n * `interfaceId`. Support of the actual ERC165 interface is automatic and\n * registering its interface id is not required.\n *\n * See {IERC165-supportsInterface}.\n *\n * Requirements:\n *\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).\n */\n function _registerInterface(bytes4 interfaceId) internal virtual {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the substraction of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n return a - b;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) return 0;\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: division by zero\");\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: modulo by zero\");\n return a % b;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {trySub}.\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryDiv}.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting with custom message when dividing by zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryMod}.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a % b;\n }\n}\n\n// File: @openzeppelin/contracts/utils/Address.sol\npragma solidity >=0.6.2 <0.8.0;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n // solhint-disable-next-line no-inline-assembly\n assembly { size := extcodesize(account) }\n return size > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: value }(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.staticcall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableSet.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) { // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n bytes32 lastvalue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastvalue;\n // Update the index for the moved value\n set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n require(set._values.length > index, \"EnumerableSet: index out of bounds\");\n return set._values[index];\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableMap.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing an enumerable variant of Solidity's\n * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n * type.\n *\n * Maps have the following properties:\n *\n * - Entries are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Entries are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableMap for EnumerableMap.UintToAddressMap;\n *\n * // Declare a set state variable\n * EnumerableMap.UintToAddressMap private myMap;\n * }\n * ```\n *\n * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n * supported.\n */\nlibrary EnumerableMap {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Map type with\n // bytes32 keys and values.\n // The Map implementation uses private functions, and user-facing\n // implementations (such as Uint256ToAddressMap) are just wrappers around\n // the underlying Map.\n // This means that we can only create new EnumerableMaps for types that fit\n // in bytes32.\n\n struct MapEntry {\n bytes32 _key;\n bytes32 _value;\n }\n\n struct Map {\n // Storage of map keys and values\n MapEntry[] _entries;\n\n // Position of the entry defined by a key in the `entries` array, plus 1\n // because index 0 means a key is not in the map.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex == 0) { // Equivalent to !contains(map, key)\n map._entries.push(MapEntry({ _key: key, _value: value }));\n // The entry is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n map._indexes[key] = map._entries.length;\n return true;\n } else {\n map._entries[keyIndex - 1]._value = value;\n return false;\n }\n }\n\n /**\n * @dev Removes a key-value pair from a map. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function _remove(Map storage map, bytes32 key) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex != 0) { // Equivalent to contains(map, key)\n // To delete a key-value pair from the _entries array in O(1), we swap the entry to delete with the last one\n // in the array, and then remove the last entry (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = keyIndex - 1;\n uint256 lastIndex = map._entries.length - 1;\n\n // When the entry to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n MapEntry storage lastEntry = map._entries[lastIndex];\n\n // Move the last entry to the index where the entry to delete is\n map._entries[toDeleteIndex] = lastEntry;\n // Update the index for the moved entry\n map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved entry was stored\n map._entries.pop();\n\n // Delete the index for the deleted slot\n delete map._indexes[key];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function _contains(Map storage map, bytes32 key) private view returns (bool) {\n return map._indexes[key] != 0;\n }\n\n /**\n * @dev Returns the number of key-value pairs in the map. O(1).\n */\n function _length(Map storage map) private view returns (uint256) {\n return map._entries.length;\n }\n\n /**\n * @dev Returns the key-value pair stored at position `index` in the map. O(1).\n *\n * Note that there are no guarantees on the ordering of entries inside the\n * array, and it may change when more entries are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) {\n require(map._entries.length > index, \"EnumerableMap: index out of bounds\");\n\n MapEntry storage entry = map._entries[index];\n return (entry._key, entry._value);\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n */\n function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) {\n uint256 keyIndex = map._indexes[key];\n if (keyIndex == 0) return (false, 0); // Equivalent to contains(map, key)\n return (true, map._entries[keyIndex - 1]._value); // All indexes are 1-based\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function _get(Map storage map, bytes32 key) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, \"EnumerableMap: nonexistent key\"); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n /**\n * @dev Same as {_get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {_tryGet}.\n */\n function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n // UintToAddressMap\n\n struct UintToAddressMap {\n Map _inner;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) {\n return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {\n return _remove(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {\n return _contains(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns the number of elements in the map. O(1).\n */\n function length(UintToAddressMap storage map) internal view returns (uint256) {\n return _length(map._inner);\n }\n\n /**\n * @dev Returns the element stored at position `index` in the set. O(1).\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {\n (bytes32 key, bytes32 value) = _at(map._inner, index);\n return (uint256(key), address(uint160(uint256(value))));\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n *\n * _Available since v3.4._\n */\n function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) {\n (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key));\n return (success, address(uint160(uint256(value))));\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key)))));\n }\n\n /**\n * @dev Same as {get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryGet}.\n */\n function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage))));\n }\n}\n\n// File: @openzeppelin/contracts/utils/Strings.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n /**\n * @dev Converts a `uint256` to its ASCII `string` representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n uint256 index = digits - 1;\n temp = value;\n while (temp != 0) {\n buffer[index--] = bytes1(uint8(48 + temp % 10));\n temp /= 10;\n }\n return string(buffer);\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 Non-Fungible Token Standard basic implementation\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable {\n using SafeMath for uint256;\n using Address for address;\n using EnumerableSet for EnumerableSet.UintSet;\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n using Strings for uint256;\n\n // Equals to `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n // which can be also obtained as `IERC721Receiver(0).onERC721Received.selector`\n bytes4 private constant _ERC721_RECEIVED = 0x150b7a02;\n\n // Mapping from holder address to their (enumerable) set of owned tokens\n mapping (address => EnumerableSet.UintSet) private _holderTokens;\n\n // Enumerable mapping from token ids to their owners\n EnumerableMap.UintToAddressMap private _tokenOwners;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Optional mapping for token URIs\n mapping (uint256 => string) private _tokenURIs;\n\n // Base URI\n string private _baseURI;\n\n /*\n * bytes4(keccak256('balanceOf(address)')) == 0x70a08231\n * bytes4(keccak256('ownerOf(uint256)')) == 0x6352211e\n * bytes4(keccak256('approve(address,uint256)')) == 0x095ea7b3\n * bytes4(keccak256('getApproved(uint256)')) == 0x081812fc\n * bytes4(keccak256('setApprovalForAll(address,bool)')) == 0xa22cb465\n * bytes4(keccak256('isApprovedForAll(address,address)')) == 0xe985e9c5\n * bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde\n *\n * => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^\n * 0xa22cb465 ^ 0xe985e9c5 ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n /*\n * bytes4(keccak256('name()')) == 0x06fdde03\n * bytes4(keccak256('symbol()')) == 0x95d89b41\n * bytes4(keccak256('tokenURI(uint256)')) == 0xc87b56dd\n *\n * => 0x06fdde03 ^ 0x95d89b41 ^ 0xc87b56dd == 0x5b5e139f\n */\n bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f;\n\n /*\n * bytes4(keccak256('totalSupply()')) == 0x18160ddd\n * bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) == 0x2f745c59\n * bytes4(keccak256('tokenByIndex(uint256)')) == 0x4f6ccce7\n *\n * => 0x18160ddd ^ 0x2f745c59 ^ 0x4f6ccce7 == 0x780e9d63\n */\n bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor (string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n return _holderTokens[owner].length();\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n return _tokenOwners.get(tokenId, \"ERC721: owner query for nonexistent token\");\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).\n if (bytes(_tokenURI).length > 0) {\n return string(abi.encodePacked(base, _tokenURI));\n }\n // If there is a baseURI but no tokenURI, concatenate the tokenID to the baseURI.\n return string(abi.encodePacked(base, tokenId.toString()));\n }\n\n /**\n * @dev Returns the base URI set via {_setBaseURI}. This will be\n * automatically added as a prefix in {tokenURI} to each token's URI, or\n * to the token ID if no specific URI is set for that token ID.\n */\n function baseURI() public view virtual returns (string memory) {\n return _baseURI;\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\n return _holderTokens[owner].at(index);\n }\n\n /**\n * @dev See {IERC721Enumerable-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n // _tokenOwners are indexed by tokenIds, so .length() returns the number of tokenIds\n return _tokenOwners.length();\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenByIndex}.\n */\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\n (uint256 tokenId, ) = _tokenOwners.at(index);\n return tokenId;\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(_msgSender() == owner || ERC721.isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n require(operator != _msgSender(), \"ERC721: approve to caller\");\n\n _operatorApprovals[_msgSender()][operator] = approved;\n emit ApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n _safeTransfer(from, to, tokenId, _data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `_data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _tokenOwners.contains(tokenId);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || ERC721.isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n d*\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory _data) internal virtual {\n _mint(to, tokenId);\n require(_checkOnERC721Received(address(0), to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId);\n\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId); // internal owner\n\n _beforeTokenTransfer(owner, address(0), tokenId);\n\n // Clear approvals\n _approve(address(0), tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n\n _holderTokens[owner].remove(tokenId);\n\n _tokenOwners.remove(tokenId);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\"); // internal owner\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId);\n\n // Clear approvals from the previous owner\n _approve(address(0), tokenId);\n\n _holderTokens[from].remove(tokenId);\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = _tokenURI;\n }\n\n /**\n * @dev Internal function to set the base URI for all token IDs. It is\n * automatically added as a prefix to the value returned in {tokenURI},\n * or to the token ID if {tokenURI} is empty.\n */\n function _setBaseURI(string memory baseURI_) internal virtual {\n _baseURI = baseURI_;\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data)\n private returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n bytes memory returndata = to.functionCall(abi.encodeWithSelector(\n IERC721Receiver(to).onERC721Received.selector,\n _msgSender(),\n from,\n tokenId,\n _data\n ), \"ERC721: transfer to non ERC721Receiver implementer\");\n bytes4 retval = abi.decode(returndata, (bytes4));\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits an {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId); // internal owner\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n * transferred to `to`.\n * - When `from` is zero, `tokenId` will be minted for `to`.\n * - When `to` is zero, ``from``'s `tokenId` will be burned.\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual { }\n}\n", + "sourcePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "ast": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "id": 3499, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 509, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "84:31:1" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 530, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 517, + "nodeType": "Block", + "src": "719:34:1", + "statements": [ + { + "expression": { + "expression": { + "id": 514, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "736:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "736:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 513, + "id": 516, + "nodeType": "Return", + "src": "729:17:1" + } + ] + }, + "id": 518, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 510, + "nodeType": "ParameterList", + "parameters": [], + "src": "668:2:1" + }, + "returnParameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 518, + "src": "702:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "702:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "701:17:1" + }, + "scope": 530, + "src": "649:104:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 528, + "nodeType": "Block", + "src": "824:165:1", + "statements": [ + { + "expression": { + "id": 523, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "834:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 524, + "nodeType": "ExpressionStatement", + "src": "834:4:1" + }, + { + "expression": { + "expression": { + "id": 525, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "974:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "src": "974:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 522, + "id": 527, + "nodeType": "Return", + "src": "967:15:1" + } + ] + }, + "id": 529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 519, + "nodeType": "ParameterList", + "parameters": [], + "src": "776:2:1" + }, + "returnParameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "810:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 520, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "810:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "809:14:1" + }, + "scope": 530, + "src": "759:230:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "617:374:1" + }, + { + "id": 531, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1053:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 532, + "nodeType": "StructuredDocumentation", + "src": "1086:279:1", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 541, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 533, + "nodeType": "StructuredDocumentation", + "src": "1390:340:1", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 540, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1762:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 534, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1762:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1761:20:1" + }, + "returnParameters": { + "id": 539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1805:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1805:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1804:6:1" + }, + "scope": 541, + "src": "1735:76:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1366:447:1" + }, + { + "id": 542, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1873:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 544, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "1996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 545, + "nodeType": "InheritanceSpecifier", + "src": "1996:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "1907:67:1", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 655, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 546, + "nodeType": "StructuredDocumentation", + "src": "2010:88:1", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 554, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 548, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2118:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 550, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2140:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2140:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 552, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2160:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2117:67:1" + }, + "src": "2103:82:1" + }, + { + "anonymous": false, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "2191:94:1", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 563, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 557, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2305:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2305:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 559, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2328:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 561, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2354:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2354:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2304:74:1" + }, + "src": "2290:89:1" + }, + { + "anonymous": false, + "documentation": { + "id": 564, + "nodeType": "StructuredDocumentation", + "src": "2385:117:1", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 572, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 566, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2528:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2528:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2551:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2551:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 570, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2577:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 569, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2577:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2527:64:1" + }, + "src": "2507:85:1" + }, + { + "documentation": { + "id": 573, + "nodeType": "StructuredDocumentation", + "src": "2598:76:1", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2698:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 574, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2698:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2697:15:1" + }, + "returnParameters": { + "id": 579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2736:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2735:17:1" + }, + "scope": 655, + "src": "2679:74:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 581, + "nodeType": "StructuredDocumentation", + "src": "2759:131:1", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 588, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 583, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2912:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2912:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2911:17:1" + }, + "returnParameters": { + "id": 587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2952:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2951:15:1" + }, + "scope": 655, + "src": "2895:72:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 589, + "nodeType": "StructuredDocumentation", + "src": "2973:690:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 598, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 591, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3694:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3694:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3708:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3708:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3720:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3720:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3693:43:1" + }, + "returnParameters": { + "id": 597, + "nodeType": "ParameterList", + "parameters": [], + "src": "3745:0:1" + }, + "scope": 655, + "src": "3668:78:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 599, + "nodeType": "StructuredDocumentation", + "src": "3752:504:1", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 608, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 601, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4283:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4283:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 603, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4297:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 602, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4297:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4309:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4309:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4282:43:1" + }, + "returnParameters": { + "id": 607, + "nodeType": "ParameterList", + "parameters": [], + "src": "4334:0:1" + }, + "scope": 655, + "src": "4261:74:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 609, + "nodeType": "StructuredDocumentation", + "src": "4341:452:1", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 616, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 611, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4815:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4815:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4827:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4814:29:1" + }, + "returnParameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [], + "src": "4852:0:1" + }, + "scope": 655, + "src": "4798:55:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 617, + "nodeType": "StructuredDocumentation", + "src": "4859:139:1", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 619, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5024:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5024:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5023:17:1" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5064:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5064:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5063:18:1" + }, + "scope": 655, + "src": "5003:79:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 625, + "nodeType": "StructuredDocumentation", + "src": "5088:309:1", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 632, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5429:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5429:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5447:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 628, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5447:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5428:34:1" + }, + "returnParameters": { + "id": 631, + "nodeType": "ParameterList", + "parameters": [], + "src": "5471:0:1" + }, + "scope": 655, + "src": "5402:70:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 633, + "nodeType": "StructuredDocumentation", + "src": "5478:138:1", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 642, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5647:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5647:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5662:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5662:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5646:33:1" + }, + "returnParameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5703:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 639, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5703:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5702:6:1" + }, + "scope": 655, + "src": "5621:88:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 643, + "nodeType": "StructuredDocumentation", + "src": "5715:568:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 654, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6314:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6314:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6328:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6340:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6340:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6357:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 650, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6357:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6313:64:1" + }, + "returnParameters": { + "id": 653, + "nodeType": "ParameterList", + "parameters": [], + "src": "6386:0:1" + }, + "scope": 655, + "src": "6288:99:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1975:4414:1" + }, + { + "id": 656, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "6457:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 658, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "6654:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 659, + "nodeType": "InheritanceSpecifier", + "src": "6654:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 657, + "nodeType": "StructuredDocumentation", + "src": "6491:133:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 680, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 660, + "nodeType": "StructuredDocumentation", + "src": "6669:58:1", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 665, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [], + "src": "6745:2:1" + }, + "returnParameters": { + "id": 664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 663, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 665, + "src": "6771:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 662, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6771:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6770:15:1" + }, + "scope": 680, + "src": "6732:54:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 666, + "nodeType": "StructuredDocumentation", + "src": "6792:60:1", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 671, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 667, + "nodeType": "ParameterList", + "parameters": [], + "src": "6872:2:1" + }, + "returnParameters": { + "id": 670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 669, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "6898:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 668, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6897:15:1" + }, + "scope": 680, + "src": "6857:56:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 672, + "nodeType": "StructuredDocumentation", + "src": "6919:90:1", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 679, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7032:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7031:17:1" + }, + "returnParameters": { + "id": 678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7072:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 676, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7072:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7071:15:1" + }, + "scope": 680, + "src": "7014:73:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "6625:464:1" + }, + { + "id": 681, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "7161:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 683, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "7363:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 684, + "nodeType": "InheritanceSpecifier", + "src": "7363:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 682, + "nodeType": "StructuredDocumentation", + "src": "7195:136:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 709, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 685, + "nodeType": "StructuredDocumentation", + "src": "7378:82:1", + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "functionSelector": "18160ddd", + "id": 690, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 686, + "nodeType": "ParameterList", + "parameters": [], + "src": "7485:2:1" + }, + "returnParameters": { + "id": 689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 688, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "7511:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 687, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7511:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7510:9:1" + }, + "scope": 709, + "src": "7465:55:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "7526:171:1", + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "functionSelector": "2f745c59", + "id": 700, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7731:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7731:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7746:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7746:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7730:30:1" + }, + "returnParameters": { + "id": 699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 698, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7784:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7784:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7783:17:1" + }, + "scope": 709, + "src": "7702:99:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 701, + "nodeType": "StructuredDocumentation", + "src": "7807:164:1", + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "functionSelector": "4f6ccce7", + "id": 708, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 703, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "7998:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7998:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7997:15:1" + }, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "8036:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8036:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8035:9:1" + }, + "scope": 709, + "src": "7976:69:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "7332:715:1" + }, + { + "id": 710, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "8117:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 711, + "nodeType": "StructuredDocumentation", + "src": "8150:152:1", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 726, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 712, + "nodeType": "StructuredDocumentation", + "src": "8335:485:1", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 725, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8851:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8851:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8869:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8883:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8900:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 719, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8900:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8850:70:1" + }, + "returnParameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8939:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 722, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8939:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "8938:8:1" + }, + "scope": 726, + "src": "8825:122:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "8303:646:1" + }, + { + "id": 727, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9009:31:1" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 729, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "9243:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 730, + "nodeType": "InheritanceSpecifier", + "src": "9243:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "documentation": { + "id": 728, + "nodeType": "StructuredDocumentation", + "src": "9043:171:1", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "fullyImplemented": true, + "id": 781, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 733, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9340:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 731, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9340:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783031666663396137", + "id": 732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "9404:82:1", + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 738, + "mutability": "mutable", + "name": "_supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9491:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 737, + "keyType": { + "id": 735, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9499:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "9491:23:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 736, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9509:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 745, + "nodeType": "Block", + "src": "9565:193:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 742, + "name": "_INTERFACE_ID_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "9730:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 741, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "9711:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9711:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 744, + "nodeType": "ExpressionStatement", + "src": "9711:40:1" + } + ] + }, + "id": 746, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 739, + "nodeType": "ParameterList", + "parameters": [], + "src": "9562:2:1" + }, + "returnParameters": { + "id": 740, + "nodeType": "ParameterList", + "parameters": [], + "src": "9565:0:1" + }, + "scope": 781, + "src": "9550:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 540 + ], + "body": { + "id": 759, + "nodeType": "Block", + "src": "9999:57:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 755, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10016:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 757, + "indexExpression": { + "id": 756, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "10037:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10016:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 754, + "id": 758, + "nodeType": "Return", + "src": "10009:40:1" + } + ] + }, + "documentation": { + "id": 747, + "nodeType": "StructuredDocumentation", + "src": "9764:139:1", + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 760, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 751, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9975:8:1" + }, + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9935:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 748, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9935:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "9934:20:1" + }, + "returnParameters": { + "id": 754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 753, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9993:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9993:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9992:6:1" + }, + "scope": 781, + "src": "9908:148:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 779, + "nodeType": "Block", + "src": "10515:133:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 767, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10533:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10548:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "10533:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10560:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + }, + "value": "ERC165: invalid interface id" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "id": 766, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "10525:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10525:66:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 772, + "nodeType": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "expression": { + "id": 777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 773, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10601:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 775, + "indexExpression": { + "id": 774, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10622:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10637:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10601:40:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 778, + "nodeType": "ExpressionStatement", + "src": "10601:40:1" + } + ] + }, + "documentation": { + "id": 761, + "nodeType": "StructuredDocumentation", + "src": "10062:383:1", + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 780, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 763, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 780, + "src": "10478:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 762, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "10478:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "10477:20:1" + }, + "returnParameters": { + "id": 765, + "nodeType": "ParameterList", + "parameters": [], + "src": "10515:0:1" + }, + "scope": 781, + "src": "10450:198:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "9215:1435:1" + }, + { + "id": 782, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10703:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 783, + "nodeType": "StructuredDocumentation", + "src": "10736:563:1", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 1135, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 813, + "nodeType": "Block", + "src": "11535:98:1", + "statements": [ + { + "assignments": [ + 796 + ], + "declarations": [ + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 813, + "src": "11545:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 795, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 800, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 797, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11557:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "11561:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11557:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 801, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11576:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 802, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11580:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11576:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 808, + "nodeType": "IfStatement", + "src": "11572:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11591:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11598:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 806, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11590:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 794, + "id": 807, + "nodeType": "Return", + "src": "11583:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11618:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 810, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11624:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 811, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11617:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 794, + "id": 812, + "nodeType": "Return", + "src": "11610:16:1" + } + ] + }, + "documentation": { + "id": 784, + "nodeType": "StructuredDocumentation", + "src": "11323:131:1", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 814, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11475:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11475:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11486:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11486:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11474:22:1" + }, + "returnParameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 791, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11526:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 792, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11526:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11519:15:1" + }, + "scope": 1135, + "src": "11459:174:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 840, + "nodeType": "Block", + "src": "11855:75:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 826, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11869:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 827, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11873:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11869:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 833, + "nodeType": "IfStatement", + "src": "11865:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11884:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 831, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11883:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 825, + "id": 832, + "nodeType": "Return", + "src": "11876:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11911:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 835, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11917:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 836, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11921:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11917:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 838, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11910:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 825, + "id": 839, + "nodeType": "Return", + "src": "11903:20:1" + } + ] + }, + "documentation": { + "id": 815, + "nodeType": "StructuredDocumentation", + "src": "11639:135:1", + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 841, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 817, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11795:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11795:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 819, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11806:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11806:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11794:22:1" + }, + "returnParameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11840:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 821, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11840:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 824, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11846:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11846:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11839:15:1" + }, + "scope": 1135, + "src": "11779:151:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 881, + "nodeType": "Block", + "src": "12154:359:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 853, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12386:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12391:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12386:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 860, + "nodeType": "IfStatement", + "src": "12382:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12402:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12408:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 858, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12401:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 859, + "nodeType": "Return", + "src": "12394:16:1" + } + }, + { + "assignments": [ + 862 + ], + "declarations": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "12420:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12420:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 866, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12432:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 864, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12436:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12432:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 867, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12451:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 868, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12455:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 870, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12460:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 876, + "nodeType": "IfStatement", + "src": "12447:33:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12471:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12478:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 874, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12470:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 875, + "nodeType": "Return", + "src": "12463:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12498:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 878, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12504:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12497:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 852, + "id": 880, + "nodeType": "Return", + "src": "12490:16:1" + } + ] + }, + "documentation": { + "id": 842, + "nodeType": "StructuredDocumentation", + "src": "11936:137:1", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 844, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12094:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12094:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 846, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12105:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12093:22:1" + }, + "returnParameters": { + "id": 852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12139:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 848, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12139:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12145:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12145:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12138:15:1" + }, + "scope": 1135, + "src": "12078:435:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 908, + "nodeType": "Block", + "src": "12738:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 894, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12752:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12757:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12752:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 901, + "nodeType": "IfStatement", + "src": "12748:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12768:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12775:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 899, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12767:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 893, + "id": 900, + "nodeType": "Return", + "src": "12760:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12795:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 903, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "12801:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 904, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12805:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12801:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 906, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12794:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 893, + "id": 907, + "nodeType": "Return", + "src": "12787:20:1" + } + ] + }, + "documentation": { + "id": 883, + "nodeType": "StructuredDocumentation", + "src": "12519:138:1", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 909, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12678:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12678:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12689:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12689:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12677:22:1" + }, + "returnParameters": { + "id": 893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12723:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 889, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12723:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12729:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12729:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12722:15:1" + }, + "scope": 1135, + "src": "12662:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 935, + "nodeType": "Block", + "src": "13049:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 921, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13063:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13068:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13063:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 928, + "nodeType": "IfStatement", + "src": "13059:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13079:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13086:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 926, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13078:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 920, + "id": 927, + "nodeType": "Return", + "src": "13071:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13106:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 930, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "13112:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 931, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13116:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13112:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13105:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 920, + "id": 934, + "nodeType": "Return", + "src": "13098:20:1" + } + ] + }, + "documentation": { + "id": 910, + "nodeType": "StructuredDocumentation", + "src": "12820:148:1", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 912, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "12989:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12989:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 914, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13000:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 913, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13000:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12988:22:1" + }, + "returnParameters": { + "id": 920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 917, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13034:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 916, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13034:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 919, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13040:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13040:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13033:15:1" + }, + "scope": 1135, + "src": "12973:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 961, + "nodeType": "Block", + "src": "13427:108:1", + "statements": [ + { + "assignments": [ + 947 + ], + "declarations": [ + { + "constant": false, + "id": 947, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "13437:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13437:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 951, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13449:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 949, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 941, + "src": "13453:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13449:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 953, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13472:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 954, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13477:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13480:29:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 952, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13464:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 958, + "nodeType": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "expression": { + "id": 959, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13527:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 945, + "id": 960, + "nodeType": "Return", + "src": "13520:8:1" + } + ] + }, + "documentation": { + "id": 937, + "nodeType": "StructuredDocumentation", + "src": "13131:224:1", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13373:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13384:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13384:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13372:22:1" + }, + "returnParameters": { + "id": 945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13418:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13418:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13417:9:1" + }, + "scope": 1135, + "src": "13360:175:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 983, + "nodeType": "Block", + "src": "13873:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 973, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13896:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13891:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13883:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 979, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13949:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 980, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13953:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13949:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 971, + "id": 982, + "nodeType": "Return", + "src": "13942:12:1" + } + ] + }, + "documentation": { + "id": 963, + "nodeType": "StructuredDocumentation", + "src": "13541:260:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 984, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13819:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 964, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 967, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13830:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13830:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13818:22:1" + }, + "returnParameters": { + "id": 971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 970, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13864:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13864:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13863:9:1" + }, + "scope": 1135, + "src": "13806:155:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "14275:148:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 994, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14289:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14294:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14289:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "IfStatement", + "src": "14285:20:1", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14304:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 993, + "id": 998, + "nodeType": "Return", + "src": "14297:8:1" + } + }, + { + "assignments": [ + 1001 + ], + "declarations": [ + { + "constant": false, + "id": 1001, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "14315:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14315:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1005, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1002, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14327:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1003, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14331:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14327:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1007, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14350:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1008, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14354:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1010, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14359:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14362:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1006, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14342:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14342:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "expression": { + "id": 1015, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14415:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 993, + "id": 1016, + "nodeType": "Return", + "src": "14408:8:1" + } + ] + }, + "documentation": { + "id": 985, + "nodeType": "StructuredDocumentation", + "src": "13967:236:1", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14221:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 989, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14232:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 988, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14232:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14220:22:1" + }, + "returnParameters": { + "id": 993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 992, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14266:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14266:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14265:9:1" + }, + "scope": 1135, + "src": "14208:215:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1039, + "nodeType": "Block", + "src": "14954:83:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1029, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "14972:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14976:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14972:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14979:28:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14964:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14964:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1034, + "nodeType": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1035, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1021, + "src": "15025:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1036, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "15029:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15025:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1027, + "id": 1038, + "nodeType": "Return", + "src": "15018:12:1" + } + ] + }, + "documentation": { + "id": 1019, + "nodeType": "StructuredDocumentation", + "src": "14429:453:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1040, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1021, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14900:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14900:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1023, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14911:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14899:22:1" + }, + "returnParameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1026, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14945:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14945:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14944:9:1" + }, + "scope": 1135, + "src": "14887:150:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1061, + "nodeType": "Block", + "src": "15557:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1051, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15575:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15579:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15582:26:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 1050, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "15567:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15567:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1056, + "nodeType": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1057, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1043, + "src": "15626:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1058, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15630:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15626:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1049, + "id": 1060, + "nodeType": "Return", + "src": "15619:12:1" + } + ] + }, + "documentation": { + "id": 1041, + "nodeType": "StructuredDocumentation", + "src": "15043:442:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1062, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1043, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15503:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1045, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15514:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15502:22:1" + }, + "returnParameters": { + "id": 1049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1048, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15548:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15548:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15547:9:1" + }, + "scope": 1135, + "src": "15490:148:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1085, + "nodeType": "Block", + "src": "16197:68:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16215:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1076, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16220:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16215:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1078, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "16223:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1074, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "16207:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16207:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1080, + "nodeType": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16253:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1082, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16257:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16253:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1073, + "id": 1084, + "nodeType": "Return", + "src": "16246:12:1" + } + ] + }, + "documentation": { + "id": 1063, + "nodeType": "StructuredDocumentation", + "src": "15644:453:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1086, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16115:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16115:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16126:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16137:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1068, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16137:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16114:50:1" + }, + "returnParameters": { + "id": 1073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16188:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16188:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16187:9:1" + }, + "scope": 1135, + "src": "16102:163:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1109, + "nodeType": "Block", + "src": "17017:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1099, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17035:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17039:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17035:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1102, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1093, + "src": "17042:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17027:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17027:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1105, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "17072:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1106, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17076:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17072:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1097, + "id": 1108, + "nodeType": "Return", + "src": "17065:12:1" + } + ] + }, + "documentation": { + "id": 1087, + "nodeType": "StructuredDocumentation", + "src": "16271:646:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16935:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16935:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16946:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16946:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1093, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16957:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1092, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16957:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16934:50:1" + }, + "returnParameters": { + "id": 1097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1096, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "17008:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17008:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17007:9:1" + }, + "scope": 1135, + "src": "16922:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1133, + "nodeType": "Block", + "src": "17825:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1123, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17843:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17847:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17843:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1126, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "17850:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17835:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1128, + "nodeType": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1129, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "17880:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1130, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17880:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1121, + "id": 1132, + "nodeType": "Return", + "src": "17873:12:1" + } + ] + }, + "documentation": { + "id": 1111, + "nodeType": "StructuredDocumentation", + "src": "17090:635:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17743:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17743:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17754:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17754:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17765:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1116, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17765:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17742:50:1" + }, + "returnParameters": { + "id": 1121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17816:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17816:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17815:9:1" + }, + "scope": 1135, + "src": "17730:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "11300:6594:1" + }, + { + "id": 1136, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "17947:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1137, + "nodeType": "StructuredDocumentation", + "src": "17980:67:1", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 1430, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1153, + "nodeType": "Block", + "src": "18706:347:1", + "statements": [ + { + "assignments": [ + 1146 + ], + "declarations": [ + { + "constant": false, + "id": 1146, + "mutability": "mutable", + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 1153, + "src": "18903:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18903:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1147, + "nodeType": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "18990:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18992:28:1", + "value": { + "arguments": [ + { + "name": "account", + "nodeType": "YulIdentifier", + "src": "19012:7:1" + } + ], + "functionName": { + "name": "extcodesize", + "nodeType": "YulIdentifier", + "src": "19000:11:1" + }, + "nodeType": "YulFunctionCall", + "src": "19000:20:1" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "18992:4:1" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "id": 1148, + "nodeType": "InlineAssembly", + "src": "18981:41:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1149, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "19038:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19045:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19038:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1144, + "id": 1152, + "nodeType": "Return", + "src": "19031:15:1" + } + ] + }, + "documentation": { + "id": 1138, + "nodeType": "StructuredDocumentation", + "src": "18070:565:1", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1154, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1140, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18660:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18660:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18659:17:1" + }, + "returnParameters": { + "id": 1144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1143, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18700:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1142, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18700:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "18699:6:1" + }, + "scope": 1430, + "src": "18640:413:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1187, + "nodeType": "Block", + "src": "20041:320:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1165, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "20067:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20059:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1163, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20059:7:1", + "typeDescriptions": {} + } + }, + "id": 1166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20059:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "20059:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1168, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20084:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20059:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20092:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 1162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20051:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1172, + "nodeType": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "assignments": [ + 1174, + null + ], + "declarations": [ + { + "constant": false, + "id": 1174, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1187, + "src": "20213:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1173, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20213:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1181, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20263:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 1175, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1157, + "src": "20231:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "20231:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1177, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20254:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "20231:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20231:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1183, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "20284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20293:60:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 1182, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20276:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20276:78:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1186, + "nodeType": "ExpressionStatement", + "src": "20276:78:1" + } + ] + }, + "documentation": { + "id": 1155, + "nodeType": "StructuredDocumentation", + "src": "19059:906:1", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1188, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1157, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "19989:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19989:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1159, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "20016:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19988:43:1" + }, + "returnParameters": { + "id": 1161, + "nodeType": "ParameterList", + "parameters": [], + "src": "20041:0:1" + }, + "scope": 1430, + "src": "19970:391:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1204, + "nodeType": "Block", + "src": "21191:82:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1199, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "21219:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1200, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "21227:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21233:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 1198, + "name": "functionCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "src": "21206:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21206:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1197, + "id": 1203, + "nodeType": "Return", + "src": "21199:67:1" + } + ] + }, + "documentation": { + "id": 1189, + "nodeType": "StructuredDocumentation", + "src": "20367:730:1", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1205, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21124:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21124:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21140:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1192, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21140:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21123:35:1" + }, + "returnParameters": { + "id": 1197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1196, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21177:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1195, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21176:14:1" + }, + "scope": 1430, + "src": "21102:171:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1224, + "nodeType": "Block", + "src": "21612:76:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1218, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "21651:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1219, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "21659:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21665:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 1221, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "21668:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1217, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "21629:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21629:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1216, + "id": 1223, + "nodeType": "Return", + "src": "21622:59:1" + } + ] + }, + "documentation": { + "id": 1206, + "nodeType": "StructuredDocumentation", + "src": "21279:211:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1208, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21517:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21517:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21533:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1209, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21533:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1212, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21552:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1211, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "21552:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "21516:63:1" + }, + "returnParameters": { + "id": 1216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1215, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21598:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1214, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21598:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21597:14:1" + }, + "scope": 1430, + "src": "21495:193:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1244, + "nodeType": "Block", + "src": "22163:111:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1238, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "22202:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1239, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "22210:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1240, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1232, + "src": "22216:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22223:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 1237, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "22180:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22180:87:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1236, + "id": 1243, + "nodeType": "Return", + "src": "22173:94:1" + } + ] + }, + "documentation": { + "id": 1226, + "nodeType": "StructuredDocumentation", + "src": "21694:351:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1245, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1228, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22081:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22081:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1230, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22097:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1229, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22097:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1232, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22116:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "22080:50:1" + }, + "returnParameters": { + "id": 1236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1235, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22149:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1234, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22149:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22148:14:1" + }, + "scope": 1430, + "src": "22050:224:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1294, + "nodeType": "Block", + "src": "22663:382:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1262, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "22689:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22681:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22681:7:1", + "typeDescriptions": {} + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22681:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "22681:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1265, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22706:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22681:30:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 1267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22713:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 1259, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22673:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22673:81:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1269, + "nodeType": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1272, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22783:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1271, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "22772:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22772:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22792:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 1270, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22764:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22764:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1276, + "nodeType": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "assignments": [ + 1278, + 1280 + ], + "declarations": [ + { + "constant": false, + "id": 1278, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22895:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1277, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22895:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1280, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22909:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1279, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22909:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1287, + "initialValue": { + "arguments": [ + { + "id": 1285, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1250, + "src": "22964:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1281, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22936:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "22936:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1283, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22956:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "22936:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22936:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1289, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "23004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1290, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1280, + "src": "23013:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1291, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "23025:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1288, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "22986:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22986:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1258, + "id": 1293, + "nodeType": "Return", + "src": "22979:59:1" + } + ] + }, + "documentation": { + "id": 1246, + "nodeType": "StructuredDocumentation", + "src": "22280:237:1", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1295, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1248, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22553:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22553:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1250, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22569:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1249, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22569:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1252, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22588:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22588:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1254, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22603:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1253, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "22603:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "22552:78:1" + }, + "returnParameters": { + "id": 1258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1257, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22649:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1256, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22649:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22648:14:1" + }, + "scope": 1430, + "src": "22522:523:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1311, + "nodeType": "Block", + "src": "23322:97:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1306, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1298, + "src": "23358:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1307, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "23366:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23372:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 1305, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "src": "23339:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23339:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1304, + "id": 1310, + "nodeType": "Return", + "src": "23332:80:1" + } + ] + }, + "documentation": { + "id": 1296, + "nodeType": "StructuredDocumentation", + "src": "23051:166:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1298, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23250:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23250:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23266:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1299, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23266:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23249:35:1" + }, + "returnParameters": { + "id": 1304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1303, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23308:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23308:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23307:14:1" + }, + "scope": 1430, + "src": "23222:197:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1346, + "nodeType": "Block", + "src": "23731:288:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1326, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1325, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "23749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23749:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23769:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + }, + "value": "Address: static call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "id": 1324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "23741:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23741:67:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1330, + "nodeType": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "assignments": [ + 1332, + 1334 + ], + "declarations": [ + { + "constant": false, + "id": 1332, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23879:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1331, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23879:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1334, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23893:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1333, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23893:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1339, + "initialValue": { + "arguments": [ + { + "id": 1337, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "23938:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1335, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23920:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "23920:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23920:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1341, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "23978:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1342, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1334, + "src": "23987:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1343, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "23999:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1340, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "23960:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23960:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1323, + "id": 1345, + "nodeType": "Return", + "src": "23953:59:1" + } + ] + }, + "documentation": { + "id": 1313, + "nodeType": "StructuredDocumentation", + "src": "23425:173:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1315, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23631:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23631:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1317, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23647:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1316, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23647:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1319, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23666:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1318, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "23666:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "23630:63:1" + }, + "returnParameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1322, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23717:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1321, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23717:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23716:14:1" + }, + "scope": 1430, + "src": "23603:416:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1363, + "nodeType": "Block", + "src": "24295:101:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1358, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "24333:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1359, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "24341:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24347:41:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 1357, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "src": "24312:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24312:77:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1356, + "id": 1362, + "nodeType": "Return", + "src": "24305:84:1" + } + ] + }, + "documentation": { + "id": 1348, + "nodeType": "StructuredDocumentation", + "src": "24025:168:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1364, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1350, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24228:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24244:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1351, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24227:35:1" + }, + "returnParameters": { + "id": 1356, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1355, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24281:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1354, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24281:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24280:14:1" + }, + "scope": 1430, + "src": "24198:198:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1398, + "nodeType": "Block", + "src": "24707:292:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1378, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24736:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1377, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "24725:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24725:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24745:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + }, + "value": "Address: delegate call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "id": 1376, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "24717:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24717:69:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1382, + "nodeType": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "assignments": [ + 1384, + 1386 + ], + "declarations": [ + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24857:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1383, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "24857:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24871:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1385, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24871:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1391, + "initialValue": { + "arguments": [ + { + "id": 1389, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1369, + "src": "24918:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1387, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "24898:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24898:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1393, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1384, + "src": "24958:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1394, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1386, + "src": "24967:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1395, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1371, + "src": "24979:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1392, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "24940:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24940:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1375, + "id": 1397, + "nodeType": "Return", + "src": "24933:59:1" + } + ] + }, + "documentation": { + "id": 1365, + "nodeType": "StructuredDocumentation", + "src": "24402:175:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1399, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1367, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24612:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24612:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1369, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24628:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1368, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24628:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1371, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24647:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1370, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "24647:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "24611:63:1" + }, + "returnParameters": { + "id": 1375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1374, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24693:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1373, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24693:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24692:14:1" + }, + "scope": 1430, + "src": "24582:417:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1428, + "nodeType": "Block", + "src": "25134:596:1", + "statements": [ + { + "condition": { + "id": 1410, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "25148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1426, + "nodeType": "Block", + "src": "25205:519:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1414, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25289:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "25289:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25309:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25289:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1424, + "nodeType": "Block", + "src": "25661:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1421, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1405, + "src": "25686:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1420, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "25679:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25679:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1423, + "nodeType": "ExpressionStatement", + "src": "25679:20:1" + } + ] + }, + "id": 1425, + "nodeType": "IfStatement", + "src": "25285:429:1", + "trueBody": { + "id": 1419, + "nodeType": "Block", + "src": "25312:343:1", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "25496:145:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "25518:40:1", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25547:10:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "25541:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "25541:17:1" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "25522:15:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25590:2:1", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25594:10:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25586:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "25586:19:1" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "25607:15:1" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "25579:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "25579:44:1" + }, + "nodeType": "YulExpressionStatement", + "src": "25579:44:1" + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "id": 1418, + "nodeType": "InlineAssembly", + "src": "25487:154:1" + } + ] + } + } + ] + }, + "id": 1427, + "nodeType": "IfStatement", + "src": "25144:580:1", + "trueBody": { + "id": 1413, + "nodeType": "Block", + "src": "25157:42:1", + "statements": [ + { + "expression": { + "id": 1411, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25178:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1409, + "id": 1412, + "nodeType": "Return", + "src": "25171:17:1" + } + ] + } + } + ] + }, + "id": 1429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1401, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25032:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1400, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "25032:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1403, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25046:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1402, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25046:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1405, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25071:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1404, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "25071:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "25031:67:1" + }, + "returnParameters": { + "id": 1409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1408, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25120:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1407, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25120:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "25119:14:1" + }, + "scope": 1430, + "src": "25005:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3499, + "src": "18048:7684:1" + }, + { + "id": 1431, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "25791:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1432, + "nodeType": "StructuredDocumentation", + "src": "25824:686:1", + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "fullyImplemented": true, + "id": 1921, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableSet.Set", + "id": 1440, + "members": [ + { + "constant": false, + "id": 1435, + "mutability": "mutable", + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27033:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1433, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27033:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1434, + "nodeType": "ArrayTypeName", + "src": "27033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1439, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27184:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1438, + "keyType": { + "id": 1436, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "27184:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "26979:249:1", + "visibility": "public" + }, + { + "body": { + "id": 1480, + "nodeType": "Block", + "src": "27467:335:1", + "statements": [ + { + "condition": { + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "27481:22:1", + "subExpression": { + "arguments": [ + { + "id": 1451, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27492:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + { + "id": 1452, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27497:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1450, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "27482:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27482:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1478, + "nodeType": "Block", + "src": "27759:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27780:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1449, + "id": 1477, + "nodeType": "Return", + "src": "27773:12:1" + } + ] + }, + "id": 1479, + "nodeType": "IfStatement", + "src": "27477:319:1", + "trueBody": { + "id": 1475, + "nodeType": "Block", + "src": "27505:248:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1460, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27536:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "expression": { + "id": 1455, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1458, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27519:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "27519:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 1461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27519:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1462, + "nodeType": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "expression": { + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1463, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27677:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "27677:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1467, + "indexExpression": { + "id": 1465, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27690:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "27677:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1468, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27699:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1469, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27699:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "27699:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27677:40:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1472, + "nodeType": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27738:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1449, + "id": 1474, + "nodeType": "Return", + "src": "27731:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1441, + "nodeType": "StructuredDocumentation", + "src": "27234:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1481, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27412:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1442, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27412:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1445, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27429:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1444, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27411:32:1" + }, + "returnParameters": { + "id": 1449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1447, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "27461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "27460:6:1" + }, + "scope": 1921, + "src": "27398:404:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1560, + "nodeType": "Block", + "src": "28042:1440:1", + "statements": [ + { + "assignments": [ + 1492 + ], + "declarations": [ + { + "constant": false, + "id": 1492, + "mutability": "mutable", + "name": "valueIndex", + "nodeType": "VariableDeclaration", + "scope": 1560, + "src": "28152:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28152:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1497, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1493, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28173:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1494, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "28173:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1496, + "indexExpression": { + "id": 1495, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "28186:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28173:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1498, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28207:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28221:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28207:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1558, + "nodeType": "Block", + "src": "29439:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29460:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1490, + "id": 1557, + "nodeType": "Return", + "src": "29453:12:1" + } + ] + }, + "id": 1559, + "nodeType": "IfStatement", + "src": "28203:1273:1", + "trueBody": { + "id": 1555, + "nodeType": "Block", + "src": "28224:1209:1", + "statements": [ + { + "assignments": [ + 1502 + ], + "declarations": [ + { + "constant": false, + "id": 1502, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28564:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28564:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1506, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1503, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28588:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28588:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "assignments": [ + 1508 + ], + "declarations": [ + { + "constant": false, + "id": 1508, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28616:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28616:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1514, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1509, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28636:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28636:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "28636:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28657:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28636:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "assignments": [ + 1516 + ], + "declarations": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "lastvalue", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28898:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1515, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28898:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1521, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1517, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28918:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1520, + "indexExpression": { + "id": 1519, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "28930:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28918:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "expression": { + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1522, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29032:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1525, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29032:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1526, + "indexExpression": { + "id": 1524, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29044:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29032:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1527, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29061:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "29032:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1529, + "nodeType": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "expression": { + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1530, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29136:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1533, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29136:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1534, + "indexExpression": { + "id": 1532, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29149:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29136:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1535, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29162:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29178:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "29162:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29136:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1539, + "nodeType": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 1540, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29285:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "29285:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29285:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1546, + "nodeType": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "expression": { + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "29370:26:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 1547, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29377:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29377:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1550, + "indexExpression": { + "id": 1549, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "29390:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29377:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1552, + "nodeType": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29418:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1490, + "id": 1554, + "nodeType": "Return", + "src": "29411:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1482, + "nodeType": "StructuredDocumentation", + "src": "27808:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1561, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "27987:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1483, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27987:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1486, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28004:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1485, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27986:32:1" + }, + "returnParameters": { + "id": 1490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28036:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1488, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "28036:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "28035:6:1" + }, + "scope": 1921, + "src": "27970:1512:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1578, + "nodeType": "Block", + "src": "29642:48:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 1571, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "29659:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29659:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1574, + "indexExpression": { + "id": 1573, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "29672:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29659:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29682:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "29659:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1570, + "id": 1577, + "nodeType": "Return", + "src": "29652:31:1" + } + ] + }, + "documentation": { + "id": 1562, + "nodeType": "StructuredDocumentation", + "src": "29488:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1579, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1564, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29582:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1563, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29582:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29599:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1565, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "29599:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "29581:32:1" + }, + "returnParameters": { + "id": 1570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29636:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "29636:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "29635:6:1" + }, + "scope": 1921, + "src": "29563:127:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1591, + "nodeType": "Block", + "src": "29836:42:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 1587, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1582, + "src": "29853:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1588, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29853:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "29853:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1586, + "id": 1590, + "nodeType": "Return", + "src": "29846:25:1" + } + ] + }, + "documentation": { + "id": 1580, + "nodeType": "StructuredDocumentation", + "src": "29696:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1582, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29788:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1581, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29788:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "src": "29787:17:1" + }, + "returnParameters": { + "id": 1586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1585, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29827:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29826:9:1" + }, + "scope": 1921, + "src": "29771:107:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1616, + "nodeType": "Block", + "src": "30286:125:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1603, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30304:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30304:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "30304:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1606, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30325:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30304:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30332:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + }, + "value": "EnumerableSet: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "id": 1602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "30296:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30296:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1610, + "nodeType": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 1611, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30386:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30386:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1614, + "indexExpression": { + "id": 1613, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30398:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30386:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1601, + "id": 1615, + "nodeType": "Return", + "src": "30379:25:1" + } + ] + }, + "documentation": { + "id": 1593, + "nodeType": "StructuredDocumentation", + "src": "29883:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1617, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1595, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30223:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1594, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30223:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30240:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30240:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30222:32:1" + }, + "returnParameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1600, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30277:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1599, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30276:9:1" + }, + "scope": 1921, + "src": "30210:201:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableSet.Bytes32Set", + "id": 1620, + "members": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "30464:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1618, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30464:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "30436:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1636, + "nodeType": "Block", + "src": "30727:47:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1631, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "30749:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "30749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1625, + "src": "30761:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1630, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "30744:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30744:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1629, + "id": 1635, + "nodeType": "Return", + "src": "30737:30:1" + } + ] + }, + "documentation": { + "id": 1621, + "nodeType": "StructuredDocumentation", + "src": "30487:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30664:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1622, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30664:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30688:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1624, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30688:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30663:39:1" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30721:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "30721:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "30720:6:1" + }, + "scope": 1921, + "src": "30651:123:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1653, + "nodeType": "Block", + "src": "31021:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1648, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "31046:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31046:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1650, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "31058:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1647, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "31038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31038:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1646, + "id": 1652, + "nodeType": "Return", + "src": "31031:33:1" + } + ] + }, + "documentation": { + "id": 1638, + "nodeType": "StructuredDocumentation", + "src": "30780:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1654, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30958:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1639, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30958:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30982:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1641, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30982:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30957:39:1" + }, + "returnParameters": { + "id": 1646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1645, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "31015:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31015:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31014:6:1" + }, + "scope": 1921, + "src": "30942:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1670, + "nodeType": "Block", + "src": "31238:52:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1665, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1657, + "src": "31265:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31265:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1667, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1659, + "src": "31277:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1664, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "31255:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31255:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1663, + "id": 1669, + "nodeType": "Return", + "src": "31248:35:1" + } + ] + }, + "documentation": { + "id": 1655, + "nodeType": "StructuredDocumentation", + "src": "31077:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1671, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1657, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31170:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1656, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31170:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31194:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1658, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31194:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31169:39:1" + }, + "returnParameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1662, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31232:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1661, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31232:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31231:6:1" + }, + "scope": 1921, + "src": "31152:138:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "31443:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1680, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1674, + "src": "31468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1681, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31468:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1679, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "31460:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31460:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1678, + "id": 1683, + "nodeType": "Return", + "src": "31453:26:1" + } + ] + }, + "documentation": { + "id": 1672, + "nodeType": "StructuredDocumentation", + "src": "31296:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1685, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1674, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31387:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1673, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + } + ], + "src": "31386:24:1" + }, + "returnParameters": { + "id": 1678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31434:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31434:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31433:9:1" + }, + "scope": 1921, + "src": "31371:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1701, + "nodeType": "Block", + "src": "31901:46:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1696, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1688, + "src": "31922:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1697, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31922:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1698, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "31934:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1695, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "31918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31918:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1694, + "id": 1700, + "nodeType": "Return", + "src": "31911:29:1" + } + ] + }, + "documentation": { + "id": 1686, + "nodeType": "StructuredDocumentation", + "src": "31491:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1688, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31830:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1687, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31830:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1690, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31854:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31854:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31829:39:1" + }, + "returnParameters": { + "id": 1694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31892:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1692, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31892:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31891:9:1" + }, + "scope": 1921, + "src": "31818:129:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.AddressSet", + "id": 1705, + "members": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1705, + "src": "32000:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1703, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "32000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "31972:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1730, + "nodeType": "Block", + "src": "32263:74:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1716, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1708, + "src": "32285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32285:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "32321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32313:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1722, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32313:7:1", + "typeDescriptions": {} + } + }, + "id": 1725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32313:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32305:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1720, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32305:7:1", + "typeDescriptions": {} + } + }, + "id": 1726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32305:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1718, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32297:7:1", + "typeDescriptions": {} + } + }, + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32297:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1715, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "32280:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32280:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1714, + "id": 1729, + "nodeType": "Return", + "src": "32273:57:1" + } + ] + }, + "documentation": { + "id": 1706, + "nodeType": "StructuredDocumentation", + "src": "32023:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1731, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1708, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32200:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1707, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32200:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32224:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32224:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32199:39:1" + }, + "returnParameters": { + "id": 1714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1713, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32257:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1712, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32257:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32256:6:1" + }, + "scope": 1921, + "src": "32187:150:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1756, + "nodeType": "Block", + "src": "32584:77:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1742, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "32609:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1743, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32609:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1750, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "32645:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32637:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1748, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32637:7:1", + "typeDescriptions": {} + } + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32637:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32629:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32629:7:1", + "typeDescriptions": {} + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32629:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32621:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1744, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32621:7:1", + "typeDescriptions": {} + } + }, + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32621:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1741, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "32601:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32601:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1740, + "id": 1755, + "nodeType": "Return", + "src": "32594:60:1" + } + ] + }, + "documentation": { + "id": 1732, + "nodeType": "StructuredDocumentation", + "src": "32343:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1757, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1734, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32521:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1733, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32521:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1736, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32545:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32545:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32520:39:1" + }, + "returnParameters": { + "id": 1740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1739, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32578:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1738, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32578:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32577:6:1" + }, + "scope": 1921, + "src": "32505:156:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1782, + "nodeType": "Block", + "src": "32828:79:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1768, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1760, + "src": "32855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1776, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1762, + "src": "32891:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1774, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32883:7:1", + "typeDescriptions": {} + } + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32883:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32875:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32875:7:1", + "typeDescriptions": {} + } + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32875:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1770, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32867:7:1", + "typeDescriptions": {} + } + }, + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32867:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1767, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "32845:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32845:55:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1766, + "id": 1781, + "nodeType": "Return", + "src": "32838:62:1" + } + ] + }, + "documentation": { + "id": 1758, + "nodeType": "StructuredDocumentation", + "src": "32667:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1783, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1760, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32760:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1759, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32760:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1762, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32784:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32784:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32759:39:1" + }, + "returnParameters": { + "id": 1766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1765, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32822:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1764, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32822:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32821:6:1" + }, + "scope": 1921, + "src": "32742:165:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1796, + "nodeType": "Block", + "src": "33060:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1792, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1786, + "src": "33085:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33085:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1791, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "33077:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33077:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1790, + "id": 1795, + "nodeType": "Return", + "src": "33070:26:1" + } + ] + }, + "documentation": { + "id": 1784, + "nodeType": "StructuredDocumentation", + "src": "32913:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1797, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1786, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33004:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1785, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33004:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + } + ], + "src": "33003:24:1" + }, + "returnParameters": { + "id": 1790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1789, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33050:9:1" + }, + "scope": 1921, + "src": "32988:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1822, + "nodeType": "Block", + "src": "33518:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1814, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "33563:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33563:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1816, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "33575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1813, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "33559:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33559:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33551:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33551:7:1", + "typeDescriptions": {} + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33551:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33543:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1809, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "33543:7:1", + "typeDescriptions": {} + } + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33543:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33535:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33535:7:1", + "typeDescriptions": {} + } + }, + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33535:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 1806, + "id": 1821, + "nodeType": "Return", + "src": "33528:56:1" + } + ] + }, + "documentation": { + "id": 1798, + "nodeType": "StructuredDocumentation", + "src": "33108:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1823, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1800, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33447:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1799, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33447:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1802, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33471:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33471:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33446:39:1" + }, + "returnParameters": { + "id": 1806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33509:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33509:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "33508:9:1" + }, + "scope": 1921, + "src": "33435:156:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.UintSet", + "id": 1826, + "members": [ + { + "constant": false, + "id": 1825, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1826, + "src": "33639:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1824, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "33639:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "UintSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "33614:42:1", + "visibility": "public" + }, + { + "body": { + "id": 1845, + "nodeType": "Block", + "src": "33899:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1837, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1829, + "src": "33921:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "33921:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1841, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "33941:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33933:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1839, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "33933:7:1", + "typeDescriptions": {} + } + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33933:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1836, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "33916:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33916:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1835, + "id": 1844, + "nodeType": "Return", + "src": "33909:39:1" + } + ] + }, + "documentation": { + "id": 1827, + "nodeType": "StructuredDocumentation", + "src": "33662:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1846, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1829, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33839:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1828, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "33839:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1831, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33860:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33860:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33838:36:1" + }, + "returnParameters": { + "id": 1835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1834, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33893:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1833, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "33893:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "33892:6:1" + }, + "scope": 1921, + "src": "33826:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1865, + "nodeType": "Block", + "src": "34199:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1857, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1849, + "src": "34224:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34224:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1861, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "34244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34236:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1859, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34236:7:1", + "typeDescriptions": {} + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34236:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1856, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "34216:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34216:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1855, + "id": 1864, + "nodeType": "Return", + "src": "34209:42:1" + } + ] + }, + "documentation": { + "id": 1847, + "nodeType": "StructuredDocumentation", + "src": "33961:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1849, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34139:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1848, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34139:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1851, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34160:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34138:36:1" + }, + "returnParameters": { + "id": 1855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1854, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34193:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1853, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34193:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34192:6:1" + }, + "scope": 1921, + "src": "34123:135:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1885, + "nodeType": "Block", + "src": "34422:61:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1877, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1869, + "src": "34449:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34449:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1881, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "34469:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1879, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34461:7:1", + "typeDescriptions": {} + } + }, + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34461:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1876, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "34439:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34439:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1875, + "id": 1884, + "nodeType": "Return", + "src": "34432:44:1" + } + ] + }, + "documentation": { + "id": 1867, + "nodeType": "StructuredDocumentation", + "src": "34264:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1886, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1869, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34357:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1868, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34378:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34378:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34356:36:1" + }, + "returnParameters": { + "id": 1875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1874, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34416:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1873, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34416:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34415:6:1" + }, + "scope": 1921, + "src": "34339:144:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1899, + "nodeType": "Block", + "src": "34633:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1895, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1889, + "src": "34658:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34658:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1894, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "34650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34650:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1893, + "id": 1898, + "nodeType": "Return", + "src": "34643:26:1" + } + ] + }, + "documentation": { + "id": 1887, + "nodeType": "StructuredDocumentation", + "src": "34489:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1900, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1889, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34580:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1888, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + } + ], + "src": "34579:21:1" + }, + "returnParameters": { + "id": 1893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34624:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34623:9:1" + }, + "scope": 1921, + "src": "34564:112:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1919, + "nodeType": "Block", + "src": "35088:55:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1913, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "35117:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "35117:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1915, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1905, + "src": "35129:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1912, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "35113:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35113:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "35105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35105:7:1", + "typeDescriptions": {} + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35105:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1909, + "id": 1918, + "nodeType": "Return", + "src": "35098:38:1" + } + ] + }, + "documentation": { + "id": 1901, + "nodeType": "StructuredDocumentation", + "src": "34681:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1920, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35020:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1902, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "35020:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1905, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35041:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35041:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35019:36:1" + }, + "returnParameters": { + "id": 1909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1908, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35079:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1907, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35079:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35078:9:1" + }, + "scope": 1921, + "src": "35008:135:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "26511:8634:1" + }, + { + "id": 1922, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "35204:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1923, + "nodeType": "StructuredDocumentation", + "src": "35237:705:1", + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "fullyImplemented": true, + "id": 2480, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableMap.MapEntry", + "id": 1928, + "members": [ + { + "constant": false, + "id": 1925, + "mutability": "mutable", + "name": "_key", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36455:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1924, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1927, + "mutability": "mutable", + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36477:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1926, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36477:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "MapEntry", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36429:69:1", + "visibility": "public" + }, + { + "canonicalName": "EnumerableMap.Map", + "id": 1936, + "members": [ + { + "constant": false, + "id": 1931, + "mutability": "mutable", + "name": "_entries", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36567:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + }, + "typeName": { + "baseType": { + "id": 1929, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "36567:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "id": 1930, + "nodeType": "ArrayTypeName", + "src": "36567:10:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1935, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36736:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1934, + "keyType": { + "id": 1932, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "36736:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "36756:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Map", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36504:276:1", + "visibility": "public" + }, + { + "body": { + "id": 1997, + "nodeType": "Block", + "src": "37089:596:1", + "statements": [ + { + "assignments": [ + 1949 + ], + "declarations": [ + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 1997, + "src": "37197:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "37197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1954, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1950, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1953, + "indexExpression": { + "id": 1952, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37229:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37216:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1955, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37248:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37260:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "37248:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1995, + "nodeType": "Block", + "src": "37587:92:1", + "statements": [ + { + "expression": { + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 1982, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37601:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1987, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37601:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1988, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1984, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37614:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37625:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "37614:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37601:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 1989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "37601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1990, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37637:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "37601:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1992, + "nodeType": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37663:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1947, + "id": 1994, + "nodeType": "Return", + "src": "37656:12:1" + } + ] + }, + "id": 1996, + "nodeType": "IfStatement", + "src": "37244:435:1", + "trueBody": { + "id": 1981, + "nodeType": "Block", + "src": "37263:318:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1964, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37349:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1965, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37362:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1963, + "name": "MapEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1928, + "src": "37332:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_MapEntry_$1928_storage_ptr_$", + "typeString": "type(struct EnumerableMap.MapEntry storage pointer)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "nodeType": "FunctionCall", + "src": "37332:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "expression": { + "expression": { + "id": 1958, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37314:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37314:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "37314:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$1928_storage_$returns$__$", + "typeString": "function (struct EnumerableMap.MapEntry storage ref)" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37314:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1968, + "nodeType": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "expression": { + "id": 1977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1969, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37506:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37506:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1973, + "indexExpression": { + "id": 1971, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "37506:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1974, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37526:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37526:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "37526:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37506:39:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1978, + "nodeType": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37566:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1947, + "id": 1980, + "nodeType": "Return", + "src": "37559:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1937, + "nodeType": "StructuredDocumentation", + "src": "36786:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1998, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37021:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 1938, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37021:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37038:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1940, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1943, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1942, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37020:45:1" + }, + "returnParameters": { + "id": 1947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1946, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37083:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1945, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37083:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37082:6:1" + }, + "scope": 2480, + "src": "37007:678:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2078, + "nodeType": "Block", + "src": "37923:1447:1", + "statements": [ + { + "assignments": [ + 2009 + ], + "declarations": [ + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2078, + "src": "38031:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2014, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2010, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38050:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2011, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "38050:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2013, + "indexExpression": { + "id": 2012, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "38063:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38050:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2015, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38082:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38094:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "38082:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2076, + "nodeType": "Block", + "src": "39327:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39348:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2007, + "id": 2075, + "nodeType": "Return", + "src": "39341:12:1" + } + ] + }, + "id": 2077, + "nodeType": "IfStatement", + "src": "38078:1286:1", + "trueBody": { + "id": 2073, + "nodeType": "Block", + "src": "38097:1224:1", + "statements": [ + { + "assignments": [ + 2019 + ], + "declarations": [ + { + "constant": false, + "id": 2019, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38438:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2023, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2020, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38462:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38473:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38462:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "assignments": [ + 2025 + ], + "declarations": [ + { + "constant": false, + "id": 2025, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38488:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38488:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2031, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2026, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38508:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38508:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "38508:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38530:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38508:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "assignments": [ + 2033 + ], + "declarations": [ + { + "constant": false, + "id": 2033, + "mutability": "mutable", + "name": "lastEntry", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38771:26:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2032, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "38771:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2038, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2034, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38800:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38800:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2037, + "indexExpression": { + "id": 2036, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2025, + "src": "38813:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38800:23:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "expression": { + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2039, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38915:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38915:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2043, + "indexExpression": { + "id": 2041, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "38928:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "38915:27:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2044, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "38945:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "src": "38915:39:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2046, + "nodeType": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2047, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2051, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39020:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2052, + "indexExpression": { + "expression": { + "id": 2049, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "39033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "39033:14:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39020:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2053, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "39051:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39067:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "39051:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39020:48:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 2058, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39174:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2061, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39174:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "39174:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "39174:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2064, + "nodeType": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "expression": { + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "39260:24:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 2065, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39267:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2066, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39267:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2068, + "indexExpression": { + "id": 2067, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "39280:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39267:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2070, + "nodeType": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39306:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2007, + "id": 2072, + "nodeType": "Return", + "src": "39299:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1999, + "nodeType": "StructuredDocumentation", + "src": "37691:157:1", + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2079, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2001, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37870:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2000, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37870:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37887:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2002, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37887:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37869:30:1" + }, + "returnParameters": { + "id": 2007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2006, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37917:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2005, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37917:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37916:6:1" + }, + "scope": 2480, + "src": "37853:1517:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2096, + "nodeType": "Block", + "src": "39526:46:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 2089, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2082, + "src": "39543:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2090, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39543:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2092, + "indexExpression": { + "id": 2091, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2084, + "src": "39556:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "39543:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39564:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "39543:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2088, + "id": 2095, + "nodeType": "Return", + "src": "39536:29:1" + } + ] + }, + "documentation": { + "id": 2080, + "nodeType": "StructuredDocumentation", + "src": "39376:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2082, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39468:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2081, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2084, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39485:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2083, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "39485:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "39467:30:1" + }, + "returnParameters": { + "id": 2088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2087, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2086, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "39520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "39519:6:1" + }, + "scope": 2480, + "src": "39449:123:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2109, + "nodeType": "Block", + "src": "39727:43:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 2105, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "39744:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39744:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "39744:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2104, + "id": 2108, + "nodeType": "Return", + "src": "39737:26:1" + } + ] + }, + "documentation": { + "id": 2098, + "nodeType": "StructuredDocumentation", + "src": "39578:79:1", + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2100, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39679:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2099, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39679:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "src": "39678:17:1" + }, + "returnParameters": { + "id": 2104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2103, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39718:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "39718:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "39717:9:1" + }, + "scope": 2480, + "src": "39662:108:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2144, + "nodeType": "Block", + "src": "40198:189:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2123, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "40216:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2126, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40216:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40245:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + }, + "value": "EnumerableMap: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "id": 2122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "40208:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "40208:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2130, + "nodeType": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "assignments": [ + 2132 + ], + "declarations": [ + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "entry", + "nodeType": "VariableDeclaration", + "scope": 2144, + "src": "40293:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2131, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "40293:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2137, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2133, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40318:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40318:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2136, + "indexExpression": { + "id": 2135, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40331:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40318:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "expression": { + "components": [ + { + "expression": { + "id": 2138, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40355:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2139, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "40355:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 2140, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40367:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40367:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40354:26:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "functionReturnParameters": 2121, + "id": 2143, + "nodeType": "Return", + "src": "40347:33:1" + } + ] + }, + "documentation": { + "id": 2111, + "nodeType": "StructuredDocumentation", + "src": "39775:333:1", + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2145, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2113, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40126:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2112, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40126:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2115, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40143:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40143:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "40125:32:1" + }, + "returnParameters": { + "id": 2121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40180:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40180:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40189:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2119, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40189:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40179:18:1" + }, + "scope": 2480, + "src": "40113:274:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2182, + "nodeType": "Block", + "src": "40613:220:1", + "statements": [ + { + "assignments": [ + 2158 + ], + "declarations": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2182, + "src": "40623:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40623:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2163, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2159, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40642:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "40642:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2162, + "indexExpression": { + "id": 2161, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2150, + "src": "40655:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40642:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2164, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40673:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40685:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "40673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2171, + "nodeType": "IfStatement", + "src": "40669:36:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40696:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40703:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2169, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40695:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2156, + "id": 2170, + "nodeType": "Return", + "src": "40688:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40759:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 2173, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40765:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2174, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40765:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2178, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2175, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40778:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40789:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "40778:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40765:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40765:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2180, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40758:41:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "functionReturnParameters": 2156, + "id": 2181, + "nodeType": "Return", + "src": "40751:48:1" + } + ] + }, + "documentation": { + "id": 2146, + "nodeType": "StructuredDocumentation", + "src": "40393:131:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2183, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2151, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40546:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2147, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40546:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2150, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40563:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2149, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40563:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40545:30:1" + }, + "returnParameters": { + "id": 2156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2153, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40598:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2152, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "40598:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2155, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40604:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2154, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40604:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40597:15:1" + }, + "scope": 2480, + "src": "40529:304:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2215, + "nodeType": "Block", + "src": "41060:232:1", + "statements": [ + { + "assignments": [ + 2194 + ], + "declarations": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2215, + "src": "41070:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41070:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2199, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2195, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41089:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2196, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41089:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2198, + "indexExpression": { + "id": 2197, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2188, + "src": "41102:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41089:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2201, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41124:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41136:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41124:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "id": 2204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41139:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + }, + "value": "EnumerableMap: nonexistent key" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "id": 2200, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41116:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2206, + "nodeType": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2207, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41225:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2208, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41225:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2212, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2209, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41238:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41249:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41238:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41225:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2213, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41225:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2192, + "id": 2214, + "nodeType": "Return", + "src": "41218:40:1" + } + ] + }, + "documentation": { + "id": 2184, + "nodeType": "StructuredDocumentation", + "src": "40839:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2186, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "40999:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2185, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40999:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2188, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41016:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2187, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40998:30:1" + }, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2190, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41050:9:1" + }, + "scope": 2480, + "src": "40985:307:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2250, + "nodeType": "Block", + "src": "41677:212:1", + "statements": [ + { + "assignments": [ + 2229 + ], + "declarations": [ + { + "constant": false, + "id": 2229, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2250, + "src": "41687:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41687:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2234, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2230, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41706:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2231, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41706:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2233, + "indexExpression": { + "id": 2232, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "41719:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41706:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2236, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41741:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41753:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41741:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2239, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2223, + "src": "41756:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2235, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41733:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41733:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2241, + "nodeType": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2242, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41822:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41822:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2247, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2244, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41835:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41846:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41835:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41822:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41822:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2227, + "id": 2249, + "nodeType": "Return", + "src": "41815:40:1" + } + ] + }, + "documentation": { + "id": 2217, + "nodeType": "StructuredDocumentation", + "src": "41298:271:1", + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2251, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2219, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41588:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2218, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41588:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2221, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41605:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2220, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2223, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41618:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2222, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "41618:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "41587:58:1" + }, + "returnParameters": { + "id": 2227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2226, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41668:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2225, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41668:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41667:9:1" + }, + "scope": 2480, + "src": "41574:315:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableMap.UintToAddressMap", + "id": 2254, + "members": [ + { + "constant": false, + "id": 2253, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 2254, + "src": "41954:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2252, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41954:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "name": "UintToAddressMap", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "41920:51:1", + "visibility": "public" + }, + { + "body": { + "id": 2285, + "nodeType": "Block", + "src": "42293:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2267, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "42315:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42315:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2271, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2259, + "src": "42335:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42327:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2269, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42327:7:1", + "typeDescriptions": {} + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42327:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2279, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2261, + "src": "42365:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2277, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "42357:7:1", + "typeDescriptions": {} + } + }, + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42357:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42349:7:1", + "typeDescriptions": {} + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42349:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42341:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42341:7:1", + "typeDescriptions": {} + } + }, + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42341:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2266, + "name": "_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1998, + "src": "42310:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42310:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2265, + "id": 2284, + "nodeType": "Return", + "src": "42303:71:1" + } + ] + }, + "documentation": { + "id": 2255, + "nodeType": "StructuredDocumentation", + "src": "41977:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2286, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2257, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42211:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2256, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42211:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2259, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42241:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2258, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42241:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2261, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42254:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "42254:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "42210:58:1" + }, + "returnParameters": { + "id": 2265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2264, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42287:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2263, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42287:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42286:6:1" + }, + "scope": 2480, + "src": "42198:183:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2305, + "nodeType": "Block", + "src": "42623:57:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2297, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2289, + "src": "42648:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2298, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42648:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2301, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2291, + "src": "42668:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42660:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2299, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42660:7:1", + "typeDescriptions": {} + } + }, + "id": 2302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42660:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2296, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2079, + "src": "42640:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)" + } + }, + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42640:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2295, + "id": 2304, + "nodeType": "Return", + "src": "42633:40:1" + } + ] + }, + "documentation": { + "id": 2287, + "nodeType": "StructuredDocumentation", + "src": "42387:148:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2289, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42556:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2288, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42556:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2291, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42586:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42586:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42555:43:1" + }, + "returnParameters": { + "id": 2295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2294, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42617:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2293, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42617:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42616:6:1" + }, + "scope": 2480, + "src": "42540:140:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2325, + "nodeType": "Block", + "src": "42849:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2317, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2309, + "src": "42876:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42876:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2321, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "42896:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42888:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2319, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42888:7:1", + "typeDescriptions": {} + } + }, + "id": 2322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42888:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2316, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2097, + "src": "42866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42866:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2315, + "id": 2324, + "nodeType": "Return", + "src": "42859:42:1" + } + ] + }, + "documentation": { + "id": 2307, + "nodeType": "StructuredDocumentation", + "src": "42686:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2326, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2309, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42777:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2308, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42777:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2311, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42807:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42807:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42776:43:1" + }, + "returnParameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2314, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42843:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42843:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42842:6:1" + }, + "scope": 2480, + "src": "42759:149:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2339, + "nodeType": "Block", + "src": "43069:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2335, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2329, + "src": "43094:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43094:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "id": 2334, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2110, + "src": "43086:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)" + } + }, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43086:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2333, + "id": 2338, + "nodeType": "Return", + "src": "43079:26:1" + } + ] + }, + "documentation": { + "id": 2327, + "nodeType": "StructuredDocumentation", + "src": "42914:72:1", + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2340, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2329, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43007:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2328, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43007:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + } + ], + "src": "43006:30:1" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43060:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43059:9:1" + }, + "scope": 2480, + "src": "42991:121:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2378, + "nodeType": "Block", + "src": "43538:135:1", + "statements": [ + { + "assignments": [ + 2353, + 2355 + ], + "declarations": [ + { + "constant": false, + "id": 2353, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43549:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2352, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43549:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2355, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43562:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2354, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43562:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2361, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2357, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "43583:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2358, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "id": 2359, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "43595:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2356, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "43579:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)" + } + }, + "id": 2360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43579:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "expression": { + "components": [ + { + "arguments": [ + { + "id": 2364, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "43627:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43619:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43619:7:1", + "typeDescriptions": {} + } + }, + "id": 2365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43619:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2372, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2355, + "src": "43657:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43649:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43649:7:1", + "typeDescriptions": {} + } + }, + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43649:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43641:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2368, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "43641:7:1", + "typeDescriptions": {} + } + }, + "id": 2374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43641:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43633:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43633:7:1", + "typeDescriptions": {} + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43633:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2376, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43618:48:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$", + "typeString": "tuple(uint256,address payable)" + } + }, + "functionReturnParameters": 2351, + "id": 2377, + "nodeType": "Return", + "src": "43611:55:1" + } + ] + }, + "documentation": { + "id": 2341, + "nodeType": "StructuredDocumentation", + "src": "43117:318:1", + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2379, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43452:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2342, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43452:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2345, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43482:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43482:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43451:45:1" + }, + "returnParameters": { + "id": 2351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2348, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43520:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43520:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2350, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43529:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43529:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43519:18:1" + }, + "scope": 2480, + "src": "43440:233:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2417, + "nodeType": "Block", + "src": "43950:142:1", + "statements": [ + { + "assignments": [ + 2392, + 2394 + ], + "declarations": [ + { + "constant": false, + "id": 2392, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43961:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43961:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43975:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2393, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2403, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2396, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "44000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44000:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2400, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2384, + "src": "44020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44012:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2398, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44012:7:1", + "typeDescriptions": {} + } + }, + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44012:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2395, + "name": "_tryGet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2183, + "src": "43992:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)" + } + }, + "id": 2402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43992:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "expression": { + "components": [ + { + "id": 2404, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2392, + "src": "44043:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2411, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "44076:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44068:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44068:7:1", + "typeDescriptions": {} + } + }, + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44068:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2407, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44060:7:1", + "typeDescriptions": {} + } + }, + "id": 2413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44060:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44052:7:1", + "typeDescriptions": {} + } + }, + "id": 2414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44052:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2415, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44042:43:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_payable_$", + "typeString": "tuple(bool,address payable)" + } + }, + "functionReturnParameters": 2390, + "id": 2416, + "nodeType": "Return", + "src": "44035:50:1" + } + ] + }, + "documentation": { + "id": 2380, + "nodeType": "StructuredDocumentation", + "src": "43679:169:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2418, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2382, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43869:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2381, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43869:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2384, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43899:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43868:43:1" + }, + "returnParameters": { + "id": 2390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2387, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43935:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2386, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2389, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43941:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43941:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43934:15:1" + }, + "scope": 2480, + "src": "43853:239:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2446, + "nodeType": "Block", + "src": "44332:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2435, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "44378:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44378:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2439, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2423, + "src": "44398:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44390:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2437, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44390:7:1", + "typeDescriptions": {} + } + }, + "id": 2440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44390:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2434, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "src": "44373:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)" + } + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44373:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44365:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44365:7:1", + "typeDescriptions": {} + } + }, + "id": 2442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44365:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2430, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44357:7:1", + "typeDescriptions": {} + } + }, + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44357:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44349:7:1", + "typeDescriptions": {} + } + }, + "id": 2444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44349:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2427, + "id": 2445, + "nodeType": "Return", + "src": "44342:64:1" + } + ] + }, + "documentation": { + "id": 2419, + "nodeType": "StructuredDocumentation", + "src": "44098:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2447, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2421, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44257:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2420, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44257:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2423, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44287:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44287:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "44256:43:1" + }, + "returnParameters": { + "id": 2427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2426, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44323:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44323:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44322:9:1" + }, + "scope": 2480, + "src": "44244:169:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2478, + "nodeType": "Block", + "src": "44809:95:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2466, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2450, + "src": "44855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2467, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2470, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2452, + "src": "44875:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2468, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44867:7:1", + "typeDescriptions": {} + } + }, + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44867:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 2472, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "44881:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2465, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "src": "44850:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)" + } + }, + "id": 2473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44850:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44842:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44842:7:1", + "typeDescriptions": {} + } + }, + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44842:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44834:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2461, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44834:7:1", + "typeDescriptions": {} + } + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44834:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44826:7:1", + "typeDescriptions": {} + } + }, + "id": 2476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44826:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2458, + "id": 2477, + "nodeType": "Return", + "src": "44819:78:1" + } + ] + }, + "documentation": { + "id": 2448, + "nodeType": "StructuredDocumentation", + "src": "44419:269:1", + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2450, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44706:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2449, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44706:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2452, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44736:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2454, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44749:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2453, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "44749:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "44705:71:1" + }, + "returnParameters": { + "id": 2458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2457, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44799:9:1" + }, + "scope": 2480, + "src": "44693:211:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "35943:8963:1" + }, + { + "id": 2481, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "44959:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2482, + "nodeType": "StructuredDocumentation", + "src": "44992:34:1", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2566, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2564, + "nodeType": "Block", + "src": "45207:654:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2490, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45409:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45418:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45409:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2496, + "nodeType": "IfStatement", + "src": "45405:51:1", + "trueBody": { + "id": 2495, + "nodeType": "Block", + "src": "45421:35:1", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45442:3:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "functionReturnParameters": 2489, + "id": 2494, + "nodeType": "Return", + "src": "45435:10:1" + } + ] + } + }, + { + "assignments": [ + 2498 + ], + "declarations": [ + { + "constant": false, + "id": 2498, + "mutability": "mutable", + "name": "temp", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45465:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2500, + "initialValue": { + "id": 2499, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45480:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "assignments": [ + 2502 + ], + "declarations": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "digits", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45495:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45495:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2503, + "nodeType": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "body": { + "id": 2514, + "nodeType": "Block", + "src": "45537:57:1", + "statements": [ + { + "expression": { + "id": 2508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "45551:8:1", + "subExpression": { + "id": 2507, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45551:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2509, + "nodeType": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "expression": { + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2510, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45581:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45573:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2513, + "nodeType": "ExpressionStatement", + "src": "45573:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2504, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45526:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45534:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45526:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2515, + "nodeType": "WhileStatement", + "src": "45519:75:1" + }, + { + "assignments": [ + 2517 + ], + "declarations": [ + { + "constant": false, + "id": 2517, + "mutability": "mutable", + "name": "buffer", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45603:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2516, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2522, + "initialValue": { + "arguments": [ + { + "id": 2520, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45635:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "45625:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2518, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45629:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45625:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "assignments": [ + 2524 + ], + "declarations": [ + { + "constant": false, + "id": 2524, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45652:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45652:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2528, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2525, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45668:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45677:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "45668:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "expression": { + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2529, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45688:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2530, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45695:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45688:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2532, + "nodeType": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "body": { + "id": 2557, + "nodeType": "Block", + "src": "45728:96:1", + "statements": [ + { + "expression": { + "id": 2551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2536, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45742:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2539, + "indexExpression": { + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "45749:7:1", + "subExpression": { + "id": 2537, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2524, + "src": "45749:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "45742:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3438", + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45773:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2545, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45778:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3130", + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45785:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45778:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45773:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45767:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2542, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "45767:5:1", + "typeDescriptions": {} + } + }, + "id": 2549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45767:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 2540, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "45760:6:1", + "typeDescriptions": {} + } + }, + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45760:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "45742:47:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2552, + "nodeType": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "expression": { + "id": 2555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2553, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45803:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45811:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45803:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2556, + "nodeType": "ExpressionStatement", + "src": "45803:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2533, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45717:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45725:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45717:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2558, + "nodeType": "WhileStatement", + "src": "45710:114:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2561, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45847:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45840:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2559, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45840:6:1", + "typeDescriptions": {} + } + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45840:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2489, + "id": 2563, + "nodeType": "Return", + "src": "45833:21:1" + } + ] + }, + "documentation": { + "id": 2483, + "nodeType": "StructuredDocumentation", + "src": "45049:82:1", + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2485, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45154:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45154:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "45153:15:1" + }, + "returnParameters": { + "id": 2489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2488, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45192:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2487, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45192:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "45191:15:1" + }, + "scope": 2566, + "src": "45136:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "45027:836:1" + }, + { + "id": 2567, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "45922:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2569, + "name": "Context", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 530, + "src": "46099:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 2570, + "nodeType": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "baseName": { + "id": 2571, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 781, + "src": "46108:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$781", + "typeString": "contract ERC165" + } + }, + "id": 2572, + "nodeType": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "baseName": { + "id": 2573, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "46116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 2574, + "nodeType": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "baseName": { + "id": 2575, + "name": "IERC721Metadata", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 680, + "src": "46125:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Metadata_$680", + "typeString": "contract IERC721Metadata" + } + }, + "id": 2576, + "nodeType": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "baseName": { + "id": 2577, + "name": "IERC721Enumerable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 709, + "src": "46142:17:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Enumerable_$709", + "typeString": "contract IERC721Enumerable" + } + }, + "id": 2578, + "nodeType": "InheritanceSpecifier", + "src": "46142:17:1" + } + ], + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "documentation": { + "id": 2568, + "nodeType": "StructuredDocumentation", + "src": "45955:124:1", + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": true, + "id": 3498, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2581, + "libraryName": { + "id": 2579, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1135, + "src": "46172:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$1135", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "46166:27:1", + "typeName": { + "id": 2580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46185:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 2584, + "libraryName": { + "id": 2582, + "name": "Address", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1430, + "src": "46204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + }, + "nodeType": "UsingForDirective", + "src": "46198:26:1", + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46216:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 2587, + "libraryName": { + "id": 2585, + "name": "EnumerableSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1921, + "src": "46235:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableSet_$1921", + "typeString": "library EnumerableSet" + } + }, + "nodeType": "UsingForDirective", + "src": "46229:46:1", + "typeName": { + "id": 2586, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46253:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + { + "id": 2590, + "libraryName": { + "id": 2588, + "name": "EnumerableMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2480, + "src": "46286:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableMap_$2480", + "typeString": "library EnumerableMap" + } + }, + "nodeType": "UsingForDirective", + "src": "46280:55:1", + "typeName": { + "id": 2589, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46304:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + } + }, + { + "id": 2593, + "libraryName": { + "id": 2591, + "name": "Strings", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2566, + "src": "46346:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Strings_$2566", + "typeString": "library Strings" + } + }, + "nodeType": "UsingForDirective", + "src": "46340:26:1", + "typeName": { + "id": 2592, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46358:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 2596, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46544:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2594, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "46544:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783135306237613032", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46587:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_353073666_by_1", + "typeString": "int_const 353073666" + }, + "value": "0x150b7a02" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2600, + "mutability": "mutable", + "name": "_holderTokens", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46681:64:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "typeName": { + "id": 2599, + "keyType": { + "id": 2597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "46681:42:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "valueType": { + "id": 2598, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46701:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2602, + "mutability": "mutable", + "name": "_tokenOwners", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46809:51:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2601, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46809:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2606, + "mutability": "mutable", + "name": "_tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46916:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 2605, + "keyType": { + "id": 2603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46925:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "46916:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 2604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46936:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2612, + "mutability": "mutable", + "name": "_operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47023:73:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 2611, + "keyType": { + "id": 2607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47023:46:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 2610, + "keyType": { + "id": 2608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47043:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2609, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "47063:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2614, + "mutability": "mutable", + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47121:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2613, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47121:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2616, + "mutability": "mutable", + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47168:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47168:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2620, + "mutability": "mutable", + "name": "_tokenURIs", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47236:46:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 2619, + "keyType": { + "id": 2617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "47245:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "47236:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 2618, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47256:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2622, + "mutability": "mutable", + "name": "_baseURI", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47305:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2621, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47305:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2625, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48204:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2623, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48204:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783830616335386364", + "id": 2624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48251:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2628, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48527:66:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2626, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48527:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783562356531333966", + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1532892063_by_1", + "typeString": "int_const 1532892063" + }, + "value": "0x5b5e139f" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2631, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48898:68:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2629, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783738306539643633", + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48956:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2014223715_by_1", + "typeString": "int_const 2014223715" + }, + "value": "0x780e9d63" + }, + "visibility": "private" + }, + { + "body": { + "id": 2659, + "nodeType": "Block", + "src": "49143:305:1", + "statements": [ + { + "expression": { + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2639, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "49153:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2640, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "49161:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49153:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2642, + "nodeType": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "expression": { + "id": 2645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2643, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "49176:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2644, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2636, + "src": "49186:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49176:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2646, + "nodeType": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2648, + "name": "_INTERFACE_ID_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "49300:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2647, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49281:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49281:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2650, + "nodeType": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2652, + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "49350:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2651, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49331:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49331:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2654, + "nodeType": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2656, + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2631, + "src": "49409:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2655, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49390:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49390:51:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2658, + "nodeType": "ExpressionStatement", + "src": "49390:51:1" + } + ] + }, + "documentation": { + "id": 2632, + "nodeType": "StructuredDocumentation", + "src": "48973:108:1", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2660, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2634, + "mutability": "mutable", + "name": "name_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49099:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2633, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49099:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2636, + "mutability": "mutable", + "name": "symbol_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49120:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2635, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49120:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "49098:44:1" + }, + "returnParameters": { + "id": 2638, + "nodeType": "ParameterList", + "parameters": [], + "src": "49143:0:1" + }, + "scope": 3498, + "src": "49086:362:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 580 + ], + "body": { + "id": 2685, + "nodeType": "Block", + "src": "49588:137:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2670, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49606:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49623:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "49615:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49615:7:1", + "typeDescriptions": {} + } + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49615:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "49606:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49627:44:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + }, + "value": "ERC721: balance query for the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "id": 2669, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "49598:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49598:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2678, + "nodeType": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 2679, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "49689:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2681, + "indexExpression": { + "id": 2680, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49703:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "49689:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2682, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "49689:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + } + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49689:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2668, + "id": 2684, + "nodeType": "Return", + "src": "49682:36:1" + } + ] + }, + "documentation": { + "id": 2661, + "nodeType": "StructuredDocumentation", + "src": "49454:48:1", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 2686, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2665, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49561:8:1" + }, + "parameters": { + "id": 2664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2663, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49526:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49526:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49525:15:1" + }, + "returnParameters": { + "id": 2668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2667, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49579:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49579:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49578:9:1" + }, + "scope": 3498, + "src": "49507:218:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 588 + ], + "body": { + "id": 2701, + "nodeType": "Block", + "src": "49863:94:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2697, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "49897:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49906:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + }, + "value": "ERC721: owner query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "expression": { + "id": 2695, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "49880:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2696, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 2479, + "src": "49880:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + } + }, + "id": 2699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49880:70:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2694, + "id": 2700, + "nodeType": "Return", + "src": "49873:77:1" + } + ] + }, + "documentation": { + "id": 2687, + "nodeType": "StructuredDocumentation", + "src": "49731:46:1", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 2702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2691, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49836:8:1" + }, + "parameters": { + "id": 2690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2689, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49799:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49799:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49798:17:1" + }, + "returnParameters": { + "id": 2694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49854:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49854:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49853:9:1" + }, + "scope": 3498, + "src": "49782:175:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 665 + ], + "body": { + "id": 2711, + "nodeType": "Block", + "src": "50088:29:1", + "statements": [ + { + "expression": { + "id": 2709, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "50105:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2708, + "id": 2710, + "nodeType": "Return", + "src": "50098:12:1" + } + ] + }, + "documentation": { + "id": 2703, + "nodeType": "StructuredDocumentation", + "src": "49963:51:1", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 2712, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2705, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50055:8:1" + }, + "parameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [], + "src": "50032:2:1" + }, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2707, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2712, + "src": "50073:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2706, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50073:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50072:15:1" + }, + "scope": 3498, + "src": "50019:98:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 671 + ], + "body": { + "id": 2721, + "nodeType": "Block", + "src": "50252:31:1", + "statements": [ + { + "expression": { + "id": 2719, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "50269:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2718, + "id": 2720, + "nodeType": "Return", + "src": "50262:14:1" + } + ] + }, + "documentation": { + "id": 2713, + "nodeType": "StructuredDocumentation", + "src": "50123:53:1", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 2722, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2715, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50219:8:1" + }, + "parameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [], + "src": "50196:2:1" + }, + "returnParameters": { + "id": 2718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2717, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2722, + "src": "50237:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2716, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50237:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50236:15:1" + }, + "scope": 3498, + "src": "50181:102:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 679 + ], + "body": { + "id": 2789, + "nodeType": "Block", + "src": "50437:688:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2733, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50463:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2732, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "50455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50455:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50473:49:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + }, + "value": "ERC721Metadata: URI query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "id": 2731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "50447:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50447:76:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "assignments": [ + 2739 + ], + "declarations": [ + { + "constant": false, + "id": 2739, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50534:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50534:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2743, + "initialValue": { + "baseExpression": { + "id": 2740, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "50560:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 2742, + "indexExpression": { + "id": 2741, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50571:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "50560:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "assignments": [ + 2745 + ], + "declarations": [ + { + "constant": false, + "id": 2745, + "mutability": "mutable", + "name": "base", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50589:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50589:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2748, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2746, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2799, + "src": "50610:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 2747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50610:9:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2751, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50698:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50692:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50692:5:1", + "typeDescriptions": {} + } + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50692:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50692:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50714:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50692:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2759, + "nodeType": "IfStatement", + "src": "50688:70:1", + "trueBody": { + "id": 2758, + "nodeType": "Block", + "src": "50717:41:1", + "statements": [ + { + "expression": { + "id": 2756, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50738:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2757, + "nodeType": "Return", + "src": "50731:16:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2762, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50860:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2760, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50860:5:1", + "typeDescriptions": {} + } + }, + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50860:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50860:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50886:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50860:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2777, + "nodeType": "IfStatement", + "src": "50856:106:1", + "trueBody": { + "id": 2776, + "nodeType": "Block", + "src": "50889:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2771, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50934:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 2772, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50940:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2769, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "50917:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "50917:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50917:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50910:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2767, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50910:6:1", + "typeDescriptions": {} + } + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50910:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2775, + "nodeType": "Return", + "src": "50903:48:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2782, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "51092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2783, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "51098:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2565, + "src": "51098:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 2785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51098:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2780, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "51075:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "51075:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51075:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "51068:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2778, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51068:6:1", + "typeDescriptions": {} + } + }, + "id": 2787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51068:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2788, + "nodeType": "Return", + "src": "51061:57:1" + } + ] + }, + "documentation": { + "id": 2723, + "nodeType": "StructuredDocumentation", + "src": "50289:55:1", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 2790, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50404:8:1" + }, + "parameters": { + "id": 2726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2725, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50367:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50367:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "50366:17:1" + }, + "returnParameters": { + "id": 2730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50422:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2728, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50422:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50421:15:1" + }, + "scope": 3498, + "src": "50349:776:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2798, + "nodeType": "Block", + "src": "51420:32:1", + "statements": [ + { + "expression": { + "id": 2796, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "51437:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2795, + "id": 2797, + "nodeType": "Return", + "src": "51430:15:1" + } + ] + }, + "documentation": { + "id": 2791, + "nodeType": "StructuredDocumentation", + "src": "51131:221:1", + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "functionSelector": "6c0360eb", + "id": 2799, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "baseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2792, + "nodeType": "ParameterList", + "parameters": [], + "src": "51373:2:1" + }, + "returnParameters": { + "id": 2795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2799, + "src": "51405:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2793, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51405:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "51404:15:1" + }, + "scope": 3498, + "src": "51357:95:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 700 + ], + "body": { + "id": 2817, + "nodeType": "Block", + "src": "51637:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2814, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "51678:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 2810, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "51654:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2812, + "indexExpression": { + "id": 2811, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2802, + "src": "51668:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "51654:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2813, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 1920, + "src": "51654:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51654:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2809, + "id": 2816, + "nodeType": "Return", + "src": "51647:37:1" + } + ] + }, + "documentation": { + "id": 2800, + "nodeType": "StructuredDocumentation", + "src": "51458:68:1", + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "functionSelector": "2f745c59", + "id": 2818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2806, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51610:8:1" + }, + "parameters": { + "id": 2805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2802, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51560:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "51560:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2804, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51575:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2803, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51575:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51559:30:1" + }, + "returnParameters": { + "id": 2809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2808, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51628:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51628:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51627:9:1" + }, + "scope": 3498, + "src": "51531:160:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 690 + ], + "body": { + "id": 2829, + "nodeType": "Block", + "src": "51832:138:1", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2825, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "51942:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 2340, + "src": "51942:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51942:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2824, + "id": 2828, + "nodeType": "Return", + "src": "51935:28:1" + } + ] + }, + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "51697:60:1", + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 2830, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2821, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51805:8:1" + }, + "parameters": { + "id": 2820, + "nodeType": "ParameterList", + "parameters": [], + "src": "51782:2:1" + }, + "returnParameters": { + "id": 2824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2823, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2830, + "src": "51823:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51823:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51822:9:1" + }, + "scope": 3498, + "src": "51762:208:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 708 + ], + "body": { + "id": 2848, + "nodeType": "Block", + "src": "52126:85:1", + "statements": [ + { + "assignments": [ + 2840, + null + ], + "declarations": [ + { + "constant": false, + "id": 2840, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2848, + "src": "52137:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2839, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52137:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2845, + "initialValue": { + "arguments": [ + { + "id": 2843, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2833, + "src": "52174:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2841, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "52158:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 2379, + "src": "52158:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + } + }, + "id": 2844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52158:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$", + "typeString": "tuple(uint256,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "expression": { + "id": 2846, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2840, + "src": "52197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2838, + "id": 2847, + "nodeType": "Return", + "src": "52190:14:1" + } + ] + }, + "documentation": { + "id": 2831, + "nodeType": "StructuredDocumentation", + "src": "51976:61:1", + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "functionSelector": "4f6ccce7", + "id": 2849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2835, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52099:8:1" + }, + "parameters": { + "id": 2834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2833, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52064:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52064:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52063:15:1" + }, + "returnParameters": { + "id": 2838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2837, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52117:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52116:9:1" + }, + "scope": 3498, + "src": "52042:169:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 616 + ], + "body": { + "id": 2892, + "nodeType": "Block", + "src": "52338:325:1", + "statements": [ + { + "assignments": [ + 2859 + ], + "declarations": [ + { + "constant": false, + "id": 2859, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2892, + "src": "52348:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52348:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2864, + "initialValue": { + "arguments": [ + { + "id": 2862, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52379:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2860, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52364:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "52364:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52364:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2866, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52405:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2867, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52411:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52405:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "id": 2869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52418:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + }, + "value": "ERC721: approval to current owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "id": 2865, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52397:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52397:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2871, + "nodeType": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2873, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52473:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52473:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2875, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52489:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52473:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 2879, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52522:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2880, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52529:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52529:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 2877, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52498:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "52498:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52498:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "52473:69:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52556:58:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + }, + "value": "ERC721: approve caller is not owner nor approved for all" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "id": 2872, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52465:159:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2886, + "nodeType": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2888, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52644:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2889, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52648:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2887, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "52635:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52635:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2891, + "nodeType": "ExpressionStatement", + "src": "52635:21:1" + } + ] + }, + "documentation": { + "id": 2850, + "nodeType": "StructuredDocumentation", + "src": "52217:46:1", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 2893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2856, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52329:8:1" + }, + "parameters": { + "id": 2855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2852, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52285:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52285:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2854, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52297:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52284:29:1" + }, + "returnParameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [], + "src": "52338:0:1" + }, + "scope": 3498, + "src": "52268:395:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 624 + ], + "body": { + "id": 2913, + "nodeType": "Block", + "src": "52809:132:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2904, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2903, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "52827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52827:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52845:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + }, + "value": "ERC721: approved query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "id": 2902, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52819:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2908, + "nodeType": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "expression": { + "baseExpression": { + "id": 2909, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "52910:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 2911, + "indexExpression": { + "id": 2910, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52926:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "52910:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2901, + "id": 2912, + "nodeType": "Return", + "src": "52903:31:1" + } + ] + }, + "documentation": { + "id": 2894, + "nodeType": "StructuredDocumentation", + "src": "52669:50:1", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 2914, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2898, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52782:8:1" + }, + "parameters": { + "id": 2897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2896, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52745:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52744:17:1" + }, + "returnParameters": { + "id": 2901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2900, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2899, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "52799:9:1" + }, + "scope": 3498, + "src": "52724:217:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 632 + ], + "body": { + "id": 2947, + "nodeType": "Block", + "src": "53092:206:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2924, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53110:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2925, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53122:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53122:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "53110:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "id": 2928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53136:27:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + }, + "value": "ERC721: approve to caller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "id": 2923, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53102:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53102:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2930, + "nodeType": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "expression": { + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 2931, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53175:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2935, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2932, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53194:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53194:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53175:32:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2936, + "indexExpression": { + "id": 2934, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53208:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "53175:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2937, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53220:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "53175:53:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2941, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53258:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53258:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2943, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53272:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2944, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53282:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2940, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "53243:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 2945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53243:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2946, + "nodeType": "EmitStatement", + "src": "53238:53:1" + } + ] + }, + "documentation": { + "id": 2915, + "nodeType": "StructuredDocumentation", + "src": "52947:56:1", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 2948, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2921, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53083:8:1" + }, + "parameters": { + "id": 2920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2917, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53035:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53035:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2919, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53053:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2918, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53053:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53034:33:1" + }, + "returnParameters": { + "id": 2922, + "nodeType": "ParameterList", + "parameters": [], + "src": "53092:0:1" + }, + "scope": 3498, + "src": "53008:290:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 642 + ], + "body": { + "id": 2965, + "nodeType": "Block", + "src": "53467:59:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 2959, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53484:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2961, + "indexExpression": { + "id": 2960, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "53503:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2963, + "indexExpression": { + "id": 2962, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "53510:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2958, + "id": 2964, + "nodeType": "Return", + "src": "53477:42:1" + } + ] + }, + "documentation": { + "id": 2949, + "nodeType": "StructuredDocumentation", + "src": "53304:55:1", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 2966, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2955, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53443:8:1" + }, + "parameters": { + "id": 2954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53390:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53390:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2953, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53405:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53405:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "53389:33:1" + }, + "returnParameters": { + "id": 2958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2957, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2956, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53460:6:1" + }, + "scope": 3498, + "src": "53364:162:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 608 + ], + "body": { + "id": 2992, + "nodeType": "Block", + "src": "53677:211:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2979, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53766:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53766:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2981, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53780:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2978, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "53747:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53747:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53790:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 2977, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53739:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53739:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2985, + "nodeType": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2987, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2969, + "src": "53863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2988, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2971, + "src": "53869:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2989, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53873:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2986, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "53853:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53853:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2991, + "nodeType": "ExpressionStatement", + "src": "53853:28:1" + } + ] + }, + "documentation": { + "id": 2967, + "nodeType": "StructuredDocumentation", + "src": "53532:51:1", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 2993, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2975, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53668:8:1" + }, + "parameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2969, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53610:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53610:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2971, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53624:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53624:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2973, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53636:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "53636:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53609:43:1" + }, + "returnParameters": { + "id": 2976, + "nodeType": "ParameterList", + "parameters": [], + "src": "53677:0:1" + }, + "scope": 3498, + "src": "53588:300:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 598 + ], + "body": { + "id": 3011, + "nodeType": "Block", + "src": "54047:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3005, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2996, + "src": "54074:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3006, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2998, + "src": "54080:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3007, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3000, + "src": "54084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54093:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3004, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "src": "54057:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54057:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3010, + "nodeType": "ExpressionStatement", + "src": "54057:39:1" + } + ] + }, + "documentation": { + "id": 2994, + "nodeType": "StructuredDocumentation", + "src": "53894:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 3012, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3002, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54038:8:1" + }, + "parameters": { + "id": 3001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2996, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53980:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53980:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2998, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53994:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2997, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53994:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3000, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "54006:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54006:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53979:43:1" + }, + "returnParameters": { + "id": 3003, + "nodeType": "ParameterList", + "parameters": [], + "src": "54047:0:1" + }, + "scope": 3498, + "src": "53954:149:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 654 + ], + "body": { + "id": 3041, + "nodeType": "Block", + "src": "54282:169:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3027, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "54319:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54319:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3029, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3026, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "54300:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 3030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54300:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 3031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54343:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 3025, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "54292:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54292:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3033, + "nodeType": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3035, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3015, + "src": "54419:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3036, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3017, + "src": "54425:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3037, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3038, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3021, + "src": "54438:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3034, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3071, + "src": "54405:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54405:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3040, + "nodeType": "ExpressionStatement", + "src": "54405:39:1" + } + ] + }, + "documentation": { + "id": 3013, + "nodeType": "StructuredDocumentation", + "src": "54109:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 3042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3023, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54273:8:1" + }, + "parameters": { + "id": 3022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3015, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54195:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54195:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3017, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54209:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3016, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54209:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3019, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54221:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3021, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54238:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3020, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "54238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "54194:63:1" + }, + "returnParameters": { + "id": 3024, + "nodeType": "ParameterList", + "parameters": [], + "src": "54282:0:1" + }, + "scope": 3498, + "src": "54169:282:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 3070, + "nodeType": "Block", + "src": "55416:166:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3055, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55436:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55442:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3057, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55446:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3054, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "55426:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55426:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3059, + "nodeType": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3062, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55495:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3063, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55501:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3064, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55505:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3065, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3051, + "src": "55514:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3061, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "55472:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55472:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55522:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3060, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "55464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55464:111:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3069, + "nodeType": "ExpressionStatement", + "src": "55464:111:1" + } + ] + }, + "documentation": { + "id": 3043, + "nodeType": "StructuredDocumentation", + "src": "54457:851:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3071, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3045, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55336:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55336:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3047, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55350:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55350:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3049, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55362:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55362:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3051, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55379:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3050, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "55379:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "55335:63:1" + }, + "returnParameters": { + "id": 3053, + "nodeType": "ParameterList", + "parameters": [], + "src": "55416:0:1" + }, + "scope": 3498, + "src": "55313:269:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3084, + "nodeType": "Block", + "src": "55956:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3081, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "55995:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3079, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "55973:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3080, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 2326, + "src": "55973:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + } + }, + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55973:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3078, + "id": 3083, + "nodeType": "Return", + "src": "55966:37:1" + } + ] + }, + "documentation": { + "id": 3072, + "nodeType": "StructuredDocumentation", + "src": "55588:292:1", + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3085, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3074, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55902:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3073, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55902:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "55901:17:1" + }, + "returnParameters": { + "id": 3078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3077, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55950:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3076, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "55950:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "55949:6:1" + }, + "scope": 3498, + "src": "55885:125:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3126, + "nodeType": "Block", + "src": "56267:252:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3097, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56293:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3096, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "56285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56285:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 3099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56303:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + }, + "value": "ERC721: operator query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "id": 3095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "56277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56277:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3101, + "nodeType": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "assignments": [ + 3103 + ], + "declarations": [ + { + "constant": false, + "id": 3103, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3126, + "src": "56360:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56360:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3108, + "initialValue": { + "arguments": [ + { + "id": 3106, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56391:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3104, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56376:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "56376:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56376:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3109, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56417:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3110, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56428:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56417:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3113, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56449:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3112, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "56437:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56437:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3115, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56437:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:51:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 3120, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56496:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3121, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3118, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "56472:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56472:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:94:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3124, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56416:96:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3094, + "id": 3125, + "nodeType": "Return", + "src": "56409:103:1" + } + ] + }, + "documentation": { + "id": 3086, + "nodeType": "StructuredDocumentation", + "src": "56016:147:1", + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3088, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56196:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56196:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3090, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56213:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56213:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56195:34:1" + }, + "returnParameters": { + "id": 3094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3093, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56261:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3092, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "56261:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "56260:6:1" + }, + "scope": 3498, + "src": "56168:351:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3141, + "nodeType": "Block", + "src": "56915:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3136, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3130, + "src": "56935:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3137, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3132, + "src": "56939:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56948:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3135, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "src": "56925:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 3139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56925:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3140, + "nodeType": "ExpressionStatement", + "src": "56925:26:1" + } + ] + }, + "documentation": { + "id": 3128, + "nodeType": "StructuredDocumentation", + "src": "56525:320:1", + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3142, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3130, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56869:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3132, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56881:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56881:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56868:29:1" + }, + "returnParameters": { + "id": 3134, + "nodeType": "ParameterList", + "parameters": [], + "src": "56915:0:1" + }, + "scope": 3498, + "src": "56850:108:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3170, + "nodeType": "Block", + "src": "57264:162:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3153, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57280:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3154, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3152, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "57274:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57274:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3156, + "nodeType": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57341:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57333:7:1", + "typeDescriptions": {} + } + }, + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57333:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3163, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57345:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3164, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3165, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "57358:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3158, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "57310:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57310:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57366:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3157, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57302:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57302:117:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3169, + "nodeType": "ExpressionStatement", + "src": "57302:117:1" + } + ] + }, + "documentation": { + "id": 3143, + "nodeType": "StructuredDocumentation", + "src": "56964:210:1", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3171, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3145, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57198:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3144, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57198:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3147, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57210:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57210:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3149, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57227:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3148, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "57227:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "57197:49:1" + }, + "returnParameters": { + "id": 3151, + "nodeType": "ParameterList", + "parameters": [], + "src": "57264:0:1" + }, + "scope": 3498, + "src": "57179:247:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3229, + "nodeType": "Block", + "src": "57809:332:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3180, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57827:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57841:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57833:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57833:7:1", + "typeDescriptions": {} + } + }, + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57833:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "57827:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57845:34:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + }, + "value": "ERC721: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "id": 3179, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57819:61:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "57898:17:1", + "subExpression": { + "arguments": [ + { + "id": 3191, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57907:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3190, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "57899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57899:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57917:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + }, + "value": "ERC721: token already minted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "id": 3189, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57890:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57890:58:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3196, + "nodeType": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57988:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57980:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57980:7:1", + "typeDescriptions": {} + } + }, + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57980:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3202, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57992:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3203, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3197, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "57959:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57959:45:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3205, + "nodeType": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3210, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58037:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3206, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58015:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3208, + "indexExpression": { + "id": 3207, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58029:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58015:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3209, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "58015:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58015:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3212, + "nodeType": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3216, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58073:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3217, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58082:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3213, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58056:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3215, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "58056:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58056:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3219, + "nodeType": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58118:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58110:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58110:7:1", + "typeDescriptions": {} + } + }, + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58110:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3225, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58122:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3226, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3220, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58101:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58101:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3228, + "nodeType": "EmitStatement", + "src": "58096:38:1" + } + ] + }, + "documentation": { + "id": 3172, + "nodeType": "StructuredDocumentation", + "src": "57432:311:1", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3174, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57763:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57763:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3176, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57775:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57775:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "57762:29:1" + }, + "returnParameters": { + "id": 3178, + "nodeType": "ParameterList", + "parameters": [], + "src": "57809:0:1" + }, + "scope": 3498, + "src": "57748:393:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3298, + "nodeType": "Block", + "src": "58407:478:1", + "statements": [ + { + "assignments": [ + 3237 + ], + "declarations": [ + { + "constant": false, + "id": 3237, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "58417:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58417:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3242, + "initialValue": { + "arguments": [ + { + "id": 3240, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58448:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3238, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "58433:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "58433:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58433:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3244, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58506:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58521:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58513:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58513:7:1", + "typeDescriptions": {} + } + }, + "id": 3248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58513:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3249, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58525:7:1", + "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": 3243, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "58485:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58485:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3251, + "nodeType": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58588:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58580:7:1", + "typeDescriptions": {} + } + }, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58580:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3257, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58592:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3252, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "58571:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58571:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3259, + "nodeType": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 3262, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58656:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3264, + "indexExpression": { + "id": 3263, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58667:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58656:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 3261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58650:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3260, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "58650:5:1", + "typeDescriptions": {} + } + }, + "id": 3265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58650:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes storage pointer" + } + }, + "id": 3266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "58650:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 3267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58687:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "58650:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3275, + "nodeType": "IfStatement", + "src": "58646:95:1", + "trueBody": { + "id": 3274, + "nodeType": "Block", + "src": "58690:51:1", + "statements": [ + { + "expression": { + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "58704:26:1", + "subExpression": { + "baseExpression": { + "id": 3269, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58711:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3271, + "indexExpression": { + "id": 3270, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58722:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "58711:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3273, + "nodeType": "ExpressionStatement", + "src": "58704:26:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 3280, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58779:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3276, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58751:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3278, + "indexExpression": { + "id": 3277, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58765:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58751:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3279, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "58751:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58751:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3282, + "nodeType": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3286, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58818:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3283, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58798:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 2306, + "src": "58798:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + } + }, + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58798:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3288, + "nodeType": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3290, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58851:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58866:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58858:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58858:7:1", + "typeDescriptions": {} + } + }, + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58858:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3295, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58870:7:1", + "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": 3289, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58842:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58842:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3297, + "nodeType": "EmitStatement", + "src": "58837:41:1" + } + ] + }, + "documentation": { + "id": 3231, + "nodeType": "StructuredDocumentation", + "src": "58147:206:1", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3299, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3233, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3299, + "src": "58373:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "58372:17:1" + }, + "returnParameters": { + "id": 3235, + "nodeType": "ParameterList", + "parameters": [], + "src": "58407:0:1" + }, + "scope": 3498, + "src": "58358:527:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3370, + "nodeType": "Block", + "src": "59288:505:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3312, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59321:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3310, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "59306:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "59306:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59306:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3314, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59333:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "59306:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59339:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + }, + "value": "ERC721: transfer of token that is not own" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "id": 3309, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59298:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59298:85:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3318, + "nodeType": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3320, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59419:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59433:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59425:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59425:7:1", + "typeDescriptions": {} + } + }, + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59425:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "59419:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59437:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + }, + "value": "ERC721: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "id": 3319, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59411:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59411:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3328, + "nodeType": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3330, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59508:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3331, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59514:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3332, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59518:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3329, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "59487:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59487:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3334, + "nodeType": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59605:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59597:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59597:7:1", + "typeDescriptions": {} + } + }, + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59597:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3340, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59609:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3335, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "59588:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59588:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3342, + "nodeType": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3347, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59655:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3343, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59628:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3345, + "indexExpression": { + "id": 3344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59642:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59628:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3346, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "59628:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59628:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3354, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59695:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3350, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3352, + "indexExpression": { + "id": 3351, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59687:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59673:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3353, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "59673:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59673:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3356, + "nodeType": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3360, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59731:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3361, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59740:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3357, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "59714:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "59714:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59714:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3363, + "nodeType": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3365, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59768:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3366, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59774:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3367, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59778:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3364, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "59759:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59759:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3369, + "nodeType": "EmitStatement", + "src": "59754:32:1" + } + ] + }, + "documentation": { + "id": 3300, + "nodeType": "StructuredDocumentation", + "src": "58891:313:1", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3302, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59228:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3304, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59242:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59242:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3306, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59254:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3305, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59254:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "59227:43:1" + }, + "returnParameters": { + "id": 3308, + "nodeType": "ParameterList", + "parameters": [], + "src": "59288:0:1" + }, + "scope": 3498, + "src": "59209:584:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3392, + "nodeType": "Block", + "src": "60021:131:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3381, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60047:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3380, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "60039:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60039:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "id": 3383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "60057:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + }, + "value": "ERC721Metadata: URI set of nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "id": 3379, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "60031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60031:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3385, + "nodeType": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "expression": { + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3386, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "60114:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3388, + "indexExpression": { + "id": 3387, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60125:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "60114:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3389, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "60136:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60114:31:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3391, + "nodeType": "ExpressionStatement", + "src": "60114:31:1" + } + ] + }, + "documentation": { + "id": 3372, + "nodeType": "StructuredDocumentation", + "src": "59799:136:1", + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setTokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3374, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59962:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59962:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3376, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59979:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3375, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "59979:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "59961:42:1" + }, + "returnParameters": { + "id": 3378, + "nodeType": "ParameterList", + "parameters": [], + "src": "60021:0:1" + }, + "scope": 3498, + "src": "59940:212:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3403, + "nodeType": "Block", + "src": "60437:36:1", + "statements": [ + { + "expression": { + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3399, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "60447:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3400, + "name": "baseURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "60458:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60447:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3402, + "nodeType": "ExpressionStatement", + "src": "60447:19:1" + } + ] + }, + "documentation": { + "id": 3394, + "nodeType": "StructuredDocumentation", + "src": "60158:212:1", + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3404, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setBaseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3396, + "mutability": "mutable", + "name": "baseURI_", + "nodeType": "VariableDeclaration", + "scope": 3404, + "src": "60396:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3395, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "60396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "60395:24:1" + }, + "returnParameters": { + "id": 3398, + "nodeType": "ParameterList", + "parameters": [], + "src": "60437:0:1" + }, + "scope": 3498, + "src": "60375:98:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3461, + "nodeType": "Block", + "src": "61156:459:1", + "statements": [ + { + "condition": { + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "61170:16:1", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3418, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61171:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 1154, + "src": "61171:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61171:15:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3425, + "nodeType": "IfStatement", + "src": "61166:58:1", + "trueBody": { + "id": 3424, + "nodeType": "Block", + "src": "61188:36:1", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 3422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61209:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3417, + "id": 3423, + "nodeType": "Return", + "src": "61202:11:1" + } + ] + } + }, + { + "assignments": [ + 3427 + ], + "declarations": [ + { + "constant": false, + "id": 3427, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61233:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3426, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61233:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3445, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 3433, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61327:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3432, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "61311:15:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$726_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 3434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61311:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$726", + "typeString": "contract IERC721Receiver" + } + }, + "id": 3435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 725, + "src": "61311:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "61311:45:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3437, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "61370:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61370:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3439, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "61396:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3440, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "61414:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3441, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3413, + "src": "61435:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3430, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61275:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "61275:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 3442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61275:175:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61452:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "expression": { + "id": 3428, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61259:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 1225, + "src": "61259:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 3444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61259:246:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "assignments": [ + 3447 + ], + "declarations": [ + { + "constant": false, + "id": 3447, + "mutability": "mutable", + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61515:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3446, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61515:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "id": 3455, + "initialValue": { + "arguments": [ + { + "id": 3450, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3427, + "src": "61542:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 3452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "61555:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 3451, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61555:6:1", + "typeDescriptions": {} + } + } + ], + "id": 3453, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61554:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "expression": { + "id": 3448, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61531:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "61531:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61531:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3456, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "61581:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3457, + "name": "_ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "61591:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "61581:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3459, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61580:28:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3417, + "id": 3460, + "nodeType": "Return", + "src": "61573:35:1" + } + ] + }, + "documentation": { + "id": 3405, + "nodeType": "StructuredDocumentation", + "src": "60479:542:1", + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3462, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3407, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61058:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61058:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3409, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61072:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61072:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3411, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61084:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3410, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3413, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61101:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3412, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61101:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "61057:63:1" + }, + "returnParameters": { + "id": 3417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3416, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61146:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3415, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "61146:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "61145:6:1" + }, + "scope": 3498, + "src": "61026:589:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3485, + "nodeType": "Block", + "src": "61791:125:1", + "statements": [ + { + "expression": { + "id": 3474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3470, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "61801:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 3472, + "indexExpression": { + "id": 3471, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61817:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "61801:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3473, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61828:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "61801:29:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3475, + "nodeType": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 3479, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61869:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3477, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "61854:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "61854:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61854:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3481, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61879:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3482, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3476, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "61845:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61845:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3484, + "nodeType": "EmitStatement", + "src": "61840:51:1" + } + ] + }, + "documentation": { + "id": 3463, + "nodeType": "StructuredDocumentation", + "src": "61621:101:1", + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3486, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3465, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61745:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61745:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3467, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61757:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61757:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "61744:29:1" + }, + "returnParameters": { + "id": 3469, + "nodeType": "ParameterList", + "parameters": [], + "src": "61791:0:1" + }, + "scope": 3498, + "src": "61727:189:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3496, + "nodeType": "Block", + "src": "62602:3:1", + "statements": [] + }, + "documentation": { + "id": 3487, + "nodeType": "StructuredDocumentation", + "src": "61922:585:1", + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3497, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3489, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62542:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62542:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3491, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62556:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62556:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3493, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62568:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "62568:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "62541:43:1" + }, + "returnParameters": { + "id": 3495, + "nodeType": "ParameterList", + "parameters": [], + "src": "62602:0:1" + }, + "scope": 3498, + "src": "62512:93:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "46080:16527:1" + } + ], + "src": "84:62524:1" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "license": "MIT" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 509, + "name": "PragmaDirective", + "src": "84:31:1" + }, + { + "attributes": { + "abstract": true, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgSender", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 510, + "name": "ParameterList", + "src": "668:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 518, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 511, + "name": "ElementaryTypeName", + "src": "702:15:1" + } + ], + "id": 512, + "name": "VariableDeclaration", + "src": "702:15:1" + } + ], + "id": 513, + "name": "ParameterList", + "src": "701:17:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 513 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 514, + "name": "Identifier", + "src": "736:3:1" + } + ], + "id": 515, + "name": "MemberAccess", + "src": "736:10:1" + } + ], + "id": 516, + "name": "Return", + "src": "729:17:1" + } + ], + "id": 517, + "name": "Block", + "src": "719:34:1" + } + ], + "id": 518, + "name": "FunctionDefinition", + "src": "649:104:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgData", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 519, + "name": "ParameterList", + "src": "776:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 529, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 520, + "name": "ElementaryTypeName", + "src": "810:5:1" + } + ], + "id": 521, + "name": "VariableDeclaration", + "src": "810:12:1" + } + ], + "id": 522, + "name": "ParameterList", + "src": "809:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "contract Context", + "value": "this" + }, + "id": 523, + "name": "Identifier", + "src": "834:4:1" + } + ], + "id": 524, + "name": "ExpressionStatement", + "src": "834:4:1" + }, + { + "attributes": { + "functionReturnParameters": 522 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "data", + "type": "bytes calldata" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 525, + "name": "Identifier", + "src": "974:3:1" + } + ], + "id": 526, + "name": "MemberAccess", + "src": "974:8:1" + } + ], + "id": 527, + "name": "Return", + "src": "967:15:1" + } + ], + "id": 528, + "name": "Block", + "src": "824:165:1" + } + ], + "id": 529, + "name": "FunctionDefinition", + "src": "759:230:1" + } + ], + "id": 530, + "name": "ContractDefinition", + "src": "617:374:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 531, + "name": "PragmaDirective", + "src": "1053:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "id": 532, + "name": "StructuredDocumentation", + "src": "1086:279:1" + }, + { + "attributes": { + "functionSelector": "01ffc9a7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 541, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "id": 533, + "name": "StructuredDocumentation", + "src": "1390:340:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 534, + "name": "ElementaryTypeName", + "src": "1762:6:1" + } + ], + "id": 535, + "name": "VariableDeclaration", + "src": "1762:18:1" + } + ], + "id": 536, + "name": "ParameterList", + "src": "1761:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 537, + "name": "ElementaryTypeName", + "src": "1805:4:1" + } + ], + "id": 538, + "name": "VariableDeclaration", + "src": "1805:4:1" + } + ], + "id": 539, + "name": "ParameterList", + "src": "1804:6:1" + } + ], + "id": 540, + "name": "FunctionDefinition", + "src": "1735:76:1" + } + ], + "id": 541, + "name": "ContractDefinition", + "src": "1366:447:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 542, + "name": "PragmaDirective", + "src": "1873:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "id": 543, + "name": "StructuredDocumentation", + "src": "1907:67:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 544, + "name": "UserDefinedTypeName", + "src": "1996:7:1" + } + ], + "id": 545, + "name": "InheritanceSpecifier", + "src": "1996:7:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Transfer" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 546, + "name": "StructuredDocumentation", + "src": "2010:88:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "from", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 547, + "name": "ElementaryTypeName", + "src": "2118:7:1" + } + ], + "id": 548, + "name": "VariableDeclaration", + "src": "2118:20:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "to", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 549, + "name": "ElementaryTypeName", + "src": "2140:7:1" + } + ], + "id": 550, + "name": "VariableDeclaration", + "src": "2140:18:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 551, + "name": "ElementaryTypeName", + "src": "2160:7:1" + } + ], + "id": 552, + "name": "VariableDeclaration", + "src": "2160:23:1" + } + ], + "id": 553, + "name": "ParameterList", + "src": "2117:67:1" + } + ], + "id": 554, + "name": "EventDefinition", + "src": "2103:82:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Approval" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 555, + "name": "StructuredDocumentation", + "src": "2191:94:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 556, + "name": "ElementaryTypeName", + "src": "2305:7:1" + } + ], + "id": 557, + "name": "VariableDeclaration", + "src": "2305:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 558, + "name": "ElementaryTypeName", + "src": "2328:7:1" + } + ], + "id": 559, + "name": "VariableDeclaration", + "src": "2328:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 560, + "name": "ElementaryTypeName", + "src": "2354:7:1" + } + ], + "id": 561, + "name": "VariableDeclaration", + "src": "2354:23:1" + } + ], + "id": 562, + "name": "ParameterList", + "src": "2304:74:1" + } + ], + "id": 563, + "name": "EventDefinition", + "src": "2290:89:1" + }, + { + "attributes": { + "anonymous": false, + "name": "ApprovalForAll" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 564, + "name": "StructuredDocumentation", + "src": "2385:117:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 565, + "name": "ElementaryTypeName", + "src": "2528:7:1" + } + ], + "id": 566, + "name": "VariableDeclaration", + "src": "2528:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 567, + "name": "ElementaryTypeName", + "src": "2551:7:1" + } + ], + "id": 568, + "name": "VariableDeclaration", + "src": "2551:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 569, + "name": "ElementaryTypeName", + "src": "2577:4:1" + } + ], + "id": 570, + "name": "VariableDeclaration", + "src": "2577:13:1" + } + ], + "id": 571, + "name": "ParameterList", + "src": "2527:64:1" + } + ], + "id": 572, + "name": "EventDefinition", + "src": "2507:85:1" + }, + { + "attributes": { + "functionSelector": "70a08231", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "id": 573, + "name": "StructuredDocumentation", + "src": "2598:76:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 574, + "name": "ElementaryTypeName", + "src": "2698:7:1" + } + ], + "id": 575, + "name": "VariableDeclaration", + "src": "2698:13:1" + } + ], + "id": 576, + "name": "ParameterList", + "src": "2697:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "balance", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 577, + "name": "ElementaryTypeName", + "src": "2736:7:1" + } + ], + "id": 578, + "name": "VariableDeclaration", + "src": "2736:15:1" + } + ], + "id": 579, + "name": "ParameterList", + "src": "2735:17:1" + } + ], + "id": 580, + "name": "FunctionDefinition", + "src": "2679:74:1" + }, + { + "attributes": { + "functionSelector": "6352211e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 581, + "name": "StructuredDocumentation", + "src": "2759:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 582, + "name": "ElementaryTypeName", + "src": "2912:7:1" + } + ], + "id": 583, + "name": "VariableDeclaration", + "src": "2912:15:1" + } + ], + "id": 584, + "name": "ParameterList", + "src": "2911:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 585, + "name": "ElementaryTypeName", + "src": "2952:7:1" + } + ], + "id": 586, + "name": "VariableDeclaration", + "src": "2952:13:1" + } + ], + "id": 587, + "name": "ParameterList", + "src": "2951:15:1" + } + ], + "id": 588, + "name": "FunctionDefinition", + "src": "2895:72:1" + }, + { + "attributes": { + "functionSelector": "42842e0e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 589, + "name": "StructuredDocumentation", + "src": "2973:690:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 590, + "name": "ElementaryTypeName", + "src": "3694:7:1" + } + ], + "id": 591, + "name": "VariableDeclaration", + "src": "3694:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 592, + "name": "ElementaryTypeName", + "src": "3708:7:1" + } + ], + "id": 593, + "name": "VariableDeclaration", + "src": "3708:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 594, + "name": "ElementaryTypeName", + "src": "3720:7:1" + } + ], + "id": 595, + "name": "VariableDeclaration", + "src": "3720:15:1" + } + ], + "id": 596, + "name": "ParameterList", + "src": "3693:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 597, + "name": "ParameterList", + "src": "3745:0:1" + } + ], + "id": 598, + "name": "FunctionDefinition", + "src": "3668:78:1" + }, + { + "attributes": { + "functionSelector": "23b872dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "id": 599, + "name": "StructuredDocumentation", + "src": "3752:504:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 600, + "name": "ElementaryTypeName", + "src": "4283:7:1" + } + ], + "id": 601, + "name": "VariableDeclaration", + "src": "4283:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 602, + "name": "ElementaryTypeName", + "src": "4297:7:1" + } + ], + "id": 603, + "name": "VariableDeclaration", + "src": "4297:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 604, + "name": "ElementaryTypeName", + "src": "4309:7:1" + } + ], + "id": 605, + "name": "VariableDeclaration", + "src": "4309:15:1" + } + ], + "id": 606, + "name": "ParameterList", + "src": "4282:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 607, + "name": "ParameterList", + "src": "4334:0:1" + } + ], + "id": 608, + "name": "FunctionDefinition", + "src": "4261:74:1" + }, + { + "attributes": { + "functionSelector": "095ea7b3", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "id": 609, + "name": "StructuredDocumentation", + "src": "4341:452:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 610, + "name": "ElementaryTypeName", + "src": "4815:7:1" + } + ], + "id": 611, + "name": "VariableDeclaration", + "src": "4815:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 612, + "name": "ElementaryTypeName", + "src": "4827:7:1" + } + ], + "id": 613, + "name": "VariableDeclaration", + "src": "4827:15:1" + } + ], + "id": 614, + "name": "ParameterList", + "src": "4814:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 615, + "name": "ParameterList", + "src": "4852:0:1" + } + ], + "id": 616, + "name": "FunctionDefinition", + "src": "4798:55:1" + }, + { + "attributes": { + "functionSelector": "081812fc", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 617, + "name": "StructuredDocumentation", + "src": "4859:139:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 618, + "name": "ElementaryTypeName", + "src": "5024:7:1" + } + ], + "id": 619, + "name": "VariableDeclaration", + "src": "5024:15:1" + } + ], + "id": 620, + "name": "ParameterList", + "src": "5023:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 621, + "name": "ElementaryTypeName", + "src": "5064:7:1" + } + ], + "id": 622, + "name": "VariableDeclaration", + "src": "5064:16:1" + } + ], + "id": 623, + "name": "ParameterList", + "src": "5063:18:1" + } + ], + "id": 624, + "name": "FunctionDefinition", + "src": "5003:79:1" + }, + { + "attributes": { + "functionSelector": "a22cb465", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "id": 625, + "name": "StructuredDocumentation", + "src": "5088:309:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 626, + "name": "ElementaryTypeName", + "src": "5429:7:1" + } + ], + "id": 627, + "name": "VariableDeclaration", + "src": "5429:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_approved", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 628, + "name": "ElementaryTypeName", + "src": "5447:4:1" + } + ], + "id": 629, + "name": "VariableDeclaration", + "src": "5447:14:1" + } + ], + "id": 630, + "name": "ParameterList", + "src": "5428:34:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 631, + "name": "ParameterList", + "src": "5471:0:1" + } + ], + "id": 632, + "name": "FunctionDefinition", + "src": "5402:70:1" + }, + { + "attributes": { + "functionSelector": "e985e9c5", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "id": 633, + "name": "StructuredDocumentation", + "src": "5478:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 634, + "name": "ElementaryTypeName", + "src": "5647:7:1" + } + ], + "id": 635, + "name": "VariableDeclaration", + "src": "5647:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 636, + "name": "ElementaryTypeName", + "src": "5662:7:1" + } + ], + "id": 637, + "name": "VariableDeclaration", + "src": "5662:16:1" + } + ], + "id": 638, + "name": "ParameterList", + "src": "5646:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 639, + "name": "ElementaryTypeName", + "src": "5703:4:1" + } + ], + "id": 640, + "name": "VariableDeclaration", + "src": "5703:4:1" + } + ], + "id": 641, + "name": "ParameterList", + "src": "5702:6:1" + } + ], + "id": 642, + "name": "FunctionDefinition", + "src": "5621:88:1" + }, + { + "attributes": { + "functionSelector": "b88d4fde", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 643, + "name": "StructuredDocumentation", + "src": "5715:568:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 644, + "name": "ElementaryTypeName", + "src": "6314:7:1" + } + ], + "id": 645, + "name": "VariableDeclaration", + "src": "6314:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 646, + "name": "ElementaryTypeName", + "src": "6328:7:1" + } + ], + "id": 647, + "name": "VariableDeclaration", + "src": "6328:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 648, + "name": "ElementaryTypeName", + "src": "6340:7:1" + } + ], + "id": 649, + "name": "VariableDeclaration", + "src": "6340:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 654, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 650, + "name": "ElementaryTypeName", + "src": "6357:5:1" + } + ], + "id": 651, + "name": "VariableDeclaration", + "src": "6357:19:1" + } + ], + "id": 652, + "name": "ParameterList", + "src": "6313:64:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 653, + "name": "ParameterList", + "src": "6386:0:1" + } + ], + "id": 654, + "name": "FunctionDefinition", + "src": "6288:99:1" + } + ], + "id": 655, + "name": "ContractDefinition", + "src": "1975:4414:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 656, + "name": "PragmaDirective", + "src": "6457:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 657, + "name": "StructuredDocumentation", + "src": "6491:133:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 658, + "name": "UserDefinedTypeName", + "src": "6654:7:1" + } + ], + "id": 659, + "name": "InheritanceSpecifier", + "src": "6654:7:1" + }, + { + "attributes": { + "functionSelector": "06fdde03", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection name." + }, + "id": 660, + "name": "StructuredDocumentation", + "src": "6669:58:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 661, + "name": "ParameterList", + "src": "6745:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 665, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 662, + "name": "ElementaryTypeName", + "src": "6771:6:1" + } + ], + "id": 663, + "name": "VariableDeclaration", + "src": "6771:13:1" + } + ], + "id": 664, + "name": "ParameterList", + "src": "6770:15:1" + } + ], + "id": 665, + "name": "FunctionDefinition", + "src": "6732:54:1" + }, + { + "attributes": { + "functionSelector": "95d89b41", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection symbol." + }, + "id": 666, + "name": "StructuredDocumentation", + "src": "6792:60:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 667, + "name": "ParameterList", + "src": "6872:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 671, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 668, + "name": "ElementaryTypeName", + "src": "6898:6:1" + } + ], + "id": 669, + "name": "VariableDeclaration", + "src": "6898:13:1" + } + ], + "id": 670, + "name": "ParameterList", + "src": "6897:15:1" + } + ], + "id": 671, + "name": "FunctionDefinition", + "src": "6857:56:1" + }, + { + "attributes": { + "functionSelector": "c87b56dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "id": 672, + "name": "StructuredDocumentation", + "src": "6919:90:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 679, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 673, + "name": "ElementaryTypeName", + "src": "7032:7:1" + } + ], + "id": 674, + "name": "VariableDeclaration", + "src": "7032:15:1" + } + ], + "id": 675, + "name": "ParameterList", + "src": "7031:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 679, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 676, + "name": "ElementaryTypeName", + "src": "7072:6:1" + } + ], + "id": 677, + "name": "VariableDeclaration", + "src": "7072:13:1" + } + ], + "id": 678, + "name": "ParameterList", + "src": "7071:15:1" + } + ], + "id": 679, + "name": "FunctionDefinition", + "src": "7014:73:1" + } + ], + "id": 680, + "name": "ContractDefinition", + "src": "6625:464:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 681, + "name": "PragmaDirective", + "src": "7161:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 682, + "name": "StructuredDocumentation", + "src": "7195:136:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 683, + "name": "UserDefinedTypeName", + "src": "7363:7:1" + } + ], + "id": 684, + "name": "InheritanceSpecifier", + "src": "7363:7:1" + }, + { + "attributes": { + "functionSelector": "18160ddd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "id": 685, + "name": "StructuredDocumentation", + "src": "7378:82:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 686, + "name": "ParameterList", + "src": "7485:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 690, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 687, + "name": "ElementaryTypeName", + "src": "7511:7:1" + } + ], + "id": 688, + "name": "VariableDeclaration", + "src": "7511:7:1" + } + ], + "id": 689, + "name": "ParameterList", + "src": "7510:9:1" + } + ], + "id": 690, + "name": "FunctionDefinition", + "src": "7465:55:1" + }, + { + "attributes": { + "functionSelector": "2f745c59", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "id": 691, + "name": "StructuredDocumentation", + "src": "7526:171:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 692, + "name": "ElementaryTypeName", + "src": "7731:7:1" + } + ], + "id": 693, + "name": "VariableDeclaration", + "src": "7731:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 694, + "name": "ElementaryTypeName", + "src": "7746:7:1" + } + ], + "id": 695, + "name": "VariableDeclaration", + "src": "7746:13:1" + } + ], + "id": 696, + "name": "ParameterList", + "src": "7730:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 697, + "name": "ElementaryTypeName", + "src": "7784:7:1" + } + ], + "id": 698, + "name": "VariableDeclaration", + "src": "7784:15:1" + } + ], + "id": 699, + "name": "ParameterList", + "src": "7783:17:1" + } + ], + "id": 700, + "name": "FunctionDefinition", + "src": "7702:99:1" + }, + { + "attributes": { + "functionSelector": "4f6ccce7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "id": 701, + "name": "StructuredDocumentation", + "src": "7807:164:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 702, + "name": "ElementaryTypeName", + "src": "7998:7:1" + } + ], + "id": 703, + "name": "VariableDeclaration", + "src": "7998:13:1" + } + ], + "id": 704, + "name": "ParameterList", + "src": "7997:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 705, + "name": "ElementaryTypeName", + "src": "8036:7:1" + } + ], + "id": 706, + "name": "VariableDeclaration", + "src": "8036:7:1" + } + ], + "id": 707, + "name": "ParameterList", + "src": "8035:9:1" + } + ], + "id": 708, + "name": "FunctionDefinition", + "src": "7976:69:1" + } + ], + "id": 709, + "name": "ContractDefinition", + "src": "7332:715:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 710, + "name": "PragmaDirective", + "src": "8117:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "id": 711, + "name": "StructuredDocumentation", + "src": "8150:152:1" + }, + { + "attributes": { + "functionSelector": "150b7a02", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "onERC721Received", + "scope": 726, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "id": 712, + "name": "StructuredDocumentation", + "src": "8335:485:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 713, + "name": "ElementaryTypeName", + "src": "8851:7:1" + } + ], + "id": 714, + "name": "VariableDeclaration", + "src": "8851:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 715, + "name": "ElementaryTypeName", + "src": "8869:7:1" + } + ], + "id": 716, + "name": "VariableDeclaration", + "src": "8869:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 717, + "name": "ElementaryTypeName", + "src": "8883:7:1" + } + ], + "id": 718, + "name": "VariableDeclaration", + "src": "8883:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 725, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 719, + "name": "ElementaryTypeName", + "src": "8900:5:1" + } + ], + "id": 720, + "name": "VariableDeclaration", + "src": "8900:19:1" + } + ], + "id": 721, + "name": "ParameterList", + "src": "8850:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 722, + "name": "ElementaryTypeName", + "src": "8939:6:1" + } + ], + "id": 723, + "name": "VariableDeclaration", + "src": "8939:6:1" + } + ], + "id": 724, + "name": "ParameterList", + "src": "8938:8:1" + } + ], + "id": 725, + "name": "FunctionDefinition", + "src": "8825:122:1" + } + ], + "id": 726, + "name": "ContractDefinition", + "src": "8303:646:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 727, + "name": "PragmaDirective", + "src": "9009:31:1" + }, + { + "attributes": { + "abstract": true, + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "id": 728, + "name": "StructuredDocumentation", + "src": "9043:171:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 729, + "name": "UserDefinedTypeName", + "src": "9243:7:1" + } + ], + "id": 730, + "name": "InheritanceSpecifier", + "src": "9243:7:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 731, + "name": "ElementaryTypeName", + "src": "9340:6:1" + }, + { + "attributes": { + "hexvalue": "30783031666663396137", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 33540519", + "value": "0x01ffc9a7" + }, + "id": 732, + "name": "Literal", + "src": "9387:10:1" + } + ], + "id": 733, + "name": "VariableDeclaration", + "src": "9340:57:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_supportedInterfaces", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes4 => bool)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes4 => bool)" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 735, + "name": "ElementaryTypeName", + "src": "9499:6:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 736, + "name": "ElementaryTypeName", + "src": "9509:4:1" + } + ], + "id": 737, + "name": "Mapping", + "src": "9491:23:1" + }, + { + "attributes": { + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 734, + "name": "StructuredDocumentation", + "src": "9404:82:1" + } + ], + "id": 738, + "name": "VariableDeclaration", + "src": "9491:52:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 739, + "name": "ParameterList", + "src": "9562:2:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 740, + "name": "ParameterList", + "src": "9565:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 741, + "name": "Identifier", + "src": "9711:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 733, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC165" + }, + "id": 742, + "name": "Identifier", + "src": "9730:20:1" + } + ], + "id": 743, + "name": "FunctionCall", + "src": "9711:40:1" + } + ], + "id": 744, + "name": "ExpressionStatement", + "src": "9711:40:1" + } + ], + "id": 745, + "name": "Block", + "src": "9565:193:1" + } + ], + "id": 746, + "name": "FunctionDefinition", + "src": "9550:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 540 + ], + "functionSelector": "01ffc9a7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 781, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "id": 747, + "name": "StructuredDocumentation", + "src": "9764:139:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 751, + "name": "OverrideSpecifier", + "src": "9975:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 748, + "name": "ElementaryTypeName", + "src": "9935:6:1" + } + ], + "id": 749, + "name": "VariableDeclaration", + "src": "9935:18:1" + } + ], + "id": 750, + "name": "ParameterList", + "src": "9934:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 752, + "name": "ElementaryTypeName", + "src": "9993:4:1" + } + ], + "id": 753, + "name": "VariableDeclaration", + "src": "9993:4:1" + } + ], + "id": 754, + "name": "ParameterList", + "src": "9992:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 754 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 755, + "name": "Identifier", + "src": "10016:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 749, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 756, + "name": "Identifier", + "src": "10037:11:1" + } + ], + "id": 757, + "name": "IndexAccess", + "src": "10016:33:1" + } + ], + "id": 758, + "name": "Return", + "src": "10009:40:1" + } + ], + "id": 759, + "name": "Block", + "src": "9999:57:1" + } + ], + "id": 760, + "name": "FunctionDefinition", + "src": "9908:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_registerInterface", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 761, + "name": "StructuredDocumentation", + "src": "10062:383:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 780, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 762, + "name": "ElementaryTypeName", + "src": "10478:6:1" + } + ], + "id": 763, + "name": "VariableDeclaration", + "src": "10478:18:1" + } + ], + "id": 764, + "name": "ParameterList", + "src": "10477:20:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 765, + "name": "ParameterList", + "src": "10515:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 766, + "name": "Identifier", + "src": "10525:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 767, + "name": "Identifier", + "src": "10533:11:1" + }, + { + "attributes": { + "hexvalue": "30786666666666666666", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4294967295", + "value": "0xffffffff" + }, + "id": 768, + "name": "Literal", + "src": "10548:10:1" + } + ], + "id": 769, + "name": "BinaryOperation", + "src": "10533:25:1" + }, + { + "attributes": { + "hexvalue": "4552433136353a20696e76616c696420696e74657266616365206964", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC165: invalid interface id\"", + "value": "ERC165: invalid interface id" + }, + "id": 770, + "name": "Literal", + "src": "10560:30:1" + } + ], + "id": 771, + "name": "FunctionCall", + "src": "10525:66:1" + } + ], + "id": 772, + "name": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 773, + "name": "Identifier", + "src": "10601:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 774, + "name": "Identifier", + "src": "10622:11:1" + } + ], + "id": 775, + "name": "IndexAccess", + "src": "10601:33:1" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 776, + "name": "Literal", + "src": "10637:4:1" + } + ], + "id": 777, + "name": "Assignment", + "src": "10601:40:1" + } + ], + "id": 778, + "name": "ExpressionStatement", + "src": "10601:40:1" + } + ], + "id": 779, + "name": "Block", + "src": "10515:133:1" + } + ], + "id": 780, + "name": "FunctionDefinition", + "src": "10450:198:1" + } + ], + "id": 781, + "name": "ContractDefinition", + "src": "9215:1435:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 782, + "name": "PragmaDirective", + "src": "10703:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "id": 783, + "name": "StructuredDocumentation", + "src": "10736:563:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryAdd", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 784, + "name": "StructuredDocumentation", + "src": "11323:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 785, + "name": "ElementaryTypeName", + "src": "11475:7:1" + } + ], + "id": 786, + "name": "VariableDeclaration", + "src": "11475:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 787, + "name": "ElementaryTypeName", + "src": "11486:7:1" + } + ], + "id": 788, + "name": "VariableDeclaration", + "src": "11486:9:1" + } + ], + "id": 789, + "name": "ParameterList", + "src": "11474:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 790, + "name": "ElementaryTypeName", + "src": "11520:4:1" + } + ], + "id": 791, + "name": "VariableDeclaration", + "src": "11520:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 792, + "name": "ElementaryTypeName", + "src": "11526:7:1" + } + ], + "id": 793, + "name": "VariableDeclaration", + "src": "11526:7:1" + } + ], + "id": 794, + "name": "ParameterList", + "src": "11519:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 796 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 813, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 795, + "name": "ElementaryTypeName", + "src": "11545:7:1" + } + ], + "id": 796, + "name": "VariableDeclaration", + "src": "11545:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 797, + "name": "Identifier", + "src": "11557:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 788, + "type": "uint256", + "value": "b" + }, + "id": 798, + "name": "Identifier", + "src": "11561:1:1" + } + ], + "id": 799, + "name": "BinaryOperation", + "src": "11557:5:1" + } + ], + "id": 800, + "name": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 801, + "name": "Identifier", + "src": "11576:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 802, + "name": "Identifier", + "src": "11580:1:1" + } + ], + "id": 803, + "name": "BinaryOperation", + "src": "11576:5:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 804, + "name": "Literal", + "src": "11591:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 805, + "name": "Literal", + "src": "11598:1:1" + } + ], + "id": 806, + "name": "TupleExpression", + "src": "11590:10:1" + } + ], + "id": 807, + "name": "Return", + "src": "11583:17:1" + } + ], + "id": 808, + "name": "IfStatement", + "src": "11572:28:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 809, + "name": "Literal", + "src": "11618:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 810, + "name": "Identifier", + "src": "11624:1:1" + } + ], + "id": 811, + "name": "TupleExpression", + "src": "11617:9:1" + } + ], + "id": 812, + "name": "Return", + "src": "11610:16:1" + } + ], + "id": 813, + "name": "Block", + "src": "11535:98:1" + } + ], + "id": 814, + "name": "FunctionDefinition", + "src": "11459:174:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "trySub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 815, + "name": "StructuredDocumentation", + "src": "11639:135:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 816, + "name": "ElementaryTypeName", + "src": "11795:7:1" + } + ], + "id": 817, + "name": "VariableDeclaration", + "src": "11795:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 818, + "name": "ElementaryTypeName", + "src": "11806:7:1" + } + ], + "id": 819, + "name": "VariableDeclaration", + "src": "11806:9:1" + } + ], + "id": 820, + "name": "ParameterList", + "src": "11794:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 821, + "name": "ElementaryTypeName", + "src": "11840:4:1" + } + ], + "id": 822, + "name": "VariableDeclaration", + "src": "11840:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 823, + "name": "ElementaryTypeName", + "src": "11846:7:1" + } + ], + "id": 824, + "name": "VariableDeclaration", + "src": "11846:7:1" + } + ], + "id": 825, + "name": "ParameterList", + "src": "11839:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 826, + "name": "Identifier", + "src": "11869:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 827, + "name": "Identifier", + "src": "11873:1:1" + } + ], + "id": 828, + "name": "BinaryOperation", + "src": "11869:5:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 829, + "name": "Literal", + "src": "11884:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 830, + "name": "Literal", + "src": "11891:1:1" + } + ], + "id": 831, + "name": "TupleExpression", + "src": "11883:10:1" + } + ], + "id": 832, + "name": "Return", + "src": "11876:17:1" + } + ], + "id": 833, + "name": "IfStatement", + "src": "11865:28:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 834, + "name": "Literal", + "src": "11911:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 835, + "name": "Identifier", + "src": "11917:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 836, + "name": "Identifier", + "src": "11921:1:1" + } + ], + "id": 837, + "name": "BinaryOperation", + "src": "11917:5:1" + } + ], + "id": 838, + "name": "TupleExpression", + "src": "11910:13:1" + } + ], + "id": 839, + "name": "Return", + "src": "11903:20:1" + } + ], + "id": 840, + "name": "Block", + "src": "11855:75:1" + } + ], + "id": 841, + "name": "FunctionDefinition", + "src": "11779:151:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 842, + "name": "StructuredDocumentation", + "src": "11936:137:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 843, + "name": "ElementaryTypeName", + "src": "12094:7:1" + } + ], + "id": 844, + "name": "VariableDeclaration", + "src": "12094:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 845, + "name": "ElementaryTypeName", + "src": "12105:7:1" + } + ], + "id": 846, + "name": "VariableDeclaration", + "src": "12105:9:1" + } + ], + "id": 847, + "name": "ParameterList", + "src": "12093:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 848, + "name": "ElementaryTypeName", + "src": "12139:4:1" + } + ], + "id": 849, + "name": "VariableDeclaration", + "src": "12139:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 850, + "name": "ElementaryTypeName", + "src": "12145:7:1" + } + ], + "id": 851, + "name": "VariableDeclaration", + "src": "12145:7:1" + } + ], + "id": 852, + "name": "ParameterList", + "src": "12138:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 853, + "name": "Identifier", + "src": "12386:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 854, + "name": "Literal", + "src": "12391:1:1" + } + ], + "id": 855, + "name": "BinaryOperation", + "src": "12386:6:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 856, + "name": "Literal", + "src": "12402:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 857, + "name": "Literal", + "src": "12408:1:1" + } + ], + "id": 858, + "name": "TupleExpression", + "src": "12401:9:1" + } + ], + "id": 859, + "name": "Return", + "src": "12394:16:1" + } + ], + "id": 860, + "name": "IfStatement", + "src": "12382:28:1" + }, + { + "attributes": { + "assignments": [ + 862 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 881, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 861, + "name": "ElementaryTypeName", + "src": "12420:7:1" + } + ], + "id": 862, + "name": "VariableDeclaration", + "src": "12420:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 863, + "name": "Identifier", + "src": "12432:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 864, + "name": "Identifier", + "src": "12436:1:1" + } + ], + "id": 865, + "name": "BinaryOperation", + "src": "12432:5:1" + } + ], + "id": 866, + "name": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 867, + "name": "Identifier", + "src": "12451:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 868, + "name": "Identifier", + "src": "12455:1:1" + } + ], + "id": 869, + "name": "BinaryOperation", + "src": "12451:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 870, + "name": "Identifier", + "src": "12460:1:1" + } + ], + "id": 871, + "name": "BinaryOperation", + "src": "12451:10:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 872, + "name": "Literal", + "src": "12471:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 873, + "name": "Literal", + "src": "12478:1:1" + } + ], + "id": 874, + "name": "TupleExpression", + "src": "12470:10:1" + } + ], + "id": 875, + "name": "Return", + "src": "12463:17:1" + } + ], + "id": 876, + "name": "IfStatement", + "src": "12447:33:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 877, + "name": "Literal", + "src": "12498:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 878, + "name": "Identifier", + "src": "12504:1:1" + } + ], + "id": 879, + "name": "TupleExpression", + "src": "12497:9:1" + } + ], + "id": 880, + "name": "Return", + "src": "12490:16:1" + } + ], + "id": 881, + "name": "Block", + "src": "12154:359:1" + } + ], + "id": 882, + "name": "FunctionDefinition", + "src": "12078:435:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryDiv", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 883, + "name": "StructuredDocumentation", + "src": "12519:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 884, + "name": "ElementaryTypeName", + "src": "12678:7:1" + } + ], + "id": 885, + "name": "VariableDeclaration", + "src": "12678:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 886, + "name": "ElementaryTypeName", + "src": "12689:7:1" + } + ], + "id": 887, + "name": "VariableDeclaration", + "src": "12689:9:1" + } + ], + "id": 888, + "name": "ParameterList", + "src": "12677:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 889, + "name": "ElementaryTypeName", + "src": "12723:4:1" + } + ], + "id": 890, + "name": "VariableDeclaration", + "src": "12723:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 891, + "name": "ElementaryTypeName", + "src": "12729:7:1" + } + ], + "id": 892, + "name": "VariableDeclaration", + "src": "12729:7:1" + } + ], + "id": 893, + "name": "ParameterList", + "src": "12722:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 894, + "name": "Identifier", + "src": "12752:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 895, + "name": "Literal", + "src": "12757:1:1" + } + ], + "id": 896, + "name": "BinaryOperation", + "src": "12752:6:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 897, + "name": "Literal", + "src": "12768:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 898, + "name": "Literal", + "src": "12775:1:1" + } + ], + "id": 899, + "name": "TupleExpression", + "src": "12767:10:1" + } + ], + "id": 900, + "name": "Return", + "src": "12760:17:1" + } + ], + "id": 901, + "name": "IfStatement", + "src": "12748:29:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 902, + "name": "Literal", + "src": "12795:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 885, + "type": "uint256", + "value": "a" + }, + "id": 903, + "name": "Identifier", + "src": "12801:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 904, + "name": "Identifier", + "src": "12805:1:1" + } + ], + "id": 905, + "name": "BinaryOperation", + "src": "12801:5:1" + } + ], + "id": 906, + "name": "TupleExpression", + "src": "12794:13:1" + } + ], + "id": 907, + "name": "Return", + "src": "12787:20:1" + } + ], + "id": 908, + "name": "Block", + "src": "12738:76:1" + } + ], + "id": 909, + "name": "FunctionDefinition", + "src": "12662:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 910, + "name": "StructuredDocumentation", + "src": "12820:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 911, + "name": "ElementaryTypeName", + "src": "12989:7:1" + } + ], + "id": 912, + "name": "VariableDeclaration", + "src": "12989:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 913, + "name": "ElementaryTypeName", + "src": "13000:7:1" + } + ], + "id": 914, + "name": "VariableDeclaration", + "src": "13000:9:1" + } + ], + "id": 915, + "name": "ParameterList", + "src": "12988:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 916, + "name": "ElementaryTypeName", + "src": "13034:4:1" + } + ], + "id": 917, + "name": "VariableDeclaration", + "src": "13034:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 918, + "name": "ElementaryTypeName", + "src": "13040:7:1" + } + ], + "id": 919, + "name": "VariableDeclaration", + "src": "13040:7:1" + } + ], + "id": 920, + "name": "ParameterList", + "src": "13033:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 921, + "name": "Identifier", + "src": "13063:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 922, + "name": "Literal", + "src": "13068:1:1" + } + ], + "id": 923, + "name": "BinaryOperation", + "src": "13063:6:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 924, + "name": "Literal", + "src": "13079:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 925, + "name": "Literal", + "src": "13086:1:1" + } + ], + "id": 926, + "name": "TupleExpression", + "src": "13078:10:1" + } + ], + "id": 927, + "name": "Return", + "src": "13071:17:1" + } + ], + "id": 928, + "name": "IfStatement", + "src": "13059:29:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 929, + "name": "Literal", + "src": "13106:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 912, + "type": "uint256", + "value": "a" + }, + "id": 930, + "name": "Identifier", + "src": "13112:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 931, + "name": "Identifier", + "src": "13116:1:1" + } + ], + "id": 932, + "name": "BinaryOperation", + "src": "13112:5:1" + } + ], + "id": 933, + "name": "TupleExpression", + "src": "13105:13:1" + } + ], + "id": 934, + "name": "Return", + "src": "13098:20:1" + } + ], + "id": 935, + "name": "Block", + "src": "13049:76:1" + } + ], + "id": 936, + "name": "FunctionDefinition", + "src": "12973:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 937, + "name": "StructuredDocumentation", + "src": "13131:224:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 938, + "name": "ElementaryTypeName", + "src": "13373:7:1" + } + ], + "id": 939, + "name": "VariableDeclaration", + "src": "13373:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 940, + "name": "ElementaryTypeName", + "src": "13384:7:1" + } + ], + "id": 941, + "name": "VariableDeclaration", + "src": "13384:9:1" + } + ], + "id": 942, + "name": "ParameterList", + "src": "13372:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 943, + "name": "ElementaryTypeName", + "src": "13418:7:1" + } + ], + "id": 944, + "name": "VariableDeclaration", + "src": "13418:7:1" + } + ], + "id": 945, + "name": "ParameterList", + "src": "13417:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 947 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 961, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 946, + "name": "ElementaryTypeName", + "src": "13437:7:1" + } + ], + "id": 947, + "name": "VariableDeclaration", + "src": "13437:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 948, + "name": "Identifier", + "src": "13449:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 941, + "type": "uint256", + "value": "b" + }, + "id": 949, + "name": "Identifier", + "src": "13453:1:1" + } + ], + "id": 950, + "name": "BinaryOperation", + "src": "13449:5:1" + } + ], + "id": 951, + "name": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 952, + "name": "Identifier", + "src": "13464:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 953, + "name": "Identifier", + "src": "13472:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 954, + "name": "Identifier", + "src": "13477:1:1" + } + ], + "id": 955, + "name": "BinaryOperation", + "src": "13472:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: addition overflow\"", + "value": "SafeMath: addition overflow" + }, + "id": 956, + "name": "Literal", + "src": "13480:29:1" + } + ], + "id": 957, + "name": "FunctionCall", + "src": "13464:46:1" + } + ], + "id": 958, + "name": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "attributes": { + "functionReturnParameters": 945 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 959, + "name": "Identifier", + "src": "13527:1:1" + } + ], + "id": 960, + "name": "Return", + "src": "13520:8:1" + } + ], + "id": 961, + "name": "Block", + "src": "13427:108:1" + } + ], + "id": 962, + "name": "FunctionDefinition", + "src": "13360:175:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 963, + "name": "StructuredDocumentation", + "src": "13541:260:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 964, + "name": "ElementaryTypeName", + "src": "13819:7:1" + } + ], + "id": 965, + "name": "VariableDeclaration", + "src": "13819:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 966, + "name": "ElementaryTypeName", + "src": "13830:7:1" + } + ], + "id": 967, + "name": "VariableDeclaration", + "src": "13830:9:1" + } + ], + "id": 968, + "name": "ParameterList", + "src": "13818:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 969, + "name": "ElementaryTypeName", + "src": "13864:7:1" + } + ], + "id": 970, + "name": "VariableDeclaration", + "src": "13864:7:1" + } + ], + "id": 971, + "name": "ParameterList", + "src": "13863:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 972, + "name": "Identifier", + "src": "13883:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 973, + "name": "Identifier", + "src": "13891:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 974, + "name": "Identifier", + "src": "13896:1:1" + } + ], + "id": 975, + "name": "BinaryOperation", + "src": "13891:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: subtraction overflow\"", + "value": "SafeMath: subtraction overflow" + }, + "id": 976, + "name": "Literal", + "src": "13899:32:1" + } + ], + "id": 977, + "name": "FunctionCall", + "src": "13883:49:1" + } + ], + "id": 978, + "name": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "attributes": { + "functionReturnParameters": 971 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 979, + "name": "Identifier", + "src": "13949:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 980, + "name": "Identifier", + "src": "13953:1:1" + } + ], + "id": 981, + "name": "BinaryOperation", + "src": "13949:5:1" + } + ], + "id": 982, + "name": "Return", + "src": "13942:12:1" + } + ], + "id": 983, + "name": "Block", + "src": "13873:88:1" + } + ], + "id": 984, + "name": "FunctionDefinition", + "src": "13806:155:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 985, + "name": "StructuredDocumentation", + "src": "13967:236:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 986, + "name": "ElementaryTypeName", + "src": "14221:7:1" + } + ], + "id": 987, + "name": "VariableDeclaration", + "src": "14221:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 988, + "name": "ElementaryTypeName", + "src": "14232:7:1" + } + ], + "id": 989, + "name": "VariableDeclaration", + "src": "14232:9:1" + } + ], + "id": 990, + "name": "ParameterList", + "src": "14220:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 991, + "name": "ElementaryTypeName", + "src": "14266:7:1" + } + ], + "id": 992, + "name": "VariableDeclaration", + "src": "14266:7:1" + } + ], + "id": 993, + "name": "ParameterList", + "src": "14265:9:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 994, + "name": "Identifier", + "src": "14289:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 995, + "name": "Literal", + "src": "14294:1:1" + } + ], + "id": 996, + "name": "BinaryOperation", + "src": "14289:6:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 997, + "name": "Literal", + "src": "14304:1:1" + } + ], + "id": 998, + "name": "Return", + "src": "14297:8:1" + } + ], + "id": 999, + "name": "IfStatement", + "src": "14285:20:1" + }, + { + "attributes": { + "assignments": [ + 1001 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 1017, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1000, + "name": "ElementaryTypeName", + "src": "14315:7:1" + } + ], + "id": 1001, + "name": "VariableDeclaration", + "src": "14315:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1002, + "name": "Identifier", + "src": "14327:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1003, + "name": "Identifier", + "src": "14331:1:1" + } + ], + "id": 1004, + "name": "BinaryOperation", + "src": "14327:5:1" + } + ], + "id": 1005, + "name": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1006, + "name": "Identifier", + "src": "14342:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1007, + "name": "Identifier", + "src": "14350:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1008, + "name": "Identifier", + "src": "14354:1:1" + } + ], + "id": 1009, + "name": "BinaryOperation", + "src": "14350:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1010, + "name": "Identifier", + "src": "14359:1:1" + } + ], + "id": 1011, + "name": "BinaryOperation", + "src": "14350:10:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: multiplication overflow\"", + "value": "SafeMath: multiplication overflow" + }, + "id": 1012, + "name": "Literal", + "src": "14362:35:1" + } + ], + "id": 1013, + "name": "FunctionCall", + "src": "14342:56:1" + } + ], + "id": 1014, + "name": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1015, + "name": "Identifier", + "src": "14415:1:1" + } + ], + "id": 1016, + "name": "Return", + "src": "14408:8:1" + } + ], + "id": 1017, + "name": "Block", + "src": "14275:148:1" + } + ], + "id": 1018, + "name": "FunctionDefinition", + "src": "14208:215:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1019, + "name": "StructuredDocumentation", + "src": "14429:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1020, + "name": "ElementaryTypeName", + "src": "14900:7:1" + } + ], + "id": 1021, + "name": "VariableDeclaration", + "src": "14900:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1022, + "name": "ElementaryTypeName", + "src": "14911:7:1" + } + ], + "id": 1023, + "name": "VariableDeclaration", + "src": "14911:9:1" + } + ], + "id": 1024, + "name": "ParameterList", + "src": "14899:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1025, + "name": "ElementaryTypeName", + "src": "14945:7:1" + } + ], + "id": 1026, + "name": "VariableDeclaration", + "src": "14945:7:1" + } + ], + "id": 1027, + "name": "ParameterList", + "src": "14944:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1028, + "name": "Identifier", + "src": "14964:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1029, + "name": "Identifier", + "src": "14972:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1030, + "name": "Literal", + "src": "14976:1:1" + } + ], + "id": 1031, + "name": "BinaryOperation", + "src": "14972:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206469766973696f6e206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: division by zero\"", + "value": "SafeMath: division by zero" + }, + "id": 1032, + "name": "Literal", + "src": "14979:28:1" + } + ], + "id": 1033, + "name": "FunctionCall", + "src": "14964:44:1" + } + ], + "id": 1034, + "name": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "attributes": { + "functionReturnParameters": 1027 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1021, + "type": "uint256", + "value": "a" + }, + "id": 1035, + "name": "Identifier", + "src": "15025:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1036, + "name": "Identifier", + "src": "15029:1:1" + } + ], + "id": 1037, + "name": "BinaryOperation", + "src": "15025:5:1" + } + ], + "id": 1038, + "name": "Return", + "src": "15018:12:1" + } + ], + "id": 1039, + "name": "Block", + "src": "14954:83:1" + } + ], + "id": 1040, + "name": "FunctionDefinition", + "src": "14887:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1041, + "name": "StructuredDocumentation", + "src": "15043:442:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1042, + "name": "ElementaryTypeName", + "src": "15503:7:1" + } + ], + "id": 1043, + "name": "VariableDeclaration", + "src": "15503:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1044, + "name": "ElementaryTypeName", + "src": "15514:7:1" + } + ], + "id": 1045, + "name": "VariableDeclaration", + "src": "15514:9:1" + } + ], + "id": 1046, + "name": "ParameterList", + "src": "15502:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1047, + "name": "ElementaryTypeName", + "src": "15548:7:1" + } + ], + "id": 1048, + "name": "VariableDeclaration", + "src": "15548:7:1" + } + ], + "id": 1049, + "name": "ParameterList", + "src": "15547:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1050, + "name": "Identifier", + "src": "15567:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1051, + "name": "Identifier", + "src": "15575:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1052, + "name": "Literal", + "src": "15579:1:1" + } + ], + "id": 1053, + "name": "BinaryOperation", + "src": "15575:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: modulo by zero\"", + "value": "SafeMath: modulo by zero" + }, + "id": 1054, + "name": "Literal", + "src": "15582:26:1" + } + ], + "id": 1055, + "name": "FunctionCall", + "src": "15567:42:1" + } + ], + "id": 1056, + "name": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "attributes": { + "functionReturnParameters": 1049 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1043, + "type": "uint256", + "value": "a" + }, + "id": 1057, + "name": "Identifier", + "src": "15626:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1058, + "name": "Identifier", + "src": "15630:1:1" + } + ], + "id": 1059, + "name": "BinaryOperation", + "src": "15626:5:1" + } + ], + "id": 1060, + "name": "Return", + "src": "15619:12:1" + } + ], + "id": 1061, + "name": "Block", + "src": "15557:81:1" + } + ], + "id": 1062, + "name": "FunctionDefinition", + "src": "15490:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1063, + "name": "StructuredDocumentation", + "src": "15644:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1064, + "name": "ElementaryTypeName", + "src": "16115:7:1" + } + ], + "id": 1065, + "name": "VariableDeclaration", + "src": "16115:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1066, + "name": "ElementaryTypeName", + "src": "16126:7:1" + } + ], + "id": 1067, + "name": "VariableDeclaration", + "src": "16126:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1086, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1068, + "name": "ElementaryTypeName", + "src": "16137:6:1" + } + ], + "id": 1069, + "name": "VariableDeclaration", + "src": "16137:26:1" + } + ], + "id": 1070, + "name": "ParameterList", + "src": "16114:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1071, + "name": "ElementaryTypeName", + "src": "16188:7:1" + } + ], + "id": 1072, + "name": "VariableDeclaration", + "src": "16188:7:1" + } + ], + "id": 1073, + "name": "ParameterList", + "src": "16187:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1074, + "name": "Identifier", + "src": "16207:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1075, + "name": "Identifier", + "src": "16215:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1076, + "name": "Identifier", + "src": "16220:1:1" + } + ], + "id": 1077, + "name": "BinaryOperation", + "src": "16215:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1069, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1078, + "name": "Identifier", + "src": "16223:12:1" + } + ], + "id": 1079, + "name": "FunctionCall", + "src": "16207:29:1" + } + ], + "id": 1080, + "name": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "attributes": { + "functionReturnParameters": 1073 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1081, + "name": "Identifier", + "src": "16253:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1082, + "name": "Identifier", + "src": "16257:1:1" + } + ], + "id": 1083, + "name": "BinaryOperation", + "src": "16253:5:1" + } + ], + "id": 1084, + "name": "Return", + "src": "16246:12:1" + } + ], + "id": 1085, + "name": "Block", + "src": "16197:68:1" + } + ], + "id": 1086, + "name": "FunctionDefinition", + "src": "16102:163:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1087, + "name": "StructuredDocumentation", + "src": "16271:646:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1088, + "name": "ElementaryTypeName", + "src": "16935:7:1" + } + ], + "id": 1089, + "name": "VariableDeclaration", + "src": "16935:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1090, + "name": "ElementaryTypeName", + "src": "16946:7:1" + } + ], + "id": 1091, + "name": "VariableDeclaration", + "src": "16946:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1110, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1092, + "name": "ElementaryTypeName", + "src": "16957:6:1" + } + ], + "id": 1093, + "name": "VariableDeclaration", + "src": "16957:26:1" + } + ], + "id": 1094, + "name": "ParameterList", + "src": "16934:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1095, + "name": "ElementaryTypeName", + "src": "17008:7:1" + } + ], + "id": 1096, + "name": "VariableDeclaration", + "src": "17008:7:1" + } + ], + "id": 1097, + "name": "ParameterList", + "src": "17007:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1098, + "name": "Identifier", + "src": "17027:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1099, + "name": "Identifier", + "src": "17035:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1100, + "name": "Literal", + "src": "17039:1:1" + } + ], + "id": 1101, + "name": "BinaryOperation", + "src": "17035:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1093, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1102, + "name": "Identifier", + "src": "17042:12:1" + } + ], + "id": 1103, + "name": "FunctionCall", + "src": "17027:28:1" + } + ], + "id": 1104, + "name": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1097 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1089, + "type": "uint256", + "value": "a" + }, + "id": 1105, + "name": "Identifier", + "src": "17072:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1106, + "name": "Identifier", + "src": "17076:1:1" + } + ], + "id": 1107, + "name": "BinaryOperation", + "src": "17072:5:1" + } + ], + "id": 1108, + "name": "Return", + "src": "17065:12:1" + } + ], + "id": 1109, + "name": "Block", + "src": "17017:67:1" + } + ], + "id": 1110, + "name": "FunctionDefinition", + "src": "16922:162:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1111, + "name": "StructuredDocumentation", + "src": "17090:635:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1112, + "name": "ElementaryTypeName", + "src": "17743:7:1" + } + ], + "id": 1113, + "name": "VariableDeclaration", + "src": "17743:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1114, + "name": "ElementaryTypeName", + "src": "17754:7:1" + } + ], + "id": 1115, + "name": "VariableDeclaration", + "src": "17754:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1134, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1116, + "name": "ElementaryTypeName", + "src": "17765:6:1" + } + ], + "id": 1117, + "name": "VariableDeclaration", + "src": "17765:26:1" + } + ], + "id": 1118, + "name": "ParameterList", + "src": "17742:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1119, + "name": "ElementaryTypeName", + "src": "17816:7:1" + } + ], + "id": 1120, + "name": "VariableDeclaration", + "src": "17816:7:1" + } + ], + "id": 1121, + "name": "ParameterList", + "src": "17815:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1122, + "name": "Identifier", + "src": "17835:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1123, + "name": "Identifier", + "src": "17843:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1124, + "name": "Literal", + "src": "17847:1:1" + } + ], + "id": 1125, + "name": "BinaryOperation", + "src": "17843:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1117, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1126, + "name": "Identifier", + "src": "17850:12:1" + } + ], + "id": 1127, + "name": "FunctionCall", + "src": "17835:28:1" + } + ], + "id": 1128, + "name": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1121 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "uint256", + "value": "a" + }, + "id": 1129, + "name": "Identifier", + "src": "17880:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1130, + "name": "Identifier", + "src": "17884:1:1" + } + ], + "id": 1131, + "name": "BinaryOperation", + "src": "17880:5:1" + } + ], + "id": 1132, + "name": "Return", + "src": "17873:12:1" + } + ], + "id": 1133, + "name": "Block", + "src": "17825:67:1" + } + ], + "id": 1134, + "name": "FunctionDefinition", + "src": "17730:162:1" + } + ], + "id": 1135, + "name": "ContractDefinition", + "src": "11300:6594:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 1136, + "name": "PragmaDirective", + "src": "17947:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Collection of functions related to the address type" + }, + "id": 1137, + "name": "StructuredDocumentation", + "src": "17980:67:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isContract", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1138, + "name": "StructuredDocumentation", + "src": "18070:565:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "account", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1139, + "name": "ElementaryTypeName", + "src": "18660:7:1" + } + ], + "id": 1140, + "name": "VariableDeclaration", + "src": "18660:15:1" + } + ], + "id": 1141, + "name": "ParameterList", + "src": "18659:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1142, + "name": "ElementaryTypeName", + "src": "18700:4:1" + } + ], + "id": 1143, + "name": "VariableDeclaration", + "src": "18700:4:1" + } + ], + "id": 1144, + "name": "ParameterList", + "src": "18699:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1146 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "size", + "scope": 1153, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1145, + "name": "ElementaryTypeName", + "src": "18903:7:1" + } + ], + "id": 1146, + "name": "VariableDeclaration", + "src": "18903:12:1" + } + ], + "id": 1147, + "name": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "operations": "{ size := extcodesize(account) }" + }, + "children": [], + "id": 1148, + "name": "InlineAssembly", + "src": "18981:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1144 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1146, + "type": "uint256", + "value": "size" + }, + "id": 1149, + "name": "Identifier", + "src": "19038:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1150, + "name": "Literal", + "src": "19045:1:1" + } + ], + "id": 1151, + "name": "BinaryOperation", + "src": "19038:8:1" + } + ], + "id": 1152, + "name": "Return", + "src": "19031:15:1" + } + ], + "id": 1153, + "name": "Block", + "src": "18706:347:1" + } + ], + "id": 1154, + "name": "FunctionDefinition", + "src": "18640:413:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sendValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1155, + "name": "StructuredDocumentation", + "src": "19059:906:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "recipient", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 1156, + "name": "ElementaryTypeName", + "src": "19989:15:1" + } + ], + "id": 1157, + "name": "VariableDeclaration", + "src": "19989:25:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "amount", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1158, + "name": "ElementaryTypeName", + "src": "20016:7:1" + } + ], + "id": 1159, + "name": "VariableDeclaration", + "src": "20016:14:1" + } + ], + "id": 1160, + "name": "ParameterList", + "src": "19988:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1161, + "name": "ParameterList", + "src": "20041:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1162, + "name": "Identifier", + "src": "20051:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1163, + "name": "ElementaryTypeName", + "src": "20059:7:1" + } + ], + "id": 1164, + "name": "ElementaryTypeNameExpression", + "src": "20059:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1165, + "name": "Identifier", + "src": "20067:4:1" + } + ], + "id": 1166, + "name": "FunctionCall", + "src": "20059:13:1" + } + ], + "id": 1167, + "name": "MemberAccess", + "src": "20059:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1168, + "name": "Identifier", + "src": "20084:6:1" + } + ], + "id": 1169, + "name": "BinaryOperation", + "src": "20059:31:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance\"", + "value": "Address: insufficient balance" + }, + "id": 1170, + "name": "Literal", + "src": "20092:31:1" + } + ], + "id": 1171, + "name": "FunctionCall", + "src": "20051:73:1" + } + ], + "id": 1172, + "name": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "attributes": { + "assignments": [ + 1174, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1187, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1173, + "name": "ElementaryTypeName", + "src": "20213:4:1" + } + ], + "id": 1174, + "name": "VariableDeclaration", + "src": "20213:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1157, + "type": "address payable", + "value": "recipient" + }, + "id": 1175, + "name": "Identifier", + "src": "20231:9:1" + } + ], + "id": 1176, + "name": "MemberAccess", + "src": "20231:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1177, + "name": "Identifier", + "src": "20254:6:1" + } + ], + "id": 1178, + "name": "FunctionCallOptions", + "src": "20231:31:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 1179, + "name": "Literal", + "src": "20263:2:1" + } + ], + "id": 1180, + "name": "FunctionCall", + "src": "20231:35:1" + } + ], + "id": 1181, + "name": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1182, + "name": "Identifier", + "src": "20276:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1174, + "type": "bool", + "value": "success" + }, + "id": 1183, + "name": "Identifier", + "src": "20284:7:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: unable to send value, recipient may have reverted\"", + "value": "Address: unable to send value, recipient may have reverted" + }, + "id": 1184, + "name": "Literal", + "src": "20293:60:1" + } + ], + "id": 1185, + "name": "FunctionCall", + "src": "20276:78:1" + } + ], + "id": 1186, + "name": "ExpressionStatement", + "src": "20276:78:1" + } + ], + "id": 1187, + "name": "Block", + "src": "20041:320:1" + } + ], + "id": 1188, + "name": "FunctionDefinition", + "src": "19970:391:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1189, + "name": "StructuredDocumentation", + "src": "20367:730:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1205, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1190, + "name": "ElementaryTypeName", + "src": "21124:7:1" + } + ], + "id": 1191, + "name": "VariableDeclaration", + "src": "21124:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1192, + "name": "ElementaryTypeName", + "src": "21140:5:1" + } + ], + "id": 1193, + "name": "VariableDeclaration", + "src": "21140:17:1" + } + ], + "id": 1194, + "name": "ParameterList", + "src": "21123:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1195, + "name": "ElementaryTypeName", + "src": "21177:5:1" + } + ], + "id": 1196, + "name": "VariableDeclaration", + "src": "21177:12:1" + } + ], + "id": 1197, + "name": "ParameterList", + "src": "21176:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1197 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionCall" + }, + "id": 1198, + "name": "Identifier", + "src": "21206:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1191, + "type": "address", + "value": "target" + }, + "id": 1199, + "name": "Identifier", + "src": "21219:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1193, + "type": "bytes memory", + "value": "data" + }, + "id": 1200, + "name": "Identifier", + "src": "21227:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call failed\"", + "value": "Address: low-level call failed" + }, + "id": 1201, + "name": "Literal", + "src": "21233:32:1" + } + ], + "id": 1202, + "name": "FunctionCall", + "src": "21206:60:1" + } + ], + "id": 1203, + "name": "Return", + "src": "21199:67:1" + } + ], + "id": 1204, + "name": "Block", + "src": "21191:82:1" + } + ], + "id": 1205, + "name": "FunctionDefinition", + "src": "21102:171:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1206, + "name": "StructuredDocumentation", + "src": "21279:211:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1225, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1207, + "name": "ElementaryTypeName", + "src": "21517:7:1" + } + ], + "id": 1208, + "name": "VariableDeclaration", + "src": "21517:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1209, + "name": "ElementaryTypeName", + "src": "21533:5:1" + } + ], + "id": 1210, + "name": "VariableDeclaration", + "src": "21533:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1211, + "name": "ElementaryTypeName", + "src": "21552:6:1" + } + ], + "id": 1212, + "name": "VariableDeclaration", + "src": "21552:26:1" + } + ], + "id": 1213, + "name": "ParameterList", + "src": "21516:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1214, + "name": "ElementaryTypeName", + "src": "21598:5:1" + } + ], + "id": 1215, + "name": "VariableDeclaration", + "src": "21598:12:1" + } + ], + "id": 1216, + "name": "ParameterList", + "src": "21597:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1216 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1217, + "name": "Identifier", + "src": "21629:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1208, + "type": "address", + "value": "target" + }, + "id": 1218, + "name": "Identifier", + "src": "21651:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1210, + "type": "bytes memory", + "value": "data" + }, + "id": 1219, + "name": "Identifier", + "src": "21659:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1220, + "name": "Literal", + "src": "21665:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1212, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1221, + "name": "Identifier", + "src": "21668:12:1" + } + ], + "id": 1222, + "name": "FunctionCall", + "src": "21629:52:1" + } + ], + "id": 1223, + "name": "Return", + "src": "21622:59:1" + } + ], + "id": 1224, + "name": "Block", + "src": "21612:76:1" + } + ], + "id": 1225, + "name": "FunctionDefinition", + "src": "21495:193:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1226, + "name": "StructuredDocumentation", + "src": "21694:351:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1227, + "name": "ElementaryTypeName", + "src": "22081:7:1" + } + ], + "id": 1228, + "name": "VariableDeclaration", + "src": "22081:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1229, + "name": "ElementaryTypeName", + "src": "22097:5:1" + } + ], + "id": 1230, + "name": "VariableDeclaration", + "src": "22097:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1231, + "name": "ElementaryTypeName", + "src": "22116:7:1" + } + ], + "id": 1232, + "name": "VariableDeclaration", + "src": "22116:13:1" + } + ], + "id": 1233, + "name": "ParameterList", + "src": "22080:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1234, + "name": "ElementaryTypeName", + "src": "22149:5:1" + } + ], + "id": 1235, + "name": "VariableDeclaration", + "src": "22149:12:1" + } + ], + "id": 1236, + "name": "ParameterList", + "src": "22148:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1236 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1237, + "name": "Identifier", + "src": "22180:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1228, + "type": "address", + "value": "target" + }, + "id": 1238, + "name": "Identifier", + "src": "22202:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1230, + "type": "bytes memory", + "value": "data" + }, + "id": 1239, + "name": "Identifier", + "src": "22210:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1232, + "type": "uint256", + "value": "value" + }, + "id": 1240, + "name": "Identifier", + "src": "22216:5:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call with value failed\"", + "value": "Address: low-level call with value failed" + }, + "id": 1241, + "name": "Literal", + "src": "22223:43:1" + } + ], + "id": 1242, + "name": "FunctionCall", + "src": "22180:87:1" + } + ], + "id": 1243, + "name": "Return", + "src": "22173:94:1" + } + ], + "id": 1244, + "name": "Block", + "src": "22163:111:1" + } + ], + "id": 1245, + "name": "FunctionDefinition", + "src": "22050:224:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1246, + "name": "StructuredDocumentation", + "src": "22280:237:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1247, + "name": "ElementaryTypeName", + "src": "22553:7:1" + } + ], + "id": 1248, + "name": "VariableDeclaration", + "src": "22553:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1249, + "name": "ElementaryTypeName", + "src": "22569:5:1" + } + ], + "id": 1250, + "name": "VariableDeclaration", + "src": "22569:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1251, + "name": "ElementaryTypeName", + "src": "22588:7:1" + } + ], + "id": 1252, + "name": "VariableDeclaration", + "src": "22588:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1253, + "name": "ElementaryTypeName", + "src": "22603:6:1" + } + ], + "id": 1254, + "name": "VariableDeclaration", + "src": "22603:26:1" + } + ], + "id": 1255, + "name": "ParameterList", + "src": "22552:78:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1256, + "name": "ElementaryTypeName", + "src": "22649:5:1" + } + ], + "id": 1257, + "name": "VariableDeclaration", + "src": "22649:12:1" + } + ], + "id": 1258, + "name": "ParameterList", + "src": "22648:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1259, + "name": "Identifier", + "src": "22673:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1260, + "name": "ElementaryTypeName", + "src": "22681:7:1" + } + ], + "id": 1261, + "name": "ElementaryTypeNameExpression", + "src": "22681:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1262, + "name": "Identifier", + "src": "22689:4:1" + } + ], + "id": 1263, + "name": "FunctionCall", + "src": "22681:13:1" + } + ], + "id": 1264, + "name": "MemberAccess", + "src": "22681:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1265, + "name": "Identifier", + "src": "22706:5:1" + } + ], + "id": 1266, + "name": "BinaryOperation", + "src": "22681:30:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance for call\"", + "value": "Address: insufficient balance for call" + }, + "id": 1267, + "name": "Literal", + "src": "22713:40:1" + } + ], + "id": 1268, + "name": "FunctionCall", + "src": "22673:81:1" + } + ], + "id": 1269, + "name": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1270, + "name": "Identifier", + "src": "22764:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1271, + "name": "Identifier", + "src": "22772:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1272, + "name": "Identifier", + "src": "22783:6:1" + } + ], + "id": 1273, + "name": "FunctionCall", + "src": "22772:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: call to non-contract\"", + "value": "Address: call to non-contract" + }, + "id": 1274, + "name": "Literal", + "src": "22792:31:1" + } + ], + "id": 1275, + "name": "FunctionCall", + "src": "22764:60:1" + } + ], + "id": 1276, + "name": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "attributes": { + "assignments": [ + 1278, + 1280 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1294, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1277, + "name": "ElementaryTypeName", + "src": "22895:4:1" + } + ], + "id": 1278, + "name": "VariableDeclaration", + "src": "22895:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1279, + "name": "ElementaryTypeName", + "src": "22909:5:1" + } + ], + "id": 1280, + "name": "VariableDeclaration", + "src": "22909:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1281, + "name": "Identifier", + "src": "22936:6:1" + } + ], + "id": 1282, + "name": "MemberAccess", + "src": "22936:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1283, + "name": "Identifier", + "src": "22956:5:1" + } + ], + "id": 1284, + "name": "FunctionCallOptions", + "src": "22936:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1250, + "type": "bytes memory", + "value": "data" + }, + "id": 1285, + "name": "Identifier", + "src": "22964:4:1" + } + ], + "id": 1286, + "name": "FunctionCall", + "src": "22936:33:1" + } + ], + "id": 1287, + "name": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "attributes": { + "functionReturnParameters": 1258 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1288, + "name": "Identifier", + "src": "22986:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1278, + "type": "bool", + "value": "success" + }, + "id": 1289, + "name": "Identifier", + "src": "23004:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1280, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1290, + "name": "Identifier", + "src": "23013:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1254, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1291, + "name": "Identifier", + "src": "23025:12:1" + } + ], + "id": 1292, + "name": "FunctionCall", + "src": "22986:52:1" + } + ], + "id": 1293, + "name": "Return", + "src": "22979:59:1" + } + ], + "id": 1294, + "name": "Block", + "src": "22663:382:1" + } + ], + "id": 1295, + "name": "FunctionDefinition", + "src": "22522:523:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1296, + "name": "StructuredDocumentation", + "src": "23051:166:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1312, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1297, + "name": "ElementaryTypeName", + "src": "23250:7:1" + } + ], + "id": 1298, + "name": "VariableDeclaration", + "src": "23250:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1299, + "name": "ElementaryTypeName", + "src": "23266:5:1" + } + ], + "id": 1300, + "name": "VariableDeclaration", + "src": "23266:17:1" + } + ], + "id": 1301, + "name": "ParameterList", + "src": "23249:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1302, + "name": "ElementaryTypeName", + "src": "23308:5:1" + } + ], + "id": 1303, + "name": "VariableDeclaration", + "src": "23308:12:1" + } + ], + "id": 1304, + "name": "ParameterList", + "src": "23307:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1304 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "type": "function (address,bytes memory,string memory) view returns (bytes memory)", + "value": "functionStaticCall" + }, + "id": 1305, + "name": "Identifier", + "src": "23339:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1298, + "type": "address", + "value": "target" + }, + "id": 1306, + "name": "Identifier", + "src": "23358:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1300, + "type": "bytes memory", + "value": "data" + }, + "id": 1307, + "name": "Identifier", + "src": "23366:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level static call failed\"", + "value": "Address: low-level static call failed" + }, + "id": 1308, + "name": "Literal", + "src": "23372:39:1" + } + ], + "id": 1309, + "name": "FunctionCall", + "src": "23339:73:1" + } + ], + "id": 1310, + "name": "Return", + "src": "23332:80:1" + } + ], + "id": 1311, + "name": "Block", + "src": "23322:97:1" + } + ], + "id": 1312, + "name": "FunctionDefinition", + "src": "23222:197:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1313, + "name": "StructuredDocumentation", + "src": "23425:173:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1347, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1314, + "name": "ElementaryTypeName", + "src": "23631:7:1" + } + ], + "id": 1315, + "name": "VariableDeclaration", + "src": "23631:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1316, + "name": "ElementaryTypeName", + "src": "23647:5:1" + } + ], + "id": 1317, + "name": "VariableDeclaration", + "src": "23647:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1318, + "name": "ElementaryTypeName", + "src": "23666:6:1" + } + ], + "id": 1319, + "name": "VariableDeclaration", + "src": "23666:26:1" + } + ], + "id": 1320, + "name": "ParameterList", + "src": "23630:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1321, + "name": "ElementaryTypeName", + "src": "23717:5:1" + } + ], + "id": 1322, + "name": "VariableDeclaration", + "src": "23717:12:1" + } + ], + "id": 1323, + "name": "ParameterList", + "src": "23716:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1324, + "name": "Identifier", + "src": "23741:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1325, + "name": "Identifier", + "src": "23749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1326, + "name": "Identifier", + "src": "23760:6:1" + } + ], + "id": 1327, + "name": "FunctionCall", + "src": "23749:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: static call to non-contract\"", + "value": "Address: static call to non-contract" + }, + "id": 1328, + "name": "Literal", + "src": "23769:38:1" + } + ], + "id": 1329, + "name": "FunctionCall", + "src": "23741:67:1" + } + ], + "id": 1330, + "name": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "attributes": { + "assignments": [ + 1332, + 1334 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1346, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1331, + "name": "ElementaryTypeName", + "src": "23879:4:1" + } + ], + "id": 1332, + "name": "VariableDeclaration", + "src": "23879:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1346, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1333, + "name": "ElementaryTypeName", + "src": "23893:5:1" + } + ], + "id": 1334, + "name": "VariableDeclaration", + "src": "23893:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "staticcall", + "type": "function (bytes memory) view returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1335, + "name": "Identifier", + "src": "23920:6:1" + } + ], + "id": 1336, + "name": "MemberAccess", + "src": "23920:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1317, + "type": "bytes memory", + "value": "data" + }, + "id": 1337, + "name": "Identifier", + "src": "23938:4:1" + } + ], + "id": 1338, + "name": "FunctionCall", + "src": "23920:23:1" + } + ], + "id": 1339, + "name": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "attributes": { + "functionReturnParameters": 1323 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1340, + "name": "Identifier", + "src": "23960:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1332, + "type": "bool", + "value": "success" + }, + "id": 1341, + "name": "Identifier", + "src": "23978:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1334, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1342, + "name": "Identifier", + "src": "23987:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1319, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1343, + "name": "Identifier", + "src": "23999:12:1" + } + ], + "id": 1344, + "name": "FunctionCall", + "src": "23960:52:1" + } + ], + "id": 1345, + "name": "Return", + "src": "23953:59:1" + } + ], + "id": 1346, + "name": "Block", + "src": "23731:288:1" + } + ], + "id": 1347, + "name": "FunctionDefinition", + "src": "23603:416:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1348, + "name": "StructuredDocumentation", + "src": "24025:168:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1364, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1349, + "name": "ElementaryTypeName", + "src": "24228:7:1" + } + ], + "id": 1350, + "name": "VariableDeclaration", + "src": "24228:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1351, + "name": "ElementaryTypeName", + "src": "24244:5:1" + } + ], + "id": 1352, + "name": "VariableDeclaration", + "src": "24244:17:1" + } + ], + "id": 1353, + "name": "ParameterList", + "src": "24227:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1354, + "name": "ElementaryTypeName", + "src": "24281:5:1" + } + ], + "id": 1355, + "name": "VariableDeclaration", + "src": "24281:12:1" + } + ], + "id": 1356, + "name": "ParameterList", + "src": "24280:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1356 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionDelegateCall" + }, + "id": 1357, + "name": "Identifier", + "src": "24312:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1350, + "type": "address", + "value": "target" + }, + "id": 1358, + "name": "Identifier", + "src": "24333:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1352, + "type": "bytes memory", + "value": "data" + }, + "id": 1359, + "name": "Identifier", + "src": "24341:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level delegate call failed\"", + "value": "Address: low-level delegate call failed" + }, + "id": 1360, + "name": "Literal", + "src": "24347:41:1" + } + ], + "id": 1361, + "name": "FunctionCall", + "src": "24312:77:1" + } + ], + "id": 1362, + "name": "Return", + "src": "24305:84:1" + } + ], + "id": 1363, + "name": "Block", + "src": "24295:101:1" + } + ], + "id": 1364, + "name": "FunctionDefinition", + "src": "24198:198:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1365, + "name": "StructuredDocumentation", + "src": "24402:175:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1399, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1366, + "name": "ElementaryTypeName", + "src": "24612:7:1" + } + ], + "id": 1367, + "name": "VariableDeclaration", + "src": "24612:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1368, + "name": "ElementaryTypeName", + "src": "24628:5:1" + } + ], + "id": 1369, + "name": "VariableDeclaration", + "src": "24628:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1370, + "name": "ElementaryTypeName", + "src": "24647:6:1" + } + ], + "id": 1371, + "name": "VariableDeclaration", + "src": "24647:26:1" + } + ], + "id": 1372, + "name": "ParameterList", + "src": "24611:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1373, + "name": "ElementaryTypeName", + "src": "24693:5:1" + } + ], + "id": 1374, + "name": "VariableDeclaration", + "src": "24693:12:1" + } + ], + "id": 1375, + "name": "ParameterList", + "src": "24692:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1376, + "name": "Identifier", + "src": "24717:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1377, + "name": "Identifier", + "src": "24725:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1378, + "name": "Identifier", + "src": "24736:6:1" + } + ], + "id": 1379, + "name": "FunctionCall", + "src": "24725:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: delegate call to non-contract\"", + "value": "Address: delegate call to non-contract" + }, + "id": 1380, + "name": "Literal", + "src": "24745:40:1" + } + ], + "id": 1381, + "name": "FunctionCall", + "src": "24717:69:1" + } + ], + "id": 1382, + "name": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "attributes": { + "assignments": [ + 1384, + 1386 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1398, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1383, + "name": "ElementaryTypeName", + "src": "24857:4:1" + } + ], + "id": 1384, + "name": "VariableDeclaration", + "src": "24857:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1398, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1385, + "name": "ElementaryTypeName", + "src": "24871:5:1" + } + ], + "id": 1386, + "name": "VariableDeclaration", + "src": "24871:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "delegatecall", + "type": "function (bytes memory) returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1387, + "name": "Identifier", + "src": "24898:6:1" + } + ], + "id": 1388, + "name": "MemberAccess", + "src": "24898:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1369, + "type": "bytes memory", + "value": "data" + }, + "id": 1389, + "name": "Identifier", + "src": "24918:4:1" + } + ], + "id": 1390, + "name": "FunctionCall", + "src": "24898:25:1" + } + ], + "id": 1391, + "name": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "attributes": { + "functionReturnParameters": 1375 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1392, + "name": "Identifier", + "src": "24940:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1384, + "type": "bool", + "value": "success" + }, + "id": 1393, + "name": "Identifier", + "src": "24958:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1386, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1394, + "name": "Identifier", + "src": "24967:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1371, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1395, + "name": "Identifier", + "src": "24979:12:1" + } + ], + "id": 1396, + "name": "FunctionCall", + "src": "24940:52:1" + } + ], + "id": 1397, + "name": "Return", + "src": "24933:59:1" + } + ], + "id": 1398, + "name": "Block", + "src": "24707:292:1" + } + ], + "id": 1399, + "name": "FunctionDefinition", + "src": "24582:417:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_verifyCallResult", + "scope": 1430, + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1429, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1400, + "name": "ElementaryTypeName", + "src": "25032:4:1" + } + ], + "id": 1401, + "name": "VariableDeclaration", + "src": "25032:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1402, + "name": "ElementaryTypeName", + "src": "25046:5:1" + } + ], + "id": 1403, + "name": "VariableDeclaration", + "src": "25046:23:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1404, + "name": "ElementaryTypeName", + "src": "25071:6:1" + } + ], + "id": 1405, + "name": "VariableDeclaration", + "src": "25071:26:1" + } + ], + "id": 1406, + "name": "ParameterList", + "src": "25031:67:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1407, + "name": "ElementaryTypeName", + "src": "25120:5:1" + } + ], + "id": 1408, + "name": "VariableDeclaration", + "src": "25120:12:1" + } + ], + "id": 1409, + "name": "ParameterList", + "src": "25119:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1401, + "type": "bool", + "value": "success" + }, + "id": 1410, + "name": "Identifier", + "src": "25148:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1409 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1411, + "name": "Identifier", + "src": "25178:10:1" + } + ], + "id": 1412, + "name": "Return", + "src": "25171:17:1" + } + ], + "id": 1413, + "name": "Block", + "src": "25157:42:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1414, + "name": "Identifier", + "src": "25289:10:1" + } + ], + "id": 1415, + "name": "MemberAccess", + "src": "25289:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1416, + "name": "Literal", + "src": "25309:1:1" + } + ], + "id": 1417, + "name": "BinaryOperation", + "src": "25289:21:1" + }, + { + "children": [ + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "operations": "{\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n}" + }, + "children": [], + "id": 1418, + "name": "InlineAssembly", + "src": "25487:154:1" + } + ], + "id": 1419, + "name": "Block", + "src": "25312:343:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "type": "function (string memory) pure", + "value": "revert" + }, + "id": 1420, + "name": "Identifier", + "src": "25679:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1405, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1421, + "name": "Identifier", + "src": "25686:12:1" + } + ], + "id": 1422, + "name": "FunctionCall", + "src": "25679:20:1" + } + ], + "id": 1423, + "name": "ExpressionStatement", + "src": "25679:20:1" + } + ], + "id": 1424, + "name": "Block", + "src": "25661:53:1" + } + ], + "id": 1425, + "name": "IfStatement", + "src": "25285:429:1" + } + ], + "id": 1426, + "name": "Block", + "src": "25205:519:1" + } + ], + "id": 1427, + "name": "IfStatement", + "src": "25144:580:1" + } + ], + "id": 1428, + "name": "Block", + "src": "25134:596:1" + } + ], + "id": 1429, + "name": "FunctionDefinition", + "src": "25005:725:1" + } + ], + "id": 1430, + "name": "ContractDefinition", + "src": "18048:7684:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1431, + "name": "PragmaDirective", + "src": "25791:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "id": 1432, + "name": "StructuredDocumentation", + "src": "25824:686:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Set", + "name": "Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_values", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "bytes32[]" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1433, + "name": "ElementaryTypeName", + "src": "27033:7:1" + } + ], + "id": 1434, + "name": "ArrayTypeName", + "src": "27033:9:1" + } + ], + "id": 1435, + "name": "VariableDeclaration", + "src": "27033:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1436, + "name": "ElementaryTypeName", + "src": "27193:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1437, + "name": "ElementaryTypeName", + "src": "27204:7:1" + } + ], + "id": 1438, + "name": "Mapping", + "src": "27184:28:1" + } + ], + "id": 1439, + "name": "VariableDeclaration", + "src": "27184:37:1" + } + ], + "id": 1440, + "name": "StructDefinition", + "src": "26979:249:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1441, + "name": "StructuredDocumentation", + "src": "27234:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1481, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1442, + "name": "UserDefinedTypeName", + "src": "27412:3:1" + } + ], + "id": 1443, + "name": "VariableDeclaration", + "src": "27412:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1444, + "name": "ElementaryTypeName", + "src": "27429:7:1" + } + ], + "id": 1445, + "name": "VariableDeclaration", + "src": "27429:13:1" + } + ], + "id": 1446, + "name": "ParameterList", + "src": "27411:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1447, + "name": "ElementaryTypeName", + "src": "27461:4:1" + } + ], + "id": 1448, + "name": "VariableDeclaration", + "src": "27461:4:1" + } + ], + "id": 1449, + "name": "ParameterList", + "src": "27460:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1450, + "name": "Identifier", + "src": "27482:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1451, + "name": "Identifier", + "src": "27492:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1452, + "name": "Identifier", + "src": "27497:5:1" + } + ], + "id": 1453, + "name": "FunctionCall", + "src": "27482:21:1" + } + ], + "id": 1454, + "name": "UnaryOperation", + "src": "27481:22:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1455, + "name": "Identifier", + "src": "27519:3:1" + } + ], + "id": 1458, + "name": "MemberAccess", + "src": "27519:11:1" + } + ], + "id": 1459, + "name": "MemberAccess", + "src": "27519:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1460, + "name": "Identifier", + "src": "27536:5:1" + } + ], + "id": 1461, + "name": "FunctionCall", + "src": "27519:23:1" + } + ], + "id": 1462, + "name": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1463, + "name": "Identifier", + "src": "27677:3:1" + } + ], + "id": 1466, + "name": "MemberAccess", + "src": "27677:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1465, + "name": "Identifier", + "src": "27690:5:1" + } + ], + "id": 1467, + "name": "IndexAccess", + "src": "27677:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1468, + "name": "Identifier", + "src": "27699:3:1" + } + ], + "id": 1469, + "name": "MemberAccess", + "src": "27699:11:1" + } + ], + "id": 1470, + "name": "MemberAccess", + "src": "27699:18:1" + } + ], + "id": 1471, + "name": "Assignment", + "src": "27677:40:1" + } + ], + "id": 1472, + "name": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1473, + "name": "Literal", + "src": "27738:4:1" + } + ], + "id": 1474, + "name": "Return", + "src": "27731:11:1" + } + ], + "id": 1475, + "name": "Block", + "src": "27505:248:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1476, + "name": "Literal", + "src": "27780:5:1" + } + ], + "id": 1477, + "name": "Return", + "src": "27773:12:1" + } + ], + "id": 1478, + "name": "Block", + "src": "27759:37:1" + } + ], + "id": 1479, + "name": "IfStatement", + "src": "27477:319:1" + } + ], + "id": 1480, + "name": "Block", + "src": "27467:335:1" + } + ], + "id": 1481, + "name": "FunctionDefinition", + "src": "27398:404:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1482, + "name": "StructuredDocumentation", + "src": "27808:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1561, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1483, + "name": "UserDefinedTypeName", + "src": "27987:3:1" + } + ], + "id": 1484, + "name": "VariableDeclaration", + "src": "27987:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1485, + "name": "ElementaryTypeName", + "src": "28004:7:1" + } + ], + "id": 1486, + "name": "VariableDeclaration", + "src": "28004:13:1" + } + ], + "id": 1487, + "name": "ParameterList", + "src": "27986:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1488, + "name": "ElementaryTypeName", + "src": "28036:4:1" + } + ], + "id": 1489, + "name": "VariableDeclaration", + "src": "28036:4:1" + } + ], + "id": 1490, + "name": "ParameterList", + "src": "28035:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1492 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "valueIndex", + "scope": 1560, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1491, + "name": "ElementaryTypeName", + "src": "28152:7:1" + } + ], + "id": 1492, + "name": "VariableDeclaration", + "src": "28152:18:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1493, + "name": "Identifier", + "src": "28173:3:1" + } + ], + "id": 1494, + "name": "MemberAccess", + "src": "28173:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1495, + "name": "Identifier", + "src": "28186:5:1" + } + ], + "id": 1496, + "name": "IndexAccess", + "src": "28173:19:1" + } + ], + "id": 1497, + "name": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1498, + "name": "Identifier", + "src": "28207:10:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1499, + "name": "Literal", + "src": "28221:1:1" + } + ], + "id": 1500, + "name": "BinaryOperation", + "src": "28207:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1501, + "name": "ElementaryTypeName", + "src": "28564:7:1" + } + ], + "id": 1502, + "name": "VariableDeclaration", + "src": "28564:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1503, + "name": "Identifier", + "src": "28588:10:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1504, + "name": "Literal", + "src": "28601:1:1" + } + ], + "id": 1505, + "name": "BinaryOperation", + "src": "28588:14:1" + } + ], + "id": 1506, + "name": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "attributes": { + "assignments": [ + 1508 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1507, + "name": "ElementaryTypeName", + "src": "28616:7:1" + } + ], + "id": 1508, + "name": "VariableDeclaration", + "src": "28616:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1509, + "name": "Identifier", + "src": "28636:3:1" + } + ], + "id": 1510, + "name": "MemberAccess", + "src": "28636:11:1" + } + ], + "id": 1511, + "name": "MemberAccess", + "src": "28636:18:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1512, + "name": "Literal", + "src": "28657:1:1" + } + ], + "id": 1513, + "name": "BinaryOperation", + "src": "28636:22:1" + } + ], + "id": 1514, + "name": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "attributes": { + "assignments": [ + 1516 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastvalue", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1515, + "name": "ElementaryTypeName", + "src": "28898:7:1" + } + ], + "id": 1516, + "name": "VariableDeclaration", + "src": "28898:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1517, + "name": "Identifier", + "src": "28918:3:1" + } + ], + "id": 1518, + "name": "MemberAccess", + "src": "28918:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1508, + "type": "uint256", + "value": "lastIndex" + }, + "id": 1519, + "name": "Identifier", + "src": "28930:9:1" + } + ], + "id": 1520, + "name": "IndexAccess", + "src": "28918:22:1" + } + ], + "id": 1521, + "name": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1522, + "name": "Identifier", + "src": "29032:3:1" + } + ], + "id": 1525, + "name": "MemberAccess", + "src": "29032:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1524, + "name": "Identifier", + "src": "29044:13:1" + } + ], + "id": 1526, + "name": "IndexAccess", + "src": "29032:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1527, + "name": "Identifier", + "src": "29061:9:1" + } + ], + "id": 1528, + "name": "Assignment", + "src": "29032:38:1" + } + ], + "id": 1529, + "name": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1530, + "name": "Identifier", + "src": "29136:3:1" + } + ], + "id": 1533, + "name": "MemberAccess", + "src": "29136:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1532, + "name": "Identifier", + "src": "29149:9:1" + } + ], + "id": 1534, + "name": "IndexAccess", + "src": "29136:23:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1535, + "name": "Identifier", + "src": "29162:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1536, + "name": "Literal", + "src": "29178:1:1" + } + ], + "id": 1537, + "name": "BinaryOperation", + "src": "29162:17:1" + } + ], + "id": 1538, + "name": "Assignment", + "src": "29136:43:1" + } + ], + "id": 1539, + "name": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1540, + "name": "Identifier", + "src": "29285:3:1" + } + ], + "id": 1543, + "name": "MemberAccess", + "src": "29285:11:1" + } + ], + "id": 1544, + "name": "MemberAccess", + "src": "29285:15:1" + } + ], + "id": 1545, + "name": "FunctionCall", + "src": "29285:17:1" + } + ], + "id": 1546, + "name": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1547, + "name": "Identifier", + "src": "29377:3:1" + } + ], + "id": 1548, + "name": "MemberAccess", + "src": "29377:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1549, + "name": "Identifier", + "src": "29390:5:1" + } + ], + "id": 1550, + "name": "IndexAccess", + "src": "29377:19:1" + } + ], + "id": 1551, + "name": "UnaryOperation", + "src": "29370:26:1" + } + ], + "id": 1552, + "name": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1553, + "name": "Literal", + "src": "29418:4:1" + } + ], + "id": 1554, + "name": "Return", + "src": "29411:11:1" + } + ], + "id": 1555, + "name": "Block", + "src": "28224:1209:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1556, + "name": "Literal", + "src": "29460:5:1" + } + ], + "id": 1557, + "name": "Return", + "src": "29453:12:1" + } + ], + "id": 1558, + "name": "Block", + "src": "29439:37:1" + } + ], + "id": 1559, + "name": "IfStatement", + "src": "28203:1273:1" + } + ], + "id": 1560, + "name": "Block", + "src": "28042:1440:1" + } + ], + "id": 1561, + "name": "FunctionDefinition", + "src": "27970:1512:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1562, + "name": "StructuredDocumentation", + "src": "29488:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1579, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1563, + "name": "UserDefinedTypeName", + "src": "29582:3:1" + } + ], + "id": 1564, + "name": "VariableDeclaration", + "src": "29582:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1565, + "name": "ElementaryTypeName", + "src": "29599:7:1" + } + ], + "id": 1566, + "name": "VariableDeclaration", + "src": "29599:13:1" + } + ], + "id": 1567, + "name": "ParameterList", + "src": "29581:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1568, + "name": "ElementaryTypeName", + "src": "29636:4:1" + } + ], + "id": 1569, + "name": "VariableDeclaration", + "src": "29636:4:1" + } + ], + "id": 1570, + "name": "ParameterList", + "src": "29635:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1570 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1564, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1571, + "name": "Identifier", + "src": "29659:3:1" + } + ], + "id": 1572, + "name": "MemberAccess", + "src": "29659:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1566, + "type": "bytes32", + "value": "value" + }, + "id": 1573, + "name": "Identifier", + "src": "29672:5:1" + } + ], + "id": 1574, + "name": "IndexAccess", + "src": "29659:19:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1575, + "name": "Literal", + "src": "29682:1:1" + } + ], + "id": 1576, + "name": "BinaryOperation", + "src": "29659:24:1" + } + ], + "id": 1577, + "name": "Return", + "src": "29652:31:1" + } + ], + "id": 1578, + "name": "Block", + "src": "29642:48:1" + } + ], + "id": 1579, + "name": "FunctionDefinition", + "src": "29563:127:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1580, + "name": "StructuredDocumentation", + "src": "29696:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1592, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1581, + "name": "UserDefinedTypeName", + "src": "29788:3:1" + } + ], + "id": 1582, + "name": "VariableDeclaration", + "src": "29788:15:1" + } + ], + "id": 1583, + "name": "ParameterList", + "src": "29787:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1592, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1584, + "name": "ElementaryTypeName", + "src": "29827:7:1" + } + ], + "id": 1585, + "name": "VariableDeclaration", + "src": "29827:7:1" + } + ], + "id": 1586, + "name": "ParameterList", + "src": "29826:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1586 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1582, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1587, + "name": "Identifier", + "src": "29853:3:1" + } + ], + "id": 1588, + "name": "MemberAccess", + "src": "29853:11:1" + } + ], + "id": 1589, + "name": "MemberAccess", + "src": "29853:18:1" + } + ], + "id": 1590, + "name": "Return", + "src": "29846:25:1" + } + ], + "id": 1591, + "name": "Block", + "src": "29836:42:1" + } + ], + "id": 1592, + "name": "FunctionDefinition", + "src": "29771:107:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1593, + "name": "StructuredDocumentation", + "src": "29883:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1617, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1594, + "name": "UserDefinedTypeName", + "src": "30223:3:1" + } + ], + "id": 1595, + "name": "VariableDeclaration", + "src": "30223:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1596, + "name": "ElementaryTypeName", + "src": "30240:7:1" + } + ], + "id": 1597, + "name": "VariableDeclaration", + "src": "30240:13:1" + } + ], + "id": 1598, + "name": "ParameterList", + "src": "30222:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1599, + "name": "ElementaryTypeName", + "src": "30277:7:1" + } + ], + "id": 1600, + "name": "VariableDeclaration", + "src": "30277:7:1" + } + ], + "id": 1601, + "name": "ParameterList", + "src": "30276:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1602, + "name": "Identifier", + "src": "30296:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1603, + "name": "Identifier", + "src": "30304:3:1" + } + ], + "id": 1604, + "name": "MemberAccess", + "src": "30304:11:1" + } + ], + "id": 1605, + "name": "MemberAccess", + "src": "30304:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1606, + "name": "Identifier", + "src": "30325:5:1" + } + ], + "id": 1607, + "name": "BinaryOperation", + "src": "30304:26:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableSet: index out of bounds\"", + "value": "EnumerableSet: index out of bounds" + }, + "id": 1608, + "name": "Literal", + "src": "30332:36:1" + } + ], + "id": 1609, + "name": "FunctionCall", + "src": "30296:73:1" + } + ], + "id": 1610, + "name": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "attributes": { + "functionReturnParameters": 1601 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1611, + "name": "Identifier", + "src": "30386:3:1" + } + ], + "id": 1612, + "name": "MemberAccess", + "src": "30386:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1613, + "name": "Identifier", + "src": "30398:5:1" + } + ], + "id": 1614, + "name": "IndexAccess", + "src": "30386:18:1" + } + ], + "id": 1615, + "name": "Return", + "src": "30379:25:1" + } + ], + "id": 1616, + "name": "Block", + "src": "30286:125:1" + } + ], + "id": 1617, + "name": "FunctionDefinition", + "src": "30210:201:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Bytes32Set", + "name": "Bytes32Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1620, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1618, + "name": "UserDefinedTypeName", + "src": "30464:3:1" + } + ], + "id": 1619, + "name": "VariableDeclaration", + "src": "30464:10:1" + } + ], + "id": 1620, + "name": "StructDefinition", + "src": "30436:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1621, + "name": "StructuredDocumentation", + "src": "30487:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1637, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1622, + "name": "UserDefinedTypeName", + "src": "30664:10:1" + } + ], + "id": 1623, + "name": "VariableDeclaration", + "src": "30664:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1624, + "name": "ElementaryTypeName", + "src": "30688:7:1" + } + ], + "id": 1625, + "name": "VariableDeclaration", + "src": "30688:13:1" + } + ], + "id": 1626, + "name": "ParameterList", + "src": "30663:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1627, + "name": "ElementaryTypeName", + "src": "30721:4:1" + } + ], + "id": 1628, + "name": "VariableDeclaration", + "src": "30721:4:1" + } + ], + "id": 1629, + "name": "ParameterList", + "src": "30720:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1629 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1630, + "name": "Identifier", + "src": "30744:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1623, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1631, + "name": "Identifier", + "src": "30749:3:1" + } + ], + "id": 1632, + "name": "MemberAccess", + "src": "30749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1625, + "type": "bytes32", + "value": "value" + }, + "id": 1633, + "name": "Identifier", + "src": "30761:5:1" + } + ], + "id": 1634, + "name": "FunctionCall", + "src": "30744:23:1" + } + ], + "id": 1635, + "name": "Return", + "src": "30737:30:1" + } + ], + "id": 1636, + "name": "Block", + "src": "30727:47:1" + } + ], + "id": 1637, + "name": "FunctionDefinition", + "src": "30651:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1638, + "name": "StructuredDocumentation", + "src": "30780:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1654, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1639, + "name": "UserDefinedTypeName", + "src": "30958:10:1" + } + ], + "id": 1640, + "name": "VariableDeclaration", + "src": "30958:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1641, + "name": "ElementaryTypeName", + "src": "30982:7:1" + } + ], + "id": 1642, + "name": "VariableDeclaration", + "src": "30982:13:1" + } + ], + "id": 1643, + "name": "ParameterList", + "src": "30957:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1644, + "name": "ElementaryTypeName", + "src": "31015:4:1" + } + ], + "id": 1645, + "name": "VariableDeclaration", + "src": "31015:4:1" + } + ], + "id": 1646, + "name": "ParameterList", + "src": "31014:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1646 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1647, + "name": "Identifier", + "src": "31038:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1640, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1648, + "name": "Identifier", + "src": "31046:3:1" + } + ], + "id": 1649, + "name": "MemberAccess", + "src": "31046:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1642, + "type": "bytes32", + "value": "value" + }, + "id": 1650, + "name": "Identifier", + "src": "31058:5:1" + } + ], + "id": 1651, + "name": "FunctionCall", + "src": "31038:26:1" + } + ], + "id": 1652, + "name": "Return", + "src": "31031:33:1" + } + ], + "id": 1653, + "name": "Block", + "src": "31021:50:1" + } + ], + "id": 1654, + "name": "FunctionDefinition", + "src": "30942:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1655, + "name": "StructuredDocumentation", + "src": "31077:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1671, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1656, + "name": "UserDefinedTypeName", + "src": "31170:10:1" + } + ], + "id": 1657, + "name": "VariableDeclaration", + "src": "31170:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1658, + "name": "ElementaryTypeName", + "src": "31194:7:1" + } + ], + "id": 1659, + "name": "VariableDeclaration", + "src": "31194:13:1" + } + ], + "id": 1660, + "name": "ParameterList", + "src": "31169:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1661, + "name": "ElementaryTypeName", + "src": "31232:4:1" + } + ], + "id": 1662, + "name": "VariableDeclaration", + "src": "31232:4:1" + } + ], + "id": 1663, + "name": "ParameterList", + "src": "31231:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1663 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1664, + "name": "Identifier", + "src": "31255:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1657, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1665, + "name": "Identifier", + "src": "31265:3:1" + } + ], + "id": 1666, + "name": "MemberAccess", + "src": "31265:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1659, + "type": "bytes32", + "value": "value" + }, + "id": 1667, + "name": "Identifier", + "src": "31277:5:1" + } + ], + "id": 1668, + "name": "FunctionCall", + "src": "31255:28:1" + } + ], + "id": 1669, + "name": "Return", + "src": "31248:35:1" + } + ], + "id": 1670, + "name": "Block", + "src": "31238:52:1" + } + ], + "id": 1671, + "name": "FunctionDefinition", + "src": "31152:138:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1672, + "name": "StructuredDocumentation", + "src": "31296:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1685, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1673, + "name": "UserDefinedTypeName", + "src": "31387:10:1" + } + ], + "id": 1674, + "name": "VariableDeclaration", + "src": "31387:22:1" + } + ], + "id": 1675, + "name": "ParameterList", + "src": "31386:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1685, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1676, + "name": "ElementaryTypeName", + "src": "31434:7:1" + } + ], + "id": 1677, + "name": "VariableDeclaration", + "src": "31434:7:1" + } + ], + "id": 1678, + "name": "ParameterList", + "src": "31433:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1678 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1679, + "name": "Identifier", + "src": "31460:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1674, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1680, + "name": "Identifier", + "src": "31468:3:1" + } + ], + "id": 1681, + "name": "MemberAccess", + "src": "31468:10:1" + } + ], + "id": 1682, + "name": "FunctionCall", + "src": "31460:19:1" + } + ], + "id": 1683, + "name": "Return", + "src": "31453:26:1" + } + ], + "id": 1684, + "name": "Block", + "src": "31443:43:1" + } + ], + "id": 1685, + "name": "FunctionDefinition", + "src": "31371:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1686, + "name": "StructuredDocumentation", + "src": "31491:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1702, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1687, + "name": "UserDefinedTypeName", + "src": "31830:10:1" + } + ], + "id": 1688, + "name": "VariableDeclaration", + "src": "31830:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1689, + "name": "ElementaryTypeName", + "src": "31854:7:1" + } + ], + "id": 1690, + "name": "VariableDeclaration", + "src": "31854:13:1" + } + ], + "id": 1691, + "name": "ParameterList", + "src": "31829:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1692, + "name": "ElementaryTypeName", + "src": "31892:7:1" + } + ], + "id": 1693, + "name": "VariableDeclaration", + "src": "31892:7:1" + } + ], + "id": 1694, + "name": "ParameterList", + "src": "31891:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1695, + "name": "Identifier", + "src": "31918:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1688, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1696, + "name": "Identifier", + "src": "31922:3:1" + } + ], + "id": 1697, + "name": "MemberAccess", + "src": "31922:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1690, + "type": "uint256", + "value": "index" + }, + "id": 1698, + "name": "Identifier", + "src": "31934:5:1" + } + ], + "id": 1699, + "name": "FunctionCall", + "src": "31918:22:1" + } + ], + "id": 1700, + "name": "Return", + "src": "31911:29:1" + } + ], + "id": 1701, + "name": "Block", + "src": "31901:46:1" + } + ], + "id": 1702, + "name": "FunctionDefinition", + "src": "31818:129:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.AddressSet", + "name": "AddressSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1705, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1703, + "name": "UserDefinedTypeName", + "src": "32000:3:1" + } + ], + "id": 1704, + "name": "VariableDeclaration", + "src": "32000:10:1" + } + ], + "id": 1705, + "name": "StructDefinition", + "src": "31972:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1706, + "name": "StructuredDocumentation", + "src": "32023:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1731, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1707, + "name": "UserDefinedTypeName", + "src": "32200:10:1" + } + ], + "id": 1708, + "name": "VariableDeclaration", + "src": "32200:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1709, + "name": "ElementaryTypeName", + "src": "32224:7:1" + } + ], + "id": 1710, + "name": "VariableDeclaration", + "src": "32224:13:1" + } + ], + "id": 1711, + "name": "ParameterList", + "src": "32199:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1712, + "name": "ElementaryTypeName", + "src": "32257:4:1" + } + ], + "id": 1713, + "name": "VariableDeclaration", + "src": "32257:4:1" + } + ], + "id": 1714, + "name": "ParameterList", + "src": "32256:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1714 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1715, + "name": "Identifier", + "src": "32280:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1708, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1716, + "name": "Identifier", + "src": "32285:3:1" + } + ], + "id": 1717, + "name": "MemberAccess", + "src": "32285:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1718, + "name": "ElementaryTypeName", + "src": "32297:7:1" + } + ], + "id": 1719, + "name": "ElementaryTypeNameExpression", + "src": "32297:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1720, + "name": "ElementaryTypeName", + "src": "32305:7:1" + } + ], + "id": 1721, + "name": "ElementaryTypeNameExpression", + "src": "32305:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1722, + "name": "ElementaryTypeName", + "src": "32313:7:1" + } + ], + "id": 1723, + "name": "ElementaryTypeNameExpression", + "src": "32313:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1710, + "type": "address", + "value": "value" + }, + "id": 1724, + "name": "Identifier", + "src": "32321:5:1" + } + ], + "id": 1725, + "name": "FunctionCall", + "src": "32313:14:1" + } + ], + "id": 1726, + "name": "FunctionCall", + "src": "32305:23:1" + } + ], + "id": 1727, + "name": "FunctionCall", + "src": "32297:32:1" + } + ], + "id": 1728, + "name": "FunctionCall", + "src": "32280:50:1" + } + ], + "id": 1729, + "name": "Return", + "src": "32273:57:1" + } + ], + "id": 1730, + "name": "Block", + "src": "32263:74:1" + } + ], + "id": 1731, + "name": "FunctionDefinition", + "src": "32187:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1732, + "name": "StructuredDocumentation", + "src": "32343:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1757, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1733, + "name": "UserDefinedTypeName", + "src": "32521:10:1" + } + ], + "id": 1734, + "name": "VariableDeclaration", + "src": "32521:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1735, + "name": "ElementaryTypeName", + "src": "32545:7:1" + } + ], + "id": 1736, + "name": "VariableDeclaration", + "src": "32545:13:1" + } + ], + "id": 1737, + "name": "ParameterList", + "src": "32520:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1738, + "name": "ElementaryTypeName", + "src": "32578:4:1" + } + ], + "id": 1739, + "name": "VariableDeclaration", + "src": "32578:4:1" + } + ], + "id": 1740, + "name": "ParameterList", + "src": "32577:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1740 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1741, + "name": "Identifier", + "src": "32601:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1734, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1742, + "name": "Identifier", + "src": "32609:3:1" + } + ], + "id": 1743, + "name": "MemberAccess", + "src": "32609:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1744, + "name": "ElementaryTypeName", + "src": "32621:7:1" + } + ], + "id": 1745, + "name": "ElementaryTypeNameExpression", + "src": "32621:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1746, + "name": "ElementaryTypeName", + "src": "32629:7:1" + } + ], + "id": 1747, + "name": "ElementaryTypeNameExpression", + "src": "32629:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1748, + "name": "ElementaryTypeName", + "src": "32637:7:1" + } + ], + "id": 1749, + "name": "ElementaryTypeNameExpression", + "src": "32637:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1736, + "type": "address", + "value": "value" + }, + "id": 1750, + "name": "Identifier", + "src": "32645:5:1" + } + ], + "id": 1751, + "name": "FunctionCall", + "src": "32637:14:1" + } + ], + "id": 1752, + "name": "FunctionCall", + "src": "32629:23:1" + } + ], + "id": 1753, + "name": "FunctionCall", + "src": "32621:32:1" + } + ], + "id": 1754, + "name": "FunctionCall", + "src": "32601:53:1" + } + ], + "id": 1755, + "name": "Return", + "src": "32594:60:1" + } + ], + "id": 1756, + "name": "Block", + "src": "32584:77:1" + } + ], + "id": 1757, + "name": "FunctionDefinition", + "src": "32505:156:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1758, + "name": "StructuredDocumentation", + "src": "32667:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1783, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1759, + "name": "UserDefinedTypeName", + "src": "32760:10:1" + } + ], + "id": 1760, + "name": "VariableDeclaration", + "src": "32760:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1761, + "name": "ElementaryTypeName", + "src": "32784:7:1" + } + ], + "id": 1762, + "name": "VariableDeclaration", + "src": "32784:13:1" + } + ], + "id": 1763, + "name": "ParameterList", + "src": "32759:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1764, + "name": "ElementaryTypeName", + "src": "32822:4:1" + } + ], + "id": 1765, + "name": "VariableDeclaration", + "src": "32822:4:1" + } + ], + "id": 1766, + "name": "ParameterList", + "src": "32821:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1766 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1767, + "name": "Identifier", + "src": "32845:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1760, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1768, + "name": "Identifier", + "src": "32855:3:1" + } + ], + "id": 1769, + "name": "MemberAccess", + "src": "32855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1770, + "name": "ElementaryTypeName", + "src": "32867:7:1" + } + ], + "id": 1771, + "name": "ElementaryTypeNameExpression", + "src": "32867:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1772, + "name": "ElementaryTypeName", + "src": "32875:7:1" + } + ], + "id": 1773, + "name": "ElementaryTypeNameExpression", + "src": "32875:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1774, + "name": "ElementaryTypeName", + "src": "32883:7:1" + } + ], + "id": 1775, + "name": "ElementaryTypeNameExpression", + "src": "32883:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1762, + "type": "address", + "value": "value" + }, + "id": 1776, + "name": "Identifier", + "src": "32891:5:1" + } + ], + "id": 1777, + "name": "FunctionCall", + "src": "32883:14:1" + } + ], + "id": 1778, + "name": "FunctionCall", + "src": "32875:23:1" + } + ], + "id": 1779, + "name": "FunctionCall", + "src": "32867:32:1" + } + ], + "id": 1780, + "name": "FunctionCall", + "src": "32845:55:1" + } + ], + "id": 1781, + "name": "Return", + "src": "32838:62:1" + } + ], + "id": 1782, + "name": "Block", + "src": "32828:79:1" + } + ], + "id": 1783, + "name": "FunctionDefinition", + "src": "32742:165:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1784, + "name": "StructuredDocumentation", + "src": "32913:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1797, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1785, + "name": "UserDefinedTypeName", + "src": "33004:10:1" + } + ], + "id": 1786, + "name": "VariableDeclaration", + "src": "33004:22:1" + } + ], + "id": 1787, + "name": "ParameterList", + "src": "33003:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1797, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1788, + "name": "ElementaryTypeName", + "src": "33051:7:1" + } + ], + "id": 1789, + "name": "VariableDeclaration", + "src": "33051:7:1" + } + ], + "id": 1790, + "name": "ParameterList", + "src": "33050:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1790 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1791, + "name": "Identifier", + "src": "33077:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1786, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1792, + "name": "Identifier", + "src": "33085:3:1" + } + ], + "id": 1793, + "name": "MemberAccess", + "src": "33085:10:1" + } + ], + "id": 1794, + "name": "FunctionCall", + "src": "33077:19:1" + } + ], + "id": 1795, + "name": "Return", + "src": "33070:26:1" + } + ], + "id": 1796, + "name": "Block", + "src": "33060:43:1" + } + ], + "id": 1797, + "name": "FunctionDefinition", + "src": "32988:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1798, + "name": "StructuredDocumentation", + "src": "33108:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1823, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1799, + "name": "UserDefinedTypeName", + "src": "33447:10:1" + } + ], + "id": 1800, + "name": "VariableDeclaration", + "src": "33447:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1801, + "name": "ElementaryTypeName", + "src": "33471:7:1" + } + ], + "id": 1802, + "name": "VariableDeclaration", + "src": "33471:13:1" + } + ], + "id": 1803, + "name": "ParameterList", + "src": "33446:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1804, + "name": "ElementaryTypeName", + "src": "33509:7:1" + } + ], + "id": 1805, + "name": "VariableDeclaration", + "src": "33509:7:1" + } + ], + "id": 1806, + "name": "ParameterList", + "src": "33508:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1806 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1807, + "name": "ElementaryTypeName", + "src": "33535:7:1" + } + ], + "id": 1808, + "name": "ElementaryTypeNameExpression", + "src": "33535:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1809, + "name": "ElementaryTypeName", + "src": "33543:7:1" + } + ], + "id": 1810, + "name": "ElementaryTypeNameExpression", + "src": "33543:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1811, + "name": "ElementaryTypeName", + "src": "33551:7:1" + } + ], + "id": 1812, + "name": "ElementaryTypeNameExpression", + "src": "33551:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1813, + "name": "Identifier", + "src": "33559:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1800, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1814, + "name": "Identifier", + "src": "33563:3:1" + } + ], + "id": 1815, + "name": "MemberAccess", + "src": "33563:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1802, + "type": "uint256", + "value": "index" + }, + "id": 1816, + "name": "Identifier", + "src": "33575:5:1" + } + ], + "id": 1817, + "name": "FunctionCall", + "src": "33559:22:1" + } + ], + "id": 1818, + "name": "FunctionCall", + "src": "33551:31:1" + } + ], + "id": 1819, + "name": "FunctionCall", + "src": "33543:40:1" + } + ], + "id": 1820, + "name": "FunctionCall", + "src": "33535:49:1" + } + ], + "id": 1821, + "name": "Return", + "src": "33528:56:1" + } + ], + "id": 1822, + "name": "Block", + "src": "33518:73:1" + } + ], + "id": 1823, + "name": "FunctionDefinition", + "src": "33435:156:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.UintSet", + "name": "UintSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1826, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1824, + "name": "UserDefinedTypeName", + "src": "33639:3:1" + } + ], + "id": 1825, + "name": "VariableDeclaration", + "src": "33639:10:1" + } + ], + "id": 1826, + "name": "StructDefinition", + "src": "33614:42:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1827, + "name": "StructuredDocumentation", + "src": "33662:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1846, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1828, + "name": "UserDefinedTypeName", + "src": "33839:7:1" + } + ], + "id": 1829, + "name": "VariableDeclaration", + "src": "33839:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1830, + "name": "ElementaryTypeName", + "src": "33860:7:1" + } + ], + "id": 1831, + "name": "VariableDeclaration", + "src": "33860:13:1" + } + ], + "id": 1832, + "name": "ParameterList", + "src": "33838:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1833, + "name": "ElementaryTypeName", + "src": "33893:4:1" + } + ], + "id": 1834, + "name": "VariableDeclaration", + "src": "33893:4:1" + } + ], + "id": 1835, + "name": "ParameterList", + "src": "33892:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1835 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1836, + "name": "Identifier", + "src": "33916:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1829, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1837, + "name": "Identifier", + "src": "33921:3:1" + } + ], + "id": 1838, + "name": "MemberAccess", + "src": "33921:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1839, + "name": "ElementaryTypeName", + "src": "33933:7:1" + } + ], + "id": 1840, + "name": "ElementaryTypeNameExpression", + "src": "33933:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1831, + "type": "uint256", + "value": "value" + }, + "id": 1841, + "name": "Identifier", + "src": "33941:5:1" + } + ], + "id": 1842, + "name": "FunctionCall", + "src": "33933:14:1" + } + ], + "id": 1843, + "name": "FunctionCall", + "src": "33916:32:1" + } + ], + "id": 1844, + "name": "Return", + "src": "33909:39:1" + } + ], + "id": 1845, + "name": "Block", + "src": "33899:56:1" + } + ], + "id": 1846, + "name": "FunctionDefinition", + "src": "33826:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1847, + "name": "StructuredDocumentation", + "src": "33961:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1866, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1848, + "name": "UserDefinedTypeName", + "src": "34139:7:1" + } + ], + "id": 1849, + "name": "VariableDeclaration", + "src": "34139:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1850, + "name": "ElementaryTypeName", + "src": "34160:7:1" + } + ], + "id": 1851, + "name": "VariableDeclaration", + "src": "34160:13:1" + } + ], + "id": 1852, + "name": "ParameterList", + "src": "34138:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1853, + "name": "ElementaryTypeName", + "src": "34193:4:1" + } + ], + "id": 1854, + "name": "VariableDeclaration", + "src": "34193:4:1" + } + ], + "id": 1855, + "name": "ParameterList", + "src": "34192:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1855 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1856, + "name": "Identifier", + "src": "34216:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1849, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1857, + "name": "Identifier", + "src": "34224:3:1" + } + ], + "id": 1858, + "name": "MemberAccess", + "src": "34224:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1859, + "name": "ElementaryTypeName", + "src": "34236:7:1" + } + ], + "id": 1860, + "name": "ElementaryTypeNameExpression", + "src": "34236:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1851, + "type": "uint256", + "value": "value" + }, + "id": 1861, + "name": "Identifier", + "src": "34244:5:1" + } + ], + "id": 1862, + "name": "FunctionCall", + "src": "34236:14:1" + } + ], + "id": 1863, + "name": "FunctionCall", + "src": "34216:35:1" + } + ], + "id": 1864, + "name": "Return", + "src": "34209:42:1" + } + ], + "id": 1865, + "name": "Block", + "src": "34199:59:1" + } + ], + "id": 1866, + "name": "FunctionDefinition", + "src": "34123:135:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1867, + "name": "StructuredDocumentation", + "src": "34264:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1886, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1868, + "name": "UserDefinedTypeName", + "src": "34357:7:1" + } + ], + "id": 1869, + "name": "VariableDeclaration", + "src": "34357:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1870, + "name": "ElementaryTypeName", + "src": "34378:7:1" + } + ], + "id": 1871, + "name": "VariableDeclaration", + "src": "34378:13:1" + } + ], + "id": 1872, + "name": "ParameterList", + "src": "34356:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1873, + "name": "ElementaryTypeName", + "src": "34416:4:1" + } + ], + "id": 1874, + "name": "VariableDeclaration", + "src": "34416:4:1" + } + ], + "id": 1875, + "name": "ParameterList", + "src": "34415:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1875 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1876, + "name": "Identifier", + "src": "34439:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1869, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1877, + "name": "Identifier", + "src": "34449:3:1" + } + ], + "id": 1878, + "name": "MemberAccess", + "src": "34449:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1879, + "name": "ElementaryTypeName", + "src": "34461:7:1" + } + ], + "id": 1880, + "name": "ElementaryTypeNameExpression", + "src": "34461:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1871, + "type": "uint256", + "value": "value" + }, + "id": 1881, + "name": "Identifier", + "src": "34469:5:1" + } + ], + "id": 1882, + "name": "FunctionCall", + "src": "34461:14:1" + } + ], + "id": 1883, + "name": "FunctionCall", + "src": "34439:37:1" + } + ], + "id": 1884, + "name": "Return", + "src": "34432:44:1" + } + ], + "id": 1885, + "name": "Block", + "src": "34422:61:1" + } + ], + "id": 1886, + "name": "FunctionDefinition", + "src": "34339:144:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1887, + "name": "StructuredDocumentation", + "src": "34489:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1900, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1888, + "name": "UserDefinedTypeName", + "src": "34580:7:1" + } + ], + "id": 1889, + "name": "VariableDeclaration", + "src": "34580:19:1" + } + ], + "id": 1890, + "name": "ParameterList", + "src": "34579:21:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1900, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1891, + "name": "ElementaryTypeName", + "src": "34624:7:1" + } + ], + "id": 1892, + "name": "VariableDeclaration", + "src": "34624:7:1" + } + ], + "id": 1893, + "name": "ParameterList", + "src": "34623:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1894, + "name": "Identifier", + "src": "34650:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1889, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1895, + "name": "Identifier", + "src": "34658:3:1" + } + ], + "id": 1896, + "name": "MemberAccess", + "src": "34658:10:1" + } + ], + "id": 1897, + "name": "FunctionCall", + "src": "34650:19:1" + } + ], + "id": 1898, + "name": "Return", + "src": "34643:26:1" + } + ], + "id": 1899, + "name": "Block", + "src": "34633:43:1" + } + ], + "id": 1900, + "name": "FunctionDefinition", + "src": "34564:112:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1901, + "name": "StructuredDocumentation", + "src": "34681:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1920, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1902, + "name": "UserDefinedTypeName", + "src": "35020:7:1" + } + ], + "id": 1903, + "name": "VariableDeclaration", + "src": "35020:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1904, + "name": "ElementaryTypeName", + "src": "35041:7:1" + } + ], + "id": 1905, + "name": "VariableDeclaration", + "src": "35041:13:1" + } + ], + "id": 1906, + "name": "ParameterList", + "src": "35019:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1907, + "name": "ElementaryTypeName", + "src": "35079:7:1" + } + ], + "id": 1908, + "name": "VariableDeclaration", + "src": "35079:7:1" + } + ], + "id": 1909, + "name": "ParameterList", + "src": "35078:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1909 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1910, + "name": "ElementaryTypeName", + "src": "35105:7:1" + } + ], + "id": 1911, + "name": "ElementaryTypeNameExpression", + "src": "35105:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1912, + "name": "Identifier", + "src": "35113:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1903, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1913, + "name": "Identifier", + "src": "35117:3:1" + } + ], + "id": 1914, + "name": "MemberAccess", + "src": "35117:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1905, + "type": "uint256", + "value": "index" + }, + "id": 1915, + "name": "Identifier", + "src": "35129:5:1" + } + ], + "id": 1916, + "name": "FunctionCall", + "src": "35113:22:1" + } + ], + "id": 1917, + "name": "FunctionCall", + "src": "35105:31:1" + } + ], + "id": 1918, + "name": "Return", + "src": "35098:38:1" + } + ], + "id": 1919, + "name": "Block", + "src": "35088:55:1" + } + ], + "id": 1920, + "name": "FunctionDefinition", + "src": "35008:135:1" + } + ], + "id": 1921, + "name": "ContractDefinition", + "src": "26511:8634:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1922, + "name": "PragmaDirective", + "src": "35204:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "id": 1923, + "name": "StructuredDocumentation", + "src": "35237:705:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.MapEntry", + "name": "MapEntry", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_key", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1924, + "name": "ElementaryTypeName", + "src": "36455:7:1" + } + ], + "id": 1925, + "name": "VariableDeclaration", + "src": "36455:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_value", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1926, + "name": "ElementaryTypeName", + "src": "36477:7:1" + } + ], + "id": 1927, + "name": "VariableDeclaration", + "src": "36477:14:1" + } + ], + "id": 1928, + "name": "StructDefinition", + "src": "36429:69:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.Map", + "name": "Map", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_entries", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.MapEntry[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "struct EnumerableMap.MapEntry[]" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 1929, + "name": "UserDefinedTypeName", + "src": "36567:8:1" + } + ], + "id": 1930, + "name": "ArrayTypeName", + "src": "36567:10:1" + } + ], + "id": 1931, + "name": "VariableDeclaration", + "src": "36567:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1932, + "name": "ElementaryTypeName", + "src": "36745:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1933, + "name": "ElementaryTypeName", + "src": "36756:7:1" + } + ], + "id": 1934, + "name": "Mapping", + "src": "36736:28:1" + } + ], + "id": 1935, + "name": "VariableDeclaration", + "src": "36736:37:1" + } + ], + "id": 1936, + "name": "StructDefinition", + "src": "36504:276:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1937, + "name": "StructuredDocumentation", + "src": "36786:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 1998, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 1938, + "name": "UserDefinedTypeName", + "src": "37021:3:1" + } + ], + "id": 1939, + "name": "VariableDeclaration", + "src": "37021:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1940, + "name": "ElementaryTypeName", + "src": "37038:7:1" + } + ], + "id": 1941, + "name": "VariableDeclaration", + "src": "37038:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1942, + "name": "ElementaryTypeName", + "src": "37051:7:1" + } + ], + "id": 1943, + "name": "VariableDeclaration", + "src": "37051:13:1" + } + ], + "id": 1944, + "name": "ParameterList", + "src": "37020:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1945, + "name": "ElementaryTypeName", + "src": "37083:4:1" + } + ], + "id": 1946, + "name": "VariableDeclaration", + "src": "37083:4:1" + } + ], + "id": 1947, + "name": "ParameterList", + "src": "37082:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1949 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 1997, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1948, + "name": "ElementaryTypeName", + "src": "37197:7:1" + } + ], + "id": 1949, + "name": "VariableDeclaration", + "src": "37197:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1950, + "name": "Identifier", + "src": "37216:3:1" + } + ], + "id": 1951, + "name": "MemberAccess", + "src": "37216:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1952, + "name": "Identifier", + "src": "37229:3:1" + } + ], + "id": 1953, + "name": "IndexAccess", + "src": "37216:17:1" + } + ], + "id": 1954, + "name": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1955, + "name": "Identifier", + "src": "37248:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1956, + "name": "Literal", + "src": "37260:1:1" + } + ], + "id": 1957, + "name": "BinaryOperation", + "src": "37248:13:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (struct EnumerableMap.MapEntry storage ref)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1958, + "name": "Identifier", + "src": "37314:3:1" + } + ], + "id": 1961, + "name": "MemberAccess", + "src": "37314:12:1" + } + ], + "id": 1962, + "name": "MemberAccess", + "src": "37314:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": true, + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "tryCall": false, + "type": "struct EnumerableMap.MapEntry memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1928, + "type": "type(struct EnumerableMap.MapEntry storage pointer)", + "value": "MapEntry" + }, + "id": 1963, + "name": "Identifier", + "src": "37332:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1964, + "name": "Identifier", + "src": "37349:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1965, + "name": "Identifier", + "src": "37362:5:1" + } + ], + "id": 1966, + "name": "FunctionCall", + "src": "37332:38:1" + } + ], + "id": 1967, + "name": "FunctionCall", + "src": "37314:57:1" + } + ], + "id": 1968, + "name": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1969, + "name": "Identifier", + "src": "37506:3:1" + } + ], + "id": 1972, + "name": "MemberAccess", + "src": "37506:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1971, + "name": "Identifier", + "src": "37519:3:1" + } + ], + "id": 1973, + "name": "IndexAccess", + "src": "37506:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1974, + "name": "Identifier", + "src": "37526:3:1" + } + ], + "id": 1975, + "name": "MemberAccess", + "src": "37526:12:1" + } + ], + "id": 1976, + "name": "MemberAccess", + "src": "37526:19:1" + } + ], + "id": 1977, + "name": "Assignment", + "src": "37506:39:1" + } + ], + "id": 1978, + "name": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1979, + "name": "Literal", + "src": "37566:4:1" + } + ], + "id": 1980, + "name": "Return", + "src": "37559:11:1" + } + ], + "id": 1981, + "name": "Block", + "src": "37263:318:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1982, + "name": "Identifier", + "src": "37601:3:1" + } + ], + "id": 1987, + "name": "MemberAccess", + "src": "37601:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1984, + "name": "Identifier", + "src": "37614:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1985, + "name": "Literal", + "src": "37625:1:1" + } + ], + "id": 1986, + "name": "BinaryOperation", + "src": "37614:12:1" + } + ], + "id": 1988, + "name": "IndexAccess", + "src": "37601:26:1" + } + ], + "id": 1989, + "name": "MemberAccess", + "src": "37601:33:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1990, + "name": "Identifier", + "src": "37637:5:1" + } + ], + "id": 1991, + "name": "Assignment", + "src": "37601:41:1" + } + ], + "id": 1992, + "name": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1993, + "name": "Literal", + "src": "37663:5:1" + } + ], + "id": 1994, + "name": "Return", + "src": "37656:12:1" + } + ], + "id": 1995, + "name": "Block", + "src": "37587:92:1" + } + ], + "id": 1996, + "name": "IfStatement", + "src": "37244:435:1" + } + ], + "id": 1997, + "name": "Block", + "src": "37089:596:1" + } + ], + "id": 1998, + "name": "FunctionDefinition", + "src": "37007:678:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 1999, + "name": "StructuredDocumentation", + "src": "37691:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2079, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2000, + "name": "UserDefinedTypeName", + "src": "37870:3:1" + } + ], + "id": 2001, + "name": "VariableDeclaration", + "src": "37870:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2002, + "name": "ElementaryTypeName", + "src": "37887:7:1" + } + ], + "id": 2003, + "name": "VariableDeclaration", + "src": "37887:11:1" + } + ], + "id": 2004, + "name": "ParameterList", + "src": "37869:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2005, + "name": "ElementaryTypeName", + "src": "37917:4:1" + } + ], + "id": 2006, + "name": "VariableDeclaration", + "src": "37917:4:1" + } + ], + "id": 2007, + "name": "ParameterList", + "src": "37916:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2009 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2078, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2008, + "name": "ElementaryTypeName", + "src": "38031:7:1" + } + ], + "id": 2009, + "name": "VariableDeclaration", + "src": "38031:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2010, + "name": "Identifier", + "src": "38050:3:1" + } + ], + "id": 2011, + "name": "MemberAccess", + "src": "38050:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2012, + "name": "Identifier", + "src": "38063:3:1" + } + ], + "id": 2013, + "name": "IndexAccess", + "src": "38050:17:1" + } + ], + "id": 2014, + "name": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2015, + "name": "Identifier", + "src": "38082:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2016, + "name": "Literal", + "src": "38094:1:1" + } + ], + "id": 2017, + "name": "BinaryOperation", + "src": "38082:13:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2019 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2018, + "name": "ElementaryTypeName", + "src": "38438:7:1" + } + ], + "id": 2019, + "name": "VariableDeclaration", + "src": "38438:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2020, + "name": "Identifier", + "src": "38462:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2021, + "name": "Literal", + "src": "38473:1:1" + } + ], + "id": 2022, + "name": "BinaryOperation", + "src": "38462:12:1" + } + ], + "id": 2023, + "name": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "attributes": { + "assignments": [ + 2025 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2024, + "name": "ElementaryTypeName", + "src": "38488:7:1" + } + ], + "id": 2025, + "name": "VariableDeclaration", + "src": "38488:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2026, + "name": "Identifier", + "src": "38508:3:1" + } + ], + "id": 2027, + "name": "MemberAccess", + "src": "38508:12:1" + } + ], + "id": 2028, + "name": "MemberAccess", + "src": "38508:19:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2029, + "name": "Literal", + "src": "38530:1:1" + } + ], + "id": 2030, + "name": "BinaryOperation", + "src": "38508:23:1" + } + ], + "id": 2031, + "name": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "attributes": { + "assignments": [ + 2033 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastEntry", + "scope": 2073, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2032, + "name": "UserDefinedTypeName", + "src": "38771:8:1" + } + ], + "id": 2033, + "name": "VariableDeclaration", + "src": "38771:26:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2034, + "name": "Identifier", + "src": "38800:3:1" + } + ], + "id": 2035, + "name": "MemberAccess", + "src": "38800:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2025, + "type": "uint256", + "value": "lastIndex" + }, + "id": 2036, + "name": "Identifier", + "src": "38813:9:1" + } + ], + "id": 2037, + "name": "IndexAccess", + "src": "38800:23:1" + } + ], + "id": 2038, + "name": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2039, + "name": "Identifier", + "src": "38915:3:1" + } + ], + "id": 2042, + "name": "MemberAccess", + "src": "38915:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2041, + "name": "Identifier", + "src": "38928:13:1" + } + ], + "id": 2043, + "name": "IndexAccess", + "src": "38915:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2044, + "name": "Identifier", + "src": "38945:9:1" + } + ], + "id": 2045, + "name": "Assignment", + "src": "38915:39:1" + } + ], + "id": 2046, + "name": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2047, + "name": "Identifier", + "src": "39020:3:1" + } + ], + "id": 2051, + "name": "MemberAccess", + "src": "39020:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2049, + "name": "Identifier", + "src": "39033:9:1" + } + ], + "id": 2050, + "name": "MemberAccess", + "src": "39033:14:1" + } + ], + "id": 2052, + "name": "IndexAccess", + "src": "39020:28:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2053, + "name": "Identifier", + "src": "39051:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2054, + "name": "Literal", + "src": "39067:1:1" + } + ], + "id": 2055, + "name": "BinaryOperation", + "src": "39051:17:1" + } + ], + "id": 2056, + "name": "Assignment", + "src": "39020:48:1" + } + ], + "id": 2057, + "name": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2058, + "name": "Identifier", + "src": "39174:3:1" + } + ], + "id": 2061, + "name": "MemberAccess", + "src": "39174:12:1" + } + ], + "id": 2062, + "name": "MemberAccess", + "src": "39174:16:1" + } + ], + "id": 2063, + "name": "FunctionCall", + "src": "39174:18:1" + } + ], + "id": 2064, + "name": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2065, + "name": "Identifier", + "src": "39267:3:1" + } + ], + "id": 2066, + "name": "MemberAccess", + "src": "39267:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2067, + "name": "Identifier", + "src": "39280:3:1" + } + ], + "id": 2068, + "name": "IndexAccess", + "src": "39267:17:1" + } + ], + "id": 2069, + "name": "UnaryOperation", + "src": "39260:24:1" + } + ], + "id": 2070, + "name": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2071, + "name": "Literal", + "src": "39306:4:1" + } + ], + "id": 2072, + "name": "Return", + "src": "39299:11:1" + } + ], + "id": 2073, + "name": "Block", + "src": "38097:1224:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2074, + "name": "Literal", + "src": "39348:5:1" + } + ], + "id": 2075, + "name": "Return", + "src": "39341:12:1" + } + ], + "id": 2076, + "name": "Block", + "src": "39327:37:1" + } + ], + "id": 2077, + "name": "IfStatement", + "src": "38078:1286:1" + } + ], + "id": 2078, + "name": "Block", + "src": "37923:1447:1" + } + ], + "id": 2079, + "name": "FunctionDefinition", + "src": "37853:1517:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2080, + "name": "StructuredDocumentation", + "src": "39376:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2097, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2081, + "name": "UserDefinedTypeName", + "src": "39468:3:1" + } + ], + "id": 2082, + "name": "VariableDeclaration", + "src": "39468:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2083, + "name": "ElementaryTypeName", + "src": "39485:7:1" + } + ], + "id": 2084, + "name": "VariableDeclaration", + "src": "39485:11:1" + } + ], + "id": 2085, + "name": "ParameterList", + "src": "39467:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2086, + "name": "ElementaryTypeName", + "src": "39520:4:1" + } + ], + "id": 2087, + "name": "VariableDeclaration", + "src": "39520:4:1" + } + ], + "id": 2088, + "name": "ParameterList", + "src": "39519:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2088 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2082, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2089, + "name": "Identifier", + "src": "39543:3:1" + } + ], + "id": 2090, + "name": "MemberAccess", + "src": "39543:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2084, + "type": "bytes32", + "value": "key" + }, + "id": 2091, + "name": "Identifier", + "src": "39556:3:1" + } + ], + "id": 2092, + "name": "IndexAccess", + "src": "39543:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2093, + "name": "Literal", + "src": "39564:1:1" + } + ], + "id": 2094, + "name": "BinaryOperation", + "src": "39543:22:1" + } + ], + "id": 2095, + "name": "Return", + "src": "39536:29:1" + } + ], + "id": 2096, + "name": "Block", + "src": "39526:46:1" + } + ], + "id": 2097, + "name": "FunctionDefinition", + "src": "39449:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2098, + "name": "StructuredDocumentation", + "src": "39578:79:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2110, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2099, + "name": "UserDefinedTypeName", + "src": "39679:3:1" + } + ], + "id": 2100, + "name": "VariableDeclaration", + "src": "39679:15:1" + } + ], + "id": 2101, + "name": "ParameterList", + "src": "39678:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2102, + "name": "ElementaryTypeName", + "src": "39718:7:1" + } + ], + "id": 2103, + "name": "VariableDeclaration", + "src": "39718:7:1" + } + ], + "id": 2104, + "name": "ParameterList", + "src": "39717:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2104 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2100, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2105, + "name": "Identifier", + "src": "39744:3:1" + } + ], + "id": 2106, + "name": "MemberAccess", + "src": "39744:12:1" + } + ], + "id": 2107, + "name": "MemberAccess", + "src": "39744:19:1" + } + ], + "id": 2108, + "name": "Return", + "src": "39737:26:1" + } + ], + "id": 2109, + "name": "Block", + "src": "39727:43:1" + } + ], + "id": 2110, + "name": "FunctionDefinition", + "src": "39662:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2111, + "name": "StructuredDocumentation", + "src": "39775:333:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2145, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2112, + "name": "UserDefinedTypeName", + "src": "40126:3:1" + } + ], + "id": 2113, + "name": "VariableDeclaration", + "src": "40126:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2114, + "name": "ElementaryTypeName", + "src": "40143:7:1" + } + ], + "id": 2115, + "name": "VariableDeclaration", + "src": "40143:13:1" + } + ], + "id": 2116, + "name": "ParameterList", + "src": "40125:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2117, + "name": "ElementaryTypeName", + "src": "40180:7:1" + } + ], + "id": 2118, + "name": "VariableDeclaration", + "src": "40180:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2119, + "name": "ElementaryTypeName", + "src": "40189:7:1" + } + ], + "id": 2120, + "name": "VariableDeclaration", + "src": "40189:7:1" + } + ], + "id": 2121, + "name": "ParameterList", + "src": "40179:18:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2122, + "name": "Identifier", + "src": "40208:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2123, + "name": "Identifier", + "src": "40216:3:1" + } + ], + "id": 2124, + "name": "MemberAccess", + "src": "40216:12:1" + } + ], + "id": 2125, + "name": "MemberAccess", + "src": "40216:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2126, + "name": "Identifier", + "src": "40238:5:1" + } + ], + "id": 2127, + "name": "BinaryOperation", + "src": "40216:27:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: index out of bounds\"", + "value": "EnumerableMap: index out of bounds" + }, + "id": 2128, + "name": "Literal", + "src": "40245:36:1" + } + ], + "id": 2129, + "name": "FunctionCall", + "src": "40208:74:1" + } + ], + "id": 2130, + "name": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "attributes": { + "assignments": [ + 2132 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "entry", + "scope": 2144, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2131, + "name": "UserDefinedTypeName", + "src": "40293:8:1" + } + ], + "id": 2132, + "name": "VariableDeclaration", + "src": "40293:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2133, + "name": "Identifier", + "src": "40318:3:1" + } + ], + "id": 2134, + "name": "MemberAccess", + "src": "40318:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2135, + "name": "Identifier", + "src": "40331:5:1" + } + ], + "id": 2136, + "name": "IndexAccess", + "src": "40318:19:1" + } + ], + "id": 2137, + "name": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2121 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bytes32,bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2138, + "name": "Identifier", + "src": "40355:5:1" + } + ], + "id": 2139, + "name": "MemberAccess", + "src": "40355:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2140, + "name": "Identifier", + "src": "40367:5:1" + } + ], + "id": 2141, + "name": "MemberAccess", + "src": "40367:12:1" + } + ], + "id": 2142, + "name": "TupleExpression", + "src": "40354:26:1" + } + ], + "id": 2143, + "name": "Return", + "src": "40347:33:1" + } + ], + "id": 2144, + "name": "Block", + "src": "40198:189:1" + } + ], + "id": 2145, + "name": "FunctionDefinition", + "src": "40113:274:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2146, + "name": "StructuredDocumentation", + "src": "40393:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2183, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2147, + "name": "UserDefinedTypeName", + "src": "40546:3:1" + } + ], + "id": 2148, + "name": "VariableDeclaration", + "src": "40546:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2149, + "name": "ElementaryTypeName", + "src": "40563:7:1" + } + ], + "id": 2150, + "name": "VariableDeclaration", + "src": "40563:11:1" + } + ], + "id": 2151, + "name": "ParameterList", + "src": "40545:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2152, + "name": "ElementaryTypeName", + "src": "40598:4:1" + } + ], + "id": 2153, + "name": "VariableDeclaration", + "src": "40598:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2154, + "name": "ElementaryTypeName", + "src": "40604:7:1" + } + ], + "id": 2155, + "name": "VariableDeclaration", + "src": "40604:7:1" + } + ], + "id": 2156, + "name": "ParameterList", + "src": "40597:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2158 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2182, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2157, + "name": "ElementaryTypeName", + "src": "40623:7:1" + } + ], + "id": 2158, + "name": "VariableDeclaration", + "src": "40623:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2159, + "name": "Identifier", + "src": "40642:3:1" + } + ], + "id": 2160, + "name": "MemberAccess", + "src": "40642:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2150, + "type": "bytes32", + "value": "key" + }, + "id": 2161, + "name": "Identifier", + "src": "40655:3:1" + } + ], + "id": 2162, + "name": "IndexAccess", + "src": "40642:17:1" + } + ], + "id": 2163, + "name": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2164, + "name": "Identifier", + "src": "40673:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2165, + "name": "Literal", + "src": "40685:1:1" + } + ], + "id": 2166, + "name": "BinaryOperation", + "src": "40673:13:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2167, + "name": "Literal", + "src": "40696:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2168, + "name": "Literal", + "src": "40703:1:1" + } + ], + "id": 2169, + "name": "TupleExpression", + "src": "40695:10:1" + } + ], + "id": 2170, + "name": "Return", + "src": "40688:17:1" + } + ], + "id": 2171, + "name": "IfStatement", + "src": "40669:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,bytes32)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2172, + "name": "Literal", + "src": "40759:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2173, + "name": "Identifier", + "src": "40765:3:1" + } + ], + "id": 2174, + "name": "MemberAccess", + "src": "40765:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2175, + "name": "Identifier", + "src": "40778:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2176, + "name": "Literal", + "src": "40789:1:1" + } + ], + "id": 2177, + "name": "BinaryOperation", + "src": "40778:12:1" + } + ], + "id": 2178, + "name": "IndexAccess", + "src": "40765:26:1" + } + ], + "id": 2179, + "name": "MemberAccess", + "src": "40765:33:1" + } + ], + "id": 2180, + "name": "TupleExpression", + "src": "40758:41:1" + } + ], + "id": 2181, + "name": "Return", + "src": "40751:48:1" + } + ], + "id": 2182, + "name": "Block", + "src": "40613:220:1" + } + ], + "id": 2183, + "name": "FunctionDefinition", + "src": "40529:304:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2184, + "name": "StructuredDocumentation", + "src": "40839:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2216, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2185, + "name": "UserDefinedTypeName", + "src": "40999:3:1" + } + ], + "id": 2186, + "name": "VariableDeclaration", + "src": "40999:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2187, + "name": "ElementaryTypeName", + "src": "41016:7:1" + } + ], + "id": 2188, + "name": "VariableDeclaration", + "src": "41016:11:1" + } + ], + "id": 2189, + "name": "ParameterList", + "src": "40998:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2190, + "name": "ElementaryTypeName", + "src": "41051:7:1" + } + ], + "id": 2191, + "name": "VariableDeclaration", + "src": "41051:7:1" + } + ], + "id": 2192, + "name": "ParameterList", + "src": "41050:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2194 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2215, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2193, + "name": "ElementaryTypeName", + "src": "41070:7:1" + } + ], + "id": 2194, + "name": "VariableDeclaration", + "src": "41070:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2195, + "name": "Identifier", + "src": "41089:3:1" + } + ], + "id": 2196, + "name": "MemberAccess", + "src": "41089:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2188, + "type": "bytes32", + "value": "key" + }, + "id": 2197, + "name": "Identifier", + "src": "41102:3:1" + } + ], + "id": 2198, + "name": "IndexAccess", + "src": "41089:17:1" + } + ], + "id": 2199, + "name": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2200, + "name": "Identifier", + "src": "41116:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2201, + "name": "Identifier", + "src": "41124:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2202, + "name": "Literal", + "src": "41136:1:1" + } + ], + "id": 2203, + "name": "BinaryOperation", + "src": "41124:13:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: nonexistent key\"", + "value": "EnumerableMap: nonexistent key" + }, + "id": 2204, + "name": "Literal", + "src": "41139:32:1" + } + ], + "id": 2205, + "name": "FunctionCall", + "src": "41116:56:1" + } + ], + "id": 2206, + "name": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "attributes": { + "functionReturnParameters": 2192 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2207, + "name": "Identifier", + "src": "41225:3:1" + } + ], + "id": 2208, + "name": "MemberAccess", + "src": "41225:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2209, + "name": "Identifier", + "src": "41238:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2210, + "name": "Literal", + "src": "41249:1:1" + } + ], + "id": 2211, + "name": "BinaryOperation", + "src": "41238:12:1" + } + ], + "id": 2212, + "name": "IndexAccess", + "src": "41225:26:1" + } + ], + "id": 2213, + "name": "MemberAccess", + "src": "41225:33:1" + } + ], + "id": 2214, + "name": "Return", + "src": "41218:40:1" + } + ], + "id": 2215, + "name": "Block", + "src": "41060:232:1" + } + ], + "id": 2216, + "name": "FunctionDefinition", + "src": "40985:307:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2217, + "name": "StructuredDocumentation", + "src": "41298:271:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2251, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2218, + "name": "UserDefinedTypeName", + "src": "41588:3:1" + } + ], + "id": 2219, + "name": "VariableDeclaration", + "src": "41588:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2220, + "name": "ElementaryTypeName", + "src": "41605:7:1" + } + ], + "id": 2221, + "name": "VariableDeclaration", + "src": "41605:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2251, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2222, + "name": "ElementaryTypeName", + "src": "41618:6:1" + } + ], + "id": 2223, + "name": "VariableDeclaration", + "src": "41618:26:1" + } + ], + "id": 2224, + "name": "ParameterList", + "src": "41587:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2225, + "name": "ElementaryTypeName", + "src": "41668:7:1" + } + ], + "id": 2226, + "name": "VariableDeclaration", + "src": "41668:7:1" + } + ], + "id": 2227, + "name": "ParameterList", + "src": "41667:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2229 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2250, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2228, + "name": "ElementaryTypeName", + "src": "41687:7:1" + } + ], + "id": 2229, + "name": "VariableDeclaration", + "src": "41687:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2230, + "name": "Identifier", + "src": "41706:3:1" + } + ], + "id": 2231, + "name": "MemberAccess", + "src": "41706:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2221, + "type": "bytes32", + "value": "key" + }, + "id": 2232, + "name": "Identifier", + "src": "41719:3:1" + } + ], + "id": 2233, + "name": "IndexAccess", + "src": "41706:17:1" + } + ], + "id": 2234, + "name": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2235, + "name": "Identifier", + "src": "41733:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2236, + "name": "Identifier", + "src": "41741:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2237, + "name": "Literal", + "src": "41753:1:1" + } + ], + "id": 2238, + "name": "BinaryOperation", + "src": "41741:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2223, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2239, + "name": "Identifier", + "src": "41756:12:1" + } + ], + "id": 2240, + "name": "FunctionCall", + "src": "41733:36:1" + } + ], + "id": 2241, + "name": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2227 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2242, + "name": "Identifier", + "src": "41822:3:1" + } + ], + "id": 2243, + "name": "MemberAccess", + "src": "41822:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2244, + "name": "Identifier", + "src": "41835:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2245, + "name": "Literal", + "src": "41846:1:1" + } + ], + "id": 2246, + "name": "BinaryOperation", + "src": "41835:12:1" + } + ], + "id": 2247, + "name": "IndexAccess", + "src": "41822:26:1" + } + ], + "id": 2248, + "name": "MemberAccess", + "src": "41822:33:1" + } + ], + "id": 2249, + "name": "Return", + "src": "41815:40:1" + } + ], + "id": 2250, + "name": "Block", + "src": "41677:212:1" + } + ], + "id": 2251, + "name": "FunctionDefinition", + "src": "41574:315:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.UintToAddressMap", + "name": "UintToAddressMap", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 2254, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2252, + "name": "UserDefinedTypeName", + "src": "41954:3:1" + } + ], + "id": 2253, + "name": "VariableDeclaration", + "src": "41954:10:1" + } + ], + "id": 2254, + "name": "StructDefinition", + "src": "41920:51:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2255, + "name": "StructuredDocumentation", + "src": "41977:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2286, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2256, + "name": "UserDefinedTypeName", + "src": "42211:16:1" + } + ], + "id": 2257, + "name": "VariableDeclaration", + "src": "42211:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2258, + "name": "ElementaryTypeName", + "src": "42241:7:1" + } + ], + "id": 2259, + "name": "VariableDeclaration", + "src": "42241:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2260, + "name": "ElementaryTypeName", + "src": "42254:7:1" + } + ], + "id": 2261, + "name": "VariableDeclaration", + "src": "42254:13:1" + } + ], + "id": 2262, + "name": "ParameterList", + "src": "42210:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2263, + "name": "ElementaryTypeName", + "src": "42287:4:1" + } + ], + "id": 2264, + "name": "VariableDeclaration", + "src": "42287:4:1" + } + ], + "id": 2265, + "name": "ParameterList", + "src": "42286:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2265 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1998, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)", + "value": "_set" + }, + "id": 2266, + "name": "Identifier", + "src": "42310:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2257, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2267, + "name": "Identifier", + "src": "42315:3:1" + } + ], + "id": 2268, + "name": "MemberAccess", + "src": "42315:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2269, + "name": "ElementaryTypeName", + "src": "42327:7:1" + } + ], + "id": 2270, + "name": "ElementaryTypeNameExpression", + "src": "42327:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2259, + "type": "uint256", + "value": "key" + }, + "id": 2271, + "name": "Identifier", + "src": "42335:3:1" + } + ], + "id": 2272, + "name": "FunctionCall", + "src": "42327:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2273, + "name": "ElementaryTypeName", + "src": "42341:7:1" + } + ], + "id": 2274, + "name": "ElementaryTypeNameExpression", + "src": "42341:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2275, + "name": "ElementaryTypeName", + "src": "42349:7:1" + } + ], + "id": 2276, + "name": "ElementaryTypeNameExpression", + "src": "42349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2277, + "name": "ElementaryTypeName", + "src": "42357:7:1" + } + ], + "id": 2278, + "name": "ElementaryTypeNameExpression", + "src": "42357:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2261, + "type": "address", + "value": "value" + }, + "id": 2279, + "name": "Identifier", + "src": "42365:5:1" + } + ], + "id": 2280, + "name": "FunctionCall", + "src": "42357:14:1" + } + ], + "id": 2281, + "name": "FunctionCall", + "src": "42349:23:1" + } + ], + "id": 2282, + "name": "FunctionCall", + "src": "42341:32:1" + } + ], + "id": 2283, + "name": "FunctionCall", + "src": "42310:64:1" + } + ], + "id": 2284, + "name": "Return", + "src": "42303:71:1" + } + ], + "id": 2285, + "name": "Block", + "src": "42293:88:1" + } + ], + "id": 2286, + "name": "FunctionDefinition", + "src": "42198:183:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2287, + "name": "StructuredDocumentation", + "src": "42387:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2306, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2288, + "name": "UserDefinedTypeName", + "src": "42556:16:1" + } + ], + "id": 2289, + "name": "VariableDeclaration", + "src": "42556:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2290, + "name": "ElementaryTypeName", + "src": "42586:7:1" + } + ], + "id": 2291, + "name": "VariableDeclaration", + "src": "42586:11:1" + } + ], + "id": 2292, + "name": "ParameterList", + "src": "42555:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2293, + "name": "ElementaryTypeName", + "src": "42617:4:1" + } + ], + "id": 2294, + "name": "VariableDeclaration", + "src": "42617:4:1" + } + ], + "id": 2295, + "name": "ParameterList", + "src": "42616:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2295 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2079, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 2296, + "name": "Identifier", + "src": "42640:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2289, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2297, + "name": "Identifier", + "src": "42648:3:1" + } + ], + "id": 2298, + "name": "MemberAccess", + "src": "42648:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2299, + "name": "ElementaryTypeName", + "src": "42660:7:1" + } + ], + "id": 2300, + "name": "ElementaryTypeNameExpression", + "src": "42660:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2291, + "type": "uint256", + "value": "key" + }, + "id": 2301, + "name": "Identifier", + "src": "42668:3:1" + } + ], + "id": 2302, + "name": "FunctionCall", + "src": "42660:12:1" + } + ], + "id": 2303, + "name": "FunctionCall", + "src": "42640:33:1" + } + ], + "id": 2304, + "name": "Return", + "src": "42633:40:1" + } + ], + "id": 2305, + "name": "Block", + "src": "42623:57:1" + } + ], + "id": 2306, + "name": "FunctionDefinition", + "src": "42540:140:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2307, + "name": "StructuredDocumentation", + "src": "42686:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2326, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2308, + "name": "UserDefinedTypeName", + "src": "42777:16:1" + } + ], + "id": 2309, + "name": "VariableDeclaration", + "src": "42777:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2310, + "name": "ElementaryTypeName", + "src": "42807:7:1" + } + ], + "id": 2311, + "name": "VariableDeclaration", + "src": "42807:11:1" + } + ], + "id": 2312, + "name": "ParameterList", + "src": "42776:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2313, + "name": "ElementaryTypeName", + "src": "42843:4:1" + } + ], + "id": 2314, + "name": "VariableDeclaration", + "src": "42843:4:1" + } + ], + "id": 2315, + "name": "ParameterList", + "src": "42842:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2315 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2097, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 2316, + "name": "Identifier", + "src": "42866:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2309, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2317, + "name": "Identifier", + "src": "42876:3:1" + } + ], + "id": 2318, + "name": "MemberAccess", + "src": "42876:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2319, + "name": "ElementaryTypeName", + "src": "42888:7:1" + } + ], + "id": 2320, + "name": "ElementaryTypeNameExpression", + "src": "42888:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2311, + "type": "uint256", + "value": "key" + }, + "id": 2321, + "name": "Identifier", + "src": "42896:3:1" + } + ], + "id": 2322, + "name": "FunctionCall", + "src": "42888:12:1" + } + ], + "id": 2323, + "name": "FunctionCall", + "src": "42866:35:1" + } + ], + "id": 2324, + "name": "Return", + "src": "42859:42:1" + } + ], + "id": 2325, + "name": "Block", + "src": "42849:59:1" + } + ], + "id": 2326, + "name": "FunctionDefinition", + "src": "42759:149:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2327, + "name": "StructuredDocumentation", + "src": "42914:72:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2340, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2328, + "name": "UserDefinedTypeName", + "src": "43007:16:1" + } + ], + "id": 2329, + "name": "VariableDeclaration", + "src": "43007:28:1" + } + ], + "id": 2330, + "name": "ParameterList", + "src": "43006:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2340, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2331, + "name": "ElementaryTypeName", + "src": "43060:7:1" + } + ], + "id": 2332, + "name": "VariableDeclaration", + "src": "43060:7:1" + } + ], + "id": 2333, + "name": "ParameterList", + "src": "43059:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2333 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2110, + "type": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 2334, + "name": "Identifier", + "src": "43086:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2329, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2335, + "name": "Identifier", + "src": "43094:3:1" + } + ], + "id": 2336, + "name": "MemberAccess", + "src": "43094:10:1" + } + ], + "id": 2337, + "name": "FunctionCall", + "src": "43086:19:1" + } + ], + "id": 2338, + "name": "Return", + "src": "43079:26:1" + } + ], + "id": 2339, + "name": "Block", + "src": "43069:43:1" + } + ], + "id": 2340, + "name": "FunctionDefinition", + "src": "42991:121:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2341, + "name": "StructuredDocumentation", + "src": "43117:318:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2379, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2342, + "name": "UserDefinedTypeName", + "src": "43452:16:1" + } + ], + "id": 2343, + "name": "VariableDeclaration", + "src": "43452:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2344, + "name": "ElementaryTypeName", + "src": "43482:7:1" + } + ], + "id": 2345, + "name": "VariableDeclaration", + "src": "43482:13:1" + } + ], + "id": 2346, + "name": "ParameterList", + "src": "43451:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2347, + "name": "ElementaryTypeName", + "src": "43520:7:1" + } + ], + "id": 2348, + "name": "VariableDeclaration", + "src": "43520:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2349, + "name": "ElementaryTypeName", + "src": "43529:7:1" + } + ], + "id": 2350, + "name": "VariableDeclaration", + "src": "43529:7:1" + } + ], + "id": 2351, + "name": "ParameterList", + "src": "43519:18:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2353, + 2355 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2352, + "name": "ElementaryTypeName", + "src": "43549:7:1" + } + ], + "id": 2353, + "name": "VariableDeclaration", + "src": "43549:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2354, + "name": "ElementaryTypeName", + "src": "43562:7:1" + } + ], + "id": 2355, + "name": "VariableDeclaration", + "src": "43562:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bytes32,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2145, + "type": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)", + "value": "_at" + }, + "id": 2356, + "name": "Identifier", + "src": "43579:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2343, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2357, + "name": "Identifier", + "src": "43583:3:1" + } + ], + "id": 2358, + "name": "MemberAccess", + "src": "43583:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2345, + "type": "uint256", + "value": "index" + }, + "id": 2359, + "name": "Identifier", + "src": "43595:5:1" + } + ], + "id": 2360, + "name": "FunctionCall", + "src": "43579:22:1" + } + ], + "id": 2361, + "name": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "attributes": { + "functionReturnParameters": 2351 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(uint256,address payable)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2362, + "name": "ElementaryTypeName", + "src": "43619:7:1" + } + ], + "id": 2363, + "name": "ElementaryTypeNameExpression", + "src": "43619:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2353, + "type": "bytes32", + "value": "key" + }, + "id": 2364, + "name": "Identifier", + "src": "43627:3:1" + } + ], + "id": 2365, + "name": "FunctionCall", + "src": "43619:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2366, + "name": "ElementaryTypeName", + "src": "43633:7:1" + } + ], + "id": 2367, + "name": "ElementaryTypeNameExpression", + "src": "43633:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2368, + "name": "ElementaryTypeName", + "src": "43641:7:1" + } + ], + "id": 2369, + "name": "ElementaryTypeNameExpression", + "src": "43641:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2370, + "name": "ElementaryTypeName", + "src": "43649:7:1" + } + ], + "id": 2371, + "name": "ElementaryTypeNameExpression", + "src": "43649:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2355, + "type": "bytes32", + "value": "value" + }, + "id": 2372, + "name": "Identifier", + "src": "43657:5:1" + } + ], + "id": 2373, + "name": "FunctionCall", + "src": "43649:14:1" + } + ], + "id": 2374, + "name": "FunctionCall", + "src": "43641:23:1" + } + ], + "id": 2375, + "name": "FunctionCall", + "src": "43633:32:1" + } + ], + "id": 2376, + "name": "TupleExpression", + "src": "43618:48:1" + } + ], + "id": 2377, + "name": "Return", + "src": "43611:55:1" + } + ], + "id": 2378, + "name": "Block", + "src": "43538:135:1" + } + ], + "id": 2379, + "name": "FunctionDefinition", + "src": "43440:233:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2380, + "name": "StructuredDocumentation", + "src": "43679:169:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2418, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2381, + "name": "UserDefinedTypeName", + "src": "43869:16:1" + } + ], + "id": 2382, + "name": "VariableDeclaration", + "src": "43869:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2383, + "name": "ElementaryTypeName", + "src": "43899:7:1" + } + ], + "id": 2384, + "name": "VariableDeclaration", + "src": "43899:11:1" + } + ], + "id": 2385, + "name": "ParameterList", + "src": "43868:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2386, + "name": "ElementaryTypeName", + "src": "43935:4:1" + } + ], + "id": 2387, + "name": "VariableDeclaration", + "src": "43935:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2388, + "name": "ElementaryTypeName", + "src": "43941:7:1" + } + ], + "id": 2389, + "name": "VariableDeclaration", + "src": "43941:7:1" + } + ], + "id": 2390, + "name": "ParameterList", + "src": "43934:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2392, + 2394 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "43961:4:1" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "43961:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "43975:7:1" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "43975:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2183, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)", + "value": "_tryGet" + }, + "id": 2395, + "name": "Identifier", + "src": "43992:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2382, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2396, + "name": "Identifier", + "src": "44000:3:1" + } + ], + "id": 2397, + "name": "MemberAccess", + "src": "44000:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "44012:7:1" + } + ], + "id": 2399, + "name": "ElementaryTypeNameExpression", + "src": "44012:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2384, + "type": "uint256", + "value": "key" + }, + "id": 2400, + "name": "Identifier", + "src": "44020:3:1" + } + ], + "id": 2401, + "name": "FunctionCall", + "src": "44012:12:1" + } + ], + "id": 2402, + "name": "FunctionCall", + "src": "43992:33:1" + } + ], + "id": 2403, + "name": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "attributes": { + "functionReturnParameters": 2390 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,address payable)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2392, + "type": "bool", + "value": "success" + }, + "id": 2404, + "name": "Identifier", + "src": "44043:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2405, + "name": "ElementaryTypeName", + "src": "44052:7:1" + } + ], + "id": 2406, + "name": "ElementaryTypeNameExpression", + "src": "44052:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "44060:7:1" + } + ], + "id": 2408, + "name": "ElementaryTypeNameExpression", + "src": "44060:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "44068:7:1" + } + ], + "id": 2410, + "name": "ElementaryTypeNameExpression", + "src": "44068:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2394, + "type": "bytes32", + "value": "value" + }, + "id": 2411, + "name": "Identifier", + "src": "44076:5:1" + } + ], + "id": 2412, + "name": "FunctionCall", + "src": "44068:14:1" + } + ], + "id": 2413, + "name": "FunctionCall", + "src": "44060:23:1" + } + ], + "id": 2414, + "name": "FunctionCall", + "src": "44052:32:1" + } + ], + "id": 2415, + "name": "TupleExpression", + "src": "44042:43:1" + } + ], + "id": 2416, + "name": "Return", + "src": "44035:50:1" + } + ], + "id": 2417, + "name": "Block", + "src": "43950:142:1" + } + ], + "id": 2418, + "name": "FunctionDefinition", + "src": "43853:239:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2419, + "name": "StructuredDocumentation", + "src": "44098:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2447, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2420, + "name": "UserDefinedTypeName", + "src": "44257:16:1" + } + ], + "id": 2421, + "name": "VariableDeclaration", + "src": "44257:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2422, + "name": "ElementaryTypeName", + "src": "44287:7:1" + } + ], + "id": 2423, + "name": "VariableDeclaration", + "src": "44287:11:1" + } + ], + "id": 2424, + "name": "ParameterList", + "src": "44256:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2425, + "name": "ElementaryTypeName", + "src": "44323:7:1" + } + ], + "id": 2426, + "name": "VariableDeclaration", + "src": "44323:7:1" + } + ], + "id": 2427, + "name": "ParameterList", + "src": "44322:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2427 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2428, + "name": "ElementaryTypeName", + "src": "44349:7:1" + } + ], + "id": 2429, + "name": "ElementaryTypeNameExpression", + "src": "44349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2430, + "name": "ElementaryTypeName", + "src": "44357:7:1" + } + ], + "id": 2431, + "name": "ElementaryTypeNameExpression", + "src": "44357:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2432, + "name": "ElementaryTypeName", + "src": "44365:7:1" + } + ], + "id": 2433, + "name": "ElementaryTypeNameExpression", + "src": "44365:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)", + "value": "_get" + }, + "id": 2434, + "name": "Identifier", + "src": "44373:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2421, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2435, + "name": "Identifier", + "src": "44378:3:1" + } + ], + "id": 2436, + "name": "MemberAccess", + "src": "44378:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "44390:7:1" + } + ], + "id": 2438, + "name": "ElementaryTypeNameExpression", + "src": "44390:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2423, + "type": "uint256", + "value": "key" + }, + "id": 2439, + "name": "Identifier", + "src": "44398:3:1" + } + ], + "id": 2440, + "name": "FunctionCall", + "src": "44390:12:1" + } + ], + "id": 2441, + "name": "FunctionCall", + "src": "44373:30:1" + } + ], + "id": 2442, + "name": "FunctionCall", + "src": "44365:39:1" + } + ], + "id": 2443, + "name": "FunctionCall", + "src": "44357:48:1" + } + ], + "id": 2444, + "name": "FunctionCall", + "src": "44349:57:1" + } + ], + "id": 2445, + "name": "Return", + "src": "44342:64:1" + } + ], + "id": 2446, + "name": "Block", + "src": "44332:81:1" + } + ], + "id": 2447, + "name": "FunctionDefinition", + "src": "44244:169:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2448, + "name": "StructuredDocumentation", + "src": "44419:269:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2479, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2449, + "name": "UserDefinedTypeName", + "src": "44706:16:1" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "44706:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2451, + "name": "ElementaryTypeName", + "src": "44736:7:1" + } + ], + "id": 2452, + "name": "VariableDeclaration", + "src": "44736:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2479, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "44749:6:1" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "44749:26:1" + } + ], + "id": 2455, + "name": "ParameterList", + "src": "44705:71:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2456, + "name": "ElementaryTypeName", + "src": "44800:7:1" + } + ], + "id": 2457, + "name": "VariableDeclaration", + "src": "44800:7:1" + } + ], + "id": 2458, + "name": "ParameterList", + "src": "44799:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2458 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "44826:7:1" + } + ], + "id": 2460, + "name": "ElementaryTypeNameExpression", + "src": "44826:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "44834:7:1" + } + ], + "id": 2462, + "name": "ElementaryTypeNameExpression", + "src": "44834:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2463, + "name": "ElementaryTypeName", + "src": "44842:7:1" + } + ], + "id": 2464, + "name": "ElementaryTypeNameExpression", + "src": "44842:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)", + "value": "_get" + }, + "id": 2465, + "name": "Identifier", + "src": "44850:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2450, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2466, + "name": "Identifier", + "src": "44855:3:1" + } + ], + "id": 2467, + "name": "MemberAccess", + "src": "44855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2468, + "name": "ElementaryTypeName", + "src": "44867:7:1" + } + ], + "id": 2469, + "name": "ElementaryTypeNameExpression", + "src": "44867:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2452, + "type": "uint256", + "value": "key" + }, + "id": 2470, + "name": "Identifier", + "src": "44875:3:1" + } + ], + "id": 2471, + "name": "FunctionCall", + "src": "44867:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2454, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2472, + "name": "Identifier", + "src": "44881:12:1" + } + ], + "id": 2473, + "name": "FunctionCall", + "src": "44850:44:1" + } + ], + "id": 2474, + "name": "FunctionCall", + "src": "44842:53:1" + } + ], + "id": 2475, + "name": "FunctionCall", + "src": "44834:62:1" + } + ], + "id": 2476, + "name": "FunctionCall", + "src": "44826:71:1" + } + ], + "id": 2477, + "name": "Return", + "src": "44819:78:1" + } + ], + "id": 2478, + "name": "Block", + "src": "44809:95:1" + } + ], + "id": 2479, + "name": "FunctionDefinition", + "src": "44693:211:1" + } + ], + "id": 2480, + "name": "ContractDefinition", + "src": "35943:8963:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2481, + "name": "PragmaDirective", + "src": "44959:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev String operations." + }, + "id": 2482, + "name": "StructuredDocumentation", + "src": "44992:34:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toString", + "scope": 2566, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2483, + "name": "StructuredDocumentation", + "src": "45049:82:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2565, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2484, + "name": "ElementaryTypeName", + "src": "45154:7:1" + } + ], + "id": 2485, + "name": "VariableDeclaration", + "src": "45154:13:1" + } + ], + "id": 2486, + "name": "ParameterList", + "src": "45153:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2565, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "45192:6:1" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "45192:13:1" + } + ], + "id": 2489, + "name": "ParameterList", + "src": "45191:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2490, + "name": "Identifier", + "src": "45409:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2491, + "name": "Literal", + "src": "45418:1:1" + } + ], + "id": 2492, + "name": "BinaryOperation", + "src": "45409:10:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"0\"", + "value": "0" + }, + "id": 2493, + "name": "Literal", + "src": "45442:3:1" + } + ], + "id": 2494, + "name": "Return", + "src": "45435:10:1" + } + ], + "id": 2495, + "name": "Block", + "src": "45421:35:1" + } + ], + "id": 2496, + "name": "IfStatement", + "src": "45405:51:1" + }, + { + "attributes": { + "assignments": [ + 2498 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "temp", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2497, + "name": "ElementaryTypeName", + "src": "45465:7:1" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "45465:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2499, + "name": "Identifier", + "src": "45480:5:1" + } + ], + "id": 2500, + "name": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "attributes": { + "assignments": [ + 2502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "digits", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "45495:7:1" + } + ], + "id": 2502, + "name": "VariableDeclaration", + "src": "45495:14:1" + } + ], + "id": 2503, + "name": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2504, + "name": "Identifier", + "src": "45526:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2505, + "name": "Literal", + "src": "45534:1:1" + } + ], + "id": 2506, + "name": "BinaryOperation", + "src": "45526:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2507, + "name": "Identifier", + "src": "45551:6:1" + } + ], + "id": 2508, + "name": "UnaryOperation", + "src": "45551:8:1" + } + ], + "id": 2509, + "name": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2510, + "name": "Identifier", + "src": "45573:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2511, + "name": "Literal", + "src": "45581:2:1" + } + ], + "id": 2512, + "name": "Assignment", + "src": "45573:10:1" + } + ], + "id": 2513, + "name": "ExpressionStatement", + "src": "45573:10:1" + } + ], + "id": 2514, + "name": "Block", + "src": "45537:57:1" + } + ], + "id": 2515, + "name": "WhileStatement", + "src": "45519:75:1" + }, + { + "attributes": { + "assignments": [ + 2517 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "buffer", + "scope": 2564, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2516, + "name": "ElementaryTypeName", + "src": "45603:5:1" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "45603:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "function (uint256) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "45629:5:1" + } + ], + "id": 2519, + "name": "NewExpression", + "src": "45625:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2520, + "name": "Identifier", + "src": "45635:6:1" + } + ], + "id": 2521, + "name": "FunctionCall", + "src": "45625:17:1" + } + ], + "id": 2522, + "name": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "attributes": { + "assignments": [ + 2524 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2523, + "name": "ElementaryTypeName", + "src": "45652:7:1" + } + ], + "id": 2524, + "name": "VariableDeclaration", + "src": "45652:13:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2525, + "name": "Identifier", + "src": "45668:6:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2526, + "name": "Literal", + "src": "45677:1:1" + } + ], + "id": 2527, + "name": "BinaryOperation", + "src": "45668:10:1" + } + ], + "id": 2528, + "name": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2529, + "name": "Identifier", + "src": "45688:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2530, + "name": "Identifier", + "src": "45695:5:1" + } + ], + "id": 2531, + "name": "Assignment", + "src": "45688:12:1" + } + ], + "id": 2532, + "name": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2533, + "name": "Identifier", + "src": "45717:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2534, + "name": "Literal", + "src": "45725:1:1" + } + ], + "id": 2535, + "name": "BinaryOperation", + "src": "45717:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2536, + "name": "Identifier", + "src": "45742:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "--", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2524, + "type": "uint256", + "value": "index" + }, + "id": 2537, + "name": "Identifier", + "src": "45749:5:1" + } + ], + "id": 2538, + "name": "UnaryOperation", + "src": "45749:7:1" + } + ], + "id": 2539, + "name": "IndexAccess", + "src": "45742:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes1", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes1)" + }, + "children": [ + { + "attributes": { + "name": "bytes1" + }, + "id": 2540, + "name": "ElementaryTypeName", + "src": "45760:6:1" + } + ], + "id": 2541, + "name": "ElementaryTypeNameExpression", + "src": "45760:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 2542, + "name": "ElementaryTypeName", + "src": "45767:5:1" + } + ], + "id": 2543, + "name": "ElementaryTypeNameExpression", + "src": "45767:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "hexvalue": "3438", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 48", + "value": "48" + }, + "id": 2544, + "name": "Literal", + "src": "45773:2:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2545, + "name": "Identifier", + "src": "45778:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2546, + "name": "Literal", + "src": "45785:2:1" + } + ], + "id": 2547, + "name": "BinaryOperation", + "src": "45778:9:1" + } + ], + "id": 2548, + "name": "BinaryOperation", + "src": "45773:14:1" + } + ], + "id": 2549, + "name": "FunctionCall", + "src": "45767:21:1" + } + ], + "id": 2550, + "name": "FunctionCall", + "src": "45760:29:1" + } + ], + "id": 2551, + "name": "Assignment", + "src": "45742:47:1" + } + ], + "id": 2552, + "name": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2553, + "name": "Identifier", + "src": "45803:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2554, + "name": "Literal", + "src": "45811:2:1" + } + ], + "id": 2555, + "name": "Assignment", + "src": "45803:10:1" + } + ], + "id": 2556, + "name": "ExpressionStatement", + "src": "45803:10:1" + } + ], + "id": 2557, + "name": "Block", + "src": "45728:96:1" + } + ], + "id": 2558, + "name": "WhileStatement", + "src": "45710:114:1" + }, + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2559, + "name": "ElementaryTypeName", + "src": "45840:6:1" + } + ], + "id": 2560, + "name": "ElementaryTypeNameExpression", + "src": "45840:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2561, + "name": "Identifier", + "src": "45847:6:1" + } + ], + "id": 2562, + "name": "FunctionCall", + "src": "45840:14:1" + } + ], + "id": 2563, + "name": "Return", + "src": "45833:21:1" + } + ], + "id": 2564, + "name": "Block", + "src": "45207:654:1" + } + ], + "id": 2565, + "name": "FunctionDefinition", + "src": "45136:725:1" + } + ], + "id": 2566, + "name": "ContractDefinition", + "src": "45027:836:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2567, + "name": "PragmaDirective", + "src": "45922:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 2568, + "name": "StructuredDocumentation", + "src": "45955:124:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "Context", + "referencedDeclaration": 530, + "type": "contract Context" + }, + "id": 2569, + "name": "UserDefinedTypeName", + "src": "46099:7:1" + } + ], + "id": 2570, + "name": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "ERC165", + "referencedDeclaration": 781, + "type": "contract ERC165" + }, + "id": 2571, + "name": "UserDefinedTypeName", + "src": "46108:6:1" + } + ], + "id": 2572, + "name": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 2573, + "name": "UserDefinedTypeName", + "src": "46116:7:1" + } + ], + "id": 2574, + "name": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Metadata", + "referencedDeclaration": 680, + "type": "contract IERC721Metadata" + }, + "id": 2575, + "name": "UserDefinedTypeName", + "src": "46125:15:1" + } + ], + "id": 2576, + "name": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Enumerable", + "referencedDeclaration": 709, + "type": "contract IERC721Enumerable" + }, + "id": 2577, + "name": "UserDefinedTypeName", + "src": "46142:17:1" + } + ], + "id": 2578, + "name": "InheritanceSpecifier", + "src": "46142:17:1" + }, + { + "children": [ + { + "attributes": { + "name": "SafeMath", + "referencedDeclaration": 1135, + "type": "library SafeMath" + }, + "id": 2579, + "name": "UserDefinedTypeName", + "src": "46172:8:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2580, + "name": "ElementaryTypeName", + "src": "46185:7:1" + } + ], + "id": 2581, + "name": "UsingForDirective", + "src": "46166:27:1" + }, + { + "children": [ + { + "attributes": { + "name": "Address", + "referencedDeclaration": 1430, + "type": "library Address" + }, + "id": 2582, + "name": "UserDefinedTypeName", + "src": "46204:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "46216:7:1" + } + ], + "id": 2584, + "name": "UsingForDirective", + "src": "46198:26:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableSet", + "referencedDeclaration": 1921, + "type": "library EnumerableSet" + }, + "id": 2585, + "name": "UserDefinedTypeName", + "src": "46235:13:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2586, + "name": "UserDefinedTypeName", + "src": "46253:21:1" + } + ], + "id": 2587, + "name": "UsingForDirective", + "src": "46229:46:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableMap", + "referencedDeclaration": 2480, + "type": "library EnumerableMap" + }, + "id": 2588, + "name": "UserDefinedTypeName", + "src": "46286:13:1" + }, + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2589, + "name": "UserDefinedTypeName", + "src": "46304:30:1" + } + ], + "id": 2590, + "name": "UsingForDirective", + "src": "46280:55:1" + }, + { + "children": [ + { + "attributes": { + "name": "Strings", + "referencedDeclaration": 2566, + "type": "library Strings" + }, + "id": 2591, + "name": "UserDefinedTypeName", + "src": "46346:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2592, + "name": "ElementaryTypeName", + "src": "46358:7:1" + } + ], + "id": 2593, + "name": "UsingForDirective", + "src": "46340:26:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "46544:6:1" + }, + { + "attributes": { + "hexvalue": "30783135306237613032", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 353073666", + "value": "0x150b7a02" + }, + "id": 2595, + "name": "Literal", + "src": "46587:10:1" + } + ], + "id": 2596, + "name": "VariableDeclaration", + "src": "46544:53:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_holderTokens", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => struct EnumerableSet.UintSet)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct EnumerableSet.UintSet)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2597, + "name": "ElementaryTypeName", + "src": "46690:7:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2598, + "name": "UserDefinedTypeName", + "src": "46701:21:1" + } + ], + "id": 2599, + "name": "Mapping", + "src": "46681:42:1" + } + ], + "id": 2600, + "name": "VariableDeclaration", + "src": "46681:64:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenOwners", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2601, + "name": "UserDefinedTypeName", + "src": "46809:30:1" + } + ], + "id": 2602, + "name": "VariableDeclaration", + "src": "46809:51:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => address)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => address)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2603, + "name": "ElementaryTypeName", + "src": "46925:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "46936:7:1" + } + ], + "id": 2605, + "name": "Mapping", + "src": "46916:28:1" + } + ], + "id": 2606, + "name": "VariableDeclaration", + "src": "46916:52:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_operatorApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => mapping(address => bool))", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => mapping(address => bool))" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2607, + "name": "ElementaryTypeName", + "src": "47032:7:1" + }, + { + "attributes": { + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2608, + "name": "ElementaryTypeName", + "src": "47052:7:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2609, + "name": "ElementaryTypeName", + "src": "47063:4:1" + } + ], + "id": 2610, + "name": "Mapping", + "src": "47043:25:1" + } + ], + "id": 2611, + "name": "Mapping", + "src": "47023:46:1" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "47023:73:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_name", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "47121:6:1" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "47121:20:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_symbol", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "47168:6:1" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "47168:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURIs", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => string)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => string)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "47245:7:1" + }, + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2618, + "name": "ElementaryTypeName", + "src": "47256:6:1" + } + ], + "id": 2619, + "name": "Mapping", + "src": "47236:27:1" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "47236:46:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_baseURI", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2621, + "name": "ElementaryTypeName", + "src": "47305:6:1" + } + ], + "id": 2622, + "name": "VariableDeclaration", + "src": "47305:23:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2623, + "name": "ElementaryTypeName", + "src": "48204:6:1" + }, + { + "attributes": { + "hexvalue": "30783830616335386364", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2158778573", + "value": "0x80ac58cd" + }, + "id": 2624, + "name": "Literal", + "src": "48251:10:1" + } + ], + "id": 2625, + "name": "VariableDeclaration", + "src": "48204:57:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2626, + "name": "ElementaryTypeName", + "src": "48527:6:1" + }, + { + "attributes": { + "hexvalue": "30783562356531333966", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1532892063", + "value": "0x5b5e139f" + }, + "id": 2627, + "name": "Literal", + "src": "48583:10:1" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "48527:66:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "48898:6:1" + }, + { + "attributes": { + "hexvalue": "30783738306539643633", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2014223715", + "value": "0x780e9d63" + }, + "id": 2630, + "name": "Literal", + "src": "48956:10:1" + } + ], + "id": 2631, + "name": "VariableDeclaration", + "src": "48898:68:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2632, + "name": "StructuredDocumentation", + "src": "48973:108:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "name_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2633, + "name": "ElementaryTypeName", + "src": "49099:6:1" + } + ], + "id": 2634, + "name": "VariableDeclaration", + "src": "49099:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "symbol_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2635, + "name": "ElementaryTypeName", + "src": "49120:6:1" + } + ], + "id": 2636, + "name": "VariableDeclaration", + "src": "49120:21:1" + } + ], + "id": 2637, + "name": "ParameterList", + "src": "49098:44:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2638, + "name": "ParameterList", + "src": "49143:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2639, + "name": "Identifier", + "src": "49153:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2634, + "type": "string memory", + "value": "name_" + }, + "id": 2640, + "name": "Identifier", + "src": "49161:5:1" + } + ], + "id": 2641, + "name": "Assignment", + "src": "49153:13:1" + } + ], + "id": 2642, + "name": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2643, + "name": "Identifier", + "src": "49176:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2636, + "type": "string memory", + "value": "symbol_" + }, + "id": 2644, + "name": "Identifier", + "src": "49186:7:1" + } + ], + "id": 2645, + "name": "Assignment", + "src": "49176:17:1" + } + ], + "id": 2646, + "name": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2647, + "name": "Identifier", + "src": "49281:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2625, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721" + }, + "id": 2648, + "name": "Identifier", + "src": "49300:20:1" + } + ], + "id": 2649, + "name": "FunctionCall", + "src": "49281:40:1" + } + ], + "id": 2650, + "name": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2651, + "name": "Identifier", + "src": "49331:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2628, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_METADATA" + }, + "id": 2652, + "name": "Identifier", + "src": "49350:29:1" + } + ], + "id": 2653, + "name": "FunctionCall", + "src": "49331:49:1" + } + ], + "id": 2654, + "name": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2655, + "name": "Identifier", + "src": "49390:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2631, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_ENUMERABLE" + }, + "id": 2656, + "name": "Identifier", + "src": "49409:31:1" + } + ], + "id": 2657, + "name": "FunctionCall", + "src": "49390:51:1" + } + ], + "id": 2658, + "name": "ExpressionStatement", + "src": "49390:51:1" + } + ], + "id": 2659, + "name": "Block", + "src": "49143:305:1" + } + ], + "id": 2660, + "name": "FunctionDefinition", + "src": "49086:362:1" + }, + { + "attributes": { + "baseFunctions": [ + 580 + ], + "functionSelector": "70a08231", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-balanceOf}." + }, + "id": 2661, + "name": "StructuredDocumentation", + "src": "49454:48:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2665, + "name": "OverrideSpecifier", + "src": "49561:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2662, + "name": "ElementaryTypeName", + "src": "49526:7:1" + } + ], + "id": 2663, + "name": "VariableDeclaration", + "src": "49526:13:1" + } + ], + "id": 2664, + "name": "ParameterList", + "src": "49525:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2666, + "name": "ElementaryTypeName", + "src": "49579:7:1" + } + ], + "id": 2667, + "name": "VariableDeclaration", + "src": "49579:7:1" + } + ], + "id": 2668, + "name": "ParameterList", + "src": "49578:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2669, + "name": "Identifier", + "src": "49598:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2670, + "name": "Identifier", + "src": "49606:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2671, + "name": "ElementaryTypeName", + "src": "49615:7:1" + } + ], + "id": 2672, + "name": "ElementaryTypeNameExpression", + "src": "49615:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2673, + "name": "Literal", + "src": "49623:1:1" + } + ], + "id": 2674, + "name": "FunctionCall", + "src": "49615:10:1" + } + ], + "id": 2675, + "name": "BinaryOperation", + "src": "49606:19:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: balance query for the zero address\"", + "value": "ERC721: balance query for the zero address" + }, + "id": 2676, + "name": "Literal", + "src": "49627:44:1" + } + ], + "id": 2677, + "name": "FunctionCall", + "src": "49598:74:1" + } + ], + "id": 2678, + "name": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "attributes": { + "functionReturnParameters": 2668 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 1900, + "type": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2679, + "name": "Identifier", + "src": "49689:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2680, + "name": "Identifier", + "src": "49703:5:1" + } + ], + "id": 2681, + "name": "IndexAccess", + "src": "49689:20:1" + } + ], + "id": 2682, + "name": "MemberAccess", + "src": "49689:27:1" + } + ], + "id": 2683, + "name": "FunctionCall", + "src": "49689:29:1" + } + ], + "id": 2684, + "name": "Return", + "src": "49682:36:1" + } + ], + "id": 2685, + "name": "Block", + "src": "49588:137:1" + } + ], + "id": 2686, + "name": "FunctionDefinition", + "src": "49507:218:1" + }, + { + "attributes": { + "baseFunctions": [ + 588 + ], + "functionSelector": "6352211e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-ownerOf}." + }, + "id": 2687, + "name": "StructuredDocumentation", + "src": "49731:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2691, + "name": "OverrideSpecifier", + "src": "49836:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2688, + "name": "ElementaryTypeName", + "src": "49799:7:1" + } + ], + "id": 2689, + "name": "VariableDeclaration", + "src": "49799:15:1" + } + ], + "id": 2690, + "name": "ParameterList", + "src": "49798:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2692, + "name": "ElementaryTypeName", + "src": "49854:7:1" + } + ], + "id": 2693, + "name": "VariableDeclaration", + "src": "49854:7:1" + } + ], + "id": 2694, + "name": "ParameterList", + "src": "49853:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "get", + "referencedDeclaration": 2479, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2695, + "name": "Identifier", + "src": "49880:12:1" + } + ], + "id": 2696, + "name": "MemberAccess", + "src": "49880:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2689, + "type": "uint256", + "value": "tokenId" + }, + "id": 2697, + "name": "Identifier", + "src": "49897:7:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: owner query for nonexistent token\"", + "value": "ERC721: owner query for nonexistent token" + }, + "id": 2698, + "name": "Literal", + "src": "49906:43:1" + } + ], + "id": 2699, + "name": "FunctionCall", + "src": "49880:70:1" + } + ], + "id": 2700, + "name": "Return", + "src": "49873:77:1" + } + ], + "id": 2701, + "name": "Block", + "src": "49863:94:1" + } + ], + "id": 2702, + "name": "FunctionDefinition", + "src": "49782:175:1" + }, + { + "attributes": { + "baseFunctions": [ + 665 + ], + "functionSelector": "06fdde03", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-name}." + }, + "id": 2703, + "name": "StructuredDocumentation", + "src": "49963:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2705, + "name": "OverrideSpecifier", + "src": "50055:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2704, + "name": "ParameterList", + "src": "50032:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2712, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2706, + "name": "ElementaryTypeName", + "src": "50073:6:1" + } + ], + "id": 2707, + "name": "VariableDeclaration", + "src": "50073:13:1" + } + ], + "id": 2708, + "name": "ParameterList", + "src": "50072:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2708 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2709, + "name": "Identifier", + "src": "50105:5:1" + } + ], + "id": 2710, + "name": "Return", + "src": "50098:12:1" + } + ], + "id": 2711, + "name": "Block", + "src": "50088:29:1" + } + ], + "id": 2712, + "name": "FunctionDefinition", + "src": "50019:98:1" + }, + { + "attributes": { + "baseFunctions": [ + 671 + ], + "functionSelector": "95d89b41", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-symbol}." + }, + "id": 2713, + "name": "StructuredDocumentation", + "src": "50123:53:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2715, + "name": "OverrideSpecifier", + "src": "50219:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2714, + "name": "ParameterList", + "src": "50196:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2722, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2716, + "name": "ElementaryTypeName", + "src": "50237:6:1" + } + ], + "id": 2717, + "name": "VariableDeclaration", + "src": "50237:13:1" + } + ], + "id": 2718, + "name": "ParameterList", + "src": "50236:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2718 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2719, + "name": "Identifier", + "src": "50269:7:1" + } + ], + "id": 2720, + "name": "Return", + "src": "50262:14:1" + } + ], + "id": 2721, + "name": "Block", + "src": "50252:31:1" + } + ], + "id": 2722, + "name": "FunctionDefinition", + "src": "50181:102:1" + }, + { + "attributes": { + "baseFunctions": [ + 679 + ], + "functionSelector": "c87b56dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "id": 2723, + "name": "StructuredDocumentation", + "src": "50289:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2727, + "name": "OverrideSpecifier", + "src": "50404:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2790, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2724, + "name": "ElementaryTypeName", + "src": "50367:7:1" + } + ], + "id": 2725, + "name": "VariableDeclaration", + "src": "50367:15:1" + } + ], + "id": 2726, + "name": "ParameterList", + "src": "50366:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2790, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2728, + "name": "ElementaryTypeName", + "src": "50422:6:1" + } + ], + "id": 2729, + "name": "VariableDeclaration", + "src": "50422:13:1" + } + ], + "id": 2730, + "name": "ParameterList", + "src": "50421:15:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2731, + "name": "Identifier", + "src": "50447:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2732, + "name": "Identifier", + "src": "50455:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2733, + "name": "Identifier", + "src": "50463:7:1" + } + ], + "id": 2734, + "name": "FunctionCall", + "src": "50455:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI query for nonexistent token\"", + "value": "ERC721Metadata: URI query for nonexistent token" + }, + "id": 2735, + "name": "Literal", + "src": "50473:49:1" + } + ], + "id": 2736, + "name": "FunctionCall", + "src": "50447:76:1" + } + ], + "id": 2737, + "name": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "attributes": { + "assignments": [ + 2739 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2738, + "name": "ElementaryTypeName", + "src": "50534:6:1" + } + ], + "id": 2739, + "name": "VariableDeclaration", + "src": "50534:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 2740, + "name": "Identifier", + "src": "50560:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2741, + "name": "Identifier", + "src": "50571:7:1" + } + ], + "id": 2742, + "name": "IndexAccess", + "src": "50560:19:1" + } + ], + "id": 2743, + "name": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "attributes": { + "assignments": [ + 2745 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "base", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2744, + "name": "ElementaryTypeName", + "src": "50589:6:1" + } + ], + "id": 2745, + "name": "VariableDeclaration", + "src": "50589:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2799, + "type": "function () view returns (string memory)", + "value": "baseURI" + }, + "id": 2746, + "name": "Identifier", + "src": "50610:7:1" + } + ], + "id": 2747, + "name": "FunctionCall", + "src": "50610:9:1" + } + ], + "id": 2748, + "name": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2749, + "name": "ElementaryTypeName", + "src": "50692:5:1" + } + ], + "id": 2750, + "name": "ElementaryTypeNameExpression", + "src": "50692:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2751, + "name": "Identifier", + "src": "50698:4:1" + } + ], + "id": 2752, + "name": "FunctionCall", + "src": "50692:11:1" + } + ], + "id": 2753, + "name": "MemberAccess", + "src": "50692:18:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2754, + "name": "Literal", + "src": "50714:1:1" + } + ], + "id": 2755, + "name": "BinaryOperation", + "src": "50692:23:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2756, + "name": "Identifier", + "src": "50738:9:1" + } + ], + "id": 2757, + "name": "Return", + "src": "50731:16:1" + } + ], + "id": 2758, + "name": "Block", + "src": "50717:41:1" + } + ], + "id": 2759, + "name": "IfStatement", + "src": "50688:70:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2760, + "name": "ElementaryTypeName", + "src": "50860:5:1" + } + ], + "id": 2761, + "name": "ElementaryTypeNameExpression", + "src": "50860:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2762, + "name": "Identifier", + "src": "50866:9:1" + } + ], + "id": 2763, + "name": "FunctionCall", + "src": "50860:16:1" + } + ], + "id": 2764, + "name": "MemberAccess", + "src": "50860:23:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2765, + "name": "Literal", + "src": "50886:1:1" + } + ], + "id": 2766, + "name": "BinaryOperation", + "src": "50860:27:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2767, + "name": "ElementaryTypeName", + "src": "50910:6:1" + } + ], + "id": 2768, + "name": "ElementaryTypeNameExpression", + "src": "50910:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2769, + "name": "Identifier", + "src": "50917:3:1" + } + ], + "id": 2770, + "name": "MemberAccess", + "src": "50917:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2771, + "name": "Identifier", + "src": "50934:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2772, + "name": "Identifier", + "src": "50940:9:1" + } + ], + "id": 2773, + "name": "FunctionCall", + "src": "50917:33:1" + } + ], + "id": 2774, + "name": "FunctionCall", + "src": "50910:41:1" + } + ], + "id": 2775, + "name": "Return", + "src": "50903:48:1" + } + ], + "id": 2776, + "name": "Block", + "src": "50889:73:1" + } + ], + "id": 2777, + "name": "IfStatement", + "src": "50856:106:1" + }, + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2778, + "name": "ElementaryTypeName", + "src": "51068:6:1" + } + ], + "id": 2779, + "name": "ElementaryTypeNameExpression", + "src": "51068:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2780, + "name": "Identifier", + "src": "51075:3:1" + } + ], + "id": 2781, + "name": "MemberAccess", + "src": "51075:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2782, + "name": "Identifier", + "src": "51092:4:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "toString", + "referencedDeclaration": 2565, + "type": "function (uint256) pure returns (string memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2783, + "name": "Identifier", + "src": "51098:7:1" + } + ], + "id": 2784, + "name": "MemberAccess", + "src": "51098:16:1" + } + ], + "id": 2785, + "name": "FunctionCall", + "src": "51098:18:1" + } + ], + "id": 2786, + "name": "FunctionCall", + "src": "51075:42:1" + } + ], + "id": 2787, + "name": "FunctionCall", + "src": "51068:50:1" + } + ], + "id": 2788, + "name": "Return", + "src": "51061:57:1" + } + ], + "id": 2789, + "name": "Block", + "src": "50437:688:1" + } + ], + "id": 2790, + "name": "FunctionDefinition", + "src": "50349:776:1" + }, + { + "attributes": { + "functionSelector": "6c0360eb", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "baseURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "id": 2791, + "name": "StructuredDocumentation", + "src": "51131:221:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2792, + "name": "ParameterList", + "src": "51373:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2799, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2793, + "name": "ElementaryTypeName", + "src": "51405:6:1" + } + ], + "id": 2794, + "name": "VariableDeclaration", + "src": "51405:13:1" + } + ], + "id": 2795, + "name": "ParameterList", + "src": "51404:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2795 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 2796, + "name": "Identifier", + "src": "51437:8:1" + } + ], + "id": 2797, + "name": "Return", + "src": "51430:15:1" + } + ], + "id": 2798, + "name": "Block", + "src": "51420:32:1" + } + ], + "id": 2799, + "name": "FunctionDefinition", + "src": "51357:95:1" + }, + { + "attributes": { + "baseFunctions": [ + 700 + ], + "functionSelector": "2f745c59", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "id": 2800, + "name": "StructuredDocumentation", + "src": "51458:68:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2806, + "name": "OverrideSpecifier", + "src": "51610:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2801, + "name": "ElementaryTypeName", + "src": "51560:7:1" + } + ], + "id": 2802, + "name": "VariableDeclaration", + "src": "51560:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2803, + "name": "ElementaryTypeName", + "src": "51575:7:1" + } + ], + "id": 2804, + "name": "VariableDeclaration", + "src": "51575:13:1" + } + ], + "id": 2805, + "name": "ParameterList", + "src": "51559:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2807, + "name": "ElementaryTypeName", + "src": "51628:7:1" + } + ], + "id": 2808, + "name": "VariableDeclaration", + "src": "51628:7:1" + } + ], + "id": 2809, + "name": "ParameterList", + "src": "51627:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2809 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 1920, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2810, + "name": "Identifier", + "src": "51654:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2802, + "type": "address", + "value": "owner" + }, + "id": 2811, + "name": "Identifier", + "src": "51668:5:1" + } + ], + "id": 2812, + "name": "IndexAccess", + "src": "51654:20:1" + } + ], + "id": 2813, + "name": "MemberAccess", + "src": "51654:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2804, + "type": "uint256", + "value": "index" + }, + "id": 2814, + "name": "Identifier", + "src": "51678:5:1" + } + ], + "id": 2815, + "name": "FunctionCall", + "src": "51654:30:1" + } + ], + "id": 2816, + "name": "Return", + "src": "51647:37:1" + } + ], + "id": 2817, + "name": "Block", + "src": "51637:54:1" + } + ], + "id": 2818, + "name": "FunctionDefinition", + "src": "51531:160:1" + }, + { + "attributes": { + "baseFunctions": [ + 690 + ], + "functionSelector": "18160ddd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "id": 2819, + "name": "StructuredDocumentation", + "src": "51697:60:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2821, + "name": "OverrideSpecifier", + "src": "51805:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2820, + "name": "ParameterList", + "src": "51782:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2830, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2822, + "name": "ElementaryTypeName", + "src": "51823:7:1" + } + ], + "id": 2823, + "name": "VariableDeclaration", + "src": "51823:7:1" + } + ], + "id": 2824, + "name": "ParameterList", + "src": "51822:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2824 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 2340, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2825, + "name": "Identifier", + "src": "51942:12:1" + } + ], + "id": 2826, + "name": "MemberAccess", + "src": "51942:19:1" + } + ], + "id": 2827, + "name": "FunctionCall", + "src": "51942:21:1" + } + ], + "id": 2828, + "name": "Return", + "src": "51935:28:1" + } + ], + "id": 2829, + "name": "Block", + "src": "51832:138:1" + } + ], + "id": 2830, + "name": "FunctionDefinition", + "src": "51762:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 708 + ], + "functionSelector": "4f6ccce7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "id": 2831, + "name": "StructuredDocumentation", + "src": "51976:61:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2835, + "name": "OverrideSpecifier", + "src": "52099:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2832, + "name": "ElementaryTypeName", + "src": "52064:7:1" + } + ], + "id": 2833, + "name": "VariableDeclaration", + "src": "52064:13:1" + } + ], + "id": 2834, + "name": "ParameterList", + "src": "52063:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2836, + "name": "ElementaryTypeName", + "src": "52117:7:1" + } + ], + "id": 2837, + "name": "VariableDeclaration", + "src": "52117:7:1" + } + ], + "id": 2838, + "name": "ParameterList", + "src": "52116:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2840, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2848, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2839, + "name": "ElementaryTypeName", + "src": "52137:7:1" + } + ], + "id": 2840, + "name": "VariableDeclaration", + "src": "52137:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(uint256,address)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 2379, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2841, + "name": "Identifier", + "src": "52158:12:1" + } + ], + "id": 2842, + "name": "MemberAccess", + "src": "52158:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2833, + "type": "uint256", + "value": "index" + }, + "id": 2843, + "name": "Identifier", + "src": "52174:5:1" + } + ], + "id": 2844, + "name": "FunctionCall", + "src": "52158:22:1" + } + ], + "id": 2845, + "name": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2838 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2840, + "type": "uint256", + "value": "tokenId" + }, + "id": 2846, + "name": "Identifier", + "src": "52197:7:1" + } + ], + "id": 2847, + "name": "Return", + "src": "52190:14:1" + } + ], + "id": 2848, + "name": "Block", + "src": "52126:85:1" + } + ], + "id": 2849, + "name": "FunctionDefinition", + "src": "52042:169:1" + }, + { + "attributes": { + "baseFunctions": [ + 616 + ], + "functionSelector": "095ea7b3", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-approve}." + }, + "id": 2850, + "name": "StructuredDocumentation", + "src": "52217:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2856, + "name": "OverrideSpecifier", + "src": "52329:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2851, + "name": "ElementaryTypeName", + "src": "52285:7:1" + } + ], + "id": 2852, + "name": "VariableDeclaration", + "src": "52285:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2853, + "name": "ElementaryTypeName", + "src": "52297:7:1" + } + ], + "id": 2854, + "name": "VariableDeclaration", + "src": "52297:15:1" + } + ], + "id": 2855, + "name": "ParameterList", + "src": "52284:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2857, + "name": "ParameterList", + "src": "52338:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2859 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2892, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2858, + "name": "ElementaryTypeName", + "src": "52348:7:1" + } + ], + "id": 2859, + "name": "VariableDeclaration", + "src": "52348:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2860, + "name": "Identifier", + "src": "52364:6:1" + } + ], + "id": 2861, + "name": "MemberAccess", + "src": "52364:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2862, + "name": "Identifier", + "src": "52379:7:1" + } + ], + "id": 2863, + "name": "FunctionCall", + "src": "52364:23:1" + } + ], + "id": 2864, + "name": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2865, + "name": "Identifier", + "src": "52397:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2866, + "name": "Identifier", + "src": "52405:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2867, + "name": "Identifier", + "src": "52411:5:1" + } + ], + "id": 2868, + "name": "BinaryOperation", + "src": "52405:11:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approval to current owner\"", + "value": "ERC721: approval to current owner" + }, + "id": 2869, + "name": "Literal", + "src": "52418:35:1" + } + ], + "id": 2870, + "name": "FunctionCall", + "src": "52397:57:1" + } + ], + "id": 2871, + "name": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2872, + "name": "Identifier", + "src": "52465:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2873, + "name": "Identifier", + "src": "52473:10:1" + } + ], + "id": 2874, + "name": "FunctionCall", + "src": "52473:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2875, + "name": "Identifier", + "src": "52489:5:1" + } + ], + "id": 2876, + "name": "BinaryOperation", + "src": "52473:21:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2877, + "name": "Identifier", + "src": "52498:6:1" + } + ], + "id": 2878, + "name": "MemberAccess", + "src": "52498:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2879, + "name": "Identifier", + "src": "52522:5:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2880, + "name": "Identifier", + "src": "52529:10:1" + } + ], + "id": 2881, + "name": "FunctionCall", + "src": "52529:12:1" + } + ], + "id": 2882, + "name": "FunctionCall", + "src": "52498:44:1" + } + ], + "id": 2883, + "name": "BinaryOperation", + "src": "52473:69:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve caller is not owner nor approved for all\"", + "value": "ERC721: approve caller is not owner nor approved for all" + }, + "id": 2884, + "name": "Literal", + "src": "52556:58:1" + } + ], + "id": 2885, + "name": "FunctionCall", + "src": "52465:159:1" + } + ], + "id": 2886, + "name": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 2887, + "name": "Identifier", + "src": "52635:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2888, + "name": "Identifier", + "src": "52644:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2889, + "name": "Identifier", + "src": "52648:7:1" + } + ], + "id": 2890, + "name": "FunctionCall", + "src": "52635:21:1" + } + ], + "id": 2891, + "name": "ExpressionStatement", + "src": "52635:21:1" + } + ], + "id": 2892, + "name": "Block", + "src": "52338:325:1" + } + ], + "id": 2893, + "name": "FunctionDefinition", + "src": "52268:395:1" + }, + { + "attributes": { + "baseFunctions": [ + 624 + ], + "functionSelector": "081812fc", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-getApproved}." + }, + "id": 2894, + "name": "StructuredDocumentation", + "src": "52669:50:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2898, + "name": "OverrideSpecifier", + "src": "52782:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2895, + "name": "ElementaryTypeName", + "src": "52745:7:1" + } + ], + "id": 2896, + "name": "VariableDeclaration", + "src": "52745:15:1" + } + ], + "id": 2897, + "name": "ParameterList", + "src": "52744:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2899, + "name": "ElementaryTypeName", + "src": "52800:7:1" + } + ], + "id": 2900, + "name": "VariableDeclaration", + "src": "52800:7:1" + } + ], + "id": 2901, + "name": "ParameterList", + "src": "52799:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2902, + "name": "Identifier", + "src": "52819:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2903, + "name": "Identifier", + "src": "52827:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2904, + "name": "Identifier", + "src": "52835:7:1" + } + ], + "id": 2905, + "name": "FunctionCall", + "src": "52827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approved query for nonexistent token\"", + "value": "ERC721: approved query for nonexistent token" + }, + "id": 2906, + "name": "Literal", + "src": "52845:46:1" + } + ], + "id": 2907, + "name": "FunctionCall", + "src": "52819:73:1" + } + ], + "id": 2908, + "name": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "attributes": { + "functionReturnParameters": 2901 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 2909, + "name": "Identifier", + "src": "52910:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2910, + "name": "Identifier", + "src": "52926:7:1" + } + ], + "id": 2911, + "name": "IndexAccess", + "src": "52910:24:1" + } + ], + "id": 2912, + "name": "Return", + "src": "52903:31:1" + } + ], + "id": 2913, + "name": "Block", + "src": "52809:132:1" + } + ], + "id": 2914, + "name": "FunctionDefinition", + "src": "52724:217:1" + }, + { + "attributes": { + "baseFunctions": [ + 632 + ], + "functionSelector": "a22cb465", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "id": 2915, + "name": "StructuredDocumentation", + "src": "52947:56:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2921, + "name": "OverrideSpecifier", + "src": "53083:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2916, + "name": "ElementaryTypeName", + "src": "53035:7:1" + } + ], + "id": 2917, + "name": "VariableDeclaration", + "src": "53035:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "approved", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2918, + "name": "ElementaryTypeName", + "src": "53053:4:1" + } + ], + "id": 2919, + "name": "VariableDeclaration", + "src": "53053:13:1" + } + ], + "id": 2920, + "name": "ParameterList", + "src": "53034:33:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2922, + "name": "ParameterList", + "src": "53092:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2923, + "name": "Identifier", + "src": "53102:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2924, + "name": "Identifier", + "src": "53110:8:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2925, + "name": "Identifier", + "src": "53122:10:1" + } + ], + "id": 2926, + "name": "FunctionCall", + "src": "53122:12:1" + } + ], + "id": 2927, + "name": "BinaryOperation", + "src": "53110:24:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f766520746f2063616c6c6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve to caller\"", + "value": "ERC721: approve to caller" + }, + "id": 2928, + "name": "Literal", + "src": "53136:27:1" + } + ], + "id": 2929, + "name": "FunctionCall", + "src": "53102:62:1" + } + ], + "id": 2930, + "name": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2931, + "name": "Identifier", + "src": "53175:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2932, + "name": "Identifier", + "src": "53194:10:1" + } + ], + "id": 2933, + "name": "FunctionCall", + "src": "53194:12:1" + } + ], + "id": 2935, + "name": "IndexAccess", + "src": "53175:32:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2934, + "name": "Identifier", + "src": "53208:8:1" + } + ], + "id": 2936, + "name": "IndexAccess", + "src": "53175:42:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2937, + "name": "Identifier", + "src": "53220:8:1" + } + ], + "id": 2938, + "name": "Assignment", + "src": "53175:53:1" + } + ], + "id": 2939, + "name": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 572, + "type": "function (address,address,bool)", + "value": "ApprovalForAll" + }, + "id": 2940, + "name": "Identifier", + "src": "53243:14:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2941, + "name": "Identifier", + "src": "53258:10:1" + } + ], + "id": 2942, + "name": "FunctionCall", + "src": "53258:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2943, + "name": "Identifier", + "src": "53272:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2944, + "name": "Identifier", + "src": "53282:8:1" + } + ], + "id": 2945, + "name": "FunctionCall", + "src": "53243:48:1" + } + ], + "id": 2946, + "name": "EmitStatement", + "src": "53238:53:1" + } + ], + "id": 2947, + "name": "Block", + "src": "53092:206:1" + } + ], + "id": 2948, + "name": "FunctionDefinition", + "src": "53008:290:1" + }, + { + "attributes": { + "baseFunctions": [ + 642 + ], + "functionSelector": "e985e9c5", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "id": 2949, + "name": "StructuredDocumentation", + "src": "53304:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2955, + "name": "OverrideSpecifier", + "src": "53443:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2950, + "name": "ElementaryTypeName", + "src": "53390:7:1" + } + ], + "id": 2951, + "name": "VariableDeclaration", + "src": "53390:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2952, + "name": "ElementaryTypeName", + "src": "53405:7:1" + } + ], + "id": 2953, + "name": "VariableDeclaration", + "src": "53405:16:1" + } + ], + "id": 2954, + "name": "ParameterList", + "src": "53389:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2956, + "name": "ElementaryTypeName", + "src": "53461:4:1" + } + ], + "id": 2957, + "name": "VariableDeclaration", + "src": "53461:4:1" + } + ], + "id": 2958, + "name": "ParameterList", + "src": "53460:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2958 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2959, + "name": "Identifier", + "src": "53484:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2951, + "type": "address", + "value": "owner" + }, + "id": 2960, + "name": "Identifier", + "src": "53503:5:1" + } + ], + "id": 2961, + "name": "IndexAccess", + "src": "53484:25:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2953, + "type": "address", + "value": "operator" + }, + "id": 2962, + "name": "Identifier", + "src": "53510:8:1" + } + ], + "id": 2963, + "name": "IndexAccess", + "src": "53484:35:1" + } + ], + "id": 2964, + "name": "Return", + "src": "53477:42:1" + } + ], + "id": 2965, + "name": "Block", + "src": "53467:59:1" + } + ], + "id": 2966, + "name": "FunctionDefinition", + "src": "53364:162:1" + }, + { + "attributes": { + "baseFunctions": [ + 608 + ], + "functionSelector": "23b872dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-transferFrom}." + }, + "id": 2967, + "name": "StructuredDocumentation", + "src": "53532:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2975, + "name": "OverrideSpecifier", + "src": "53668:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2968, + "name": "ElementaryTypeName", + "src": "53610:7:1" + } + ], + "id": 2969, + "name": "VariableDeclaration", + "src": "53610:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2970, + "name": "ElementaryTypeName", + "src": "53624:7:1" + } + ], + "id": 2971, + "name": "VariableDeclaration", + "src": "53624:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2972, + "name": "ElementaryTypeName", + "src": "53636:7:1" + } + ], + "id": 2973, + "name": "VariableDeclaration", + "src": "53636:15:1" + } + ], + "id": 2974, + "name": "ParameterList", + "src": "53609:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2976, + "name": "ParameterList", + "src": "53677:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2977, + "name": "Identifier", + "src": "53739:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 2978, + "name": "Identifier", + "src": "53747:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2979, + "name": "Identifier", + "src": "53766:10:1" + } + ], + "id": 2980, + "name": "FunctionCall", + "src": "53766:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2981, + "name": "Identifier", + "src": "53780:7:1" + } + ], + "id": 2982, + "name": "FunctionCall", + "src": "53747:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 2983, + "name": "Literal", + "src": "53790:51:1" + } + ], + "id": 2984, + "name": "FunctionCall", + "src": "53739:103:1" + } + ], + "id": 2985, + "name": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 2986, + "name": "Identifier", + "src": "53853:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2969, + "type": "address", + "value": "from" + }, + "id": 2987, + "name": "Identifier", + "src": "53863:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2971, + "type": "address", + "value": "to" + }, + "id": 2988, + "name": "Identifier", + "src": "53869:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2989, + "name": "Identifier", + "src": "53873:7:1" + } + ], + "id": 2990, + "name": "FunctionCall", + "src": "53853:28:1" + } + ], + "id": 2991, + "name": "ExpressionStatement", + "src": "53853:28:1" + } + ], + "id": 2992, + "name": "Block", + "src": "53677:211:1" + } + ], + "id": 2993, + "name": "FunctionDefinition", + "src": "53588:300:1" + }, + { + "attributes": { + "baseFunctions": [ + 598 + ], + "functionSelector": "42842e0e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 2994, + "name": "StructuredDocumentation", + "src": "53894:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3002, + "name": "OverrideSpecifier", + "src": "54038:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2995, + "name": "ElementaryTypeName", + "src": "53980:7:1" + } + ], + "id": 2996, + "name": "VariableDeclaration", + "src": "53980:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2997, + "name": "ElementaryTypeName", + "src": "53994:7:1" + } + ], + "id": 2998, + "name": "VariableDeclaration", + "src": "53994:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2999, + "name": "ElementaryTypeName", + "src": "54006:7:1" + } + ], + "id": 3000, + "name": "VariableDeclaration", + "src": "54006:15:1" + } + ], + "id": 3001, + "name": "ParameterList", + "src": "53979:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3003, + "name": "ParameterList", + "src": "54047:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "type": "function (address,address,uint256,bytes memory)", + "value": "safeTransferFrom" + }, + "id": 3004, + "name": "Identifier", + "src": "54057:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2996, + "type": "address", + "value": "from" + }, + "id": 3005, + "name": "Identifier", + "src": "54074:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2998, + "type": "address", + "value": "to" + }, + "id": 3006, + "name": "Identifier", + "src": "54080:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3000, + "type": "uint256", + "value": "tokenId" + }, + "id": 3007, + "name": "Identifier", + "src": "54084:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3008, + "name": "Literal", + "src": "54093:2:1" + } + ], + "id": 3009, + "name": "FunctionCall", + "src": "54057:39:1" + } + ], + "id": 3010, + "name": "ExpressionStatement", + "src": "54057:39:1" + } + ], + "id": 3011, + "name": "Block", + "src": "54047:56:1" + } + ], + "id": 3012, + "name": "FunctionDefinition", + "src": "53954:149:1" + }, + { + "attributes": { + "baseFunctions": [ + 654 + ], + "functionSelector": "b88d4fde", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 3013, + "name": "StructuredDocumentation", + "src": "54109:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3023, + "name": "OverrideSpecifier", + "src": "54273:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3014, + "name": "ElementaryTypeName", + "src": "54195:7:1" + } + ], + "id": 3015, + "name": "VariableDeclaration", + "src": "54195:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3016, + "name": "ElementaryTypeName", + "src": "54209:7:1" + } + ], + "id": 3017, + "name": "VariableDeclaration", + "src": "54209:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3018, + "name": "ElementaryTypeName", + "src": "54221:7:1" + } + ], + "id": 3019, + "name": "VariableDeclaration", + "src": "54221:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3042, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3020, + "name": "ElementaryTypeName", + "src": "54238:5:1" + } + ], + "id": 3021, + "name": "VariableDeclaration", + "src": "54238:18:1" + } + ], + "id": 3022, + "name": "ParameterList", + "src": "54194:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3024, + "name": "ParameterList", + "src": "54282:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3025, + "name": "Identifier", + "src": "54292:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 3026, + "name": "Identifier", + "src": "54300:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3027, + "name": "Identifier", + "src": "54319:10:1" + } + ], + "id": 3028, + "name": "FunctionCall", + "src": "54319:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3029, + "name": "Identifier", + "src": "54333:7:1" + } + ], + "id": 3030, + "name": "FunctionCall", + "src": "54300:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 3031, + "name": "Literal", + "src": "54343:51:1" + } + ], + "id": 3032, + "name": "FunctionCall", + "src": "54292:103:1" + } + ], + "id": 3033, + "name": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3071, + "type": "function (address,address,uint256,bytes memory)", + "value": "_safeTransfer" + }, + "id": 3034, + "name": "Identifier", + "src": "54405:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3015, + "type": "address", + "value": "from" + }, + "id": 3035, + "name": "Identifier", + "src": "54419:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3017, + "type": "address", + "value": "to" + }, + "id": 3036, + "name": "Identifier", + "src": "54425:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3037, + "name": "Identifier", + "src": "54429:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3021, + "type": "bytes memory", + "value": "_data" + }, + "id": 3038, + "name": "Identifier", + "src": "54438:5:1" + } + ], + "id": 3039, + "name": "FunctionCall", + "src": "54405:39:1" + } + ], + "id": 3040, + "name": "ExpressionStatement", + "src": "54405:39:1" + } + ], + "id": 3041, + "name": "Block", + "src": "54282:169:1" + } + ], + "id": 3042, + "name": "FunctionDefinition", + "src": "54169:282:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3043, + "name": "StructuredDocumentation", + "src": "54457:851:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3044, + "name": "ElementaryTypeName", + "src": "55336:7:1" + } + ], + "id": 3045, + "name": "VariableDeclaration", + "src": "55336:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3046, + "name": "ElementaryTypeName", + "src": "55350:7:1" + } + ], + "id": 3047, + "name": "VariableDeclaration", + "src": "55350:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3048, + "name": "ElementaryTypeName", + "src": "55362:7:1" + } + ], + "id": 3049, + "name": "VariableDeclaration", + "src": "55362:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3071, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3050, + "name": "ElementaryTypeName", + "src": "55379:5:1" + } + ], + "id": 3051, + "name": "VariableDeclaration", + "src": "55379:18:1" + } + ], + "id": 3052, + "name": "ParameterList", + "src": "55335:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3053, + "name": "ParameterList", + "src": "55416:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 3054, + "name": "Identifier", + "src": "55426:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3055, + "name": "Identifier", + "src": "55436:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3056, + "name": "Identifier", + "src": "55442:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3057, + "name": "Identifier", + "src": "55446:7:1" + } + ], + "id": 3058, + "name": "FunctionCall", + "src": "55426:28:1" + } + ], + "id": 3059, + "name": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3060, + "name": "Identifier", + "src": "55464:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3061, + "name": "Identifier", + "src": "55472:22:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3062, + "name": "Identifier", + "src": "55495:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3063, + "name": "Identifier", + "src": "55501:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3064, + "name": "Identifier", + "src": "55505:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3051, + "type": "bytes memory", + "value": "_data" + }, + "id": 3065, + "name": "Identifier", + "src": "55514:5:1" + } + ], + "id": 3066, + "name": "FunctionCall", + "src": "55472:48:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3067, + "name": "Literal", + "src": "55522:52:1" + } + ], + "id": 3068, + "name": "FunctionCall", + "src": "55464:111:1" + } + ], + "id": 3069, + "name": "ExpressionStatement", + "src": "55464:111:1" + } + ], + "id": 3070, + "name": "Block", + "src": "55416:166:1" + } + ], + "id": 3071, + "name": "FunctionDefinition", + "src": "55313:269:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_exists", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3072, + "name": "StructuredDocumentation", + "src": "55588:292:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3073, + "name": "ElementaryTypeName", + "src": "55902:7:1" + } + ], + "id": 3074, + "name": "VariableDeclaration", + "src": "55902:15:1" + } + ], + "id": 3075, + "name": "ParameterList", + "src": "55901:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3076, + "name": "ElementaryTypeName", + "src": "55950:4:1" + } + ], + "id": 3077, + "name": "VariableDeclaration", + "src": "55950:4:1" + } + ], + "id": 3078, + "name": "ParameterList", + "src": "55949:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3078 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "contains", + "referencedDeclaration": 2326, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3079, + "name": "Identifier", + "src": "55973:12:1" + } + ], + "id": 3080, + "name": "MemberAccess", + "src": "55973:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3074, + "type": "uint256", + "value": "tokenId" + }, + "id": 3081, + "name": "Identifier", + "src": "55995:7:1" + } + ], + "id": 3082, + "name": "FunctionCall", + "src": "55973:30:1" + } + ], + "id": 3083, + "name": "Return", + "src": "55966:37:1" + } + ], + "id": 3084, + "name": "Block", + "src": "55956:54:1" + } + ], + "id": 3085, + "name": "FunctionDefinition", + "src": "55885:125:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_isApprovedOrOwner", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3086, + "name": "StructuredDocumentation", + "src": "56016:147:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "spender", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3087, + "name": "ElementaryTypeName", + "src": "56196:7:1" + } + ], + "id": 3088, + "name": "VariableDeclaration", + "src": "56196:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3089, + "name": "ElementaryTypeName", + "src": "56213:7:1" + } + ], + "id": 3090, + "name": "VariableDeclaration", + "src": "56213:15:1" + } + ], + "id": 3091, + "name": "ParameterList", + "src": "56195:34:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3092, + "name": "ElementaryTypeName", + "src": "56261:4:1" + } + ], + "id": 3093, + "name": "VariableDeclaration", + "src": "56261:4:1" + } + ], + "id": 3094, + "name": "ParameterList", + "src": "56260:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3095, + "name": "Identifier", + "src": "56277:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3096, + "name": "Identifier", + "src": "56285:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3097, + "name": "Identifier", + "src": "56293:7:1" + } + ], + "id": 3098, + "name": "FunctionCall", + "src": "56285:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: operator query for nonexistent token\"", + "value": "ERC721: operator query for nonexistent token" + }, + "id": 3099, + "name": "Literal", + "src": "56303:46:1" + } + ], + "id": 3100, + "name": "FunctionCall", + "src": "56277:73:1" + } + ], + "id": 3101, + "name": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "attributes": { + "assignments": [ + 3103 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3126, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3102, + "name": "ElementaryTypeName", + "src": "56360:7:1" + } + ], + "id": 3103, + "name": "VariableDeclaration", + "src": "56360:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3104, + "name": "Identifier", + "src": "56376:6:1" + } + ], + "id": 3105, + "name": "MemberAccess", + "src": "56376:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3106, + "name": "Identifier", + "src": "56391:7:1" + } + ], + "id": 3107, + "name": "FunctionCall", + "src": "56376:23:1" + } + ], + "id": 3108, + "name": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "attributes": { + "functionReturnParameters": 3094 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3109, + "name": "Identifier", + "src": "56417:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3110, + "name": "Identifier", + "src": "56428:5:1" + } + ], + "id": 3111, + "name": "BinaryOperation", + "src": "56417:16:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2914, + "type": "function (uint256) view returns (address)", + "value": "getApproved" + }, + "id": 3112, + "name": "Identifier", + "src": "56437:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3113, + "name": "Identifier", + "src": "56449:7:1" + } + ], + "id": 3114, + "name": "FunctionCall", + "src": "56437:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3115, + "name": "Identifier", + "src": "56461:7:1" + } + ], + "id": 3116, + "name": "BinaryOperation", + "src": "56437:31:1" + } + ], + "id": 3117, + "name": "BinaryOperation", + "src": "56417:51:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3118, + "name": "Identifier", + "src": "56472:6:1" + } + ], + "id": 3119, + "name": "MemberAccess", + "src": "56472:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3120, + "name": "Identifier", + "src": "56496:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3121, + "name": "Identifier", + "src": "56503:7:1" + } + ], + "id": 3122, + "name": "FunctionCall", + "src": "56472:39:1" + } + ], + "id": 3123, + "name": "BinaryOperation", + "src": "56417:94:1" + } + ], + "id": 3124, + "name": "TupleExpression", + "src": "56416:96:1" + } + ], + "id": 3125, + "name": "Return", + "src": "56409:103:1" + } + ], + "id": 3126, + "name": "Block", + "src": "56267:252:1" + } + ], + "id": 3127, + "name": "FunctionDefinition", + "src": "56168:351:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3128, + "name": "StructuredDocumentation", + "src": "56525:320:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3129, + "name": "ElementaryTypeName", + "src": "56869:7:1" + } + ], + "id": 3130, + "name": "VariableDeclaration", + "src": "56869:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3131, + "name": "ElementaryTypeName", + "src": "56881:7:1" + } + ], + "id": 3132, + "name": "VariableDeclaration", + "src": "56881:15:1" + } + ], + "id": 3133, + "name": "ParameterList", + "src": "56868:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3134, + "name": "ParameterList", + "src": "56915:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "type": "function (address,uint256,bytes memory)", + "value": "_safeMint" + }, + "id": 3135, + "name": "Identifier", + "src": "56925:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3130, + "type": "address", + "value": "to" + }, + "id": 3136, + "name": "Identifier", + "src": "56935:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3132, + "type": "uint256", + "value": "tokenId" + }, + "id": 3137, + "name": "Identifier", + "src": "56939:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3138, + "name": "Literal", + "src": "56948:2:1" + } + ], + "id": 3139, + "name": "FunctionCall", + "src": "56925:26:1" + } + ], + "id": 3140, + "name": "ExpressionStatement", + "src": "56925:26:1" + } + ], + "id": 3141, + "name": "Block", + "src": "56915:43:1" + } + ], + "id": 3142, + "name": "FunctionDefinition", + "src": "56850:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3143, + "name": "StructuredDocumentation", + "src": "56964:210:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3144, + "name": "ElementaryTypeName", + "src": "57198:7:1" + } + ], + "id": 3145, + "name": "VariableDeclaration", + "src": "57198:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3146, + "name": "ElementaryTypeName", + "src": "57210:7:1" + } + ], + "id": 3147, + "name": "VariableDeclaration", + "src": "57210:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3171, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3148, + "name": "ElementaryTypeName", + "src": "57227:5:1" + } + ], + "id": 3149, + "name": "VariableDeclaration", + "src": "57227:18:1" + } + ], + "id": 3150, + "name": "ParameterList", + "src": "57197:49:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3151, + "name": "ParameterList", + "src": "57264:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3230, + "type": "function (address,uint256)", + "value": "_mint" + }, + "id": 3152, + "name": "Identifier", + "src": "57274:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3153, + "name": "Identifier", + "src": "57280:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3154, + "name": "Identifier", + "src": "57284:7:1" + } + ], + "id": 3155, + "name": "FunctionCall", + "src": "57274:18:1" + } + ], + "id": 3156, + "name": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3157, + "name": "Identifier", + "src": "57302:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3158, + "name": "Identifier", + "src": "57310:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3159, + "name": "ElementaryTypeName", + "src": "57333:7:1" + } + ], + "id": 3160, + "name": "ElementaryTypeNameExpression", + "src": "57333:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3161, + "name": "Literal", + "src": "57341:1:1" + } + ], + "id": 3162, + "name": "FunctionCall", + "src": "57333:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3163, + "name": "Identifier", + "src": "57345:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3164, + "name": "Identifier", + "src": "57349:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3149, + "type": "bytes memory", + "value": "_data" + }, + "id": 3165, + "name": "Identifier", + "src": "57358:5:1" + } + ], + "id": 3166, + "name": "FunctionCall", + "src": "57310:54:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3167, + "name": "Literal", + "src": "57366:52:1" + } + ], + "id": 3168, + "name": "FunctionCall", + "src": "57302:117:1" + } + ], + "id": 3169, + "name": "ExpressionStatement", + "src": "57302:117:1" + } + ], + "id": 3170, + "name": "Block", + "src": "57264:162:1" + } + ], + "id": 3171, + "name": "FunctionDefinition", + "src": "57179:247:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_mint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3172, + "name": "StructuredDocumentation", + "src": "57432:311:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3173, + "name": "ElementaryTypeName", + "src": "57763:7:1" + } + ], + "id": 3174, + "name": "VariableDeclaration", + "src": "57763:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3175, + "name": "ElementaryTypeName", + "src": "57775:7:1" + } + ], + "id": 3176, + "name": "VariableDeclaration", + "src": "57775:15:1" + } + ], + "id": 3177, + "name": "ParameterList", + "src": "57762:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3178, + "name": "ParameterList", + "src": "57809:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3179, + "name": "Identifier", + "src": "57819:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3180, + "name": "Identifier", + "src": "57827:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3181, + "name": "ElementaryTypeName", + "src": "57833:7:1" + } + ], + "id": 3182, + "name": "ElementaryTypeNameExpression", + "src": "57833:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3183, + "name": "Literal", + "src": "57841:1:1" + } + ], + "id": 3184, + "name": "FunctionCall", + "src": "57833:10:1" + } + ], + "id": 3185, + "name": "BinaryOperation", + "src": "57827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: mint to the zero address\"", + "value": "ERC721: mint to the zero address" + }, + "id": 3186, + "name": "Literal", + "src": "57845:34:1" + } + ], + "id": 3187, + "name": "FunctionCall", + "src": "57819:61:1" + } + ], + "id": 3188, + "name": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3189, + "name": "Identifier", + "src": "57890:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3190, + "name": "Identifier", + "src": "57899:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3191, + "name": "Identifier", + "src": "57907:7:1" + } + ], + "id": 3192, + "name": "FunctionCall", + "src": "57899:16:1" + } + ], + "id": 3193, + "name": "UnaryOperation", + "src": "57898:17:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: token already minted\"", + "value": "ERC721: token already minted" + }, + "id": 3194, + "name": "Literal", + "src": "57917:30:1" + } + ], + "id": 3195, + "name": "FunctionCall", + "src": "57890:58:1" + } + ], + "id": 3196, + "name": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3197, + "name": "Identifier", + "src": "57959:20:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3198, + "name": "ElementaryTypeName", + "src": "57980:7:1" + } + ], + "id": 3199, + "name": "ElementaryTypeNameExpression", + "src": "57980:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3200, + "name": "Literal", + "src": "57988:1:1" + } + ], + "id": 3201, + "name": "FunctionCall", + "src": "57980:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3202, + "name": "Identifier", + "src": "57992:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3203, + "name": "Identifier", + "src": "57996:7:1" + } + ], + "id": 3204, + "name": "FunctionCall", + "src": "57959:45:1" + } + ], + "id": 3205, + "name": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3206, + "name": "Identifier", + "src": "58015:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3207, + "name": "Identifier", + "src": "58029:2:1" + } + ], + "id": 3208, + "name": "IndexAccess", + "src": "58015:17:1" + } + ], + "id": 3209, + "name": "MemberAccess", + "src": "58015:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3210, + "name": "Identifier", + "src": "58037:7:1" + } + ], + "id": 3211, + "name": "FunctionCall", + "src": "58015:30:1" + } + ], + "id": 3212, + "name": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3213, + "name": "Identifier", + "src": "58056:12:1" + } + ], + "id": 3215, + "name": "MemberAccess", + "src": "58056:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3216, + "name": "Identifier", + "src": "58073:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3217, + "name": "Identifier", + "src": "58082:2:1" + } + ], + "id": 3218, + "name": "FunctionCall", + "src": "58056:29:1" + } + ], + "id": 3219, + "name": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3220, + "name": "Identifier", + "src": "58101:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3221, + "name": "ElementaryTypeName", + "src": "58110:7:1" + } + ], + "id": 3222, + "name": "ElementaryTypeNameExpression", + "src": "58110:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3223, + "name": "Literal", + "src": "58118:1:1" + } + ], + "id": 3224, + "name": "FunctionCall", + "src": "58110:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3225, + "name": "Identifier", + "src": "58122:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3226, + "name": "Identifier", + "src": "58126:7:1" + } + ], + "id": 3227, + "name": "FunctionCall", + "src": "58101:33:1" + } + ], + "id": 3228, + "name": "EmitStatement", + "src": "58096:38:1" + } + ], + "id": 3229, + "name": "Block", + "src": "57809:332:1" + } + ], + "id": 3230, + "name": "FunctionDefinition", + "src": "57748:393:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_burn", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3231, + "name": "StructuredDocumentation", + "src": "58147:206:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3299, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3232, + "name": "ElementaryTypeName", + "src": "58373:7:1" + } + ], + "id": 3233, + "name": "VariableDeclaration", + "src": "58373:15:1" + } + ], + "id": 3234, + "name": "ParameterList", + "src": "58372:17:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3235, + "name": "ParameterList", + "src": "58407:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 3237 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3298, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3236, + "name": "ElementaryTypeName", + "src": "58417:7:1" + } + ], + "id": 3237, + "name": "VariableDeclaration", + "src": "58417:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3238, + "name": "Identifier", + "src": "58433:6:1" + } + ], + "id": 3239, + "name": "MemberAccess", + "src": "58433:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3240, + "name": "Identifier", + "src": "58448:7:1" + } + ], + "id": 3241, + "name": "FunctionCall", + "src": "58433:23:1" + } + ], + "id": 3242, + "name": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3243, + "name": "Identifier", + "src": "58485:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3244, + "name": "Identifier", + "src": "58506:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3245, + "name": "ElementaryTypeName", + "src": "58513:7:1" + } + ], + "id": 3246, + "name": "ElementaryTypeNameExpression", + "src": "58513:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3247, + "name": "Literal", + "src": "58521:1:1" + } + ], + "id": 3248, + "name": "FunctionCall", + "src": "58513:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3249, + "name": "Identifier", + "src": "58525:7:1" + } + ], + "id": 3250, + "name": "FunctionCall", + "src": "58485:48:1" + } + ], + "id": 3251, + "name": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3252, + "name": "Identifier", + "src": "58571:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3253, + "name": "ElementaryTypeName", + "src": "58580:7:1" + } + ], + "id": 3254, + "name": "ElementaryTypeNameExpression", + "src": "58580:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3255, + "name": "Literal", + "src": "58588:1:1" + } + ], + "id": 3256, + "name": "FunctionCall", + "src": "58580:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3257, + "name": "Identifier", + "src": "58592:7:1" + } + ], + "id": 3258, + "name": "FunctionCall", + "src": "58571:29:1" + } + ], + "id": 3259, + "name": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes storage pointer", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 3260, + "name": "ElementaryTypeName", + "src": "58650:5:1" + } + ], + "id": 3261, + "name": "ElementaryTypeNameExpression", + "src": "58650:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3262, + "name": "Identifier", + "src": "58656:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3263, + "name": "Identifier", + "src": "58667:7:1" + } + ], + "id": 3264, + "name": "IndexAccess", + "src": "58656:19:1" + } + ], + "id": 3265, + "name": "FunctionCall", + "src": "58650:26:1" + } + ], + "id": 3266, + "name": "MemberAccess", + "src": "58650:33:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3267, + "name": "Literal", + "src": "58687:1:1" + } + ], + "id": 3268, + "name": "BinaryOperation", + "src": "58650:38:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3269, + "name": "Identifier", + "src": "58711:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3270, + "name": "Identifier", + "src": "58722:7:1" + } + ], + "id": 3271, + "name": "IndexAccess", + "src": "58711:19:1" + } + ], + "id": 3272, + "name": "UnaryOperation", + "src": "58704:26:1" + } + ], + "id": 3273, + "name": "ExpressionStatement", + "src": "58704:26:1" + } + ], + "id": 3274, + "name": "Block", + "src": "58690:51:1" + } + ], + "id": 3275, + "name": "IfStatement", + "src": "58646:95:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3276, + "name": "Identifier", + "src": "58751:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3277, + "name": "Identifier", + "src": "58765:5:1" + } + ], + "id": 3278, + "name": "IndexAccess", + "src": "58751:20:1" + } + ], + "id": 3279, + "name": "MemberAccess", + "src": "58751:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3280, + "name": "Identifier", + "src": "58779:7:1" + } + ], + "id": 3281, + "name": "FunctionCall", + "src": "58751:36:1" + } + ], + "id": 3282, + "name": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 2306, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3283, + "name": "Identifier", + "src": "58798:12:1" + } + ], + "id": 3285, + "name": "MemberAccess", + "src": "58798:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3286, + "name": "Identifier", + "src": "58818:7:1" + } + ], + "id": 3287, + "name": "FunctionCall", + "src": "58798:28:1" + } + ], + "id": 3288, + "name": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3289, + "name": "Identifier", + "src": "58842:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3290, + "name": "Identifier", + "src": "58851:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3291, + "name": "ElementaryTypeName", + "src": "58858:7:1" + } + ], + "id": 3292, + "name": "ElementaryTypeNameExpression", + "src": "58858:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3293, + "name": "Literal", + "src": "58866:1:1" + } + ], + "id": 3294, + "name": "FunctionCall", + "src": "58858:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3295, + "name": "Identifier", + "src": "58870:7:1" + } + ], + "id": 3296, + "name": "FunctionCall", + "src": "58842:36:1" + } + ], + "id": 3297, + "name": "EmitStatement", + "src": "58837:41:1" + } + ], + "id": 3298, + "name": "Block", + "src": "58407:478:1" + } + ], + "id": 3299, + "name": "FunctionDefinition", + "src": "58358:527:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_transfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3300, + "name": "StructuredDocumentation", + "src": "58891:313:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3301, + "name": "ElementaryTypeName", + "src": "59228:7:1" + } + ], + "id": 3302, + "name": "VariableDeclaration", + "src": "59228:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3303, + "name": "ElementaryTypeName", + "src": "59242:7:1" + } + ], + "id": 3304, + "name": "VariableDeclaration", + "src": "59242:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3305, + "name": "ElementaryTypeName", + "src": "59254:7:1" + } + ], + "id": 3306, + "name": "VariableDeclaration", + "src": "59254:15:1" + } + ], + "id": 3307, + "name": "ParameterList", + "src": "59227:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3308, + "name": "ParameterList", + "src": "59288:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3309, + "name": "Identifier", + "src": "59298:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3310, + "name": "Identifier", + "src": "59306:6:1" + } + ], + "id": 3311, + "name": "MemberAccess", + "src": "59306:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3312, + "name": "Identifier", + "src": "59321:7:1" + } + ], + "id": 3313, + "name": "FunctionCall", + "src": "59306:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3314, + "name": "Identifier", + "src": "59333:4:1" + } + ], + "id": 3315, + "name": "BinaryOperation", + "src": "59306:31:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer of token that is not own\"", + "value": "ERC721: transfer of token that is not own" + }, + "id": 3316, + "name": "Literal", + "src": "59339:43:1" + } + ], + "id": 3317, + "name": "FunctionCall", + "src": "59298:85:1" + } + ], + "id": 3318, + "name": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3319, + "name": "Identifier", + "src": "59411:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3320, + "name": "Identifier", + "src": "59419:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3321, + "name": "ElementaryTypeName", + "src": "59425:7:1" + } + ], + "id": 3322, + "name": "ElementaryTypeNameExpression", + "src": "59425:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3323, + "name": "Literal", + "src": "59433:1:1" + } + ], + "id": 3324, + "name": "FunctionCall", + "src": "59425:10:1" + } + ], + "id": 3325, + "name": "BinaryOperation", + "src": "59419:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to the zero address\"", + "value": "ERC721: transfer to the zero address" + }, + "id": 3326, + "name": "Literal", + "src": "59437:38:1" + } + ], + "id": 3327, + "name": "FunctionCall", + "src": "59411:65:1" + } + ], + "id": 3328, + "name": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3329, + "name": "Identifier", + "src": "59487:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3330, + "name": "Identifier", + "src": "59508:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3331, + "name": "Identifier", + "src": "59514:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3332, + "name": "Identifier", + "src": "59518:7:1" + } + ], + "id": 3333, + "name": "FunctionCall", + "src": "59487:39:1" + } + ], + "id": 3334, + "name": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3335, + "name": "Identifier", + "src": "59588:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3336, + "name": "ElementaryTypeName", + "src": "59597:7:1" + } + ], + "id": 3337, + "name": "ElementaryTypeNameExpression", + "src": "59597:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3338, + "name": "Literal", + "src": "59605:1:1" + } + ], + "id": 3339, + "name": "FunctionCall", + "src": "59597:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3340, + "name": "Identifier", + "src": "59609:7:1" + } + ], + "id": 3341, + "name": "FunctionCall", + "src": "59588:29:1" + } + ], + "id": 3342, + "name": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3343, + "name": "Identifier", + "src": "59628:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3344, + "name": "Identifier", + "src": "59642:4:1" + } + ], + "id": 3345, + "name": "IndexAccess", + "src": "59628:19:1" + } + ], + "id": 3346, + "name": "MemberAccess", + "src": "59628:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3347, + "name": "Identifier", + "src": "59655:7:1" + } + ], + "id": 3348, + "name": "FunctionCall", + "src": "59628:35:1" + } + ], + "id": 3349, + "name": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3350, + "name": "Identifier", + "src": "59673:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3351, + "name": "Identifier", + "src": "59687:2:1" + } + ], + "id": 3352, + "name": "IndexAccess", + "src": "59673:17:1" + } + ], + "id": 3353, + "name": "MemberAccess", + "src": "59673:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3354, + "name": "Identifier", + "src": "59695:7:1" + } + ], + "id": 3355, + "name": "FunctionCall", + "src": "59673:30:1" + } + ], + "id": 3356, + "name": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3357, + "name": "Identifier", + "src": "59714:12:1" + } + ], + "id": 3359, + "name": "MemberAccess", + "src": "59714:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3360, + "name": "Identifier", + "src": "59731:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3361, + "name": "Identifier", + "src": "59740:2:1" + } + ], + "id": 3362, + "name": "FunctionCall", + "src": "59714:29:1" + } + ], + "id": 3363, + "name": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3364, + "name": "Identifier", + "src": "59759:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3365, + "name": "Identifier", + "src": "59768:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3366, + "name": "Identifier", + "src": "59774:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3367, + "name": "Identifier", + "src": "59778:7:1" + } + ], + "id": 3368, + "name": "FunctionCall", + "src": "59759:27:1" + } + ], + "id": 3369, + "name": "EmitStatement", + "src": "59754:32:1" + } + ], + "id": 3370, + "name": "Block", + "src": "59288:505:1" + } + ], + "id": 3371, + "name": "FunctionDefinition", + "src": "59209:584:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setTokenURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3372, + "name": "StructuredDocumentation", + "src": "59799:136:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3393, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3373, + "name": "ElementaryTypeName", + "src": "59962:7:1" + } + ], + "id": 3374, + "name": "VariableDeclaration", + "src": "59962:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 3393, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3375, + "name": "ElementaryTypeName", + "src": "59979:6:1" + } + ], + "id": 3376, + "name": "VariableDeclaration", + "src": "59979:23:1" + } + ], + "id": 3377, + "name": "ParameterList", + "src": "59961:42:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3378, + "name": "ParameterList", + "src": "60021:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3379, + "name": "Identifier", + "src": "60031:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3380, + "name": "Identifier", + "src": "60039:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3381, + "name": "Identifier", + "src": "60047:7:1" + } + ], + "id": 3382, + "name": "FunctionCall", + "src": "60039:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI set of nonexistent token\"", + "value": "ERC721Metadata: URI set of nonexistent token" + }, + "id": 3383, + "name": "Literal", + "src": "60057:46:1" + } + ], + "id": 3384, + "name": "FunctionCall", + "src": "60031:73:1" + } + ], + "id": 3385, + "name": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3386, + "name": "Identifier", + "src": "60114:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3387, + "name": "Identifier", + "src": "60125:7:1" + } + ], + "id": 3388, + "name": "IndexAccess", + "src": "60114:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3376, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 3389, + "name": "Identifier", + "src": "60136:9:1" + } + ], + "id": 3390, + "name": "Assignment", + "src": "60114:31:1" + } + ], + "id": 3391, + "name": "ExpressionStatement", + "src": "60114:31:1" + } + ], + "id": 3392, + "name": "Block", + "src": "60021:131:1" + } + ], + "id": 3393, + "name": "FunctionDefinition", + "src": "59940:212:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setBaseURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3394, + "name": "StructuredDocumentation", + "src": "60158:212:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "baseURI_", + "scope": 3404, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3395, + "name": "ElementaryTypeName", + "src": "60396:6:1" + } + ], + "id": 3396, + "name": "VariableDeclaration", + "src": "60396:22:1" + } + ], + "id": 3397, + "name": "ParameterList", + "src": "60395:24:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3398, + "name": "ParameterList", + "src": "60437:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 3399, + "name": "Identifier", + "src": "60447:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3396, + "type": "string memory", + "value": "baseURI_" + }, + "id": 3400, + "name": "Identifier", + "src": "60458:8:1" + } + ], + "id": 3401, + "name": "Assignment", + "src": "60447:19:1" + } + ], + "id": 3402, + "name": "ExpressionStatement", + "src": "60447:19:1" + } + ], + "id": 3403, + "name": "Block", + "src": "60437:36:1" + } + ], + "id": 3404, + "name": "FunctionDefinition", + "src": "60375:98:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_checkOnERC721Received", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3405, + "name": "StructuredDocumentation", + "src": "60479:542:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3406, + "name": "ElementaryTypeName", + "src": "61058:7:1" + } + ], + "id": 3407, + "name": "VariableDeclaration", + "src": "61058:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3408, + "name": "ElementaryTypeName", + "src": "61072:7:1" + } + ], + "id": 3409, + "name": "VariableDeclaration", + "src": "61072:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3410, + "name": "ElementaryTypeName", + "src": "61084:7:1" + } + ], + "id": 3411, + "name": "VariableDeclaration", + "src": "61084:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3462, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3412, + "name": "ElementaryTypeName", + "src": "61101:5:1" + } + ], + "id": 3413, + "name": "VariableDeclaration", + "src": "61101:18:1" + } + ], + "id": 3414, + "name": "ParameterList", + "src": "61057:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3415, + "name": "ElementaryTypeName", + "src": "61146:4:1" + } + ], + "id": 3416, + "name": "VariableDeclaration", + "src": "61146:4:1" + } + ], + "id": 3417, + "name": "ParameterList", + "src": "61145:6:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isContract", + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3418, + "name": "Identifier", + "src": "61171:2:1" + } + ], + "id": 3419, + "name": "MemberAccess", + "src": "61171:13:1" + } + ], + "id": 3420, + "name": "FunctionCall", + "src": "61171:15:1" + } + ], + "id": 3421, + "name": "UnaryOperation", + "src": "61170:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 3422, + "name": "Literal", + "src": "61209:4:1" + } + ], + "id": 3423, + "name": "Return", + "src": "61202:11:1" + } + ], + "id": 3424, + "name": "Block", + "src": "61188:36:1" + } + ], + "id": 3425, + "name": "IfStatement", + "src": "61166:58:1" + }, + { + "attributes": { + "assignments": [ + 3427 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 3461, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3426, + "name": "ElementaryTypeName", + "src": "61233:5:1" + } + ], + "id": 3427, + "name": "VariableDeclaration", + "src": "61233:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "functionCall", + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3428, + "name": "Identifier", + "src": "61259:2:1" + } + ], + "id": 3429, + "name": "MemberAccess", + "src": "61259:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodeWithSelector", + "type": "function (bytes4) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3430, + "name": "Identifier", + "src": "61275:3:1" + } + ], + "id": 3431, + "name": "MemberAccess", + "src": "61275:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "selector", + "type": "bytes4" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "onERC721Received", + "referencedDeclaration": 725, + "type": "function (address,address,uint256,bytes memory) external returns (bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "contract IERC721Receiver", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 726, + "type": "type(contract IERC721Receiver)", + "value": "IERC721Receiver" + }, + "id": 3432, + "name": "Identifier", + "src": "61311:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3433, + "name": "Identifier", + "src": "61327:2:1" + } + ], + "id": 3434, + "name": "FunctionCall", + "src": "61311:19:1" + } + ], + "id": 3435, + "name": "MemberAccess", + "src": "61311:36:1" + } + ], + "id": 3436, + "name": "MemberAccess", + "src": "61311:45:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3437, + "name": "Identifier", + "src": "61370:10:1" + } + ], + "id": 3438, + "name": "FunctionCall", + "src": "61370:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3407, + "type": "address", + "value": "from" + }, + "id": 3439, + "name": "Identifier", + "src": "61396:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3411, + "type": "uint256", + "value": "tokenId" + }, + "id": 3440, + "name": "Identifier", + "src": "61414:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3413, + "type": "bytes memory", + "value": "_data" + }, + "id": 3441, + "name": "Identifier", + "src": "61435:5:1" + } + ], + "id": 3442, + "name": "FunctionCall", + "src": "61275:175:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3443, + "name": "Literal", + "src": "61452:52:1" + } + ], + "id": 3444, + "name": "FunctionCall", + "src": "61259:246:1" + } + ], + "id": 3445, + "name": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "attributes": { + "assignments": [ + 3447 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "retval", + "scope": 3461, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 3446, + "name": "ElementaryTypeName", + "src": "61515:6:1" + } + ], + "id": 3447, + "name": "VariableDeclaration", + "src": "61515:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes4", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "decode", + "type": "function () pure" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3448, + "name": "Identifier", + "src": "61531:3:1" + } + ], + "id": 3449, + "name": "MemberAccess", + "src": "61531:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3427, + "type": "bytes memory", + "value": "returndata" + }, + "id": 3450, + "name": "Identifier", + "src": "61542:10:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "name": "bytes4" + }, + "id": 3451, + "name": "ElementaryTypeName", + "src": "61555:6:1" + } + ], + "id": 3452, + "name": "ElementaryTypeNameExpression", + "src": "61555:6:1" + } + ], + "id": 3453, + "name": "TupleExpression", + "src": "61554:8:1" + } + ], + "id": 3454, + "name": "FunctionCall", + "src": "61531:32:1" + } + ], + "id": 3455, + "name": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3447, + "type": "bytes4", + "value": "retval" + }, + "id": 3456, + "name": "Identifier", + "src": "61581:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2596, + "type": "bytes4", + "value": "_ERC721_RECEIVED" + }, + "id": 3457, + "name": "Identifier", + "src": "61591:16:1" + } + ], + "id": 3458, + "name": "BinaryOperation", + "src": "61581:26:1" + } + ], + "id": 3459, + "name": "TupleExpression", + "src": "61580:28:1" + } + ], + "id": 3460, + "name": "Return", + "src": "61573:35:1" + } + ], + "id": 3461, + "name": "Block", + "src": "61156:459:1" + } + ], + "id": 3462, + "name": "FunctionDefinition", + "src": "61026:589:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3463, + "name": "StructuredDocumentation", + "src": "61621:101:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3464, + "name": "ElementaryTypeName", + "src": "61745:7:1" + } + ], + "id": 3465, + "name": "VariableDeclaration", + "src": "61745:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3466, + "name": "ElementaryTypeName", + "src": "61757:7:1" + } + ], + "id": 3467, + "name": "VariableDeclaration", + "src": "61757:15:1" + } + ], + "id": 3468, + "name": "ParameterList", + "src": "61744:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3469, + "name": "ParameterList", + "src": "61791:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 3470, + "name": "Identifier", + "src": "61801:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3471, + "name": "Identifier", + "src": "61817:7:1" + } + ], + "id": 3472, + "name": "IndexAccess", + "src": "61801:24:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3473, + "name": "Identifier", + "src": "61828:2:1" + } + ], + "id": 3474, + "name": "Assignment", + "src": "61801:29:1" + } + ], + "id": 3475, + "name": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 563, + "type": "function (address,address,uint256)", + "value": "Approval" + }, + "id": 3476, + "name": "Identifier", + "src": "61845:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3477, + "name": "Identifier", + "src": "61854:6:1" + } + ], + "id": 3478, + "name": "MemberAccess", + "src": "61854:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3479, + "name": "Identifier", + "src": "61869:7:1" + } + ], + "id": 3480, + "name": "FunctionCall", + "src": "61854:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3481, + "name": "Identifier", + "src": "61879:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3482, + "name": "Identifier", + "src": "61883:7:1" + } + ], + "id": 3483, + "name": "FunctionCall", + "src": "61845:46:1" + } + ], + "id": 3484, + "name": "EmitStatement", + "src": "61840:51:1" + } + ], + "id": 3485, + "name": "Block", + "src": "61791:125:1" + } + ], + "id": 3486, + "name": "FunctionDefinition", + "src": "61727:189:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_beforeTokenTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3487, + "name": "StructuredDocumentation", + "src": "61922:585:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3488, + "name": "ElementaryTypeName", + "src": "62542:7:1" + } + ], + "id": 3489, + "name": "VariableDeclaration", + "src": "62542:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3490, + "name": "ElementaryTypeName", + "src": "62556:7:1" + } + ], + "id": 3491, + "name": "VariableDeclaration", + "src": "62556:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3492, + "name": "ElementaryTypeName", + "src": "62568:7:1" + } + ], + "id": 3493, + "name": "VariableDeclaration", + "src": "62568:15:1" + } + ], + "id": 3494, + "name": "ParameterList", + "src": "62541:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3495, + "name": "ParameterList", + "src": "62602:0:1" + }, + { + "attributes": { + "statements": [ + null + ] + }, + "children": [], + "id": 3496, + "name": "Block", + "src": "62602:3:1" + } + ], + "id": 3497, + "name": "FunctionDefinition", + "src": "62512:93:1" + } + ], + "id": 3498, + "name": "ContractDefinition", + "src": "46080:16527:1" + } + ], + "id": 3499, + "name": "SourceUnit", + "src": "84:62524:1" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-13T11:18:07.045Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/abis/CryptoBoyStruct.json b/src/abis/CryptoBoyStruct.json new file mode 100644 index 0000000..7d2960e --- /dev/null +++ b/src/abis/CryptoBoyStruct.json @@ -0,0 +1,5740 @@ +{ + "contractName": "CryptoBoyStruct", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "string", + "name": "tokenURI", + "type": "string" + }, + { + "indexed": false, + "internalType": "address payable", + "name": "mintedBy", + "type": "address" + }, + { + "indexed": false, + "internalType": "address payable", + "name": "currentOwner", + "type": "address" + }, + { + "indexed": false, + "internalType": "address payable", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "numberOfTransfers", + "type": "uint256" + }, + { + "components": [ + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + }, + { + "internalType": "uint8", + "name": "month", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "day", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "hour", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "minute", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "second", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "weekday", + "type": "uint8" + } + ], + "indexed": false, + "internalType": "struct DateAndTime._DateTime", + "name": "timeStamp", + "type": "tuple" + }, + { + "indexed": false, + "internalType": "bool", + "name": "purchased", + "type": "bool" + }, + { + "indexed": false, + "internalType": "bool", + "name": "forSale", + "type": "bool" + } + ], + "name": "CryptoBoyMinted", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getDay", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "month", + "type": "uint8" + }, + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + } + ], + "name": "getDaysInMonth", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getHour", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getMinute", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getMonth", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getSecond", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getWeekday", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getYear", + "outputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + } + ], + "name": "isLeapYear", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "year", + "type": "uint256" + } + ], + "name": "leapYearsBefore", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + }, + { + "internalType": "uint8", + "name": "month", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "day", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "hour", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "minute", + "type": "uint8" + } + ], + "name": "toTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + }, + { + "internalType": "uint8", + "name": "month", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "day", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "hour", + "type": "uint8" + } + ], + "name": "toTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + }, + { + "internalType": "uint8", + "name": "month", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "day", + "type": "uint8" + } + ], + "name": "toTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + }, + { + "internalType": "uint8", + "name": "month", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "day", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "hour", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "minute", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "second", + "type": "uint8" + } + ], + "name": "toTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"tokenURI\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address payable\",\"name\":\"mintedBy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address payable\",\"name\":\"currentOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address payable\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"numberOfTransfers\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"month\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"day\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"hour\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minute\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"second\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"weekday\",\"type\":\"uint8\"}],\"indexed\":false,\"internalType\":\"struct DateAndTime._DateTime\",\"name\":\"timeStamp\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"purchased\",\"type\":\"bool\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"forSale\",\"type\":\"bool\"}],\"name\":\"CryptoBoyMinted\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getDay\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"month\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"}],\"name\":\"getDaysInMonth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getHour\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getMinute\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getMonth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getSecond\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getWeekday\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getYear\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"}],\"name\":\"isLeapYear\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"year\",\"type\":\"uint256\"}],\"name\":\"leapYearsBefore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"month\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"day\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"hour\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minute\",\"type\":\"uint8\"}],\"name\":\"toTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"month\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"day\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"hour\",\"type\":\"uint8\"}],\"name\":\"toTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"month\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"day\",\"type\":\"uint8\"}],\"name\":\"toTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"month\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"day\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"hour\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minute\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"second\",\"type\":\"uint8\"}],\"name\":\"toTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/crypto-boys/src/contracts/CryptoBoyStruct.sol\":\"CryptoBoyStruct\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/crypto-boys/src/contracts/CryptoBoyStruct.sol\":{\"keccak256\":\"0xa19515c0b4f27cb1b2135808a2a9213d77e2891e48d3cfb9d6b99a812eb23429\",\"license\":\"SPDX-License\",\"urls\":[\"bzz-raw://8d4d79977b4ef321397fe167862fde0933fc99eed9b87f91070b48e722be13b9\",\"dweb:/ipfs/QmbpsEZnpztGQpwxwdunnboTTHQanuGkbnyvtzaZpU9T79\"]},\"/home/pavansoratur/crypto-boys/src/contracts/DateAndTime.sol\":{\"keccak256\":\"0x51ef52a03b2f9ea187ccb846e346a68943f7745c84cbd85b4c01669cc470841d\",\"license\":\"SPDX-License\",\"urls\":[\"bzz-raw://1163edee3a2c0993ed27de5bd76845e4b0ffd5e02a6a8330fa1043a6922c4629\",\"dweb:/ipfs/Qmcwe1fhywHRJzBA2xLhxCpyMwA5kyHxfQN8hqyjoxZJgQ\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50610f0f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80639054bdec1161008c578063a6f0e57711610066578063a6f0e577146102cf578063b1999937146102ff578063b238ad0e1461032f578063fa93f8831461035f576100ea565b80639054bdec1461023f57806392d663131461026f578063a324ad241461029f576100ea565b806365c72840116100c857806365c728401461017f5780637f791833146101af5780638aa001fc146101df5780638c8d98a01461020f576100ea565b80633e239e1a146100ef5780634ac1ad781461011f57806362ba96871461014f575b600080fd5b61010960048036038101906101049190610d56565b61038f565b6040516101169190610e48565b60405180910390f35b61013960048036038101906101349190610d56565b6103b6565b6040516101469190610e48565b60405180910390f35b61016960048036038101906101649190610c56565b6103d9565b6040516101769190610e2d565b60405180910390f35b61019960048036038101906101949190610d56565b6103f5565b6040516101a69190610e48565b60405180910390f35b6101c960048036038101906101c49190610bf3565b61040b565b6040516101d69190610e2d565b60405180910390f35b6101f960048036038101906101f49190610d56565b610426565b6040516102069190610e48565b60405180910390f35b61022960048036038101906102249190610ba4565b61043a565b6040516102369190610e2d565b60405180910390f35b61025960048036038101906102549190610ccd565b610455565b6040516102669190610e2d565b60405180910390f35b61028960048036038101906102849190610d56565b6106dd565b6040516102969190610e12565b60405180910390f35b6102b960048036038101906102b49190610d56565b610786565b6040516102c69190610e48565b60405180910390f35b6102e960048036038101906102e49190610b7b565b61079c565b6040516102f69190610df7565b60405180910390f35b61031960048036038101906103149190610d56565b610811565b6040516103269190610e2d565b60405180910390f35b61034960048036038101906103449190610d7f565b610844565b6040516103569190610e48565b60405180910390f35b61037960048036038101906103749190610d56565b610910565b6040516103869190610e48565b60405180910390f35b60006018603c80848161039e57fe5b04816103a657fe5b04816103ae57fe5b069050919050565b6000600760046201518084816103c857fe5b0401816103d157fe5b069050919050565b60006103ea86868686866000610455565b905095945050505050565b60006104008261092d565b604001519050919050565b600061041c85858585600080610455565b9050949350505050565b6000603c828161043257fe5b069050919050565b600061044c8484846000806000610455565b90509392505050565b6000806107b290505b8761ffff168161ffff1610156104a1576104778161079c565b1561048a576301e2850082019150610494565b6301e13380820191505b808060010191505061045e565b6104a9610ac6565b601f816000600c81106104b857fe5b602002019060ff16908160ff16815250506104d28961079c565b156104fc57601d816001600c81106104e657fe5b602002019060ff16908160ff168152505061051d565b601c816001600c811061050b57fe5b602002019060ff16908160ff16815250505b601f816002600c811061052c57fe5b602002019060ff16908160ff1681525050601e816003600c811061054c57fe5b602002019060ff16908160ff1681525050601f816004600c811061056c57fe5b602002019060ff16908160ff1681525050601e816005600c811061058c57fe5b602002019060ff16908160ff1681525050601f816006600c81106105ac57fe5b602002019060ff16908160ff1681525050601f816007600c81106105cc57fe5b602002019060ff16908160ff1681525050601e816008600c81106105ec57fe5b602002019060ff16908160ff1681525050601f816009600c811061060c57fe5b602002019060ff16908160ff1681525050601e81600a600c811061062c57fe5b602002019060ff16908160ff1681525050601f81600b600c811061064c57fe5b602002019060ff16908160ff1681525050600191505b8760ff168261ffff1610156106a257806001830361ffff16600c811061068457fe5b602002015160ff166201518002830192508180600101925050610662565b6001870360ff166201518002830192508560ff16610e1002830192508460ff16603c02830192508360ff168301925050509695505050505050565b600080600090506000806301e1338085816106f457fe5b046107b261ffff1601915061070e6107b261ffff16610811565b61071b8361ffff16610811565b039050806301e285000283019250806107b2830361ffff16036301e1338002830192505b8483111561077b576107536001830361079c565b15610766576301e2850083039250610770565b6301e13380830392505b60018203915061073f565b819350505050919050565b60006107918261092d565b602001519050919050565b60008060048361ffff16816107ad57fe5b0661ffff16146107c0576000905061080c565b600060648361ffff16816107d057fe5b0661ffff16146107e3576001905061080c565b60006101908361ffff16816107f457fe5b0661ffff1614610807576000905061080c565b600190505b919050565b6000600182039150610190828161082457fe5b046064838161082f57fe5b046004848161083a57fe5b0403019050919050565b600060018360ff16148061085b575060038360ff16145b80610869575060058360ff16145b80610877575060078360ff16145b80610885575060088360ff16145b806108935750600a8360ff16145b806108a15750600c8360ff16145b156108af57601f905061090a565b60048360ff1614806108c4575060068360ff16145b806108d2575060098360ff16145b806108e05750600b8360ff16145b156108ee57601e905061090a565b6108f78261079c565b1561090557601d905061090a565b601c90505b92915050565b6000603c80838161091d57fe5b048161092557fe5b069050919050565b610935610ae9565b60008080610942856106dd565b846000019061ffff16908161ffff16815250506109646107b261ffff16610811565b610975856000015161ffff16610811565b039150816301e285000283019250816107b285600001510361ffff16036301e1338002830192506000600191505b600c8260ff16116109f9576109bc828660000151610844565b60ff16620151800290508584820111156109e75781856020019060ff16908160ff16815250506109f9565b808401935081806001019250506109a3565b600191505b610a1085602001518660000151610844565b60ff168260ff1611610a5557858462015180011115610a405781856040019060ff16908160ff1681525050610a55565b620151808401935081806001019250506109fe565b610a5e8661038f565b856060019060ff16908160ff1681525050610a7886610910565b856080019060ff16908160ff1681525050610a9286610426565b8560a0019060ff16908160ff1681525050610aac866103b6565b8560c0019060ff16908160ff168152505050505050919050565b604051806101800160405280600c90602082028036833780820191505090505090565b6040518060e00160405280600061ffff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff1681525090565b600081359050610b4b81610e94565b92915050565b600081359050610b6081610eab565b92915050565b600081359050610b7581610ec2565b92915050565b600060208284031215610b8d57600080fd5b6000610b9b84828501610b3c565b91505092915050565b600080600060608486031215610bb957600080fd5b6000610bc786828701610b3c565b9350506020610bd886828701610b66565b9250506040610be986828701610b66565b9150509250925092565b60008060008060808587031215610c0957600080fd5b6000610c1787828801610b3c565b9450506020610c2887828801610b66565b9350506040610c3987828801610b66565b9250506060610c4a87828801610b66565b91505092959194509250565b600080600080600060a08688031215610c6e57600080fd5b6000610c7c88828901610b3c565b9550506020610c8d88828901610b66565b9450506040610c9e88828901610b66565b9350506060610caf88828901610b66565b9250506080610cc088828901610b66565b9150509295509295909350565b60008060008060008060c08789031215610ce657600080fd5b6000610cf489828a01610b3c565b9650506020610d0589828a01610b66565b9550506040610d1689828a01610b66565b9450506060610d2789828a01610b66565b9350506080610d3889828a01610b66565b92505060a0610d4989828a01610b66565b9150509295509295509295565b600060208284031215610d6857600080fd5b6000610d7684828501610b51565b91505092915050565b60008060408385031215610d9257600080fd5b6000610da085828601610b66565b9250506020610db185828601610b3c565b9150509250929050565b610dc481610e63565b82525050565b610dd381610e6f565b82525050565b610de281610e7d565b82525050565b610df181610e87565b82525050565b6000602082019050610e0c6000830184610dbb565b92915050565b6000602082019050610e276000830184610dca565b92915050565b6000602082019050610e426000830184610dd9565b92915050565b6000602082019050610e5d6000830184610de8565b92915050565b60008115159050919050565b600061ffff82169050919050565b6000819050919050565b600060ff82169050919050565b610e9d81610e6f565b8114610ea857600080fd5b50565b610eb481610e7d565b8114610ebf57600080fd5b50565b610ecb81610e87565b8114610ed657600080fd5b5056fea26469706673582212206ff3e857024df7f0712ec601e097104e32e96992040f4a2fa22628505b54938564736f6c63430007060033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80639054bdec1161008c578063a6f0e57711610066578063a6f0e577146102cf578063b1999937146102ff578063b238ad0e1461032f578063fa93f8831461035f576100ea565b80639054bdec1461023f57806392d663131461026f578063a324ad241461029f576100ea565b806365c72840116100c857806365c728401461017f5780637f791833146101af5780638aa001fc146101df5780638c8d98a01461020f576100ea565b80633e239e1a146100ef5780634ac1ad781461011f57806362ba96871461014f575b600080fd5b61010960048036038101906101049190610d56565b61038f565b6040516101169190610e48565b60405180910390f35b61013960048036038101906101349190610d56565b6103b6565b6040516101469190610e48565b60405180910390f35b61016960048036038101906101649190610c56565b6103d9565b6040516101769190610e2d565b60405180910390f35b61019960048036038101906101949190610d56565b6103f5565b6040516101a69190610e48565b60405180910390f35b6101c960048036038101906101c49190610bf3565b61040b565b6040516101d69190610e2d565b60405180910390f35b6101f960048036038101906101f49190610d56565b610426565b6040516102069190610e48565b60405180910390f35b61022960048036038101906102249190610ba4565b61043a565b6040516102369190610e2d565b60405180910390f35b61025960048036038101906102549190610ccd565b610455565b6040516102669190610e2d565b60405180910390f35b61028960048036038101906102849190610d56565b6106dd565b6040516102969190610e12565b60405180910390f35b6102b960048036038101906102b49190610d56565b610786565b6040516102c69190610e48565b60405180910390f35b6102e960048036038101906102e49190610b7b565b61079c565b6040516102f69190610df7565b60405180910390f35b61031960048036038101906103149190610d56565b610811565b6040516103269190610e2d565b60405180910390f35b61034960048036038101906103449190610d7f565b610844565b6040516103569190610e48565b60405180910390f35b61037960048036038101906103749190610d56565b610910565b6040516103869190610e48565b60405180910390f35b60006018603c80848161039e57fe5b04816103a657fe5b04816103ae57fe5b069050919050565b6000600760046201518084816103c857fe5b0401816103d157fe5b069050919050565b60006103ea86868686866000610455565b905095945050505050565b60006104008261092d565b604001519050919050565b600061041c85858585600080610455565b9050949350505050565b6000603c828161043257fe5b069050919050565b600061044c8484846000806000610455565b90509392505050565b6000806107b290505b8761ffff168161ffff1610156104a1576104778161079c565b1561048a576301e2850082019150610494565b6301e13380820191505b808060010191505061045e565b6104a9610ac6565b601f816000600c81106104b857fe5b602002019060ff16908160ff16815250506104d28961079c565b156104fc57601d816001600c81106104e657fe5b602002019060ff16908160ff168152505061051d565b601c816001600c811061050b57fe5b602002019060ff16908160ff16815250505b601f816002600c811061052c57fe5b602002019060ff16908160ff1681525050601e816003600c811061054c57fe5b602002019060ff16908160ff1681525050601f816004600c811061056c57fe5b602002019060ff16908160ff1681525050601e816005600c811061058c57fe5b602002019060ff16908160ff1681525050601f816006600c81106105ac57fe5b602002019060ff16908160ff1681525050601f816007600c81106105cc57fe5b602002019060ff16908160ff1681525050601e816008600c81106105ec57fe5b602002019060ff16908160ff1681525050601f816009600c811061060c57fe5b602002019060ff16908160ff1681525050601e81600a600c811061062c57fe5b602002019060ff16908160ff1681525050601f81600b600c811061064c57fe5b602002019060ff16908160ff1681525050600191505b8760ff168261ffff1610156106a257806001830361ffff16600c811061068457fe5b602002015160ff166201518002830192508180600101925050610662565b6001870360ff166201518002830192508560ff16610e1002830192508460ff16603c02830192508360ff168301925050509695505050505050565b600080600090506000806301e1338085816106f457fe5b046107b261ffff1601915061070e6107b261ffff16610811565b61071b8361ffff16610811565b039050806301e285000283019250806107b2830361ffff16036301e1338002830192505b8483111561077b576107536001830361079c565b15610766576301e2850083039250610770565b6301e13380830392505b60018203915061073f565b819350505050919050565b60006107918261092d565b602001519050919050565b60008060048361ffff16816107ad57fe5b0661ffff16146107c0576000905061080c565b600060648361ffff16816107d057fe5b0661ffff16146107e3576001905061080c565b60006101908361ffff16816107f457fe5b0661ffff1614610807576000905061080c565b600190505b919050565b6000600182039150610190828161082457fe5b046064838161082f57fe5b046004848161083a57fe5b0403019050919050565b600060018360ff16148061085b575060038360ff16145b80610869575060058360ff16145b80610877575060078360ff16145b80610885575060088360ff16145b806108935750600a8360ff16145b806108a15750600c8360ff16145b156108af57601f905061090a565b60048360ff1614806108c4575060068360ff16145b806108d2575060098360ff16145b806108e05750600b8360ff16145b156108ee57601e905061090a565b6108f78261079c565b1561090557601d905061090a565b601c90505b92915050565b6000603c80838161091d57fe5b048161092557fe5b069050919050565b610935610ae9565b60008080610942856106dd565b846000019061ffff16908161ffff16815250506109646107b261ffff16610811565b610975856000015161ffff16610811565b039150816301e285000283019250816107b285600001510361ffff16036301e1338002830192506000600191505b600c8260ff16116109f9576109bc828660000151610844565b60ff16620151800290508584820111156109e75781856020019060ff16908160ff16815250506109f9565b808401935081806001019250506109a3565b600191505b610a1085602001518660000151610844565b60ff168260ff1611610a5557858462015180011115610a405781856040019060ff16908160ff1681525050610a55565b620151808401935081806001019250506109fe565b610a5e8661038f565b856060019060ff16908160ff1681525050610a7886610910565b856080019060ff16908160ff1681525050610a9286610426565b8560a0019060ff16908160ff1681525050610aac866103b6565b8560c0019060ff16908160ff168152505050505050919050565b604051806101800160405280600c90602082028036833780820191505090505090565b6040518060e00160405280600061ffff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff1681525090565b600081359050610b4b81610e94565b92915050565b600081359050610b6081610eab565b92915050565b600081359050610b7581610ec2565b92915050565b600060208284031215610b8d57600080fd5b6000610b9b84828501610b3c565b91505092915050565b600080600060608486031215610bb957600080fd5b6000610bc786828701610b3c565b9350506020610bd886828701610b66565b9250506040610be986828701610b66565b9150509250925092565b60008060008060808587031215610c0957600080fd5b6000610c1787828801610b3c565b9450506020610c2887828801610b66565b9350506040610c3987828801610b66565b9250506060610c4a87828801610b66565b91505092959194509250565b600080600080600060a08688031215610c6e57600080fd5b6000610c7c88828901610b3c565b9550506020610c8d88828901610b66565b9450506040610c9e88828901610b66565b9350506060610caf88828901610b66565b9250506080610cc088828901610b66565b9150509295509295909350565b60008060008060008060c08789031215610ce657600080fd5b6000610cf489828a01610b3c565b9650506020610d0589828a01610b66565b9550506040610d1689828a01610b66565b9450506060610d2789828a01610b66565b9350506080610d3889828a01610b66565b92505060a0610d4989828a01610b66565b9150509295509295509295565b600060208284031215610d6857600080fd5b6000610d7684828501610b51565b91505092915050565b60008060408385031215610d9257600080fd5b6000610da085828601610b66565b9250506020610db185828601610b3c565b9150509250929050565b610dc481610e63565b82525050565b610dd381610e6f565b82525050565b610de281610e7d565b82525050565b610df181610e87565b82525050565b6000602082019050610e0c6000830184610dbb565b92915050565b6000602082019050610e276000830184610dca565b92915050565b6000602082019050610e426000830184610dd9565b92915050565b6000602082019050610e5d6000830184610de8565b92915050565b60008115159050919050565b600061ffff82169050919050565b6000819050919050565b600060ff82169050919050565b610e9d81610e6f565b8114610ea857600080fd5b50565b610eb481610e7d565b8114610ebf57600080fd5b50565b610ecb81610e87565b8114610ed657600080fd5b5056fea26469706673582212206ff3e857024df7f0712ec601e097104e32e96992040f4a2fa22628505b54938564736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:6528:4", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "58:86:4", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "68:29:4", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "90:6:4" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "77:12:4" + }, + "nodeType": "YulFunctionCall", + "src": "77:20:4" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "68:5:4" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "132:5:4" + } + ], + "functionName": { + "name": "validator_revert_t_uint16", + "nodeType": "YulIdentifier", + "src": "106:25:4" + }, + "nodeType": "YulFunctionCall", + "src": "106:32:4" + }, + "nodeType": "YulExpressionStatement", + "src": "106:32:4" + } + ] + }, + "name": "abi_decode_t_uint16", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "36:6:4", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "44:3:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "52:5:4", + "type": "" + } + ], + "src": "7:137:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "202:87:4", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "212:29:4", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "234:6:4" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "221:12:4" + }, + "nodeType": "YulFunctionCall", + "src": "221:20:4" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "212:5:4" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "277:5:4" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "250:26:4" + }, + "nodeType": "YulFunctionCall", + "src": "250:33:4" + }, + "nodeType": "YulExpressionStatement", + "src": "250:33:4" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "180:6:4", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "188:3:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "196:5:4", + "type": "" + } + ], + "src": "150:139:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "345:85:4", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "355:29:4", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "377:6:4" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "364:12:4" + }, + "nodeType": "YulFunctionCall", + "src": "364:20:4" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "355:5:4" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "418:5:4" + } + ], + "functionName": { + "name": "validator_revert_t_uint8", + "nodeType": "YulIdentifier", + "src": "393:24:4" + }, + "nodeType": "YulFunctionCall", + "src": "393:31:4" + }, + "nodeType": "YulExpressionStatement", + "src": "393:31:4" + } + ] + }, + "name": "abi_decode_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "323:6:4", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "331:3:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "339:5:4", + "type": "" + } + ], + "src": "295:135:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "501:195:4", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "547:16:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "556:1:4", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "559:1:4", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "549:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "549:12:4" + }, + "nodeType": "YulExpressionStatement", + "src": "549:12:4" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "522:7:4" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "531:9:4" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "518:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "518:23:4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "543:2:4", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "514:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "514:32:4" + }, + "nodeType": "YulIf", + "src": "511:2:4" + }, + { + "nodeType": "YulBlock", + "src": "573:116:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "588:15:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "602:1:4", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "592:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "617:62:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "651:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "662:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "647:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "647:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "671:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint16", + "nodeType": "YulIdentifier", + "src": "627:19:4" + }, + "nodeType": "YulFunctionCall", + "src": "627:52:4" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "617:6:4" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint16", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "471:9:4", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "482:7:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "494:6:4", + "type": "" + } + ], + "src": "436:260:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "797:447:4", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "843:16:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "852:1:4", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "855:1:4", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "845:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "845:12:4" + }, + "nodeType": "YulExpressionStatement", + "src": "845:12:4" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "818:7:4" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "827:9:4" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "814:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "814:23:4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "839:2:4", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "810:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "810:32:4" + }, + "nodeType": "YulIf", + "src": "807:2:4" + }, + { + "nodeType": "YulBlock", + "src": "869:116:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "884:15:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "898:1:4", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "888:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "913:62:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "947:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "958:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "943:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "943:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "967:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint16", + "nodeType": "YulIdentifier", + "src": "923:19:4" + }, + "nodeType": "YulFunctionCall", + "src": "923:52:4" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "913:6:4" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "995:116:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1010:16:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1024:2:4", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1014:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1040:61:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1073:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1084:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1069:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "1069:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1093:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "1050:18:4" + }, + "nodeType": "YulFunctionCall", + "src": "1050:51:4" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1040:6:4" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1121:116:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1136:16:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1150:2:4", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1140:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1166:61:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1199:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1210:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1195:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "1195:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1219:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "1176:18:4" + }, + "nodeType": "YulFunctionCall", + "src": "1176:51:4" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "1166:6:4" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint16t_uint8t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "751:9:4", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "762:7:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "774:6:4", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "782:6:4", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "790:6:4", + "type": "" + } + ], + "src": "702:542:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1360:574:4", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1407:16:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1416:1:4", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1419:1:4", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1409:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "1409:12:4" + }, + "nodeType": "YulExpressionStatement", + "src": "1409:12:4" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1381:7:4" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1390:9:4" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "1377:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "1377:23:4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1402:3:4", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1373:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "1373:33:4" + }, + "nodeType": "YulIf", + "src": "1370:2:4" + }, + { + "nodeType": "YulBlock", + "src": "1433:116:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1448:15:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1462:1:4", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1452:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1477:62:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1511:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1522:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1507:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "1507:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1531:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint16", + "nodeType": "YulIdentifier", + "src": "1487:19:4" + }, + "nodeType": "YulFunctionCall", + "src": "1487:52:4" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "1477:6:4" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1559:116:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1574:16:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1588:2:4", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1578:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1604:61:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1637:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1648:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1633:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "1633:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1657:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "1614:18:4" + }, + "nodeType": "YulFunctionCall", + "src": "1614:51:4" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "1604:6:4" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1685:116:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1700:16:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1714:2:4", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1704:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1730:61:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1763:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1774:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1759:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "1759:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1783:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "1740:18:4" + }, + "nodeType": "YulFunctionCall", + "src": "1740:51:4" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "1730:6:4" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "1811:116:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "1826:16:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1840:2:4", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1830:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1856:61:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "1889:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1900:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1885:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "1885:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "1909:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "1866:18:4" + }, + "nodeType": "YulFunctionCall", + "src": "1866:51:4" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "1856:6:4" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint16t_uint8t_uint8t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "1306:9:4", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "1317:7:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "1329:6:4", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "1337:6:4", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "1345:6:4", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "1353:6:4", + "type": "" + } + ], + "src": "1250:684:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2065:701:4", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2112:16:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2121:1:4", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2124:1:4", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2114:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "2114:12:4" + }, + "nodeType": "YulExpressionStatement", + "src": "2114:12:4" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2086:7:4" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2095:9:4" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2082:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "2082:23:4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2107:3:4", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2078:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "2078:33:4" + }, + "nodeType": "YulIf", + "src": "2075:2:4" + }, + { + "nodeType": "YulBlock", + "src": "2138:116:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2153:15:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2167:1:4", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2157:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2182:62:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2216:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2227:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2212:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "2212:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2236:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint16", + "nodeType": "YulIdentifier", + "src": "2192:19:4" + }, + "nodeType": "YulFunctionCall", + "src": "2192:52:4" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2182:6:4" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2264:116:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2279:16:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2293:2:4", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2283:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2309:61:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2342:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2353:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2338:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "2338:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2362:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "2319:18:4" + }, + "nodeType": "YulFunctionCall", + "src": "2319:51:4" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2309:6:4" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2390:116:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2405:16:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2419:2:4", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2409:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2435:61:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2468:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2479:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2464:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "2464:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2488:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "2445:18:4" + }, + "nodeType": "YulFunctionCall", + "src": "2445:51:4" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "2435:6:4" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2516:116:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2531:16:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2545:2:4", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2535:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2561:61:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2594:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2605:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2590:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "2590:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2614:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "2571:18:4" + }, + "nodeType": "YulFunctionCall", + "src": "2571:51:4" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "2561:6:4" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2642:117:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2657:17:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2671:3:4", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2661:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2688:61:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2721:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2732:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2717:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "2717:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2741:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "2698:18:4" + }, + "nodeType": "YulFunctionCall", + "src": "2698:51:4" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "2688:6:4" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint16t_uint8t_uint8t_uint8t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2003:9:4", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2014:7:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2026:6:4", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2034:6:4", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "2042:6:4", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "2050:6:4", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "2058:6:4", + "type": "" + } + ], + "src": "1940:826:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2912:828:4", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2959:16:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2968:1:4", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2971:1:4", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2961:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "2961:12:4" + }, + "nodeType": "YulExpressionStatement", + "src": "2961:12:4" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2933:7:4" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2942:9:4" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2929:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "2929:23:4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2954:3:4", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2925:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "2925:33:4" + }, + "nodeType": "YulIf", + "src": "2922:2:4" + }, + { + "nodeType": "YulBlock", + "src": "2985:116:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3000:15:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3014:1:4", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3004:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3029:62:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3063:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3074:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3059:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "3059:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3083:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint16", + "nodeType": "YulIdentifier", + "src": "3039:19:4" + }, + "nodeType": "YulFunctionCall", + "src": "3039:52:4" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3029:6:4" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3111:116:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3126:16:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3140:2:4", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3130:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3156:61:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3189:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3200:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3185:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "3185:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3209:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "3166:18:4" + }, + "nodeType": "YulFunctionCall", + "src": "3166:51:4" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3156:6:4" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3237:116:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3252:16:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3266:2:4", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3256:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3282:61:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3315:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3326:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3311:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "3311:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3335:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "3292:18:4" + }, + "nodeType": "YulFunctionCall", + "src": "3292:51:4" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3282:6:4" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3363:116:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3378:16:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3392:2:4", + "type": "", + "value": "96" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3382:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3408:61:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3441:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3452:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3437:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "3437:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3461:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "3418:18:4" + }, + "nodeType": "YulFunctionCall", + "src": "3418:51:4" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "3408:6:4" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3489:117:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3504:17:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3518:3:4", + "type": "", + "value": "128" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3508:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3535:61:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3568:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3579:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3564:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "3564:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3588:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "3545:18:4" + }, + "nodeType": "YulFunctionCall", + "src": "3545:51:4" + }, + "variableNames": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "3535:6:4" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3616:117:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3631:17:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3645:3:4", + "type": "", + "value": "160" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3635:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3662:61:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3695:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3706:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3691:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "3691:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3715:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "3672:18:4" + }, + "nodeType": "YulFunctionCall", + "src": "3672:51:4" + }, + "variableNames": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "3662:6:4" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint16t_uint8t_uint8t_uint8t_uint8t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2842:9:4", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2853:7:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2865:6:4", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2873:6:4", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "2881:6:4", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "2889:6:4", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "2897:6:4", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "2905:6:4", + "type": "" + } + ], + "src": "2772:968:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3812:196:4", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3858:16:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3867:1:4", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3870:1:4", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3860:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "3860:12:4" + }, + "nodeType": "YulExpressionStatement", + "src": "3860:12:4" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3833:7:4" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3842:9:4" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3829:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "3829:23:4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3854:2:4", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3825:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "3825:32:4" + }, + "nodeType": "YulIf", + "src": "3822:2:4" + }, + { + "nodeType": "YulBlock", + "src": "3884:117:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3899:15:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3913:1:4", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3903:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3928:63:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3963:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3974:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3959:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "3959:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3983:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3938:20:4" + }, + "nodeType": "YulFunctionCall", + "src": "3938:53:4" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3928:6:4" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3782:9:4", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3793:7:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3805:6:4", + "type": "" + } + ], + "src": "3746:262:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4094:321:4", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4140:16:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4149:1:4", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4152:1:4", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4142:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "4142:12:4" + }, + "nodeType": "YulExpressionStatement", + "src": "4142:12:4" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4115:7:4" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4124:9:4" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4111:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "4111:23:4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4136:2:4", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4107:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "4107:32:4" + }, + "nodeType": "YulIf", + "src": "4104:2:4" + }, + { + "nodeType": "YulBlock", + "src": "4166:115:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4181:15:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4195:1:4", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4185:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4210:61:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4243:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4254:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4239:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "4239:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4263:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint8", + "nodeType": "YulIdentifier", + "src": "4220:18:4" + }, + "nodeType": "YulFunctionCall", + "src": "4220:51:4" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4210:6:4" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4291:117:4", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4306:16:4", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4320:2:4", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4310:6:4", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4336:62:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4370:9:4" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4381:6:4" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4366:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "4366:22:4" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4390:7:4" + } + ], + "functionName": { + "name": "abi_decode_t_uint16", + "nodeType": "YulIdentifier", + "src": "4346:19:4" + }, + "nodeType": "YulFunctionCall", + "src": "4346:52:4" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4336:6:4" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint8t_uint16", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4056:9:4", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4067:7:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4079:6:4", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "4087:6:4", + "type": "" + } + ], + "src": "4014:401:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4480:50:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4497:3:4" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4517:5:4" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "4502:14:4" + }, + "nodeType": "YulFunctionCall", + "src": "4502:21:4" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4490:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "4490:34:4" + }, + "nodeType": "YulExpressionStatement", + "src": "4490:34:4" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4468:5:4", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4475:3:4", + "type": "" + } + ], + "src": "4421:109:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4599:52:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4616:3:4" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4638:5:4" + } + ], + "functionName": { + "name": "cleanup_t_uint16", + "nodeType": "YulIdentifier", + "src": "4621:16:4" + }, + "nodeType": "YulFunctionCall", + "src": "4621:23:4" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4609:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "4609:36:4" + }, + "nodeType": "YulExpressionStatement", + "src": "4609:36:4" + } + ] + }, + "name": "abi_encode_t_uint16_to_t_uint16_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4587:5:4", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4594:3:4", + "type": "" + } + ], + "src": "4536:115:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4722:53:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4739:3:4" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4762:5:4" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "4744:17:4" + }, + "nodeType": "YulFunctionCall", + "src": "4744:24:4" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4732:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "4732:37:4" + }, + "nodeType": "YulExpressionStatement", + "src": "4732:37:4" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4710:5:4", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4717:3:4", + "type": "" + } + ], + "src": "4657:118:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4842:51:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "4859:3:4" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "4880:5:4" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "4864:15:4" + }, + "nodeType": "YulFunctionCall", + "src": "4864:22:4" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "4852:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "4852:35:4" + }, + "nodeType": "YulExpressionStatement", + "src": "4852:35:4" + } + ] + }, + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "4830:5:4", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "4837:3:4", + "type": "" + } + ], + "src": "4781:112:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4991:118:4", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5001:26:4", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5013:9:4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5024:2:4", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5009:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "5009:18:4" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5001:4:4" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5075:6:4" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5088:9:4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5099:1:4", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5084:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "5084:17:4" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "5037:37:4" + }, + "nodeType": "YulFunctionCall", + "src": "5037:65:4" + }, + "nodeType": "YulExpressionStatement", + "src": "5037:65:4" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4963:9:4", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4975:6:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "4986:4:4", + "type": "" + } + ], + "src": "4899:210:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5211:122:4", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5221:26:4", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5233:9:4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5244:2:4", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5229:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "5229:18:4" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5221:4:4" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5299:6:4" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5312:9:4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5323:1:4", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5308:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "5308:17:4" + } + ], + "functionName": { + "name": "abi_encode_t_uint16_to_t_uint16_fromStack", + "nodeType": "YulIdentifier", + "src": "5257:41:4" + }, + "nodeType": "YulFunctionCall", + "src": "5257:69:4" + }, + "nodeType": "YulExpressionStatement", + "src": "5257:69:4" + } + ] + }, + "name": "abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5183:9:4", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5195:6:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5206:4:4", + "type": "" + } + ], + "src": "5115:218:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5437:124:4", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5447:26:4", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5459:9:4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5470:2:4", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5455:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "5455:18:4" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5447:4:4" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5527:6:4" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5540:9:4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5551:1:4", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5536:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "5536:17:4" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "5483:43:4" + }, + "nodeType": "YulFunctionCall", + "src": "5483:71:4" + }, + "nodeType": "YulExpressionStatement", + "src": "5483:71:4" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5409:9:4", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5421:6:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5432:4:4", + "type": "" + } + ], + "src": "5339:222:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5661:120:4", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5671:26:4", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5683:9:4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5694:2:4", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5679:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "5679:18:4" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "5671:4:4" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5747:6:4" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5760:9:4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5771:1:4", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5756:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "5756:17:4" + } + ], + "functionName": { + "name": "abi_encode_t_uint8_to_t_uint8_fromStack", + "nodeType": "YulIdentifier", + "src": "5707:39:4" + }, + "nodeType": "YulFunctionCall", + "src": "5707:67:4" + }, + "nodeType": "YulExpressionStatement", + "src": "5707:67:4" + } + ] + }, + "name": "abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5633:9:4", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5645:6:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "5656:4:4", + "type": "" + } + ], + "src": "5567:214:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5829:48:4", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5839:32:4", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5864:5:4" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5857:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "5857:13:4" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "5850:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "5850:21:4" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5839:7:4" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5811:5:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5821:7:4", + "type": "" + } + ], + "src": "5787:90:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5927:45:4", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "5937:29:4", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "5952:5:4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5959:6:4", + "type": "", + "value": "0xffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "5948:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "5948:18:4" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "5937:7:4" + } + ] + } + ] + }, + "name": "cleanup_t_uint16", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "5909:5:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "5919:7:4", + "type": "" + } + ], + "src": "5883:89:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6023:32:4", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6033:16:4", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6044:5:4" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "6033:7:4" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6005:5:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "6015:7:4", + "type": "" + } + ], + "src": "5978:77:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6104:43:4", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "6114:27:4", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6129:5:4" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6136:4:4", + "type": "", + "value": "0xff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "6125:3:4" + }, + "nodeType": "YulFunctionCall", + "src": "6125:16:4" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "6114:7:4" + } + ] + } + ] + }, + "name": "cleanup_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6086:5:4", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "6096:7:4", + "type": "" + } + ], + "src": "6061:86:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6195:78:4", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6251:16:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6260:1:4", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6263:1:4", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6253:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "6253:12:4" + }, + "nodeType": "YulExpressionStatement", + "src": "6253:12:4" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6218:5:4" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6242:5:4" + } + ], + "functionName": { + "name": "cleanup_t_uint16", + "nodeType": "YulIdentifier", + "src": "6225:16:4" + }, + "nodeType": "YulFunctionCall", + "src": "6225:23:4" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6215:2:4" + }, + "nodeType": "YulFunctionCall", + "src": "6215:34:4" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6208:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "6208:42:4" + }, + "nodeType": "YulIf", + "src": "6205:2:4" + } + ] + }, + "name": "validator_revert_t_uint16", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6188:5:4", + "type": "" + } + ], + "src": "6153:120:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6322:79:4", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6379:16:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6388:1:4", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6391:1:4", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6381:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "6381:12:4" + }, + "nodeType": "YulExpressionStatement", + "src": "6381:12:4" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6345:5:4" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6370:5:4" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "6352:17:4" + }, + "nodeType": "YulFunctionCall", + "src": "6352:24:4" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6342:2:4" + }, + "nodeType": "YulFunctionCall", + "src": "6342:35:4" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6335:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "6335:43:4" + }, + "nodeType": "YulIf", + "src": "6332:2:4" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6315:5:4", + "type": "" + } + ], + "src": "6279:122:4" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6448:77:4", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6503:16:4", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6512:1:4", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6515:1:4", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6505:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "6505:12:4" + }, + "nodeType": "YulExpressionStatement", + "src": "6505:12:4" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6471:5:4" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "6494:5:4" + } + ], + "functionName": { + "name": "cleanup_t_uint8", + "nodeType": "YulIdentifier", + "src": "6478:15:4" + }, + "nodeType": "YulFunctionCall", + "src": "6478:22:4" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "6468:2:4" + }, + "nodeType": "YulFunctionCall", + "src": "6468:33:4" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "6461:6:4" + }, + "nodeType": "YulFunctionCall", + "src": "6461:41:4" + }, + "nodeType": "YulIf", + "src": "6458:2:4" + } + ] + }, + "name": "validator_revert_t_uint8", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "6441:5:4", + "type": "" + } + ], + "src": "6407:118:4" + } + ] + }, + "contents": "{\n\n function abi_decode_t_uint16(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint16(value)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_t_uint8(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint8(value)\n }\n\n function abi_decode_tuple_t_uint16(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint16t_uint8t_uint8(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint16t_uint8t_uint8t_uint8(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint16t_uint8t_uint8t_uint8t_uint8(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 160) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint16t_uint8t_uint8t_uint8t_uint8t_uint8(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5 {\n if slt(sub(dataEnd, headStart), 192) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 96\n\n value3 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 128\n\n value4 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 160\n\n value5 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint8t_uint16(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint8(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint16(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n function abi_encode_t_uint16_to_t_uint16_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint16(value))\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_t_uint8_to_t_uint8_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint8(value))\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint16__to_t_uint16__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint16_to_t_uint16_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint8__to_t_uint8__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint8_to_t_uint8_fromStack(value0, add(headStart, 0))\n\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_uint16(value) -> cleaned {\n cleaned := and(value, 0xffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function cleanup_t_uint8(value) -> cleaned {\n cleaned := and(value, 0xff)\n }\n\n function validator_revert_t_uint16(value) {\n if iszero(eq(value, cleanup_t_uint16(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint8(value) {\n if iszero(eq(value, cleanup_t_uint8(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 4, + "language": "Yul", + "name": "#utility.yul" + } + ], + "sourceMap": "124:1398:0:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "124:1398:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4781:130:2;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5188:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5714:203;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4646:125;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5520:184;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5058:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5341:169;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5927:1727;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3526:971;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4507:129;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;731:382;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1123:160;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1293:571;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4921:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4781:130;4835:5;4897:2;4891;4886;4874:9;:14;;;;;;:19;;;;;;4873:26;;;;;;4860:40;;4781:130;;;:::o;5188:143::-;5245:5;5318:1;5313;472:5;5284:9;:26;;;;;;:30;5283:36;;;;;;5270:50;;5188:143;;;:::o;5714:203::-;5819:14;5860:46;5872:4;5878:5;5885:3;5890:4;5896:6;5904:1;5860:11;:46::i;:::-;5853:53;;5714:203;;;;;;;:::o;4646:125::-;4699:5;4731:25;4746:9;4731:14;:25::i;:::-;:29;;;4724:36;;4646:125;;;:::o;5520:184::-;5611:14;5652:41;5664:4;5670:5;5677:3;5682:4;5688:1;5691;5652:11;:41::i;:::-;5645:48;;5520:184;;;;;;:::o;5058:120::-;5114:5;5164:2;5152:9;:14;;;;;;5139:28;;5058:120;;;:::o;5341:169::-;5420:14;5461:38;5473:4;5479:5;5486:3;5491:1;5494;5497;5461:11;:38::i;:::-;5454:45;;5341:169;;;;;:::o;5927:1727::-;6046:14;6080:8;716:4;6136:15;;6131:313;6157:4;6153:8;;:1;:8;;;6131:313;;;6198:13;6209:1;6198:10;:13::i;:::-;6194:232;;;574:8;6247:33;;;;6194:232;;;519:8;6371:28;;;;6194:232;6163:3;;;;;;;6131:313;;;6487:31;;:::i;:::-;6556:2;6536:14;6551:1;6536:17;;;;;;;;;;:22;;;;;;;;;;;6580:16;6591:4;6580:10;:16::i;:::-;6576:178;;;6644:2;6624:14;6639:1;6624:17;;;;;;;;;;:22;;;;;;;;;;;6576:178;;;6733:2;6713:14;6728:1;6713:17;;;;;;;;;;:22;;;;;;;;;;;6576:178;6791:2;6771:14;6786:1;6771:17;;;;;;;;;;:22;;;;;;;;;;;6831:2;6811:14;6826:1;6811:17;;;;;;;;;;:22;;;;;;;;;;;6871:2;6851:14;6866:1;6851:17;;;;;;;;;;:22;;;;;;;;;;;6911:2;6891:14;6906:1;6891:17;;;;;;;;;;:22;;;;;;;;;;;6951:2;6931:14;6946:1;6931:17;;;;;;;;;;:22;;;;;;;;;;;6991:2;6971:14;6986:1;6971:17;;;;;;;;;;:22;;;;;;;;;;;7031:2;7011:14;7026:1;7011:17;;;;;;;;;;:22;;;;;;;;;;;7071:2;7051:14;7066:1;7051:17;;;;;;;;;;:22;;;;;;;;;;;7112:2;7091:14;7106:2;7091:18;;;;;;;;;;:23;;;;;;;;;;;7153:2;7132:14;7147:2;7132:18;;;;;;;;;;:23;;;;;;;;;;;7183:1;7179:5;;7174:124;7190:5;7186:9;;:1;:9;;;7174:124;;;7258:14;7277:1;7273;:5;7258:21;;;;;;;;;;;;;7241:38;;472:5;7241:38;7228:51;;;;7197:3;;;;;;;7174:124;;;7376:1;7370:3;:7;7352:26;;472:5;7352:26;7339:39;;;;7453:4;7434:24;;625:4;7434:24;7421:37;;;;7537:6;7516:28;;673:2;7516:28;7503:41;;;;7602:6;7589:19;;;;;;7627:16;;5927:1727;;;;;;;;:::o;3526:971::-;3580:6;3606:24;3633:1;3606:28;;3652:11;3681:17;519:8;3769:9;:27;;;;;;716:4;3755:41;;;3741:56;;3854:28;716:4;3854:28;;:15;:28::i;:::-;3830:21;3846:4;3830:21;;:15;:21::i;:::-;:52;3815:67;;3947:12;574:8;3924:35;3901:58;;;;4040:12;716:4;4019;:18;:33;;;519:8;4000:53;3977:76;;;;4072:386;4101:9;4079:19;:31;4072:386;;;4142:28;4167:1;4160:4;:8;4142:10;:28::i;:::-;4138:267;;;574:8;4206:43;;;;4138:267;;;519:8;4340:38;;;;4138:267;4438:1;4430:9;;;;4072:386;;;4482:4;4475:11;;;;;3526:971;;;:::o;4507:129::-;4562:5;4594:25;4609:9;4594:14;:25::i;:::-;:31;;;4587:38;;4507:129;;;:::o;731:382::-;785:4;825:1;820;813:4;:8;;;;;;;;:13;;;809:76;;861:5;854:12;;;;809:76;920:1;913:3;906:4;:10;;;;;;;;:15;;;902:77;;956:4;949:11;;;;902:77;1014:1;1007:3;1000:4;:10;;;;;;;;:15;;;996:78;;1050:5;1043:12;;;;996:78;1098:4;1091:11;;731:382;;;;:::o;1123:160::-;1180:4;1212:1;1204:9;;;;1269:3;1262:4;:10;;;;;;1256:3;1249:4;:10;;;;;;1245:1;1238:4;:8;;;;;;:21;:34;1231:41;;1123:160;;;:::o;1293:571::-;1364:5;1402:1;1393:5;:10;;;:24;;;;1416:1;1407:5;:10;;;1393:24;:38;;;;1430:1;1421:5;:10;;;1393:38;:52;;;;1444:1;1435:5;:10;;;1393:52;:66;;;;1458:1;1449:5;:10;;;1393:66;:81;;;;1472:2;1463:5;:11;;;1393:81;:96;;;;1487:2;1478:5;:11;;;1393:96;1389:465;;;1524:2;1517:9;;;;1389:465;1580:1;1571:5;:10;;;:24;;;;1594:1;1585:5;:10;;;1571:24;:38;;;;1608:1;1599:5;:10;;;1571:38;:53;;;;1622:2;1613:5;:11;;;1571:53;1567:287;;;1659:2;1652:9;;;;1567:287;1706:16;1717:4;1706:10;:16::i;:::-;1702:152;;;1757:2;1750:9;;;;1702:152;1833:2;1826:9;;1293:571;;;;;:::o;4921:127::-;4977:5;5034:2;5028;5016:9;:14;;;;;;5015:21;;;;;;5002:35;;4921:127;;;:::o;1874:1642::-;1937:19;;:::i;:::-;1976:24;2022:8;2048:7;2108:18;2116:9;2108:7;:18::i;:::-;2098:2;:7;;:28;;;;;;;;;;;2177;716:4;2177:28;;:15;:28::i;:::-;2150:24;2166:2;:7;;;2150:24;;:15;:24::i;:::-;:55;2144:61;;2270:3;574:8;2247:26;2224:49;;;;2357:3;716:4;2333:2;:7;;;:21;:27;;;519:8;2314:47;2291:70;;;;2405:19;2451:1;2447:5;;2442:385;2459:2;2454:1;:7;;;2442:385;;2528:26;2543:1;2546:2;:7;;;2528:14;:26::i;:::-;2511:43;;472:5;2511:43;2494:60;;2623:9;2601:19;2584:14;:36;:48;2580:166;;;2679:1;2668:2;:8;;:12;;;;;;;;;;;2714:5;;2580:166;2794:14;2771:37;;;;2463:3;;;;;;;2442:385;;;2877:1;2873:5;;2868:328;2885:33;2900:2;:8;;;2910:2;:7;;;2885:14;:33::i;:::-;2880:38;;:1;:38;;;2868:328;;2994:9;2972:19;472:5;2955:36;:48;2951:164;;;3048:1;3039:2;:6;;:10;;;;;;;;;;;3083:5;;2951:164;472:5;3140:37;;;;2920:3;;;;;;;2868:328;;;3248:18;3256:9;3248:7;:18::i;:::-;3238:2;:7;;:28;;;;;;;;;;;3323:20;3333:9;3323;:20::i;:::-;3311:2;:9;;:32;;;;;;;;;;;3400:20;3410:9;3400;:20::i;:::-;3388:2;:9;;:32;;;;;;;;;;;3484:21;3495:9;3484:10;:21::i;:::-;3471:2;:10;;:34;;;;;;;;;;;1874:1642;;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7:137:4:-;;90:6;77:20;68:29;;106:32;132:5;106:32;:::i;:::-;58:86;;;;:::o;150:139::-;;234:6;221:20;212:29;;250:33;277:5;250:33;:::i;:::-;202:87;;;;:::o;295:135::-;;377:6;364:20;355:29;;393:31;418:5;393:31;:::i;:::-;345:85;;;;:::o;436:260::-;;543:2;531:9;522:7;518:23;514:32;511:2;;;559:1;556;549:12;511:2;602:1;627:52;671:7;662:6;651:9;647:22;627:52;:::i;:::-;617:62;;573:116;501:195;;;;:::o;702:542::-;;;;839:2;827:9;818:7;814:23;810:32;807:2;;;855:1;852;845:12;807:2;898:1;923:52;967:7;958:6;947:9;943:22;923:52;:::i;:::-;913:62;;869:116;1024:2;1050:51;1093:7;1084:6;1073:9;1069:22;1050:51;:::i;:::-;1040:61;;995:116;1150:2;1176:51;1219:7;1210:6;1199:9;1195:22;1176:51;:::i;:::-;1166:61;;1121:116;797:447;;;;;:::o;1250:684::-;;;;;1402:3;1390:9;1381:7;1377:23;1373:33;1370:2;;;1419:1;1416;1409:12;1370:2;1462:1;1487:52;1531:7;1522:6;1511:9;1507:22;1487:52;:::i;:::-;1477:62;;1433:116;1588:2;1614:51;1657:7;1648:6;1637:9;1633:22;1614:51;:::i;:::-;1604:61;;1559:116;1714:2;1740:51;1783:7;1774:6;1763:9;1759:22;1740:51;:::i;:::-;1730:61;;1685:116;1840:2;1866:51;1909:7;1900:6;1889:9;1885:22;1866:51;:::i;:::-;1856:61;;1811:116;1360:574;;;;;;;:::o;1940:826::-;;;;;;2107:3;2095:9;2086:7;2082:23;2078:33;2075:2;;;2124:1;2121;2114:12;2075:2;2167:1;2192:52;2236:7;2227:6;2216:9;2212:22;2192:52;:::i;:::-;2182:62;;2138:116;2293:2;2319:51;2362:7;2353:6;2342:9;2338:22;2319:51;:::i;:::-;2309:61;;2264:116;2419:2;2445:51;2488:7;2479:6;2468:9;2464:22;2445:51;:::i;:::-;2435:61;;2390:116;2545:2;2571:51;2614:7;2605:6;2594:9;2590:22;2571:51;:::i;:::-;2561:61;;2516:116;2671:3;2698:51;2741:7;2732:6;2721:9;2717:22;2698:51;:::i;:::-;2688:61;;2642:117;2065:701;;;;;;;;:::o;2772:968::-;;;;;;;2954:3;2942:9;2933:7;2929:23;2925:33;2922:2;;;2971:1;2968;2961:12;2922:2;3014:1;3039:52;3083:7;3074:6;3063:9;3059:22;3039:52;:::i;:::-;3029:62;;2985:116;3140:2;3166:51;3209:7;3200:6;3189:9;3185:22;3166:51;:::i;:::-;3156:61;;3111:116;3266:2;3292:51;3335:7;3326:6;3315:9;3311:22;3292:51;:::i;:::-;3282:61;;3237:116;3392:2;3418:51;3461:7;3452:6;3441:9;3437:22;3418:51;:::i;:::-;3408:61;;3363:116;3518:3;3545:51;3588:7;3579:6;3568:9;3564:22;3545:51;:::i;:::-;3535:61;;3489:117;3645:3;3672:51;3715:7;3706:6;3695:9;3691:22;3672:51;:::i;:::-;3662:61;;3616:117;2912:828;;;;;;;;:::o;3746:262::-;;3854:2;3842:9;3833:7;3829:23;3825:32;3822:2;;;3870:1;3867;3860:12;3822:2;3913:1;3938:53;3983:7;3974:6;3963:9;3959:22;3938:53;:::i;:::-;3928:63;;3884:117;3812:196;;;;:::o;4014:401::-;;;4136:2;4124:9;4115:7;4111:23;4107:32;4104:2;;;4152:1;4149;4142:12;4104:2;4195:1;4220:51;4263:7;4254:6;4243:9;4239:22;4220:51;:::i;:::-;4210:61;;4166:115;4320:2;4346:52;4390:7;4381:6;4370:9;4366:22;4346:52;:::i;:::-;4336:62;;4291:117;4094:321;;;;;:::o;4421:109::-;4502:21;4517:5;4502:21;:::i;:::-;4497:3;4490:34;4480:50;;:::o;4536:115::-;4621:23;4638:5;4621:23;:::i;:::-;4616:3;4609:36;4599:52;;:::o;4657:118::-;4744:24;4762:5;4744:24;:::i;:::-;4739:3;4732:37;4722:53;;:::o;4781:112::-;4864:22;4880:5;4864:22;:::i;:::-;4859:3;4852:35;4842:51;;:::o;4899:210::-;;5024:2;5013:9;5009:18;5001:26;;5037:65;5099:1;5088:9;5084:17;5075:6;5037:65;:::i;:::-;4991:118;;;;:::o;5115:218::-;;5244:2;5233:9;5229:18;5221:26;;5257:69;5323:1;5312:9;5308:17;5299:6;5257:69;:::i;:::-;5211:122;;;;:::o;5339:222::-;;5470:2;5459:9;5455:18;5447:26;;5483:71;5551:1;5540:9;5536:17;5527:6;5483:71;:::i;:::-;5437:124;;;;:::o;5567:214::-;;5694:2;5683:9;5679:18;5671:26;;5707:67;5771:1;5760:9;5756:17;5747:6;5707:67;:::i;:::-;5661:120;;;;:::o;5787:90::-;;5864:5;5857:13;5850:21;5839:32;;5829:48;;;:::o;5883:89::-;;5959:6;5952:5;5948:18;5937:29;;5927:45;;;:::o;5978:77::-;;6044:5;6033:16;;6023:32;;;:::o;6061:86::-;;6136:4;6129:5;6125:16;6114:27;;6104:43;;;:::o;6153:120::-;6225:23;6242:5;6225:23;:::i;:::-;6218:5;6215:34;6205:2;;6263:1;6260;6253:12;6205:2;6195:78;:::o;6279:122::-;6352:24;6370:5;6352:24;:::i;:::-;6345:5;6342:35;6332:2;;6391:1;6388;6381:12;6332:2;6322:79;:::o;6407:118::-;6478:22;6494:5;6478:22;:::i;:::-;6471:5;6468:33;6458:2;;6515:1;6512;6505:12;6458:2;6448:77;:::o", + "source": "// SPDX-License-Identifier: SPDX-License\npragma solidity >=0.4.21 <0.8.0;\npragma abicoder v2;\n\nimport \"./DateAndTime.sol\";\n\ncontract CryptoBoyStruct is DateAndTime {\n\n struct CryptoBoy {\n uint256 tokenId;\n string tokenURI;\n address payable mintedBy;\n address payable currentOwner;\n address payable previousOwner;\n uint256 price;\n uint256 numberOfTransfers;\n _DateTime timeStamp;\n bool purchased;\n bool forSale;\n }\n\n event CryptoBoyMinted (\n uint256 tokenId,\n string tokenURI,\n address payable mintedBy,\n address payable currentOwner,\n address payable previousOwner,\n uint256 price,\n uint256 numberOfTransfers,\n _DateTime timeStamp,\n bool purchased,\n bool forSale\n );\n\n // emit CryptoBoyMinted(cryptoBoyCounter, _tokenURI, msg.sender, msg.sender, address(0), _price, 0, timeStamp, false, true);\n\n // const event = result.logs[1].args;\n // assert.equal(event.tokenId.toNumber(), 1);\n // assert.equal(\n // event.tokenURI,\n // \"https://gateway.pinata.cloud/ipfs/QmYFmJgQGH4uPHRYN15Xdv4aLd9o4Aq63y1e4GgN6kj5aK/2\"\n // );\n // assert.equal(event.mintedBy, accounts[0]);\n // assert.equal(event.currentOwner, accounts[0]);\n // assert.equal(\n // event.previousOwner,\n // \"0x0000000000000000000000000000000000000000\"\n // );\n // const cryptoBoyPrice = web3.utils.fromWei(event.price, \"ether\");\n // assert.equal(cryptoBoyPrice, 1);\n // assert.equal(event.numberOfTransfers.toNumber(), 0);\n\n}", + "sourcePath": "/home/pavansoratur/crypto-boys/src/contracts/CryptoBoyStruct.sol", + "ast": { + "absolutePath": "/home/pavansoratur/crypto-boys/src/contracts/CryptoBoyStruct.sol", + "exportedSymbols": { + "CryptoBoyStruct": [ + 49 + ], + "DateAndTime": [ + 1286 + ] + }, + "id": 50, + "license": "SPDX-License", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + ">=", + "0.4", + ".21", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "41:32:0" + }, + { + "id": 2, + "literals": [ + "abicoder", + "v2" + ], + "nodeType": "PragmaDirective", + "src": "74:19:0" + }, + { + "absolutePath": "/home/pavansoratur/crypto-boys/src/contracts/DateAndTime.sol", + "file": "./DateAndTime.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 50, + "sourceUnit": 1287, + "src": "95:27:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 4, + "name": "DateAndTime", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1286, + "src": "152:11:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_DateAndTime_$1286", + "typeString": "contract DateAndTime" + } + }, + "id": 5, + "nodeType": "InheritanceSpecifier", + "src": "152:11:0" + } + ], + "contractDependencies": [ + 1286 + ], + "contractKind": "contract", + "fullyImplemented": true, + "id": 49, + "linearizedBaseContracts": [ + 49, + 1286 + ], + "name": "CryptoBoyStruct", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "CryptoBoyStruct.CryptoBoy", + "id": 26, + "members": [ + { + "constant": false, + "id": 7, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "192:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 6, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "192:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "tokenURI", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "213:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 8, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "213:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "mintedBy", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "234:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 10, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "234:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13, + "mutability": "mutable", + "name": "currentOwner", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "264:28:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 12, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "264:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15, + "mutability": "mutable", + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "298:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 14, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "298:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17, + "mutability": "mutable", + "name": "price", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "333:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 16, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "333:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 19, + "mutability": "mutable", + "name": "numberOfTransfers", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "352:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 18, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "352:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 21, + "mutability": "mutable", + "name": "timeStamp", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "383:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$528_storage_ptr", + "typeString": "struct DateAndTime._DateTime" + }, + "typeName": { + "id": 20, + "name": "_DateTime", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 528, + "src": "383:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$528_storage_ptr", + "typeString": "struct DateAndTime._DateTime" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23, + "mutability": "mutable", + "name": "purchased", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "408:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 22, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "408:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25, + "mutability": "mutable", + "name": "forSale", + "nodeType": "VariableDeclaration", + "scope": 26, + "src": "428:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 24, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "428:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "CryptoBoy", + "nodeType": "StructDefinition", + "scope": 49, + "src": "169:276:0", + "visibility": "public" + }, + { + "anonymous": false, + "id": 48, + "name": "CryptoBoyMinted", + "nodeType": "EventDefinition", + "parameters": { + "id": 47, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 28, + "indexed": false, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 48, + "src": "477:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 27, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "477:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 30, + "indexed": false, + "mutability": "mutable", + "name": "tokenURI", + "nodeType": "VariableDeclaration", + "scope": 48, + "src": "498:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 29, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "498:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 32, + "indexed": false, + "mutability": "mutable", + "name": "mintedBy", + "nodeType": "VariableDeclaration", + "scope": 48, + "src": "519:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 31, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "519:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 34, + "indexed": false, + "mutability": "mutable", + "name": "currentOwner", + "nodeType": "VariableDeclaration", + "scope": 48, + "src": "549:28:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 33, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "549:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 36, + "indexed": false, + "mutability": "mutable", + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "scope": 48, + "src": "583:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 35, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "583:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 38, + "indexed": false, + "mutability": "mutable", + "name": "price", + "nodeType": "VariableDeclaration", + "scope": 48, + "src": "618:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 37, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "618:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 40, + "indexed": false, + "mutability": "mutable", + "name": "numberOfTransfers", + "nodeType": "VariableDeclaration", + "scope": 48, + "src": "637:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 39, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "637:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 42, + "indexed": false, + "mutability": "mutable", + "name": "timeStamp", + "nodeType": "VariableDeclaration", + "scope": 48, + "src": "668:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$528_memory_ptr", + "typeString": "struct DateAndTime._DateTime" + }, + "typeName": { + "id": 41, + "name": "_DateTime", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 528, + "src": "668:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$528_storage_ptr", + "typeString": "struct DateAndTime._DateTime" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 44, + "indexed": false, + "mutability": "mutable", + "name": "purchased", + "nodeType": "VariableDeclaration", + "scope": 48, + "src": "693:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 43, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "693:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 46, + "indexed": false, + "mutability": "mutable", + "name": "forSale", + "nodeType": "VariableDeclaration", + "scope": 48, + "src": "713:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 45, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "713:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "471:258:0" + }, + "src": "449:281:0" + } + ], + "scope": 50, + "src": "124:1398:0" + } + ], + "src": "41:1481:0" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/crypto-boys/src/contracts/CryptoBoyStruct.sol", + "exportedSymbols": { + "CryptoBoyStruct": [ + 49 + ], + "DateAndTime": [ + 1286 + ] + }, + "license": "SPDX-License" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.4", + ".21", + "<", + "0.8", + ".0" + ] + }, + "id": 1, + "name": "PragmaDirective", + "src": "41:32:0" + }, + { + "attributes": { + "literals": [ + "abicoder", + "v2" + ] + }, + "id": 2, + "name": "PragmaDirective", + "src": "74:19:0" + }, + { + "attributes": { + "SourceUnit": 1287, + "absolutePath": "/home/pavansoratur/crypto-boys/src/contracts/DateAndTime.sol", + "file": "./DateAndTime.sol", + "scope": 50, + "symbolAliases": [ + null + ], + "unitAlias": "" + }, + "id": 3, + "name": "ImportDirective", + "src": "95:27:0" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 1286 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 49, + 1286 + ], + "name": "CryptoBoyStruct", + "scope": 50 + }, + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "DateAndTime", + "referencedDeclaration": 1286, + "type": "contract DateAndTime" + }, + "id": 4, + "name": "UserDefinedTypeName", + "src": "152:11:0" + } + ], + "id": 5, + "name": "InheritanceSpecifier", + "src": "152:11:0" + }, + { + "attributes": { + "canonicalName": "CryptoBoyStruct.CryptoBoy", + "name": "CryptoBoy", + "scope": 49, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 26, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 6, + "name": "ElementaryTypeName", + "src": "192:7:0" + } + ], + "id": 7, + "name": "VariableDeclaration", + "src": "192:15:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenURI", + "scope": 26, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 8, + "name": "ElementaryTypeName", + "src": "213:6:0" + } + ], + "id": 9, + "name": "VariableDeclaration", + "src": "213:15:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "mintedBy", + "scope": 26, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 10, + "name": "ElementaryTypeName", + "src": "234:15:0" + } + ], + "id": 11, + "name": "VariableDeclaration", + "src": "234:24:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "currentOwner", + "scope": 26, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 12, + "name": "ElementaryTypeName", + "src": "264:15:0" + } + ], + "id": 13, + "name": "VariableDeclaration", + "src": "264:28:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "previousOwner", + "scope": 26, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 14, + "name": "ElementaryTypeName", + "src": "298:15:0" + } + ], + "id": 15, + "name": "VariableDeclaration", + "src": "298:29:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "price", + "scope": 26, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 16, + "name": "ElementaryTypeName", + "src": "333:7:0" + } + ], + "id": 17, + "name": "VariableDeclaration", + "src": "333:13:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "numberOfTransfers", + "scope": 26, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 18, + "name": "ElementaryTypeName", + "src": "352:7:0" + } + ], + "id": 19, + "name": "VariableDeclaration", + "src": "352:25:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timeStamp", + "scope": 26, + "stateVariable": false, + "storageLocation": "default", + "type": "struct DateAndTime._DateTime", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "_DateTime", + "referencedDeclaration": 528, + "type": "struct DateAndTime._DateTime" + }, + "id": 20, + "name": "UserDefinedTypeName", + "src": "383:9:0" + } + ], + "id": 21, + "name": "VariableDeclaration", + "src": "383:19:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "purchased", + "scope": 26, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 22, + "name": "ElementaryTypeName", + "src": "408:4:0" + } + ], + "id": 23, + "name": "VariableDeclaration", + "src": "408:14:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "forSale", + "scope": 26, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 24, + "name": "ElementaryTypeName", + "src": "428:4:0" + } + ], + "id": 25, + "name": "VariableDeclaration", + "src": "428:12:0" + } + ], + "id": 26, + "name": "StructDefinition", + "src": "169:276:0" + }, + { + "attributes": { + "anonymous": false, + "name": "CryptoBoyMinted" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 48, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 27, + "name": "ElementaryTypeName", + "src": "477:7:0" + } + ], + "id": 28, + "name": "VariableDeclaration", + "src": "477:15:0" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "tokenURI", + "scope": 48, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 29, + "name": "ElementaryTypeName", + "src": "498:6:0" + } + ], + "id": 30, + "name": "VariableDeclaration", + "src": "498:15:0" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "mintedBy", + "scope": 48, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 31, + "name": "ElementaryTypeName", + "src": "519:15:0" + } + ], + "id": 32, + "name": "VariableDeclaration", + "src": "519:24:0" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "currentOwner", + "scope": 48, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 33, + "name": "ElementaryTypeName", + "src": "549:15:0" + } + ], + "id": 34, + "name": "VariableDeclaration", + "src": "549:28:0" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "previousOwner", + "scope": 48, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 35, + "name": "ElementaryTypeName", + "src": "583:15:0" + } + ], + "id": 36, + "name": "VariableDeclaration", + "src": "583:29:0" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "price", + "scope": 48, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 37, + "name": "ElementaryTypeName", + "src": "618:7:0" + } + ], + "id": 38, + "name": "VariableDeclaration", + "src": "618:13:0" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "numberOfTransfers", + "scope": 48, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 39, + "name": "ElementaryTypeName", + "src": "637:7:0" + } + ], + "id": 40, + "name": "VariableDeclaration", + "src": "637:25:0" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "timeStamp", + "scope": 48, + "stateVariable": false, + "storageLocation": "default", + "type": "struct DateAndTime._DateTime", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "_DateTime", + "referencedDeclaration": 528, + "type": "struct DateAndTime._DateTime" + }, + "id": 41, + "name": "UserDefinedTypeName", + "src": "668:9:0" + } + ], + "id": 42, + "name": "VariableDeclaration", + "src": "668:19:0" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "purchased", + "scope": 48, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 43, + "name": "ElementaryTypeName", + "src": "693:4:0" + } + ], + "id": 44, + "name": "VariableDeclaration", + "src": "693:14:0" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "forSale", + "scope": 48, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 45, + "name": "ElementaryTypeName", + "src": "713:4:0" + } + ], + "id": 46, + "name": "VariableDeclaration", + "src": "713:12:0" + } + ], + "id": 47, + "name": "ParameterList", + "src": "471:258:0" + } + ], + "id": 48, + "name": "EventDefinition", + "src": "449:281:0" + } + ], + "id": 49, + "name": "ContractDefinition", + "src": "124:1398:0" + } + ], + "id": 50, + "name": "SourceUnit", + "src": "41:1481:0" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-08T06:20:29.252Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/abis/CryptoBoys.json b/src/abis/CryptoBoys.json new file mode 100644 index 0000000..d2b8077 --- /dev/null +++ b/src/abis/CryptoBoys.json @@ -0,0 +1,23130 @@ +{ + "contractName": "CryptoBoys", + "abi": [ + { + "inputs": [], + "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": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "name": "allCryptoBoys", + "outputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "string", + "name": "tokenName", + "type": "string" + }, + { + "internalType": "string", + "name": "tokenURI", + "type": "string" + }, + { + "internalType": "address payable", + "name": "mintedBy", + "type": "address" + }, + { + "internalType": "address payable", + "name": "currentOwner", + "type": "address" + }, + { + "internalType": "address payable", + "name": "previousOwner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "price", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "numberOfTransfers", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "forSale", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "baseURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "collectionName", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "collectionNameSymbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "name": "colorExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "cryptoBoyCounter", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "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" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "name": "tokenNameExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "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" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "name": "tokenURIExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "string", + "name": "_name", + "type": "string" + }, + { + "internalType": "string", + "name": "_tokenURI", + "type": "string" + }, + { + "internalType": "uint256", + "name": "_price", + "type": "uint256" + }, + { + "internalType": "string[]", + "name": "_colors", + "type": "string[]" + } + ], + "name": "mintCryptoBoy", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "getTokenOwner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "getTokenMetaData", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "getNumberOfTokensMinted", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_owner", + "type": "address" + } + ], + "name": "getTotalNumberOfTokensOwnedByAnAddress", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "getTokenExists", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "buyToken", + "outputs": [], + "stateMutability": "payable", + "type": "function", + "payable": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_newPrice", + "type": "uint256" + } + ], + "name": "changeTokenPrice", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_tokenId", + "type": "uint256" + } + ], + "name": "toggleForSale", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"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\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"allCryptoBoys\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"tokenName\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"tokenURI\",\"type\":\"string\"},{\"internalType\":\"address payable\",\"name\":\"mintedBy\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"currentOwner\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numberOfTransfers\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"forSale\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"buyToken\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_newPrice\",\"type\":\"uint256\"}],\"name\":\"changeTokenPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectionName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"collectionNameSymbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"colorExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cryptoBoyCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getNumberOfTokensMinted\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getTokenExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getTokenMetaData\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getTokenOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"getTotalNumberOfTokensOwnedByAnAddress\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_tokenURI\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_price\",\"type\":\"uint256\"},{\"internalType\":\"string[]\",\"name\":\"_colors\",\"type\":\"string[]\"}],\"name\":\"mintCryptoBoy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"toggleForSale\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"tokenNameExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"tokenURIExists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"baseURI()\":{\"details\":\"Returns the base URI set via {_setBaseURI}. This will be automatically added as a prefix in {tokenURI} to each token's URI, or to the token ID if no specific URI is set for that token ID.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/CryptoBoys.sol\":\"CryptoBoys\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/CryptoBoys.sol\":{\"keccak256\":\"0xcd093bc02f0a226bf59c8075285cfe5a74d070e8d77313f56c2d844eb7e69c15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://906681d2c5da532821c088e54e2facc3785654c2fb78a243f33d538ddca02fa0\",\"dweb:/ipfs/QmSAhePHn3oaSRRa1ajFCfv4tQxX2h7tafRHk2TSb9JXvh\"]},\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":{\"keccak256\":\"0xac9220652f9879c5fb3116025d59e8fbf6c2c3d149aed9f617b88edd31402044\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48de100723de94a6590c6db5bae5098a93445194389c3f3eeb104c7239ef3044\",\"dweb:/ipfs/QmVHLEtfLqBqX7XQRHfLuuwtufRBFJFHfgY4zbFRpaZwXC\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280601681526020017f43727970746f20426f797320436f6c6c656374696f6e000000000000000000008152506040518060400160405280600281526020017f4342000000000000000000000000000000000000000000000000000000000000815250620000966301ffc9a760e01b6200016860201b60201c565b8160069080519060200190620000ae929190620003bd565b508060079080519060200190620000c7929190620003bd565b50620000e06380ac58cd60e01b6200016860201b60201c565b620000f8635b5e139f60e01b6200016860201b60201c565b6200011063780e9d6360e01b6200016860201b60201c565b5050620001226200027160201b60201c565b600a908051906020019062000139929190620003bd565b506200014a6200031760201b60201c565b600b908051906020019062000161929190620003bd565b5062000473565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141562000205576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156200030d5780601f10620002e1576101008083540402835291602001916200030d565b820191906000526020600020905b815481529060010190602001808311620002ef57829003601f168201915b5050505050905090565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015620003b35780601f106200038757610100808354040283529160200191620003b3565b820191906000526020600020905b8154815290600101906020018083116200039557829003601f168201915b5050505050905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620003f5576000855562000441565b82601f106200041057805160ff191683800117855562000441565b8280016001018555821562000441579182015b828111156200044057825182559160200191906001019062000423565b5b50905062000450919062000454565b5090565b5b808211156200046f57600081600090555060010162000455565b5090565b614b4080620004836000396000f3fe6080604052600436106101ee5760003560e01c806367c623cf1161010d578063a32018b9116100a0578063bffec2021161006f578063bffec2021461078c578063c87b56dd146107b7578063cc151f3a146107f4578063e5326ab11461081f578063e985e9c51461084a576101ee565b8063a32018b9146106c0578063a46b1fac146106e9578063a5cd761f14610726578063b88d4fde14610763576101ee565b80638d44807c116100dc5780638d44807c1461060657806395d89b41146106435780639bfc5a591461066e578063a22cb46514610697576101ee565b806367c623cf146105365780636c0360eb146105735780636f9507f91461059e57806370a08231146105c9576101ee565b80632f745c591161018557806344c0d7eb1161015457806344c0d7eb1461044e5780634f6ccce71461049357806362e8e8ac146104d05780636352211e146104f9576101ee565b80632f745c591461036e57806342842e0e146103ab57806343902850146103d457806343d32ae714610411576101ee565b8063142687f3116101c1578063142687f3146102c157806318160ddd146102fe57806323b872dd146103295780632d296bf114610352576101ee565b806301ffc9a7146101f357806306fdde0314610230578063081812fc1461025b578063095ea7b314610298575b600080fd5b3480156101ff57600080fd5b5061021a600480360381019061021591906142c3565b610887565b6040516102279190614558565b60405180910390f35b34801561023c57600080fd5b506102456108ee565b6040516102529190614573565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d91906143dd565b610990565b60405161028f919061453d565b60405180910390f35b3480156102a457600080fd5b506102bf60048036038101906102ba9190614287565b610a2b565b005b3480156102cd57600080fd5b506102e860048036038101906102e391906143dd565b610b6f565b6040516102f59190614558565b60405180910390f35b34801561030a57600080fd5b50610313610b86565b6040516103209190614595565b60405180910390f35b34801561033557600080fd5b50610350600480360381019061034b9190614181565b610b97565b005b61036c600480360381019061036791906143dd565b610c0d565b005b34801561037a57600080fd5b5061039560048036038101906103909190614287565b6111e6565b6040516103a29190614595565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd9190614181565b611241565b005b3480156103e057600080fd5b506103fb60048036038101906103f6919061411c565b611261565b6040516104089190614595565b60405180910390f35b34801561041d57600080fd5b50610438600480360381019061043391906142ec565b611278565b6040516104459190614558565b60405180910390f35b34801561045a57600080fd5b50610475600480360381019061047091906143dd565b6112ae565b60405161048a999897969594939291906145b0565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b591906143dd565b611499565b6040516104c79190614595565b60405180910390f35b3480156104dc57600080fd5b506104f760048036038101906104f29190614406565b6114bc565b005b34801561050557600080fd5b50610520600480360381019061051b91906143dd565b611964565b60405161052d919061453d565b60405180910390f35b34801561054257600080fd5b5061055d600480360381019061055891906143dd565b61199b565b60405161056a9190614573565b60405180910390f35b34801561057f57600080fd5b506105886119b3565b6040516105959190614573565b60405180910390f35b3480156105aa57600080fd5b506105b3611a55565b6040516105c09190614573565b60405180910390f35b3480156105d557600080fd5b506105f060048036038101906105eb919061411c565b611af3565b6040516105fd9190614595565b60405180910390f35b34801561061257600080fd5b5061062d600480360381019061062891906142ec565b611bc8565b60405161063a9190614558565b60405180910390f35b34801561064f57600080fd5b50610658611bfe565b6040516106659190614573565b60405180910390f35b34801561067a57600080fd5b506106956004803603810190610690919061432d565b611ca0565b005b3480156106a357600080fd5b506106be60048036038101906106b9919061424b565b6120d0565b005b3480156106cc57600080fd5b506106e760048036038101906106e291906143dd565b612286565b005b3480156106f557600080fd5b50610710600480360381019061070b91906142ec565b612758565b60405161071d9190614558565b60405180910390f35b34801561073257600080fd5b5061074d600480360381019061074891906143dd565b61278e565b60405161075a919061453d565b60405180910390f35b34801561076f57600080fd5b5061078a600480360381019061078591906141d0565b6127a5565b005b34801561079857600080fd5b506107a161281d565b6040516107ae9190614595565b60405180910390f35b3480156107c357600080fd5b506107de60048036038101906107d991906143dd565b612823565b6040516107eb9190614573565b60405180910390f35b34801561080057600080fd5b50610809612af4565b6040516108169190614595565b60405180910390f35b34801561082b57600080fd5b50610834612b08565b6040516108419190614573565b60405180910390f35b34801561085657600080fd5b50610871600480360381019061086c9190614145565b612ba6565b60405161087e9190614558565b60405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109865780601f1061095b57610100808354040283529160200191610986565b820191906000526020600020905b81548152906001019060200180831161096957829003601f168201915b5050505050905090565b600061099b82612c3a565b6109f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614a09602c913960400191505060405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a3682611964565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614ab96021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610adc612c57565b73ffffffffffffffffffffffffffffffffffffffff161480610b0b5750610b0a81610b05612c57565b612ba6565b5b610b60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018061495c6038913960400191505060405180910390fd5b610b6a8383612c5f565b505050565b600080610b7b83612c3a565b905080915050919050565b6000610b926002612d18565b905090565b610ba8610ba2612c57565b82612d2d565b610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180614ada6031913960400191505060405180910390fd5b610c08838383612e21565b505050565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610c4757600080fd5b610c5081612c3a565b610c5957600080fd5b6000610c6482611964565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ca057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cd957600080fd5b6000600d60008481526020019081526020016000206040518061012001604052908160008201548152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d9d5780601f10610d7257610100808354040283529160200191610d9d565b820191906000526020600020905b815481529060010190602001808311610d8057829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e3f5780601f10610e1457610100808354040283529160200191610e3f565b820191906000526020600020905b815481529060010190602001808311610e2257829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160068201548152602001600782015481526020016008820160009054906101000a900460ff16151515158152505090508060c00151341015610f8c57600080fd5b806101000151610f9b57600080fd5b610fa6823385612e21565b6000816080015190508073ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610ff5573d6000803e3d6000fd5b5081608001518260a0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505033826080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060018260e001818151019150818152505081600d60008681526020019081526020016000206000820151816000015560208201518160010190805190602001906110b5929190613f03565b5060408201518160020190805190602001906110d2929190613f03565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c0820151816006015560e082015181600701556101008201518160080160006101000a81548160ff02191690831515021790555090505050505050565b600061123982600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061306490919063ffffffff16565b905092915050565b61125c838383604051806020016040528060008152506127a5565b505050565b60008061126d83611af3565b905080915050919050565b6010818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900460ff1681565b600d602052806000526040600020600091509050806000015490806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113605780601f1061133557610100808354040283529160200191611360565b820191906000526020600020905b81548152906001019060200180831161134357829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113fe5780601f106113d3576101008083540402835291602001916113fe565b820191906000526020600020905b8154815290600101906020018083116113e157829003601f168201915b5050505050908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060060154908060070154908060080160009054906101000a900460ff16905089565b6000806114b083600261307e90919063ffffffff16565b50905080915050919050565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156114f657600080fd5b6114ff82612c3a565b61150857600080fd5b600061151383611964565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461154d57600080fd5b6000600d60008581526020019081526020016000206040518061012001604052908160008201548152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116115780601f106115e657610100808354040283529160200191611611565b820191906000526020600020905b8154815290600101906020018083116115f457829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116b35780601f10611688576101008083540402835291602001916116b3565b820191906000526020600020905b81548152906001019060200180831161169657829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160068201548152602001600782015481526020016008820160009054906101000a900460ff1615151515815250509050828160c001818152505080600d6000868152602001908152602001600020600082015181600001556020820151816001019080519060200190611833929190613f03565b506040820151816002019080519060200190611850929190613f03565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c0820151816006015560e082015181600701556101008201518160080160006101000a81548160ff02191690831515021790555090505050505050565b6000611994826040518060600160405280602981526020016149be6029913960026130aa9092919063ffffffff16565b9050919050565b606060006119a883612823565b905080915050919050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a4b5780601f10611a2057610100808354040283529160200191611a4b565b820191906000526020600020905b815481529060010190602001808311611a2e57829003601f168201915b5050505050905090565b600b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aeb5780601f10611ac057610100808354040283529160200191611aeb565b820191906000526020600020905b815481529060010190602001808311611ace57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614994602a913960400191505060405180910390fd5b611bc1600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206130c9565b9050919050565b600f818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900460ff1681565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c965780601f10611c6b57610100808354040283529160200191611c96565b820191906000526020600020905b815481529060010190602001808311611c7957829003601f168201915b5050505050905090565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611cda57600080fd5b600c60008154809291906001019190505550611cf7600c54612c3a565b15611d0157600080fd5b60005b82829050811015611d7057600f838383818110611d1d57fe5b9050602002810190611d2f919061464b565b604051611d3d92919061450d565b908152602001604051809103902060009054906101000a900460ff1615611d6357600080fd5b8080600101915050611d04565b50601084604051611d819190614526565b908152602001604051809103902060009054906101000a900460ff1615611da757600080fd5b600e85604051611db79190614526565b908152602001604051809103902060009054906101000a900460ff1615611ddd57600080fd5b611de933600c546130de565b611df5600c54856132d2565b60005b82829050811015611e65576001600f848484818110611e1357fe5b9050602002810190611e25919061464b565b604051611e3392919061450d565b908152602001604051809103902060006101000a81548160ff0219169083151502179055508080600101915050611df8565b506001601085604051611e789190614526565b908152602001604051809103902060006101000a81548160ff0219169083151502179055506001600e86604051611eaf9190614526565b908152602001604051809103902060006101000a81548160ff0219169083151502179055506000604051806101200160405280600c5481526020018781526020018681526020013373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020018581526020016000815260200160011515815250905080600d6000600c548152602001908152602001600020600082015181600001556020820151816001019080519060200190611f9d929190613f03565b506040820151816002019080519060200190611fba929190613f03565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c0820151816006015560e082015181600701556101008201518160080160006101000a81548160ff021916908315150217905550905050505050505050565b6120d8612c57565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612179576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b8060056000612186612c57565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16612233612c57565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156122c057600080fd5b6122c981612c3a565b6122d257600080fd5b60006122dd82611964565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461231757600080fd5b6000600d60008481526020019081526020016000206040518061012001604052908160008201548152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123db5780601f106123b0576101008083540402835291602001916123db565b820191906000526020600020905b8154815290600101906020018083116123be57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561247d5780601f106124525761010080835404028352916020019161247d565b820191906000526020600020905b81548152906001019060200180831161246057829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160068201548152602001600782015481526020016008820160009054906101000a900460ff1615151515815250509050806101000151156125db576000816101000190151590811515815250506125ee565b6001816101000190151590811515815250505b80600d6000858152602001908152602001600020600082015181600001556020820151816001019080519060200190612628929190613f03565b506040820151816002019080519060200190612645929190613f03565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c0820151816006015560e082015181600701556101008201518160080160006101000a81548160ff021916908315150217905550905050505050565b600e818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900460ff1681565b60008061279a83611964565b905080915050919050565b6127b66127b0612c57565b83612d2d565b61280b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180614ada6031913960400191505060405180910390fd5b6128178484848461335c565b50505050565b600c5481565b606061282e82612c3a565b612883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180614a8a602f913960400191505060405180910390fd5b6000600860008481526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561292c5780601f106129015761010080835404028352916020019161292c565b820191906000526020600020905b81548152906001019060200180831161290f57829003601f168201915b50505050509050600061293d6119b3565b9050600081511415612953578192505050612aef565b600082511115612a245780826040516020018083805190602001908083835b602083106129955780518252602082019150602081019050602083039250612972565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b602083106129e657805182526020820191506020810190506020830392506129c3565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405292505050612aef565b80612a2e856133ce565b6040516020018083805190602001908083835b60208310612a645780518252602082019150602081019050602083039250612a41565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310612ab55780518252602082019150602081019050602083039250612a92565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052925050505b919050565b600080612aff610b86565b90508091505090565b600a8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b9e5780601f10612b7357610100808354040283529160200191612b9e565b820191906000526020600020905b815481529060010190602001808311612b8157829003601f168201915b505050505081565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000612c5082600261351590919063ffffffff16565b9050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16612cd283611964565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000612d268260000161352f565b9050919050565b6000612d3882612c3a565b612d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614930602c913960400191505060405180910390fd5b6000612d9883611964565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612e0757508373ffffffffffffffffffffffffffffffffffffffff16612def84610990565b73ffffffffffffffffffffffffffffffffffffffff16145b80612e185750612e178185612ba6565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16612e4182611964565b73ffffffffffffffffffffffffffffffffffffffff1614612ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614a616029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f33576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806148e66024913960400191505060405180910390fd5b612f3e838383613540565b612f49600082612c5f565b612f9a81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061354590919063ffffffff16565b50612fec81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061355f90919063ffffffff16565b50613003818360026135799092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600061307383600001836135ae565b60001c905092915050565b6000806000806130918660000186613631565b915091508160001c8160001c9350935050509250929050565b60006130bd846000018460001b846136ca565b60001c90509392505050565b60006130d7826000016137c0565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613181576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b61318a81612c3a565b156131fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b61320960008383613540565b61325a81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061355f90919063ffffffff16565b50613271818360026135799092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6132db82612c3a565b613330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614a35602c913960400191505060405180910390fd5b80600860008481526020019081526020016000209080519060200190613357929190613f03565b505050565b613367848484612e21565b613373848484846137d1565b6133c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806148b46032913960400191505060405180910390fd5b50505050565b60606000821415613416576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613510565b600082905060005b60008214613440578080600101915050600a828161343857fe5b04915061341e565b60008167ffffffffffffffff8111801561345957600080fd5b506040519080825280601f01601f19166020018201604052801561348c5781602001600182028036833780820191505090505b50905060006001830390508593505b6000841461350857600a84816134ad57fe5b0660300160f81b828280600190039350815181106134c757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a848161350057fe5b04935061349b565b819450505050505b919050565b6000613527836000018360001b6139ea565b905092915050565b600081600001805490509050919050565b505050565b6000613557836000018360001b613a0d565b905092915050565b6000613571836000018360001b613af5565b905092915050565b60006135a5846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b613b65565b90509392505050565b60008183600001805490501161360f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806148926022913960400191505060405180910390fd5b82600001828154811061361e57fe5b9060005260206000200154905092915050565b60008082846000018054905011613693576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806149e76022913960400191505060405180910390fd5b60008460000184815481106136a457fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b60008084600101600085815260200190815260200160002054905060008114158390613791576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561375657808201518184015260208101905061373b565b50505050905090810190601f1680156137835780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508460000160018203815481106137a457fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b60006137f28473ffffffffffffffffffffffffffffffffffffffff16613c41565b6137ff57600190506139e2565b600061396963150b7a0260e01b613814612c57565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561389857808201518184015260208101905061387d565b50505050905090810190601f1680156138c55780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518060600160405280603281526020016148b4603291398773ffffffffffffffffffffffffffffffffffffffff16613c549092919063ffffffff16565b9050600081806020019051602081101561398257600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114613ae95760006001820390506000600186600001805490500390506000866000018281548110613a5857fe5b9060005260206000200154905080876000018481548110613a7557fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480613aad57fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050613aef565b60009150505b92915050565b6000613b018383613c6c565b613b5a578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050613b5f565b600090505b92915050565b6000808460010160008581526020019081526020016000205490506000811415613c0c57846000016040518060400160405280868152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508460000180549050856001016000868152602001908152602001600020819055506001915050613c3a565b82856000016001830381548110613c1f57fe5b90600052602060002090600202016001018190555060009150505b9392505050565b600080823b905060008111915050919050565b6060613c638484600085613c8f565b90509392505050565b600080836001016000848152602001908152602001600020541415905092915050565b606082471015613cea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061490a6026913960400191505060405180910390fd5b613cf385613c41565b613d65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310613db45780518252602082019150602081019050602083039250613d91565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613e16576040519150601f19603f3d011682016040523d82523d6000602084013e613e1b565b606091505b5091509150613e2b828286613e37565b92505050949350505050565b60608315613e4757829050613efc565b600083511115613e5a5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ec1578082015181840152602081019050613ea6565b50505050905090810190601f168015613eee5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282613f395760008555613f80565b82601f10613f5257805160ff1916838001178555613f80565b82800160010185558215613f80579182015b82811115613f7f578251825591602001919060010190613f64565b5b509050613f8d9190613f91565b5090565b5b80821115613faa576000816000905550600101613f92565b5090565b6000613fc1613fbc846146d3565b6146a2565b905082815260208101848484011115613fd957600080fd5b613fe48482856147e0565b509392505050565b6000613fff613ffa84614703565b6146a2565b90508281526020810184848401111561401757600080fd5b6140228482856147e0565b509392505050565b60008135905061403981614835565b92915050565b60008083601f84011261405157600080fd5b8235905067ffffffffffffffff81111561406a57600080fd5b60208301915083602082028301111561408257600080fd5b9250929050565b6000813590506140988161484c565b92915050565b6000813590506140ad81614863565b92915050565b600082601f8301126140c457600080fd5b81356140d4848260208601613fae565b91505092915050565b600082601f8301126140ee57600080fd5b81356140fe848260208601613fec565b91505092915050565b6000813590506141168161487a565b92915050565b60006020828403121561412e57600080fd5b600061413c8482850161402a565b91505092915050565b6000806040838503121561415857600080fd5b60006141668582860161402a565b92505060206141778582860161402a565b9150509250929050565b60008060006060848603121561419657600080fd5b60006141a48682870161402a565b93505060206141b58682870161402a565b92505060406141c686828701614107565b9150509250925092565b600080600080608085870312156141e657600080fd5b60006141f48782880161402a565b94505060206142058782880161402a565b935050604061421687828801614107565b925050606085013567ffffffffffffffff81111561423357600080fd5b61423f878288016140b3565b91505092959194509250565b6000806040838503121561425e57600080fd5b600061426c8582860161402a565b925050602061427d85828601614089565b9150509250929050565b6000806040838503121561429a57600080fd5b60006142a88582860161402a565b92505060206142b985828601614107565b9150509250929050565b6000602082840312156142d557600080fd5b60006142e38482850161409e565b91505092915050565b6000602082840312156142fe57600080fd5b600082013567ffffffffffffffff81111561431857600080fd5b614324848285016140dd565b91505092915050565b60008060008060006080868803121561434557600080fd5b600086013567ffffffffffffffff81111561435f57600080fd5b61436b888289016140dd565b955050602086013567ffffffffffffffff81111561438857600080fd5b614394888289016140dd565b94505060406143a588828901614107565b935050606086013567ffffffffffffffff8111156143c257600080fd5b6143ce8882890161403f565b92509250509295509295909350565b6000602082840312156143ef57600080fd5b60006143fd84828501614107565b91505092915050565b6000806040838503121561441957600080fd5b600061442785828601614107565b925050602061443885828601614107565b9150509250929050565b61444b8161476c565b82525050565b61445a8161475a565b82525050565b6144698161477e565b82525050565b600061447b838561474f565b93506144888385846147e0565b82840190509392505050565b600061449f82614733565b6144a9818561473e565b93506144b98185602086016147ef565b6144c281614824565b840191505092915050565b60006144d882614733565b6144e2818561474f565b93506144f28185602086016147ef565b80840191505092915050565b614507816147d6565b82525050565b600061451a82848661446f565b91508190509392505050565b600061453282846144cd565b915081905092915050565b60006020820190506145526000830184614451565b92915050565b600060208201905061456d6000830184614460565b92915050565b6000602082019050818103600083015261458d8184614494565b905092915050565b60006020820190506145aa60008301846144fe565b92915050565b6000610120820190506145c6600083018c6144fe565b81810360208301526145d8818b614494565b905081810360408301526145ec818a614494565b90506145fb6060830189614442565b6146086080830188614442565b61461560a0830187614442565b61462260c08301866144fe565b61462f60e08301856144fe565b61463d610100830184614460565b9a9950505050505050505050565b6000808335600160200384360303811261466457600080fd5b80840192508235915067ffffffffffffffff82111561468257600080fd5b60208301925060018202360383131561469a57600080fd5b509250929050565b6000604051905081810181811067ffffffffffffffff821117156146c9576146c8614822565b5b8060405250919050565b600067ffffffffffffffff8211156146ee576146ed614822565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff82111561471e5761471d614822565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000614765826147b6565b9050919050565b6000614777826147b6565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561480d5780820151818401526020810190506147f2565b8381111561481c576000848401525b50505050565bfe5b6000601f19601f8301169050919050565b61483e8161475a565b811461484957600080fd5b50565b6148558161477e565b811461486057600080fd5b50565b61486c8161478a565b811461487757600080fd5b50565b614883816147d6565b811461488e57600080fd5b5056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a2646970667358221220e4166d8749bc101db3f77c543efa906c7b027ed6dc4eadbc17e2ac05ede8add364736f6c63430007060033", + "deployedBytecode": "0x6080604052600436106101ee5760003560e01c806367c623cf1161010d578063a32018b9116100a0578063bffec2021161006f578063bffec2021461078c578063c87b56dd146107b7578063cc151f3a146107f4578063e5326ab11461081f578063e985e9c51461084a576101ee565b8063a32018b9146106c0578063a46b1fac146106e9578063a5cd761f14610726578063b88d4fde14610763576101ee565b80638d44807c116100dc5780638d44807c1461060657806395d89b41146106435780639bfc5a591461066e578063a22cb46514610697576101ee565b806367c623cf146105365780636c0360eb146105735780636f9507f91461059e57806370a08231146105c9576101ee565b80632f745c591161018557806344c0d7eb1161015457806344c0d7eb1461044e5780634f6ccce71461049357806362e8e8ac146104d05780636352211e146104f9576101ee565b80632f745c591461036e57806342842e0e146103ab57806343902850146103d457806343d32ae714610411576101ee565b8063142687f3116101c1578063142687f3146102c157806318160ddd146102fe57806323b872dd146103295780632d296bf114610352576101ee565b806301ffc9a7146101f357806306fdde0314610230578063081812fc1461025b578063095ea7b314610298575b600080fd5b3480156101ff57600080fd5b5061021a600480360381019061021591906142c3565b610887565b6040516102279190614558565b60405180910390f35b34801561023c57600080fd5b506102456108ee565b6040516102529190614573565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d91906143dd565b610990565b60405161028f919061453d565b60405180910390f35b3480156102a457600080fd5b506102bf60048036038101906102ba9190614287565b610a2b565b005b3480156102cd57600080fd5b506102e860048036038101906102e391906143dd565b610b6f565b6040516102f59190614558565b60405180910390f35b34801561030a57600080fd5b50610313610b86565b6040516103209190614595565b60405180910390f35b34801561033557600080fd5b50610350600480360381019061034b9190614181565b610b97565b005b61036c600480360381019061036791906143dd565b610c0d565b005b34801561037a57600080fd5b5061039560048036038101906103909190614287565b6111e6565b6040516103a29190614595565b60405180910390f35b3480156103b757600080fd5b506103d260048036038101906103cd9190614181565b611241565b005b3480156103e057600080fd5b506103fb60048036038101906103f6919061411c565b611261565b6040516104089190614595565b60405180910390f35b34801561041d57600080fd5b50610438600480360381019061043391906142ec565b611278565b6040516104459190614558565b60405180910390f35b34801561045a57600080fd5b50610475600480360381019061047091906143dd565b6112ae565b60405161048a999897969594939291906145b0565b60405180910390f35b34801561049f57600080fd5b506104ba60048036038101906104b591906143dd565b611499565b6040516104c79190614595565b60405180910390f35b3480156104dc57600080fd5b506104f760048036038101906104f29190614406565b6114bc565b005b34801561050557600080fd5b50610520600480360381019061051b91906143dd565b611964565b60405161052d919061453d565b60405180910390f35b34801561054257600080fd5b5061055d600480360381019061055891906143dd565b61199b565b60405161056a9190614573565b60405180910390f35b34801561057f57600080fd5b506105886119b3565b6040516105959190614573565b60405180910390f35b3480156105aa57600080fd5b506105b3611a55565b6040516105c09190614573565b60405180910390f35b3480156105d557600080fd5b506105f060048036038101906105eb919061411c565b611af3565b6040516105fd9190614595565b60405180910390f35b34801561061257600080fd5b5061062d600480360381019061062891906142ec565b611bc8565b60405161063a9190614558565b60405180910390f35b34801561064f57600080fd5b50610658611bfe565b6040516106659190614573565b60405180910390f35b34801561067a57600080fd5b506106956004803603810190610690919061432d565b611ca0565b005b3480156106a357600080fd5b506106be60048036038101906106b9919061424b565b6120d0565b005b3480156106cc57600080fd5b506106e760048036038101906106e291906143dd565b612286565b005b3480156106f557600080fd5b50610710600480360381019061070b91906142ec565b612758565b60405161071d9190614558565b60405180910390f35b34801561073257600080fd5b5061074d600480360381019061074891906143dd565b61278e565b60405161075a919061453d565b60405180910390f35b34801561076f57600080fd5b5061078a600480360381019061078591906141d0565b6127a5565b005b34801561079857600080fd5b506107a161281d565b6040516107ae9190614595565b60405180910390f35b3480156107c357600080fd5b506107de60048036038101906107d991906143dd565b612823565b6040516107eb9190614573565b60405180910390f35b34801561080057600080fd5b50610809612af4565b6040516108169190614595565b60405180910390f35b34801561082b57600080fd5b50610834612b08565b6040516108419190614573565b60405180910390f35b34801561085657600080fd5b50610871600480360381019061086c9190614145565b612ba6565b60405161087e9190614558565b60405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109865780601f1061095b57610100808354040283529160200191610986565b820191906000526020600020905b81548152906001019060200180831161096957829003601f168201915b5050505050905090565b600061099b82612c3a565b6109f0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614a09602c913960400191505060405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a3682611964565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610abd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180614ab96021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610adc612c57565b73ffffffffffffffffffffffffffffffffffffffff161480610b0b5750610b0a81610b05612c57565b612ba6565b5b610b60576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018061495c6038913960400191505060405180910390fd5b610b6a8383612c5f565b505050565b600080610b7b83612c3a565b905080915050919050565b6000610b926002612d18565b905090565b610ba8610ba2612c57565b82612d2d565b610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180614ada6031913960400191505060405180910390fd5b610c08838383612e21565b505050565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610c4757600080fd5b610c5081612c3a565b610c5957600080fd5b6000610c6482611964565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ca057600080fd5b3373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610cd957600080fd5b6000600d60008481526020019081526020016000206040518061012001604052908160008201548152602001600182018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d9d5780601f10610d7257610100808354040283529160200191610d9d565b820191906000526020600020905b815481529060010190602001808311610d8057829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610e3f5780601f10610e1457610100808354040283529160200191610e3f565b820191906000526020600020905b815481529060010190602001808311610e2257829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160068201548152602001600782015481526020016008820160009054906101000a900460ff16151515158152505090508060c00151341015610f8c57600080fd5b806101000151610f9b57600080fd5b610fa6823385612e21565b6000816080015190508073ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610ff5573d6000803e3d6000fd5b5081608001518260a0019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505033826080019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060018260e001818151019150818152505081600d60008681526020019081526020016000206000820151816000015560208201518160010190805190602001906110b5929190613f03565b5060408201518160020190805190602001906110d2929190613f03565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c0820151816006015560e082015181600701556101008201518160080160006101000a81548160ff02191690831515021790555090505050505050565b600061123982600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061306490919063ffffffff16565b905092915050565b61125c838383604051806020016040528060008152506127a5565b505050565b60008061126d83611af3565b905080915050919050565b6010818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900460ff1681565b600d602052806000526040600020600091509050806000015490806001018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113605780601f1061133557610100808354040283529160200191611360565b820191906000526020600020905b81548152906001019060200180831161134357829003601f168201915b505050505090806002018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113fe5780601f106113d3576101008083540402835291602001916113fe565b820191906000526020600020905b8154815290600101906020018083116113e157829003601f168201915b5050505050908060030160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060050160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060060154908060070154908060080160009054906101000a900460ff16905089565b6000806114b083600261307e90919063ffffffff16565b50905080915050919050565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156114f657600080fd5b6114ff82612c3a565b61150857600080fd5b600061151383611964565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461154d57600080fd5b6000600d60008581526020019081526020016000206040518061012001604052908160008201548152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116115780601f106115e657610100808354040283529160200191611611565b820191906000526020600020905b8154815290600101906020018083116115f457829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156116b35780601f10611688576101008083540402835291602001916116b3565b820191906000526020600020905b81548152906001019060200180831161169657829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160068201548152602001600782015481526020016008820160009054906101000a900460ff1615151515815250509050828160c001818152505080600d6000868152602001908152602001600020600082015181600001556020820151816001019080519060200190611833929190613f03565b506040820151816002019080519060200190611850929190613f03565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c0820151816006015560e082015181600701556101008201518160080160006101000a81548160ff02191690831515021790555090505050505050565b6000611994826040518060600160405280602981526020016149be6029913960026130aa9092919063ffffffff16565b9050919050565b606060006119a883612823565b905080915050919050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a4b5780601f10611a2057610100808354040283529160200191611a4b565b820191906000526020600020905b815481529060010190602001808311611a2e57829003601f168201915b5050505050905090565b600b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611aeb5780601f10611ac057610100808354040283529160200191611aeb565b820191906000526020600020905b815481529060010190602001808311611ace57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b7a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180614994602a913960400191505060405180910390fd5b611bc1600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206130c9565b9050919050565b600f818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900460ff1681565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611c965780601f10611c6b57610100808354040283529160200191611c96565b820191906000526020600020905b815481529060010190602001808311611c7957829003601f168201915b5050505050905090565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415611cda57600080fd5b600c60008154809291906001019190505550611cf7600c54612c3a565b15611d0157600080fd5b60005b82829050811015611d7057600f838383818110611d1d57fe5b9050602002810190611d2f919061464b565b604051611d3d92919061450d565b908152602001604051809103902060009054906101000a900460ff1615611d6357600080fd5b8080600101915050611d04565b50601084604051611d819190614526565b908152602001604051809103902060009054906101000a900460ff1615611da757600080fd5b600e85604051611db79190614526565b908152602001604051809103902060009054906101000a900460ff1615611ddd57600080fd5b611de933600c546130de565b611df5600c54856132d2565b60005b82829050811015611e65576001600f848484818110611e1357fe5b9050602002810190611e25919061464b565b604051611e3392919061450d565b908152602001604051809103902060006101000a81548160ff0219169083151502179055508080600101915050611df8565b506001601085604051611e789190614526565b908152602001604051809103902060006101000a81548160ff0219169083151502179055506001600e86604051611eaf9190614526565b908152602001604051809103902060006101000a81548160ff0219169083151502179055506000604051806101200160405280600c5481526020018781526020018681526020013373ffffffffffffffffffffffffffffffffffffffff1681526020013373ffffffffffffffffffffffffffffffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff1681526020018581526020016000815260200160011515815250905080600d6000600c548152602001908152602001600020600082015181600001556020820151816001019080519060200190611f9d929190613f03565b506040820151816002019080519060200190611fba929190613f03565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c0820151816006015560e082015181600701556101008201518160080160006101000a81548160ff021916908315150217905550905050505050505050565b6120d8612c57565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612179576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b8060056000612186612c57565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16612233612c57565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156122c057600080fd5b6122c981612c3a565b6122d257600080fd5b60006122dd82611964565b90503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461231757600080fd5b6000600d60008481526020019081526020016000206040518061012001604052908160008201548152602001600182018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156123db5780601f106123b0576101008083540402835291602001916123db565b820191906000526020600020905b8154815290600101906020018083116123be57829003601f168201915b50505050508152602001600282018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561247d5780601f106124525761010080835404028352916020019161247d565b820191906000526020600020905b81548152906001019060200180831161246057829003601f168201915b505050505081526020016003820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016005820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160068201548152602001600782015481526020016008820160009054906101000a900460ff1615151515815250509050806101000151156125db576000816101000190151590811515815250506125ee565b6001816101000190151590811515815250505b80600d6000858152602001908152602001600020600082015181600001556020820151816001019080519060200190612628929190613f03565b506040820151816002019080519060200190612645929190613f03565b5060608201518160030160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a08201518160050160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c0820151816006015560e082015181600701556101008201518160080160006101000a81548160ff021916908315150217905550905050505050565b600e818051602081018201805184825260208301602085012081835280955050505050506000915054906101000a900460ff1681565b60008061279a83611964565b905080915050919050565b6127b66127b0612c57565b83612d2d565b61280b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526031815260200180614ada6031913960400191505060405180910390fd5b6128178484848461335c565b50505050565b600c5481565b606061282e82612c3a565b612883576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f815260200180614a8a602f913960400191505060405180910390fd5b6000600860008481526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561292c5780601f106129015761010080835404028352916020019161292c565b820191906000526020600020905b81548152906001019060200180831161290f57829003601f168201915b50505050509050600061293d6119b3565b9050600081511415612953578192505050612aef565b600082511115612a245780826040516020018083805190602001908083835b602083106129955780518252602082019150602081019050602083039250612972565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b602083106129e657805182526020820191506020810190506020830392506129c3565b6001836020036101000a0380198251168184511680821785525050505050509050019250505060405160208183030381529060405292505050612aef565b80612a2e856133ce565b6040516020018083805190602001908083835b60208310612a645780518252602082019150602081019050602083039250612a41565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310612ab55780518252602082019150602081019050602083039250612a92565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052925050505b919050565b600080612aff610b86565b90508091505090565b600a8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612b9e5780601f10612b7357610100808354040283529160200191612b9e565b820191906000526020600020905b815481529060010190602001808311612b8157829003601f168201915b505050505081565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000612c5082600261351590919063ffffffff16565b9050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16612cd283611964565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000612d268260000161352f565b9050919050565b6000612d3882612c3a565b612d8d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614930602c913960400191505060405180910390fd5b6000612d9883611964565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480612e0757508373ffffffffffffffffffffffffffffffffffffffff16612def84610990565b73ffffffffffffffffffffffffffffffffffffffff16145b80612e185750612e178185612ba6565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16612e4182611964565b73ffffffffffffffffffffffffffffffffffffffff1614612ead576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180614a616029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612f33576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806148e66024913960400191505060405180910390fd5b612f3e838383613540565b612f49600082612c5f565b612f9a81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061354590919063ffffffff16565b50612fec81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061355f90919063ffffffff16565b50613003818360026135799092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600061307383600001836135ae565b60001c905092915050565b6000806000806130918660000186613631565b915091508160001c8160001c9350935050509250929050565b60006130bd846000018460001b846136ca565b60001c90509392505050565b60006130d7826000016137c0565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613181576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b61318a81612c3a565b156131fd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b61320960008383613540565b61325a81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061355f90919063ffffffff16565b50613271818360026135799092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b6132db82612c3a565b613330576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180614a35602c913960400191505060405180910390fd5b80600860008481526020019081526020016000209080519060200190613357929190613f03565b505050565b613367848484612e21565b613373848484846137d1565b6133c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806148b46032913960400191505060405180910390fd5b50505050565b60606000821415613416576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050613510565b600082905060005b60008214613440578080600101915050600a828161343857fe5b04915061341e565b60008167ffffffffffffffff8111801561345957600080fd5b506040519080825280601f01601f19166020018201604052801561348c5781602001600182028036833780820191505090505b50905060006001830390508593505b6000841461350857600a84816134ad57fe5b0660300160f81b828280600190039350815181106134c757fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a848161350057fe5b04935061349b565b819450505050505b919050565b6000613527836000018360001b6139ea565b905092915050565b600081600001805490509050919050565b505050565b6000613557836000018360001b613a0d565b905092915050565b6000613571836000018360001b613af5565b905092915050565b60006135a5846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b613b65565b90509392505050565b60008183600001805490501161360f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806148926022913960400191505060405180910390fd5b82600001828154811061361e57fe5b9060005260206000200154905092915050565b60008082846000018054905011613693576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806149e76022913960400191505060405180910390fd5b60008460000184815481106136a457fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b60008084600101600085815260200190815260200160002054905060008114158390613791576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561375657808201518184015260208101905061373b565b50505050905090810190601f1680156137835780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b508460000160018203815481106137a457fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b60006137f28473ffffffffffffffffffffffffffffffffffffffff16613c41565b6137ff57600190506139e2565b600061396963150b7a0260e01b613814612c57565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561389857808201518184015260208101905061387d565b50505050905090810190601f1680156138c55780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518060600160405280603281526020016148b4603291398773ffffffffffffffffffffffffffffffffffffffff16613c549092919063ffffffff16565b9050600081806020019051602081101561398257600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600080836001016000848152602001908152602001600020541415905092915050565b60008083600101600084815260200190815260200160002054905060008114613ae95760006001820390506000600186600001805490500390506000866000018281548110613a5857fe5b9060005260206000200154905080876000018481548110613a7557fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480613aad57fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050613aef565b60009150505b92915050565b6000613b018383613c6c565b613b5a578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050613b5f565b600090505b92915050565b6000808460010160008581526020019081526020016000205490506000811415613c0c57846000016040518060400160405280868152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508460000180549050856001016000868152602001908152602001600020819055506001915050613c3a565b82856000016001830381548110613c1f57fe5b90600052602060002090600202016001018190555060009150505b9392505050565b600080823b905060008111915050919050565b6060613c638484600085613c8f565b90509392505050565b600080836001016000848152602001908152602001600020541415905092915050565b606082471015613cea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061490a6026913960400191505060405180910390fd5b613cf385613c41565b613d65576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310613db45780518252602082019150602081019050602083039250613d91565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114613e16576040519150601f19603f3d011682016040523d82523d6000602084013e613e1b565b606091505b5091509150613e2b828286613e37565b92505050949350505050565b60608315613e4757829050613efc565b600083511115613e5a5782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613ec1578082015181840152602081019050613ea6565b50505050905090810190601f168015613eee5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282613f395760008555613f80565b82601f10613f5257805160ff1916838001178555613f80565b82800160010185558215613f80579182015b82811115613f7f578251825591602001919060010190613f64565b5b509050613f8d9190613f91565b5090565b5b80821115613faa576000816000905550600101613f92565b5090565b6000613fc1613fbc846146d3565b6146a2565b905082815260208101848484011115613fd957600080fd5b613fe48482856147e0565b509392505050565b6000613fff613ffa84614703565b6146a2565b90508281526020810184848401111561401757600080fd5b6140228482856147e0565b509392505050565b60008135905061403981614835565b92915050565b60008083601f84011261405157600080fd5b8235905067ffffffffffffffff81111561406a57600080fd5b60208301915083602082028301111561408257600080fd5b9250929050565b6000813590506140988161484c565b92915050565b6000813590506140ad81614863565b92915050565b600082601f8301126140c457600080fd5b81356140d4848260208601613fae565b91505092915050565b600082601f8301126140ee57600080fd5b81356140fe848260208601613fec565b91505092915050565b6000813590506141168161487a565b92915050565b60006020828403121561412e57600080fd5b600061413c8482850161402a565b91505092915050565b6000806040838503121561415857600080fd5b60006141668582860161402a565b92505060206141778582860161402a565b9150509250929050565b60008060006060848603121561419657600080fd5b60006141a48682870161402a565b93505060206141b58682870161402a565b92505060406141c686828701614107565b9150509250925092565b600080600080608085870312156141e657600080fd5b60006141f48782880161402a565b94505060206142058782880161402a565b935050604061421687828801614107565b925050606085013567ffffffffffffffff81111561423357600080fd5b61423f878288016140b3565b91505092959194509250565b6000806040838503121561425e57600080fd5b600061426c8582860161402a565b925050602061427d85828601614089565b9150509250929050565b6000806040838503121561429a57600080fd5b60006142a88582860161402a565b92505060206142b985828601614107565b9150509250929050565b6000602082840312156142d557600080fd5b60006142e38482850161409e565b91505092915050565b6000602082840312156142fe57600080fd5b600082013567ffffffffffffffff81111561431857600080fd5b614324848285016140dd565b91505092915050565b60008060008060006080868803121561434557600080fd5b600086013567ffffffffffffffff81111561435f57600080fd5b61436b888289016140dd565b955050602086013567ffffffffffffffff81111561438857600080fd5b614394888289016140dd565b94505060406143a588828901614107565b935050606086013567ffffffffffffffff8111156143c257600080fd5b6143ce8882890161403f565b92509250509295509295909350565b6000602082840312156143ef57600080fd5b60006143fd84828501614107565b91505092915050565b6000806040838503121561441957600080fd5b600061442785828601614107565b925050602061443885828601614107565b9150509250929050565b61444b8161476c565b82525050565b61445a8161475a565b82525050565b6144698161477e565b82525050565b600061447b838561474f565b93506144888385846147e0565b82840190509392505050565b600061449f82614733565b6144a9818561473e565b93506144b98185602086016147ef565b6144c281614824565b840191505092915050565b60006144d882614733565b6144e2818561474f565b93506144f28185602086016147ef565b80840191505092915050565b614507816147d6565b82525050565b600061451a82848661446f565b91508190509392505050565b600061453282846144cd565b915081905092915050565b60006020820190506145526000830184614451565b92915050565b600060208201905061456d6000830184614460565b92915050565b6000602082019050818103600083015261458d8184614494565b905092915050565b60006020820190506145aa60008301846144fe565b92915050565b6000610120820190506145c6600083018c6144fe565b81810360208301526145d8818b614494565b905081810360408301526145ec818a614494565b90506145fb6060830189614442565b6146086080830188614442565b61461560a0830187614442565b61462260c08301866144fe565b61462f60e08301856144fe565b61463d610100830184614460565b9a9950505050505050505050565b6000808335600160200384360303811261466457600080fd5b80840192508235915067ffffffffffffffff82111561468257600080fd5b60208301925060018202360383131561469a57600080fd5b509250929050565b6000604051905081810181811067ffffffffffffffff821117156146c9576146c8614822565b5b8060405250919050565b600067ffffffffffffffff8211156146ee576146ed614822565b5b601f19601f8301169050602081019050919050565b600067ffffffffffffffff82111561471e5761471d614822565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000614765826147b6565b9050919050565b6000614777826147b6565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b8381101561480d5780820151818401526020810190506147f2565b8381111561481c576000848401525b50505050565bfe5b6000601f19601f8301169050919050565b61483e8161475a565b811461484957600080fd5b50565b6148558161477e565b811461486057600080fd5b50565b61486c8161478a565b811461487757600080fd5b50565b614883816147d6565b811461488e57600080fd5b5056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a2646970667358221220e4166d8749bc101db3f77c543efa906c7b027ed6dc4eadbc17e2ac05ede8add364736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [ + { + "ast": { + "nodeType": "YulBlock", + "src": "0:15871:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "90:259:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "100:73:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "165:6:3" + } + ], + "functionName": { + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "124:40:3" + }, + "nodeType": "YulFunctionCall", + "src": "124:48:3" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "109:14:3" + }, + "nodeType": "YulFunctionCall", + "src": "109:64:3" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "100:5:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "189:5:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "196:6:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "182:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "182:21:3" + }, + "nodeType": "YulExpressionStatement", + "src": "182:21:3" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "212:27:3", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "227:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "234:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "223:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "223:16:3" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "216:3:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "277:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "286:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "289:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "279:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "279:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "279:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "258:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "263:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "254:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "254:16:3" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "272:3:3" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "251:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "251:25:3" + }, + "nodeType": "YulIf", + "src": "248:2:3" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "326:3:3" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "331:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "336:6:3" + } + ], + "functionName": { + "name": "copy_calldata_to_memory", + "nodeType": "YulIdentifier", + "src": "302:23:3" + }, + "nodeType": "YulFunctionCall", + "src": "302:41:3" + }, + "nodeType": "YulExpressionStatement", + "src": "302:41:3" + } + ] + }, + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "63:3:3", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "68:6:3", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "76:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "84:5:3", + "type": "" + } + ], + "src": "7:342:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "439:260:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "449:74:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "515:6:3" + } + ], + "functionName": { + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "473:41:3" + }, + "nodeType": "YulFunctionCall", + "src": "473:49:3" + } + ], + "functionName": { + "name": "allocateMemory", + "nodeType": "YulIdentifier", + "src": "458:14:3" + }, + "nodeType": "YulFunctionCall", + "src": "458:65:3" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "449:5:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "539:5:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "546:6:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "532:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "532:21:3" + }, + "nodeType": "YulExpressionStatement", + "src": "532:21:3" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "562:27:3", + "value": { + "arguments": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "577:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "584:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "573:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "573:16:3" + }, + "variables": [ + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "566:3:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "627:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "636:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "639:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "629:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "629:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "629:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "608:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "613:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "604:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "604:16:3" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "622:3:3" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "601:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "601:25:3" + }, + "nodeType": "YulIf", + "src": "598:2:3" + }, + { + "expression": { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "676:3:3" + }, + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "681:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "686:6:3" + } + ], + "functionName": { + "name": "copy_calldata_to_memory", + "nodeType": "YulIdentifier", + "src": "652:23:3" + }, + "nodeType": "YulFunctionCall", + "src": "652:41:3" + }, + "nodeType": "YulExpressionStatement", + "src": "652:41:3" + } + ] + }, + "name": "abi_decode_available_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "412:3:3", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "417:6:3", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "425:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "433:5:3", + "type": "" + } + ], + "src": "355:344:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "757:87:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "767:29:3", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "789:6:3" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "776:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "776:20:3" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "767:5:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "832:5:3" + } + ], + "functionName": { + "name": "validator_revert_t_address", + "nodeType": "YulIdentifier", + "src": "805:26:3" + }, + "nodeType": "YulFunctionCall", + "src": "805:33:3" + }, + "nodeType": "YulExpressionStatement", + "src": "805:33:3" + } + ] + }, + "name": "abi_decode_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "735:6:3", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "743:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "751:5:3", + "type": "" + } + ], + "src": "705:139:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "968:277:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1017:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1026:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1029:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1019:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "1019:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1019:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "996:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1004:4:3", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "992:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "992:17:3" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1011:3:3" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "988:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "988:27:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "981:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "981:35:3" + }, + "nodeType": "YulIf", + "src": "978:2:3" + }, + { + "nodeType": "YulAssignment", + "src": "1042:30:3", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1065:6:3" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1052:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "1052:20:3" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1042:6:3" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1115:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1124:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1127:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1117:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "1117:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1117:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1087:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1095:18:3", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1084:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "1084:30:3" + }, + "nodeType": "YulIf", + "src": "1081:2:3" + }, + { + "nodeType": "YulAssignment", + "src": "1140:29:3", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1156:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1164:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1152:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "1152:17:3" + }, + "variableNames": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "1140:8:3" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1223:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1232:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1235:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1225:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "1225:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1225:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "arrayPos", + "nodeType": "YulIdentifier", + "src": "1188:8:3" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1202:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1210:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "1198:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "1198:17:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1184:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "1184:32:3" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1218:3:3" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "1181:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "1181:41:3" + }, + "nodeType": "YulIf", + "src": "1178:2:3" + } + ] + }, + "name": "abi_decode_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "935:6:3", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "943:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "arrayPos", + "nodeType": "YulTypedName", + "src": "951:8:3", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "961:6:3", + "type": "" + } + ], + "src": "866:379:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1300:84:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1310:29:3", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1332:6:3" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1319:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "1319:20:3" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1310:5:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1372:5:3" + } + ], + "functionName": { + "name": "validator_revert_t_bool", + "nodeType": "YulIdentifier", + "src": "1348:23:3" + }, + "nodeType": "YulFunctionCall", + "src": "1348:30:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1348:30:3" + } + ] + }, + "name": "abi_decode_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1278:6:3", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1286:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1294:5:3", + "type": "" + } + ], + "src": "1251:133:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1441:86:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "1451:29:3", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1473:6:3" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1460:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "1460:20:3" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1451:5:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "1515:5:3" + } + ], + "functionName": { + "name": "validator_revert_t_bytes4", + "nodeType": "YulIdentifier", + "src": "1489:25:3" + }, + "nodeType": "YulFunctionCall", + "src": "1489:32:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1489:32:3" + } + ] + }, + "name": "abi_decode_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1419:6:3", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1427:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "1435:5:3", + "type": "" + } + ], + "src": "1390:137:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1607:210:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1656:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1665:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1668:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1658:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "1658:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1658:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1635:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1643:4:3", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1631:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "1631:17:3" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1650:3:3" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1627:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "1627:27:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1620:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "1620:35:3" + }, + "nodeType": "YulIf", + "src": "1617:2:3" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1681:34:3", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1708:6:3" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1695:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "1695:20:3" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1685:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "1724:87:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1784:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1792:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1780:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "1780:17:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "1799:6:3" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1807:3:3" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "1733:46:3" + }, + "nodeType": "YulFunctionCall", + "src": "1733:78:3" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "1724:5:3" + } + ] + } + ] + }, + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1585:6:3", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1593:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "1601:5:3", + "type": "" + } + ], + "src": "1546:271:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "1899:211:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "1948:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1957:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1960:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "1950:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "1950:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "1950:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "1927:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "1935:4:3", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "1923:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "1923:17:3" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "1942:3:3" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "1919:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "1919:27:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "1912:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "1912:35:3" + }, + "nodeType": "YulIf", + "src": "1909:2:3" + }, + { + "nodeType": "YulVariableDeclaration", + "src": "1973:34:3", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2000:6:3" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "1987:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "1987:20:3" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "1977:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2016:88:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2077:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2085:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2073:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2073:17:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "2092:6:3" + }, + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "2100:3:3" + } + ], + "functionName": { + "name": "abi_decode_available_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "2025:47:3" + }, + "nodeType": "YulFunctionCall", + "src": "2025:79:3" + }, + "variableNames": [ + { + "name": "array", + "nodeType": "YulIdentifier", + "src": "2016:5:3" + } + ] + } + ] + }, + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "1877:6:3", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "1885:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "array", + "nodeType": "YulTypedName", + "src": "1893:5:3", + "type": "" + } + ], + "src": "1837:273:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2168:87:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "2178:29:3", + "value": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2200:6:3" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "2187:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "2187:20:3" + }, + "variableNames": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2178:5:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "2243:5:3" + } + ], + "functionName": { + "name": "validator_revert_t_uint256", + "nodeType": "YulIdentifier", + "src": "2216:26:3" + }, + "nodeType": "YulFunctionCall", + "src": "2216:33:3" + }, + "nodeType": "YulExpressionStatement", + "src": "2216:33:3" + } + ] + }, + "name": "abi_decode_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2146:6:3", + "type": "" + }, + { + "name": "end", + "nodeType": "YulTypedName", + "src": "2154:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "2162:5:3", + "type": "" + } + ], + "src": "2116:139:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2327:196:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2373:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2382:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2385:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2375:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "2375:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "2375:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2348:7:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2357:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2344:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2344:23:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2369:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2340:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2340:32:3" + }, + "nodeType": "YulIf", + "src": "2337:2:3" + }, + { + "nodeType": "YulBlock", + "src": "2399:117:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2414:15:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2428:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2418:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2443:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2478:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2489:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2474:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2474:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2498:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2453:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "2453:53:3" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2443:6:3" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2297:9:3", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2308:7:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2320:6:3", + "type": "" + } + ], + "src": "2261:262:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "2612:324:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "2658:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2667:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2670:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "2660:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "2660:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "2660:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2633:7:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2642:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "2629:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2629:23:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2654:2:3", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "2625:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2625:32:3" + }, + "nodeType": "YulIf", + "src": "2622:2:3" + }, + { + "nodeType": "YulBlock", + "src": "2684:117:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2699:15:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2713:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2703:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2728:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2763:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2774:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2759:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2759:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2783:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2738:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "2738:53:3" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "2728:6:3" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "2811:118:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "2826:16:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "2840:2:3", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "2830:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "2856:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "2891:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "2902:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "2887:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "2887:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "2911:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "2866:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "2866:53:3" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "2856:6:3" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2574:9:3", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "2585:7:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "2597:6:3", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "2605:6:3", + "type": "" + } + ], + "src": "2529:407:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3042:452:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3088:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3097:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3100:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3090:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "3090:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "3090:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3063:7:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3072:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3059:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3059:23:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3084:2:3", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3055:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3055:32:3" + }, + "nodeType": "YulIf", + "src": "3052:2:3" + }, + { + "nodeType": "YulBlock", + "src": "3114:117:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3129:15:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3143:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3133:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3158:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3193:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3204:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3189:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3189:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3213:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3168:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "3168:53:3" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3158:6:3" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3241:118:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3256:16:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3270:2:3", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3260:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3286:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3321:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3332:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3317:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3317:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3341:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3296:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "3296:53:3" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3286:6:3" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3369:118:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3384:16:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3398:2:3", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3388:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3414:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3449:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3460:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3445:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3445:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3469:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "3424:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "3424:53:3" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3414:6:3" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "2996:9:3", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3007:7:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3019:6:3", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3027:6:3", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3035:6:3", + "type": "" + } + ], + "src": "2942:552:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "3626:683:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "3673:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3682:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3685:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "3675:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "3675:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "3675:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3647:7:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3656:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "3643:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3643:23:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3668:3:3", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "3639:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3639:33:3" + }, + "nodeType": "YulIf", + "src": "3636:2:3" + }, + { + "nodeType": "YulBlock", + "src": "3699:117:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3714:15:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3728:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3718:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3743:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3778:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3789:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3774:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3774:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3798:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3753:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "3753:53:3" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "3743:6:3" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3826:118:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3841:16:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3855:2:3", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3845:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3871:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "3906:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "3917:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "3902:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "3902:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "3926:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "3881:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "3881:53:3" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "3871:6:3" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "3954:118:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "3969:16:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "3983:2:3", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "3973:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "3999:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4034:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4045:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4030:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4030:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4054:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "4009:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "4009:53:3" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "3999:6:3" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4082:220:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4097:46:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4128:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4139:2:3", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4124:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4124:18:3" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "4111:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "4111:32:3" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4101:6:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4190:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4199:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4202:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4192:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "4192:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "4192:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4162:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4170:18:3", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "4159:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "4159:30:3" + }, + "nodeType": "YulIf", + "src": "4156:2:3" + }, + { + "nodeType": "YulAssignment", + "src": "4220:72:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4264:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4275:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4260:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4260:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4284:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_bytes_memory_ptr", + "nodeType": "YulIdentifier", + "src": "4230:29:3" + }, + "nodeType": "YulFunctionCall", + "src": "4230:62:3" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "4220:6:3" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "3572:9:3", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "3583:7:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "3595:6:3", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "3603:6:3", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "3611:6:3", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "3619:6:3", + "type": "" + } + ], + "src": "3500:809:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4395:321:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4441:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4450:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4453:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4443:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "4443:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "4443:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4416:7:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4425:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4412:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4412:23:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4437:2:3", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4408:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4408:32:3" + }, + "nodeType": "YulIf", + "src": "4405:2:3" + }, + { + "nodeType": "YulBlock", + "src": "4467:117:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4482:15:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4496:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4486:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4511:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4546:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4557:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4542:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4542:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4566:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4521:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "4521:53:3" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4511:6:3" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "4594:115:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4609:16:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4623:2:3", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4613:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4639:60:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4671:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4682:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4667:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4667:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4691:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_bool", + "nodeType": "YulIdentifier", + "src": "4649:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "4649:50:3" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "4639:6:3" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4357:9:3", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4368:7:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4380:6:3", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "4388:6:3", + "type": "" + } + ], + "src": "4315:401:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "4805:324:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "4851:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4860:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4863:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "4853:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "4853:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "4853:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4826:7:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4835:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "4822:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4822:23:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4847:2:3", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "4818:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4818:32:3" + }, + "nodeType": "YulIf", + "src": "4815:2:3" + }, + { + "nodeType": "YulBlock", + "src": "4877:117:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "4892:15:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "4906:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "4896:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "4921:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "4956:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "4967:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "4952:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "4952:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "4976:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_address", + "nodeType": "YulIdentifier", + "src": "4931:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "4931:53:3" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "4921:6:3" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "5004:118:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5019:16:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5033:2:3", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5023:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5049:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5084:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5095:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5080:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5080:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5104:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "5059:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "5059:53:3" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "5049:6:3" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_addresst_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "4767:9:3", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "4778:7:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "4790:6:3", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "4798:6:3", + "type": "" + } + ], + "src": "4722:407:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5200:195:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5246:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5255:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5258:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5248:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "5248:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "5248:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5221:7:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5230:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5217:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5217:23:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5242:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5213:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5213:32:3" + }, + "nodeType": "YulIf", + "src": "5210:2:3" + }, + { + "nodeType": "YulBlock", + "src": "5272:116:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5287:15:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5301:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5291:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "5316:62:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5350:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5361:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5346:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5346:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5370:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_bytes4", + "nodeType": "YulIdentifier", + "src": "5326:19:3" + }, + "nodeType": "YulFunctionCall", + "src": "5326:52:3" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5316:6:3" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5170:9:3", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5181:7:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5193:6:3", + "type": "" + } + ], + "src": "5135:260:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5477:299:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "5523:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5532:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5535:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5525:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "5525:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "5525:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5498:7:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5507:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5494:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5494:23:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5519:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5490:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5490:32:3" + }, + "nodeType": "YulIf", + "src": "5487:2:3" + }, + { + "nodeType": "YulBlock", + "src": "5549:220:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "5564:45:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5595:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5606:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5591:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5591:17:3" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "5578:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "5578:31:3" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "5568:6:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5656:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5665:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5668:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "5658:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "5658:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "5658:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5628:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "5636:18:3", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "5625:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "5625:30:3" + }, + "nodeType": "YulIf", + "src": "5622:2:3" + }, + { + "nodeType": "YulAssignment", + "src": "5686:73:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5731:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "5742:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "5727:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5727:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5751:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "5696:30:3" + }, + "nodeType": "YulFunctionCall", + "src": "5696:63:3" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "5686:6:3" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5447:9:3", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5458:7:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5470:6:3", + "type": "" + } + ], + "src": "5401:375:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "5966:927:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "6013:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6022:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6025:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6015:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "6015:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "6015:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "5987:7:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "5996:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "5983:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5983:23:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6008:3:3", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "5979:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "5979:33:3" + }, + "nodeType": "YulIf", + "src": "5976:2:3" + }, + { + "nodeType": "YulBlock", + "src": "6039:220:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6054:45:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6085:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6096:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6081:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "6081:17:3" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "6068:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "6068:31:3" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6058:6:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6146:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6155:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6158:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6148:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "6148:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "6148:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6118:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6126:18:3", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6115:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "6115:30:3" + }, + "nodeType": "YulIf", + "src": "6112:2:3" + }, + { + "nodeType": "YulAssignment", + "src": "6176:73:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6221:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6232:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6217:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "6217:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6241:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "6186:30:3" + }, + "nodeType": "YulFunctionCall", + "src": "6186:63:3" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "6176:6:3" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6269:221:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6284:46:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6315:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6326:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6311:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "6311:18:3" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "6298:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "6298:32:3" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6288:6:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6377:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6386:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6389:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6379:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "6379:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "6379:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6349:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6357:18:3", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6346:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "6346:30:3" + }, + "nodeType": "YulIf", + "src": "6343:2:3" + }, + { + "nodeType": "YulAssignment", + "src": "6407:73:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6452:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6463:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6448:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "6448:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6472:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "6417:30:3" + }, + "nodeType": "YulFunctionCall", + "src": "6417:63:3" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "6407:6:3" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6500:118:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6515:16:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6529:2:3", + "type": "", + "value": "64" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6519:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "6545:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6580:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6591:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6576:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "6576:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6600:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "6555:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "6555:53:3" + }, + "variableNames": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "6545:6:3" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "6628:258:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "6643:46:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6674:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6685:2:3", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6670:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "6670:18:3" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "6657:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "6657:32:3" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "6647:6:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6736:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6745:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6748:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "6738:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "6738:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "6738:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6708:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "6716:18:3", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "6705:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "6705:30:3" + }, + "nodeType": "YulIf", + "src": "6702:2:3" + }, + { + "nodeType": "YulAssignment", + "src": "6766:110:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6848:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "6859:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "6844:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "6844:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6868:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "nodeType": "YulIdentifier", + "src": "6784:59:3" + }, + "nodeType": "YulFunctionCall", + "src": "6784:92:3" + }, + "variableNames": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "6766:6:3" + }, + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "6774:6:3" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint256t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "5904:9:3", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "5915:7:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "5927:6:3", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "5935:6:3", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "5943:6:3", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "5951:6:3", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "5959:6:3", + "type": "" + } + ], + "src": "5782:1111:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "6965:196:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7011:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7020:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7023:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7013:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "7013:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "7013:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "6986:7:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "6995:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "6982:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "6982:23:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7007:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "6978:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "6978:32:3" + }, + "nodeType": "YulIf", + "src": "6975:2:3" + }, + { + "nodeType": "YulBlock", + "src": "7037:117:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7052:15:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7066:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7056:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7081:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7116:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7127:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7112:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "7112:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7136:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7091:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "7091:53:3" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7081:6:3" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "6935:9:3", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "6946:7:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "6958:6:3", + "type": "" + } + ], + "src": "6899:262:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7250:324:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "7296:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7305:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7308:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "7298:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "7298:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "7298:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7271:7:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7280:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "7267:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "7267:23:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7292:2:3", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "7263:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "7263:32:3" + }, + "nodeType": "YulIf", + "src": "7260:2:3" + }, + { + "nodeType": "YulBlock", + "src": "7322:117:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7337:15:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7351:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7341:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7366:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7401:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7412:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7397:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "7397:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7421:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7376:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "7376:53:3" + }, + "variableNames": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "7366:6:3" + } + ] + } + ] + }, + { + "nodeType": "YulBlock", + "src": "7449:118:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "7464:16:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "7478:2:3", + "type": "", + "value": "32" + }, + "variables": [ + { + "name": "offset", + "nodeType": "YulTypedName", + "src": "7468:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "7494:63:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "7529:9:3" + }, + { + "name": "offset", + "nodeType": "YulIdentifier", + "src": "7540:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "7525:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "7525:22:3" + }, + { + "name": "dataEnd", + "nodeType": "YulIdentifier", + "src": "7549:7:3" + } + ], + "functionName": { + "name": "abi_decode_t_uint256", + "nodeType": "YulIdentifier", + "src": "7504:20:3" + }, + "nodeType": "YulFunctionCall", + "src": "7504:53:3" + }, + "variableNames": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "7494:6:3" + } + ] + } + ] + } + ] + }, + "name": "abi_decode_tuple_t_uint256t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "7212:9:3", + "type": "" + }, + { + "name": "dataEnd", + "nodeType": "YulTypedName", + "src": "7223:7:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "7235:6:3", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "7243:6:3", + "type": "" + } + ], + "src": "7167:407:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7661:61:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7678:3:3" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7709:5:3" + } + ], + "functionName": { + "name": "cleanup_t_address_payable", + "nodeType": "YulIdentifier", + "src": "7683:25:3" + }, + "nodeType": "YulFunctionCall", + "src": "7683:32:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7671:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "7671:45:3" + }, + "nodeType": "YulExpressionStatement", + "src": "7671:45:3" + } + ] + }, + "name": "abi_encode_t_address_payable_to_t_address_payable_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7649:5:3", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7656:3:3", + "type": "" + } + ], + "src": "7580:142:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7793:53:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7810:3:3" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7833:5:3" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "7815:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "7815:24:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7803:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "7803:37:3" + }, + "nodeType": "YulExpressionStatement", + "src": "7803:37:3" + } + ] + }, + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7781:5:3", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7788:3:3", + "type": "" + } + ], + "src": "7728:118:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "7911:50:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "7928:3:3" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "7948:5:3" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "7933:14:3" + }, + "nodeType": "YulFunctionCall", + "src": "7933:21:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "7921:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "7921:34:3" + }, + "nodeType": "YulExpressionStatement", + "src": "7921:34:3" + } + ] + }, + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "7899:5:3", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "7906:3:3", + "type": "" + } + ], + "src": "7852:109:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8111:197:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "8121:96:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8205:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8210:6:3" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "8128:76:3" + }, + "nodeType": "YulFunctionCall", + "src": "8128:89:3" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8121:3:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "start", + "nodeType": "YulIdentifier", + "src": "8251:5:3" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8258:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8263:6:3" + } + ], + "functionName": { + "name": "copy_calldata_to_memory", + "nodeType": "YulIdentifier", + "src": "8227:23:3" + }, + "nodeType": "YulFunctionCall", + "src": "8227:43:3" + }, + "nodeType": "YulExpressionStatement", + "src": "8227:43:3" + }, + { + "nodeType": "YulAssignment", + "src": "8279:23:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8290:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8295:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8286:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "8286:16:3" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8279:3:3" + } + ] + } + ] + }, + "name": "abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "start", + "nodeType": "YulTypedName", + "src": "8084:5:3", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8091:6:3", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8099:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8107:3:3", + "type": "" + } + ], + "src": "7991:317:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8406:272:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8416:53:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8463:5:3" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8430:32:3" + }, + "nodeType": "YulFunctionCall", + "src": "8430:39:3" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8420:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8478:78:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8544:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8549:6:3" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "8485:58:3" + }, + "nodeType": "YulFunctionCall", + "src": "8485:71:3" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8478:3:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8591:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "8598:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8587:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "8587:16:3" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8605:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8610:6:3" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "8565:21:3" + }, + "nodeType": "YulFunctionCall", + "src": "8565:52:3" + }, + "nodeType": "YulExpressionStatement", + "src": "8565:52:3" + }, + { + "nodeType": "YulAssignment", + "src": "8626:46:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8637:3:3" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8664:6:3" + } + ], + "functionName": { + "name": "round_up_to_mul_of_32", + "nodeType": "YulIdentifier", + "src": "8642:21:3" + }, + "nodeType": "YulFunctionCall", + "src": "8642:29:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8633:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "8633:39:3" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "8626:3:3" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8387:5:3", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8394:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8402:3:3", + "type": "" + } + ], + "src": "8314:364:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "8794:267:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "8804:53:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8851:5:3" + } + ], + "functionName": { + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulIdentifier", + "src": "8818:32:3" + }, + "nodeType": "YulFunctionCall", + "src": "8818:39:3" + }, + "variables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "8808:6:3", + "type": "" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "8866:96:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8950:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "8955:6:3" + } + ], + "functionName": { + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "8873:76:3" + }, + "nodeType": "YulFunctionCall", + "src": "8873:89:3" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "8866:3:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "8997:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9004:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "8993:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "8993:16:3" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9011:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "9016:6:3" + } + ], + "functionName": { + "name": "copy_memory_to_memory", + "nodeType": "YulIdentifier", + "src": "8971:21:3" + }, + "nodeType": "YulFunctionCall", + "src": "8971:52:3" + }, + "nodeType": "YulExpressionStatement", + "src": "8971:52:3" + }, + { + "nodeType": "YulAssignment", + "src": "9032:23:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9043:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "9048:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9039:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "9039:16:3" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9032:3:3" + } + ] + } + ] + }, + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "8775:5:3", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "8782:3:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "8790:3:3", + "type": "" + } + ], + "src": "8684:377:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9132:53:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9149:3:3" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "9172:5:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "9154:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "9154:24:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "9142:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "9142:37:3" + }, + "nodeType": "YulExpressionStatement", + "src": "9142:37:3" + } + ] + }, + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "9120:5:3", + "type": "" + }, + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9127:3:3", + "type": "" + } + ], + "src": "9067:118:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9337:149:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9348:112:3", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9439:6:3" + }, + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "9447:6:3" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9456:3:3" + } + ], + "functionName": { + "name": "abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "9355:83:3" + }, + "nodeType": "YulFunctionCall", + "src": "9355:105:3" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9348:3:3" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9470:10:3", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9477:3:3" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9470:3:3" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9308:3:3", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "9314:6:3", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9322:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9333:3:3", + "type": "" + } + ], + "src": "9191:295:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9628:139:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9639:102:3", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9728:6:3" + }, + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9737:3:3" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulIdentifier", + "src": "9646:81:3" + }, + "nodeType": "YulFunctionCall", + "src": "9646:95:3" + }, + "variableNames": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9639:3:3" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "9751:10:3", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "9758:3:3" + }, + "variableNames": [ + { + "name": "end", + "nodeType": "YulIdentifier", + "src": "9751:3:3" + } + ] + } + ] + }, + "name": "abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "9607:3:3", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9613:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "end", + "nodeType": "YulTypedName", + "src": "9624:3:3", + "type": "" + } + ], + "src": "9492:275:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "9871:124:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "9881:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9893:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9904:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9889:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "9889:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "9881:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "9961:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "9974:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "9985:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "9970:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "9970:17:3" + } + ], + "functionName": { + "name": "abi_encode_t_address_to_t_address_fromStack", + "nodeType": "YulIdentifier", + "src": "9917:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "9917:71:3" + }, + "nodeType": "YulExpressionStatement", + "src": "9917:71:3" + } + ] + }, + "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "9843:9:3", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "9855:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "9866:4:3", + "type": "" + } + ], + "src": "9773:222:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10093:118:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10103:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10115:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10126:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10111:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "10111:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10103:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10177:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10190:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10201:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10186:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "10186:17:3" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "10139:37:3" + }, + "nodeType": "YulFunctionCall", + "src": "10139:65:3" + }, + "nodeType": "YulExpressionStatement", + "src": "10139:65:3" + } + ] + }, + "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10065:9:3", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10077:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10088:4:3", + "type": "" + } + ], + "src": "10001:210:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10335:195:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10345:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10357:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10368:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10353:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "10353:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10345:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10392:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10403:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10388:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "10388:17:3" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10411:4:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10417:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "10407:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "10407:20:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "10381:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "10381:47:3" + }, + "nodeType": "YulExpressionStatement", + "src": "10381:47:3" + }, + { + "nodeType": "YulAssignment", + "src": "10437:86:3", + "value": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10509:6:3" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10518:4:3" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "10445:63:3" + }, + "nodeType": "YulFunctionCall", + "src": "10445:78:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10437:4:3" + } + ] + } + ] + }, + "name": "abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10307:9:3", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10319:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10330:4:3", + "type": "" + } + ], + "src": "10217:313:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "10634:124:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "10644:26:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10656:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10667:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10652:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "10652:18:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "10644:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "10724:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "10737:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "10748:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "10733:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "10733:17:3" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "10680:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "10680:71:3" + }, + "nodeType": "YulExpressionStatement", + "src": "10680:71:3" + } + ] + }, + "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "10606:9:3", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "10618:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "10629:4:3", + "type": "" + } + ], + "src": "10536:222:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "11168:970:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "11178:27:3", + "value": { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11190:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11201:3:3", + "type": "", + "value": "288" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11186:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "11186:19:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11178:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value0", + "nodeType": "YulIdentifier", + "src": "11259:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11272:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11283:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11268:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "11268:17:3" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "11215:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "11215:71:3" + }, + "nodeType": "YulExpressionStatement", + "src": "11215:71:3" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11307:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11318:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11303:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "11303:18:3" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11327:4:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11333:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11323:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "11323:20:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11296:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "11296:48:3" + }, + "nodeType": "YulExpressionStatement", + "src": "11296:48:3" + }, + { + "nodeType": "YulAssignment", + "src": "11353:86:3", + "value": { + "arguments": [ + { + "name": "value1", + "nodeType": "YulIdentifier", + "src": "11425:6:3" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11434:4:3" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11361:63:3" + }, + "nodeType": "YulFunctionCall", + "src": "11361:78:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11353:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11460:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11471:2:3", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11456:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "11456:18:3" + }, + { + "arguments": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11480:4:3" + }, + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11486:9:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "11476:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "11476:20:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "11449:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "11449:48:3" + }, + "nodeType": "YulExpressionStatement", + "src": "11449:48:3" + }, + { + "nodeType": "YulAssignment", + "src": "11506:86:3", + "value": { + "arguments": [ + { + "name": "value2", + "nodeType": "YulIdentifier", + "src": "11578:6:3" + }, + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11587:4:3" + } + ], + "functionName": { + "name": "abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack", + "nodeType": "YulIdentifier", + "src": "11514:63:3" + }, + "nodeType": "YulFunctionCall", + "src": "11514:78:3" + }, + "variableNames": [ + { + "name": "tail", + "nodeType": "YulIdentifier", + "src": "11506:4:3" + } + ] + }, + { + "expression": { + "arguments": [ + { + "name": "value3", + "nodeType": "YulIdentifier", + "src": "11662:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11675:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11686:2:3", + "type": "", + "value": "96" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11671:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "11671:18:3" + } + ], + "functionName": { + "name": "abi_encode_t_address_payable_to_t_address_payable_fromStack", + "nodeType": "YulIdentifier", + "src": "11602:59:3" + }, + "nodeType": "YulFunctionCall", + "src": "11602:88:3" + }, + "nodeType": "YulExpressionStatement", + "src": "11602:88:3" + }, + { + "expression": { + "arguments": [ + { + "name": "value4", + "nodeType": "YulIdentifier", + "src": "11760:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11773:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11784:3:3", + "type": "", + "value": "128" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11769:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "11769:19:3" + } + ], + "functionName": { + "name": "abi_encode_t_address_payable_to_t_address_payable_fromStack", + "nodeType": "YulIdentifier", + "src": "11700:59:3" + }, + "nodeType": "YulFunctionCall", + "src": "11700:89:3" + }, + "nodeType": "YulExpressionStatement", + "src": "11700:89:3" + }, + { + "expression": { + "arguments": [ + { + "name": "value5", + "nodeType": "YulIdentifier", + "src": "11859:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11872:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11883:3:3", + "type": "", + "value": "160" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11868:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "11868:19:3" + } + ], + "functionName": { + "name": "abi_encode_t_address_payable_to_t_address_payable_fromStack", + "nodeType": "YulIdentifier", + "src": "11799:59:3" + }, + "nodeType": "YulFunctionCall", + "src": "11799:89:3" + }, + "nodeType": "YulExpressionStatement", + "src": "11799:89:3" + }, + { + "expression": { + "arguments": [ + { + "name": "value6", + "nodeType": "YulIdentifier", + "src": "11942:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "11955:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "11966:3:3", + "type": "", + "value": "192" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "11951:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "11951:19:3" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "11898:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "11898:73:3" + }, + "nodeType": "YulExpressionStatement", + "src": "11898:73:3" + }, + { + "expression": { + "arguments": [ + { + "name": "value7", + "nodeType": "YulIdentifier", + "src": "12025:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12038:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12049:3:3", + "type": "", + "value": "224" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12034:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12034:19:3" + } + ], + "functionName": { + "name": "abi_encode_t_uint256_to_t_uint256_fromStack", + "nodeType": "YulIdentifier", + "src": "11981:43:3" + }, + "nodeType": "YulFunctionCall", + "src": "11981:73:3" + }, + "nodeType": "YulExpressionStatement", + "src": "11981:73:3" + }, + { + "expression": { + "arguments": [ + { + "name": "value8", + "nodeType": "YulIdentifier", + "src": "12102:6:3" + }, + { + "arguments": [ + { + "name": "headStart", + "nodeType": "YulIdentifier", + "src": "12115:9:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12126:3:3", + "type": "", + "value": "256" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12111:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12111:19:3" + } + ], + "functionName": { + "name": "abi_encode_t_bool_to_t_bool_fromStack", + "nodeType": "YulIdentifier", + "src": "12064:37:3" + }, + "nodeType": "YulFunctionCall", + "src": "12064:67:3" + }, + "nodeType": "YulExpressionStatement", + "src": "12064:67:3" + } + ] + }, + "name": "abi_encode_tuple_t_uint256_t_string_memory_ptr_t_string_memory_ptr_t_address_payable_t_address_payable_t_address_payable_t_uint256_t_uint256_t_bool__to_t_uint256_t_string_memory_ptr_t_string_memory_ptr_t_address_payable_t_address_payable_t_address_payable_t_uint256_t_uint256_t_bool__fromStack_reversed", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "headStart", + "nodeType": "YulTypedName", + "src": "11076:9:3", + "type": "" + }, + { + "name": "value8", + "nodeType": "YulTypedName", + "src": "11088:6:3", + "type": "" + }, + { + "name": "value7", + "nodeType": "YulTypedName", + "src": "11096:6:3", + "type": "" + }, + { + "name": "value6", + "nodeType": "YulTypedName", + "src": "11104:6:3", + "type": "" + }, + { + "name": "value5", + "nodeType": "YulTypedName", + "src": "11112:6:3", + "type": "" + }, + { + "name": "value4", + "nodeType": "YulTypedName", + "src": "11120:6:3", + "type": "" + }, + { + "name": "value3", + "nodeType": "YulTypedName", + "src": "11128:6:3", + "type": "" + }, + { + "name": "value2", + "nodeType": "YulTypedName", + "src": "11136:6:3", + "type": "" + }, + { + "name": "value1", + "nodeType": "YulTypedName", + "src": "11144:6:3", + "type": "" + }, + { + "name": "value0", + "nodeType": "YulTypedName", + "src": "11152:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "tail", + "nodeType": "YulTypedName", + "src": "11163:4:3", + "type": "" + } + ], + "src": "10764:1374:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12235:433:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "12245:51:3", + "value": { + "arguments": [ + { + "name": "ptr_to_tail", + "nodeType": "YulIdentifier", + "src": "12284:11:3" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "12271:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "12271:25:3" + }, + "variables": [ + { + "name": "rel_offset_of_tail", + "nodeType": "YulTypedName", + "src": "12249:18:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12390:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12399:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12402:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12392:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "12392:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "12392:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "rel_offset_of_tail", + "nodeType": "YulIdentifier", + "src": "12319:18:3" + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nodeType": "YulIdentifier", + "src": "12347:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "12347:14:3" + }, + { + "name": "base_ref", + "nodeType": "YulIdentifier", + "src": "12363:8:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12343:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12343:29:3" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12378:4:3", + "type": "", + "value": "0x20" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12384:1:3", + "type": "", + "value": "1" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12374:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12374:12:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12339:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12339:48:3" + } + ], + "functionName": { + "name": "slt", + "nodeType": "YulIdentifier", + "src": "12315:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12315:73:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "12308:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "12308:81:3" + }, + "nodeType": "YulIf", + "src": "12305:2:3" + }, + { + "nodeType": "YulAssignment", + "src": "12415:41:3", + "value": { + "arguments": [ + { + "name": "base_ref", + "nodeType": "YulIdentifier", + "src": "12427:8:3" + }, + { + "name": "rel_offset_of_tail", + "nodeType": "YulIdentifier", + "src": "12437:18:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12423:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12423:33:3" + }, + "variableNames": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "12415:4:3" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "12466:28:3", + "value": { + "arguments": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "12489:4:3" + } + ], + "functionName": { + "name": "calldataload", + "nodeType": "YulIdentifier", + "src": "12476:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "12476:18:3" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "12466:6:3" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12537:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12546:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12549:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12539:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "12539:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "12539:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "12509:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12517:18:3", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "12506:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "12506:30:3" + }, + "nodeType": "YulIf", + "src": "12503:2:3" + }, + { + "nodeType": "YulAssignment", + "src": "12562:21:3", + "value": { + "arguments": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "12574:4:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12580:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12570:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12570:13:3" + }, + "variableNames": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "12562:4:3" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12645:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12654:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12657:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "12647:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "12647:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "12647:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "addr", + "nodeType": "YulIdentifier", + "src": "12599:4:3" + }, + { + "arguments": [ + { + "arguments": [], + "functionName": { + "name": "calldatasize", + "nodeType": "YulIdentifier", + "src": "12609:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "12609:14:3" + }, + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "12629:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12637:4:3", + "type": "", + "value": "0x01" + } + ], + "functionName": { + "name": "mul", + "nodeType": "YulIdentifier", + "src": "12625:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12625:17:3" + } + ], + "functionName": { + "name": "sub", + "nodeType": "YulIdentifier", + "src": "12605:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12605:38:3" + } + ], + "functionName": { + "name": "sgt", + "nodeType": "YulIdentifier", + "src": "12595:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12595:49:3" + }, + "nodeType": "YulIf", + "src": "12592:2:3" + } + ] + }, + "name": "access_calldata_tail_t_string_calldata_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "base_ref", + "nodeType": "YulTypedName", + "src": "12196:8:3", + "type": "" + }, + { + "name": "ptr_to_tail", + "nodeType": "YulTypedName", + "src": "12206:11:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "addr", + "nodeType": "YulTypedName", + "src": "12222:4:3", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "12228:6:3", + "type": "" + } + ], + "src": "12144:524:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12714:238:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "12724:19:3", + "value": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12740:2:3", + "type": "", + "value": "64" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "12734:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "12734:9:3" + }, + "variableNames": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12724:6:3" + } + ] + }, + { + "nodeType": "YulVariableDeclaration", + "src": "12752:35:3", + "value": { + "arguments": [ + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12774:6:3" + }, + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "12782:4:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "12770:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "12770:17:3" + }, + "variables": [ + { + "name": "newFreePtr", + "nodeType": "YulTypedName", + "src": "12756:10:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "12898:17:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "12900:11:3" + }, + "nodeType": "YulFunctionCall", + "src": "12900:13:3" + }, + "nodeType": "YulExpressionStatement", + "src": "12900:13:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "12841:10:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12853:18:3", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "12838:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "12838:34:3" + }, + { + "arguments": [ + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "12877:10:3" + }, + { + "name": "memPtr", + "nodeType": "YulIdentifier", + "src": "12889:6:3" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "12874:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "12874:22:3" + } + ], + "functionName": { + "name": "or", + "nodeType": "YulIdentifier", + "src": "12835:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "12835:62:3" + }, + "nodeType": "YulIf", + "src": "12832:2:3" + }, + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "12931:2:3", + "type": "", + "value": "64" + }, + { + "name": "newFreePtr", + "nodeType": "YulIdentifier", + "src": "12935:10:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "12924:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "12924:22:3" + }, + "nodeType": "YulExpressionStatement", + "src": "12924:22:3" + } + ] + }, + "name": "allocateMemory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "12698:4:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "memPtr", + "nodeType": "YulTypedName", + "src": "12707:6:3", + "type": "" + } + ], + "src": "12674:278:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13024:260:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13129:17:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "13131:11:3" + }, + "nodeType": "YulFunctionCall", + "src": "13131:13:3" + }, + "nodeType": "YulExpressionStatement", + "src": "13131:13:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13101:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13109:18:3", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "13098:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "13098:30:3" + }, + "nodeType": "YulIf", + "src": "13095:2:3" + }, + { + "nodeType": "YulAssignment", + "src": "13176:41:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13192:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13200:4:3", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13188:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "13188:17:3" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13211:4:3", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "13207:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "13207:9:3" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "13184:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "13184:33:3" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "13176:4:3" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13254:23:3", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "13266:4:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13272:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13262:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "13262:15:3" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "13254:4:3" + } + ] + } + ] + }, + "name": "array_allocation_size_t_bytes_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13008:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "13019:4:3", + "type": "" + } + ], + "src": "12958:326:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13357:260:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "13462:17:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "panic_error", + "nodeType": "YulIdentifier", + "src": "13464:11:3" + }, + "nodeType": "YulFunctionCall", + "src": "13464:13:3" + }, + "nodeType": "YulExpressionStatement", + "src": "13464:13:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13434:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13442:18:3", + "type": "", + "value": "0xffffffffffffffff" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "13431:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "13431:30:3" + }, + "nodeType": "YulIf", + "src": "13428:2:3" + }, + { + "nodeType": "YulAssignment", + "src": "13509:41:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13525:6:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13533:4:3", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13521:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "13521:17:3" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13544:4:3", + "type": "", + "value": "0x1f" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "13540:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "13540:9:3" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "13517:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "13517:33:3" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "13509:4:3" + } + ] + }, + { + "nodeType": "YulAssignment", + "src": "13587:23:3", + "value": { + "arguments": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "13599:4:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13605:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13595:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "13595:15:3" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "13587:4:3" + } + ] + } + ] + }, + "name": "array_allocation_size_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13341:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "size", + "nodeType": "YulTypedName", + "src": "13352:4:3", + "type": "" + } + ], + "src": "13290:327:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13682:40:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "13693:22:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "13709:5:3" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "13703:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "13703:12:3" + }, + "variableNames": [ + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13693:6:3" + } + ] + } + ] + }, + "name": "array_length_t_string_memory_ptr", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "13665:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13675:6:3", + "type": "" + } + ], + "src": "13623:99:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "13824:73:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13841:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "13846:6:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "13834:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "13834:19:3" + }, + "nodeType": "YulExpressionStatement", + "src": "13834:19:3" + }, + { + "nodeType": "YulAssignment", + "src": "13862:29:3", + "value": { + "arguments": [ + { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "13881:3:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "13886:4:3", + "type": "", + "value": "0x20" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "13877:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "13877:14:3" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "13862:11:3" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13796:3:3", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13801:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "13812:11:3", + "type": "" + } + ], + "src": "13728:169:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14017:34:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14027:18:3", + "value": { + "name": "pos", + "nodeType": "YulIdentifier", + "src": "14042:3:3" + }, + "variableNames": [ + { + "name": "updated_pos", + "nodeType": "YulIdentifier", + "src": "14027:11:3" + } + ] + } + ] + }, + "name": "array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "pos", + "nodeType": "YulTypedName", + "src": "13989:3:3", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "13994:6:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "updated_pos", + "nodeType": "YulTypedName", + "src": "14005:11:3", + "type": "" + } + ], + "src": "13903:148:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14102:51:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14112:35:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14141:5:3" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "14123:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "14123:24:3" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "14112:7:3" + } + ] + } + ] + }, + "name": "cleanup_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "14084:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "14094:7:3", + "type": "" + } + ], + "src": "14057:96:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14212:51:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14222:35:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14251:5:3" + } + ], + "functionName": { + "name": "cleanup_t_uint160", + "nodeType": "YulIdentifier", + "src": "14233:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "14233:24:3" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "14222:7:3" + } + ] + } + ] + }, + "name": "cleanup_t_address_payable", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "14194:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "14204:7:3", + "type": "" + } + ], + "src": "14159:104:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14311:48:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14321:32:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14346:5:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "14339:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "14339:13:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "14332:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "14332:21:3" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "14321:7:3" + } + ] + } + ] + }, + "name": "cleanup_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "14293:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "14303:7:3", + "type": "" + } + ], + "src": "14269:90:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14409:105:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14419:89:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14434:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14441:66:3", + "type": "", + "value": "0xffffffff00000000000000000000000000000000000000000000000000000000" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "14430:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "14430:78:3" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "14419:7:3" + } + ] + } + ] + }, + "name": "cleanup_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "14391:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "14401:7:3", + "type": "" + } + ], + "src": "14365:149:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14565:81:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14575:65:3", + "value": { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14590:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14597:42:3", + "type": "", + "value": "0xffffffffffffffffffffffffffffffffffffffff" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "14586:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "14586:54:3" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "14575:7:3" + } + ] + } + ] + }, + "name": "cleanup_t_uint160", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "14547:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "14557:7:3", + "type": "" + } + ], + "src": "14520:126:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14697:32:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14707:16:3", + "value": { + "name": "value", + "nodeType": "YulIdentifier", + "src": "14718:5:3" + }, + "variableNames": [ + { + "name": "cleaned", + "nodeType": "YulIdentifier", + "src": "14707:7:3" + } + ] + } + ] + }, + "name": "cleanup_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "14679:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "cleaned", + "nodeType": "YulTypedName", + "src": "14689:7:3", + "type": "" + } + ], + "src": "14652:77:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14786:103:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "14809:3:3" + }, + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "14814:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14819:6:3" + } + ], + "functionName": { + "name": "calldatacopy", + "nodeType": "YulIdentifier", + "src": "14796:12:3" + }, + "nodeType": "YulFunctionCall", + "src": "14796:30:3" + }, + "nodeType": "YulExpressionStatement", + "src": "14796:30:3" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "14867:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14872:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "14863:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "14863:16:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14881:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "14856:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "14856:27:3" + }, + "nodeType": "YulExpressionStatement", + "src": "14856:27:3" + } + ] + }, + "name": "copy_calldata_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "14768:3:3", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "14773:3:3", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "14778:6:3", + "type": "" + } + ], + "src": "14735:154:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "14944:258:3", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "14954:10:3", + "value": { + "kind": "number", + "nodeType": "YulLiteral", + "src": "14963:1:3", + "type": "", + "value": "0" + }, + "variables": [ + { + "name": "i", + "nodeType": "YulTypedName", + "src": "14958:1:3", + "type": "" + } + ] + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15023:63:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "15048:3:3" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "15053:1:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15044:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "15044:11:3" + }, + { + "arguments": [ + { + "arguments": [ + { + "name": "src", + "nodeType": "YulIdentifier", + "src": "15067:3:3" + }, + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "15072:1:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15063:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "15063:11:3" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "15057:5:3" + }, + "nodeType": "YulFunctionCall", + "src": "15057:18:3" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15037:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "15037:39:3" + }, + "nodeType": "YulExpressionStatement", + "src": "15037:39:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "14984:1:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "14987:6:3" + } + ], + "functionName": { + "name": "lt", + "nodeType": "YulIdentifier", + "src": "14981:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "14981:13:3" + }, + "nodeType": "YulForLoop", + "post": { + "nodeType": "YulBlock", + "src": "14995:19:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "14997:15:3", + "value": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "15006:1:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15009:2:3", + "type": "", + "value": "32" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15002:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "15002:10:3" + }, + "variableNames": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "14997:1:3" + } + ] + } + ] + }, + "pre": { + "nodeType": "YulBlock", + "src": "14977:3:3", + "statements": [] + }, + "src": "14973:113:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15120:76:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "name": "dst", + "nodeType": "YulIdentifier", + "src": "15170:3:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15175:6:3" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15166:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "15166:16:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15184:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "mstore", + "nodeType": "YulIdentifier", + "src": "15159:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "15159:27:3" + }, + "nodeType": "YulExpressionStatement", + "src": "15159:27:3" + } + ] + }, + "condition": { + "arguments": [ + { + "name": "i", + "nodeType": "YulIdentifier", + "src": "15101:1:3" + }, + { + "name": "length", + "nodeType": "YulIdentifier", + "src": "15104:6:3" + } + ], + "functionName": { + "name": "gt", + "nodeType": "YulIdentifier", + "src": "15098:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "15098:13:3" + }, + "nodeType": "YulIf", + "src": "15095:2:3" + } + ] + }, + "name": "copy_memory_to_memory", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "src", + "nodeType": "YulTypedName", + "src": "14926:3:3", + "type": "" + }, + { + "name": "dst", + "nodeType": "YulTypedName", + "src": "14931:3:3", + "type": "" + }, + { + "name": "length", + "nodeType": "YulTypedName", + "src": "14936:6:3", + "type": "" + } + ], + "src": "14895:307:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15231:25:3", + "statements": [ + { + "expression": { + "arguments": [], + "functionName": { + "name": "invalid", + "nodeType": "YulIdentifier", + "src": "15241:7:3" + }, + "nodeType": "YulFunctionCall", + "src": "15241:9:3" + }, + "nodeType": "YulExpressionStatement", + "src": "15241:9:3" + } + ] + }, + "name": "panic_error", + "nodeType": "YulFunctionDefinition", + "src": "15208:48:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15310:54:3", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "15320:38:3", + "value": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15338:5:3" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15345:2:3", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "15334:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "15334:14:3" + }, + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15354:2:3", + "type": "", + "value": "31" + } + ], + "functionName": { + "name": "not", + "nodeType": "YulIdentifier", + "src": "15350:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "15350:7:3" + } + ], + "functionName": { + "name": "and", + "nodeType": "YulIdentifier", + "src": "15330:3:3" + }, + "nodeType": "YulFunctionCall", + "src": "15330:28:3" + }, + "variableNames": [ + { + "name": "result", + "nodeType": "YulIdentifier", + "src": "15320:6:3" + } + ] + } + ] + }, + "name": "round_up_to_mul_of_32", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "15293:5:3", + "type": "" + } + ], + "returnVariables": [ + { + "name": "result", + "nodeType": "YulTypedName", + "src": "15303:6:3", + "type": "" + } + ], + "src": "15262:102:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15413:79:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "15470:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15479:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15482:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "15472:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "15472:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "15472:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15436:5:3" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15461:5:3" + } + ], + "functionName": { + "name": "cleanup_t_address", + "nodeType": "YulIdentifier", + "src": "15443:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "15443:24:3" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "15433:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "15433:35:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "15426:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "15426:43:3" + }, + "nodeType": "YulIf", + "src": "15423:2:3" + } + ] + }, + "name": "validator_revert_t_address", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "15406:5:3", + "type": "" + } + ], + "src": "15370:122:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15538:76:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "15592:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15601:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15604:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "15594:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "15594:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "15594:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15561:5:3" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15583:5:3" + } + ], + "functionName": { + "name": "cleanup_t_bool", + "nodeType": "YulIdentifier", + "src": "15568:14:3" + }, + "nodeType": "YulFunctionCall", + "src": "15568:21:3" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "15558:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "15558:32:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "15551:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "15551:40:3" + }, + "nodeType": "YulIf", + "src": "15548:2:3" + } + ] + }, + "name": "validator_revert_t_bool", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "15531:5:3", + "type": "" + } + ], + "src": "15498:116:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15662:78:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "15718:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15727:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15730:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "15720:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "15720:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "15720:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15685:5:3" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15709:5:3" + } + ], + "functionName": { + "name": "cleanup_t_bytes4", + "nodeType": "YulIdentifier", + "src": "15692:16:3" + }, + "nodeType": "YulFunctionCall", + "src": "15692:23:3" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "15682:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "15682:34:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "15675:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "15675:42:3" + }, + "nodeType": "YulIf", + "src": "15672:2:3" + } + ] + }, + "name": "validator_revert_t_bytes4", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "15655:5:3", + "type": "" + } + ], + "src": "15620:120:3" + }, + { + "body": { + "nodeType": "YulBlock", + "src": "15789:79:3", + "statements": [ + { + "body": { + "nodeType": "YulBlock", + "src": "15846:16:3", + "statements": [ + { + "expression": { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15855:1:3", + "type": "", + "value": "0" + }, + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "15858:1:3", + "type": "", + "value": "0" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "15848:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "15848:12:3" + }, + "nodeType": "YulExpressionStatement", + "src": "15848:12:3" + } + ] + }, + "condition": { + "arguments": [ + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15812:5:3" + }, + { + "arguments": [ + { + "name": "value", + "nodeType": "YulIdentifier", + "src": "15837:5:3" + } + ], + "functionName": { + "name": "cleanup_t_uint256", + "nodeType": "YulIdentifier", + "src": "15819:17:3" + }, + "nodeType": "YulFunctionCall", + "src": "15819:24:3" + } + ], + "functionName": { + "name": "eq", + "nodeType": "YulIdentifier", + "src": "15809:2:3" + }, + "nodeType": "YulFunctionCall", + "src": "15809:35:3" + } + ], + "functionName": { + "name": "iszero", + "nodeType": "YulIdentifier", + "src": "15802:6:3" + }, + "nodeType": "YulFunctionCall", + "src": "15802:43:3" + }, + "nodeType": "YulIf", + "src": "15799:2:3" + } + ] + }, + "name": "validator_revert_t_uint256", + "nodeType": "YulFunctionDefinition", + "parameters": [ + { + "name": "value", + "nodeType": "YulTypedName", + "src": "15782:5:3", + "type": "" + } + ], + "src": "15746:122:3" + } + ] + }, + "contents": "{\n\n function abi_decode_available_length_t_bytes_memory_ptr(src, length, end) -> array {\n array := allocateMemory(array_allocation_size_t_bytes_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert(0, 0) }\n copy_calldata_to_memory(src, dst, length)\n }\n\n function abi_decode_available_length_t_string_memory_ptr(src, length, end) -> array {\n array := allocateMemory(array_allocation_size_t_string_memory_ptr(length))\n mstore(array, length)\n let dst := add(array, 0x20)\n if gt(add(src, length), end) { revert(0, 0) }\n copy_calldata_to_memory(src, dst, length)\n }\n\n function abi_decode_t_address(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_address(value)\n }\n\n // string[]\n function abi_decode_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr(offset, end) -> arrayPos, length {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n length := calldataload(offset)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n arrayPos := add(offset, 0x20)\n if gt(add(arrayPos, mul(length, 0x20)), end) { revert(0, 0) }\n }\n\n function abi_decode_t_bool(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bool(value)\n }\n\n function abi_decode_t_bytes4(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_bytes4(value)\n }\n\n // bytes\n function abi_decode_t_bytes_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_bytes_memory_ptr(add(offset, 0x20), length, end)\n }\n\n // string\n function abi_decode_t_string_memory_ptr(offset, end) -> array {\n if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n let length := calldataload(offset)\n array := abi_decode_available_length_t_string_memory_ptr(add(offset, 0x20), length, end)\n }\n\n function abi_decode_t_uint256(offset, end) -> value {\n value := calldataload(offset)\n validator_revert_t_uint256(value)\n }\n\n function abi_decode_tuple_t_address(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_address(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2 {\n if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_addresst_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3 {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value3 := abi_decode_t_bytes_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_bool(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_bool(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_address(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_bytes4(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_bytes4(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptr(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_string_memory_ptrt_string_memory_ptrt_uint256t_array$_t_string_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4 {\n if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n\n {\n\n let offset := calldataload(add(headStart, 0))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value0 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 32))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value1 := abi_decode_t_string_memory_ptr(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 64\n\n value2 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := calldataload(add(headStart, 96))\n if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n\n value3, value4 := abi_decode_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0 {\n if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_decode_tuple_t_uint256t_uint256(headStart, dataEnd) -> value0, value1 {\n if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n\n {\n\n let offset := 0\n\n value0 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n {\n\n let offset := 32\n\n value1 := abi_decode_t_uint256(add(headStart, offset), dataEnd)\n }\n\n }\n\n function abi_encode_t_address_payable_to_t_address_payable_fromStack(value, pos) {\n mstore(pos, cleanup_t_address_payable(value))\n }\n\n function abi_encode_t_address_to_t_address_fromStack(value, pos) {\n mstore(pos, cleanup_t_address(value))\n }\n\n function abi_encode_t_bool_to_t_bool_fromStack(value, pos) {\n mstore(pos, cleanup_t_bool(value))\n }\n\n // string -> string\n function abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(start, length, pos) -> end {\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n\n copy_calldata_to_memory(start, pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, round_up_to_mul_of_32(length))\n }\n\n function abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value, pos) -> end {\n let length := array_length_t_string_memory_ptr(value)\n pos := array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length)\n copy_memory_to_memory(add(value, 0x20), pos, length)\n end := add(pos, length)\n }\n\n function abi_encode_t_uint256_to_t_uint256_fromStack(value, pos) {\n mstore(pos, cleanup_t_uint256(value))\n }\n\n function abi_encode_tuple_packed_t_string_calldata_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value1, value0) -> end {\n\n pos := abi_encode_t_string_calldata_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, value1, pos)\n\n end := pos\n }\n\n function abi_encode_tuple_packed_t_string_memory_ptr__to_t_string_memory_ptr__nonPadded_inplace_fromStack_reversed(pos , value0) -> end {\n\n pos := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_nonPadded_inplace_fromStack(value0, pos)\n\n end := pos\n }\n\n function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_address_to_t_address_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_bool_to_t_bool_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n mstore(add(headStart, 0), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value0, tail)\n\n }\n\n function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart , value0) -> tail {\n tail := add(headStart, 32)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n }\n\n function abi_encode_tuple_t_uint256_t_string_memory_ptr_t_string_memory_ptr_t_address_payable_t_address_payable_t_address_payable_t_uint256_t_uint256_t_bool__to_t_uint256_t_string_memory_ptr_t_string_memory_ptr_t_address_payable_t_address_payable_t_address_payable_t_uint256_t_uint256_t_bool__fromStack_reversed(headStart , value8, value7, value6, value5, value4, value3, value2, value1, value0) -> tail {\n tail := add(headStart, 288)\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value0, add(headStart, 0))\n\n mstore(add(headStart, 32), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value1, tail)\n\n mstore(add(headStart, 64), sub(tail, headStart))\n tail := abi_encode_t_string_memory_ptr_to_t_string_memory_ptr_fromStack(value2, tail)\n\n abi_encode_t_address_payable_to_t_address_payable_fromStack(value3, add(headStart, 96))\n\n abi_encode_t_address_payable_to_t_address_payable_fromStack(value4, add(headStart, 128))\n\n abi_encode_t_address_payable_to_t_address_payable_fromStack(value5, add(headStart, 160))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value6, add(headStart, 192))\n\n abi_encode_t_uint256_to_t_uint256_fromStack(value7, add(headStart, 224))\n\n abi_encode_t_bool_to_t_bool_fromStack(value8, add(headStart, 256))\n\n }\n\n function access_calldata_tail_t_string_calldata_ptr(base_ref, ptr_to_tail) -> addr, length {\n let rel_offset_of_tail := calldataload(ptr_to_tail)\n if iszero(slt(rel_offset_of_tail, sub(sub(calldatasize(), base_ref), sub(0x20, 1)))) { revert(0, 0) }\n addr := add(base_ref, rel_offset_of_tail)\n\n length := calldataload(addr)\n if gt(length, 0xffffffffffffffff) { revert(0, 0) }\n addr := add(addr, 32)\n if sgt(addr, sub(calldatasize(), mul(length, 0x01))) { revert(0, 0) }\n\n }\n\n function allocateMemory(size) -> memPtr {\n memPtr := mload(64)\n let newFreePtr := add(memPtr, size)\n // protect against overflow\n if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error() }\n mstore(64, newFreePtr)\n }\n\n function array_allocation_size_t_bytes_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error() }\n\n // round up\n size := and(add(length, 0x1f), not(0x1f))\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_allocation_size_t_string_memory_ptr(length) -> size {\n // Make sure we can allocate memory without overflow\n if gt(length, 0xffffffffffffffff) { panic_error() }\n\n // round up\n size := and(add(length, 0x1f), not(0x1f))\n\n // add length slot\n size := add(size, 0x20)\n\n }\n\n function array_length_t_string_memory_ptr(value) -> length {\n\n length := mload(value)\n\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_fromStack(pos, length) -> updated_pos {\n mstore(pos, length)\n updated_pos := add(pos, 0x20)\n }\n\n function array_storeLengthForEncoding_t_string_memory_ptr_nonPadded_inplace_fromStack(pos, length) -> updated_pos {\n updated_pos := pos\n }\n\n function cleanup_t_address(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_address_payable(value) -> cleaned {\n cleaned := cleanup_t_uint160(value)\n }\n\n function cleanup_t_bool(value) -> cleaned {\n cleaned := iszero(iszero(value))\n }\n\n function cleanup_t_bytes4(value) -> cleaned {\n cleaned := and(value, 0xffffffff00000000000000000000000000000000000000000000000000000000)\n }\n\n function cleanup_t_uint160(value) -> cleaned {\n cleaned := and(value, 0xffffffffffffffffffffffffffffffffffffffff)\n }\n\n function cleanup_t_uint256(value) -> cleaned {\n cleaned := value\n }\n\n function copy_calldata_to_memory(src, dst, length) {\n calldatacopy(dst, src, length)\n // clear end\n mstore(add(dst, length), 0)\n }\n\n function copy_memory_to_memory(src, dst, length) {\n let i := 0\n for { } lt(i, length) { i := add(i, 32) }\n {\n mstore(add(dst, i), mload(add(src, i)))\n }\n if gt(i, length)\n {\n // clear end\n mstore(add(dst, length), 0)\n }\n }\n\n function panic_error() {\n invalid()\n }\n\n function round_up_to_mul_of_32(value) -> result {\n result := and(add(value, 31), not(31))\n }\n\n function validator_revert_t_address(value) {\n if iszero(eq(value, cleanup_t_address(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_bool(value) {\n if iszero(eq(value, cleanup_t_bool(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_bytes4(value) {\n if iszero(eq(value, cleanup_t_bytes4(value))) { revert(0, 0) }\n }\n\n function validator_revert_t_uint256(value) {\n if iszero(eq(value, cleanup_t_uint256(value))) { revert(0, 0) }\n }\n\n}\n", + "id": 3, + "language": "Yul", + "name": "#utility.yul" + } + ], + "sourceMap": "110:3910:0:-:0;;;711:124;;;;;;;;;;49086:362:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9711:40;9387:10;9730:20;;9711:18;;;:40;;:::i;:::-;49161:5;49153;:13;;;;;;;;;;;;:::i;:::-;;49186:7;49176;:17;;;;;;;;;;;;:::i;:::-;;49281:40;48251:10;49300:20;;49281:18;;;:40;;:::i;:::-;49331:49;48583:10;49350:29;;49331:18;;;:49;;:::i;:::-;49390:51;48956:10;49409:31;;49390:18;;;:51;;:::i;:::-;49086:362;;787:6:0::1;:4;;;:6;;:::i;:::-;770:14;:23;;;;;;;;;;;;:::i;:::-;;822:8;:6;;;:8;;:::i;:::-;799:20;:31;;;;;;;;;;;;:::i;:::-;;110:3910:::0;;10450:198:1;10548:10;10533:25;;:11;:25;;;;;10525:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10637:4;10601:20;:33;10622:11;10601:33;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;10450:198;:::o;50019:98::-;50073:13;50105:5;50098:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50019:98;:::o;50181:102::-;50237:13;50269:7;50262:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50181:102;:::o;110:3910:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "110:3910:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9908:148:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;50019:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;52724:217;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;52268:395;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2398:139:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;51762:208:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;53588:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2541:690:0;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;51531:160:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;53954:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2201:193:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;661:45;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;510:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;52042:169:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3235:361:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;49782:175:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1870:161:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;51357:95:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;177:34:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;49507:218:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;615:42:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;50181:102:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;839:879:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;53008:290:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3600:418:0;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;565:46;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1722:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;54169:282:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;216:31:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;50349:776:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2035:162:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;145:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;53364:162:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9908:148;9993:4;10016:20;:33;10037:11;10016:33;;;;;;;;;;;;;;;;;;;;;;;;;;;10009:40;;9908:148;;;:::o;50019:98::-;50073:13;50105:5;50098:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50019:98;:::o;52724:217::-;52800:7;52827:16;52835:7;52827;:16::i;:::-;52819:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52910:15;:24;52926:7;52910:24;;;;;;;;;;;;;;;;;;;;;52903:31;;52724:217;;;:::o;52268:395::-;52348:13;52364:23;52379:7;52364:14;:23::i;:::-;52348:39;;52411:5;52405:11;;:2;:11;;;;52397:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52489:5;52473:21;;:12;:10;:12::i;:::-;:21;;;:69;;;;52498:44;52522:5;52529:12;:10;:12::i;:::-;52498:23;:44::i;:::-;52473:69;52465:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52635:21;52644:2;52648:7;52635:8;:21::i;:::-;52268:395;;;:::o;2398:139:0:-;2460:4;2472:16;2491:17;2499:8;2491:7;:17::i;:::-;2472:36;;2521:11;2514:18;;;2398:139;;;:::o;51762:208:1:-;51823:7;51942:21;:12;:19;:21::i;:::-;51935:28;;51762:208;:::o;53588:300::-;53747:41;53766:12;:10;:12::i;:::-;53780:7;53747:18;:41::i;:::-;53739:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;53853:28;53863:4;53869:2;53873:7;53853:9;:28::i;:::-;53588:300;;;:::o;2541:690:0:-;2628:1;2606:24;;:10;:24;;;;2598:33;;;;;;2645:17;2653:8;2645:7;:17::i;:::-;2637:26;;;;;;2669:18;2690:17;2698:8;2690:7;:17::i;:::-;2669:38;;2743:1;2721:24;;:10;:24;;;;2713:33;;;;;;2774:10;2760:24;;:10;:24;;;;2752:33;;;;;;2791:26;2820:13;:23;2834:8;2820:23;;;;;;;;;;;2791:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2870:9;:15;;;2857:9;:28;;2849:37;;;;;;2900:9;:17;;;2892:26;;;;;;2924:43;2934:10;2946;2958:8;2924:9;:43::i;:::-;2973:22;2998:9;:22;;;2973:47;;3026:6;:15;;:26;3042:9;3026:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3084:9;:22;;;3058:9;:23;;:48;;;;;;;;;;;3137:10;3112:9;:22;;:35;;;;;;;;;;;3184:1;3153:9;:27;;:32;;;;;;;;;;;3217:9;3191:13;:23;3205:8;3191:23;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2541:690;;;;:::o;51531:160:1:-;51628:7;51654:30;51678:5;51654:13;:20;51668:5;51654:20;;;;;;;;;;;;;;;:23;;:30;;;;:::i;:::-;51647:37;;51531:160;;;;:::o;53954:149::-;54057:39;54074:4;54080:2;54084:7;54057:39;;;;;;;;;;;;:16;:39::i;:::-;53954:149;;;:::o;2201:193:0:-;2285:7;2300:32;2335:17;2345:6;2335:9;:17::i;:::-;2300:52;;2365:24;2358:31;;;2201:193;;;:::o;661:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;510:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;52042:169:1:-;52117:7;52137:15;52158:22;52174:5;52158:12;:15;;:22;;;;:::i;:::-;52136:44;;;52197:7;52190:14;;;52042:169;;;:::o;3235:361:0:-;3341:1;3319:24;;:10;:24;;;;3311:33;;;;;;3358:17;3366:8;3358:7;:17::i;:::-;3350:26;;;;;;3382:18;3403:17;3411:8;3403:7;:17::i;:::-;3382:38;;3448:10;3434:24;;:10;:24;;;3426:33;;;;;;3465:26;3494:13;:23;3508:8;3494:23;;;;;;;;;;;3465:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3541:9;3523;:15;;:27;;;;;3582:9;3556:13;:23;3570:8;3556:23;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3235:361;;;;:::o;49782:175:1:-;49854:7;49880:70;49897:7;49880:70;;;;;;;;;;;;;;;;;:12;:16;;:70;;;;;:::i;:::-;49873:77;;49782:175;;;:::o;1870:161:0:-;1931:13;1952:27;1982:18;1991:8;1982;:18::i;:::-;1952:48;;2013:13;2006:20;;;1870:161;;;:::o;51357:95:1:-;51405:13;51437:8;51430:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;51357:95;:::o;177:34:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;49507:218:1:-;49579:7;49623:1;49606:19;;:5;:19;;;;49598:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49689:29;:13;:20;49703:5;49689:20;;;;;;;;;;;;;;;:27;:29::i;:::-;49682:36;;49507:218;;;:::o;615:42:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;50181:102:1:-;50237:13;50269:7;50262:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50181:102;:::o;839:879:0:-;997:1;975:24;;:10;:24;;;;967:33;;;;;;1006:16;;:19;;;;;;;;;;;;;1040:25;1048:16;;1040:7;:25::i;:::-;1039:26;1031:35;;;;;;1077:6;1073:85;1089:7;;:14;;1087:1;:16;1073:85;;;1127:11;1139:7;;1147:1;1139:10;;;;;;;;;;;;;;;;;;:::i;:::-;1127:23;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1126:24;1118:33;;;;;;1105:3;;;;;;;1073:85;;;;1172:14;1187:9;1172:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1171:26;1163:35;;;;;;1213:15;1229:5;1213:22;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1212:23;1204:32;;;;;;1243:35;1249:10;1261:16;;1243:5;:35::i;:::-;1284:41;1297:16;;1315:9;1284:12;:41::i;:::-;1337:6;1332:83;1349:7;;:14;;1347:1;:16;1332:83;;;1404:4;1378:11;1390:7;;1398:1;1390:10;;;;;;;;;;;;;;;;;;:::i;:::-;1378:23;;;;;;;:::i;:::-;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;1365:3;;;;;;;1332:83;;;;1448:4;1420:14;1435:9;1420:25;;;;;;:::i;:::-;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;1483:4;1458:15;1474:5;1458:22;;;;;;:::i;:::-;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;1494;1526:135;;;;;;;;1541:16;;1526:135;;;;1563:5;1526:135;;;;1574:9;1526:135;;;;1589:10;1526:135;;;;;;1605:10;1526:135;;;;;;1629:1;1526:135;;;;;;1637:6;1526:135;;;;1649:1;1526:135;;;;1656:4;1526:135;;;;;1494:167;;1701:12;1667:13;:31;1681:16;;1667:31;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;839:879;;;;;;:::o;53008:290:1:-;53122:12;:10;:12::i;:::-;53110:24;;:8;:24;;;;53102:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;53220:8;53175:18;:32;53194:12;:10;:12::i;:::-;53175:32;;;;;;;;;;;;;;;:42;53208:8;53175:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;53272:8;53243:48;;53258:12;:10;:12::i;:::-;53243:48;;;53282:8;53243:48;;;;;;;;;;;;;;;;;;;;53008:290;;:::o;3600:418:0:-;3684:1;3662:24;;:10;:24;;;;3654:33;;;;;;3701:17;3709:8;3701:7;:17::i;:::-;3693:26;;;;;;3725:18;3746:17;3754:8;3746:7;:17::i;:::-;3725:38;;3791:10;3777:24;;:10;:24;;;3769:33;;;;;;3808:26;3837:13;:23;3851:8;3837:23;;;;;;;;;;;3808:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3869:9;:17;;;3866:107;;;3916:5;3896:9;:17;;:25;;;;;;;;;;;3866:107;;;3962:4;3942:9;:17;;:24;;;;;;;;;;;3866:107;4004:9;3978:13;:23;3992:8;3978:23;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3600:418;;;:::o;565:46::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1722:144::-;1783:7;1798:19;1820:17;1828:8;1820:7;:17::i;:::-;1798:39;;1850:11;1843:18;;;1722:144;;;:::o;54169:282:1:-;54300:41;54319:12;:10;:12::i;:::-;54333:7;54300:18;:41::i;:::-;54292:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;54405:39;54419:4;54425:2;54429:7;54438:5;54405:13;:39::i;:::-;54169:282;;;;:::o;216:31:0:-;;;;:::o;50349:776:1:-;50422:13;50455:16;50463:7;50455;:16::i;:::-;50447:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50534:23;50560:10;:19;50571:7;50560:19;;;;;;;;;;;50534:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50589:18;50610:9;:7;:9::i;:::-;50589:30;;50714:1;50698:4;50692:18;:23;50688:70;;;50738:9;50731:16;;;;;;50688:70;50886:1;50866:9;50860:23;:27;50856:106;;;50934:4;50940:9;50917:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50903:48;;;;;;50856:106;51092:4;51098:18;:7;:16;:18::i;:::-;51075:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;51061:57;;;;50349:776;;;;:::o;2035:162:0:-;2090:7;2105:33;2141:13;:11;:13::i;:::-;2105:49;;2167:25;2160:32;;;2035:162;:::o;145:28::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;53364:162:1:-;53461:4;53484:18;:25;53503:5;53484:25;;;;;;;;;;;;;;;:35;53510:8;53484:35;;;;;;;;;;;;;;;;;;;;;;;;;53477:42;;53364:162;;;;:::o;55885:125::-;55950:4;55973:30;55995:7;55973:12;:21;;:30;;;;:::i;:::-;55966:37;;55885:125;;;:::o;649:104::-;702:15;736:10;729:17;;649:104;:::o;61727:189::-;61828:2;61801:15;:24;61817:7;61801:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;61883:7;61879:2;61845:46;;61854:23;61869:7;61854:14;:23::i;:::-;61845:46;;;;;;;;;;;;61727:189;;:::o;42991:121::-;43060:7;43086:19;43094:3;:10;;43086:7;:19::i;:::-;43079:26;;42991:121;;;:::o;56168:351::-;56261:4;56285:16;56293:7;56285;:16::i;:::-;56277:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;56360:13;56376:23;56391:7;56376:14;:23::i;:::-;56360:39;;56428:5;56417:16;;:7;:16;;;:51;;;;56461:7;56437:31;;:20;56449:7;56437:11;:20::i;:::-;:31;;;56417:51;:94;;;;56472:39;56496:5;56503:7;56472:23;:39::i;:::-;56417:94;56409:103;;;56168:351;;;;:::o;59209:584::-;59333:4;59306:31;;:23;59321:7;59306:14;:23::i;:::-;:31;;;59298:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;59433:1;59419:16;;:2;:16;;;;59411:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;59487:39;59508:4;59514:2;59518:7;59487:20;:39::i;:::-;59588:29;59605:1;59609:7;59588:8;:29::i;:::-;59628:35;59655:7;59628:13;:19;59642:4;59628:19;;;;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;;59673:30;59695:7;59673:13;:17;59687:2;59673:17;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;;59714:29;59731:7;59740:2;59714:12;:16;;:29;;;;;:::i;:::-;;59778:7;59774:2;59759:27;;59768:4;59759:27;;;;;;;;;;;;59209:584;;;:::o;35008:135::-;35079:7;35113:22;35117:3;:10;;35129:5;35113:3;:22::i;:::-;35105:31;;35098:38;;35008:135;;;;:::o;43440:233::-;43520:7;43529;43549:11;43562:13;43579:22;43583:3;:10;;43595:5;43579:3;:22::i;:::-;43548:53;;;;43627:3;43619:12;;43657:5;43649:14;;43611:55;;;;;;43440:233;;;;;:::o;44693:211::-;44800:7;44850:44;44855:3;:10;;44875:3;44867:12;;44881;44850:4;:44::i;:::-;44842:53;;44819:78;;44693:211;;;;;:::o;34564:112::-;34624:7;34650:19;34658:3;:10;;34650:7;:19::i;:::-;34643:26;;34564:112;;;:::o;57748:393::-;57841:1;57827:16;;:2;:16;;;;57819:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57899:16;57907:7;57899;:16::i;:::-;57898:17;57890:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;57959:45;57988:1;57992:2;57996:7;57959:20;:45::i;:::-;58015:30;58037:7;58015:13;:17;58029:2;58015:17;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;;58056:29;58073:7;58082:2;58056:12;:16;;:29;;;;;:::i;:::-;;58126:7;58122:2;58101:33;;58118:1;58101:33;;;;;;;;;;;;57748:393;;:::o;59940:212::-;60039:16;60047:7;60039;:16::i;:::-;60031:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;60136:9;60114:10;:19;60125:7;60114:19;;;;;;;;;;;:31;;;;;;;;;;;;:::i;:::-;;59940:212;;:::o;55313:269::-;55426:28;55436:4;55442:2;55446:7;55426:9;:28::i;:::-;55472:48;55495:4;55501:2;55505:7;55514:5;55472:22;:48::i;:::-;55464:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;55313:269;;;;:::o;45136:725::-;45192:13;45418:1;45409:5;:10;45405:51;;;45435:10;;;;;;;;;;;;;;;;;;;;;45405:51;45465:12;45480:5;45465:20;;45495:14;45519:75;45534:1;45526:4;:9;45519:75;;45551:8;;;;;;;45581:2;45573:10;;;;;;;;;45519:75;;;45603:19;45635:6;45625:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45603:39;;45652:13;45677:1;45668:6;:10;45652:26;;45695:5;45688:12;;45710:114;45725:1;45717:4;:9;45710:114;;45785:2;45778:4;:9;;;;;;45773:2;:14;45760:29;;45742:6;45749:7;;;;;;;45742:15;;;;;;;;;;;:47;;;;;;;;;;;45811:2;45803:10;;;;;;;;;45710:114;;;45847:6;45833:21;;;;;;45136:725;;;;:::o;42759:149::-;42843:4;42866:35;42876:3;:10;;42896:3;42888:12;;42866:9;:35::i;:::-;42859:42;;42759:149;;;;:::o;39662:108::-;39718:7;39744:3;:12;;:19;;;;39737:26;;39662:108;;;:::o;62512:93::-;;;;:::o;34123:135::-;34193:4;34216:35;34224:3;:10;;34244:5;34236:14;;34216:7;:35::i;:::-;34209:42;;34123:135;;;;:::o;33826:129::-;33893:4;33916:32;33921:3;:10;;33941:5;33933:14;;33916:4;:32::i;:::-;33909:39;;33826:129;;;;:::o;42198:183::-;42287:4;42310:64;42315:3;:10;;42335:3;42327:12;;42365:5;42349:23;;42341:32;;42310:4;:64::i;:::-;42303:71;;42198:183;;;;;:::o;30210:201::-;30277:7;30325:5;30304:3;:11;;:18;;;;:26;30296:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30386:3;:11;;30398:5;30386:18;;;;;;;;;;;;;;;;30379:25;;30210:201;;;;:::o;40113:274::-;40180:7;40189;40238:5;40216:3;:12;;:19;;;;:27;40208:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40293:22;40318:3;:12;;40331:5;40318:19;;;;;;;;;;;;;;;;;;40293:44;;40355:5;:10;;;40367:5;:12;;;40347:33;;;;;40113:274;;;;;:::o;41574:315::-;41668:7;41687:16;41706:3;:12;;:17;41719:3;41706:17;;;;;;;;;;;;41687:36;;41753:1;41741:8;:13;;41756:12;41733:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41822:3;:12;;41846:1;41835:8;:12;41822:26;;;;;;;;;;;;;;;;;;:33;;;41815:40;;;41574:315;;;;;:::o;29771:107::-;29827:7;29853:3;:11;;:18;;;;29846:25;;29771:107;;;:::o;61026:589::-;61146:4;61171:15;:2;:13;;;:15::i;:::-;61166:58;;61209:4;61202:11;;;;61166:58;61233:23;61259:246;61311:45;;;61370:12;:10;:12::i;:::-;61396:4;61414:7;61435:5;61275:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;61259:246;;;;;;;;;;;;;;;;;:2;:15;;;;:246;;;;;:::i;:::-;61233:272;;61515:13;61542:10;61531:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;61515:48;;46587:10;61591:16;;61581:26;;;:6;:26;;;;61573:35;;;;61026:589;;;;;;;:::o;39449:123::-;39520:4;39564:1;39543:3;:12;;:17;39556:3;39543:17;;;;;;;;;;;;:22;;39536:29;;39449:123;;;;:::o;27970:1512::-;28036:4;28152:18;28173:3;:12;;:19;28186:5;28173:19;;;;;;;;;;;;28152:40;;28221:1;28207:10;:15;28203:1273;;28564:21;28601:1;28588:10;:14;28564:38;;28616:17;28657:1;28636:3;:11;;:18;;;;:22;28616:42;;28898:17;28918:3;:11;;28930:9;28918:22;;;;;;;;;;;;;;;;28898:42;;29061:9;29032:3;:11;;29044:13;29032:26;;;;;;;;;;;;;;;:38;;;;29178:1;29162:13;:17;29136:3;:12;;:23;29149:9;29136:23;;;;;;;;;;;:43;;;;29285:3;:11;;:17;;;;;;;;;;;;;;;;;;;;;;;;29377:3;:12;;:19;29390:5;29377:19;;;;;;;;;;;29370:26;;;29418:4;29411:11;;;;;;;;28203:1273;29460:5;29453:12;;;27970:1512;;;;;:::o;27398:404::-;27461:4;27482:21;27492:3;27497:5;27482:9;:21::i;:::-;27477:319;;27519:3;:11;;27536:5;27519:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27699:3;:11;;:18;;;;27677:3;:12;;:19;27690:5;27677:19;;;;;;;;;;;:40;;;;27738:4;27731:11;;;;27477:319;27780:5;27773:12;;27398:404;;;;;:::o;37007:678::-;37083:4;37197:16;37216:3;:12;;:17;37229:3;37216:17;;;;;;;;;;;;37197:36;;37260:1;37248:8;:13;37244:435;;;37314:3;:12;;37332:38;;;;;;;;37349:3;37332:38;;;;37362:5;37332:38;;;37314:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37526:3;:12;;:19;;;;37506:3;:12;;:17;37519:3;37506:17;;;;;;;;;;;:39;;;;37566:4;37559:11;;;;;37244:435;37637:5;37601:3;:12;;37625:1;37614:8;:12;37601:26;;;;;;;;;;;;;;;;;;:33;;:41;;;;37663:5;37656:12;;;37007:678;;;;;;:::o;18640:413::-;18700:4;18903:12;19012:7;19000:20;18992:28;;19045:1;19038:4;:8;19031:15;;;18640:413;;;:::o;21495:193::-;21598:12;21629:52;21651:6;21659:4;21665:1;21668:12;21629:21;:52::i;:::-;21622:59;;21495:193;;;;;:::o;29563:127::-;29636:4;29682:1;29659:3;:12;;:19;29672:5;29659:19;;;;;;;;;;;;:24;;29652:31;;29563:127;;;;:::o;22522:523::-;22649:12;22706:5;22681:21;:30;;22673:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22772:18;22783:6;22772:10;:18::i;:::-;22764:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22895:12;22909:23;22936:6;:11;;22956:5;22964:4;22936:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22894:75;;;;22986:52;23004:7;23013:10;23025:12;22986:17;:52::i;:::-;22979:59;;;;22522:523;;;;;;:::o;25005:725::-;25120:12;25148:7;25144:580;;;25178:10;25171:17;;;;25144:580;25309:1;25289:10;:17;:21;25285:429;;;25547:10;25541:17;25607:15;25594:10;25590:2;25586:19;25579:44;25496:145;25686:12;25679:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25005:725;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:342:3:-;;109:64;124:48;165:6;124:48;:::i;:::-;109:64;:::i;:::-;100:73;;196:6;189:5;182:21;234:4;227:5;223:16;272:3;263:6;258:3;254:16;251:25;248:2;;;289:1;286;279:12;248:2;302:41;336:6;331:3;326;302:41;:::i;:::-;90:259;;;;;;:::o;355:344::-;;458:65;473:49;515:6;473:49;:::i;:::-;458:65;:::i;:::-;449:74;;546:6;539:5;532:21;584:4;577:5;573:16;622:3;613:6;608:3;604:16;601:25;598:2;;;639:1;636;629:12;598:2;652:41;686:6;681:3;676;652:41;:::i;:::-;439:260;;;;;;:::o;705:139::-;;789:6;776:20;767:29;;805:33;832:5;805:33;:::i;:::-;757:87;;;;:::o;866:379::-;;;1011:3;1004:4;996:6;992:17;988:27;978:2;;1029:1;1026;1019:12;978:2;1065:6;1052:20;1042:30;;1095:18;1087:6;1084:30;1081:2;;;1127:1;1124;1117:12;1081:2;1164:4;1156:6;1152:17;1140:29;;1218:3;1210:4;1202:6;1198:17;1188:8;1184:32;1181:41;1178:2;;;1235:1;1232;1225:12;1178:2;968:277;;;;;:::o;1251:133::-;;1332:6;1319:20;1310:29;;1348:30;1372:5;1348:30;:::i;:::-;1300:84;;;;:::o;1390:137::-;;1473:6;1460:20;1451:29;;1489:32;1515:5;1489:32;:::i;:::-;1441:86;;;;:::o;1546:271::-;;1650:3;1643:4;1635:6;1631:17;1627:27;1617:2;;1668:1;1665;1658:12;1617:2;1708:6;1695:20;1733:78;1807:3;1799:6;1792:4;1784:6;1780:17;1733:78;:::i;:::-;1724:87;;1607:210;;;;;:::o;1837:273::-;;1942:3;1935:4;1927:6;1923:17;1919:27;1909:2;;1960:1;1957;1950:12;1909:2;2000:6;1987:20;2025:79;2100:3;2092:6;2085:4;2077:6;2073:17;2025:79;:::i;:::-;2016:88;;1899:211;;;;;:::o;2116:139::-;;2200:6;2187:20;2178:29;;2216:33;2243:5;2216:33;:::i;:::-;2168:87;;;;:::o;2261:262::-;;2369:2;2357:9;2348:7;2344:23;2340:32;2337:2;;;2385:1;2382;2375:12;2337:2;2428:1;2453:53;2498:7;2489:6;2478:9;2474:22;2453:53;:::i;:::-;2443:63;;2399:117;2327:196;;;;:::o;2529:407::-;;;2654:2;2642:9;2633:7;2629:23;2625:32;2622:2;;;2670:1;2667;2660:12;2622:2;2713:1;2738:53;2783:7;2774:6;2763:9;2759:22;2738:53;:::i;:::-;2728:63;;2684:117;2840:2;2866:53;2911:7;2902:6;2891:9;2887:22;2866:53;:::i;:::-;2856:63;;2811:118;2612:324;;;;;:::o;2942:552::-;;;;3084:2;3072:9;3063:7;3059:23;3055:32;3052:2;;;3100:1;3097;3090:12;3052:2;3143:1;3168:53;3213:7;3204:6;3193:9;3189:22;3168:53;:::i;:::-;3158:63;;3114:117;3270:2;3296:53;3341:7;3332:6;3321:9;3317:22;3296:53;:::i;:::-;3286:63;;3241:118;3398:2;3424:53;3469:7;3460:6;3449:9;3445:22;3424:53;:::i;:::-;3414:63;;3369:118;3042:452;;;;;:::o;3500:809::-;;;;;3668:3;3656:9;3647:7;3643:23;3639:33;3636:2;;;3685:1;3682;3675:12;3636:2;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3855:2;3881:53;3926:7;3917:6;3906:9;3902:22;3881:53;:::i;:::-;3871:63;;3826:118;3983:2;4009:53;4054:7;4045:6;4034:9;4030:22;4009:53;:::i;:::-;3999:63;;3954:118;4139:2;4128:9;4124:18;4111:32;4170:18;4162:6;4159:30;4156:2;;;4202:1;4199;4192:12;4156:2;4230:62;4284:7;4275:6;4264:9;4260:22;4230:62;:::i;:::-;4220:72;;4082:220;3626:683;;;;;;;:::o;4315:401::-;;;4437:2;4425:9;4416:7;4412:23;4408:32;4405:2;;;4453:1;4450;4443:12;4405:2;4496:1;4521:53;4566:7;4557:6;4546:9;4542:22;4521:53;:::i;:::-;4511:63;;4467:117;4623:2;4649:50;4691:7;4682:6;4671:9;4667:22;4649:50;:::i;:::-;4639:60;;4594:115;4395:321;;;;;:::o;4722:407::-;;;4847:2;4835:9;4826:7;4822:23;4818:32;4815:2;;;4863:1;4860;4853:12;4815:2;4906:1;4931:53;4976:7;4967:6;4956:9;4952:22;4931:53;:::i;:::-;4921:63;;4877:117;5033:2;5059:53;5104:7;5095:6;5084:9;5080:22;5059:53;:::i;:::-;5049:63;;5004:118;4805:324;;;;;:::o;5135:260::-;;5242:2;5230:9;5221:7;5217:23;5213:32;5210:2;;;5258:1;5255;5248:12;5210:2;5301:1;5326:52;5370:7;5361:6;5350:9;5346:22;5326:52;:::i;:::-;5316:62;;5272:116;5200:195;;;;:::o;5401:375::-;;5519:2;5507:9;5498:7;5494:23;5490:32;5487:2;;;5535:1;5532;5525:12;5487:2;5606:1;5595:9;5591:17;5578:31;5636:18;5628:6;5625:30;5622:2;;;5668:1;5665;5658:12;5622:2;5696:63;5751:7;5742:6;5731:9;5727:22;5696:63;:::i;:::-;5686:73;;5549:220;5477:299;;;;:::o;5782:1111::-;;;;;;6008:3;5996:9;5987:7;5983:23;5979:33;5976:2;;;6025:1;6022;6015:12;5976:2;6096:1;6085:9;6081:17;6068:31;6126:18;6118:6;6115:30;6112:2;;;6158:1;6155;6148:12;6112:2;6186:63;6241:7;6232:6;6221:9;6217:22;6186:63;:::i;:::-;6176:73;;6039:220;6326:2;6315:9;6311:18;6298:32;6357:18;6349:6;6346:30;6343:2;;;6389:1;6386;6379:12;6343:2;6417:63;6472:7;6463:6;6452:9;6448:22;6417:63;:::i;:::-;6407:73;;6269:221;6529:2;6555:53;6600:7;6591:6;6580:9;6576:22;6555:53;:::i;:::-;6545:63;;6500:118;6685:2;6674:9;6670:18;6657:32;6716:18;6708:6;6705:30;6702:2;;;6748:1;6745;6738:12;6702:2;6784:92;6868:7;6859:6;6848:9;6844:22;6784:92;:::i;:::-;6766:110;;;;6628:258;5966:927;;;;;;;;:::o;6899:262::-;;7007:2;6995:9;6986:7;6982:23;6978:32;6975:2;;;7023:1;7020;7013:12;6975:2;7066:1;7091:53;7136:7;7127:6;7116:9;7112:22;7091:53;:::i;:::-;7081:63;;7037:117;6965:196;;;;:::o;7167:407::-;;;7292:2;7280:9;7271:7;7267:23;7263:32;7260:2;;;7308:1;7305;7298:12;7260:2;7351:1;7376:53;7421:7;7412:6;7401:9;7397:22;7376:53;:::i;:::-;7366:63;;7322:117;7478:2;7504:53;7549:7;7540:6;7529:9;7525:22;7504:53;:::i;:::-;7494:63;;7449:118;7250:324;;;;;:::o;7580:142::-;7683:32;7709:5;7683:32;:::i;:::-;7678:3;7671:45;7661:61;;:::o;7728:118::-;7815:24;7833:5;7815:24;:::i;:::-;7810:3;7803:37;7793:53;;:::o;7852:109::-;7933:21;7948:5;7933:21;:::i;:::-;7928:3;7921:34;7911:50;;:::o;7991:317::-;;8128:89;8210:6;8205:3;8128:89;:::i;:::-;8121:96;;8227:43;8263:6;8258:3;8251:5;8227:43;:::i;:::-;8295:6;8290:3;8286:16;8279:23;;8111:197;;;;;:::o;8314:364::-;;8430:39;8463:5;8430:39;:::i;:::-;8485:71;8549:6;8544:3;8485:71;:::i;:::-;8478:78;;8565:52;8610:6;8605:3;8598:4;8591:5;8587:16;8565:52;:::i;:::-;8642:29;8664:6;8642:29;:::i;:::-;8637:3;8633:39;8626:46;;8406:272;;;;;:::o;8684:377::-;;8818:39;8851:5;8818:39;:::i;:::-;8873:89;8955:6;8950:3;8873:89;:::i;:::-;8866:96;;8971:52;9016:6;9011:3;9004:4;8997:5;8993:16;8971:52;:::i;:::-;9048:6;9043:3;9039:16;9032:23;;8794:267;;;;;:::o;9067:118::-;9154:24;9172:5;9154:24;:::i;:::-;9149:3;9142:37;9132:53;;:::o;9191:295::-;;9355:105;9456:3;9447:6;9439;9355:105;:::i;:::-;9348:112;;9477:3;9470:10;;9337:149;;;;;:::o;9492:275::-;;9646:95;9737:3;9728:6;9646:95;:::i;:::-;9639:102;;9758:3;9751:10;;9628:139;;;;:::o;9773:222::-;;9904:2;9893:9;9889:18;9881:26;;9917:71;9985:1;9974:9;9970:17;9961:6;9917:71;:::i;:::-;9871:124;;;;:::o;10001:210::-;;10126:2;10115:9;10111:18;10103:26;;10139:65;10201:1;10190:9;10186:17;10177:6;10139:65;:::i;:::-;10093:118;;;;:::o;10217:313::-;;10368:2;10357:9;10353:18;10345:26;;10417:9;10411:4;10407:20;10403:1;10392:9;10388:17;10381:47;10445:78;10518:4;10509:6;10445:78;:::i;:::-;10437:86;;10335:195;;;;:::o;10536:222::-;;10667:2;10656:9;10652:18;10644:26;;10680:71;10748:1;10737:9;10733:17;10724:6;10680:71;:::i;:::-;10634:124;;;;:::o;10764:1374::-;;11201:3;11190:9;11186:19;11178:27;;11215:71;11283:1;11272:9;11268:17;11259:6;11215:71;:::i;:::-;11333:9;11327:4;11323:20;11318:2;11307:9;11303:18;11296:48;11361:78;11434:4;11425:6;11361:78;:::i;:::-;11353:86;;11486:9;11480:4;11476:20;11471:2;11460:9;11456:18;11449:48;11514:78;11587:4;11578:6;11514:78;:::i;:::-;11506:86;;11602:88;11686:2;11675:9;11671:18;11662:6;11602:88;:::i;:::-;11700:89;11784:3;11773:9;11769:19;11760:6;11700:89;:::i;:::-;11799;11883:3;11872:9;11868:19;11859:6;11799:89;:::i;:::-;11898:73;11966:3;11955:9;11951:19;11942:6;11898:73;:::i;:::-;11981;12049:3;12038:9;12034:19;12025:6;11981:73;:::i;:::-;12064:67;12126:3;12115:9;12111:19;12102:6;12064:67;:::i;:::-;11168:970;;;;;;;;;;;;:::o;12144:524::-;;;12284:11;12271:25;12384:1;12378:4;12374:12;12363:8;12347:14;12343:29;12339:48;12319:18;12315:73;12305:2;;12402:1;12399;12392:12;12305:2;12437:18;12427:8;12423:33;12415:41;;12489:4;12476:18;12466:28;;12517:18;12509:6;12506:30;12503:2;;;12549:1;12546;12539:12;12503:2;12580;12574:4;12570:13;12562:21;;12637:4;12629:6;12625:17;12609:14;12605:38;12599:4;12595:49;12592:2;;;12657:1;12654;12647:12;12592:2;12235:433;;;;;;:::o;12674:278::-;;12740:2;12734:9;12724:19;;12782:4;12774:6;12770:17;12889:6;12877:10;12874:22;12853:18;12841:10;12838:34;12835:62;12832:2;;;12900:13;;:::i;:::-;12832:2;12935:10;12931:2;12924:22;12714:238;;;;:::o;12958:326::-;;13109:18;13101:6;13098:30;13095:2;;;13131:13;;:::i;:::-;13095:2;13211:4;13207:9;13200:4;13192:6;13188:17;13184:33;13176:41;;13272:4;13266;13262:15;13254:23;;13024:260;;;:::o;13290:327::-;;13442:18;13434:6;13431:30;13428:2;;;13464:13;;:::i;:::-;13428:2;13544:4;13540:9;13533:4;13525:6;13521:17;13517:33;13509:41;;13605:4;13599;13595:15;13587:23;;13357:260;;;:::o;13623:99::-;;13709:5;13703:12;13693:22;;13682:40;;;:::o;13728:169::-;;13846:6;13841:3;13834:19;13886:4;13881:3;13877:14;13862:29;;13824:73;;;;:::o;13903:148::-;;14042:3;14027:18;;14017:34;;;;:::o;14057:96::-;;14123:24;14141:5;14123:24;:::i;:::-;14112:35;;14102:51;;;:::o;14159:104::-;;14233:24;14251:5;14233:24;:::i;:::-;14222:35;;14212:51;;;:::o;14269:90::-;;14346:5;14339:13;14332:21;14321:32;;14311:48;;;:::o;14365:149::-;;14441:66;14434:5;14430:78;14419:89;;14409:105;;;:::o;14520:126::-;;14597:42;14590:5;14586:54;14575:65;;14565:81;;;:::o;14652:77::-;;14718:5;14707:16;;14697:32;;;:::o;14735:154::-;14819:6;14814:3;14809;14796:30;14881:1;14872:6;14867:3;14863:16;14856:27;14786:103;;;:::o;14895:307::-;14963:1;14973:113;14987:6;14984:1;14981:13;14973:113;;;15072:1;15067:3;15063:11;15057:18;15053:1;15048:3;15044:11;15037:39;15009:2;15006:1;15002:10;14997:15;;14973:113;;;15104:6;15101:1;15098:13;15095:2;;;15184:1;15175:6;15170:3;15166:16;15159:27;15095:2;14944:258;;;;:::o;15208:48::-;15241:9;15262:102;;15354:2;15350:7;15345:2;15338:5;15334:14;15330:28;15320:38;;15310:54;;;:::o;15370:122::-;15443:24;15461:5;15443:24;:::i;:::-;15436:5;15433:35;15423:2;;15482:1;15479;15472:12;15423:2;15413:79;:::o;15498:116::-;15568:21;15583:5;15568:21;:::i;:::-;15561:5;15558:32;15548:2;;15604:1;15601;15594:12;15548:2;15538:76;:::o;15620:120::-;15692:23;15709:5;15692:23;:::i;:::-;15685:5;15682:34;15672:2;;15730:1;15727;15720:12;15672:2;15662:78;:::o;15746:122::-;15819:24;15837:5;15819:24;:::i;:::-;15812:5;15809:35;15799:2;;15858:1;15855;15848:12;15799:2;15789:79;:::o", + "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.21 <0.8.0;\npragma abicoder v2;\n\nimport \"./ERC721.sol\";\n\ncontract CryptoBoys is ERC721 {\n\n string public collectionName;\n string public collectionNameSymbol;\n\n uint256 public cryptoBoyCounter;\n\n struct CryptoBoy {\n uint256 tokenId;\n string tokenName;\n string tokenURI;\n address payable mintedBy;\n address payable currentOwner;\n address payable previousOwner;\n uint256 price;\n uint256 numberOfTransfers;\n bool forSale;\n }\n\n mapping(uint256 => CryptoBoy) public allCryptoBoys;\n\n mapping(string => bool) public tokenNameExists;\n mapping(string => bool) public colorExists;\n mapping(string => bool) public tokenURIExists;\n\n constructor() ERC721(\"Crypto Boys Collection\", \"CB\") {\n collectionName = name();\n collectionNameSymbol = symbol();\n }\n\n function mintCryptoBoy(string memory _name, string memory _tokenURI, uint256 _price, string[] calldata _colors) external {\n\n require(msg.sender != address(0));\n cryptoBoyCounter ++;\n require(!_exists(cryptoBoyCounter));\n\n for(uint i=0; i<_colors.length; i++) {\n require(!colorExists[_colors[i]]);\n }\n require(!tokenURIExists[_tokenURI]);\n require(!tokenNameExists[_name]);\n\n _mint(msg.sender, cryptoBoyCounter);\n _setTokenURI(cryptoBoyCounter, _tokenURI);\n\n for (uint i=0; i<_colors.length; i++) {\n colorExists[_colors[i]] = true;\n }\n tokenURIExists[_tokenURI] = true;\n tokenNameExists[_name] = true;\n\n CryptoBoy memory newCryptoBoy = CryptoBoy(\n cryptoBoyCounter,\n _name,\n _tokenURI,\n msg.sender,\n msg.sender,\n address(0),\n _price,\n 0,\n true);\n allCryptoBoys[cryptoBoyCounter] = newCryptoBoy;\n }\n\n function getTokenOwner(uint256 _tokenId) public view returns(address) {\n address _tokenOwner = ownerOf(_tokenId);\n return _tokenOwner;\n }\n\n function getTokenMetaData(uint _tokenId) public view returns(string memory) {\n string memory tokenMetaData = tokenURI(_tokenId);\n return tokenMetaData;\n }\n\n function getNumberOfTokensMinted() public view returns(uint256) {\n uint256 totalNumberOfTokensMinted = totalSupply();\n return totalNumberOfTokensMinted;\n }\n\n function getTotalNumberOfTokensOwnedByAnAddress(address _owner) public view returns(uint256) {\n uint256 totalNumberOfTokensOwned = balanceOf(_owner);\n return totalNumberOfTokensOwned;\n }\n\n function getTokenExists(uint256 _tokenId) public view returns(bool) {\n bool tokenExists = _exists(_tokenId);\n return tokenExists;\n }\n\n function buyToken(uint256 _tokenId) public payable {\n require(msg.sender != address(0));\n require(_exists(_tokenId));\n address tokenOwner = ownerOf(_tokenId);\n require(tokenOwner != address(0));\n require(tokenOwner != msg.sender);\n CryptoBoy memory cryptoboy = allCryptoBoys[_tokenId];\n require(msg.value >= cryptoboy.price);\n require(cryptoboy.forSale);\n _transfer(tokenOwner, msg.sender, _tokenId);\n address payable sendTo = cryptoboy.currentOwner;\n sendTo.transfer(msg.value);\n cryptoboy.previousOwner = cryptoboy.currentOwner;\n cryptoboy.currentOwner = msg.sender;\n cryptoboy.numberOfTransfers += 1;\n allCryptoBoys[_tokenId] = cryptoboy;\n }\n\n function changeTokenPrice(uint256 _tokenId, uint256 _newPrice) public {\n require(msg.sender != address(0));\n require(_exists(_tokenId));\n address tokenOwner = ownerOf(_tokenId);\n require(tokenOwner == msg.sender);\n CryptoBoy memory cryptoboy = allCryptoBoys[_tokenId];\n cryptoboy.price = _newPrice;\n allCryptoBoys[_tokenId] = cryptoboy;\n }\n\n function toggleForSale(uint256 _tokenId) public {\n require(msg.sender != address(0));\n require(_exists(_tokenId));\n address tokenOwner = ownerOf(_tokenId);\n require(tokenOwner == msg.sender);\n CryptoBoy memory cryptoboy = allCryptoBoys[_tokenId];\n if(cryptoboy.forSale) {\n cryptoboy.forSale = false;\n } else {\n cryptoboy.forSale = true;\n }\n allCryptoBoys[_tokenId] = cryptoboy;\n }\n}", + "sourcePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/CryptoBoys.sol", + "ast": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/CryptoBoys.sol", + "exportedSymbols": { + "Address": [1430], + "Context": [530], + "CryptoBoys": [507], + "ERC165": [781], + "ERC721": [3498], + "EnumerableMap": [2480], + "EnumerableSet": [1921], + "IERC165": [541], + "IERC721": [655], + "IERC721Enumerable": [709], + "IERC721Metadata": [680], + "IERC721Receiver": [726], + "SafeMath": [1135], + "Strings": [2566] + }, + "id": 508, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": ["solidity", ">=", "0.4", ".21", "<", "0.8", ".0"], + "nodeType": "PragmaDirective", + "src": "32:32:0" + }, + { + "id": 2, + "literals": ["abicoder", "v2"], + "nodeType": "PragmaDirective", + "src": "65:19:0" + }, + { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "file": "./ERC721.sol", + "id": 3, + "nodeType": "ImportDirective", + "scope": 508, + "sourceUnit": 3499, + "src": "86:22:0", + "symbolAliases": [], + "unitAlias": "" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 4, + "name": "ERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3498, + "src": "133:6:0", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC721_$3498", + "typeString": "contract ERC721" + } + }, + "id": 5, + "nodeType": "InheritanceSpecifier", + "src": "133:6:0" + } + ], + "contractDependencies": [530, 541, 655, 680, 709, 781, 3498], + "contractKind": "contract", + "fullyImplemented": true, + "id": 507, + "linearizedBaseContracts": [507, 3498, 709, 680, 655, 781, 541, 530], + "name": "CryptoBoys", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "e5326ab1", + "id": 7, + "mutability": "mutable", + "name": "collectionName", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "145:28:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 6, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "145:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "6f9507f9", + "id": 9, + "mutability": "mutable", + "name": "collectionNameSymbol", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "177:34:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 8, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "177:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "bffec202", + "id": 11, + "mutability": "mutable", + "name": "cryptoBoyCounter", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "216:31:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 10, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "216:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "canonicalName": "CryptoBoys.CryptoBoy", + "id": 30, + "members": [ + { + "constant": false, + "id": 13, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "276:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 12, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "276:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15, + "mutability": "mutable", + "name": "tokenName", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "297:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 14, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "297:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 17, + "mutability": "mutable", + "name": "tokenURI", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "319:15:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + }, + "typeName": { + "id": 16, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "319:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 19, + "mutability": "mutable", + "name": "mintedBy", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "340:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 18, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "340:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 21, + "mutability": "mutable", + "name": "currentOwner", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "370:28:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 20, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "370:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 23, + "mutability": "mutable", + "name": "previousOwner", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "404:29:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 22, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "404:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 25, + "mutability": "mutable", + "name": "price", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "439:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 24, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "439:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 27, + "mutability": "mutable", + "name": "numberOfTransfers", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "458:25:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "458:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 29, + "mutability": "mutable", + "name": "forSale", + "nodeType": "VariableDeclaration", + "scope": 30, + "src": "489:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 28, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "489:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "name": "CryptoBoy", + "nodeType": "StructDefinition", + "scope": 507, + "src": "253:253:0", + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "44c0d7eb", + "id": 34, + "mutability": "mutable", + "name": "allCryptoBoys", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "510:50:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CryptoBoy_$30_storage_$", + "typeString": "mapping(uint256 => struct CryptoBoys.CryptoBoy)" + }, + "typeName": { + "id": 33, + "keyType": { + "id": 31, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "518:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "510:29:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CryptoBoy_$30_storage_$", + "typeString": "mapping(uint256 => struct CryptoBoys.CryptoBoy)" + }, + "valueType": { + "id": 32, + "name": "CryptoBoy", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 30, + "src": "529:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_storage_ptr", + "typeString": "struct CryptoBoys.CryptoBoy" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "a46b1fac", + "id": 38, + "mutability": "mutable", + "name": "tokenNameExists", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "565:46:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_bool_$", + "typeString": "mapping(string => bool)" + }, + "typeName": { + "id": 37, + "keyType": { + "id": 35, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "573:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "nodeType": "Mapping", + "src": "565:23:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_bool_$", + "typeString": "mapping(string => bool)" + }, + "valueType": { + "id": 36, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "583:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "8d44807c", + "id": 42, + "mutability": "mutable", + "name": "colorExists", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "615:42:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_bool_$", + "typeString": "mapping(string => bool)" + }, + "typeName": { + "id": 41, + "keyType": { + "id": 39, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "623:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "nodeType": "Mapping", + "src": "615:23:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_bool_$", + "typeString": "mapping(string => bool)" + }, + "valueType": { + "id": 40, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "633:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "43d32ae7", + "id": 46, + "mutability": "mutable", + "name": "tokenURIExists", + "nodeType": "VariableDeclaration", + "scope": 507, + "src": "661:45:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_bool_$", + "typeString": "mapping(string => bool)" + }, + "typeName": { + "id": 45, + "keyType": { + "id": 43, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "669:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "nodeType": "Mapping", + "src": "661:23:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_bool_$", + "typeString": "mapping(string => bool)" + }, + "valueType": { + "id": 44, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "679:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "public" + }, + { + "body": { + "id": 63, + "nodeType": "Block", + "src": "764:71:0", + "statements": [ + { + "expression": { + "id": 56, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 53, + "name": "collectionName", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 7, + "src": "770:14:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 54, + "name": "name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2712, + "src": "787:4:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 55, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "787:6:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "770:23:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 57, + "nodeType": "ExpressionStatement", + "src": "770:23:0" + }, + { + "expression": { + "id": 61, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 58, + "name": "collectionNameSymbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 9, + "src": "799:20:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 59, + "name": "symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2722, + "src": "822:6:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 60, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "822:8:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "799:31:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 62, + "nodeType": "ExpressionStatement", + "src": "799:31:0" + } + ] + }, + "id": 64, + "implemented": true, + "kind": "constructor", + "modifiers": [ + { + "arguments": [ + { + "hexValue": "43727970746f20426f797320436f6c6c656374696f6e", + "id": 49, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "732:24:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6bd21d47952e87bf4ed68a38f30d9f592bb6ca944d7da76f649278092ff2a419", + "typeString": "literal_string \"Crypto Boys Collection\"" + }, + "value": "Crypto Boys Collection" + }, + { + "hexValue": "4342", + "id": 50, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "758:4:0", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_f95006aa3663cc8e3bd582fbf39ac42bd1b3e00e434f5d3ba4fe374b8527d29c", + "typeString": "literal_string \"CB\"" + }, + "value": "CB" + } + ], + "id": 51, + "modifierName": { + "id": 48, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "725:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "nodeType": "ModifierInvocation", + "src": "725:38:0" + } + ], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 47, + "nodeType": "ParameterList", + "parameters": [], + "src": "722:2:0" + }, + "returnParameters": { + "id": 52, + "nodeType": "ParameterList", + "parameters": [], + "src": "764:0:0" + }, + "scope": 507, + "src": "711:124:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 201, + "nodeType": "Block", + "src": "960:758:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 83, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 77, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "975:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 78, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "975:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 81, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "997:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "989:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 79, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "989:7:0", + "typeDescriptions": {} + } + }, + "id": 82, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "989:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "975:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 76, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "967:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 84, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "967:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 85, + "nodeType": "ExpressionStatement", + "src": "967:33:0" + }, + { + "expression": { + "id": 87, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1006:19:0", + "subExpression": { + "id": 86, + "name": "cryptoBoyCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11, + "src": "1006:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 88, + "nodeType": "ExpressionStatement", + "src": "1006:19:0" + }, + { + "expression": { + "arguments": [ + { + "id": 93, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1039:26:0", + "subExpression": { + "arguments": [ + { + "id": 91, + "name": "cryptoBoyCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11, + "src": "1048:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 90, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "1040:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 92, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1040:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 89, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1031:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 94, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1031:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 95, + "nodeType": "ExpressionStatement", + "src": "1031:35:0" + }, + { + "body": { + "id": 116, + "nodeType": "Block", + "src": "1110:48:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1126:24:0", + "subExpression": { + "baseExpression": { + "id": 108, + "name": "colorExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "1127:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_bool_$", + "typeString": "mapping(string memory => bool)" + } + }, + "id": 112, + "indexExpression": { + "baseExpression": { + "id": 109, + "name": "_colors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 73, + "src": "1139:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 111, + "indexExpression": { + "id": 110, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "1147:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1139:10:0", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1127:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 107, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1118:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1118:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 115, + "nodeType": "ExpressionStatement", + "src": "1118:33:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 100, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "1087:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 101, + "name": "_colors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 73, + "src": "1089:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 102, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1089:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1087:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 117, + "initializationExpression": { + "assignments": [97], + "declarations": [ + { + "constant": false, + "id": 97, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 117, + "src": "1077:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 96, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1077:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 99, + "initialValue": { + "hexValue": "30", + "id": 98, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1084:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1077:8:0" + }, + "loopExpression": { + "expression": { + "id": 105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1105:3:0", + "subExpression": { + "id": 104, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "1105:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 106, + "nodeType": "ExpressionStatement", + "src": "1105:3:0" + }, + "nodeType": "ForStatement", + "src": "1073:85:0" + }, + { + "expression": { + "arguments": [ + { + "id": 122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1171:26:0", + "subExpression": { + "baseExpression": { + "id": 119, + "name": "tokenURIExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "1172:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_bool_$", + "typeString": "mapping(string memory => bool)" + } + }, + "id": 121, + "indexExpression": { + "id": 120, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1187:9:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1172:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 118, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1163:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1163:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 124, + "nodeType": "ExpressionStatement", + "src": "1163:35:0" + }, + { + "expression": { + "arguments": [ + { + "id": 129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "1212:23:0", + "subExpression": { + "baseExpression": { + "id": 126, + "name": "tokenNameExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "1213:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_bool_$", + "typeString": "mapping(string memory => bool)" + } + }, + "id": 128, + "indexExpression": { + "id": 127, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 66, + "src": "1229:5:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1213:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 125, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "1204:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1204:32:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 131, + "nodeType": "ExpressionStatement", + "src": "1204:32:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 133, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1249:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 134, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1249:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 135, + "name": "cryptoBoyCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11, + "src": "1261:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 132, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "1243:5:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1243:35:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 137, + "nodeType": "ExpressionStatement", + "src": "1243:35:0" + }, + { + "expression": { + "arguments": [ + { + "id": 139, + "name": "cryptoBoyCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11, + "src": "1297:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 140, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1315:9:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 138, + "name": "_setTokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3393, + "src": "1284:12:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (uint256,string memory)" + } + }, + "id": 141, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1284:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 142, + "nodeType": "ExpressionStatement", + "src": "1284:41:0" + }, + { + "body": { + "id": 162, + "nodeType": "Block", + "src": "1370:45:0", + "statements": [ + { + "expression": { + "id": 160, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 154, + "name": "colorExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 42, + "src": "1378:11:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_bool_$", + "typeString": "mapping(string memory => bool)" + } + }, + "id": 158, + "indexExpression": { + "baseExpression": { + "id": 155, + "name": "_colors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 73, + "src": "1390:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 157, + "indexExpression": { + "id": 156, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 144, + "src": "1398:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "1390:10:0", + "typeDescriptions": { + "typeIdentifier": "t_string_calldata_ptr", + "typeString": "string calldata" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1378:23:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 159, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1404:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1378:30:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 161, + "nodeType": "ExpressionStatement", + "src": "1378:30:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 150, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 147, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 144, + "src": "1347:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "expression": { + "id": 148, + "name": "_colors", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 73, + "src": "1349:7:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string calldata[] calldata" + } + }, + "id": 149, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "1349:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1347:16:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 163, + "initializationExpression": { + "assignments": [144], + "declarations": [ + { + "constant": false, + "id": 144, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 163, + "src": "1337:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 143, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1337:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 146, + "initialValue": { + "hexValue": "30", + "id": 145, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1344:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1337:8:0" + }, + "loopExpression": { + "expression": { + "id": 152, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "1365:3:0", + "subExpression": { + "id": 151, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 144, + "src": "1365:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 153, + "nodeType": "ExpressionStatement", + "src": "1365:3:0" + }, + "nodeType": "ForStatement", + "src": "1332:83:0" + }, + { + "expression": { + "id": 168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 164, + "name": "tokenURIExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 46, + "src": "1420:14:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_bool_$", + "typeString": "mapping(string memory => bool)" + } + }, + "id": 166, + "indexExpression": { + "id": 165, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1435:9:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1420:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1448:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1420:32:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 169, + "nodeType": "ExpressionStatement", + "src": "1420:32:0" + }, + { + "expression": { + "id": 174, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 170, + "name": "tokenNameExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 38, + "src": "1458:15:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_string_memory_ptr_$_t_bool_$", + "typeString": "mapping(string memory => bool)" + } + }, + "id": 172, + "indexExpression": { + "id": 171, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 66, + "src": "1474:5:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1458:22:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 173, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1483:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "1458:29:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 175, + "nodeType": "ExpressionStatement", + "src": "1458:29:0" + }, + { + "assignments": [177], + "declarations": [ + { + "constant": false, + "id": 177, + "mutability": "mutable", + "name": "newCryptoBoy", + "nodeType": "VariableDeclaration", + "scope": 201, + "src": "1494:29:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy" + }, + "typeName": { + "id": 176, + "name": "CryptoBoy", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 30, + "src": "1494:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_storage_ptr", + "typeString": "struct CryptoBoys.CryptoBoy" + } + }, + "visibility": "internal" + } + ], + "id": 194, + "initialValue": { + "arguments": [ + { + "id": 179, + "name": "cryptoBoyCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11, + "src": "1541:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 180, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 66, + "src": "1563:5:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 181, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 68, + "src": "1574:9:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "expression": { + "id": 182, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1589:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 183, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1589:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "expression": { + "id": 184, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "1605:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "1605:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1629:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 187, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "1621:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 186, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1621:7:0", + "typeDescriptions": {} + } + }, + "id": 189, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1621:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 190, + "name": "_price", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 70, + "src": "1637:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "30", + "id": 191, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1649:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "74727565", + "id": 192, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1656:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 178, + "name": "CryptoBoy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 30, + "src": "1526:9:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_CryptoBoy_$30_storage_ptr_$", + "typeString": "type(struct CryptoBoys.CryptoBoy storage pointer)" + } + }, + "id": 193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1526:135:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1494:167:0" + }, + { + "expression": { + "id": 199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 195, + "name": "allCryptoBoys", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "1667:13:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CryptoBoy_$30_storage_$", + "typeString": "mapping(uint256 => struct CryptoBoys.CryptoBoy storage ref)" + } + }, + "id": 197, + "indexExpression": { + "id": 196, + "name": "cryptoBoyCounter", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 11, + "src": "1681:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "1667:31:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_storage", + "typeString": "struct CryptoBoys.CryptoBoy storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 198, + "name": "newCryptoBoy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "1701:12:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy memory" + } + }, + "src": "1667:46:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_storage", + "typeString": "struct CryptoBoys.CryptoBoy storage ref" + } + }, + "id": 200, + "nodeType": "ExpressionStatement", + "src": "1667:46:0" + } + ] + }, + "functionSelector": "9bfc5a59", + "id": 202, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mintCryptoBoy", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 74, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 66, + "mutability": "mutable", + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 202, + "src": "862:19:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 65, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "862:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 68, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 202, + "src": "883:23:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 67, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "883:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 70, + "mutability": "mutable", + "name": "_price", + "nodeType": "VariableDeclaration", + "scope": 202, + "src": "908:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 69, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "908:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 73, + "mutability": "mutable", + "name": "_colors", + "nodeType": "VariableDeclaration", + "scope": 202, + "src": "924:25:0", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr", + "typeString": "string[]" + }, + "typeName": { + "baseType": { + "id": 71, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "924:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "id": 72, + "nodeType": "ArrayTypeName", + "src": "924:8:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr", + "typeString": "string[]" + } + }, + "visibility": "internal" + } + ], + "src": "861:89:0" + }, + "returnParameters": { + "id": 75, + "nodeType": "ParameterList", + "parameters": [], + "src": "960:0:0" + }, + "scope": 507, + "src": "839:879:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "body": { + "id": 217, + "nodeType": "Block", + "src": "1792:74:0", + "statements": [ + { + "assignments": [210], + "declarations": [ + { + "constant": false, + "id": 210, + "mutability": "mutable", + "name": "_tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 217, + "src": "1798:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 209, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1798:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 214, + "initialValue": { + "arguments": [ + { + "id": 212, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 204, + "src": "1828:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 211, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2702, + "src": "1820:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 213, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1820:17:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1798:39:0" + }, + { + "expression": { + "id": 215, + "name": "_tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 210, + "src": "1850:11:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 208, + "id": 216, + "nodeType": "Return", + "src": "1843:18:0" + } + ] + }, + "functionSelector": "a5cd761f", + "id": 218, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 205, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 204, + "mutability": "mutable", + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "1745:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 203, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "1745:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1744:18:0" + }, + "returnParameters": { + "id": 208, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 207, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 218, + "src": "1783:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 206, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "1783:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "1782:9:0" + }, + "scope": 507, + "src": "1722:144:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 233, + "nodeType": "Block", + "src": "1946:85:0", + "statements": [ + { + "assignments": [226], + "declarations": [ + { + "constant": false, + "id": 226, + "mutability": "mutable", + "name": "tokenMetaData", + "nodeType": "VariableDeclaration", + "scope": 233, + "src": "1952:27:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 225, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1952:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 230, + "initialValue": { + "arguments": [ + { + "id": 228, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "1991:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 227, + "name": "tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2790, + "src": "1982:8:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$", + "typeString": "function (uint256) view returns (string memory)" + } + }, + "id": 229, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1982:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "1952:48:0" + }, + { + "expression": { + "id": 231, + "name": "tokenMetaData", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 226, + "src": "2013:13:0", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 224, + "id": 232, + "nodeType": "Return", + "src": "2006:20:0" + } + ] + }, + "functionSelector": "67c623cf", + "id": 234, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenMetaData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 221, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 220, + "mutability": "mutable", + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 234, + "src": "1896:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 219, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1896:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1895:15:0" + }, + "returnParameters": { + "id": 224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 223, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 234, + "src": "1931:13:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 222, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "1931:6:0", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "1930:15:0" + }, + "scope": 507, + "src": "1870:161:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 246, + "nodeType": "Block", + "src": "2099:98:0", + "statements": [ + { + "assignments": [240], + "declarations": [ + { + "constant": false, + "id": 240, + "mutability": "mutable", + "name": "totalNumberOfTokensMinted", + "nodeType": "VariableDeclaration", + "scope": 246, + "src": "2105:33:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 239, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2105:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 243, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 241, + "name": "totalSupply", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2830, + "src": "2141:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$", + "typeString": "function () view returns (uint256)" + } + }, + "id": 242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2141:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2105:49:0" + }, + { + "expression": { + "id": 244, + "name": "totalNumberOfTokensMinted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 240, + "src": "2167:25:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 238, + "id": 245, + "nodeType": "Return", + "src": "2160:32:0" + } + ] + }, + "functionSelector": "cc151f3a", + "id": 247, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getNumberOfTokensMinted", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 235, + "nodeType": "ParameterList", + "parameters": [], + "src": "2067:2:0" + }, + "returnParameters": { + "id": 238, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 237, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 247, + "src": "2090:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 236, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2090:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2089:9:0" + }, + "scope": 507, + "src": "2035:162:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 262, + "nodeType": "Block", + "src": "2294:100:0", + "statements": [ + { + "assignments": [255], + "declarations": [ + { + "constant": false, + "id": 255, + "mutability": "mutable", + "name": "totalNumberOfTokensOwned", + "nodeType": "VariableDeclaration", + "scope": 262, + "src": "2300:32:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 254, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2300:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 259, + "initialValue": { + "arguments": [ + { + "id": 257, + "name": "_owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 249, + "src": "2345:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 256, + "name": "balanceOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2686, + "src": "2335:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$", + "typeString": "function (address) view returns (uint256)" + } + }, + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2335:17:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2300:52:0" + }, + { + "expression": { + "id": 260, + "name": "totalNumberOfTokensOwned", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 255, + "src": "2365:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 253, + "id": 261, + "nodeType": "Return", + "src": "2358:31:0" + } + ] + }, + "functionSelector": "43902850", + "id": 263, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTotalNumberOfTokensOwnedByAnAddress", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 250, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 249, + "mutability": "mutable", + "name": "_owner", + "nodeType": "VariableDeclaration", + "scope": 263, + "src": "2249:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 248, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2249:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2248:16:0" + }, + "returnParameters": { + "id": 253, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 252, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 263, + "src": "2285:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2285:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2284:9:0" + }, + "scope": 507, + "src": "2201:193:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 278, + "nodeType": "Block", + "src": "2466:71:0", + "statements": [ + { + "assignments": [271], + "declarations": [ + { + "constant": false, + "id": 271, + "mutability": "mutable", + "name": "tokenExists", + "nodeType": "VariableDeclaration", + "scope": 278, + "src": "2472:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 270, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2472:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "id": 275, + "initialValue": { + "arguments": [ + { + "id": 273, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 265, + "src": "2499:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 272, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "2491:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 274, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2491:17:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2472:36:0" + }, + { + "expression": { + "id": 276, + "name": "tokenExists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 271, + "src": "2521:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 269, + "id": 277, + "nodeType": "Return", + "src": "2514:18:0" + } + ] + }, + "functionSelector": "142687f3", + "id": 279, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getTokenExists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 266, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 265, + "mutability": "mutable", + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 279, + "src": "2422:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 264, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2422:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2421:18:0" + }, + "returnParameters": { + "id": 269, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 268, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 279, + "src": "2460:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 267, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2460:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2459:6:0" + }, + "scope": 507, + "src": "2398:139:0", + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 386, + "nodeType": "Block", + "src": "2592:639:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 291, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 285, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2606:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2606:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 289, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2628:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 288, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2620:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 287, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2620:7:0", + "typeDescriptions": {} + } + }, + "id": 290, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2620:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2606:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 284, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2598:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2598:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 293, + "nodeType": "ExpressionStatement", + "src": "2598:33:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 296, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 281, + "src": "2653:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 295, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "2645:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2645:17:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 294, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2637:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2637:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 299, + "nodeType": "ExpressionStatement", + "src": "2637:26:0" + }, + { + "assignments": [301], + "declarations": [ + { + "constant": false, + "id": 301, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 386, + "src": "2669:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 300, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2669:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 305, + "initialValue": { + "arguments": [ + { + "id": 303, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 281, + "src": "2698:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 302, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2702, + "src": "2690:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2690:17:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2669:38:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 312, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 307, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 301, + "src": "2721:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 310, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2743:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 309, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "2735:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 308, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2735:7:0", + "typeDescriptions": {} + } + }, + "id": 311, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2735:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2721:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 306, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2713:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2713:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 314, + "nodeType": "ExpressionStatement", + "src": "2713:33:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 316, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 301, + "src": "2760:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "expression": { + "id": 317, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2774:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2774:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "2760:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 315, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2752:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2752:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 321, + "nodeType": "ExpressionStatement", + "src": "2752:33:0" + }, + { + "assignments": [323], + "declarations": [ + { + "constant": false, + "id": 323, + "mutability": "mutable", + "name": "cryptoboy", + "nodeType": "VariableDeclaration", + "scope": 386, + "src": "2791:26:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy" + }, + "typeName": { + "id": 322, + "name": "CryptoBoy", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 30, + "src": "2791:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_storage_ptr", + "typeString": "struct CryptoBoys.CryptoBoy" + } + }, + "visibility": "internal" + } + ], + "id": 327, + "initialValue": { + "baseExpression": { + "id": 324, + "name": "allCryptoBoys", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "2820:13:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CryptoBoy_$30_storage_$", + "typeString": "mapping(uint256 => struct CryptoBoys.CryptoBoy storage ref)" + } + }, + "id": 326, + "indexExpression": { + "id": 325, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 281, + "src": "2834:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "2820:23:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_storage", + "typeString": "struct CryptoBoys.CryptoBoy storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2791:52:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 329, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2857:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 330, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "2857:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "expression": { + "id": 331, + "name": "cryptoboy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "2870:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy memory" + } + }, + "id": 332, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "2870:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2857:28:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 328, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2849:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2849:37:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 335, + "nodeType": "ExpressionStatement", + "src": "2849:37:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 337, + "name": "cryptoboy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "2900:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy memory" + } + }, + "id": 338, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "forSale", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "2900:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 336, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "2892:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2892:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 340, + "nodeType": "ExpressionStatement", + "src": "2892:26:0" + }, + { + "expression": { + "arguments": [ + { + "id": 342, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 301, + "src": "2934:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "expression": { + "id": 343, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "2946:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "2946:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 345, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 281, + "src": "2958:8:0", + "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": 341, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "2924:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 346, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2924:43:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 347, + "nodeType": "ExpressionStatement", + "src": "2924:43:0" + }, + { + "assignments": [349], + "declarations": [ + { + "constant": false, + "id": 349, + "mutability": "mutable", + "name": "sendTo", + "nodeType": "VariableDeclaration", + "scope": 386, + "src": "2973:22:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 348, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2973:15:0", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "id": 352, + "initialValue": { + "expression": { + "id": 350, + "name": "cryptoboy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "2998:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy memory" + } + }, + "id": 351, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "currentOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 21, + "src": "2998:22:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "2973:47:0" + }, + { + "expression": { + "arguments": [ + { + "expression": { + "id": 356, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3042:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "value", + "nodeType": "MemberAccess", + "src": "3042:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 353, + "name": "sendTo", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 349, + "src": "3026:6:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "transfer", + "nodeType": "MemberAccess", + "src": "3026:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_transfer_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256)" + } + }, + "id": 358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3026:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 359, + "nodeType": "ExpressionStatement", + "src": "3026:26:0" + }, + { + "expression": { + "id": 365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 360, + "name": "cryptoboy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "3058:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy memory" + } + }, + "id": 362, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "previousOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 23, + "src": "3058:23:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 363, + "name": "cryptoboy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "3084:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy memory" + } + }, + "id": 364, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "currentOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 21, + "src": "3084:22:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3058:48:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 366, + "nodeType": "ExpressionStatement", + "src": "3058:48:0" + }, + { + "expression": { + "id": 372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 367, + "name": "cryptoboy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "3112:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy memory" + } + }, + "id": 369, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "currentOwner", + "nodeType": "MemberAccess", + "referencedDeclaration": 21, + "src": "3112:22:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 370, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3137:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3137:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3112:35:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 373, + "nodeType": "ExpressionStatement", + "src": "3112:35:0" + }, + { + "expression": { + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 374, + "name": "cryptoboy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "3153:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy memory" + } + }, + "id": 376, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "numberOfTransfers", + "nodeType": "MemberAccess", + "referencedDeclaration": 27, + "src": "3153:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "hexValue": "31", + "id": 377, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3184:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "3153:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 379, + "nodeType": "ExpressionStatement", + "src": "3153:32:0" + }, + { + "expression": { + "id": 384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 380, + "name": "allCryptoBoys", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "3191:13:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CryptoBoy_$30_storage_$", + "typeString": "mapping(uint256 => struct CryptoBoys.CryptoBoy storage ref)" + } + }, + "id": 382, + "indexExpression": { + "id": 381, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 281, + "src": "3205:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3191:23:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_storage", + "typeString": "struct CryptoBoys.CryptoBoy storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 383, + "name": "cryptoboy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 323, + "src": "3217:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy memory" + } + }, + "src": "3191:35:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_storage", + "typeString": "struct CryptoBoys.CryptoBoy storage ref" + } + }, + "id": 385, + "nodeType": "ExpressionStatement", + "src": "3191:35:0" + } + ] + }, + "functionSelector": "2d296bf1", + "id": 387, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "buyToken", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 282, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 281, + "mutability": "mutable", + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 387, + "src": "2559:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 280, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2559:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2558:18:0" + }, + "returnParameters": { + "id": 283, + "nodeType": "ParameterList", + "parameters": [], + "src": "2592:0:0" + }, + "scope": 507, + "src": "2541:690:0", + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 441, + "nodeType": "Block", + "src": "3305:291:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 395, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3319:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3319:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3341:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 398, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3333:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 397, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3333:7:0", + "typeDescriptions": {} + } + }, + "id": 400, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3333:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3319:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 394, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3311:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3311:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 403, + "nodeType": "ExpressionStatement", + "src": "3311:33:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 406, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "3366:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 405, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "3358:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 407, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3358:17:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 404, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3350:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3350:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 409, + "nodeType": "ExpressionStatement", + "src": "3350:26:0" + }, + { + "assignments": [411], + "declarations": [ + { + "constant": false, + "id": 411, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 441, + "src": "3382:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 410, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3382:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 415, + "initialValue": { + "arguments": [ + { + "id": 413, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "3411:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 412, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2702, + "src": "3403:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3403:17:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3382:38:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 417, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 411, + "src": "3434:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 418, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3448:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3448:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3434:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 416, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3426:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3426:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 422, + "nodeType": "ExpressionStatement", + "src": "3426:33:0" + }, + { + "assignments": [424], + "declarations": [ + { + "constant": false, + "id": 424, + "mutability": "mutable", + "name": "cryptoboy", + "nodeType": "VariableDeclaration", + "scope": 441, + "src": "3465:26:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy" + }, + "typeName": { + "id": 423, + "name": "CryptoBoy", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 30, + "src": "3465:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_storage_ptr", + "typeString": "struct CryptoBoys.CryptoBoy" + } + }, + "visibility": "internal" + } + ], + "id": 428, + "initialValue": { + "baseExpression": { + "id": 425, + "name": "allCryptoBoys", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "3494:13:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CryptoBoy_$30_storage_$", + "typeString": "mapping(uint256 => struct CryptoBoys.CryptoBoy storage ref)" + } + }, + "id": 427, + "indexExpression": { + "id": 426, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "3508:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3494:23:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_storage", + "typeString": "struct CryptoBoys.CryptoBoy storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3465:52:0" + }, + { + "expression": { + "id": 433, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 429, + "name": "cryptoboy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 424, + "src": "3523:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy memory" + } + }, + "id": 431, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "price", + "nodeType": "MemberAccess", + "referencedDeclaration": 25, + "src": "3523:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 432, + "name": "_newPrice", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 391, + "src": "3541:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3523:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 434, + "nodeType": "ExpressionStatement", + "src": "3523:27:0" + }, + { + "expression": { + "id": 439, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 435, + "name": "allCryptoBoys", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "3556:13:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CryptoBoy_$30_storage_$", + "typeString": "mapping(uint256 => struct CryptoBoys.CryptoBoy storage ref)" + } + }, + "id": 437, + "indexExpression": { + "id": 436, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 389, + "src": "3570:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3556:23:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_storage", + "typeString": "struct CryptoBoys.CryptoBoy storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 438, + "name": "cryptoboy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 424, + "src": "3582:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy memory" + } + }, + "src": "3556:35:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_storage", + "typeString": "struct CryptoBoys.CryptoBoy storage ref" + } + }, + "id": 440, + "nodeType": "ExpressionStatement", + "src": "3556:35:0" + } + ] + }, + "functionSelector": "62e8e8ac", + "id": 442, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "changeTokenPrice", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 392, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 389, + "mutability": "mutable", + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 442, + "src": "3261:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 388, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3261:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 391, + "mutability": "mutable", + "name": "_newPrice", + "nodeType": "VariableDeclaration", + "scope": 442, + "src": "3279:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 390, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3279:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3260:37:0" + }, + "returnParameters": { + "id": 393, + "nodeType": "ParameterList", + "parameters": [], + "src": "3305:0:0" + }, + "scope": 507, + "src": "3235:361:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 505, + "nodeType": "Block", + "src": "3648:370:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "id": 454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 448, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3662:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 449, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3662:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3684:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 451, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3676:7:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 450, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3676:7:0", + "typeDescriptions": {} + } + }, + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3676:10:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3662:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 447, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3654:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3654:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 456, + "nodeType": "ExpressionStatement", + "src": "3654:33:0" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 459, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 444, + "src": "3709:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 458, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "3701:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3701:17:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 457, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3693:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3693:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 462, + "nodeType": "ExpressionStatement", + "src": "3693:26:0" + }, + { + "assignments": [464], + "declarations": [ + { + "constant": false, + "id": 464, + "mutability": "mutable", + "name": "tokenOwner", + "nodeType": "VariableDeclaration", + "scope": 505, + "src": "3725:18:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 463, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3725:7:0", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 468, + "initialValue": { + "arguments": [ + { + "id": 466, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 444, + "src": "3754:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 465, + "name": "ownerOf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2702, + "src": "3746:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 467, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3746:17:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3725:38:0" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 470, + "name": "tokenOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 464, + "src": "3777:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "expression": { + "id": 471, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "3791:3:0", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "3791:10:0", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "3777:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 469, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [4294967278, 4294967278], + "referencedDeclaration": 4294967278, + "src": "3769:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$", + "typeString": "function (bool) pure" + } + }, + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3769:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 475, + "nodeType": "ExpressionStatement", + "src": "3769:33:0" + }, + { + "assignments": [477], + "declarations": [ + { + "constant": false, + "id": 477, + "mutability": "mutable", + "name": "cryptoboy", + "nodeType": "VariableDeclaration", + "scope": 505, + "src": "3808:26:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy" + }, + "typeName": { + "id": 476, + "name": "CryptoBoy", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 30, + "src": "3808:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_storage_ptr", + "typeString": "struct CryptoBoys.CryptoBoy" + } + }, + "visibility": "internal" + } + ], + "id": 481, + "initialValue": { + "baseExpression": { + "id": 478, + "name": "allCryptoBoys", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "3837:13:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CryptoBoy_$30_storage_$", + "typeString": "mapping(uint256 => struct CryptoBoys.CryptoBoy storage ref)" + } + }, + "id": 480, + "indexExpression": { + "id": 479, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 444, + "src": "3851:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "3837:23:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_storage", + "typeString": "struct CryptoBoys.CryptoBoy storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "3808:52:0" + }, + { + "condition": { + "expression": { + "id": 482, + "name": "cryptoboy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 477, + "src": "3869:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy memory" + } + }, + "id": 483, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "forSale", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "3869:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 497, + "nodeType": "Block", + "src": "3934:39:0", + "statements": [ + { + "expression": { + "id": 495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 491, + "name": "cryptoboy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 477, + "src": "3942:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy memory" + } + }, + "id": 493, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "forSale", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "3942:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 494, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3962:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "3942:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 496, + "nodeType": "ExpressionStatement", + "src": "3942:24:0" + } + ] + }, + "id": 498, + "nodeType": "IfStatement", + "src": "3866:107:0", + "trueBody": { + "id": 490, + "nodeType": "Block", + "src": "3888:40:0", + "statements": [ + { + "expression": { + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 484, + "name": "cryptoboy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 477, + "src": "3896:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy memory" + } + }, + "id": 486, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "forSale", + "nodeType": "MemberAccess", + "referencedDeclaration": 29, + "src": "3896:17:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "66616c7365", + "id": 487, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3916:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "src": "3896:25:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 489, + "nodeType": "ExpressionStatement", + "src": "3896:25:0" + } + ] + } + }, + { + "expression": { + "id": 503, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 499, + "name": "allCryptoBoys", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "3978:13:0", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_CryptoBoy_$30_storage_$", + "typeString": "mapping(uint256 => struct CryptoBoys.CryptoBoy storage ref)" + } + }, + "id": 501, + "indexExpression": { + "id": 500, + "name": "_tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 444, + "src": "3992:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "3978:23:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_storage", + "typeString": "struct CryptoBoys.CryptoBoy storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 502, + "name": "cryptoboy", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 477, + "src": "4004:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_memory_ptr", + "typeString": "struct CryptoBoys.CryptoBoy memory" + } + }, + "src": "3978:35:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$_CryptoBoy_$30_storage", + "typeString": "struct CryptoBoys.CryptoBoy storage ref" + } + }, + "id": 504, + "nodeType": "ExpressionStatement", + "src": "3978:35:0" + } + ] + }, + "functionSelector": "a32018b9", + "id": 506, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toggleForSale", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 444, + "mutability": "mutable", + "name": "_tokenId", + "nodeType": "VariableDeclaration", + "scope": 506, + "src": "3623:16:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 443, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3623:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3622:18:0" + }, + "returnParameters": { + "id": 446, + "nodeType": "ParameterList", + "parameters": [], + "src": "3648:0:0" + }, + "scope": 507, + "src": "3600:418:0", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 508, + "src": "110:3910:0" + } + ], + "src": "32:3988:0" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/CryptoBoys.sol", + "exportedSymbols": { + "Address": [1430], + "Context": [530], + "CryptoBoys": [507], + "ERC165": [781], + "ERC721": [3498], + "EnumerableMap": [2480], + "EnumerableSet": [1921], + "IERC165": [541], + "IERC721": [655], + "IERC721Enumerable": [709], + "IERC721Metadata": [680], + "IERC721Receiver": [726], + "SafeMath": [1135], + "Strings": [2566] + }, + "license": "MIT" + }, + "children": [ + { + "attributes": { + "literals": ["solidity", ">=", "0.4", ".21", "<", "0.8", ".0"] + }, + "id": 1, + "name": "PragmaDirective", + "src": "32:32:0" + }, + { + "attributes": { + "literals": ["abicoder", "v2"] + }, + "id": 2, + "name": "PragmaDirective", + "src": "65:19:0" + }, + { + "attributes": { + "SourceUnit": 3499, + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "file": "./ERC721.sol", + "scope": 508, + "symbolAliases": [null], + "unitAlias": "" + }, + "id": 3, + "name": "ImportDirective", + "src": "86:22:0" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [530, 541, 655, 680, 709, 781, 3498], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [507, 3498, 709, 680, 655, 781, 541, 530], + "name": "CryptoBoys", + "scope": 508 + }, + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "ERC721", + "referencedDeclaration": 3498, + "type": "contract ERC721" + }, + "id": 4, + "name": "UserDefinedTypeName", + "src": "133:6:0" + } + ], + "id": 5, + "name": "InheritanceSpecifier", + "src": "133:6:0" + }, + { + "attributes": { + "constant": false, + "functionSelector": "e5326ab1", + "mutability": "mutable", + "name": "collectionName", + "scope": 507, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 6, + "name": "ElementaryTypeName", + "src": "145:6:0" + } + ], + "id": 7, + "name": "VariableDeclaration", + "src": "145:28:0" + }, + { + "attributes": { + "constant": false, + "functionSelector": "6f9507f9", + "mutability": "mutable", + "name": "collectionNameSymbol", + "scope": 507, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 8, + "name": "ElementaryTypeName", + "src": "177:6:0" + } + ], + "id": 9, + "name": "VariableDeclaration", + "src": "177:34:0" + }, + { + "attributes": { + "constant": false, + "functionSelector": "bffec202", + "mutability": "mutable", + "name": "cryptoBoyCounter", + "scope": 507, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 10, + "name": "ElementaryTypeName", + "src": "216:7:0" + } + ], + "id": 11, + "name": "VariableDeclaration", + "src": "216:31:0" + }, + { + "attributes": { + "canonicalName": "CryptoBoys.CryptoBoy", + "name": "CryptoBoy", + "scope": 507, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 30, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 12, + "name": "ElementaryTypeName", + "src": "276:7:0" + } + ], + "id": 13, + "name": "VariableDeclaration", + "src": "276:15:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenName", + "scope": 30, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 14, + "name": "ElementaryTypeName", + "src": "297:6:0" + } + ], + "id": 15, + "name": "VariableDeclaration", + "src": "297:16:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenURI", + "scope": 30, + "stateVariable": false, + "storageLocation": "default", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 16, + "name": "ElementaryTypeName", + "src": "319:6:0" + } + ], + "id": 17, + "name": "VariableDeclaration", + "src": "319:15:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "mintedBy", + "scope": 30, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 18, + "name": "ElementaryTypeName", + "src": "340:15:0" + } + ], + "id": 19, + "name": "VariableDeclaration", + "src": "340:24:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "currentOwner", + "scope": 30, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 20, + "name": "ElementaryTypeName", + "src": "370:15:0" + } + ], + "id": 21, + "name": "VariableDeclaration", + "src": "370:28:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "previousOwner", + "scope": 30, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 22, + "name": "ElementaryTypeName", + "src": "404:15:0" + } + ], + "id": 23, + "name": "VariableDeclaration", + "src": "404:29:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "price", + "scope": 30, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 24, + "name": "ElementaryTypeName", + "src": "439:7:0" + } + ], + "id": 25, + "name": "VariableDeclaration", + "src": "439:13:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "numberOfTransfers", + "scope": 30, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 26, + "name": "ElementaryTypeName", + "src": "458:7:0" + } + ], + "id": 27, + "name": "VariableDeclaration", + "src": "458:25:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "forSale", + "scope": 30, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 28, + "name": "ElementaryTypeName", + "src": "489:4:0" + } + ], + "id": 29, + "name": "VariableDeclaration", + "src": "489:12:0" + } + ], + "id": 30, + "name": "StructDefinition", + "src": "253:253:0" + }, + { + "attributes": { + "constant": false, + "functionSelector": "44c0d7eb", + "mutability": "mutable", + "name": "allCryptoBoys", + "scope": 507, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => struct CryptoBoys.CryptoBoy)", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => struct CryptoBoys.CryptoBoy)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 31, + "name": "ElementaryTypeName", + "src": "518:7:0" + }, + { + "attributes": { + "name": "CryptoBoy", + "referencedDeclaration": 30, + "type": "struct CryptoBoys.CryptoBoy" + }, + "id": 32, + "name": "UserDefinedTypeName", + "src": "529:9:0" + } + ], + "id": 33, + "name": "Mapping", + "src": "510:29:0" + } + ], + "id": 34, + "name": "VariableDeclaration", + "src": "510:50:0" + }, + { + "attributes": { + "constant": false, + "functionSelector": "a46b1fac", + "mutability": "mutable", + "name": "tokenNameExists", + "scope": 507, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(string => bool)", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(string => bool)" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 35, + "name": "ElementaryTypeName", + "src": "573:6:0" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 36, + "name": "ElementaryTypeName", + "src": "583:4:0" + } + ], + "id": 37, + "name": "Mapping", + "src": "565:23:0" + } + ], + "id": 38, + "name": "VariableDeclaration", + "src": "565:46:0" + }, + { + "attributes": { + "constant": false, + "functionSelector": "8d44807c", + "mutability": "mutable", + "name": "colorExists", + "scope": 507, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(string => bool)", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(string => bool)" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 39, + "name": "ElementaryTypeName", + "src": "623:6:0" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 40, + "name": "ElementaryTypeName", + "src": "633:4:0" + } + ], + "id": 41, + "name": "Mapping", + "src": "615:23:0" + } + ], + "id": 42, + "name": "VariableDeclaration", + "src": "615:42:0" + }, + { + "attributes": { + "constant": false, + "functionSelector": "43d32ae7", + "mutability": "mutable", + "name": "tokenURIExists", + "scope": 507, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(string => bool)", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "type": "mapping(string => bool)" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 43, + "name": "ElementaryTypeName", + "src": "669:6:0" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 44, + "name": "ElementaryTypeName", + "src": "679:4:0" + } + ], + "id": 45, + "name": "Mapping", + "src": "661:23:0" + } + ], + "id": 46, + "name": "VariableDeclaration", + "src": "661:45:0" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "name": "", + "scope": 507, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "parameters": [null] + }, + "children": [], + "id": 47, + "name": "ParameterList", + "src": "722:2:0" + }, + { + "attributes": { + "parameters": [null] + }, + "children": [], + "id": 52, + "name": "ParameterList", + "src": "764:0:0" + }, + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 48, + "name": "Identifier", + "src": "725:6:0" + }, + { + "attributes": { + "hexvalue": "43727970746f20426f797320436f6c6c656374696f6e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Crypto Boys Collection\"", + "value": "Crypto Boys Collection" + }, + "id": 49, + "name": "Literal", + "src": "732:24:0" + }, + { + "attributes": { + "hexvalue": "4342", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"CB\"", + "value": "CB" + }, + "id": 50, + "name": "Literal", + "src": "758:4:0" + } + ], + "id": 51, + "name": "ModifierInvocation", + "src": "725:38:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 7, + "type": "string storage ref", + "value": "collectionName" + }, + "id": 53, + "name": "Identifier", + "src": "770:14:0" + }, + { + "attributes": { + "arguments": [null], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [null], + "overloadedDeclarations": [null], + "referencedDeclaration": 2712, + "type": "function () view returns (string memory)", + "value": "name" + }, + "id": 54, + "name": "Identifier", + "src": "787:4:0" + } + ], + "id": 55, + "name": "FunctionCall", + "src": "787:6:0" + } + ], + "id": 56, + "name": "Assignment", + "src": "770:23:0" + } + ], + "id": 57, + "name": "ExpressionStatement", + "src": "770:23:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 9, + "type": "string storage ref", + "value": "collectionNameSymbol" + }, + "id": 58, + "name": "Identifier", + "src": "799:20:0" + }, + { + "attributes": { + "arguments": [null], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [null], + "overloadedDeclarations": [null], + "referencedDeclaration": 2722, + "type": "function () view returns (string memory)", + "value": "symbol" + }, + "id": 59, + "name": "Identifier", + "src": "822:6:0" + } + ], + "id": 60, + "name": "FunctionCall", + "src": "822:8:0" + } + ], + "id": 61, + "name": "Assignment", + "src": "799:31:0" + } + ], + "id": 62, + "name": "ExpressionStatement", + "src": "799:31:0" + } + ], + "id": 63, + "name": "Block", + "src": "764:71:0" + } + ], + "id": 64, + "name": "FunctionDefinition", + "src": "711:124:0" + }, + { + "attributes": { + "functionSelector": "9bfc5a59", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [null], + "name": "mintCryptoBoy", + "scope": 507, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_name", + "scope": 202, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 65, + "name": "ElementaryTypeName", + "src": "862:6:0" + } + ], + "id": 66, + "name": "VariableDeclaration", + "src": "862:19:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 202, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 67, + "name": "ElementaryTypeName", + "src": "883:6:0" + } + ], + "id": 68, + "name": "VariableDeclaration", + "src": "883:23:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_price", + "scope": 202, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 69, + "name": "ElementaryTypeName", + "src": "908:7:0" + } + ], + "id": 70, + "name": "VariableDeclaration", + "src": "908:14:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_colors", + "scope": 202, + "stateVariable": false, + "storageLocation": "calldata", + "type": "string[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "string[]" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 71, + "name": "ElementaryTypeName", + "src": "924:6:0" + } + ], + "id": 72, + "name": "ArrayTypeName", + "src": "924:8:0" + } + ], + "id": 73, + "name": "VariableDeclaration", + "src": "924:25:0" + } + ], + "id": 74, + "name": "ParameterList", + "src": "861:89:0" + }, + { + "attributes": { + "parameters": [null] + }, + "children": [], + "id": 75, + "name": "ParameterList", + "src": "960:0:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool) pure", + "value": "require" + }, + "id": 76, + "name": "Identifier", + "src": "967:7:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 77, + "name": "Identifier", + "src": "975:3:0" + } + ], + "id": 78, + "name": "MemberAccess", + "src": "975:10:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 79, + "name": "ElementaryTypeName", + "src": "989:7:0" + } + ], + "id": 80, + "name": "ElementaryTypeNameExpression", + "src": "989:7:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 81, + "name": "Literal", + "src": "997:1:0" + } + ], + "id": 82, + "name": "FunctionCall", + "src": "989:10:0" + } + ], + "id": 83, + "name": "BinaryOperation", + "src": "975:24:0" + } + ], + "id": 84, + "name": "FunctionCall", + "src": "967:33:0" + } + ], + "id": 85, + "name": "ExpressionStatement", + "src": "967:33:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 11, + "type": "uint256", + "value": "cryptoBoyCounter" + }, + "id": 86, + "name": "Identifier", + "src": "1006:16:0" + } + ], + "id": 87, + "name": "UnaryOperation", + "src": "1006:19:0" + } + ], + "id": 88, + "name": "ExpressionStatement", + "src": "1006:19:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool) pure", + "value": "require" + }, + "id": 89, + "name": "Identifier", + "src": "1031:7:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [null], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 90, + "name": "Identifier", + "src": "1040:7:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 11, + "type": "uint256", + "value": "cryptoBoyCounter" + }, + "id": 91, + "name": "Identifier", + "src": "1048:16:0" + } + ], + "id": 92, + "name": "FunctionCall", + "src": "1040:25:0" + } + ], + "id": 93, + "name": "UnaryOperation", + "src": "1039:26:0" + } + ], + "id": 94, + "name": "FunctionCall", + "src": "1031:35:0" + } + ], + "id": 95, + "name": "ExpressionStatement", + "src": "1031:35:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [97] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "i", + "scope": 117, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 96, + "name": "ElementaryTypeName", + "src": "1077:4:0" + } + ], + "id": 97, + "name": "VariableDeclaration", + "src": "1077:6:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 98, + "name": "Literal", + "src": "1084:1:0" + } + ], + "id": 99, + "name": "VariableDeclarationStatement", + "src": "1077:8:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 97, + "type": "uint256", + "value": "i" + }, + "id": 100, + "name": "Identifier", + "src": "1087:1:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 73, + "type": "string calldata[] calldata", + "value": "_colors" + }, + "id": 101, + "name": "Identifier", + "src": "1089:7:0" + } + ], + "id": 102, + "name": "MemberAccess", + "src": "1089:14:0" + } + ], + "id": 103, + "name": "BinaryOperation", + "src": "1087:16:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 97, + "type": "uint256", + "value": "i" + }, + "id": 104, + "name": "Identifier", + "src": "1105:1:0" + } + ], + "id": 105, + "name": "UnaryOperation", + "src": "1105:3:0" + } + ], + "id": 106, + "name": "ExpressionStatement", + "src": "1105:3:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool) pure", + "value": "require" + }, + "id": 107, + "name": "Identifier", + "src": "1118:7:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 42, + "type": "mapping(string memory => bool)", + "value": "colorExists" + }, + "id": 108, + "name": "Identifier", + "src": "1127:11:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "string calldata" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 73, + "type": "string calldata[] calldata", + "value": "_colors" + }, + "id": 109, + "name": "Identifier", + "src": "1139:7:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 97, + "type": "uint256", + "value": "i" + }, + "id": 110, + "name": "Identifier", + "src": "1147:1:0" + } + ], + "id": 111, + "name": "IndexAccess", + "src": "1139:10:0" + } + ], + "id": 112, + "name": "IndexAccess", + "src": "1127:23:0" + } + ], + "id": 113, + "name": "UnaryOperation", + "src": "1126:24:0" + } + ], + "id": 114, + "name": "FunctionCall", + "src": "1118:33:0" + } + ], + "id": 115, + "name": "ExpressionStatement", + "src": "1118:33:0" + } + ], + "id": 116, + "name": "Block", + "src": "1110:48:0" + } + ], + "id": 117, + "name": "ForStatement", + "src": "1073:85:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool) pure", + "value": "require" + }, + "id": 118, + "name": "Identifier", + "src": "1163:7:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 46, + "type": "mapping(string memory => bool)", + "value": "tokenURIExists" + }, + "id": 119, + "name": "Identifier", + "src": "1172:14:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 68, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 120, + "name": "Identifier", + "src": "1187:9:0" + } + ], + "id": 121, + "name": "IndexAccess", + "src": "1172:25:0" + } + ], + "id": 122, + "name": "UnaryOperation", + "src": "1171:26:0" + } + ], + "id": 123, + "name": "FunctionCall", + "src": "1163:35:0" + } + ], + "id": 124, + "name": "ExpressionStatement", + "src": "1163:35:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool) pure", + "value": "require" + }, + "id": 125, + "name": "Identifier", + "src": "1204:7:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 38, + "type": "mapping(string memory => bool)", + "value": "tokenNameExists" + }, + "id": 126, + "name": "Identifier", + "src": "1213:15:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 66, + "type": "string memory", + "value": "_name" + }, + "id": 127, + "name": "Identifier", + "src": "1229:5:0" + } + ], + "id": 128, + "name": "IndexAccess", + "src": "1213:22:0" + } + ], + "id": 129, + "name": "UnaryOperation", + "src": "1212:23:0" + } + ], + "id": 130, + "name": "FunctionCall", + "src": "1204:32:0" + } + ], + "id": 131, + "name": "ExpressionStatement", + "src": "1204:32:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [null], + "referencedDeclaration": 3230, + "type": "function (address,uint256)", + "value": "_mint" + }, + "id": 132, + "name": "Identifier", + "src": "1243:5:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 133, + "name": "Identifier", + "src": "1249:3:0" + } + ], + "id": 134, + "name": "MemberAccess", + "src": "1249:10:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 11, + "type": "uint256", + "value": "cryptoBoyCounter" + }, + "id": 135, + "name": "Identifier", + "src": "1261:16:0" + } + ], + "id": 136, + "name": "FunctionCall", + "src": "1243:35:0" + } + ], + "id": 137, + "name": "ExpressionStatement", + "src": "1243:35:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [null], + "referencedDeclaration": 3393, + "type": "function (uint256,string memory)", + "value": "_setTokenURI" + }, + "id": 138, + "name": "Identifier", + "src": "1284:12:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 11, + "type": "uint256", + "value": "cryptoBoyCounter" + }, + "id": 139, + "name": "Identifier", + "src": "1297:16:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 68, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 140, + "name": "Identifier", + "src": "1315:9:0" + } + ], + "id": 141, + "name": "FunctionCall", + "src": "1284:41:0" + } + ], + "id": 142, + "name": "ExpressionStatement", + "src": "1284:41:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [144] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "i", + "scope": 163, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 143, + "name": "ElementaryTypeName", + "src": "1337:4:0" + } + ], + "id": 144, + "name": "VariableDeclaration", + "src": "1337:6:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 145, + "name": "Literal", + "src": "1344:1:0" + } + ], + "id": 146, + "name": "VariableDeclarationStatement", + "src": "1337:8:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 144, + "type": "uint256", + "value": "i" + }, + "id": 147, + "name": "Identifier", + "src": "1347:1:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 73, + "type": "string calldata[] calldata", + "value": "_colors" + }, + "id": 148, + "name": "Identifier", + "src": "1349:7:0" + } + ], + "id": 149, + "name": "MemberAccess", + "src": "1349:14:0" + } + ], + "id": 150, + "name": "BinaryOperation", + "src": "1347:16:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 144, + "type": "uint256", + "value": "i" + }, + "id": 151, + "name": "Identifier", + "src": "1365:1:0" + } + ], + "id": 152, + "name": "UnaryOperation", + "src": "1365:3:0" + } + ], + "id": 153, + "name": "ExpressionStatement", + "src": "1365:3:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 42, + "type": "mapping(string memory => bool)", + "value": "colorExists" + }, + "id": 154, + "name": "Identifier", + "src": "1378:11:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "string calldata" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 73, + "type": "string calldata[] calldata", + "value": "_colors" + }, + "id": 155, + "name": "Identifier", + "src": "1390:7:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 144, + "type": "uint256", + "value": "i" + }, + "id": 156, + "name": "Identifier", + "src": "1398:1:0" + } + ], + "id": 157, + "name": "IndexAccess", + "src": "1390:10:0" + } + ], + "id": 158, + "name": "IndexAccess", + "src": "1378:23:0" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 159, + "name": "Literal", + "src": "1404:4:0" + } + ], + "id": 160, + "name": "Assignment", + "src": "1378:30:0" + } + ], + "id": 161, + "name": "ExpressionStatement", + "src": "1378:30:0" + } + ], + "id": 162, + "name": "Block", + "src": "1370:45:0" + } + ], + "id": 163, + "name": "ForStatement", + "src": "1332:83:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 46, + "type": "mapping(string memory => bool)", + "value": "tokenURIExists" + }, + "id": 164, + "name": "Identifier", + "src": "1420:14:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 68, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 165, + "name": "Identifier", + "src": "1435:9:0" + } + ], + "id": 166, + "name": "IndexAccess", + "src": "1420:25:0" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 167, + "name": "Literal", + "src": "1448:4:0" + } + ], + "id": 168, + "name": "Assignment", + "src": "1420:32:0" + } + ], + "id": 169, + "name": "ExpressionStatement", + "src": "1420:32:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 38, + "type": "mapping(string memory => bool)", + "value": "tokenNameExists" + }, + "id": 170, + "name": "Identifier", + "src": "1458:15:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 66, + "type": "string memory", + "value": "_name" + }, + "id": 171, + "name": "Identifier", + "src": "1474:5:0" + } + ], + "id": 172, + "name": "IndexAccess", + "src": "1458:22:0" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 173, + "name": "Literal", + "src": "1483:4:0" + } + ], + "id": 174, + "name": "Assignment", + "src": "1458:29:0" + } + ], + "id": 175, + "name": "ExpressionStatement", + "src": "1458:29:0" + }, + { + "attributes": { + "assignments": [177] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "newCryptoBoy", + "scope": 201, + "stateVariable": false, + "storageLocation": "memory", + "type": "struct CryptoBoys.CryptoBoy", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "CryptoBoy", + "referencedDeclaration": 30, + "type": "struct CryptoBoys.CryptoBoy" + }, + "id": 176, + "name": "UserDefinedTypeName", + "src": "1494:9:0" + } + ], + "id": 177, + "name": "VariableDeclaration", + "src": "1494:29:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": true, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "struct CryptoBoys.CryptoBoy memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [null], + "referencedDeclaration": 30, + "type": "type(struct CryptoBoys.CryptoBoy storage pointer)", + "value": "CryptoBoy" + }, + "id": 178, + "name": "Identifier", + "src": "1526:9:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 11, + "type": "uint256", + "value": "cryptoBoyCounter" + }, + "id": 179, + "name": "Identifier", + "src": "1541:16:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 66, + "type": "string memory", + "value": "_name" + }, + "id": 180, + "name": "Identifier", + "src": "1563:5:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 68, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 181, + "name": "Identifier", + "src": "1574:9:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 182, + "name": "Identifier", + "src": "1589:3:0" + } + ], + "id": 183, + "name": "MemberAccess", + "src": "1589:10:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 184, + "name": "Identifier", + "src": "1605:3:0" + } + ], + "id": 185, + "name": "MemberAccess", + "src": "1605:10:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 186, + "name": "ElementaryTypeName", + "src": "1621:7:0" + } + ], + "id": 187, + "name": "ElementaryTypeNameExpression", + "src": "1621:7:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 188, + "name": "Literal", + "src": "1629:1:0" + } + ], + "id": 189, + "name": "FunctionCall", + "src": "1621:10:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 70, + "type": "uint256", + "value": "_price" + }, + "id": 190, + "name": "Identifier", + "src": "1637:6:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 191, + "name": "Literal", + "src": "1649:1:0" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 192, + "name": "Literal", + "src": "1656:4:0" + } + ], + "id": 193, + "name": "FunctionCall", + "src": "1526:135:0" + } + ], + "id": 194, + "name": "VariableDeclarationStatement", + "src": "1494:167:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct CryptoBoys.CryptoBoy storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct CryptoBoys.CryptoBoy storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 34, + "type": "mapping(uint256 => struct CryptoBoys.CryptoBoy storage ref)", + "value": "allCryptoBoys" + }, + "id": 195, + "name": "Identifier", + "src": "1667:13:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 11, + "type": "uint256", + "value": "cryptoBoyCounter" + }, + "id": 196, + "name": "Identifier", + "src": "1681:16:0" + } + ], + "id": 197, + "name": "IndexAccess", + "src": "1667:31:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 177, + "type": "struct CryptoBoys.CryptoBoy memory", + "value": "newCryptoBoy" + }, + "id": 198, + "name": "Identifier", + "src": "1701:12:0" + } + ], + "id": 199, + "name": "Assignment", + "src": "1667:46:0" + } + ], + "id": 200, + "name": "ExpressionStatement", + "src": "1667:46:0" + } + ], + "id": 201, + "name": "Block", + "src": "960:758:0" + } + ], + "id": 202, + "name": "FunctionDefinition", + "src": "839:879:0" + }, + { + "attributes": { + "functionSelector": "a5cd761f", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [null], + "name": "getTokenOwner", + "scope": 507, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenId", + "scope": 218, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 203, + "name": "ElementaryTypeName", + "src": "1745:7:0" + } + ], + "id": 204, + "name": "VariableDeclaration", + "src": "1745:16:0" + } + ], + "id": 205, + "name": "ParameterList", + "src": "1744:18:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 218, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 206, + "name": "ElementaryTypeName", + "src": "1783:7:0" + } + ], + "id": 207, + "name": "VariableDeclaration", + "src": "1783:7:0" + } + ], + "id": 208, + "name": "ParameterList", + "src": "1782:9:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [210] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenOwner", + "scope": 217, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 209, + "name": "ElementaryTypeName", + "src": "1798:7:0" + } + ], + "id": 210, + "name": "VariableDeclaration", + "src": "1798:19:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [null], + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)", + "value": "ownerOf" + }, + "id": 211, + "name": "Identifier", + "src": "1820:7:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 204, + "type": "uint256", + "value": "_tokenId" + }, + "id": 212, + "name": "Identifier", + "src": "1828:8:0" + } + ], + "id": 213, + "name": "FunctionCall", + "src": "1820:17:0" + } + ], + "id": 214, + "name": "VariableDeclarationStatement", + "src": "1798:39:0" + }, + { + "attributes": { + "functionReturnParameters": 208 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 210, + "type": "address", + "value": "_tokenOwner" + }, + "id": 215, + "name": "Identifier", + "src": "1850:11:0" + } + ], + "id": 216, + "name": "Return", + "src": "1843:18:0" + } + ], + "id": 217, + "name": "Block", + "src": "1792:74:0" + } + ], + "id": 218, + "name": "FunctionDefinition", + "src": "1722:144:0" + }, + { + "attributes": { + "functionSelector": "67c623cf", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [null], + "name": "getTokenMetaData", + "scope": 507, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenId", + "scope": 234, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 219, + "name": "ElementaryTypeName", + "src": "1896:4:0" + } + ], + "id": 220, + "name": "VariableDeclaration", + "src": "1896:13:0" + } + ], + "id": 221, + "name": "ParameterList", + "src": "1895:15:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 234, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 222, + "name": "ElementaryTypeName", + "src": "1931:6:0" + } + ], + "id": 223, + "name": "VariableDeclaration", + "src": "1931:13:0" + } + ], + "id": 224, + "name": "ParameterList", + "src": "1930:15:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [226] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenMetaData", + "scope": 233, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 225, + "name": "ElementaryTypeName", + "src": "1952:6:0" + } + ], + "id": 226, + "name": "VariableDeclaration", + "src": "1952:27:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [null], + "referencedDeclaration": 2790, + "type": "function (uint256) view returns (string memory)", + "value": "tokenURI" + }, + "id": 227, + "name": "Identifier", + "src": "1982:8:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 220, + "type": "uint256", + "value": "_tokenId" + }, + "id": 228, + "name": "Identifier", + "src": "1991:8:0" + } + ], + "id": 229, + "name": "FunctionCall", + "src": "1982:18:0" + } + ], + "id": 230, + "name": "VariableDeclarationStatement", + "src": "1952:48:0" + }, + { + "attributes": { + "functionReturnParameters": 224 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 226, + "type": "string memory", + "value": "tokenMetaData" + }, + "id": 231, + "name": "Identifier", + "src": "2013:13:0" + } + ], + "id": 232, + "name": "Return", + "src": "2006:20:0" + } + ], + "id": 233, + "name": "Block", + "src": "1946:85:0" + } + ], + "id": 234, + "name": "FunctionDefinition", + "src": "1870:161:0" + }, + { + "attributes": { + "functionSelector": "cc151f3a", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [null], + "name": "getNumberOfTokensMinted", + "scope": 507, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "parameters": [null] + }, + "children": [], + "id": 235, + "name": "ParameterList", + "src": "2067:2:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 247, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 236, + "name": "ElementaryTypeName", + "src": "2090:7:0" + } + ], + "id": 237, + "name": "VariableDeclaration", + "src": "2090:7:0" + } + ], + "id": 238, + "name": "ParameterList", + "src": "2089:9:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [240] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "totalNumberOfTokensMinted", + "scope": 246, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 239, + "name": "ElementaryTypeName", + "src": "2105:7:0" + } + ], + "id": 240, + "name": "VariableDeclaration", + "src": "2105:33:0" + }, + { + "attributes": { + "arguments": [null], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [null], + "overloadedDeclarations": [null], + "referencedDeclaration": 2830, + "type": "function () view returns (uint256)", + "value": "totalSupply" + }, + "id": 241, + "name": "Identifier", + "src": "2141:11:0" + } + ], + "id": 242, + "name": "FunctionCall", + "src": "2141:13:0" + } + ], + "id": 243, + "name": "VariableDeclarationStatement", + "src": "2105:49:0" + }, + { + "attributes": { + "functionReturnParameters": 238 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 240, + "type": "uint256", + "value": "totalNumberOfTokensMinted" + }, + "id": 244, + "name": "Identifier", + "src": "2167:25:0" + } + ], + "id": 245, + "name": "Return", + "src": "2160:32:0" + } + ], + "id": 246, + "name": "Block", + "src": "2099:98:0" + } + ], + "id": 247, + "name": "FunctionDefinition", + "src": "2035:162:0" + }, + { + "attributes": { + "functionSelector": "43902850", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [null], + "name": "getTotalNumberOfTokensOwnedByAnAddress", + "scope": 507, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_owner", + "scope": 263, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 248, + "name": "ElementaryTypeName", + "src": "2249:7:0" + } + ], + "id": 249, + "name": "VariableDeclaration", + "src": "2249:14:0" + } + ], + "id": 250, + "name": "ParameterList", + "src": "2248:16:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 263, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 251, + "name": "ElementaryTypeName", + "src": "2285:7:0" + } + ], + "id": 252, + "name": "VariableDeclaration", + "src": "2285:7:0" + } + ], + "id": 253, + "name": "ParameterList", + "src": "2284:9:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [255] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "totalNumberOfTokensOwned", + "scope": 262, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 254, + "name": "ElementaryTypeName", + "src": "2300:7:0" + } + ], + "id": 255, + "name": "VariableDeclaration", + "src": "2300:32:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [null], + "referencedDeclaration": 2686, + "type": "function (address) view returns (uint256)", + "value": "balanceOf" + }, + "id": 256, + "name": "Identifier", + "src": "2335:9:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 249, + "type": "address", + "value": "_owner" + }, + "id": 257, + "name": "Identifier", + "src": "2345:6:0" + } + ], + "id": 258, + "name": "FunctionCall", + "src": "2335:17:0" + } + ], + "id": 259, + "name": "VariableDeclarationStatement", + "src": "2300:52:0" + }, + { + "attributes": { + "functionReturnParameters": 253 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 255, + "type": "uint256", + "value": "totalNumberOfTokensOwned" + }, + "id": 260, + "name": "Identifier", + "src": "2365:24:0" + } + ], + "id": 261, + "name": "Return", + "src": "2358:31:0" + } + ], + "id": 262, + "name": "Block", + "src": "2294:100:0" + } + ], + "id": 263, + "name": "FunctionDefinition", + "src": "2201:193:0" + }, + { + "attributes": { + "functionSelector": "142687f3", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [null], + "name": "getTokenExists", + "scope": 507, + "stateMutability": "view", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenId", + "scope": 279, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 264, + "name": "ElementaryTypeName", + "src": "2422:7:0" + } + ], + "id": 265, + "name": "VariableDeclaration", + "src": "2422:16:0" + } + ], + "id": 266, + "name": "ParameterList", + "src": "2421:18:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 279, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 267, + "name": "ElementaryTypeName", + "src": "2460:4:0" + } + ], + "id": 268, + "name": "VariableDeclaration", + "src": "2460:4:0" + } + ], + "id": 269, + "name": "ParameterList", + "src": "2459:6:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [271] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenExists", + "scope": 278, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 270, + "name": "ElementaryTypeName", + "src": "2472:4:0" + } + ], + "id": 271, + "name": "VariableDeclaration", + "src": "2472:16:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [null], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 272, + "name": "Identifier", + "src": "2491:7:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 265, + "type": "uint256", + "value": "_tokenId" + }, + "id": 273, + "name": "Identifier", + "src": "2499:8:0" + } + ], + "id": 274, + "name": "FunctionCall", + "src": "2491:17:0" + } + ], + "id": 275, + "name": "VariableDeclarationStatement", + "src": "2472:36:0" + }, + { + "attributes": { + "functionReturnParameters": 269 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 271, + "type": "bool", + "value": "tokenExists" + }, + "id": 276, + "name": "Identifier", + "src": "2521:11:0" + } + ], + "id": 277, + "name": "Return", + "src": "2514:18:0" + } + ], + "id": 278, + "name": "Block", + "src": "2466:71:0" + } + ], + "id": 279, + "name": "FunctionDefinition", + "src": "2398:139:0" + }, + { + "attributes": { + "functionSelector": "2d296bf1", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [null], + "name": "buyToken", + "scope": 507, + "stateMutability": "payable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenId", + "scope": 387, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 280, + "name": "ElementaryTypeName", + "src": "2559:7:0" + } + ], + "id": 281, + "name": "VariableDeclaration", + "src": "2559:16:0" + } + ], + "id": 282, + "name": "ParameterList", + "src": "2558:18:0" + }, + { + "attributes": { + "parameters": [null] + }, + "children": [], + "id": 283, + "name": "ParameterList", + "src": "2592:0:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool) pure", + "value": "require" + }, + "id": 284, + "name": "Identifier", + "src": "2598:7:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 285, + "name": "Identifier", + "src": "2606:3:0" + } + ], + "id": 286, + "name": "MemberAccess", + "src": "2606:10:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 287, + "name": "ElementaryTypeName", + "src": "2620:7:0" + } + ], + "id": 288, + "name": "ElementaryTypeNameExpression", + "src": "2620:7:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 289, + "name": "Literal", + "src": "2628:1:0" + } + ], + "id": 290, + "name": "FunctionCall", + "src": "2620:10:0" + } + ], + "id": 291, + "name": "BinaryOperation", + "src": "2606:24:0" + } + ], + "id": 292, + "name": "FunctionCall", + "src": "2598:33:0" + } + ], + "id": 293, + "name": "ExpressionStatement", + "src": "2598:33:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool) pure", + "value": "require" + }, + "id": 294, + "name": "Identifier", + "src": "2637:7:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [null], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 295, + "name": "Identifier", + "src": "2645:7:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 281, + "type": "uint256", + "value": "_tokenId" + }, + "id": 296, + "name": "Identifier", + "src": "2653:8:0" + } + ], + "id": 297, + "name": "FunctionCall", + "src": "2645:17:0" + } + ], + "id": 298, + "name": "FunctionCall", + "src": "2637:26:0" + } + ], + "id": 299, + "name": "ExpressionStatement", + "src": "2637:26:0" + }, + { + "attributes": { + "assignments": [301] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenOwner", + "scope": 386, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 300, + "name": "ElementaryTypeName", + "src": "2669:7:0" + } + ], + "id": 301, + "name": "VariableDeclaration", + "src": "2669:18:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [null], + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)", + "value": "ownerOf" + }, + "id": 302, + "name": "Identifier", + "src": "2690:7:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 281, + "type": "uint256", + "value": "_tokenId" + }, + "id": 303, + "name": "Identifier", + "src": "2698:8:0" + } + ], + "id": 304, + "name": "FunctionCall", + "src": "2690:17:0" + } + ], + "id": 305, + "name": "VariableDeclarationStatement", + "src": "2669:38:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool) pure", + "value": "require" + }, + "id": 306, + "name": "Identifier", + "src": "2713:7:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 301, + "type": "address", + "value": "tokenOwner" + }, + "id": 307, + "name": "Identifier", + "src": "2721:10:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 308, + "name": "ElementaryTypeName", + "src": "2735:7:0" + } + ], + "id": 309, + "name": "ElementaryTypeNameExpression", + "src": "2735:7:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 310, + "name": "Literal", + "src": "2743:1:0" + } + ], + "id": 311, + "name": "FunctionCall", + "src": "2735:10:0" + } + ], + "id": 312, + "name": "BinaryOperation", + "src": "2721:24:0" + } + ], + "id": 313, + "name": "FunctionCall", + "src": "2713:33:0" + } + ], + "id": 314, + "name": "ExpressionStatement", + "src": "2713:33:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool) pure", + "value": "require" + }, + "id": 315, + "name": "Identifier", + "src": "2752:7:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 301, + "type": "address", + "value": "tokenOwner" + }, + "id": 316, + "name": "Identifier", + "src": "2760:10:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 317, + "name": "Identifier", + "src": "2774:3:0" + } + ], + "id": 318, + "name": "MemberAccess", + "src": "2774:10:0" + } + ], + "id": 319, + "name": "BinaryOperation", + "src": "2760:24:0" + } + ], + "id": 320, + "name": "FunctionCall", + "src": "2752:33:0" + } + ], + "id": 321, + "name": "ExpressionStatement", + "src": "2752:33:0" + }, + { + "attributes": { + "assignments": [323] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "cryptoboy", + "scope": 386, + "stateVariable": false, + "storageLocation": "memory", + "type": "struct CryptoBoys.CryptoBoy", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "CryptoBoy", + "referencedDeclaration": 30, + "type": "struct CryptoBoys.CryptoBoy" + }, + "id": 322, + "name": "UserDefinedTypeName", + "src": "2791:9:0" + } + ], + "id": 323, + "name": "VariableDeclaration", + "src": "2791:26:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct CryptoBoys.CryptoBoy storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 34, + "type": "mapping(uint256 => struct CryptoBoys.CryptoBoy storage ref)", + "value": "allCryptoBoys" + }, + "id": 324, + "name": "Identifier", + "src": "2820:13:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 281, + "type": "uint256", + "value": "_tokenId" + }, + "id": 325, + "name": "Identifier", + "src": "2834:8:0" + } + ], + "id": 326, + "name": "IndexAccess", + "src": "2820:23:0" + } + ], + "id": 327, + "name": "VariableDeclarationStatement", + "src": "2791:52:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool) pure", + "value": "require" + }, + "id": 328, + "name": "Identifier", + "src": "2849:7:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "value", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 329, + "name": "Identifier", + "src": "2857:3:0" + } + ], + "id": 330, + "name": "MemberAccess", + "src": "2857:9:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "price", + "referencedDeclaration": 25, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 323, + "type": "struct CryptoBoys.CryptoBoy memory", + "value": "cryptoboy" + }, + "id": 331, + "name": "Identifier", + "src": "2870:9:0" + } + ], + "id": 332, + "name": "MemberAccess", + "src": "2870:15:0" + } + ], + "id": 333, + "name": "BinaryOperation", + "src": "2857:28:0" + } + ], + "id": 334, + "name": "FunctionCall", + "src": "2849:37:0" + } + ], + "id": 335, + "name": "ExpressionStatement", + "src": "2849:37:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool) pure", + "value": "require" + }, + "id": 336, + "name": "Identifier", + "src": "2892:7:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "forSale", + "referencedDeclaration": 29, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 323, + "type": "struct CryptoBoys.CryptoBoy memory", + "value": "cryptoboy" + }, + "id": 337, + "name": "Identifier", + "src": "2900:9:0" + } + ], + "id": 338, + "name": "MemberAccess", + "src": "2900:17:0" + } + ], + "id": 339, + "name": "FunctionCall", + "src": "2892:26:0" + } + ], + "id": 340, + "name": "ExpressionStatement", + "src": "2892:26:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [null], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 341, + "name": "Identifier", + "src": "2924:9:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 301, + "type": "address", + "value": "tokenOwner" + }, + "id": 342, + "name": "Identifier", + "src": "2934:10:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 343, + "name": "Identifier", + "src": "2946:3:0" + } + ], + "id": 344, + "name": "MemberAccess", + "src": "2946:10:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 281, + "type": "uint256", + "value": "_tokenId" + }, + "id": 345, + "name": "Identifier", + "src": "2958:8:0" + } + ], + "id": 346, + "name": "FunctionCall", + "src": "2924:43:0" + } + ], + "id": 347, + "name": "ExpressionStatement", + "src": "2924:43:0" + }, + { + "attributes": { + "assignments": [349] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "sendTo", + "scope": 386, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 348, + "name": "ElementaryTypeName", + "src": "2973:15:0" + } + ], + "id": 349, + "name": "VariableDeclaration", + "src": "2973:22:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "currentOwner", + "referencedDeclaration": 21, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 323, + "type": "struct CryptoBoys.CryptoBoy memory", + "value": "cryptoboy" + }, + "id": 350, + "name": "Identifier", + "src": "2998:9:0" + } + ], + "id": 351, + "name": "MemberAccess", + "src": "2998:22:0" + } + ], + "id": 352, + "name": "VariableDeclarationStatement", + "src": "2973:47:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "transfer", + "type": "function (uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 349, + "type": "address payable", + "value": "sendTo" + }, + "id": 353, + "name": "Identifier", + "src": "3026:6:0" + } + ], + "id": 355, + "name": "MemberAccess", + "src": "3026:15:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "value", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 356, + "name": "Identifier", + "src": "3042:3:0" + } + ], + "id": 357, + "name": "MemberAccess", + "src": "3042:9:0" + } + ], + "id": 358, + "name": "FunctionCall", + "src": "3026:26:0" + } + ], + "id": 359, + "name": "ExpressionStatement", + "src": "3026:26:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "previousOwner", + "referencedDeclaration": 23, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 323, + "type": "struct CryptoBoys.CryptoBoy memory", + "value": "cryptoboy" + }, + "id": 360, + "name": "Identifier", + "src": "3058:9:0" + } + ], + "id": 362, + "name": "MemberAccess", + "src": "3058:23:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "currentOwner", + "referencedDeclaration": 21, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 323, + "type": "struct CryptoBoys.CryptoBoy memory", + "value": "cryptoboy" + }, + "id": 363, + "name": "Identifier", + "src": "3084:9:0" + } + ], + "id": 364, + "name": "MemberAccess", + "src": "3084:22:0" + } + ], + "id": 365, + "name": "Assignment", + "src": "3058:48:0" + } + ], + "id": 366, + "name": "ExpressionStatement", + "src": "3058:48:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "currentOwner", + "referencedDeclaration": 21, + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 323, + "type": "struct CryptoBoys.CryptoBoy memory", + "value": "cryptoboy" + }, + "id": 367, + "name": "Identifier", + "src": "3112:9:0" + } + ], + "id": 369, + "name": "MemberAccess", + "src": "3112:22:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 370, + "name": "Identifier", + "src": "3137:3:0" + } + ], + "id": 371, + "name": "MemberAccess", + "src": "3137:10:0" + } + ], + "id": 372, + "name": "Assignment", + "src": "3112:35:0" + } + ], + "id": 373, + "name": "ExpressionStatement", + "src": "3112:35:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "numberOfTransfers", + "referencedDeclaration": 27, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 323, + "type": "struct CryptoBoys.CryptoBoy memory", + "value": "cryptoboy" + }, + "id": 374, + "name": "Identifier", + "src": "3153:9:0" + } + ], + "id": 376, + "name": "MemberAccess", + "src": "3153:27:0" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 377, + "name": "Literal", + "src": "3184:1:0" + } + ], + "id": 378, + "name": "Assignment", + "src": "3153:32:0" + } + ], + "id": 379, + "name": "ExpressionStatement", + "src": "3153:32:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct CryptoBoys.CryptoBoy storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct CryptoBoys.CryptoBoy storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 34, + "type": "mapping(uint256 => struct CryptoBoys.CryptoBoy storage ref)", + "value": "allCryptoBoys" + }, + "id": 380, + "name": "Identifier", + "src": "3191:13:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 281, + "type": "uint256", + "value": "_tokenId" + }, + "id": 381, + "name": "Identifier", + "src": "3205:8:0" + } + ], + "id": 382, + "name": "IndexAccess", + "src": "3191:23:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 323, + "type": "struct CryptoBoys.CryptoBoy memory", + "value": "cryptoboy" + }, + "id": 383, + "name": "Identifier", + "src": "3217:9:0" + } + ], + "id": 384, + "name": "Assignment", + "src": "3191:35:0" + } + ], + "id": 385, + "name": "ExpressionStatement", + "src": "3191:35:0" + } + ], + "id": 386, + "name": "Block", + "src": "2592:639:0" + } + ], + "id": 387, + "name": "FunctionDefinition", + "src": "2541:690:0" + }, + { + "attributes": { + "functionSelector": "62e8e8ac", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [null], + "name": "changeTokenPrice", + "scope": 507, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenId", + "scope": 442, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 388, + "name": "ElementaryTypeName", + "src": "3261:7:0" + } + ], + "id": 389, + "name": "VariableDeclaration", + "src": "3261:16:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_newPrice", + "scope": 442, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 390, + "name": "ElementaryTypeName", + "src": "3279:7:0" + } + ], + "id": 391, + "name": "VariableDeclaration", + "src": "3279:17:0" + } + ], + "id": 392, + "name": "ParameterList", + "src": "3260:37:0" + }, + { + "attributes": { + "parameters": [null] + }, + "children": [], + "id": 393, + "name": "ParameterList", + "src": "3305:0:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool) pure", + "value": "require" + }, + "id": 394, + "name": "Identifier", + "src": "3311:7:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 395, + "name": "Identifier", + "src": "3319:3:0" + } + ], + "id": 396, + "name": "MemberAccess", + "src": "3319:10:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 397, + "name": "ElementaryTypeName", + "src": "3333:7:0" + } + ], + "id": 398, + "name": "ElementaryTypeNameExpression", + "src": "3333:7:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 399, + "name": "Literal", + "src": "3341:1:0" + } + ], + "id": 400, + "name": "FunctionCall", + "src": "3333:10:0" + } + ], + "id": 401, + "name": "BinaryOperation", + "src": "3319:24:0" + } + ], + "id": 402, + "name": "FunctionCall", + "src": "3311:33:0" + } + ], + "id": 403, + "name": "ExpressionStatement", + "src": "3311:33:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool) pure", + "value": "require" + }, + "id": 404, + "name": "Identifier", + "src": "3350:7:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [null], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 405, + "name": "Identifier", + "src": "3358:7:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 389, + "type": "uint256", + "value": "_tokenId" + }, + "id": 406, + "name": "Identifier", + "src": "3366:8:0" + } + ], + "id": 407, + "name": "FunctionCall", + "src": "3358:17:0" + } + ], + "id": 408, + "name": "FunctionCall", + "src": "3350:26:0" + } + ], + "id": 409, + "name": "ExpressionStatement", + "src": "3350:26:0" + }, + { + "attributes": { + "assignments": [411] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenOwner", + "scope": 441, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 410, + "name": "ElementaryTypeName", + "src": "3382:7:0" + } + ], + "id": 411, + "name": "VariableDeclaration", + "src": "3382:18:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [null], + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)", + "value": "ownerOf" + }, + "id": 412, + "name": "Identifier", + "src": "3403:7:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 389, + "type": "uint256", + "value": "_tokenId" + }, + "id": 413, + "name": "Identifier", + "src": "3411:8:0" + } + ], + "id": 414, + "name": "FunctionCall", + "src": "3403:17:0" + } + ], + "id": 415, + "name": "VariableDeclarationStatement", + "src": "3382:38:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool) pure", + "value": "require" + }, + "id": 416, + "name": "Identifier", + "src": "3426:7:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 411, + "type": "address", + "value": "tokenOwner" + }, + "id": 417, + "name": "Identifier", + "src": "3434:10:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 418, + "name": "Identifier", + "src": "3448:3:0" + } + ], + "id": 419, + "name": "MemberAccess", + "src": "3448:10:0" + } + ], + "id": 420, + "name": "BinaryOperation", + "src": "3434:24:0" + } + ], + "id": 421, + "name": "FunctionCall", + "src": "3426:33:0" + } + ], + "id": 422, + "name": "ExpressionStatement", + "src": "3426:33:0" + }, + { + "attributes": { + "assignments": [424] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "cryptoboy", + "scope": 441, + "stateVariable": false, + "storageLocation": "memory", + "type": "struct CryptoBoys.CryptoBoy", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "CryptoBoy", + "referencedDeclaration": 30, + "type": "struct CryptoBoys.CryptoBoy" + }, + "id": 423, + "name": "UserDefinedTypeName", + "src": "3465:9:0" + } + ], + "id": 424, + "name": "VariableDeclaration", + "src": "3465:26:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct CryptoBoys.CryptoBoy storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 34, + "type": "mapping(uint256 => struct CryptoBoys.CryptoBoy storage ref)", + "value": "allCryptoBoys" + }, + "id": 425, + "name": "Identifier", + "src": "3494:13:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 389, + "type": "uint256", + "value": "_tokenId" + }, + "id": 426, + "name": "Identifier", + "src": "3508:8:0" + } + ], + "id": 427, + "name": "IndexAccess", + "src": "3494:23:0" + } + ], + "id": 428, + "name": "VariableDeclarationStatement", + "src": "3465:52:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "price", + "referencedDeclaration": 25, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 424, + "type": "struct CryptoBoys.CryptoBoy memory", + "value": "cryptoboy" + }, + "id": 429, + "name": "Identifier", + "src": "3523:9:0" + } + ], + "id": 431, + "name": "MemberAccess", + "src": "3523:15:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 391, + "type": "uint256", + "value": "_newPrice" + }, + "id": 432, + "name": "Identifier", + "src": "3541:9:0" + } + ], + "id": 433, + "name": "Assignment", + "src": "3523:27:0" + } + ], + "id": 434, + "name": "ExpressionStatement", + "src": "3523:27:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct CryptoBoys.CryptoBoy storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct CryptoBoys.CryptoBoy storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 34, + "type": "mapping(uint256 => struct CryptoBoys.CryptoBoy storage ref)", + "value": "allCryptoBoys" + }, + "id": 435, + "name": "Identifier", + "src": "3556:13:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 389, + "type": "uint256", + "value": "_tokenId" + }, + "id": 436, + "name": "Identifier", + "src": "3570:8:0" + } + ], + "id": 437, + "name": "IndexAccess", + "src": "3556:23:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 424, + "type": "struct CryptoBoys.CryptoBoy memory", + "value": "cryptoboy" + }, + "id": 438, + "name": "Identifier", + "src": "3582:9:0" + } + ], + "id": 439, + "name": "Assignment", + "src": "3556:35:0" + } + ], + "id": 440, + "name": "ExpressionStatement", + "src": "3556:35:0" + } + ], + "id": 441, + "name": "Block", + "src": "3305:291:0" + } + ], + "id": 442, + "name": "FunctionDefinition", + "src": "3235:361:0" + }, + { + "attributes": { + "functionSelector": "a32018b9", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [null], + "name": "toggleForSale", + "scope": 507, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenId", + "scope": 506, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 443, + "name": "ElementaryTypeName", + "src": "3623:7:0" + } + ], + "id": 444, + "name": "VariableDeclaration", + "src": "3623:16:0" + } + ], + "id": 445, + "name": "ParameterList", + "src": "3622:18:0" + }, + { + "attributes": { + "parameters": [null] + }, + "children": [], + "id": 446, + "name": "ParameterList", + "src": "3648:0:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool) pure", + "value": "require" + }, + "id": 447, + "name": "Identifier", + "src": "3654:7:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 448, + "name": "Identifier", + "src": "3662:3:0" + } + ], + "id": 449, + "name": "MemberAccess", + "src": "3662:10:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 450, + "name": "ElementaryTypeName", + "src": "3676:7:0" + } + ], + "id": 451, + "name": "ElementaryTypeNameExpression", + "src": "3676:7:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 452, + "name": "Literal", + "src": "3684:1:0" + } + ], + "id": 453, + "name": "FunctionCall", + "src": "3676:10:0" + } + ], + "id": 454, + "name": "BinaryOperation", + "src": "3662:24:0" + } + ], + "id": 455, + "name": "FunctionCall", + "src": "3654:33:0" + } + ], + "id": 456, + "name": "ExpressionStatement", + "src": "3654:33:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool) pure", + "value": "require" + }, + "id": 457, + "name": "Identifier", + "src": "3693:7:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [null], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 458, + "name": "Identifier", + "src": "3701:7:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 444, + "type": "uint256", + "value": "_tokenId" + }, + "id": 459, + "name": "Identifier", + "src": "3709:8:0" + } + ], + "id": 460, + "name": "FunctionCall", + "src": "3701:17:0" + } + ], + "id": 461, + "name": "FunctionCall", + "src": "3693:26:0" + } + ], + "id": 462, + "name": "ExpressionStatement", + "src": "3693:26:0" + }, + { + "attributes": { + "assignments": [464] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenOwner", + "scope": 505, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 463, + "name": "ElementaryTypeName", + "src": "3725:7:0" + } + ], + "id": 464, + "name": "VariableDeclaration", + "src": "3725:18:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [null], + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)", + "value": "ownerOf" + }, + "id": 465, + "name": "Identifier", + "src": "3746:7:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 444, + "type": "uint256", + "value": "_tokenId" + }, + "id": 466, + "name": "Identifier", + "src": "3754:8:0" + } + ], + "id": 467, + "name": "FunctionCall", + "src": "3746:17:0" + } + ], + "id": 468, + "name": "VariableDeclarationStatement", + "src": "3725:38:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [null], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool) pure", + "value": "require" + }, + "id": 469, + "name": "Identifier", + "src": "3769:7:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 464, + "type": "address", + "value": "tokenOwner" + }, + "id": 470, + "name": "Identifier", + "src": "3777:10:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 471, + "name": "Identifier", + "src": "3791:3:0" + } + ], + "id": 472, + "name": "MemberAccess", + "src": "3791:10:0" + } + ], + "id": 473, + "name": "BinaryOperation", + "src": "3777:24:0" + } + ], + "id": 474, + "name": "FunctionCall", + "src": "3769:33:0" + } + ], + "id": 475, + "name": "ExpressionStatement", + "src": "3769:33:0" + }, + { + "attributes": { + "assignments": [477] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "cryptoboy", + "scope": 505, + "stateVariable": false, + "storageLocation": "memory", + "type": "struct CryptoBoys.CryptoBoy", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "CryptoBoy", + "referencedDeclaration": 30, + "type": "struct CryptoBoys.CryptoBoy" + }, + "id": 476, + "name": "UserDefinedTypeName", + "src": "3808:9:0" + } + ], + "id": 477, + "name": "VariableDeclaration", + "src": "3808:26:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct CryptoBoys.CryptoBoy storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 34, + "type": "mapping(uint256 => struct CryptoBoys.CryptoBoy storage ref)", + "value": "allCryptoBoys" + }, + "id": 478, + "name": "Identifier", + "src": "3837:13:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 444, + "type": "uint256", + "value": "_tokenId" + }, + "id": 479, + "name": "Identifier", + "src": "3851:8:0" + } + ], + "id": 480, + "name": "IndexAccess", + "src": "3837:23:0" + } + ], + "id": 481, + "name": "VariableDeclarationStatement", + "src": "3808:52:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "forSale", + "referencedDeclaration": 29, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 477, + "type": "struct CryptoBoys.CryptoBoy memory", + "value": "cryptoboy" + }, + "id": 482, + "name": "Identifier", + "src": "3869:9:0" + } + ], + "id": 483, + "name": "MemberAccess", + "src": "3869:17:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "forSale", + "referencedDeclaration": 29, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 477, + "type": "struct CryptoBoys.CryptoBoy memory", + "value": "cryptoboy" + }, + "id": 484, + "name": "Identifier", + "src": "3896:9:0" + } + ], + "id": 486, + "name": "MemberAccess", + "src": "3896:17:0" + }, + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 487, + "name": "Literal", + "src": "3916:5:0" + } + ], + "id": 488, + "name": "Assignment", + "src": "3896:25:0" + } + ], + "id": 489, + "name": "ExpressionStatement", + "src": "3896:25:0" + } + ], + "id": 490, + "name": "Block", + "src": "3888:40:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "forSale", + "referencedDeclaration": 29, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 477, + "type": "struct CryptoBoys.CryptoBoy memory", + "value": "cryptoboy" + }, + "id": 491, + "name": "Identifier", + "src": "3942:9:0" + } + ], + "id": 493, + "name": "MemberAccess", + "src": "3942:17:0" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 494, + "name": "Literal", + "src": "3962:4:0" + } + ], + "id": 495, + "name": "Assignment", + "src": "3942:24:0" + } + ], + "id": 496, + "name": "ExpressionStatement", + "src": "3942:24:0" + } + ], + "id": 497, + "name": "Block", + "src": "3934:39:0" + } + ], + "id": 498, + "name": "IfStatement", + "src": "3866:107:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct CryptoBoys.CryptoBoy storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct CryptoBoys.CryptoBoy storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 34, + "type": "mapping(uint256 => struct CryptoBoys.CryptoBoy storage ref)", + "value": "allCryptoBoys" + }, + "id": 499, + "name": "Identifier", + "src": "3978:13:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 444, + "type": "uint256", + "value": "_tokenId" + }, + "id": 500, + "name": "Identifier", + "src": "3992:8:0" + } + ], + "id": 501, + "name": "IndexAccess", + "src": "3978:23:0" + }, + { + "attributes": { + "overloadedDeclarations": [null], + "referencedDeclaration": 477, + "type": "struct CryptoBoys.CryptoBoy memory", + "value": "cryptoboy" + }, + "id": 502, + "name": "Identifier", + "src": "4004:9:0" + } + ], + "id": 503, + "name": "Assignment", + "src": "3978:35:0" + } + ], + "id": 504, + "name": "ExpressionStatement", + "src": "3978:35:0" + } + ], + "id": 505, + "name": "Block", + "src": "3648:370:0" + } + ], + "id": 506, + "name": "FunctionDefinition", + "src": "3600:418:0" + } + ], + "id": 507, + "name": "ContractDefinition", + "src": "110:3910:0" + } + ], + "id": 508, + "name": "SourceUnit", + "src": "32:3988:0" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": { + "42": { + "events": {}, + "links": {}, + "address": "0x420d2a6e87d87992eb01e5bfe762b3f437dbfd85", + "transactionHash": "0x25f92d062cc1ee642685e3dd44e144b0d323872a73d67c6680fecc40771e8a41" + } + }, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-13T11:24:06.141Z", + "networkType": "ethereum", + "devdoc": { + "kind": "dev", + "methods": { + "approve(address,uint256)": { + "details": "See {IERC721-approve}." + }, + "balanceOf(address)": { + "details": "See {IERC721-balanceOf}." + }, + "baseURI()": { + "details": "Returns the base URI set via {_setBaseURI}. This will be automatically added as a prefix in {tokenURI} to each token's URI, or to the token ID if no specific URI is set for that token ID." + }, + "getApproved(uint256)": { + "details": "See {IERC721-getApproved}." + }, + "isApprovedForAll(address,address)": { + "details": "See {IERC721-isApprovedForAll}." + }, + "name()": { + "details": "See {IERC721Metadata-name}." + }, + "ownerOf(uint256)": { + "details": "See {IERC721-ownerOf}." + }, + "safeTransferFrom(address,address,uint256)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "setApprovalForAll(address,bool)": { + "details": "See {IERC721-setApprovalForAll}." + }, + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "symbol()": { + "details": "See {IERC721Metadata-symbol}." + }, + "tokenByIndex(uint256)": { + "details": "See {IERC721Enumerable-tokenByIndex}." + }, + "tokenOfOwnerByIndex(address,uint256)": { + "details": "See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "tokenURI(uint256)": { + "details": "See {IERC721Metadata-tokenURI}." + }, + "totalSupply()": { + "details": "See {IERC721Enumerable-totalSupply}." + }, + "transferFrom(address,address,uint256)": { + "details": "See {IERC721-transferFrom}." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} diff --git a/src/abis/DateAndTime.json b/src/abis/DateAndTime.json new file mode 100644 index 0000000..6754b48 --- /dev/null +++ b/src/abis/DateAndTime.json @@ -0,0 +1,20435 @@ +{ + "contractName": "DateAndTime", + "abi": [ + { + "inputs": [ + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + } + ], + "name": "isLeapYear", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "year", + "type": "uint256" + } + ], + "name": "leapYearsBefore", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "month", + "type": "uint8" + }, + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + } + ], + "name": "getDaysInMonth", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getYear", + "outputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getMonth", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getDay", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getHour", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getMinute", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getSecond", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getWeekday", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + }, + { + "internalType": "uint8", + "name": "month", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "day", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "hour", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "minute", + "type": "uint8" + } + ], + "name": "toTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + }, + { + "internalType": "uint8", + "name": "month", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "day", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "hour", + "type": "uint8" + } + ], + "name": "toTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + }, + { + "internalType": "uint8", + "name": "month", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "day", + "type": "uint8" + } + ], + "name": "toTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + }, + { + "internalType": "uint8", + "name": "month", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "day", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "hour", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "minute", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "second", + "type": "uint8" + } + ], + "name": "toTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getDay\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"month\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"}],\"name\":\"getDaysInMonth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getHour\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getMinute\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getMonth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getSecond\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getWeekday\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getYear\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"}],\"name\":\"isLeapYear\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"year\",\"type\":\"uint256\"}],\"name\":\"leapYearsBefore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"month\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"day\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"hour\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minute\",\"type\":\"uint8\"}],\"name\":\"toTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"month\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"day\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"hour\",\"type\":\"uint8\"}],\"name\":\"toTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"month\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"day\",\"type\":\"uint8\"}],\"name\":\"toTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"month\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"day\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"hour\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minute\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"second\",\"type\":\"uint8\"}],\"name\":\"toTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/crypto-boys/src/contracts/DateAndTime.sol\":\"DateAndTime\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/crypto-boys/src/contracts/DateAndTime.sol\":{\"keccak256\":\"0xb9e211d1651c915fe975a92b18c8298861017e94aa7b753f781152aedab3f126\",\"license\":\"SPDX-License\",\"urls\":[\"bzz-raw://5d333653cd12850a9408c78277ed3f948bca2a84bdc15b0d1061b5ea793145b4\",\"dweb:/ipfs/QmbG6SmhA2uTtPLeBomSUGqeXKR2He8Ls7u24bTxAVnmUK\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50610d5b806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80639054bdec1161008c578063a6f0e57711610066578063a6f0e5771461045c578063b1999937146104a4578063b238ad0e146104e6578063fa93f8831461053c576100ea565b80639054bdec1461034a57806392d66313146103d1578063a324ad2414610417576100ea565b806365c72840116100c857806365c72840146101f35780637f791833146102385780638aa001fc146102a55780638c8d98a0146102ea576100ea565b80633e239e1a146100ef5780634ac1ad781461013457806362ba968714610179575b600080fd5b61011b6004803603602081101561010557600080fd5b8101908080359060200190929190505050610581565b604051808260ff16815260200191505060405180910390f35b6101606004803603602081101561014a57600080fd5b810190808035906020019092919050505061059f565b604051808260ff16815260200191505060405180910390f35b6101dd600480360360a081101561018f57600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff1690602001909291905050506105c2565b6040518082815260200191505060405180910390f35b61021f6004803603602081101561020957600080fd5b81019080803590602001909291905050506105de565b604051808260ff16815260200191505060405180910390f35b61028f6004803603608081101561024e57600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff1690602001909291905050506105f4565b6040518082815260200191505060405180910390f35b6102d1600480360360208110156102bb57600080fd5b810190808035906020019092919050505061060f565b604051808260ff16815260200191505060405180910390f35b6103346004803603606081101561030057600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190505050610623565b6040518082815260200191505060405180910390f35b6103bb600480360360c081101561036057600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff16906020019092919050505061063e565b6040518082815260200191505060405180910390f35b6103fd600480360360208110156103e757600080fd5b81019080803590602001909291905050506108c6565b604051808261ffff16815260200191505060405180910390f35b6104436004803603602081101561042d57600080fd5b810190808035906020019092919050505061096f565b604051808260ff16815260200191505060405180910390f35b61048c6004803603602081101561047257600080fd5b81019080803561ffff169060200190929190505050610985565b60405180821515815260200191505060405180910390f35b6104d0600480360360208110156104ba57600080fd5b81019080803590602001909291905050506109fa565b6040518082815260200191505060405180910390f35b610523600480360360408110156104fc57600080fd5b81019080803560ff169060200190929190803561ffff169060200190929190505050610a2d565b604051808260ff16815260200191505060405180910390f35b6105686004803603602081101561055257600080fd5b8101908080359060200190929190505050610af9565b604051808260ff16815260200191505060405180910390f35b60006018603c838161058f57fe5b048161059757fe5b069050919050565b6000600760046201518084816105b157fe5b0401816105ba57fe5b069050919050565b60006105d38686868686600061063e565b905095945050505050565b60006105e982610b16565b604001519050919050565b60006106058585858560008061063e565b9050949350505050565b6000603c828161061b57fe5b069050919050565b6000610635848484600080600061063e565b90509392505050565b6000806107b290505b8761ffff168161ffff16101561068a5761066081610985565b15610673576301e285008201915061067d565b6301e13380820191505b8080600101915050610647565b610692610caf565b601f816000600c81106106a157fe5b602002019060ff16908160ff16815250506106bb89610985565b156106e557601d816001600c81106106cf57fe5b602002019060ff16908160ff1681525050610706565b601c816001600c81106106f457fe5b602002019060ff16908160ff16815250505b601f816002600c811061071557fe5b602002019060ff16908160ff1681525050601e816003600c811061073557fe5b602002019060ff16908160ff1681525050601f816004600c811061075557fe5b602002019060ff16908160ff1681525050601e816005600c811061077557fe5b602002019060ff16908160ff1681525050601f816006600c811061079557fe5b602002019060ff16908160ff1681525050601f816007600c81106107b557fe5b602002019060ff16908160ff1681525050601e816008600c81106107d557fe5b602002019060ff16908160ff1681525050601f816009600c81106107f557fe5b602002019060ff16908160ff1681525050601e81600a600c811061081557fe5b602002019060ff16908160ff1681525050601f81600b600c811061083557fe5b602002019060ff16908160ff1681525050600191505b8760ff168261ffff16101561088b57806001830361ffff16600c811061086d57fe5b602002015160ff16620151800283019250818060010192505061084b565b6001870360ff166201518002830192508560ff16610e1002830192508460ff16603c02830192508360ff168301925050509695505050505050565b600080600090506000806301e1338085816108dd57fe5b046107b261ffff160191506108f76107b261ffff166109fa565b6109048361ffff166109fa565b039050806301e285000283019250806107b2830361ffff16036301e1338002830192505b848311156109645761093c60018303610985565b1561094f576301e2850083039250610959565b6301e13380830392505b600182039150610928565b819350505050919050565b600061097a82610b16565b602001519050919050565b60008060048361ffff168161099657fe5b0661ffff16146109a957600090506109f5565b600060648361ffff16816109b957fe5b0661ffff16146109cc57600190506109f5565b60006101908361ffff16816109dd57fe5b0661ffff16146109f057600090506109f5565b600190505b919050565b60006001820391506101908281610a0d57fe5b0460648381610a1857fe5b0460048481610a2357fe5b0403019050919050565b600060018360ff161480610a44575060038360ff16145b80610a52575060058360ff16145b80610a60575060078360ff16145b80610a6e575060088360ff16145b80610a7c5750600a8360ff16145b80610a8a5750600c8360ff16145b15610a9857601f9050610af3565b60048360ff161480610aad575060068360ff16145b80610abb575060098360ff16145b80610ac95750600b8360ff16145b15610ad757601e9050610af3565b610ae082610985565b15610aee57601d9050610af3565b601c90505b92915050565b6000603c808381610b0657fe5b0481610b0e57fe5b069050919050565b610b1e610cd2565b60008080610b2b856108c6565b846000019061ffff16908161ffff1681525050610b4d6107b261ffff166109fa565b610b5e856000015161ffff166109fa565b039150816301e285000283019250816107b285600001510361ffff16036301e1338002830192506000600191505b600c8260ff1611610be257610ba5828660000151610a2d565b60ff1662015180029050858482011115610bd05781856020019060ff16908160ff1681525050610be2565b80840193508180600101925050610b8c565b600191505b610bf985602001518660000151610a2d565b60ff168260ff1611610c3e57858462015180011115610c295781856040019060ff16908160ff1681525050610c3e565b62015180840193508180600101925050610be7565b610c4786610581565b856060019060ff16908160ff1681525050610c6186610af9565b856080019060ff16908160ff1681525050610c7b8661060f565b8560a0019060ff16908160ff1681525050610c958661059f565b8560c0019060ff16908160ff168152505050505050919050565b604051806101800160405280600c90602082028036833780820191505090505090565b6040518060e00160405280600061ffff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152509056fea2646970667358221220e740828c7df1ae64efa65b26845c475ba71b40c4e0501243ad94f0678f5369e464736f6c63430007060033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80639054bdec1161008c578063a6f0e57711610066578063a6f0e5771461045c578063b1999937146104a4578063b238ad0e146104e6578063fa93f8831461053c576100ea565b80639054bdec1461034a57806392d66313146103d1578063a324ad2414610417576100ea565b806365c72840116100c857806365c72840146101f35780637f791833146102385780638aa001fc146102a55780638c8d98a0146102ea576100ea565b80633e239e1a146100ef5780634ac1ad781461013457806362ba968714610179575b600080fd5b61011b6004803603602081101561010557600080fd5b8101908080359060200190929190505050610581565b604051808260ff16815260200191505060405180910390f35b6101606004803603602081101561014a57600080fd5b810190808035906020019092919050505061059f565b604051808260ff16815260200191505060405180910390f35b6101dd600480360360a081101561018f57600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff1690602001909291905050506105c2565b6040518082815260200191505060405180910390f35b61021f6004803603602081101561020957600080fd5b81019080803590602001909291905050506105de565b604051808260ff16815260200191505060405180910390f35b61028f6004803603608081101561024e57600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff1690602001909291905050506105f4565b6040518082815260200191505060405180910390f35b6102d1600480360360208110156102bb57600080fd5b810190808035906020019092919050505061060f565b604051808260ff16815260200191505060405180910390f35b6103346004803603606081101561030057600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190505050610623565b6040518082815260200191505060405180910390f35b6103bb600480360360c081101561036057600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff16906020019092919050505061063e565b6040518082815260200191505060405180910390f35b6103fd600480360360208110156103e757600080fd5b81019080803590602001909291905050506108c6565b604051808261ffff16815260200191505060405180910390f35b6104436004803603602081101561042d57600080fd5b810190808035906020019092919050505061096f565b604051808260ff16815260200191505060405180910390f35b61048c6004803603602081101561047257600080fd5b81019080803561ffff169060200190929190505050610985565b60405180821515815260200191505060405180910390f35b6104d0600480360360208110156104ba57600080fd5b81019080803590602001909291905050506109fa565b6040518082815260200191505060405180910390f35b610523600480360360408110156104fc57600080fd5b81019080803560ff169060200190929190803561ffff169060200190929190505050610a2d565b604051808260ff16815260200191505060405180910390f35b6105686004803603602081101561055257600080fd5b8101908080359060200190929190505050610af9565b604051808260ff16815260200191505060405180910390f35b60006018603c838161058f57fe5b048161059757fe5b069050919050565b6000600760046201518084816105b157fe5b0401816105ba57fe5b069050919050565b60006105d38686868686600061063e565b905095945050505050565b60006105e982610b16565b604001519050919050565b60006106058585858560008061063e565b9050949350505050565b6000603c828161061b57fe5b069050919050565b6000610635848484600080600061063e565b90509392505050565b6000806107b290505b8761ffff168161ffff16101561068a5761066081610985565b15610673576301e285008201915061067d565b6301e13380820191505b8080600101915050610647565b610692610caf565b601f816000600c81106106a157fe5b602002019060ff16908160ff16815250506106bb89610985565b156106e557601d816001600c81106106cf57fe5b602002019060ff16908160ff1681525050610706565b601c816001600c81106106f457fe5b602002019060ff16908160ff16815250505b601f816002600c811061071557fe5b602002019060ff16908160ff1681525050601e816003600c811061073557fe5b602002019060ff16908160ff1681525050601f816004600c811061075557fe5b602002019060ff16908160ff1681525050601e816005600c811061077557fe5b602002019060ff16908160ff1681525050601f816006600c811061079557fe5b602002019060ff16908160ff1681525050601f816007600c81106107b557fe5b602002019060ff16908160ff1681525050601e816008600c81106107d557fe5b602002019060ff16908160ff1681525050601f816009600c81106107f557fe5b602002019060ff16908160ff1681525050601e81600a600c811061081557fe5b602002019060ff16908160ff1681525050601f81600b600c811061083557fe5b602002019060ff16908160ff1681525050600191505b8760ff168261ffff16101561088b57806001830361ffff16600c811061086d57fe5b602002015160ff16620151800283019250818060010192505061084b565b6001870360ff166201518002830192508560ff16610e1002830192508460ff16603c02830192508360ff168301925050509695505050505050565b600080600090506000806301e1338085816108dd57fe5b046107b261ffff160191506108f76107b261ffff166109fa565b6109048361ffff166109fa565b039050806301e285000283019250806107b2830361ffff16036301e1338002830192505b848311156109645761093c60018303610985565b1561094f576301e2850083039250610959565b6301e13380830392505b600182039150610928565b819350505050919050565b600061097a82610b16565b602001519050919050565b60008060048361ffff168161099657fe5b0661ffff16146109a957600090506109f5565b600060648361ffff16816109b957fe5b0661ffff16146109cc57600190506109f5565b60006101908361ffff16816109dd57fe5b0661ffff16146109f057600090506109f5565b600190505b919050565b60006001820391506101908281610a0d57fe5b0460648381610a1857fe5b0460048481610a2357fe5b0403019050919050565b600060018360ff161480610a44575060038360ff16145b80610a52575060058360ff16145b80610a60575060078360ff16145b80610a6e575060088360ff16145b80610a7c5750600a8360ff16145b80610a8a5750600c8360ff16145b15610a9857601f9050610af3565b60048360ff161480610aad575060068360ff16145b80610abb575060098360ff16145b80610ac95750600b8360ff16145b15610ad757601e9050610af3565b610ae082610985565b15610aee57601d9050610af3565b601c90505b92915050565b6000603c808381610b0657fe5b0481610b0e57fe5b069050919050565b610b1e610cd2565b60008080610b2b856108c6565b846000019061ffff16908161ffff1681525050610b4d6107b261ffff166109fa565b610b5e856000015161ffff166109fa565b039150816301e285000283019250816107b285600001510361ffff16036301e1338002830192506000600191505b600c8260ff1611610be257610ba5828660000151610a2d565b60ff1662015180029050858482011115610bd05781856020019060ff16908160ff1681525050610be2565b80840193508180600101925050610b8c565b600191505b610bf985602001518660000151610a2d565b60ff168260ff1611610c3e57858462015180011115610c295781856040019060ff16908160ff1681525050610c3e565b62015180840193508180600101925050610be7565b610c4786610581565b856060019060ff16908160ff1681525050610c6186610af9565b856080019060ff16908160ff1681525050610c7b8661060f565b8560a0019060ff16908160ff1681525050610c958661059f565b8560c0019060ff16908160ff168152505050505050919050565b604051806101800160405280600c90602082028036833780820191505090505090565b6040518060e00160405280600061ffff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152509056fea2646970667358221220e740828c7df1ae64efa65b26845c475ba71b40c4e0501243ad94f0678f5369e464736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "75:7576:0:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "75:7576:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4781:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5183:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5709:203;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4646:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5515:184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5053:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5336:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5922:1727;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3526:971;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4507:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;731:382;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1123:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1293:571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4916:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4781:125;4835:5;4892:2;4886;4874:9;:14;;;;;;4873:21;;;;;;4860:35;;4781:125;;;:::o;5183:143::-;5240:5;5313:1;5308;472:5;5279:9;:26;;;;;;:30;5278:36;;;;;;5265:50;;5183:143;;;:::o;5709:203::-;5814:14;5855:46;5867:4;5873:5;5880:3;5885:4;5891:6;5899:1;5855:11;:46::i;:::-;5848:53;;5709:203;;;;;;;:::o;4646:125::-;4699:5;4731:25;4746:9;4731:14;:25::i;:::-;:29;;;4724:36;;4646:125;;;:::o;5515:184::-;5606:14;5647:41;5659:4;5665:5;5672:3;5677:4;5683:1;5686;5647:11;:41::i;:::-;5640:48;;5515:184;;;;;;:::o;5053:120::-;5109:5;5159:2;5147:9;:14;;;;;;5134:28;;5053:120;;;:::o;5336:169::-;5415:14;5456:38;5468:4;5474:5;5481:3;5486:1;5489;5492;5456:11;:38::i;:::-;5449:45;;5336:169;;;;;:::o;5922:1727::-;6041:14;6075:8;716:4;6131:15;;6126:313;6152:4;6148:8;;:1;:8;;;6126:313;;;6193:13;6204:1;6193:10;:13::i;:::-;6189:232;;;574:8;6242:33;;;;6189:232;;;519:8;6366:28;;;;6189:232;6158:3;;;;;;;6126:313;;;6482:31;;:::i;:::-;6551:2;6531:14;6546:1;6531:17;;;;;;;;;;:22;;;;;;;;;;;6575:16;6586:4;6575:10;:16::i;:::-;6571:178;;;6639:2;6619:14;6634:1;6619:17;;;;;;;;;;:22;;;;;;;;;;;6571:178;;;6728:2;6708:14;6723:1;6708:17;;;;;;;;;;:22;;;;;;;;;;;6571:178;6786:2;6766:14;6781:1;6766:17;;;;;;;;;;:22;;;;;;;;;;;6826:2;6806:14;6821:1;6806:17;;;;;;;;;;:22;;;;;;;;;;;6866:2;6846:14;6861:1;6846:17;;;;;;;;;;:22;;;;;;;;;;;6906:2;6886:14;6901:1;6886:17;;;;;;;;;;:22;;;;;;;;;;;6946:2;6926:14;6941:1;6926:17;;;;;;;;;;:22;;;;;;;;;;;6986:2;6966:14;6981:1;6966:17;;;;;;;;;;:22;;;;;;;;;;;7026:2;7006:14;7021:1;7006:17;;;;;;;;;;:22;;;;;;;;;;;7066:2;7046:14;7061:1;7046:17;;;;;;;;;;:22;;;;;;;;;;;7107:2;7086:14;7101:2;7086:18;;;;;;;;;;:23;;;;;;;;;;;7148:2;7127:14;7142:2;7127:18;;;;;;;;;;:23;;;;;;;;;;;7178:1;7174:5;;7169:124;7185:5;7181:9;;:1;:9;;;7169:124;;;7253:14;7272:1;7268;:5;7253:21;;;;;;;;;;;;;7236:38;;472:5;7236:38;7223:51;;;;7192:3;;;;;;;7169:124;;;7371:1;7365:3;:7;7347:26;;472:5;7347:26;7334:39;;;;7448:4;7429:24;;625:4;7429:24;7416:37;;;;7532:6;7511:28;;673:2;7511:28;7498:41;;;;7597:6;7584:19;;;;;;7622:16;;5922:1727;;;;;;;;:::o;3526:971::-;3580:6;3606:24;3633:1;3606:28;;3652:11;3681:17;519:8;3769:9;:27;;;;;;716:4;3755:41;;;3741:56;;3854:28;716:4;3854:28;;:15;:28::i;:::-;3830:21;3846:4;3830:21;;:15;:21::i;:::-;:52;3815:67;;3947:12;574:8;3924:35;3901:58;;;;4040:12;716:4;4019;:18;:33;;;519:8;4000:53;3977:76;;;;4072:386;4101:9;4079:19;:31;4072:386;;;4142:28;4167:1;4160:4;:8;4142:10;:28::i;:::-;4138:267;;;574:8;4206:43;;;;4138:267;;;519:8;4340:38;;;;4138:267;4438:1;4430:9;;;;4072:386;;;4482:4;4475:11;;;;;3526:971;;;:::o;4507:129::-;4562:5;4594:25;4609:9;4594:14;:25::i;:::-;:31;;;4587:38;;4507:129;;;:::o;731:382::-;785:4;825:1;820;813:4;:8;;;;;;;;:13;;;809:76;;861:5;854:12;;;;809:76;920:1;913:3;906:4;:10;;;;;;;;:15;;;902:77;;956:4;949:11;;;;902:77;1014:1;1007:3;1000:4;:10;;;;;;;;:15;;;996:78;;1050:5;1043:12;;;;996:78;1098:4;1091:11;;731:382;;;;:::o;1123:160::-;1180:4;1212:1;1204:9;;;;1269:3;1262:4;:10;;;;;;1256:3;1249:4;:10;;;;;;1245:1;1238:4;:8;;;;;;:21;:34;1231:41;;1123:160;;;:::o;1293:571::-;1364:5;1402:1;1393:5;:10;;;:24;;;;1416:1;1407:5;:10;;;1393:24;:38;;;;1430:1;1421:5;:10;;;1393:38;:52;;;;1444:1;1435:5;:10;;;1393:52;:66;;;;1458:1;1449:5;:10;;;1393:66;:81;;;;1472:2;1463:5;:11;;;1393:81;:96;;;;1487:2;1478:5;:11;;;1393:96;1389:465;;;1524:2;1517:9;;;;1389:465;1580:1;1571:5;:10;;;:24;;;;1594:1;1585:5;:10;;;1571:24;:38;;;;1608:1;1599:5;:10;;;1571:38;:53;;;;1622:2;1613:5;:11;;;1571:53;1567:287;;;1659:2;1652:9;;;;1567:287;1706:16;1717:4;1706:10;:16::i;:::-;1702:152;;;1757:2;1750:9;;;;1702:152;1833:2;1826:9;;1293:571;;;;;:::o;4916:127::-;4972:5;5029:2;5023;5011:9;:14;;;;;;5010:21;;;;;;4997:35;;4916:127;;;:::o;1874:1642::-;1937:19;;:::i;:::-;1976:24;2022:8;2048:7;2108:18;2116:9;2108:7;:18::i;:::-;2098:2;:7;;:28;;;;;;;;;;;2177;716:4;2177:28;;:15;:28::i;:::-;2150:24;2166:2;:7;;;2150:24;;:15;:24::i;:::-;:55;2144:61;;2270:3;574:8;2247:26;2224:49;;;;2357:3;716:4;2333:2;:7;;;:21;:27;;;519:8;2314:47;2291:70;;;;2405:19;2451:1;2447:5;;2442:385;2459:2;2454:1;:7;;;2442:385;;2528:26;2543:1;2546:2;:7;;;2528:14;:26::i;:::-;2511:43;;472:5;2511:43;2494:60;;2623:9;2601:19;2584:14;:36;:48;2580:166;;;2679:1;2668:2;:8;;:12;;;;;;;;;;;2714:5;;2580:166;2794:14;2771:37;;;;2463:3;;;;;;;2442:385;;;2877:1;2873:5;;2868:328;2885:33;2900:2;:8;;;2910:2;:7;;;2885:14;:33::i;:::-;2880:38;;:1;:38;;;2868:328;;2994:9;2972:19;472:5;2955:36;:48;2951:164;;;3048:1;3039:2;:6;;:10;;;;;;;;;;;3083:5;;2951:164;472:5;3140:37;;;;2920:3;;;;;;;2868:328;;;3248:18;3256:9;3248:7;:18::i;:::-;3238:2;:7;;:28;;;;;;;;;;;3323:20;3333:9;3323;:20::i;:::-;3311:2;:9;;:32;;;;;;;;;;;3400:20;3410:9;3400;:20::i;:::-;3388:2;:9;;:32;;;;;;;;;;;3484:21;3495:9;3484:10;:21::i;:::-;3471:2;:10;;:34;;;;;;;;;;;1874:1642;;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "// SPDX-License-Identifier: SPDX-License\npragma solidity >=0.4.21 <0.8.0;\n\ncontract DateAndTime {\n /*\n * Date and Time utilities for ethereum contracts\n *\n */\n struct _DateTime {\n uint16 year;\n uint8 month;\n uint8 day;\n uint8 hour;\n uint8 minute;\n uint8 second;\n uint8 weekday;\n }\n\n uint constant DAY_IN_SECONDS = 86400;\n uint constant YEAR_IN_SECONDS = 31536000;\n uint constant LEAP_YEAR_IN_SECONDS = 31622400;\n\n uint constant HOUR_IN_SECONDS = 3600;\n uint constant MINUTE_IN_SECONDS = 60;\n\n uint16 constant ORIGIN_YEAR = 1970;\n\n function isLeapYear(uint16 year) public pure returns (bool) {\n if (year % 4 != 0) {\n return false;\n }\n if (year % 100 != 0) {\n return true;\n }\n if (year % 400 != 0) {\n return false;\n }\n return true;\n }\n\n function leapYearsBefore(uint year) public pure returns (uint) {\n year -= 1;\n return year / 4 - year / 100 + year / 400;\n }\n\n function getDaysInMonth(uint8 month, uint16 year) public pure returns (uint8) {\n if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {\n return 31;\n }\n else if (month == 4 || month == 6 || month == 9 || month == 11) {\n return 30;\n }\n else if (isLeapYear(year)) {\n return 29;\n }\n else {\n return 28;\n }\n }\n\n function parseTimestamp(uint timestamp) internal pure returns (_DateTime memory dt) {\n uint secondsAccountedFor = 0;\n uint buf;\n uint8 i;\n\n // Year\n dt.year = getYear(timestamp);\n buf = leapYearsBefore(dt.year) - leapYearsBefore(ORIGIN_YEAR);\n\n secondsAccountedFor += LEAP_YEAR_IN_SECONDS * buf;\n secondsAccountedFor += YEAR_IN_SECONDS * (dt.year - ORIGIN_YEAR - buf);\n\n // Month\n uint secondsInMonth;\n for (i = 1; i <= 12; i++) {\n secondsInMonth = DAY_IN_SECONDS * getDaysInMonth(i, dt.year);\n if (secondsInMonth + secondsAccountedFor > timestamp) {\n dt.month = i;\n break;\n }\n secondsAccountedFor += secondsInMonth;\n }\n\n // Day\n for (i = 1; i <= getDaysInMonth(dt.month, dt.year); i++) {\n if (DAY_IN_SECONDS + secondsAccountedFor > timestamp) {\n dt.day = i;\n break;\n }\n secondsAccountedFor += DAY_IN_SECONDS;\n }\n\n // Hour\n dt.hour = getHour(timestamp);\n\n // Minute\n dt.minute = getMinute(timestamp);\n\n // Second\n dt.second = getSecond(timestamp);\n\n // Day of week.\n dt.weekday = getWeekday(timestamp);\n }\n\n function getYear(uint timestamp) public pure returns (uint16) {\n uint secondsAccountedFor = 0;\n uint16 year;\n uint numLeapYears;\n\n // Year\n year = uint16(ORIGIN_YEAR + timestamp / YEAR_IN_SECONDS);\n numLeapYears = leapYearsBefore(year) - leapYearsBefore(ORIGIN_YEAR);\n\n secondsAccountedFor += LEAP_YEAR_IN_SECONDS * numLeapYears;\n secondsAccountedFor += YEAR_IN_SECONDS * (year - ORIGIN_YEAR - numLeapYears);\n\n while (secondsAccountedFor > timestamp) {\n if (isLeapYear(uint16(year - 1))) {\n secondsAccountedFor -= LEAP_YEAR_IN_SECONDS;\n }\n else {\n secondsAccountedFor -= YEAR_IN_SECONDS;\n }\n year -= 1;\n }\n return year;\n }\n\n function getMonth(uint timestamp) public pure returns (uint8) {\n return parseTimestamp(timestamp).month;\n }\n\n function getDay(uint timestamp) public pure returns (uint8) {\n return parseTimestamp(timestamp).day;\n }\n\n function getHour(uint timestamp) public pure returns (uint8) {\n return uint8((timestamp / 60) % 24);\n }\n\n function getMinute(uint timestamp) public pure returns (uint8) {\n return uint8((timestamp / 60) % 60);\n }\n\n function getSecond(uint timestamp) public pure returns (uint8) {\n return uint8(timestamp % 60);\n }\n\n function getWeekday(uint timestamp) public pure returns (uint8) {\n return uint8((timestamp / DAY_IN_SECONDS + 4) % 7);\n }\n\n function toTimestamp(uint16 year, uint8 month, uint8 day) public pure returns (uint timestamp) {\n return toTimestamp(year, month, day, 0, 0, 0);\n }\n\n function toTimestamp(uint16 year, uint8 month, uint8 day, uint8 hour) public pure returns (uint timestamp) {\n return toTimestamp(year, month, day, hour, 0, 0);\n }\n\n function toTimestamp(uint16 year, uint8 month, uint8 day, uint8 hour, uint8 minute) public pure returns (uint timestamp) {\n return toTimestamp(year, month, day, hour, minute, 0);\n }\n\n function toTimestamp(uint16 year, uint8 month, uint8 day, uint8 hour, uint8 minute, uint8 second) public pure returns (uint timestamp) {\n uint16 i;\n\n // Year\n for (i = ORIGIN_YEAR; i < year; i++) {\n if (isLeapYear(i)) {\n timestamp += LEAP_YEAR_IN_SECONDS;\n }\n else {\n timestamp += YEAR_IN_SECONDS;\n }\n }\n\n // Month\n uint8[12] memory monthDayCounts;\n monthDayCounts[0] = 31;\n if (isLeapYear(year)) {\n monthDayCounts[1] = 29;\n }\n else {\n monthDayCounts[1] = 28;\n }\n monthDayCounts[2] = 31;\n monthDayCounts[3] = 30;\n monthDayCounts[4] = 31;\n monthDayCounts[5] = 30;\n monthDayCounts[6] = 31;\n monthDayCounts[7] = 31;\n monthDayCounts[8] = 30;\n monthDayCounts[9] = 31;\n monthDayCounts[10] = 30;\n monthDayCounts[11] = 31;\n\n for (i = 1; i < month; i++) {\n timestamp += DAY_IN_SECONDS * monthDayCounts[i - 1];\n }\n\n // Day\n timestamp += DAY_IN_SECONDS * (day - 1);\n\n // Hour\n timestamp += HOUR_IN_SECONDS * (hour);\n\n // Minute\n timestamp += MINUTE_IN_SECONDS * (minute);\n\n // Second\n timestamp += second;\n\n return timestamp;\n }\n}\n", + "sourcePath": "/home/pavansoratur/crypto-boys/src/contracts/DateAndTime.sol", + "ast": { + "absolutePath": "/home/pavansoratur/crypto-boys/src/contracts/DateAndTime.sol", + "exportedSymbols": { + "DateAndTime": [ + 772 + ] + }, + "id": 773, + "license": "SPDX-License", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 1, + "literals": [ + "solidity", + ">=", + "0.4", + ".21", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "41:32:0" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 772, + "linearizedBaseContracts": [ + 772 + ], + "name": "DateAndTime", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "DateAndTime._DateTime", + "id": 16, + "members": [ + { + "constant": false, + "id": 3, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "234:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 2, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "234:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 5, + "mutability": "mutable", + "name": "month", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "263:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 4, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "263:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 7, + "mutability": "mutable", + "name": "day", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "292:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 6, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "292:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 9, + "mutability": "mutable", + "name": "hour", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "319:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 8, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "319:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 11, + "mutability": "mutable", + "name": "minute", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "347:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 10, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "347:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 13, + "mutability": "mutable", + "name": "second", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "377:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 12, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "377:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 15, + "mutability": "mutable", + "name": "weekday", + "nodeType": "VariableDeclaration", + "scope": 16, + "src": "407:13:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 14, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "407:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "name": "_DateTime", + "nodeType": "StructDefinition", + "scope": 772, + "src": "199:232:0", + "visibility": "public" + }, + { + "constant": true, + "id": 19, + "mutability": "constant", + "name": "DAY_IN_SECONDS", + "nodeType": "VariableDeclaration", + "scope": 772, + "src": "441:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 17, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "441:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3836343030", + "id": 18, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "472:5:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "86400" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 22, + "mutability": "constant", + "name": "YEAR_IN_SECONDS", + "nodeType": "VariableDeclaration", + "scope": 772, + "src": "487:40:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 20, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "487:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3331353336303030", + "id": 21, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "519:8:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_31536000_by_1", + "typeString": "int_const 31536000" + }, + "value": "31536000" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 25, + "mutability": "constant", + "name": "LEAP_YEAR_IN_SECONDS", + "nodeType": "VariableDeclaration", + "scope": 772, + "src": "537:45:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 23, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "537:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3331363232343030", + "id": 24, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "574:8:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_31622400_by_1", + "typeString": "int_const 31622400" + }, + "value": "31622400" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 28, + "mutability": "constant", + "name": "HOUR_IN_SECONDS", + "nodeType": "VariableDeclaration", + "scope": 772, + "src": "593:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 26, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "593:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "33363030", + "id": 27, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "625:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "3600" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 31, + "mutability": "constant", + "name": "MINUTE_IN_SECONDS", + "nodeType": "VariableDeclaration", + "scope": 772, + "src": "639:36:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 29, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "639:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3630", + "id": 30, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "673:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 34, + "mutability": "constant", + "name": "ORIGIN_YEAR", + "nodeType": "VariableDeclaration", + "scope": 772, + "src": "686:34:0", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 32, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "686:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "hexValue": "31393730", + "id": 33, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "716:4:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1970_by_1", + "typeString": "int_const 1970" + }, + "value": "1970" + }, + "visibility": "internal" + }, + { + "body": { + "id": 70, + "nodeType": "Block", + "src": "791:322:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 45, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 43, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 41, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 36, + "src": "813:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "34", + "id": 42, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "820:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "813:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 44, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "825:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "813:13:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 49, + "nodeType": "IfStatement", + "src": "809:76:0", + "trueBody": { + "id": 48, + "nodeType": "Block", + "src": "828:57:0", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 46, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "861:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 40, + "id": 47, + "nodeType": "Return", + "src": "854:12:0" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 54, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 52, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 50, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 36, + "src": "906:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "313030", + "id": 51, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "913:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "906:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 53, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "920:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "906:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 58, + "nodeType": "IfStatement", + "src": "902:77:0", + "trueBody": { + "id": 57, + "nodeType": "Block", + "src": "923:56:0", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 55, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "956:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 40, + "id": 56, + "nodeType": "Return", + "src": "949:11:0" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 63, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 61, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 59, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 36, + "src": "1000:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "343030", + "id": 60, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1007:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_400_by_1", + "typeString": "int_const 400" + }, + "value": "400" + }, + "src": "1000:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 62, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1014:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "1000:15:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 67, + "nodeType": "IfStatement", + "src": "996:78:0", + "trueBody": { + "id": 66, + "nodeType": "Block", + "src": "1017:57:0", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 64, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1050:5:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 40, + "id": 65, + "nodeType": "Return", + "src": "1043:12:0" + } + ] + } + }, + { + "expression": { + "hexValue": "74727565", + "id": 68, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1098:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 40, + "id": 69, + "nodeType": "Return", + "src": "1091:11:0" + } + ] + }, + "functionSelector": "a6f0e577", + "id": 71, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isLeapYear", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 37, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 36, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "751:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 35, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "751:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "src": "750:13:0" + }, + "returnParameters": { + "id": 40, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 39, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 71, + "src": "785:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 38, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "785:4:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "784:6:0" + }, + "scope": 772, + "src": "731:382:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 94, + "nodeType": "Block", + "src": "1186:97:0", + "statements": [ + { + "expression": { + "id": 80, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 78, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 73, + "src": "1204:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "31", + "id": 79, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1212:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1204:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 81, + "nodeType": "ExpressionStatement", + "src": "1204:9:0" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 92, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 88, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 84, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 82, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 73, + "src": "1238:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "34", + "id": 83, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1245:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "1238:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 87, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 85, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 73, + "src": "1249:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 86, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1256:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "1249:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1238:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 91, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 89, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 73, + "src": "1262:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "343030", + "id": 90, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1269:3:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_400_by_1", + "typeString": "int_const 400" + }, + "value": "400" + }, + "src": "1262:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1238:34:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 77, + "id": 93, + "nodeType": "Return", + "src": "1231:41:0" + } + ] + }, + "functionSelector": "b1999937", + "id": 95, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "leapYearsBefore", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 74, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 73, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 95, + "src": "1148:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 72, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1148:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1147:11:0" + }, + "returnParameters": { + "id": 77, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 76, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 95, + "src": "1180:4:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 75, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1180:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1179:6:0" + }, + "scope": 772, + "src": "1123:160:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 164, + "nodeType": "Block", + "src": "1371:493:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 130, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 126, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 118, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 110, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 106, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 104, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "1393:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 105, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1402:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1393:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 109, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 107, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "1407:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "33", + "id": 108, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1416:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1407:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1393:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 113, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 111, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "1421:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "35", + "id": 112, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1430:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "1421:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1393:38:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 115, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "1435:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 116, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1444:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "src": "1435:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1393:52:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 121, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 119, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "1449:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "38", + "id": 120, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1458:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "1449:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1393:66:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 123, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "1463:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3130", + "id": 124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1472:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1463:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1393:81:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 127, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "1478:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3132", + "id": 128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1487:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "1478:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1393:96:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 148, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 144, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 140, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 136, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 134, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "1571:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "34", + "id": 135, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1580:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "1571:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 137, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "1585:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "36", + "id": 138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1594:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "src": "1585:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1571:24:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 143, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 141, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "1599:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "39", + "id": 142, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1608:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "src": "1599:10:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1571:38:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 147, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 145, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 97, + "src": "1613:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3131", + "id": 146, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1622:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_11_by_1", + "typeString": "int_const 11" + }, + "value": "11" + }, + "src": "1613:11:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1571:53:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "arguments": [ + { + "id": 153, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 99, + "src": "1717:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 152, + "name": "isLeapYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "1706:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint16) pure returns (bool)" + } + }, + "id": 154, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1706:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 160, + "nodeType": "Block", + "src": "1800:54:0", + "statements": [ + { + "expression": { + "hexValue": "3238", + "id": 158, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1833:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_28_by_1", + "typeString": "int_const 28" + }, + "value": "28" + }, + "functionReturnParameters": 103, + "id": 159, + "nodeType": "Return", + "src": "1826:9:0" + } + ] + }, + "id": 161, + "nodeType": "IfStatement", + "src": "1702:152:0", + "trueBody": { + "id": 157, + "nodeType": "Block", + "src": "1724:54:0", + "statements": [ + { + "expression": { + "hexValue": "3239", + "id": 155, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1757:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_29_by_1", + "typeString": "int_const 29" + }, + "value": "29" + }, + "functionReturnParameters": 103, + "id": 156, + "nodeType": "Return", + "src": "1750:9:0" + } + ] + } + }, + "id": 162, + "nodeType": "IfStatement", + "src": "1567:287:0", + "trueBody": { + "id": 151, + "nodeType": "Block", + "src": "1626:54:0", + "statements": [ + { + "expression": { + "hexValue": "3330", + "id": 149, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1659:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_30_by_1", + "typeString": "int_const 30" + }, + "value": "30" + }, + "functionReturnParameters": 103, + "id": 150, + "nodeType": "Return", + "src": "1652:9:0" + } + ] + } + }, + "id": 163, + "nodeType": "IfStatement", + "src": "1389:465:0", + "trueBody": { + "id": 133, + "nodeType": "Block", + "src": "1491:54:0", + "statements": [ + { + "expression": { + "hexValue": "3331", + "id": 131, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1524:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "functionReturnParameters": 103, + "id": 132, + "nodeType": "Return", + "src": "1517:9:0" + } + ] + } + } + ] + }, + "functionSelector": "b238ad0e", + "id": 165, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDaysInMonth", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 100, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 97, + "mutability": "mutable", + "name": "month", + "nodeType": "VariableDeclaration", + "scope": 165, + "src": "1317:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 96, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1317:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 99, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 165, + "src": "1330:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 98, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1330:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "src": "1316:26:0" + }, + "returnParameters": { + "id": 103, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 102, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 165, + "src": "1364:5:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 101, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1364:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "1363:7:0" + }, + "scope": 772, + "src": "1293:571:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 329, + "nodeType": "Block", + "src": "1958:1558:0", + "statements": [ + { + "assignments": [ + 173 + ], + "declarations": [ + { + "constant": false, + "id": 173, + "mutability": "mutable", + "name": "secondsAccountedFor", + "nodeType": "VariableDeclaration", + "scope": 329, + "src": "1976:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 172, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1976:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 175, + "initialValue": { + "hexValue": "30", + "id": 174, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2003:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1976:28:0" + }, + { + "assignments": [ + 177 + ], + "declarations": [ + { + "constant": false, + "id": 177, + "mutability": "mutable", + "name": "buf", + "nodeType": "VariableDeclaration", + "scope": 329, + "src": "2022:8:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 176, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2022:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 178, + "nodeType": "VariableDeclarationStatement", + "src": "2022:8:0" + }, + { + "assignments": [ + 180 + ], + "declarations": [ + { + "constant": false, + "id": 180, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 329, + "src": "2048:7:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 179, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2048:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 181, + "nodeType": "VariableDeclarationStatement", + "src": "2048:7:0" + }, + { + "expression": { + "id": 188, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 182, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "2098:2:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$16_memory_ptr", + "typeString": "struct DateAndTime._DateTime memory" + } + }, + "id": 184, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "year", + "nodeType": "MemberAccess", + "referencedDeclaration": 3, + "src": "2098:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 186, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2116:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 185, + "name": "getYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 416, + "src": "2108:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint16_$", + "typeString": "function (uint256) pure returns (uint16)" + } + }, + "id": 187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2108:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "2098:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 189, + "nodeType": "ExpressionStatement", + "src": "2098:28:0" + }, + { + "expression": { + "id": 199, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 190, + "name": "buf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "2144:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 198, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "expression": { + "id": 192, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "2166:2:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$16_memory_ptr", + "typeString": "struct DateAndTime._DateTime memory" + } + }, + "id": 193, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "year", + "nodeType": "MemberAccess", + "referencedDeclaration": 3, + "src": "2166:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 191, + "name": "leapYearsBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 95, + "src": "2150:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 194, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2150:24:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "id": 196, + "name": "ORIGIN_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "2193:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 195, + "name": "leapYearsBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 95, + "src": "2177:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 197, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2177:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2150:55:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2144:61:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 200, + "nodeType": "ExpressionStatement", + "src": "2144:61:0" + }, + { + "expression": { + "id": 205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 201, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 173, + "src": "2224:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 202, + "name": "LEAP_YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "2247:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 203, + "name": "buf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "2270:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2247:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2224:49:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 206, + "nodeType": "ExpressionStatement", + "src": "2224:49:0" + }, + { + "expression": { + "id": 217, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 207, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 173, + "src": "2291:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 216, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 208, + "name": "YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "2314:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 214, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 212, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 209, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "2333:2:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$16_memory_ptr", + "typeString": "struct DateAndTime._DateTime memory" + } + }, + "id": 210, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "year", + "nodeType": "MemberAccess", + "referencedDeclaration": 3, + "src": "2333:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 211, + "name": "ORIGIN_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "2343:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "2333:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 213, + "name": "buf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 177, + "src": "2357:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2333:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 215, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2332:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2314:47:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2291:70:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 218, + "nodeType": "ExpressionStatement", + "src": "2291:70:0" + }, + { + "assignments": [ + 220 + ], + "declarations": [ + { + "constant": false, + "id": 220, + "mutability": "mutable", + "name": "secondsInMonth", + "nodeType": "VariableDeclaration", + "scope": 329, + "src": "2405:19:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 219, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2405:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 221, + "nodeType": "VariableDeclarationStatement", + "src": "2405:19:0" + }, + { + "body": { + "id": 260, + "nodeType": "Block", + "src": "2468:359:0", + "statements": [ + { + "expression": { + "id": 240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 232, + "name": "secondsInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "2494:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 233, + "name": "DAY_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "2511:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 235, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "2543:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "expression": { + "id": 236, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "2546:2:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$16_memory_ptr", + "typeString": "struct DateAndTime._DateTime memory" + } + }, + "id": 237, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "year", + "nodeType": "MemberAccess", + "referencedDeclaration": 3, + "src": "2546:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 234, + "name": "getDaysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "2528:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint16_$returns$_t_uint8_$", + "typeString": "function (uint8,uint16) pure returns (uint8)" + } + }, + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2528:26:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "2511:43:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2494:60:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 241, + "nodeType": "ExpressionStatement", + "src": "2494:60:0" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 244, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 242, + "name": "secondsInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "2584:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 243, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 173, + "src": "2601:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2584:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 245, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2623:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2584:48:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 255, + "nodeType": "IfStatement", + "src": "2580:166:0", + "trueBody": { + "id": 254, + "nodeType": "Block", + "src": "2634:112:0", + "statements": [ + { + "expression": { + "id": 251, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 247, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "2668:2:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$16_memory_ptr", + "typeString": "struct DateAndTime._DateTime memory" + } + }, + "id": 249, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "month", + "nodeType": "MemberAccess", + "referencedDeclaration": 5, + "src": "2668:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 250, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "2679:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "2668:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 252, + "nodeType": "ExpressionStatement", + "src": "2668:12:0" + }, + { + "id": 253, + "nodeType": "Break", + "src": "2714:5:0" + } + ] + } + }, + { + "expression": { + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 256, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 173, + "src": "2771:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 257, + "name": "secondsInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 220, + "src": "2794:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2771:37:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 259, + "nodeType": "ExpressionStatement", + "src": "2771:37:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 228, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 226, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "2454:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "3132", + "id": 227, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2459:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "2454:7:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 261, + "initializationExpression": { + "expression": { + "id": 224, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 222, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "2447:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2451:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2447:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 225, + "nodeType": "ExpressionStatement", + "src": "2447:5:0" + }, + "loopExpression": { + "expression": { + "id": 230, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2463:3:0", + "subExpression": { + "id": 229, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "2463:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 231, + "nodeType": "ExpressionStatement", + "src": "2463:3:0" + }, + "nodeType": "ForStatement", + "src": "2442:385:0" + }, + { + "body": { + "id": 295, + "nodeType": "Block", + "src": "2925:271:0", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 279, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 277, + "name": "DAY_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "2955:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 278, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 173, + "src": "2972:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2955:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 280, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "2994:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2955:48:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 290, + "nodeType": "IfStatement", + "src": "2951:164:0", + "trueBody": { + "id": 289, + "nodeType": "Block", + "src": "3005:110:0", + "statements": [ + { + "expression": { + "id": 286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 282, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "3039:2:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$16_memory_ptr", + "typeString": "struct DateAndTime._DateTime memory" + } + }, + "id": 284, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "day", + "nodeType": "MemberAccess", + "referencedDeclaration": 7, + "src": "3039:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 285, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "3048:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3039:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 287, + "nodeType": "ExpressionStatement", + "src": "3039:10:0" + }, + { + "id": 288, + "nodeType": "Break", + "src": "3083:5:0" + } + ] + } + }, + { + "expression": { + "id": 293, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 291, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 173, + "src": "3140:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 292, + "name": "DAY_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "3163:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3140:37:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 294, + "nodeType": "ExpressionStatement", + "src": "3140:37:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 266, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "2880:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "arguments": [ + { + "expression": { + "id": 268, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "2900:2:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$16_memory_ptr", + "typeString": "struct DateAndTime._DateTime memory" + } + }, + "id": 269, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "month", + "nodeType": "MemberAccess", + "referencedDeclaration": 5, + "src": "2900:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "expression": { + "id": 270, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "2910:2:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$16_memory_ptr", + "typeString": "struct DateAndTime._DateTime memory" + } + }, + "id": 271, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "year", + "nodeType": "MemberAccess", + "referencedDeclaration": 3, + "src": "2910:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 267, + "name": "getDaysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 165, + "src": "2885:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint16_$returns$_t_uint8_$", + "typeString": "function (uint8,uint16) pure returns (uint8)" + } + }, + "id": 272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2885:33:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "2880:38:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 296, + "initializationExpression": { + "expression": { + "id": 264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 262, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "2873:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 263, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2877:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2873:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 265, + "nodeType": "ExpressionStatement", + "src": "2873:5:0" + }, + "loopExpression": { + "expression": { + "id": 275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2920:3:0", + "subExpression": { + "id": 274, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 180, + "src": "2920:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 276, + "nodeType": "ExpressionStatement", + "src": "2920:3:0" + }, + "nodeType": "ForStatement", + "src": "2868:328:0" + }, + { + "expression": { + "id": 303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 297, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "3238:2:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$16_memory_ptr", + "typeString": "struct DateAndTime._DateTime memory" + } + }, + "id": 299, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "hour", + "nodeType": "MemberAccess", + "referencedDeclaration": 9, + "src": "3238:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 301, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "3256:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 300, + "name": "getHour", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 460, + "src": "3248:7:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint8_$", + "typeString": "function (uint256) pure returns (uint8)" + } + }, + "id": 302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3248:18:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3238:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 304, + "nodeType": "ExpressionStatement", + "src": "3238:28:0" + }, + { + "expression": { + "id": 311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 305, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "3311:2:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$16_memory_ptr", + "typeString": "struct DateAndTime._DateTime memory" + } + }, + "id": 307, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "minute", + "nodeType": "MemberAccess", + "referencedDeclaration": 11, + "src": "3311:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 309, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "3333:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 308, + "name": "getMinute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 478, + "src": "3323:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint8_$", + "typeString": "function (uint256) pure returns (uint8)" + } + }, + "id": 310, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3323:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3311:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 312, + "nodeType": "ExpressionStatement", + "src": "3311:32:0" + }, + { + "expression": { + "id": 319, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 313, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "3388:2:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$16_memory_ptr", + "typeString": "struct DateAndTime._DateTime memory" + } + }, + "id": 315, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "second", + "nodeType": "MemberAccess", + "referencedDeclaration": 13, + "src": "3388:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 317, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "3410:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 316, + "name": "getSecond", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 493, + "src": "3400:9:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint8_$", + "typeString": "function (uint256) pure returns (uint8)" + } + }, + "id": 318, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3400:20:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3388:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 320, + "nodeType": "ExpressionStatement", + "src": "3388:32:0" + }, + { + "expression": { + "id": 327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 321, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 170, + "src": "3471:2:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$16_memory_ptr", + "typeString": "struct DateAndTime._DateTime memory" + } + }, + "id": 323, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "weekday", + "nodeType": "MemberAccess", + "referencedDeclaration": 15, + "src": "3471:10:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 325, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 167, + "src": "3495:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 324, + "name": "getWeekday", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 513, + "src": "3484:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint8_$", + "typeString": "function (uint256) pure returns (uint8)" + } + }, + "id": 326, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3484:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3471:34:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 328, + "nodeType": "ExpressionStatement", + "src": "3471:34:0" + } + ] + }, + "id": 330, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 168, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 167, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 330, + "src": "1898:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 166, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1898:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1897:16:0" + }, + "returnParameters": { + "id": 171, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 170, + "mutability": "mutable", + "name": "dt", + "nodeType": "VariableDeclaration", + "scope": 330, + "src": "1937:19:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$16_memory_ptr", + "typeString": "struct DateAndTime._DateTime" + }, + "typeName": { + "id": 169, + "name": "_DateTime", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 16, + "src": "1937:9:0", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$16_storage_ptr", + "typeString": "struct DateAndTime._DateTime" + } + }, + "visibility": "internal" + } + ], + "src": "1936:21:0" + }, + "scope": 772, + "src": "1874:1642:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 415, + "nodeType": "Block", + "src": "3588:909:0", + "statements": [ + { + "assignments": [ + 338 + ], + "declarations": [ + { + "constant": false, + "id": 338, + "mutability": "mutable", + "name": "secondsAccountedFor", + "nodeType": "VariableDeclaration", + "scope": 415, + "src": "3606:24:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 337, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3606:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 340, + "initialValue": { + "hexValue": "30", + "id": 339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3633:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3606:28:0" + }, + { + "assignments": [ + 342 + ], + "declarations": [ + { + "constant": false, + "id": 342, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 415, + "src": "3652:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 341, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3652:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "id": 343, + "nodeType": "VariableDeclarationStatement", + "src": "3652:11:0" + }, + { + "assignments": [ + 345 + ], + "declarations": [ + { + "constant": false, + "id": 345, + "mutability": "mutable", + "name": "numLeapYears", + "nodeType": "VariableDeclaration", + "scope": 415, + "src": "3681:17:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 344, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3681:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 346, + "nodeType": "VariableDeclarationStatement", + "src": "3681:17:0" + }, + { + "expression": { + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 347, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 342, + "src": "3741:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 350, + "name": "ORIGIN_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "3755:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 351, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 332, + "src": "3769:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 352, + "name": "YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "3781:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3769:27:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3755:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3748:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 348, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3748:6:0", + "typeDescriptions": {} + } + }, + "id": 355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3748:49:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "3741:56:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 357, + "nodeType": "ExpressionStatement", + "src": "3741:56:0" + }, + { + "expression": { + "id": 366, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 358, + "name": "numLeapYears", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "3815:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 360, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 342, + "src": "3846:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 359, + "name": "leapYearsBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 95, + "src": "3830:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3830:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "id": 363, + "name": "ORIGIN_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "3870:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 362, + "name": "leapYearsBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 95, + "src": "3854:15:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 364, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3854:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3830:52:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3815:67:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 367, + "nodeType": "ExpressionStatement", + "src": "3815:67:0" + }, + { + "expression": { + "id": 372, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 368, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "3901:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 371, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 369, + "name": "LEAP_YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "3924:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 370, + "name": "numLeapYears", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "3947:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3924:35:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3901:58:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 373, + "nodeType": "ExpressionStatement", + "src": "3901:58:0" + }, + { + "expression": { + "id": 383, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 374, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "3977:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 375, + "name": "YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "4000:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 380, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 378, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 376, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 342, + "src": "4019:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 377, + "name": "ORIGIN_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "4026:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "4019:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 379, + "name": "numLeapYears", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 345, + "src": "4040:12:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4019:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 381, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4018:35:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4000:53:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3977:76:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 384, + "nodeType": "ExpressionStatement", + "src": "3977:76:0" + }, + { + "body": { + "id": 411, + "nodeType": "Block", + "src": "4112:346:0", + "statements": [ + { + "condition": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 393, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 391, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 342, + "src": "4160:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 392, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4167:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4160:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 390, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4153:6:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 389, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4153:6:0", + "typeDescriptions": {} + } + }, + "id": 394, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4153:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 388, + "name": "isLeapYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "4142:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint16) pure returns (bool)" + } + }, + "id": 395, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4142:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 405, + "nodeType": "Block", + "src": "4306:99:0", + "statements": [ + { + "expression": { + "id": 403, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 401, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4340:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 402, + "name": "YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "4363:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4340:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 404, + "nodeType": "ExpressionStatement", + "src": "4340:38:0" + } + ] + }, + "id": 406, + "nodeType": "IfStatement", + "src": "4138:267:0", + "trueBody": { + "id": 400, + "nodeType": "Block", + "src": "4172:104:0", + "statements": [ + { + "expression": { + "id": 398, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 396, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4206:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 397, + "name": "LEAP_YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "4229:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4206:43:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 399, + "nodeType": "ExpressionStatement", + "src": "4206:43:0" + } + ] + } + }, + { + "expression": { + "id": 409, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 407, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 342, + "src": "4430:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "31", + "id": 408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4438:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4430:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 410, + "nodeType": "ExpressionStatement", + "src": "4430:9:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 387, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 385, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 338, + "src": "4079:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 386, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 332, + "src": "4101:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4079:31:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 412, + "nodeType": "WhileStatement", + "src": "4072:386:0" + }, + { + "expression": { + "id": 413, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 342, + "src": "4482:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 336, + "id": 414, + "nodeType": "Return", + "src": "4475:11:0" + } + ] + }, + "functionSelector": "92d66313", + "id": 416, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getYear", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 332, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 416, + "src": "3543:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 331, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3543:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3542:16:0" + }, + "returnParameters": { + "id": 336, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 335, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 416, + "src": "3580:6:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 334, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3580:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "src": "3579:8:0" + }, + "scope": 772, + "src": "3526:971:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 428, + "nodeType": "Block", + "src": "4569:67:0", + "statements": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 424, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 418, + "src": "4609:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 423, + "name": "parseTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 330, + "src": "4594:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_struct$__DateTime_$16_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct DateAndTime._DateTime memory)" + } + }, + "id": 425, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4594:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$16_memory_ptr", + "typeString": "struct DateAndTime._DateTime memory" + } + }, + "id": 426, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "month", + "nodeType": "MemberAccess", + "referencedDeclaration": 5, + "src": "4594:31:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 422, + "id": 427, + "nodeType": "Return", + "src": "4587:38:0" + } + ] + }, + "functionSelector": "a324ad24", + "id": 429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMonth", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 419, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 418, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 429, + "src": "4525:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 417, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4525:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4524:16:0" + }, + "returnParameters": { + "id": 422, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 421, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 429, + "src": "4562:5:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 420, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4562:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "4561:7:0" + }, + "scope": 772, + "src": "4507:129:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 441, + "nodeType": "Block", + "src": "4706:65:0", + "statements": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 437, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 431, + "src": "4746:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 436, + "name": "parseTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 330, + "src": "4731:14:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_struct$__DateTime_$16_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct DateAndTime._DateTime memory)" + } + }, + "id": 438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4731:25:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$16_memory_ptr", + "typeString": "struct DateAndTime._DateTime memory" + } + }, + "id": 439, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "day", + "nodeType": "MemberAccess", + "referencedDeclaration": 7, + "src": "4731:29:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 435, + "id": 440, + "nodeType": "Return", + "src": "4724:36:0" + } + ] + }, + "functionSelector": "65c72840", + "id": 442, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDay", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 432, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 431, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 442, + "src": "4662:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 430, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4662:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4661:16:0" + }, + "returnParameters": { + "id": 435, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 434, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 442, + "src": "4699:5:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 433, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4699:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "4698:7:0" + }, + "scope": 772, + "src": "4646:125:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 459, + "nodeType": "Block", + "src": "4842:64:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 456, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 451, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 444, + "src": "4874:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "3630", + "id": 452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4886:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "4874:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 454, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4873:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3234", + "id": 455, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4892:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + "src": "4873:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 450, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4867:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 449, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4867:5:0", + "typeDescriptions": {} + } + }, + "id": 457, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4867:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 448, + "id": 458, + "nodeType": "Return", + "src": "4860:35:0" + } + ] + }, + "functionSelector": "3e239e1a", + "id": 460, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getHour", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 445, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 444, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 460, + "src": "4798:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 443, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4798:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4797:16:0" + }, + "returnParameters": { + "id": 448, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 447, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 460, + "src": "4835:5:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 446, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4835:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "4834:7:0" + }, + "scope": 772, + "src": "4781:125:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 477, + "nodeType": "Block", + "src": "4979:64:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 469, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 462, + "src": "5011:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "3630", + "id": 470, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5023:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "5011:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 472, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5010:16:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3630", + "id": 473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5029:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "5010:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 468, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5004:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 467, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5004:5:0", + "typeDescriptions": {} + } + }, + "id": 475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5004:28:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 466, + "id": 476, + "nodeType": "Return", + "src": "4997:35:0" + } + ] + }, + "functionSelector": "fa93f883", + "id": 478, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMinute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 463, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 462, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 478, + "src": "4935:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 461, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4935:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4934:16:0" + }, + "returnParameters": { + "id": 466, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 465, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 478, + "src": "4972:5:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 464, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4972:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "4971:7:0" + }, + "scope": 772, + "src": "4916:127:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 492, + "nodeType": "Block", + "src": "5116:57:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 487, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 480, + "src": "5147:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3630", + "id": 488, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5159:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "5147:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 486, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5141:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 485, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5141:5:0", + "typeDescriptions": {} + } + }, + "id": 490, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5141:21:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 484, + "id": 491, + "nodeType": "Return", + "src": "5134:28:0" + } + ] + }, + "functionSelector": "8aa001fc", + "id": 493, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSecond", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 481, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 480, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 493, + "src": "5072:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 479, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5072:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5071:16:0" + }, + "returnParameters": { + "id": 484, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 483, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 493, + "src": "5109:5:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 482, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5109:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "5108:7:0" + }, + "scope": 772, + "src": "5053:120:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 512, + "nodeType": "Block", + "src": "5247:79:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 504, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 502, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 495, + "src": "5279:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 503, + "name": "DAY_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "5291:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5279:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "34", + "id": 505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5308:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "5279:30:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 507, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5278:32:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "37", + "id": 508, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5313:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "src": "5278:36:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 501, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5272:5:0", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 500, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5272:5:0", + "typeDescriptions": {} + } + }, + "id": 510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5272:43:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 499, + "id": 511, + "nodeType": "Return", + "src": "5265:50:0" + } + ] + }, + "functionSelector": "4ac1ad78", + "id": 513, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getWeekday", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 496, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 495, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 513, + "src": "5203:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 494, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5203:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5202:16:0" + }, + "returnParameters": { + "id": 499, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 498, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 513, + "src": "5240:5:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 497, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5240:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "5239:7:0" + }, + "scope": 772, + "src": "5183:143:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 533, + "nodeType": "Block", + "src": "5431:74:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 525, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 515, + "src": "5468:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "id": 526, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 517, + "src": "5474:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 527, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 519, + "src": "5481:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "hexValue": "30", + "id": 528, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5486:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 529, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5489:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 530, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5492:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 524, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 534, + 557, + 582, + 771 + ], + "referencedDeclaration": 771, + "src": "5456:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint8_$_t_uint8_$_t_uint8_$_t_uint8_$_t_uint8_$returns$_t_uint256_$", + "typeString": "function (uint16,uint8,uint8,uint8,uint8,uint8) pure returns (uint256)" + } + }, + "id": 531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5456:38:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 523, + "id": 532, + "nodeType": "Return", + "src": "5449:45:0" + } + ] + }, + "functionSelector": "8c8d98a0", + "id": 534, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 520, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 515, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 534, + "src": "5357:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 514, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "5357:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 517, + "mutability": "mutable", + "name": "month", + "nodeType": "VariableDeclaration", + "scope": 534, + "src": "5370:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 516, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5370:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 519, + "mutability": "mutable", + "name": "day", + "nodeType": "VariableDeclaration", + "scope": 534, + "src": "5383:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 518, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5383:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "5356:37:0" + }, + "returnParameters": { + "id": 523, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 522, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 534, + "src": "5415:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 521, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5415:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5414:16:0" + }, + "scope": 772, + "src": "5336:169:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 556, + "nodeType": "Block", + "src": "5622:77:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 548, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 536, + "src": "5659:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "id": 549, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 538, + "src": "5665:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 550, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 540, + "src": "5672:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 551, + "name": "hour", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 542, + "src": "5677:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "hexValue": "30", + "id": 552, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5683:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5686:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 547, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 534, + 557, + 582, + 771 + ], + "referencedDeclaration": 771, + "src": "5647:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint8_$_t_uint8_$_t_uint8_$_t_uint8_$_t_uint8_$returns$_t_uint256_$", + "typeString": "function (uint16,uint8,uint8,uint8,uint8,uint8) pure returns (uint256)" + } + }, + "id": 554, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5647:41:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 546, + "id": 555, + "nodeType": "Return", + "src": "5640:48:0" + } + ] + }, + "functionSelector": "7f791833", + "id": 557, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 543, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 536, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 557, + "src": "5536:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 535, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "5536:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 538, + "mutability": "mutable", + "name": "month", + "nodeType": "VariableDeclaration", + "scope": 557, + "src": "5549:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 537, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5549:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 540, + "mutability": "mutable", + "name": "day", + "nodeType": "VariableDeclaration", + "scope": 557, + "src": "5562:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 539, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5562:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 542, + "mutability": "mutable", + "name": "hour", + "nodeType": "VariableDeclaration", + "scope": 557, + "src": "5573:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 541, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5573:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "5535:49:0" + }, + "returnParameters": { + "id": 546, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 545, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 557, + "src": "5606:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 544, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5606:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5605:16:0" + }, + "scope": 772, + "src": "5515:184:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 581, + "nodeType": "Block", + "src": "5830:82:0", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 573, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "5867:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "id": 574, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 561, + "src": "5873:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 575, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "5880:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 576, + "name": "hour", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 565, + "src": "5885:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 577, + "name": "minute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 567, + "src": "5891:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "hexValue": "30", + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5899:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 572, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 534, + 557, + 582, + 771 + ], + "referencedDeclaration": 771, + "src": "5855:11:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint8_$_t_uint8_$_t_uint8_$_t_uint8_$_t_uint8_$returns$_t_uint256_$", + "typeString": "function (uint16,uint8,uint8,uint8,uint8,uint8) pure returns (uint256)" + } + }, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5855:46:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 571, + "id": 580, + "nodeType": "Return", + "src": "5848:53:0" + } + ] + }, + "functionSelector": "62ba9687", + "id": 582, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 568, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 559, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "5730:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 558, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "5730:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 561, + "mutability": "mutable", + "name": "month", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "5743:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 560, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5743:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 563, + "mutability": "mutable", + "name": "day", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "5756:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 562, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5756:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 565, + "mutability": "mutable", + "name": "hour", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "5767:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 564, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5767:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 567, + "mutability": "mutable", + "name": "minute", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "5779:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 566, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5779:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "5729:63:0" + }, + "returnParameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 570, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 582, + "src": "5814:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 569, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5814:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5813:16:0" + }, + "scope": 772, + "src": "5709:203:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 770, + "nodeType": "Block", + "src": "6057:1592:0", + "statements": [ + { + "assignments": [ + 600 + ], + "declarations": [ + { + "constant": false, + "id": 600, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 770, + "src": "6075:8:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 599, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "6075:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "id": 601, + "nodeType": "VariableDeclarationStatement", + "src": "6075:8:0" + }, + { + "body": { + "id": 626, + "nodeType": "Block", + "src": "6163:276:0", + "statements": [ + { + "condition": { + "arguments": [ + { + "id": 613, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "6204:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 612, + "name": "isLeapYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "6193:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint16) pure returns (bool)" + } + }, + "id": 614, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6193:13:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 624, + "nodeType": "Block", + "src": "6332:89:0", + "statements": [ + { + "expression": { + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 620, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 597, + "src": "6366:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 621, + "name": "YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 22, + "src": "6379:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6366:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 623, + "nodeType": "ExpressionStatement", + "src": "6366:28:0" + } + ] + }, + "id": 625, + "nodeType": "IfStatement", + "src": "6189:232:0", + "trueBody": { + "id": 619, + "nodeType": "Block", + "src": "6208:94:0", + "statements": [ + { + "expression": { + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 615, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 597, + "src": "6242:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 616, + "name": "LEAP_YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 25, + "src": "6255:20:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6242:33:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 618, + "nodeType": "ExpressionStatement", + "src": "6242:33:0" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 606, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "6148:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 607, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "6152:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "6148:8:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 627, + "initializationExpression": { + "expression": { + "id": 604, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 602, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "6131:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 603, + "name": "ORIGIN_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 34, + "src": "6135:11:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "6131:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 605, + "nodeType": "ExpressionStatement", + "src": "6131:15:0" + }, + "loopExpression": { + "expression": { + "id": 610, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6158:3:0", + "subExpression": { + "id": 609, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "6158:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 611, + "nodeType": "ExpressionStatement", + "src": "6158:3:0" + }, + "nodeType": "ForStatement", + "src": "6126:313:0" + }, + { + "assignments": [ + 633 + ], + "declarations": [ + { + "constant": false, + "id": 633, + "mutability": "mutable", + "name": "monthDayCounts", + "nodeType": "VariableDeclaration", + "scope": 770, + "src": "6482:31:0", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12]" + }, + "typeName": { + "baseType": { + "id": 631, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "6482:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 632, + "length": { + "hexValue": "3132", + "id": 630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6488:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "nodeType": "ArrayTypeName", + "src": "6482:9:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_storage_ptr", + "typeString": "uint8[12]" + } + }, + "visibility": "internal" + } + ], + "id": 634, + "nodeType": "VariableDeclarationStatement", + "src": "6482:31:0" + }, + { + "expression": { + "id": 639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 635, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "6531:14:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 637, + "indexExpression": { + "hexValue": "30", + "id": 636, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6546:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6531:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3331", + "id": 638, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6551:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "6531:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 640, + "nodeType": "ExpressionStatement", + "src": "6531:22:0" + }, + { + "condition": { + "arguments": [ + { + "id": 642, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 584, + "src": "6586:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 641, + "name": "isLeapYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 71, + "src": "6575:10:0", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint16) pure returns (bool)" + } + }, + "id": 643, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6575:16:0", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 657, + "nodeType": "Block", + "src": "6682:67:0", + "statements": [ + { + "expression": { + "id": 655, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 651, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "6708:14:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 653, + "indexExpression": { + "hexValue": "31", + "id": 652, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6723:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6708:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3238", + "id": 654, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6728:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_28_by_1", + "typeString": "int_const 28" + }, + "value": "28" + }, + "src": "6708:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 656, + "nodeType": "ExpressionStatement", + "src": "6708:22:0" + } + ] + }, + "id": 658, + "nodeType": "IfStatement", + "src": "6571:178:0", + "trueBody": { + "id": 650, + "nodeType": "Block", + "src": "6593:67:0", + "statements": [ + { + "expression": { + "id": 648, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 644, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "6619:14:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 646, + "indexExpression": { + "hexValue": "31", + "id": 645, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6634:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6619:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3239", + "id": 647, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6639:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_29_by_1", + "typeString": "int_const 29" + }, + "value": "29" + }, + "src": "6619:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 649, + "nodeType": "ExpressionStatement", + "src": "6619:22:0" + } + ] + } + }, + { + "expression": { + "id": 663, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 659, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "6766:14:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 661, + "indexExpression": { + "hexValue": "32", + "id": 660, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6781:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6766:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3331", + "id": 662, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6786:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "6766:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 664, + "nodeType": "ExpressionStatement", + "src": "6766:22:0" + }, + { + "expression": { + "id": 669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 665, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "6806:14:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 667, + "indexExpression": { + "hexValue": "33", + "id": 666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6821:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6806:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3330", + "id": 668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6826:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_30_by_1", + "typeString": "int_const 30" + }, + "value": "30" + }, + "src": "6806:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 670, + "nodeType": "ExpressionStatement", + "src": "6806:22:0" + }, + { + "expression": { + "id": 675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 671, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "6846:14:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 673, + "indexExpression": { + "hexValue": "34", + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6861:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6846:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3331", + "id": 674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6866:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "6846:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 676, + "nodeType": "ExpressionStatement", + "src": "6846:22:0" + }, + { + "expression": { + "id": 681, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 677, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "6886:14:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 679, + "indexExpression": { + "hexValue": "35", + "id": 678, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6901:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6886:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3330", + "id": 680, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6906:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_30_by_1", + "typeString": "int_const 30" + }, + "value": "30" + }, + "src": "6886:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 682, + "nodeType": "ExpressionStatement", + "src": "6886:22:0" + }, + { + "expression": { + "id": 687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 683, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "6926:14:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 685, + "indexExpression": { + "hexValue": "36", + "id": 684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6941:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6926:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3331", + "id": 686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6946:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "6926:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 688, + "nodeType": "ExpressionStatement", + "src": "6926:22:0" + }, + { + "expression": { + "id": 693, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 689, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "6966:14:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 691, + "indexExpression": { + "hexValue": "37", + "id": 690, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6981:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6966:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3331", + "id": 692, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6986:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "6966:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 694, + "nodeType": "ExpressionStatement", + "src": "6966:22:0" + }, + { + "expression": { + "id": 699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 695, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "7006:14:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 697, + "indexExpression": { + "hexValue": "38", + "id": 696, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7021:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7006:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3330", + "id": 698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7026:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_30_by_1", + "typeString": "int_const 30" + }, + "value": "30" + }, + "src": "7006:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 700, + "nodeType": "ExpressionStatement", + "src": "7006:22:0" + }, + { + "expression": { + "id": 705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 701, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "7046:14:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 703, + "indexExpression": { + "hexValue": "39", + "id": 702, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7061:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7046:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3331", + "id": 704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7066:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "7046:22:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 706, + "nodeType": "ExpressionStatement", + "src": "7046:22:0" + }, + { + "expression": { + "id": 711, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 707, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "7086:14:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 709, + "indexExpression": { + "hexValue": "3130", + "id": 708, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7101:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7086:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3330", + "id": 710, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7107:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_30_by_1", + "typeString": "int_const 30" + }, + "value": "30" + }, + "src": "7086:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 712, + "nodeType": "ExpressionStatement", + "src": "7086:23:0" + }, + { + "expression": { + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 713, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "7127:14:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 715, + "indexExpression": { + "hexValue": "3131", + "id": 714, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7142:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_11_by_1", + "typeString": "int_const 11" + }, + "value": "11" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7127:18:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3331", + "id": 716, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7148:2:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "7127:23:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 718, + "nodeType": "ExpressionStatement", + "src": "7127:23:0" + }, + { + "body": { + "id": 739, + "nodeType": "Block", + "src": "7197:96:0", + "statements": [ + { + "expression": { + "id": 737, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 729, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 597, + "src": "7223:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 730, + "name": "DAY_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "7236:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "baseExpression": { + "id": 731, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 633, + "src": "7253:14:0", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 735, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 732, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "7268:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 733, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7272:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7268:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7253:21:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7236:38:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7223:51:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 738, + "nodeType": "ExpressionStatement", + "src": "7223:51:0" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 723, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "7181:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 724, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 586, + "src": "7185:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7181:9:0", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 740, + "initializationExpression": { + "expression": { + "id": 721, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 719, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "7174:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 720, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7178:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7174:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 722, + "nodeType": "ExpressionStatement", + "src": "7174:5:0" + }, + "loopExpression": { + "expression": { + "id": 727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7192:3:0", + "subExpression": { + "id": 726, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 600, + "src": "7192:1:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 728, + "nodeType": "ExpressionStatement", + "src": "7192:3:0" + }, + "nodeType": "ForStatement", + "src": "7169:124:0" + }, + { + "expression": { + "id": 748, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 741, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 597, + "src": "7334:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 742, + "name": "DAY_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 19, + "src": "7347:14:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 745, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 743, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 588, + "src": "7365:3:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7371:1:0", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7365:7:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 746, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7364:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7347:26:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7334:39:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 749, + "nodeType": "ExpressionStatement", + "src": "7334:39:0" + }, + { + "expression": { + "id": 755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 750, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 597, + "src": "7416:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 751, + "name": "HOUR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 28, + "src": "7429:15:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "id": 752, + "name": "hour", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 590, + "src": "7448:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 753, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7447:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7429:24:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7416:37:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 756, + "nodeType": "ExpressionStatement", + "src": "7416:37:0" + }, + { + "expression": { + "id": 762, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 757, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 597, + "src": "7498:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 761, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 758, + "name": "MINUTE_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 31, + "src": "7511:17:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "id": 759, + "name": "minute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 592, + "src": "7532:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 760, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7531:8:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7511:28:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7498:41:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 763, + "nodeType": "ExpressionStatement", + "src": "7498:41:0" + }, + { + "expression": { + "id": 766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 764, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 597, + "src": "7584:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 765, + "name": "second", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 594, + "src": "7597:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7584:19:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 767, + "nodeType": "ExpressionStatement", + "src": "7584:19:0" + }, + { + "expression": { + "id": 768, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 597, + "src": "7629:9:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 598, + "id": 769, + "nodeType": "Return", + "src": "7622:16:0" + } + ] + }, + "functionSelector": "9054bdec", + "id": 771, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 595, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 584, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 771, + "src": "5943:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 583, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "5943:6:0", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "month", + "nodeType": "VariableDeclaration", + "scope": 771, + "src": "5956:11:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 585, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5956:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 588, + "mutability": "mutable", + "name": "day", + "nodeType": "VariableDeclaration", + "scope": 771, + "src": "5969:9:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 587, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5969:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 590, + "mutability": "mutable", + "name": "hour", + "nodeType": "VariableDeclaration", + "scope": 771, + "src": "5980:10:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 589, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5980:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 592, + "mutability": "mutable", + "name": "minute", + "nodeType": "VariableDeclaration", + "scope": 771, + "src": "5992:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 591, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5992:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 594, + "mutability": "mutable", + "name": "second", + "nodeType": "VariableDeclaration", + "scope": 771, + "src": "6006:12:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 593, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "6006:5:0", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "5942:77:0" + }, + "returnParameters": { + "id": 598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 597, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 771, + "src": "6041:14:0", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 596, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6041:4:0", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6040:16:0" + }, + "scope": 772, + "src": "5922:1727:0", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } + ], + "scope": 773, + "src": "75:7576:0" + } + ], + "src": "41:7611:0" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/crypto-boys/src/contracts/DateAndTime.sol", + "exportedSymbols": { + "DateAndTime": [ + 772 + ] + }, + "license": "SPDX-License" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.4", + ".21", + "<", + "0.8", + ".0" + ] + }, + "id": 1, + "name": "PragmaDirective", + "src": "41:32:0" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 772 + ], + "name": "DateAndTime", + "scope": 773 + }, + "children": [ + { + "attributes": { + "canonicalName": "DateAndTime._DateTime", + "name": "_DateTime", + "scope": 772, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 16, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 2, + "name": "ElementaryTypeName", + "src": "234:6:0" + } + ], + "id": 3, + "name": "VariableDeclaration", + "src": "234:11:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "month", + "scope": 16, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 4, + "name": "ElementaryTypeName", + "src": "263:5:0" + } + ], + "id": 5, + "name": "VariableDeclaration", + "src": "263:11:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "day", + "scope": 16, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 6, + "name": "ElementaryTypeName", + "src": "292:5:0" + } + ], + "id": 7, + "name": "VariableDeclaration", + "src": "292:9:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "hour", + "scope": 16, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 8, + "name": "ElementaryTypeName", + "src": "319:5:0" + } + ], + "id": 9, + "name": "VariableDeclaration", + "src": "319:10:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "minute", + "scope": 16, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 10, + "name": "ElementaryTypeName", + "src": "347:5:0" + } + ], + "id": 11, + "name": "VariableDeclaration", + "src": "347:12:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "second", + "scope": 16, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 12, + "name": "ElementaryTypeName", + "src": "377:5:0" + } + ], + "id": 13, + "name": "VariableDeclaration", + "src": "377:12:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "weekday", + "scope": 16, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 14, + "name": "ElementaryTypeName", + "src": "407:5:0" + } + ], + "id": 15, + "name": "VariableDeclaration", + "src": "407:13:0" + } + ], + "id": 16, + "name": "StructDefinition", + "src": "199:232:0" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "DAY_IN_SECONDS", + "scope": 772, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 17, + "name": "ElementaryTypeName", + "src": "441:4:0" + }, + { + "attributes": { + "hexvalue": "3836343030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 86400", + "value": "86400" + }, + "id": 18, + "name": "Literal", + "src": "472:5:0" + } + ], + "id": 19, + "name": "VariableDeclaration", + "src": "441:36:0" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "YEAR_IN_SECONDS", + "scope": 772, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 20, + "name": "ElementaryTypeName", + "src": "487:4:0" + }, + { + "attributes": { + "hexvalue": "3331353336303030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31536000", + "value": "31536000" + }, + "id": 21, + "name": "Literal", + "src": "519:8:0" + } + ], + "id": 22, + "name": "VariableDeclaration", + "src": "487:40:0" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "LEAP_YEAR_IN_SECONDS", + "scope": 772, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 23, + "name": "ElementaryTypeName", + "src": "537:4:0" + }, + { + "attributes": { + "hexvalue": "3331363232343030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31622400", + "value": "31622400" + }, + "id": 24, + "name": "Literal", + "src": "574:8:0" + } + ], + "id": 25, + "name": "VariableDeclaration", + "src": "537:45:0" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "HOUR_IN_SECONDS", + "scope": 772, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 26, + "name": "ElementaryTypeName", + "src": "593:4:0" + }, + { + "attributes": { + "hexvalue": "33363030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 3600", + "value": "3600" + }, + "id": 27, + "name": "Literal", + "src": "625:4:0" + } + ], + "id": 28, + "name": "VariableDeclaration", + "src": "593:36:0" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "MINUTE_IN_SECONDS", + "scope": 772, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 29, + "name": "ElementaryTypeName", + "src": "639:4:0" + }, + { + "attributes": { + "hexvalue": "3630", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 60", + "value": "60" + }, + "id": 30, + "name": "Literal", + "src": "673:2:0" + } + ], + "id": 31, + "name": "VariableDeclaration", + "src": "639:36:0" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "ORIGIN_YEAR", + "scope": 772, + "stateVariable": true, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 32, + "name": "ElementaryTypeName", + "src": "686:6:0" + }, + { + "attributes": { + "hexvalue": "31393730", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1970", + "value": "1970" + }, + "id": 33, + "name": "Literal", + "src": "716:4:0" + } + ], + "id": 34, + "name": "VariableDeclaration", + "src": "686:34:0" + }, + { + "attributes": { + "functionSelector": "a6f0e577", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isLeapYear", + "scope": 772, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 71, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 35, + "name": "ElementaryTypeName", + "src": "751:6:0" + } + ], + "id": 36, + "name": "VariableDeclaration", + "src": "751:11:0" + } + ], + "id": 37, + "name": "ParameterList", + "src": "750:13:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 71, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 38, + "name": "ElementaryTypeName", + "src": "785:4:0" + } + ], + "id": 39, + "name": "VariableDeclaration", + "src": "785:4:0" + } + ], + "id": 40, + "name": "ParameterList", + "src": "784:6:0" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 36, + "type": "uint16", + "value": "year" + }, + "id": 41, + "name": "Identifier", + "src": "813:4:0" + }, + { + "attributes": { + "hexvalue": "34", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4", + "value": "4" + }, + "id": 42, + "name": "Literal", + "src": "820:1:0" + } + ], + "id": 43, + "name": "BinaryOperation", + "src": "813:8:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 44, + "name": "Literal", + "src": "825:1:0" + } + ], + "id": 45, + "name": "BinaryOperation", + "src": "813:13:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 40 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 46, + "name": "Literal", + "src": "861:5:0" + } + ], + "id": 47, + "name": "Return", + "src": "854:12:0" + } + ], + "id": 48, + "name": "Block", + "src": "828:57:0" + } + ], + "id": 49, + "name": "IfStatement", + "src": "809:76:0" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 36, + "type": "uint16", + "value": "year" + }, + "id": 50, + "name": "Identifier", + "src": "906:4:0" + }, + { + "attributes": { + "hexvalue": "313030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 100", + "value": "100" + }, + "id": 51, + "name": "Literal", + "src": "913:3:0" + } + ], + "id": 52, + "name": "BinaryOperation", + "src": "906:10:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 53, + "name": "Literal", + "src": "920:1:0" + } + ], + "id": 54, + "name": "BinaryOperation", + "src": "906:15:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 40 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 55, + "name": "Literal", + "src": "956:4:0" + } + ], + "id": 56, + "name": "Return", + "src": "949:11:0" + } + ], + "id": 57, + "name": "Block", + "src": "923:56:0" + } + ], + "id": 58, + "name": "IfStatement", + "src": "902:77:0" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 36, + "type": "uint16", + "value": "year" + }, + "id": 59, + "name": "Identifier", + "src": "1000:4:0" + }, + { + "attributes": { + "hexvalue": "343030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 400", + "value": "400" + }, + "id": 60, + "name": "Literal", + "src": "1007:3:0" + } + ], + "id": 61, + "name": "BinaryOperation", + "src": "1000:10:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 62, + "name": "Literal", + "src": "1014:1:0" + } + ], + "id": 63, + "name": "BinaryOperation", + "src": "1000:15:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 40 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 64, + "name": "Literal", + "src": "1050:5:0" + } + ], + "id": 65, + "name": "Return", + "src": "1043:12:0" + } + ], + "id": 66, + "name": "Block", + "src": "1017:57:0" + } + ], + "id": 67, + "name": "IfStatement", + "src": "996:78:0" + }, + { + "attributes": { + "functionReturnParameters": 40 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 68, + "name": "Literal", + "src": "1098:4:0" + } + ], + "id": 69, + "name": "Return", + "src": "1091:11:0" + } + ], + "id": 70, + "name": "Block", + "src": "791:322:0" + } + ], + "id": 71, + "name": "FunctionDefinition", + "src": "731:382:0" + }, + { + "attributes": { + "functionSelector": "b1999937", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "leapYearsBefore", + "scope": 772, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 95, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 72, + "name": "ElementaryTypeName", + "src": "1148:4:0" + } + ], + "id": 73, + "name": "VariableDeclaration", + "src": "1148:9:0" + } + ], + "id": 74, + "name": "ParameterList", + "src": "1147:11:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 95, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 75, + "name": "ElementaryTypeName", + "src": "1180:4:0" + } + ], + "id": 76, + "name": "VariableDeclaration", + "src": "1180:4:0" + } + ], + "id": 77, + "name": "ParameterList", + "src": "1179:6:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 73, + "type": "uint256", + "value": "year" + }, + "id": 78, + "name": "Identifier", + "src": "1204:4:0" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 79, + "name": "Literal", + "src": "1212:1:0" + } + ], + "id": 80, + "name": "Assignment", + "src": "1204:9:0" + } + ], + "id": 81, + "name": "ExpressionStatement", + "src": "1204:9:0" + }, + { + "attributes": { + "functionReturnParameters": 77 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 73, + "type": "uint256", + "value": "year" + }, + "id": 82, + "name": "Identifier", + "src": "1238:4:0" + }, + { + "attributes": { + "hexvalue": "34", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4", + "value": "4" + }, + "id": 83, + "name": "Literal", + "src": "1245:1:0" + } + ], + "id": 84, + "name": "BinaryOperation", + "src": "1238:8:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 73, + "type": "uint256", + "value": "year" + }, + "id": 85, + "name": "Identifier", + "src": "1249:4:0" + }, + { + "attributes": { + "hexvalue": "313030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 100", + "value": "100" + }, + "id": 86, + "name": "Literal", + "src": "1256:3:0" + } + ], + "id": 87, + "name": "BinaryOperation", + "src": "1249:10:0" + } + ], + "id": 88, + "name": "BinaryOperation", + "src": "1238:21:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 73, + "type": "uint256", + "value": "year" + }, + "id": 89, + "name": "Identifier", + "src": "1262:4:0" + }, + { + "attributes": { + "hexvalue": "343030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 400", + "value": "400" + }, + "id": 90, + "name": "Literal", + "src": "1269:3:0" + } + ], + "id": 91, + "name": "BinaryOperation", + "src": "1262:10:0" + } + ], + "id": 92, + "name": "BinaryOperation", + "src": "1238:34:0" + } + ], + "id": 93, + "name": "Return", + "src": "1231:41:0" + } + ], + "id": 94, + "name": "Block", + "src": "1186:97:0" + } + ], + "id": 95, + "name": "FunctionDefinition", + "src": "1123:160:0" + }, + { + "attributes": { + "functionSelector": "b238ad0e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getDaysInMonth", + "scope": 772, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "month", + "scope": 165, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 96, + "name": "ElementaryTypeName", + "src": "1317:5:0" + } + ], + "id": 97, + "name": "VariableDeclaration", + "src": "1317:11:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 165, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 98, + "name": "ElementaryTypeName", + "src": "1330:6:0" + } + ], + "id": 99, + "name": "VariableDeclaration", + "src": "1330:11:0" + } + ], + "id": 100, + "name": "ParameterList", + "src": "1316:26:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 165, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 101, + "name": "ElementaryTypeName", + "src": "1364:5:0" + } + ], + "id": 102, + "name": "VariableDeclaration", + "src": "1364:5:0" + } + ], + "id": 103, + "name": "ParameterList", + "src": "1363:7:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 97, + "type": "uint8", + "value": "month" + }, + "id": 104, + "name": "Identifier", + "src": "1393:5:0" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 105, + "name": "Literal", + "src": "1402:1:0" + } + ], + "id": 106, + "name": "BinaryOperation", + "src": "1393:10:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 97, + "type": "uint8", + "value": "month" + }, + "id": 107, + "name": "Identifier", + "src": "1407:5:0" + }, + { + "attributes": { + "hexvalue": "33", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 3", + "value": "3" + }, + "id": 108, + "name": "Literal", + "src": "1416:1:0" + } + ], + "id": 109, + "name": "BinaryOperation", + "src": "1407:10:0" + } + ], + "id": 110, + "name": "BinaryOperation", + "src": "1393:24:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 97, + "type": "uint8", + "value": "month" + }, + "id": 111, + "name": "Identifier", + "src": "1421:5:0" + }, + { + "attributes": { + "hexvalue": "35", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 5", + "value": "5" + }, + "id": 112, + "name": "Literal", + "src": "1430:1:0" + } + ], + "id": 113, + "name": "BinaryOperation", + "src": "1421:10:0" + } + ], + "id": 114, + "name": "BinaryOperation", + "src": "1393:38:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 97, + "type": "uint8", + "value": "month" + }, + "id": 115, + "name": "Identifier", + "src": "1435:5:0" + }, + { + "attributes": { + "hexvalue": "37", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 7", + "value": "7" + }, + "id": 116, + "name": "Literal", + "src": "1444:1:0" + } + ], + "id": 117, + "name": "BinaryOperation", + "src": "1435:10:0" + } + ], + "id": 118, + "name": "BinaryOperation", + "src": "1393:52:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 97, + "type": "uint8", + "value": "month" + }, + "id": 119, + "name": "Identifier", + "src": "1449:5:0" + }, + { + "attributes": { + "hexvalue": "38", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 8", + "value": "8" + }, + "id": 120, + "name": "Literal", + "src": "1458:1:0" + } + ], + "id": 121, + "name": "BinaryOperation", + "src": "1449:10:0" + } + ], + "id": 122, + "name": "BinaryOperation", + "src": "1393:66:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 97, + "type": "uint8", + "value": "month" + }, + "id": 123, + "name": "Identifier", + "src": "1463:5:0" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 124, + "name": "Literal", + "src": "1472:2:0" + } + ], + "id": 125, + "name": "BinaryOperation", + "src": "1463:11:0" + } + ], + "id": 126, + "name": "BinaryOperation", + "src": "1393:81:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 97, + "type": "uint8", + "value": "month" + }, + "id": 127, + "name": "Identifier", + "src": "1478:5:0" + }, + { + "attributes": { + "hexvalue": "3132", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 12", + "value": "12" + }, + "id": 128, + "name": "Literal", + "src": "1487:2:0" + } + ], + "id": 129, + "name": "BinaryOperation", + "src": "1478:11:0" + } + ], + "id": 130, + "name": "BinaryOperation", + "src": "1393:96:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 103 + }, + "children": [ + { + "attributes": { + "hexvalue": "3331", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31", + "value": "31" + }, + "id": 131, + "name": "Literal", + "src": "1524:2:0" + } + ], + "id": 132, + "name": "Return", + "src": "1517:9:0" + } + ], + "id": 133, + "name": "Block", + "src": "1491:54:0" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 97, + "type": "uint8", + "value": "month" + }, + "id": 134, + "name": "Identifier", + "src": "1571:5:0" + }, + { + "attributes": { + "hexvalue": "34", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4", + "value": "4" + }, + "id": 135, + "name": "Literal", + "src": "1580:1:0" + } + ], + "id": 136, + "name": "BinaryOperation", + "src": "1571:10:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 97, + "type": "uint8", + "value": "month" + }, + "id": 137, + "name": "Identifier", + "src": "1585:5:0" + }, + { + "attributes": { + "hexvalue": "36", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 6", + "value": "6" + }, + "id": 138, + "name": "Literal", + "src": "1594:1:0" + } + ], + "id": 139, + "name": "BinaryOperation", + "src": "1585:10:0" + } + ], + "id": 140, + "name": "BinaryOperation", + "src": "1571:24:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 97, + "type": "uint8", + "value": "month" + }, + "id": 141, + "name": "Identifier", + "src": "1599:5:0" + }, + { + "attributes": { + "hexvalue": "39", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 9", + "value": "9" + }, + "id": 142, + "name": "Literal", + "src": "1608:1:0" + } + ], + "id": 143, + "name": "BinaryOperation", + "src": "1599:10:0" + } + ], + "id": 144, + "name": "BinaryOperation", + "src": "1571:38:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 97, + "type": "uint8", + "value": "month" + }, + "id": 145, + "name": "Identifier", + "src": "1613:5:0" + }, + { + "attributes": { + "hexvalue": "3131", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 11", + "value": "11" + }, + "id": 146, + "name": "Literal", + "src": "1622:2:0" + } + ], + "id": 147, + "name": "BinaryOperation", + "src": "1613:11:0" + } + ], + "id": 148, + "name": "BinaryOperation", + "src": "1571:53:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 103 + }, + "children": [ + { + "attributes": { + "hexvalue": "3330", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 30", + "value": "30" + }, + "id": 149, + "name": "Literal", + "src": "1659:2:0" + } + ], + "id": 150, + "name": "Return", + "src": "1652:9:0" + } + ], + "id": 151, + "name": "Block", + "src": "1626:54:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 71, + "type": "function (uint16) pure returns (bool)", + "value": "isLeapYear" + }, + "id": 152, + "name": "Identifier", + "src": "1706:10:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 99, + "type": "uint16", + "value": "year" + }, + "id": 153, + "name": "Identifier", + "src": "1717:4:0" + } + ], + "id": 154, + "name": "FunctionCall", + "src": "1706:16:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 103 + }, + "children": [ + { + "attributes": { + "hexvalue": "3239", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 29", + "value": "29" + }, + "id": 155, + "name": "Literal", + "src": "1757:2:0" + } + ], + "id": 156, + "name": "Return", + "src": "1750:9:0" + } + ], + "id": 157, + "name": "Block", + "src": "1724:54:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 103 + }, + "children": [ + { + "attributes": { + "hexvalue": "3238", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 28", + "value": "28" + }, + "id": 158, + "name": "Literal", + "src": "1833:2:0" + } + ], + "id": 159, + "name": "Return", + "src": "1826:9:0" + } + ], + "id": 160, + "name": "Block", + "src": "1800:54:0" + } + ], + "id": 161, + "name": "IfStatement", + "src": "1702:152:0" + } + ], + "id": 162, + "name": "IfStatement", + "src": "1567:287:0" + } + ], + "id": 163, + "name": "IfStatement", + "src": "1389:465:0" + } + ], + "id": 164, + "name": "Block", + "src": "1371:493:0" + } + ], + "id": 165, + "name": "FunctionDefinition", + "src": "1293:571:0" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "parseTimestamp", + "scope": 772, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 330, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 166, + "name": "ElementaryTypeName", + "src": "1898:4:0" + } + ], + "id": 167, + "name": "VariableDeclaration", + "src": "1898:14:0" + } + ], + "id": 168, + "name": "ParameterList", + "src": "1897:16:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "dt", + "scope": 330, + "stateVariable": false, + "storageLocation": "memory", + "type": "struct DateAndTime._DateTime", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "_DateTime", + "referencedDeclaration": 16, + "type": "struct DateAndTime._DateTime" + }, + "id": 169, + "name": "UserDefinedTypeName", + "src": "1937:9:0" + } + ], + "id": 170, + "name": "VariableDeclaration", + "src": "1937:19:0" + } + ], + "id": 171, + "name": "ParameterList", + "src": "1936:21:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 173 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "secondsAccountedFor", + "scope": 329, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 172, + "name": "ElementaryTypeName", + "src": "1976:4:0" + } + ], + "id": 173, + "name": "VariableDeclaration", + "src": "1976:24:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 174, + "name": "Literal", + "src": "2003:1:0" + } + ], + "id": 175, + "name": "VariableDeclarationStatement", + "src": "1976:28:0" + }, + { + "attributes": { + "assignments": [ + 177 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "buf", + "scope": 329, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 176, + "name": "ElementaryTypeName", + "src": "2022:4:0" + } + ], + "id": 177, + "name": "VariableDeclaration", + "src": "2022:8:0" + } + ], + "id": 178, + "name": "VariableDeclarationStatement", + "src": "2022:8:0" + }, + { + "attributes": { + "assignments": [ + 180 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "i", + "scope": 329, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 179, + "name": "ElementaryTypeName", + "src": "2048:5:0" + } + ], + "id": 180, + "name": "VariableDeclaration", + "src": "2048:7:0" + } + ], + "id": 181, + "name": "VariableDeclarationStatement", + "src": "2048:7:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "year", + "referencedDeclaration": 3, + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 170, + "type": "struct DateAndTime._DateTime memory", + "value": "dt" + }, + "id": 182, + "name": "Identifier", + "src": "2098:2:0" + } + ], + "id": 184, + "name": "MemberAccess", + "src": "2098:7:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint16", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 416, + "type": "function (uint256) pure returns (uint16)", + "value": "getYear" + }, + "id": 185, + "name": "Identifier", + "src": "2108:7:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 167, + "type": "uint256", + "value": "timestamp" + }, + "id": 186, + "name": "Identifier", + "src": "2116:9:0" + } + ], + "id": 187, + "name": "FunctionCall", + "src": "2108:18:0" + } + ], + "id": 188, + "name": "Assignment", + "src": "2098:28:0" + } + ], + "id": 189, + "name": "ExpressionStatement", + "src": "2098:28:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 177, + "type": "uint256", + "value": "buf" + }, + "id": 190, + "name": "Identifier", + "src": "2144:3:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 95, + "type": "function (uint256) pure returns (uint256)", + "value": "leapYearsBefore" + }, + "id": 191, + "name": "Identifier", + "src": "2150:15:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "year", + "referencedDeclaration": 3, + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 170, + "type": "struct DateAndTime._DateTime memory", + "value": "dt" + }, + "id": 192, + "name": "Identifier", + "src": "2166:2:0" + } + ], + "id": 193, + "name": "MemberAccess", + "src": "2166:7:0" + } + ], + "id": 194, + "name": "FunctionCall", + "src": "2150:24:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 95, + "type": "function (uint256) pure returns (uint256)", + "value": "leapYearsBefore" + }, + "id": 195, + "name": "Identifier", + "src": "2177:15:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 34, + "type": "uint16", + "value": "ORIGIN_YEAR" + }, + "id": 196, + "name": "Identifier", + "src": "2193:11:0" + } + ], + "id": 197, + "name": "FunctionCall", + "src": "2177:28:0" + } + ], + "id": 198, + "name": "BinaryOperation", + "src": "2150:55:0" + } + ], + "id": 199, + "name": "Assignment", + "src": "2144:61:0" + } + ], + "id": 200, + "name": "ExpressionStatement", + "src": "2144:61:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 173, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 201, + "name": "Identifier", + "src": "2224:19:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 25, + "type": "uint256", + "value": "LEAP_YEAR_IN_SECONDS" + }, + "id": 202, + "name": "Identifier", + "src": "2247:20:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 177, + "type": "uint256", + "value": "buf" + }, + "id": 203, + "name": "Identifier", + "src": "2270:3:0" + } + ], + "id": 204, + "name": "BinaryOperation", + "src": "2247:26:0" + } + ], + "id": 205, + "name": "Assignment", + "src": "2224:49:0" + } + ], + "id": 206, + "name": "ExpressionStatement", + "src": "2224:49:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 173, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 207, + "name": "Identifier", + "src": "2291:19:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 22, + "type": "uint256", + "value": "YEAR_IN_SECONDS" + }, + "id": 208, + "name": "Identifier", + "src": "2314:15:0" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "year", + "referencedDeclaration": 3, + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 170, + "type": "struct DateAndTime._DateTime memory", + "value": "dt" + }, + "id": 209, + "name": "Identifier", + "src": "2333:2:0" + } + ], + "id": 210, + "name": "MemberAccess", + "src": "2333:7:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 34, + "type": "uint16", + "value": "ORIGIN_YEAR" + }, + "id": 211, + "name": "Identifier", + "src": "2343:11:0" + } + ], + "id": 212, + "name": "BinaryOperation", + "src": "2333:21:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 177, + "type": "uint256", + "value": "buf" + }, + "id": 213, + "name": "Identifier", + "src": "2357:3:0" + } + ], + "id": 214, + "name": "BinaryOperation", + "src": "2333:27:0" + } + ], + "id": 215, + "name": "TupleExpression", + "src": "2332:29:0" + } + ], + "id": 216, + "name": "BinaryOperation", + "src": "2314:47:0" + } + ], + "id": 217, + "name": "Assignment", + "src": "2291:70:0" + } + ], + "id": 218, + "name": "ExpressionStatement", + "src": "2291:70:0" + }, + { + "attributes": { + "assignments": [ + 220 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "secondsInMonth", + "scope": 329, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 219, + "name": "ElementaryTypeName", + "src": "2405:4:0" + } + ], + "id": 220, + "name": "VariableDeclaration", + "src": "2405:19:0" + } + ], + "id": 221, + "name": "VariableDeclarationStatement", + "src": "2405:19:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 180, + "type": "uint8", + "value": "i" + }, + "id": 222, + "name": "Identifier", + "src": "2447:1:0" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 223, + "name": "Literal", + "src": "2451:1:0" + } + ], + "id": 224, + "name": "Assignment", + "src": "2447:5:0" + } + ], + "id": 225, + "name": "ExpressionStatement", + "src": "2447:5:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 180, + "type": "uint8", + "value": "i" + }, + "id": 226, + "name": "Identifier", + "src": "2454:1:0" + }, + { + "attributes": { + "hexvalue": "3132", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 12", + "value": "12" + }, + "id": 227, + "name": "Literal", + "src": "2459:2:0" + } + ], + "id": 228, + "name": "BinaryOperation", + "src": "2454:7:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 180, + "type": "uint8", + "value": "i" + }, + "id": 229, + "name": "Identifier", + "src": "2463:1:0" + } + ], + "id": 230, + "name": "UnaryOperation", + "src": "2463:3:0" + } + ], + "id": 231, + "name": "ExpressionStatement", + "src": "2463:3:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 220, + "type": "uint256", + "value": "secondsInMonth" + }, + "id": 232, + "name": "Identifier", + "src": "2494:14:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 19, + "type": "uint256", + "value": "DAY_IN_SECONDS" + }, + "id": 233, + "name": "Identifier", + "src": "2511:14:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 165, + "type": "function (uint8,uint16) pure returns (uint8)", + "value": "getDaysInMonth" + }, + "id": 234, + "name": "Identifier", + "src": "2528:14:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 180, + "type": "uint8", + "value": "i" + }, + "id": 235, + "name": "Identifier", + "src": "2543:1:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "year", + "referencedDeclaration": 3, + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 170, + "type": "struct DateAndTime._DateTime memory", + "value": "dt" + }, + "id": 236, + "name": "Identifier", + "src": "2546:2:0" + } + ], + "id": 237, + "name": "MemberAccess", + "src": "2546:7:0" + } + ], + "id": 238, + "name": "FunctionCall", + "src": "2528:26:0" + } + ], + "id": 239, + "name": "BinaryOperation", + "src": "2511:43:0" + } + ], + "id": 240, + "name": "Assignment", + "src": "2494:60:0" + } + ], + "id": 241, + "name": "ExpressionStatement", + "src": "2494:60:0" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 220, + "type": "uint256", + "value": "secondsInMonth" + }, + "id": 242, + "name": "Identifier", + "src": "2584:14:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 173, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 243, + "name": "Identifier", + "src": "2601:19:0" + } + ], + "id": 244, + "name": "BinaryOperation", + "src": "2584:36:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 167, + "type": "uint256", + "value": "timestamp" + }, + "id": 245, + "name": "Identifier", + "src": "2623:9:0" + } + ], + "id": 246, + "name": "BinaryOperation", + "src": "2584:48:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "month", + "referencedDeclaration": 5, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 170, + "type": "struct DateAndTime._DateTime memory", + "value": "dt" + }, + "id": 247, + "name": "Identifier", + "src": "2668:2:0" + } + ], + "id": 249, + "name": "MemberAccess", + "src": "2668:8:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 180, + "type": "uint8", + "value": "i" + }, + "id": 250, + "name": "Identifier", + "src": "2679:1:0" + } + ], + "id": 251, + "name": "Assignment", + "src": "2668:12:0" + } + ], + "id": 252, + "name": "ExpressionStatement", + "src": "2668:12:0" + }, + { + "id": 253, + "name": "Break", + "src": "2714:5:0" + } + ], + "id": 254, + "name": "Block", + "src": "2634:112:0" + } + ], + "id": 255, + "name": "IfStatement", + "src": "2580:166:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 173, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 256, + "name": "Identifier", + "src": "2771:19:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 220, + "type": "uint256", + "value": "secondsInMonth" + }, + "id": 257, + "name": "Identifier", + "src": "2794:14:0" + } + ], + "id": 258, + "name": "Assignment", + "src": "2771:37:0" + } + ], + "id": 259, + "name": "ExpressionStatement", + "src": "2771:37:0" + } + ], + "id": 260, + "name": "Block", + "src": "2468:359:0" + } + ], + "id": 261, + "name": "ForStatement", + "src": "2442:385:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 180, + "type": "uint8", + "value": "i" + }, + "id": 262, + "name": "Identifier", + "src": "2873:1:0" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 263, + "name": "Literal", + "src": "2877:1:0" + } + ], + "id": 264, + "name": "Assignment", + "src": "2873:5:0" + } + ], + "id": 265, + "name": "ExpressionStatement", + "src": "2873:5:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 180, + "type": "uint8", + "value": "i" + }, + "id": 266, + "name": "Identifier", + "src": "2880:1:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 165, + "type": "function (uint8,uint16) pure returns (uint8)", + "value": "getDaysInMonth" + }, + "id": 267, + "name": "Identifier", + "src": "2885:14:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "month", + "referencedDeclaration": 5, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 170, + "type": "struct DateAndTime._DateTime memory", + "value": "dt" + }, + "id": 268, + "name": "Identifier", + "src": "2900:2:0" + } + ], + "id": 269, + "name": "MemberAccess", + "src": "2900:8:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "year", + "referencedDeclaration": 3, + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 170, + "type": "struct DateAndTime._DateTime memory", + "value": "dt" + }, + "id": 270, + "name": "Identifier", + "src": "2910:2:0" + } + ], + "id": 271, + "name": "MemberAccess", + "src": "2910:7:0" + } + ], + "id": 272, + "name": "FunctionCall", + "src": "2885:33:0" + } + ], + "id": 273, + "name": "BinaryOperation", + "src": "2880:38:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 180, + "type": "uint8", + "value": "i" + }, + "id": 274, + "name": "Identifier", + "src": "2920:1:0" + } + ], + "id": 275, + "name": "UnaryOperation", + "src": "2920:3:0" + } + ], + "id": 276, + "name": "ExpressionStatement", + "src": "2920:3:0" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 19, + "type": "uint256", + "value": "DAY_IN_SECONDS" + }, + "id": 277, + "name": "Identifier", + "src": "2955:14:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 173, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 278, + "name": "Identifier", + "src": "2972:19:0" + } + ], + "id": 279, + "name": "BinaryOperation", + "src": "2955:36:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 167, + "type": "uint256", + "value": "timestamp" + }, + "id": 280, + "name": "Identifier", + "src": "2994:9:0" + } + ], + "id": 281, + "name": "BinaryOperation", + "src": "2955:48:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "day", + "referencedDeclaration": 7, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 170, + "type": "struct DateAndTime._DateTime memory", + "value": "dt" + }, + "id": 282, + "name": "Identifier", + "src": "3039:2:0" + } + ], + "id": 284, + "name": "MemberAccess", + "src": "3039:6:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 180, + "type": "uint8", + "value": "i" + }, + "id": 285, + "name": "Identifier", + "src": "3048:1:0" + } + ], + "id": 286, + "name": "Assignment", + "src": "3039:10:0" + } + ], + "id": 287, + "name": "ExpressionStatement", + "src": "3039:10:0" + }, + { + "id": 288, + "name": "Break", + "src": "3083:5:0" + } + ], + "id": 289, + "name": "Block", + "src": "3005:110:0" + } + ], + "id": 290, + "name": "IfStatement", + "src": "2951:164:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 173, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 291, + "name": "Identifier", + "src": "3140:19:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 19, + "type": "uint256", + "value": "DAY_IN_SECONDS" + }, + "id": 292, + "name": "Identifier", + "src": "3163:14:0" + } + ], + "id": 293, + "name": "Assignment", + "src": "3140:37:0" + } + ], + "id": 294, + "name": "ExpressionStatement", + "src": "3140:37:0" + } + ], + "id": 295, + "name": "Block", + "src": "2925:271:0" + } + ], + "id": 296, + "name": "ForStatement", + "src": "2868:328:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "hour", + "referencedDeclaration": 9, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 170, + "type": "struct DateAndTime._DateTime memory", + "value": "dt" + }, + "id": 297, + "name": "Identifier", + "src": "3238:2:0" + } + ], + "id": 299, + "name": "MemberAccess", + "src": "3238:7:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 460, + "type": "function (uint256) pure returns (uint8)", + "value": "getHour" + }, + "id": 300, + "name": "Identifier", + "src": "3248:7:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 167, + "type": "uint256", + "value": "timestamp" + }, + "id": 301, + "name": "Identifier", + "src": "3256:9:0" + } + ], + "id": 302, + "name": "FunctionCall", + "src": "3248:18:0" + } + ], + "id": 303, + "name": "Assignment", + "src": "3238:28:0" + } + ], + "id": 304, + "name": "ExpressionStatement", + "src": "3238:28:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "minute", + "referencedDeclaration": 11, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 170, + "type": "struct DateAndTime._DateTime memory", + "value": "dt" + }, + "id": 305, + "name": "Identifier", + "src": "3311:2:0" + } + ], + "id": 307, + "name": "MemberAccess", + "src": "3311:9:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 478, + "type": "function (uint256) pure returns (uint8)", + "value": "getMinute" + }, + "id": 308, + "name": "Identifier", + "src": "3323:9:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 167, + "type": "uint256", + "value": "timestamp" + }, + "id": 309, + "name": "Identifier", + "src": "3333:9:0" + } + ], + "id": 310, + "name": "FunctionCall", + "src": "3323:20:0" + } + ], + "id": 311, + "name": "Assignment", + "src": "3311:32:0" + } + ], + "id": 312, + "name": "ExpressionStatement", + "src": "3311:32:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "second", + "referencedDeclaration": 13, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 170, + "type": "struct DateAndTime._DateTime memory", + "value": "dt" + }, + "id": 313, + "name": "Identifier", + "src": "3388:2:0" + } + ], + "id": 315, + "name": "MemberAccess", + "src": "3388:9:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 493, + "type": "function (uint256) pure returns (uint8)", + "value": "getSecond" + }, + "id": 316, + "name": "Identifier", + "src": "3400:9:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 167, + "type": "uint256", + "value": "timestamp" + }, + "id": 317, + "name": "Identifier", + "src": "3410:9:0" + } + ], + "id": 318, + "name": "FunctionCall", + "src": "3400:20:0" + } + ], + "id": 319, + "name": "Assignment", + "src": "3388:32:0" + } + ], + "id": 320, + "name": "ExpressionStatement", + "src": "3388:32:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "weekday", + "referencedDeclaration": 15, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 170, + "type": "struct DateAndTime._DateTime memory", + "value": "dt" + }, + "id": 321, + "name": "Identifier", + "src": "3471:2:0" + } + ], + "id": 323, + "name": "MemberAccess", + "src": "3471:10:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 513, + "type": "function (uint256) pure returns (uint8)", + "value": "getWeekday" + }, + "id": 324, + "name": "Identifier", + "src": "3484:10:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 167, + "type": "uint256", + "value": "timestamp" + }, + "id": 325, + "name": "Identifier", + "src": "3495:9:0" + } + ], + "id": 326, + "name": "FunctionCall", + "src": "3484:21:0" + } + ], + "id": 327, + "name": "Assignment", + "src": "3471:34:0" + } + ], + "id": 328, + "name": "ExpressionStatement", + "src": "3471:34:0" + } + ], + "id": 329, + "name": "Block", + "src": "1958:1558:0" + } + ], + "id": 330, + "name": "FunctionDefinition", + "src": "1874:1642:0" + }, + { + "attributes": { + "functionSelector": "92d66313", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getYear", + "scope": 772, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 416, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 331, + "name": "ElementaryTypeName", + "src": "3543:4:0" + } + ], + "id": 332, + "name": "VariableDeclaration", + "src": "3543:14:0" + } + ], + "id": 333, + "name": "ParameterList", + "src": "3542:16:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 416, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 334, + "name": "ElementaryTypeName", + "src": "3580:6:0" + } + ], + "id": 335, + "name": "VariableDeclaration", + "src": "3580:6:0" + } + ], + "id": 336, + "name": "ParameterList", + "src": "3579:8:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 338 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "secondsAccountedFor", + "scope": 415, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 337, + "name": "ElementaryTypeName", + "src": "3606:4:0" + } + ], + "id": 338, + "name": "VariableDeclaration", + "src": "3606:24:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 339, + "name": "Literal", + "src": "3633:1:0" + } + ], + "id": 340, + "name": "VariableDeclarationStatement", + "src": "3606:28:0" + }, + { + "attributes": { + "assignments": [ + 342 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 415, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 341, + "name": "ElementaryTypeName", + "src": "3652:6:0" + } + ], + "id": 342, + "name": "VariableDeclaration", + "src": "3652:11:0" + } + ], + "id": 343, + "name": "VariableDeclarationStatement", + "src": "3652:11:0" + }, + { + "attributes": { + "assignments": [ + 345 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "numLeapYears", + "scope": 415, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 344, + "name": "ElementaryTypeName", + "src": "3681:4:0" + } + ], + "id": 345, + "name": "VariableDeclaration", + "src": "3681:17:0" + } + ], + "id": 346, + "name": "VariableDeclarationStatement", + "src": "3681:17:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 342, + "type": "uint16", + "value": "year" + }, + "id": 347, + "name": "Identifier", + "src": "3741:4:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint16", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint16)" + }, + "children": [ + { + "attributes": { + "name": "uint16" + }, + "id": 348, + "name": "ElementaryTypeName", + "src": "3748:6:0" + } + ], + "id": 349, + "name": "ElementaryTypeNameExpression", + "src": "3748:6:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 34, + "type": "uint16", + "value": "ORIGIN_YEAR" + }, + "id": 350, + "name": "Identifier", + "src": "3755:11:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 332, + "type": "uint256", + "value": "timestamp" + }, + "id": 351, + "name": "Identifier", + "src": "3769:9:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 22, + "type": "uint256", + "value": "YEAR_IN_SECONDS" + }, + "id": 352, + "name": "Identifier", + "src": "3781:15:0" + } + ], + "id": 353, + "name": "BinaryOperation", + "src": "3769:27:0" + } + ], + "id": 354, + "name": "BinaryOperation", + "src": "3755:41:0" + } + ], + "id": 355, + "name": "FunctionCall", + "src": "3748:49:0" + } + ], + "id": 356, + "name": "Assignment", + "src": "3741:56:0" + } + ], + "id": 357, + "name": "ExpressionStatement", + "src": "3741:56:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 345, + "type": "uint256", + "value": "numLeapYears" + }, + "id": 358, + "name": "Identifier", + "src": "3815:12:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 95, + "type": "function (uint256) pure returns (uint256)", + "value": "leapYearsBefore" + }, + "id": 359, + "name": "Identifier", + "src": "3830:15:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 342, + "type": "uint16", + "value": "year" + }, + "id": 360, + "name": "Identifier", + "src": "3846:4:0" + } + ], + "id": 361, + "name": "FunctionCall", + "src": "3830:21:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 95, + "type": "function (uint256) pure returns (uint256)", + "value": "leapYearsBefore" + }, + "id": 362, + "name": "Identifier", + "src": "3854:15:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 34, + "type": "uint16", + "value": "ORIGIN_YEAR" + }, + "id": 363, + "name": "Identifier", + "src": "3870:11:0" + } + ], + "id": 364, + "name": "FunctionCall", + "src": "3854:28:0" + } + ], + "id": 365, + "name": "BinaryOperation", + "src": "3830:52:0" + } + ], + "id": 366, + "name": "Assignment", + "src": "3815:67:0" + } + ], + "id": 367, + "name": "ExpressionStatement", + "src": "3815:67:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 338, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 368, + "name": "Identifier", + "src": "3901:19:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 25, + "type": "uint256", + "value": "LEAP_YEAR_IN_SECONDS" + }, + "id": 369, + "name": "Identifier", + "src": "3924:20:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 345, + "type": "uint256", + "value": "numLeapYears" + }, + "id": 370, + "name": "Identifier", + "src": "3947:12:0" + } + ], + "id": 371, + "name": "BinaryOperation", + "src": "3924:35:0" + } + ], + "id": 372, + "name": "Assignment", + "src": "3901:58:0" + } + ], + "id": 373, + "name": "ExpressionStatement", + "src": "3901:58:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 338, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 374, + "name": "Identifier", + "src": "3977:19:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 22, + "type": "uint256", + "value": "YEAR_IN_SECONDS" + }, + "id": 375, + "name": "Identifier", + "src": "4000:15:0" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 342, + "type": "uint16", + "value": "year" + }, + "id": 376, + "name": "Identifier", + "src": "4019:4:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 34, + "type": "uint16", + "value": "ORIGIN_YEAR" + }, + "id": 377, + "name": "Identifier", + "src": "4026:11:0" + } + ], + "id": 378, + "name": "BinaryOperation", + "src": "4019:18:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 345, + "type": "uint256", + "value": "numLeapYears" + }, + "id": 379, + "name": "Identifier", + "src": "4040:12:0" + } + ], + "id": 380, + "name": "BinaryOperation", + "src": "4019:33:0" + } + ], + "id": 381, + "name": "TupleExpression", + "src": "4018:35:0" + } + ], + "id": 382, + "name": "BinaryOperation", + "src": "4000:53:0" + } + ], + "id": 383, + "name": "Assignment", + "src": "3977:76:0" + } + ], + "id": 384, + "name": "ExpressionStatement", + "src": "3977:76:0" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 338, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 385, + "name": "Identifier", + "src": "4079:19:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 332, + "type": "uint256", + "value": "timestamp" + }, + "id": 386, + "name": "Identifier", + "src": "4101:9:0" + } + ], + "id": 387, + "name": "BinaryOperation", + "src": "4079:31:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 71, + "type": "function (uint16) pure returns (bool)", + "value": "isLeapYear" + }, + "id": 388, + "name": "Identifier", + "src": "4142:10:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint16", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint16)" + }, + "children": [ + { + "attributes": { + "name": "uint16" + }, + "id": 389, + "name": "ElementaryTypeName", + "src": "4153:6:0" + } + ], + "id": 390, + "name": "ElementaryTypeNameExpression", + "src": "4153:6:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 342, + "type": "uint16", + "value": "year" + }, + "id": 391, + "name": "Identifier", + "src": "4160:4:0" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 392, + "name": "Literal", + "src": "4167:1:0" + } + ], + "id": 393, + "name": "BinaryOperation", + "src": "4160:8:0" + } + ], + "id": 394, + "name": "FunctionCall", + "src": "4153:16:0" + } + ], + "id": 395, + "name": "FunctionCall", + "src": "4142:28:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 338, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 396, + "name": "Identifier", + "src": "4206:19:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 25, + "type": "uint256", + "value": "LEAP_YEAR_IN_SECONDS" + }, + "id": 397, + "name": "Identifier", + "src": "4229:20:0" + } + ], + "id": 398, + "name": "Assignment", + "src": "4206:43:0" + } + ], + "id": 399, + "name": "ExpressionStatement", + "src": "4206:43:0" + } + ], + "id": 400, + "name": "Block", + "src": "4172:104:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 338, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 401, + "name": "Identifier", + "src": "4340:19:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 22, + "type": "uint256", + "value": "YEAR_IN_SECONDS" + }, + "id": 402, + "name": "Identifier", + "src": "4363:15:0" + } + ], + "id": 403, + "name": "Assignment", + "src": "4340:38:0" + } + ], + "id": 404, + "name": "ExpressionStatement", + "src": "4340:38:0" + } + ], + "id": 405, + "name": "Block", + "src": "4306:99:0" + } + ], + "id": 406, + "name": "IfStatement", + "src": "4138:267:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-=", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 342, + "type": "uint16", + "value": "year" + }, + "id": 407, + "name": "Identifier", + "src": "4430:4:0" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 408, + "name": "Literal", + "src": "4438:1:0" + } + ], + "id": 409, + "name": "Assignment", + "src": "4430:9:0" + } + ], + "id": 410, + "name": "ExpressionStatement", + "src": "4430:9:0" + } + ], + "id": 411, + "name": "Block", + "src": "4112:346:0" + } + ], + "id": 412, + "name": "WhileStatement", + "src": "4072:386:0" + }, + { + "attributes": { + "functionReturnParameters": 336 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 342, + "type": "uint16", + "value": "year" + }, + "id": 413, + "name": "Identifier", + "src": "4482:4:0" + } + ], + "id": 414, + "name": "Return", + "src": "4475:11:0" + } + ], + "id": 415, + "name": "Block", + "src": "3588:909:0" + } + ], + "id": 416, + "name": "FunctionDefinition", + "src": "3526:971:0" + }, + { + "attributes": { + "functionSelector": "a324ad24", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getMonth", + "scope": 772, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 429, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 417, + "name": "ElementaryTypeName", + "src": "4525:4:0" + } + ], + "id": 418, + "name": "VariableDeclaration", + "src": "4525:14:0" + } + ], + "id": 419, + "name": "ParameterList", + "src": "4524:16:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 429, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 420, + "name": "ElementaryTypeName", + "src": "4562:5:0" + } + ], + "id": 421, + "name": "VariableDeclaration", + "src": "4562:5:0" + } + ], + "id": 422, + "name": "ParameterList", + "src": "4561:7:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 422 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "month", + "referencedDeclaration": 5, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "struct DateAndTime._DateTime memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 330, + "type": "function (uint256) pure returns (struct DateAndTime._DateTime memory)", + "value": "parseTimestamp" + }, + "id": 423, + "name": "Identifier", + "src": "4594:14:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 418, + "type": "uint256", + "value": "timestamp" + }, + "id": 424, + "name": "Identifier", + "src": "4609:9:0" + } + ], + "id": 425, + "name": "FunctionCall", + "src": "4594:25:0" + } + ], + "id": 426, + "name": "MemberAccess", + "src": "4594:31:0" + } + ], + "id": 427, + "name": "Return", + "src": "4587:38:0" + } + ], + "id": 428, + "name": "Block", + "src": "4569:67:0" + } + ], + "id": 429, + "name": "FunctionDefinition", + "src": "4507:129:0" + }, + { + "attributes": { + "functionSelector": "65c72840", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getDay", + "scope": 772, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 442, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 430, + "name": "ElementaryTypeName", + "src": "4662:4:0" + } + ], + "id": 431, + "name": "VariableDeclaration", + "src": "4662:14:0" + } + ], + "id": 432, + "name": "ParameterList", + "src": "4661:16:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 442, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 433, + "name": "ElementaryTypeName", + "src": "4699:5:0" + } + ], + "id": 434, + "name": "VariableDeclaration", + "src": "4699:5:0" + } + ], + "id": 435, + "name": "ParameterList", + "src": "4698:7:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 435 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "day", + "referencedDeclaration": 7, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "struct DateAndTime._DateTime memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 330, + "type": "function (uint256) pure returns (struct DateAndTime._DateTime memory)", + "value": "parseTimestamp" + }, + "id": 436, + "name": "Identifier", + "src": "4731:14:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 431, + "type": "uint256", + "value": "timestamp" + }, + "id": 437, + "name": "Identifier", + "src": "4746:9:0" + } + ], + "id": 438, + "name": "FunctionCall", + "src": "4731:25:0" + } + ], + "id": 439, + "name": "MemberAccess", + "src": "4731:29:0" + } + ], + "id": 440, + "name": "Return", + "src": "4724:36:0" + } + ], + "id": 441, + "name": "Block", + "src": "4706:65:0" + } + ], + "id": 442, + "name": "FunctionDefinition", + "src": "4646:125:0" + }, + { + "attributes": { + "functionSelector": "3e239e1a", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getHour", + "scope": 772, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 460, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 443, + "name": "ElementaryTypeName", + "src": "4798:4:0" + } + ], + "id": 444, + "name": "VariableDeclaration", + "src": "4798:14:0" + } + ], + "id": 445, + "name": "ParameterList", + "src": "4797:16:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 460, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 446, + "name": "ElementaryTypeName", + "src": "4835:5:0" + } + ], + "id": 447, + "name": "VariableDeclaration", + "src": "4835:5:0" + } + ], + "id": 448, + "name": "ParameterList", + "src": "4834:7:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 448 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 449, + "name": "ElementaryTypeName", + "src": "4867:5:0" + } + ], + "id": 450, + "name": "ElementaryTypeNameExpression", + "src": "4867:5:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 444, + "type": "uint256", + "value": "timestamp" + }, + "id": 451, + "name": "Identifier", + "src": "4874:9:0" + }, + { + "attributes": { + "hexvalue": "3630", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 60", + "value": "60" + }, + "id": 452, + "name": "Literal", + "src": "4886:2:0" + } + ], + "id": 453, + "name": "BinaryOperation", + "src": "4874:14:0" + } + ], + "id": 454, + "name": "TupleExpression", + "src": "4873:16:0" + }, + { + "attributes": { + "hexvalue": "3234", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 24", + "value": "24" + }, + "id": 455, + "name": "Literal", + "src": "4892:2:0" + } + ], + "id": 456, + "name": "BinaryOperation", + "src": "4873:21:0" + } + ], + "id": 457, + "name": "FunctionCall", + "src": "4867:28:0" + } + ], + "id": 458, + "name": "Return", + "src": "4860:35:0" + } + ], + "id": 459, + "name": "Block", + "src": "4842:64:0" + } + ], + "id": 460, + "name": "FunctionDefinition", + "src": "4781:125:0" + }, + { + "attributes": { + "functionSelector": "fa93f883", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getMinute", + "scope": 772, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 478, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 461, + "name": "ElementaryTypeName", + "src": "4935:4:0" + } + ], + "id": 462, + "name": "VariableDeclaration", + "src": "4935:14:0" + } + ], + "id": 463, + "name": "ParameterList", + "src": "4934:16:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 478, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 464, + "name": "ElementaryTypeName", + "src": "4972:5:0" + } + ], + "id": 465, + "name": "VariableDeclaration", + "src": "4972:5:0" + } + ], + "id": 466, + "name": "ParameterList", + "src": "4971:7:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 466 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 467, + "name": "ElementaryTypeName", + "src": "5004:5:0" + } + ], + "id": 468, + "name": "ElementaryTypeNameExpression", + "src": "5004:5:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 462, + "type": "uint256", + "value": "timestamp" + }, + "id": 469, + "name": "Identifier", + "src": "5011:9:0" + }, + { + "attributes": { + "hexvalue": "3630", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 60", + "value": "60" + }, + "id": 470, + "name": "Literal", + "src": "5023:2:0" + } + ], + "id": 471, + "name": "BinaryOperation", + "src": "5011:14:0" + } + ], + "id": 472, + "name": "TupleExpression", + "src": "5010:16:0" + }, + { + "attributes": { + "hexvalue": "3630", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 60", + "value": "60" + }, + "id": 473, + "name": "Literal", + "src": "5029:2:0" + } + ], + "id": 474, + "name": "BinaryOperation", + "src": "5010:21:0" + } + ], + "id": 475, + "name": "FunctionCall", + "src": "5004:28:0" + } + ], + "id": 476, + "name": "Return", + "src": "4997:35:0" + } + ], + "id": 477, + "name": "Block", + "src": "4979:64:0" + } + ], + "id": 478, + "name": "FunctionDefinition", + "src": "4916:127:0" + }, + { + "attributes": { + "functionSelector": "8aa001fc", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getSecond", + "scope": 772, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 493, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 479, + "name": "ElementaryTypeName", + "src": "5072:4:0" + } + ], + "id": 480, + "name": "VariableDeclaration", + "src": "5072:14:0" + } + ], + "id": 481, + "name": "ParameterList", + "src": "5071:16:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 493, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 482, + "name": "ElementaryTypeName", + "src": "5109:5:0" + } + ], + "id": 483, + "name": "VariableDeclaration", + "src": "5109:5:0" + } + ], + "id": 484, + "name": "ParameterList", + "src": "5108:7:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 484 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 485, + "name": "ElementaryTypeName", + "src": "5141:5:0" + } + ], + "id": 486, + "name": "ElementaryTypeNameExpression", + "src": "5141:5:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 480, + "type": "uint256", + "value": "timestamp" + }, + "id": 487, + "name": "Identifier", + "src": "5147:9:0" + }, + { + "attributes": { + "hexvalue": "3630", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 60", + "value": "60" + }, + "id": 488, + "name": "Literal", + "src": "5159:2:0" + } + ], + "id": 489, + "name": "BinaryOperation", + "src": "5147:14:0" + } + ], + "id": 490, + "name": "FunctionCall", + "src": "5141:21:0" + } + ], + "id": 491, + "name": "Return", + "src": "5134:28:0" + } + ], + "id": 492, + "name": "Block", + "src": "5116:57:0" + } + ], + "id": 493, + "name": "FunctionDefinition", + "src": "5053:120:0" + }, + { + "attributes": { + "functionSelector": "4ac1ad78", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getWeekday", + "scope": 772, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 513, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 494, + "name": "ElementaryTypeName", + "src": "5203:4:0" + } + ], + "id": 495, + "name": "VariableDeclaration", + "src": "5203:14:0" + } + ], + "id": 496, + "name": "ParameterList", + "src": "5202:16:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 513, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 497, + "name": "ElementaryTypeName", + "src": "5240:5:0" + } + ], + "id": 498, + "name": "VariableDeclaration", + "src": "5240:5:0" + } + ], + "id": 499, + "name": "ParameterList", + "src": "5239:7:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 499 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 500, + "name": "ElementaryTypeName", + "src": "5272:5:0" + } + ], + "id": 501, + "name": "ElementaryTypeNameExpression", + "src": "5272:5:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 495, + "type": "uint256", + "value": "timestamp" + }, + "id": 502, + "name": "Identifier", + "src": "5279:9:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 19, + "type": "uint256", + "value": "DAY_IN_SECONDS" + }, + "id": 503, + "name": "Identifier", + "src": "5291:14:0" + } + ], + "id": 504, + "name": "BinaryOperation", + "src": "5279:26:0" + }, + { + "attributes": { + "hexvalue": "34", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4", + "value": "4" + }, + "id": 505, + "name": "Literal", + "src": "5308:1:0" + } + ], + "id": 506, + "name": "BinaryOperation", + "src": "5279:30:0" + } + ], + "id": 507, + "name": "TupleExpression", + "src": "5278:32:0" + }, + { + "attributes": { + "hexvalue": "37", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 7", + "value": "7" + }, + "id": 508, + "name": "Literal", + "src": "5313:1:0" + } + ], + "id": 509, + "name": "BinaryOperation", + "src": "5278:36:0" + } + ], + "id": 510, + "name": "FunctionCall", + "src": "5272:43:0" + } + ], + "id": 511, + "name": "Return", + "src": "5265:50:0" + } + ], + "id": 512, + "name": "Block", + "src": "5247:79:0" + } + ], + "id": 513, + "name": "FunctionDefinition", + "src": "5183:143:0" + }, + { + "attributes": { + "functionSelector": "8c8d98a0", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toTimestamp", + "scope": 772, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 534, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 514, + "name": "ElementaryTypeName", + "src": "5357:6:0" + } + ], + "id": 515, + "name": "VariableDeclaration", + "src": "5357:11:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "month", + "scope": 534, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 516, + "name": "ElementaryTypeName", + "src": "5370:5:0" + } + ], + "id": 517, + "name": "VariableDeclaration", + "src": "5370:11:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "day", + "scope": 534, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 518, + "name": "ElementaryTypeName", + "src": "5383:5:0" + } + ], + "id": 519, + "name": "VariableDeclaration", + "src": "5383:9:0" + } + ], + "id": 520, + "name": "ParameterList", + "src": "5356:37:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 534, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 521, + "name": "ElementaryTypeName", + "src": "5415:4:0" + } + ], + "id": 522, + "name": "VariableDeclaration", + "src": "5415:14:0" + } + ], + "id": 523, + "name": "ParameterList", + "src": "5414:16:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 523 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "overloadedDeclarations": [ + 534, + 557, + 582, + 771 + ], + "referencedDeclaration": 771, + "type": "function (uint16,uint8,uint8,uint8,uint8,uint8) pure returns (uint256)", + "value": "toTimestamp" + }, + "id": 524, + "name": "Identifier", + "src": "5456:11:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 515, + "type": "uint16", + "value": "year" + }, + "id": 525, + "name": "Identifier", + "src": "5468:4:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 517, + "type": "uint8", + "value": "month" + }, + "id": 526, + "name": "Identifier", + "src": "5474:5:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 519, + "type": "uint8", + "value": "day" + }, + "id": 527, + "name": "Identifier", + "src": "5481:3:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 528, + "name": "Literal", + "src": "5486:1:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 529, + "name": "Literal", + "src": "5489:1:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 530, + "name": "Literal", + "src": "5492:1:0" + } + ], + "id": 531, + "name": "FunctionCall", + "src": "5456:38:0" + } + ], + "id": 532, + "name": "Return", + "src": "5449:45:0" + } + ], + "id": 533, + "name": "Block", + "src": "5431:74:0" + } + ], + "id": 534, + "name": "FunctionDefinition", + "src": "5336:169:0" + }, + { + "attributes": { + "functionSelector": "7f791833", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toTimestamp", + "scope": 772, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 557, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 535, + "name": "ElementaryTypeName", + "src": "5536:6:0" + } + ], + "id": 536, + "name": "VariableDeclaration", + "src": "5536:11:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "month", + "scope": 557, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 537, + "name": "ElementaryTypeName", + "src": "5549:5:0" + } + ], + "id": 538, + "name": "VariableDeclaration", + "src": "5549:11:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "day", + "scope": 557, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 539, + "name": "ElementaryTypeName", + "src": "5562:5:0" + } + ], + "id": 540, + "name": "VariableDeclaration", + "src": "5562:9:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "hour", + "scope": 557, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 541, + "name": "ElementaryTypeName", + "src": "5573:5:0" + } + ], + "id": 542, + "name": "VariableDeclaration", + "src": "5573:10:0" + } + ], + "id": 543, + "name": "ParameterList", + "src": "5535:49:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 557, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 544, + "name": "ElementaryTypeName", + "src": "5606:4:0" + } + ], + "id": 545, + "name": "VariableDeclaration", + "src": "5606:14:0" + } + ], + "id": 546, + "name": "ParameterList", + "src": "5605:16:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 546 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "overloadedDeclarations": [ + 534, + 557, + 582, + 771 + ], + "referencedDeclaration": 771, + "type": "function (uint16,uint8,uint8,uint8,uint8,uint8) pure returns (uint256)", + "value": "toTimestamp" + }, + "id": 547, + "name": "Identifier", + "src": "5647:11:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 536, + "type": "uint16", + "value": "year" + }, + "id": 548, + "name": "Identifier", + "src": "5659:4:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 538, + "type": "uint8", + "value": "month" + }, + "id": 549, + "name": "Identifier", + "src": "5665:5:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 540, + "type": "uint8", + "value": "day" + }, + "id": 550, + "name": "Identifier", + "src": "5672:3:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 542, + "type": "uint8", + "value": "hour" + }, + "id": 551, + "name": "Identifier", + "src": "5677:4:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 552, + "name": "Literal", + "src": "5683:1:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 553, + "name": "Literal", + "src": "5686:1:0" + } + ], + "id": 554, + "name": "FunctionCall", + "src": "5647:41:0" + } + ], + "id": 555, + "name": "Return", + "src": "5640:48:0" + } + ], + "id": 556, + "name": "Block", + "src": "5622:77:0" + } + ], + "id": 557, + "name": "FunctionDefinition", + "src": "5515:184:0" + }, + { + "attributes": { + "functionSelector": "62ba9687", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toTimestamp", + "scope": 772, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 582, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 558, + "name": "ElementaryTypeName", + "src": "5730:6:0" + } + ], + "id": 559, + "name": "VariableDeclaration", + "src": "5730:11:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "month", + "scope": 582, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 560, + "name": "ElementaryTypeName", + "src": "5743:5:0" + } + ], + "id": 561, + "name": "VariableDeclaration", + "src": "5743:11:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "day", + "scope": 582, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 562, + "name": "ElementaryTypeName", + "src": "5756:5:0" + } + ], + "id": 563, + "name": "VariableDeclaration", + "src": "5756:9:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "hour", + "scope": 582, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 564, + "name": "ElementaryTypeName", + "src": "5767:5:0" + } + ], + "id": 565, + "name": "VariableDeclaration", + "src": "5767:10:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "minute", + "scope": 582, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 566, + "name": "ElementaryTypeName", + "src": "5779:5:0" + } + ], + "id": 567, + "name": "VariableDeclaration", + "src": "5779:12:0" + } + ], + "id": 568, + "name": "ParameterList", + "src": "5729:63:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 582, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 569, + "name": "ElementaryTypeName", + "src": "5814:4:0" + } + ], + "id": 570, + "name": "VariableDeclaration", + "src": "5814:14:0" + } + ], + "id": 571, + "name": "ParameterList", + "src": "5813:16:0" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 571 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "overloadedDeclarations": [ + 534, + 557, + 582, + 771 + ], + "referencedDeclaration": 771, + "type": "function (uint16,uint8,uint8,uint8,uint8,uint8) pure returns (uint256)", + "value": "toTimestamp" + }, + "id": 572, + "name": "Identifier", + "src": "5855:11:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 559, + "type": "uint16", + "value": "year" + }, + "id": 573, + "name": "Identifier", + "src": "5867:4:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 561, + "type": "uint8", + "value": "month" + }, + "id": 574, + "name": "Identifier", + "src": "5873:5:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 563, + "type": "uint8", + "value": "day" + }, + "id": 575, + "name": "Identifier", + "src": "5880:3:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 565, + "type": "uint8", + "value": "hour" + }, + "id": 576, + "name": "Identifier", + "src": "5885:4:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 567, + "type": "uint8", + "value": "minute" + }, + "id": 577, + "name": "Identifier", + "src": "5891:6:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 578, + "name": "Literal", + "src": "5899:1:0" + } + ], + "id": 579, + "name": "FunctionCall", + "src": "5855:46:0" + } + ], + "id": 580, + "name": "Return", + "src": "5848:53:0" + } + ], + "id": 581, + "name": "Block", + "src": "5830:82:0" + } + ], + "id": 582, + "name": "FunctionDefinition", + "src": "5709:203:0" + }, + { + "attributes": { + "functionSelector": "9054bdec", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toTimestamp", + "scope": 772, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 771, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 583, + "name": "ElementaryTypeName", + "src": "5943:6:0" + } + ], + "id": 584, + "name": "VariableDeclaration", + "src": "5943:11:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "month", + "scope": 771, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 585, + "name": "ElementaryTypeName", + "src": "5956:5:0" + } + ], + "id": 586, + "name": "VariableDeclaration", + "src": "5956:11:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "day", + "scope": 771, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 587, + "name": "ElementaryTypeName", + "src": "5969:5:0" + } + ], + "id": 588, + "name": "VariableDeclaration", + "src": "5969:9:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "hour", + "scope": 771, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 589, + "name": "ElementaryTypeName", + "src": "5980:5:0" + } + ], + "id": 590, + "name": "VariableDeclaration", + "src": "5980:10:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "minute", + "scope": 771, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 591, + "name": "ElementaryTypeName", + "src": "5992:5:0" + } + ], + "id": 592, + "name": "VariableDeclaration", + "src": "5992:12:0" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "second", + "scope": 771, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 593, + "name": "ElementaryTypeName", + "src": "6006:5:0" + } + ], + "id": 594, + "name": "VariableDeclaration", + "src": "6006:12:0" + } + ], + "id": 595, + "name": "ParameterList", + "src": "5942:77:0" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 771, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 596, + "name": "ElementaryTypeName", + "src": "6041:4:0" + } + ], + "id": 597, + "name": "VariableDeclaration", + "src": "6041:14:0" + } + ], + "id": 598, + "name": "ParameterList", + "src": "6040:16:0" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 600 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "i", + "scope": 770, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 599, + "name": "ElementaryTypeName", + "src": "6075:6:0" + } + ], + "id": 600, + "name": "VariableDeclaration", + "src": "6075:8:0" + } + ], + "id": 601, + "name": "VariableDeclarationStatement", + "src": "6075:8:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 600, + "type": "uint16", + "value": "i" + }, + "id": 602, + "name": "Identifier", + "src": "6131:1:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 34, + "type": "uint16", + "value": "ORIGIN_YEAR" + }, + "id": 603, + "name": "Identifier", + "src": "6135:11:0" + } + ], + "id": 604, + "name": "Assignment", + "src": "6131:15:0" + } + ], + "id": 605, + "name": "ExpressionStatement", + "src": "6131:15:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 600, + "type": "uint16", + "value": "i" + }, + "id": 606, + "name": "Identifier", + "src": "6148:1:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 584, + "type": "uint16", + "value": "year" + }, + "id": 607, + "name": "Identifier", + "src": "6152:4:0" + } + ], + "id": 608, + "name": "BinaryOperation", + "src": "6148:8:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 600, + "type": "uint16", + "value": "i" + }, + "id": 609, + "name": "Identifier", + "src": "6158:1:0" + } + ], + "id": 610, + "name": "UnaryOperation", + "src": "6158:3:0" + } + ], + "id": 611, + "name": "ExpressionStatement", + "src": "6158:3:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 71, + "type": "function (uint16) pure returns (bool)", + "value": "isLeapYear" + }, + "id": 612, + "name": "Identifier", + "src": "6193:10:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 600, + "type": "uint16", + "value": "i" + }, + "id": 613, + "name": "Identifier", + "src": "6204:1:0" + } + ], + "id": 614, + "name": "FunctionCall", + "src": "6193:13:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 597, + "type": "uint256", + "value": "timestamp" + }, + "id": 615, + "name": "Identifier", + "src": "6242:9:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 25, + "type": "uint256", + "value": "LEAP_YEAR_IN_SECONDS" + }, + "id": 616, + "name": "Identifier", + "src": "6255:20:0" + } + ], + "id": 617, + "name": "Assignment", + "src": "6242:33:0" + } + ], + "id": 618, + "name": "ExpressionStatement", + "src": "6242:33:0" + } + ], + "id": 619, + "name": "Block", + "src": "6208:94:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 597, + "type": "uint256", + "value": "timestamp" + }, + "id": 620, + "name": "Identifier", + "src": "6366:9:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 22, + "type": "uint256", + "value": "YEAR_IN_SECONDS" + }, + "id": 621, + "name": "Identifier", + "src": "6379:15:0" + } + ], + "id": 622, + "name": "Assignment", + "src": "6366:28:0" + } + ], + "id": 623, + "name": "ExpressionStatement", + "src": "6366:28:0" + } + ], + "id": 624, + "name": "Block", + "src": "6332:89:0" + } + ], + "id": 625, + "name": "IfStatement", + "src": "6189:232:0" + } + ], + "id": 626, + "name": "Block", + "src": "6163:276:0" + } + ], + "id": 627, + "name": "ForStatement", + "src": "6126:313:0" + }, + { + "attributes": { + "assignments": [ + 633 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "monthDayCounts", + "scope": 770, + "stateVariable": false, + "storageLocation": "memory", + "type": "uint8[12]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "uint8[12]" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 631, + "name": "ElementaryTypeName", + "src": "6482:5:0" + }, + { + "attributes": { + "hexvalue": "3132", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 12", + "value": "12" + }, + "id": 630, + "name": "Literal", + "src": "6488:2:0" + } + ], + "id": 632, + "name": "ArrayTypeName", + "src": "6482:9:0" + } + ], + "id": 633, + "name": "VariableDeclaration", + "src": "6482:31:0" + } + ], + "id": 634, + "name": "VariableDeclarationStatement", + "src": "6482:31:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 633, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 635, + "name": "Identifier", + "src": "6531:14:0" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 636, + "name": "Literal", + "src": "6546:1:0" + } + ], + "id": 637, + "name": "IndexAccess", + "src": "6531:17:0" + }, + { + "attributes": { + "hexvalue": "3331", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31", + "value": "31" + }, + "id": 638, + "name": "Literal", + "src": "6551:2:0" + } + ], + "id": 639, + "name": "Assignment", + "src": "6531:22:0" + } + ], + "id": 640, + "name": "ExpressionStatement", + "src": "6531:22:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 71, + "type": "function (uint16) pure returns (bool)", + "value": "isLeapYear" + }, + "id": 641, + "name": "Identifier", + "src": "6575:10:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 584, + "type": "uint16", + "value": "year" + }, + "id": 642, + "name": "Identifier", + "src": "6586:4:0" + } + ], + "id": 643, + "name": "FunctionCall", + "src": "6575:16:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 633, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 644, + "name": "Identifier", + "src": "6619:14:0" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 645, + "name": "Literal", + "src": "6634:1:0" + } + ], + "id": 646, + "name": "IndexAccess", + "src": "6619:17:0" + }, + { + "attributes": { + "hexvalue": "3239", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 29", + "value": "29" + }, + "id": 647, + "name": "Literal", + "src": "6639:2:0" + } + ], + "id": 648, + "name": "Assignment", + "src": "6619:22:0" + } + ], + "id": 649, + "name": "ExpressionStatement", + "src": "6619:22:0" + } + ], + "id": 650, + "name": "Block", + "src": "6593:67:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 633, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 651, + "name": "Identifier", + "src": "6708:14:0" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 652, + "name": "Literal", + "src": "6723:1:0" + } + ], + "id": 653, + "name": "IndexAccess", + "src": "6708:17:0" + }, + { + "attributes": { + "hexvalue": "3238", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 28", + "value": "28" + }, + "id": 654, + "name": "Literal", + "src": "6728:2:0" + } + ], + "id": 655, + "name": "Assignment", + "src": "6708:22:0" + } + ], + "id": 656, + "name": "ExpressionStatement", + "src": "6708:22:0" + } + ], + "id": 657, + "name": "Block", + "src": "6682:67:0" + } + ], + "id": 658, + "name": "IfStatement", + "src": "6571:178:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 633, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 659, + "name": "Identifier", + "src": "6766:14:0" + }, + { + "attributes": { + "hexvalue": "32", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2", + "value": "2" + }, + "id": 660, + "name": "Literal", + "src": "6781:1:0" + } + ], + "id": 661, + "name": "IndexAccess", + "src": "6766:17:0" + }, + { + "attributes": { + "hexvalue": "3331", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31", + "value": "31" + }, + "id": 662, + "name": "Literal", + "src": "6786:2:0" + } + ], + "id": 663, + "name": "Assignment", + "src": "6766:22:0" + } + ], + "id": 664, + "name": "ExpressionStatement", + "src": "6766:22:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 633, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 665, + "name": "Identifier", + "src": "6806:14:0" + }, + { + "attributes": { + "hexvalue": "33", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 3", + "value": "3" + }, + "id": 666, + "name": "Literal", + "src": "6821:1:0" + } + ], + "id": 667, + "name": "IndexAccess", + "src": "6806:17:0" + }, + { + "attributes": { + "hexvalue": "3330", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 30", + "value": "30" + }, + "id": 668, + "name": "Literal", + "src": "6826:2:0" + } + ], + "id": 669, + "name": "Assignment", + "src": "6806:22:0" + } + ], + "id": 670, + "name": "ExpressionStatement", + "src": "6806:22:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 633, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 671, + "name": "Identifier", + "src": "6846:14:0" + }, + { + "attributes": { + "hexvalue": "34", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4", + "value": "4" + }, + "id": 672, + "name": "Literal", + "src": "6861:1:0" + } + ], + "id": 673, + "name": "IndexAccess", + "src": "6846:17:0" + }, + { + "attributes": { + "hexvalue": "3331", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31", + "value": "31" + }, + "id": 674, + "name": "Literal", + "src": "6866:2:0" + } + ], + "id": 675, + "name": "Assignment", + "src": "6846:22:0" + } + ], + "id": 676, + "name": "ExpressionStatement", + "src": "6846:22:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 633, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 677, + "name": "Identifier", + "src": "6886:14:0" + }, + { + "attributes": { + "hexvalue": "35", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 5", + "value": "5" + }, + "id": 678, + "name": "Literal", + "src": "6901:1:0" + } + ], + "id": 679, + "name": "IndexAccess", + "src": "6886:17:0" + }, + { + "attributes": { + "hexvalue": "3330", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 30", + "value": "30" + }, + "id": 680, + "name": "Literal", + "src": "6906:2:0" + } + ], + "id": 681, + "name": "Assignment", + "src": "6886:22:0" + } + ], + "id": 682, + "name": "ExpressionStatement", + "src": "6886:22:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 633, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 683, + "name": "Identifier", + "src": "6926:14:0" + }, + { + "attributes": { + "hexvalue": "36", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 6", + "value": "6" + }, + "id": 684, + "name": "Literal", + "src": "6941:1:0" + } + ], + "id": 685, + "name": "IndexAccess", + "src": "6926:17:0" + }, + { + "attributes": { + "hexvalue": "3331", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31", + "value": "31" + }, + "id": 686, + "name": "Literal", + "src": "6946:2:0" + } + ], + "id": 687, + "name": "Assignment", + "src": "6926:22:0" + } + ], + "id": 688, + "name": "ExpressionStatement", + "src": "6926:22:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 633, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 689, + "name": "Identifier", + "src": "6966:14:0" + }, + { + "attributes": { + "hexvalue": "37", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 7", + "value": "7" + }, + "id": 690, + "name": "Literal", + "src": "6981:1:0" + } + ], + "id": 691, + "name": "IndexAccess", + "src": "6966:17:0" + }, + { + "attributes": { + "hexvalue": "3331", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31", + "value": "31" + }, + "id": 692, + "name": "Literal", + "src": "6986:2:0" + } + ], + "id": 693, + "name": "Assignment", + "src": "6966:22:0" + } + ], + "id": 694, + "name": "ExpressionStatement", + "src": "6966:22:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 633, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 695, + "name": "Identifier", + "src": "7006:14:0" + }, + { + "attributes": { + "hexvalue": "38", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 8", + "value": "8" + }, + "id": 696, + "name": "Literal", + "src": "7021:1:0" + } + ], + "id": 697, + "name": "IndexAccess", + "src": "7006:17:0" + }, + { + "attributes": { + "hexvalue": "3330", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 30", + "value": "30" + }, + "id": 698, + "name": "Literal", + "src": "7026:2:0" + } + ], + "id": 699, + "name": "Assignment", + "src": "7006:22:0" + } + ], + "id": 700, + "name": "ExpressionStatement", + "src": "7006:22:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 633, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 701, + "name": "Identifier", + "src": "7046:14:0" + }, + { + "attributes": { + "hexvalue": "39", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 9", + "value": "9" + }, + "id": 702, + "name": "Literal", + "src": "7061:1:0" + } + ], + "id": 703, + "name": "IndexAccess", + "src": "7046:17:0" + }, + { + "attributes": { + "hexvalue": "3331", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31", + "value": "31" + }, + "id": 704, + "name": "Literal", + "src": "7066:2:0" + } + ], + "id": 705, + "name": "Assignment", + "src": "7046:22:0" + } + ], + "id": 706, + "name": "ExpressionStatement", + "src": "7046:22:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 633, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 707, + "name": "Identifier", + "src": "7086:14:0" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 708, + "name": "Literal", + "src": "7101:2:0" + } + ], + "id": 709, + "name": "IndexAccess", + "src": "7086:18:0" + }, + { + "attributes": { + "hexvalue": "3330", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 30", + "value": "30" + }, + "id": 710, + "name": "Literal", + "src": "7107:2:0" + } + ], + "id": 711, + "name": "Assignment", + "src": "7086:23:0" + } + ], + "id": 712, + "name": "ExpressionStatement", + "src": "7086:23:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 633, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 713, + "name": "Identifier", + "src": "7127:14:0" + }, + { + "attributes": { + "hexvalue": "3131", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 11", + "value": "11" + }, + "id": 714, + "name": "Literal", + "src": "7142:2:0" + } + ], + "id": 715, + "name": "IndexAccess", + "src": "7127:18:0" + }, + { + "attributes": { + "hexvalue": "3331", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31", + "value": "31" + }, + "id": 716, + "name": "Literal", + "src": "7148:2:0" + } + ], + "id": 717, + "name": "Assignment", + "src": "7127:23:0" + } + ], + "id": 718, + "name": "ExpressionStatement", + "src": "7127:23:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 600, + "type": "uint16", + "value": "i" + }, + "id": 719, + "name": "Identifier", + "src": "7174:1:0" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 720, + "name": "Literal", + "src": "7178:1:0" + } + ], + "id": 721, + "name": "Assignment", + "src": "7174:5:0" + } + ], + "id": 722, + "name": "ExpressionStatement", + "src": "7174:5:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 600, + "type": "uint16", + "value": "i" + }, + "id": 723, + "name": "Identifier", + "src": "7181:1:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 586, + "type": "uint8", + "value": "month" + }, + "id": 724, + "name": "Identifier", + "src": "7185:5:0" + } + ], + "id": 725, + "name": "BinaryOperation", + "src": "7181:9:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 600, + "type": "uint16", + "value": "i" + }, + "id": 726, + "name": "Identifier", + "src": "7192:1:0" + } + ], + "id": 727, + "name": "UnaryOperation", + "src": "7192:3:0" + } + ], + "id": 728, + "name": "ExpressionStatement", + "src": "7192:3:0" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 597, + "type": "uint256", + "value": "timestamp" + }, + "id": 729, + "name": "Identifier", + "src": "7223:9:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 19, + "type": "uint256", + "value": "DAY_IN_SECONDS" + }, + "id": 730, + "name": "Identifier", + "src": "7236:14:0" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 633, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 731, + "name": "Identifier", + "src": "7253:14:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 600, + "type": "uint16", + "value": "i" + }, + "id": 732, + "name": "Identifier", + "src": "7268:1:0" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 733, + "name": "Literal", + "src": "7272:1:0" + } + ], + "id": 734, + "name": "BinaryOperation", + "src": "7268:5:0" + } + ], + "id": 735, + "name": "IndexAccess", + "src": "7253:21:0" + } + ], + "id": 736, + "name": "BinaryOperation", + "src": "7236:38:0" + } + ], + "id": 737, + "name": "Assignment", + "src": "7223:51:0" + } + ], + "id": 738, + "name": "ExpressionStatement", + "src": "7223:51:0" + } + ], + "id": 739, + "name": "Block", + "src": "7197:96:0" + } + ], + "id": 740, + "name": "ForStatement", + "src": "7169:124:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 597, + "type": "uint256", + "value": "timestamp" + }, + "id": 741, + "name": "Identifier", + "src": "7334:9:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 19, + "type": "uint256", + "value": "DAY_IN_SECONDS" + }, + "id": 742, + "name": "Identifier", + "src": "7347:14:0" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 588, + "type": "uint8", + "value": "day" + }, + "id": 743, + "name": "Identifier", + "src": "7365:3:0" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 744, + "name": "Literal", + "src": "7371:1:0" + } + ], + "id": 745, + "name": "BinaryOperation", + "src": "7365:7:0" + } + ], + "id": 746, + "name": "TupleExpression", + "src": "7364:9:0" + } + ], + "id": 747, + "name": "BinaryOperation", + "src": "7347:26:0" + } + ], + "id": 748, + "name": "Assignment", + "src": "7334:39:0" + } + ], + "id": 749, + "name": "ExpressionStatement", + "src": "7334:39:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 597, + "type": "uint256", + "value": "timestamp" + }, + "id": 750, + "name": "Identifier", + "src": "7416:9:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 28, + "type": "uint256", + "value": "HOUR_IN_SECONDS" + }, + "id": 751, + "name": "Identifier", + "src": "7429:15:0" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 590, + "type": "uint8", + "value": "hour" + }, + "id": 752, + "name": "Identifier", + "src": "7448:4:0" + } + ], + "id": 753, + "name": "TupleExpression", + "src": "7447:6:0" + } + ], + "id": 754, + "name": "BinaryOperation", + "src": "7429:24:0" + } + ], + "id": 755, + "name": "Assignment", + "src": "7416:37:0" + } + ], + "id": 756, + "name": "ExpressionStatement", + "src": "7416:37:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 597, + "type": "uint256", + "value": "timestamp" + }, + "id": 757, + "name": "Identifier", + "src": "7498:9:0" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 31, + "type": "uint256", + "value": "MINUTE_IN_SECONDS" + }, + "id": 758, + "name": "Identifier", + "src": "7511:17:0" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 592, + "type": "uint8", + "value": "minute" + }, + "id": 759, + "name": "Identifier", + "src": "7532:6:0" + } + ], + "id": 760, + "name": "TupleExpression", + "src": "7531:8:0" + } + ], + "id": 761, + "name": "BinaryOperation", + "src": "7511:28:0" + } + ], + "id": 762, + "name": "Assignment", + "src": "7498:41:0" + } + ], + "id": 763, + "name": "ExpressionStatement", + "src": "7498:41:0" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 597, + "type": "uint256", + "value": "timestamp" + }, + "id": 764, + "name": "Identifier", + "src": "7584:9:0" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 594, + "type": "uint8", + "value": "second" + }, + "id": 765, + "name": "Identifier", + "src": "7597:6:0" + } + ], + "id": 766, + "name": "Assignment", + "src": "7584:19:0" + } + ], + "id": 767, + "name": "ExpressionStatement", + "src": "7584:19:0" + }, + { + "attributes": { + "functionReturnParameters": 598 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 597, + "type": "uint256", + "value": "timestamp" + }, + "id": 768, + "name": "Identifier", + "src": "7629:9:0" + } + ], + "id": 769, + "name": "Return", + "src": "7622:16:0" + } + ], + "id": 770, + "name": "Block", + "src": "6057:1592:0" + } + ], + "id": 771, + "name": "FunctionDefinition", + "src": "5922:1727:0" + } + ], + "id": 772, + "name": "ContractDefinition", + "src": "75:7576:0" + } + ], + "id": 773, + "name": "SourceUnit", + "src": "41:7611:0" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-10T11:30:13.756Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/abis/DateTime.json b/src/abis/DateTime.json new file mode 100644 index 0000000..62d7ba2 --- /dev/null +++ b/src/abis/DateTime.json @@ -0,0 +1,20503 @@ +{ + "contractName": "DateTime", + "abi": [ + { + "inputs": [ + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + } + ], + "name": "isLeapYear", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "year", + "type": "uint256" + } + ], + "name": "leapYearsBefore", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint8", + "name": "month", + "type": "uint8" + }, + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + } + ], + "name": "getDaysInMonth", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getYear", + "outputs": [ + { + "internalType": "uint16", + "name": "", + "type": "uint16" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getMonth", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getDay", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getHour", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getMinute", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getSecond", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "name": "getWeekday", + "outputs": [ + { + "internalType": "uint8", + "name": "", + "type": "uint8" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + }, + { + "internalType": "uint8", + "name": "month", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "day", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "hour", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "minute", + "type": "uint8" + } + ], + "name": "toTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + }, + { + "internalType": "uint8", + "name": "month", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "day", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "hour", + "type": "uint8" + } + ], + "name": "toTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + }, + { + "internalType": "uint8", + "name": "month", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "day", + "type": "uint8" + } + ], + "name": "toTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint16", + "name": "year", + "type": "uint16" + }, + { + "internalType": "uint8", + "name": "month", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "day", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "hour", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "minute", + "type": "uint8" + }, + { + "internalType": "uint8", + "name": "second", + "type": "uint8" + } + ], + "name": "toTimestamp", + "outputs": [ + { + "internalType": "uint256", + "name": "timestamp", + "type": "uint256" + } + ], + "stateMutability": "pure", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getDay\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint8\",\"name\":\"month\",\"type\":\"uint8\"},{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"}],\"name\":\"getDaysInMonth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getHour\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getMinute\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getMonth\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getSecond\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getWeekday\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"name\":\"getYear\",\"outputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"}],\"name\":\"isLeapYear\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"year\",\"type\":\"uint256\"}],\"name\":\"leapYearsBefore\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"month\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"day\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"hour\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minute\",\"type\":\"uint8\"}],\"name\":\"toTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"month\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"day\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"hour\",\"type\":\"uint8\"}],\"name\":\"toTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"month\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"day\",\"type\":\"uint8\"}],\"name\":\"toTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"year\",\"type\":\"uint16\"},{\"internalType\":\"uint8\",\"name\":\"month\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"day\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"hour\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"minute\",\"type\":\"uint8\"},{\"internalType\":\"uint8\",\"name\":\"second\",\"type\":\"uint8\"}],\"name\":\"toTimestamp\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"timestamp\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/crypto-boys/src/contracts/DateTime.sol\":\"DateTime\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/crypto-boys/src/contracts/DateTime.sol\":{\"keccak256\":\"0xc10a8553e2d8b47907ddd3287aaafddc584acc01a02e5092ee4fa079b4d0d0fa\",\"license\":\"SPDX-License\",\"urls\":[\"bzz-raw://99c2e3763bbdd9ed5e1b7652319a97846bf8a1fe39c3c9375aa65ef49737e03f\",\"dweb:/ipfs/QmXji1G6SBthUeqgzAzZLEaey1bk9o4Xb8LGPtBkPSPZDT\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50610d64806100206000396000f3fe608060405234801561001057600080fd5b50600436106100ea5760003560e01c80639054bdec1161008c578063a6f0e57711610066578063a6f0e5771461045c578063b1999937146104a4578063b238ad0e146104e6578063fa93f8831461053c576100ea565b80639054bdec1461034a57806392d66313146103d1578063a324ad2414610417576100ea565b806365c72840116100c857806365c72840146101f35780637f791833146102385780638aa001fc146102a55780638c8d98a0146102ea576100ea565b80633e239e1a146100ef5780634ac1ad781461013457806362ba968714610179575b600080fd5b61011b6004803603602081101561010557600080fd5b8101908080359060200190929190505050610581565b604051808260ff16815260200191505060405180910390f35b6101606004803603602081101561014a57600080fd5b81019080803590602001909291905050506105a8565b604051808260ff16815260200191505060405180910390f35b6101dd600480360360a081101561018f57600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff1690602001909291905050506105cb565b6040518082815260200191505060405180910390f35b61021f6004803603602081101561020957600080fd5b81019080803590602001909291905050506105e7565b604051808260ff16815260200191505060405180910390f35b61028f6004803603608081101561024e57600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff1690602001909291905050506105fd565b6040518082815260200191505060405180910390f35b6102d1600480360360208110156102bb57600080fd5b8101908080359060200190929190505050610618565b604051808260ff16815260200191505060405180910390f35b6103346004803603606081101561030057600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff16906020019092919050505061062c565b6040518082815260200191505060405180910390f35b6103bb600480360360c081101561036057600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190505050610647565b6040518082815260200191505060405180910390f35b6103fd600480360360208110156103e757600080fd5b81019080803590602001909291905050506108cf565b604051808261ffff16815260200191505060405180910390f35b6104436004803603602081101561042d57600080fd5b8101908080359060200190929190505050610978565b604051808260ff16815260200191505060405180910390f35b61048c6004803603602081101561047257600080fd5b81019080803561ffff16906020019092919050505061098e565b60405180821515815260200191505060405180910390f35b6104d0600480360360208110156104ba57600080fd5b8101908080359060200190929190505050610a03565b6040518082815260200191505060405180910390f35b610523600480360360408110156104fc57600080fd5b81019080803560ff169060200190929190803561ffff169060200190929190505050610a36565b604051808260ff16815260200191505060405180910390f35b6105686004803603602081101561055257600080fd5b8101908080359060200190929190505050610b02565b604051808260ff16815260200191505060405180910390f35b60006018603c80848161059057fe5b048161059857fe5b04816105a057fe5b069050919050565b6000600760046201518084816105ba57fe5b0401816105c357fe5b069050919050565b60006105dc86868686866000610647565b905095945050505050565b60006105f282610b1f565b604001519050919050565b600061060e85858585600080610647565b9050949350505050565b6000603c828161062457fe5b069050919050565b600061063e8484846000806000610647565b90509392505050565b6000806107b290505b8761ffff168161ffff161015610693576106698161098e565b1561067c576301e2850082019150610686565b6301e13380820191505b8080600101915050610650565b61069b610cb8565b601f816000600c81106106aa57fe5b602002019060ff16908160ff16815250506106c48961098e565b156106ee57601d816001600c81106106d857fe5b602002019060ff16908160ff168152505061070f565b601c816001600c81106106fd57fe5b602002019060ff16908160ff16815250505b601f816002600c811061071e57fe5b602002019060ff16908160ff1681525050601e816003600c811061073e57fe5b602002019060ff16908160ff1681525050601f816004600c811061075e57fe5b602002019060ff16908160ff1681525050601e816005600c811061077e57fe5b602002019060ff16908160ff1681525050601f816006600c811061079e57fe5b602002019060ff16908160ff1681525050601f816007600c81106107be57fe5b602002019060ff16908160ff1681525050601e816008600c81106107de57fe5b602002019060ff16908160ff1681525050601f816009600c81106107fe57fe5b602002019060ff16908160ff1681525050601e81600a600c811061081e57fe5b602002019060ff16908160ff1681525050601f81600b600c811061083e57fe5b602002019060ff16908160ff1681525050600191505b8760ff168261ffff16101561089457806001830361ffff16600c811061087657fe5b602002015160ff166201518002830192508180600101925050610854565b6001870360ff166201518002830192508560ff16610e1002830192508460ff16603c02830192508360ff168301925050509695505050505050565b600080600090506000806301e1338085816108e657fe5b046107b261ffff160191506109006107b261ffff16610a03565b61090d8361ffff16610a03565b039050806301e285000283019250806107b2830361ffff16036301e1338002830192505b8483111561096d576109456001830361098e565b15610958576301e2850083039250610962565b6301e13380830392505b600182039150610931565b819350505050919050565b600061098382610b1f565b602001519050919050565b60008060048361ffff168161099f57fe5b0661ffff16146109b257600090506109fe565b600060648361ffff16816109c257fe5b0661ffff16146109d557600190506109fe565b60006101908361ffff16816109e657fe5b0661ffff16146109f957600090506109fe565b600190505b919050565b60006001820391506101908281610a1657fe5b0460648381610a2157fe5b0460048481610a2c57fe5b0403019050919050565b600060018360ff161480610a4d575060038360ff16145b80610a5b575060058360ff16145b80610a69575060078360ff16145b80610a77575060088360ff16145b80610a855750600a8360ff16145b80610a935750600c8360ff16145b15610aa157601f9050610afc565b60048360ff161480610ab6575060068360ff16145b80610ac4575060098360ff16145b80610ad25750600b8360ff16145b15610ae057601e9050610afc565b610ae98261098e565b15610af757601d9050610afc565b601c90505b92915050565b6000603c808381610b0f57fe5b0481610b1757fe5b069050919050565b610b27610cdb565b60008080610b34856108cf565b846000019061ffff16908161ffff1681525050610b566107b261ffff16610a03565b610b67856000015161ffff16610a03565b039150816301e285000283019250816107b285600001510361ffff16036301e1338002830192506000600191505b600c8260ff1611610beb57610bae828660000151610a36565b60ff1662015180029050858482011115610bd95781856020019060ff16908160ff1681525050610beb565b80840193508180600101925050610b95565b600191505b610c0285602001518660000151610a36565b60ff168260ff1611610c4757858462015180011115610c325781856040019060ff16908160ff1681525050610c47565b62015180840193508180600101925050610bf0565b610c5086610581565b856060019060ff16908160ff1681525050610c6a86610b02565b856080019060ff16908160ff1681525050610c8486610618565b8560a0019060ff16908160ff1681525050610c9e866105a8565b8560c0019060ff16908160ff168152505050505050919050565b604051806101800160405280600c90602082028036833780820191505090505090565b6040518060e00160405280600061ffff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152509056fea26469706673582212208062d053e8a42f8fcce9f085b2f85491c40070b9b920a45bb6e18acd7068ad5d64736f6c63430007060033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100ea5760003560e01c80639054bdec1161008c578063a6f0e57711610066578063a6f0e5771461045c578063b1999937146104a4578063b238ad0e146104e6578063fa93f8831461053c576100ea565b80639054bdec1461034a57806392d66313146103d1578063a324ad2414610417576100ea565b806365c72840116100c857806365c72840146101f35780637f791833146102385780638aa001fc146102a55780638c8d98a0146102ea576100ea565b80633e239e1a146100ef5780634ac1ad781461013457806362ba968714610179575b600080fd5b61011b6004803603602081101561010557600080fd5b8101908080359060200190929190505050610581565b604051808260ff16815260200191505060405180910390f35b6101606004803603602081101561014a57600080fd5b81019080803590602001909291905050506105a8565b604051808260ff16815260200191505060405180910390f35b6101dd600480360360a081101561018f57600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff1690602001909291905050506105cb565b6040518082815260200191505060405180910390f35b61021f6004803603602081101561020957600080fd5b81019080803590602001909291905050506105e7565b604051808260ff16815260200191505060405180910390f35b61028f6004803603608081101561024e57600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff1690602001909291905050506105fd565b6040518082815260200191505060405180910390f35b6102d1600480360360208110156102bb57600080fd5b8101908080359060200190929190505050610618565b604051808260ff16815260200191505060405180910390f35b6103346004803603606081101561030057600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff16906020019092919050505061062c565b6040518082815260200191505060405180910390f35b6103bb600480360360c081101561036057600080fd5b81019080803561ffff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190803560ff169060200190929190505050610647565b6040518082815260200191505060405180910390f35b6103fd600480360360208110156103e757600080fd5b81019080803590602001909291905050506108cf565b604051808261ffff16815260200191505060405180910390f35b6104436004803603602081101561042d57600080fd5b8101908080359060200190929190505050610978565b604051808260ff16815260200191505060405180910390f35b61048c6004803603602081101561047257600080fd5b81019080803561ffff16906020019092919050505061098e565b60405180821515815260200191505060405180910390f35b6104d0600480360360208110156104ba57600080fd5b8101908080359060200190929190505050610a03565b6040518082815260200191505060405180910390f35b610523600480360360408110156104fc57600080fd5b81019080803560ff169060200190929190803561ffff169060200190929190505050610a36565b604051808260ff16815260200191505060405180910390f35b6105686004803603602081101561055257600080fd5b8101908080359060200190929190505050610b02565b604051808260ff16815260200191505060405180910390f35b60006018603c80848161059057fe5b048161059857fe5b04816105a057fe5b069050919050565b6000600760046201518084816105ba57fe5b0401816105c357fe5b069050919050565b60006105dc86868686866000610647565b905095945050505050565b60006105f282610b1f565b604001519050919050565b600061060e85858585600080610647565b9050949350505050565b6000603c828161062457fe5b069050919050565b600061063e8484846000806000610647565b90509392505050565b6000806107b290505b8761ffff168161ffff161015610693576106698161098e565b1561067c576301e2850082019150610686565b6301e13380820191505b8080600101915050610650565b61069b610cb8565b601f816000600c81106106aa57fe5b602002019060ff16908160ff16815250506106c48961098e565b156106ee57601d816001600c81106106d857fe5b602002019060ff16908160ff168152505061070f565b601c816001600c81106106fd57fe5b602002019060ff16908160ff16815250505b601f816002600c811061071e57fe5b602002019060ff16908160ff1681525050601e816003600c811061073e57fe5b602002019060ff16908160ff1681525050601f816004600c811061075e57fe5b602002019060ff16908160ff1681525050601e816005600c811061077e57fe5b602002019060ff16908160ff1681525050601f816006600c811061079e57fe5b602002019060ff16908160ff1681525050601f816007600c81106107be57fe5b602002019060ff16908160ff1681525050601e816008600c81106107de57fe5b602002019060ff16908160ff1681525050601f816009600c81106107fe57fe5b602002019060ff16908160ff1681525050601e81600a600c811061081e57fe5b602002019060ff16908160ff1681525050601f81600b600c811061083e57fe5b602002019060ff16908160ff1681525050600191505b8760ff168261ffff16101561089457806001830361ffff16600c811061087657fe5b602002015160ff166201518002830192508180600101925050610854565b6001870360ff166201518002830192508560ff16610e1002830192508460ff16603c02830192508360ff168301925050509695505050505050565b600080600090506000806301e1338085816108e657fe5b046107b261ffff160191506109006107b261ffff16610a03565b61090d8361ffff16610a03565b039050806301e285000283019250806107b2830361ffff16036301e1338002830192505b8483111561096d576109456001830361098e565b15610958576301e2850083039250610962565b6301e13380830392505b600182039150610931565b819350505050919050565b600061098382610b1f565b602001519050919050565b60008060048361ffff168161099f57fe5b0661ffff16146109b257600090506109fe565b600060648361ffff16816109c257fe5b0661ffff16146109d557600190506109fe565b60006101908361ffff16816109e657fe5b0661ffff16146109f957600090506109fe565b600190505b919050565b60006001820391506101908281610a1657fe5b0460648381610a2157fe5b0460048481610a2c57fe5b0403019050919050565b600060018360ff161480610a4d575060038360ff16145b80610a5b575060058360ff16145b80610a69575060078360ff16145b80610a77575060088360ff16145b80610a855750600a8360ff16145b80610a935750600c8360ff16145b15610aa157601f9050610afc565b60048360ff161480610ab6575060068360ff16145b80610ac4575060098360ff16145b80610ad25750600b8360ff16145b15610ae057601e9050610afc565b610ae98261098e565b15610af757601d9050610afc565b601c90505b92915050565b6000603c808381610b0f57fe5b0481610b1757fe5b069050919050565b610b27610cdb565b60008080610b34856108cf565b846000019061ffff16908161ffff1681525050610b566107b261ffff16610a03565b610b67856000015161ffff16610a03565b039150816301e285000283019250816107b285600001510361ffff16036301e1338002830192506000600191505b600c8260ff1611610beb57610bae828660000151610a36565b60ff1662015180029050858482011115610bd95781856020019060ff16908160ff1681525050610beb565b80840193508180600101925050610b95565b600191505b610c0285602001518660000151610a36565b60ff168260ff1611610c4757858462015180011115610c325781856040019060ff16908160ff1681525050610c47565b62015180840193508180600101925050610bf0565b610c5086610581565b856060019060ff16908160ff1681525050610c6a86610b02565b856080019060ff16908160ff1681525050610c8486610618565b8560a0019060ff16908160ff1681525050610c9e866105a8565b8560c0019060ff16908160ff168152505050505050919050565b604051806101800160405280600c90602082028036833780820191505090505090565b6040518060e00160405280600061ffff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152602001600060ff168152509056fea26469706673582212208062d053e8a42f8fcce9f085b2f85491c40070b9b920a45bb6e18acd7068ad5d64736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "75:7578:1:-:0;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "75:7578:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4778:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5185:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5711:203;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;4643:125;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5517:184;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5055:120;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5338:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5924:1727;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3523:971;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4504:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;728:382;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;1120:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;1290:571;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4918:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4778:130;4832:5;4894:2;4888;4883;4871:9;:14;;;;;;:19;;;;;;4870:26;;;;;;4857:40;;4778:130;;;:::o;5185:143::-;5242:5;5315:1;5310;469:5;5281:9;:26;;;;;;:30;5280:36;;;;;;5267:50;;5185:143;;;:::o;5711:203::-;5816:14;5857:46;5869:4;5875:5;5882:3;5887:4;5893:6;5901:1;5857:11;:46::i;:::-;5850:53;;5711:203;;;;;;;:::o;4643:125::-;4696:5;4728:25;4743:9;4728:14;:25::i;:::-;:29;;;4721:36;;4643:125;;;:::o;5517:184::-;5608:14;5649:41;5661:4;5667:5;5674:3;5679:4;5685:1;5688;5649:11;:41::i;:::-;5642:48;;5517:184;;;;;;:::o;5055:120::-;5111:5;5161:2;5149:9;:14;;;;;;5136:28;;5055:120;;;:::o;5338:169::-;5417:14;5458:38;5470:4;5476:5;5483:3;5488:1;5491;5494;5458:11;:38::i;:::-;5451:45;;5338:169;;;;;:::o;5924:1727::-;6043:14;6077:8;713:4;6133:15;;6128:313;6154:4;6150:8;;:1;:8;;;6128:313;;;6195:13;6206:1;6195:10;:13::i;:::-;6191:232;;;571:8;6244:33;;;;6191:232;;;516:8;6368:28;;;;6191:232;6160:3;;;;;;;6128:313;;;6484:31;;:::i;:::-;6553:2;6533:14;6548:1;6533:17;;;;;;;;;;:22;;;;;;;;;;;6577:16;6588:4;6577:10;:16::i;:::-;6573:178;;;6641:2;6621:14;6636:1;6621:17;;;;;;;;;;:22;;;;;;;;;;;6573:178;;;6730:2;6710:14;6725:1;6710:17;;;;;;;;;;:22;;;;;;;;;;;6573:178;6788:2;6768:14;6783:1;6768:17;;;;;;;;;;:22;;;;;;;;;;;6828:2;6808:14;6823:1;6808:17;;;;;;;;;;:22;;;;;;;;;;;6868:2;6848:14;6863:1;6848:17;;;;;;;;;;:22;;;;;;;;;;;6908:2;6888:14;6903:1;6888:17;;;;;;;;;;:22;;;;;;;;;;;6948:2;6928:14;6943:1;6928:17;;;;;;;;;;:22;;;;;;;;;;;6988:2;6968:14;6983:1;6968:17;;;;;;;;;;:22;;;;;;;;;;;7028:2;7008:14;7023:1;7008:17;;;;;;;;;;:22;;;;;;;;;;;7068:2;7048:14;7063:1;7048:17;;;;;;;;;;:22;;;;;;;;;;;7109:2;7088:14;7103:2;7088:18;;;;;;;;;;:23;;;;;;;;;;;7150:2;7129:14;7144:2;7129:18;;;;;;;;;;:23;;;;;;;;;;;7180:1;7176:5;;7171:124;7187:5;7183:9;;:1;:9;;;7171:124;;;7255:14;7274:1;7270;:5;7255:21;;;;;;;;;;;;;7238:38;;469:5;7238:38;7225:51;;;;7194:3;;;;;;;7171:124;;;7373:1;7367:3;:7;7349:26;;469:5;7349:26;7336:39;;;;7450:4;7431:24;;622:4;7431:24;7418:37;;;;7534:6;7513:28;;670:2;7513:28;7500:41;;;;7599:6;7586:19;;;;;;7624:16;;5924:1727;;;;;;;;:::o;3523:971::-;3577:6;3603:24;3630:1;3603:28;;3649:11;3678:17;516:8;3766:9;:27;;;;;;713:4;3752:41;;;3738:56;;3851:28;713:4;3851:28;;:15;:28::i;:::-;3827:21;3843:4;3827:21;;:15;:21::i;:::-;:52;3812:67;;3944:12;571:8;3921:35;3898:58;;;;4037:12;713:4;4016;:18;:33;;;516:8;3997:53;3974:76;;;;4069:386;4098:9;4076:19;:31;4069:386;;;4139:28;4164:1;4157:4;:8;4139:10;:28::i;:::-;4135:267;;;571:8;4203:43;;;;4135:267;;;516:8;4337:38;;;;4135:267;4435:1;4427:9;;;;4069:386;;;4479:4;4472:11;;;;;3523:971;;;:::o;4504:129::-;4559:5;4591:25;4606:9;4591:14;:25::i;:::-;:31;;;4584:38;;4504:129;;;:::o;728:382::-;782:4;822:1;817;810:4;:8;;;;;;;;:13;;;806:76;;858:5;851:12;;;;806:76;917:1;910:3;903:4;:10;;;;;;;;:15;;;899:77;;953:4;946:11;;;;899:77;1011:1;1004:3;997:4;:10;;;;;;;;:15;;;993:78;;1047:5;1040:12;;;;993:78;1095:4;1088:11;;728:382;;;;:::o;1120:160::-;1177:4;1209:1;1201:9;;;;1266:3;1259:4;:10;;;;;;1253:3;1246:4;:10;;;;;;1242:1;1235:4;:8;;;;;;:21;:34;1228:41;;1120:160;;;:::o;1290:571::-;1361:5;1399:1;1390:5;:10;;;:24;;;;1413:1;1404:5;:10;;;1390:24;:38;;;;1427:1;1418:5;:10;;;1390:38;:52;;;;1441:1;1432:5;:10;;;1390:52;:66;;;;1455:1;1446:5;:10;;;1390:66;:81;;;;1469:2;1460:5;:11;;;1390:81;:96;;;;1484:2;1475:5;:11;;;1390:96;1386:465;;;1521:2;1514:9;;;;1386:465;1577:1;1568:5;:10;;;:24;;;;1591:1;1582:5;:10;;;1568:24;:38;;;;1605:1;1596:5;:10;;;1568:38;:53;;;;1619:2;1610:5;:11;;;1568:53;1564:287;;;1656:2;1649:9;;;;1564:287;1703:16;1714:4;1703:10;:16::i;:::-;1699:152;;;1754:2;1747:9;;;;1699:152;1830:2;1823:9;;1290:571;;;;;:::o;4918:127::-;4974:5;5031:2;5025;5013:9;:14;;;;;;5012:21;;;;;;4999:35;;4918:127;;;:::o;1871:1642::-;1934:19;;:::i;:::-;1973:24;2019:8;2045:7;2105:18;2113:9;2105:7;:18::i;:::-;2095:2;:7;;:28;;;;;;;;;;;2174;713:4;2174:28;;:15;:28::i;:::-;2147:24;2163:2;:7;;;2147:24;;:15;:24::i;:::-;:55;2141:61;;2267:3;571:8;2244:26;2221:49;;;;2354:3;713:4;2330:2;:7;;;:21;:27;;;516:8;2311:47;2288:70;;;;2402:19;2448:1;2444:5;;2439:385;2456:2;2451:1;:7;;;2439:385;;2525:26;2540:1;2543:2;:7;;;2525:14;:26::i;:::-;2508:43;;469:5;2508:43;2491:60;;2620:9;2598:19;2581:14;:36;:48;2577:166;;;2676:1;2665:2;:8;;:12;;;;;;;;;;;2711:5;;2577:166;2791:14;2768:37;;;;2460:3;;;;;;;2439:385;;;2874:1;2870:5;;2865:328;2882:33;2897:2;:8;;;2907:2;:7;;;2882:14;:33::i;:::-;2877:38;;:1;:38;;;2865:328;;2991:9;2969:19;469:5;2952:36;:48;2948:164;;;3045:1;3036:2;:6;;:10;;;;;;;;;;;3080:5;;2948:164;469:5;3137:37;;;;2917:3;;;;;;;2865:328;;;3245:18;3253:9;3245:7;:18::i;:::-;3235:2;:7;;:28;;;;;;;;;;;3320:20;3330:9;3320;:20::i;:::-;3308:2;:9;;:32;;;;;;;;;;;3397:20;3407:9;3397;:20::i;:::-;3385:2;:9;;:32;;;;;;;;;;;3481:21;3492:9;3481:10;:21::i;:::-;3468:2;:10;;:34;;;;;;;;;;;1871:1642;;;;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o", + "source": "// SPDX-License-Identifier: SPDX-License\npragma solidity >=0.4.21 <0.8.0;\n\ncontract DateTime {\n /*\n * Date and Time utilities for ethereum contracts\n *\n */\n struct _DateTime {\n uint16 year;\n uint8 month;\n uint8 day;\n uint8 hour;\n uint8 minute;\n uint8 second;\n uint8 weekday;\n }\n\n uint constant DAY_IN_SECONDS = 86400;\n uint constant YEAR_IN_SECONDS = 31536000;\n uint constant LEAP_YEAR_IN_SECONDS = 31622400;\n\n uint constant HOUR_IN_SECONDS = 3600;\n uint constant MINUTE_IN_SECONDS = 60;\n\n uint16 constant ORIGIN_YEAR = 1970;\n\n function isLeapYear(uint16 year) public pure returns (bool) {\n if (year % 4 != 0) {\n return false;\n }\n if (year % 100 != 0) {\n return true;\n }\n if (year % 400 != 0) {\n return false;\n }\n return true;\n }\n\n function leapYearsBefore(uint year) public pure returns (uint) {\n year -= 1;\n return year / 4 - year / 100 + year / 400;\n }\n\n function getDaysInMonth(uint8 month, uint16 year) public pure returns (uint8) {\n if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {\n return 31;\n }\n else if (month == 4 || month == 6 || month == 9 || month == 11) {\n return 30;\n }\n else if (isLeapYear(year)) {\n return 29;\n }\n else {\n return 28;\n }\n }\n\n function parseTimestamp(uint timestamp) internal pure returns (_DateTime memory dt) {\n uint secondsAccountedFor = 0;\n uint buf;\n uint8 i;\n\n // Year\n dt.year = getYear(timestamp);\n buf = leapYearsBefore(dt.year) - leapYearsBefore(ORIGIN_YEAR);\n\n secondsAccountedFor += LEAP_YEAR_IN_SECONDS * buf;\n secondsAccountedFor += YEAR_IN_SECONDS * (dt.year - ORIGIN_YEAR - buf);\n\n // Month\n uint secondsInMonth;\n for (i = 1; i <= 12; i++) {\n secondsInMonth = DAY_IN_SECONDS * getDaysInMonth(i, dt.year);\n if (secondsInMonth + secondsAccountedFor > timestamp) {\n dt.month = i;\n break;\n }\n secondsAccountedFor += secondsInMonth;\n }\n\n // Day\n for (i = 1; i <= getDaysInMonth(dt.month, dt.year); i++) {\n if (DAY_IN_SECONDS + secondsAccountedFor > timestamp) {\n dt.day = i;\n break;\n }\n secondsAccountedFor += DAY_IN_SECONDS;\n }\n\n // Hour\n dt.hour = getHour(timestamp);\n\n // Minute\n dt.minute = getMinute(timestamp);\n\n // Second\n dt.second = getSecond(timestamp);\n\n // Day of week.\n dt.weekday = getWeekday(timestamp);\n }\n\n function getYear(uint timestamp) public pure returns (uint16) {\n uint secondsAccountedFor = 0;\n uint16 year;\n uint numLeapYears;\n\n // Year\n year = uint16(ORIGIN_YEAR + timestamp / YEAR_IN_SECONDS);\n numLeapYears = leapYearsBefore(year) - leapYearsBefore(ORIGIN_YEAR);\n\n secondsAccountedFor += LEAP_YEAR_IN_SECONDS * numLeapYears;\n secondsAccountedFor += YEAR_IN_SECONDS * (year - ORIGIN_YEAR - numLeapYears);\n\n while (secondsAccountedFor > timestamp) {\n if (isLeapYear(uint16(year - 1))) {\n secondsAccountedFor -= LEAP_YEAR_IN_SECONDS;\n }\n else {\n secondsAccountedFor -= YEAR_IN_SECONDS;\n }\n year -= 1;\n }\n return year;\n }\n\n function getMonth(uint timestamp) public pure returns (uint8) {\n return parseTimestamp(timestamp).month;\n }\n\n function getDay(uint timestamp) public pure returns (uint8) {\n return parseTimestamp(timestamp).day;\n }\n\n function getHour(uint timestamp) public pure returns (uint8) {\n return uint8((timestamp / 60 / 60) % 24);\n }\n\n function getMinute(uint timestamp) public pure returns (uint8) {\n return uint8((timestamp / 60) % 60);\n }\n\n function getSecond(uint timestamp) public pure returns (uint8) {\n return uint8(timestamp % 60);\n }\n\n function getWeekday(uint timestamp) public pure returns (uint8) {\n return uint8((timestamp / DAY_IN_SECONDS + 4) % 7);\n }\n\n function toTimestamp(uint16 year, uint8 month, uint8 day) public pure returns (uint timestamp) {\n return toTimestamp(year, month, day, 0, 0, 0);\n }\n\n function toTimestamp(uint16 year, uint8 month, uint8 day, uint8 hour) public pure returns (uint timestamp) {\n return toTimestamp(year, month, day, hour, 0, 0);\n }\n\n function toTimestamp(uint16 year, uint8 month, uint8 day, uint8 hour, uint8 minute) public pure returns (uint timestamp) {\n return toTimestamp(year, month, day, hour, minute, 0);\n }\n\n function toTimestamp(uint16 year, uint8 month, uint8 day, uint8 hour, uint8 minute, uint8 second) public pure returns (uint timestamp) {\n uint16 i;\n\n // Year\n for (i = ORIGIN_YEAR; i < year; i++) {\n if (isLeapYear(i)) {\n timestamp += LEAP_YEAR_IN_SECONDS;\n }\n else {\n timestamp += YEAR_IN_SECONDS;\n }\n }\n\n // Month\n uint8[12] memory monthDayCounts;\n monthDayCounts[0] = 31;\n if (isLeapYear(year)) {\n monthDayCounts[1] = 29;\n }\n else {\n monthDayCounts[1] = 28;\n }\n monthDayCounts[2] = 31;\n monthDayCounts[3] = 30;\n monthDayCounts[4] = 31;\n monthDayCounts[5] = 30;\n monthDayCounts[6] = 31;\n monthDayCounts[7] = 31;\n monthDayCounts[8] = 30;\n monthDayCounts[9] = 31;\n monthDayCounts[10] = 30;\n monthDayCounts[11] = 31;\n\n for (i = 1; i < month; i++) {\n timestamp += DAY_IN_SECONDS * monthDayCounts[i - 1];\n }\n\n // Day\n timestamp += DAY_IN_SECONDS * (day - 1);\n\n // Hour\n timestamp += HOUR_IN_SECONDS * (hour);\n\n // Minute\n timestamp += MINUTE_IN_SECONDS * (minute);\n\n // Second\n timestamp += second;\n\n return timestamp;\n }\n}\n", + "sourcePath": "/home/pavansoratur/crypto-boys/src/contracts/DateTime.sol", + "ast": { + "absolutePath": "/home/pavansoratur/crypto-boys/src/contracts/DateTime.sol", + "exportedSymbols": { + "DateTime": [ + 988 + ] + }, + "id": 989, + "license": "SPDX-License", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 215, + "literals": [ + "solidity", + ">=", + "0.4", + ".21", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "41:32:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 988, + "linearizedBaseContracts": [ + 988 + ], + "name": "DateTime", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "DateTime._DateTime", + "id": 230, + "members": [ + { + "constant": false, + "id": 217, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 230, + "src": "231:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 216, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "231:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 219, + "mutability": "mutable", + "name": "month", + "nodeType": "VariableDeclaration", + "scope": 230, + "src": "260:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 218, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "260:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 221, + "mutability": "mutable", + "name": "day", + "nodeType": "VariableDeclaration", + "scope": 230, + "src": "289:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 220, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "289:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 223, + "mutability": "mutable", + "name": "hour", + "nodeType": "VariableDeclaration", + "scope": 230, + "src": "316:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 222, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "316:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 225, + "mutability": "mutable", + "name": "minute", + "nodeType": "VariableDeclaration", + "scope": 230, + "src": "344:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 224, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "344:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 227, + "mutability": "mutable", + "name": "second", + "nodeType": "VariableDeclaration", + "scope": 230, + "src": "374:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 226, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "374:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 229, + "mutability": "mutable", + "name": "weekday", + "nodeType": "VariableDeclaration", + "scope": 230, + "src": "404:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 228, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "404:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "name": "_DateTime", + "nodeType": "StructDefinition", + "scope": 988, + "src": "196:232:1", + "visibility": "public" + }, + { + "constant": true, + "id": 233, + "mutability": "constant", + "name": "DAY_IN_SECONDS", + "nodeType": "VariableDeclaration", + "scope": 988, + "src": "438:36:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 231, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "438:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3836343030", + "id": 232, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "469:5:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_86400_by_1", + "typeString": "int_const 86400" + }, + "value": "86400" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 236, + "mutability": "constant", + "name": "YEAR_IN_SECONDS", + "nodeType": "VariableDeclaration", + "scope": 988, + "src": "484:40:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 234, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "484:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3331353336303030", + "id": 235, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "516:8:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_31536000_by_1", + "typeString": "int_const 31536000" + }, + "value": "31536000" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 239, + "mutability": "constant", + "name": "LEAP_YEAR_IN_SECONDS", + "nodeType": "VariableDeclaration", + "scope": 988, + "src": "534:45:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 237, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "534:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3331363232343030", + "id": 238, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "571:8:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_31622400_by_1", + "typeString": "int_const 31622400" + }, + "value": "31622400" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 242, + "mutability": "constant", + "name": "HOUR_IN_SECONDS", + "nodeType": "VariableDeclaration", + "scope": 988, + "src": "590:36:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 240, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "590:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "33363030", + "id": 241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "622:4:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_3600_by_1", + "typeString": "int_const 3600" + }, + "value": "3600" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 245, + "mutability": "constant", + "name": "MINUTE_IN_SECONDS", + "nodeType": "VariableDeclaration", + "scope": 988, + "src": "636:36:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 243, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "636:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "value": { + "hexValue": "3630", + "id": 244, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "670:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "visibility": "internal" + }, + { + "constant": true, + "id": 248, + "mutability": "constant", + "name": "ORIGIN_YEAR", + "nodeType": "VariableDeclaration", + "scope": 988, + "src": "683:34:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 246, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "683:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "value": { + "hexValue": "31393730", + "id": 247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "713:4:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1970_by_1", + "typeString": "int_const 1970" + }, + "value": "1970" + }, + "visibility": "internal" + }, + { + "body": { + "id": 284, + "nodeType": "Block", + "src": "788:322:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 259, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 257, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 255, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 250, + "src": "810:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "34", + "id": 256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "817:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "810:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 258, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "822:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "810:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 263, + "nodeType": "IfStatement", + "src": "806:76:1", + "trueBody": { + "id": 262, + "nodeType": "Block", + "src": "825:57:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 260, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "858:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 254, + "id": 261, + "nodeType": "Return", + "src": "851:12:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 264, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 250, + "src": "903:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "313030", + "id": 265, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "910:3:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "903:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "917:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "903:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 272, + "nodeType": "IfStatement", + "src": "899:77:1", + "trueBody": { + "id": 271, + "nodeType": "Block", + "src": "920:56:1", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 269, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "953:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 254, + "id": 270, + "nodeType": "Return", + "src": "946:11:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 277, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 273, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 250, + "src": "997:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "343030", + "id": 274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1004:3:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_400_by_1", + "typeString": "int_const 400" + }, + "value": "400" + }, + "src": "997:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1011:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "997:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 281, + "nodeType": "IfStatement", + "src": "993:78:1", + "trueBody": { + "id": 280, + "nodeType": "Block", + "src": "1014:57:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1047:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 254, + "id": 279, + "nodeType": "Return", + "src": "1040:12:1" + } + ] + } + }, + { + "expression": { + "hexValue": "74727565", + "id": 282, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1095:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 254, + "id": 283, + "nodeType": "Return", + "src": "1088:11:1" + } + ] + }, + "functionSelector": "a6f0e577", + "id": 285, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isLeapYear", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 251, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 250, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "748:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 249, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "748:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "src": "747:13:1" + }, + "returnParameters": { + "id": 254, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 253, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 285, + "src": "782:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 252, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "782:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "781:6:1" + }, + "scope": 988, + "src": "728:382:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 308, + "nodeType": "Block", + "src": "1183:97:1", + "statements": [ + { + "expression": { + "id": 294, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 292, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "1201:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "31", + "id": 293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1209:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1201:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 295, + "nodeType": "ExpressionStatement", + "src": "1201:9:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 306, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 298, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 296, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "1235:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "34", + "id": 297, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1242:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "1235:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 301, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 299, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "1246:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "313030", + "id": 300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1253:3:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_100_by_1", + "typeString": "int_const 100" + }, + "value": "100" + }, + "src": "1246:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1235:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 305, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 303, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 287, + "src": "1259:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "343030", + "id": 304, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1266:3:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_400_by_1", + "typeString": "int_const 400" + }, + "value": "400" + }, + "src": "1259:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "1235:34:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 291, + "id": 307, + "nodeType": "Return", + "src": "1228:41:1" + } + ] + }, + "functionSelector": "b1999937", + "id": 309, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "leapYearsBefore", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 288, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 287, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 309, + "src": "1145:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 286, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1145:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1144:11:1" + }, + "returnParameters": { + "id": 291, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 290, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 309, + "src": "1177:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 289, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1177:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1176:6:1" + }, + "scope": 988, + "src": "1120:160:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 378, + "nodeType": "Block", + "src": "1368:493:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 340, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 332, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 328, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 324, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 320, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 318, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "1390:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "31", + "id": 319, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1399:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "1390:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 321, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "1404:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "33", + "id": 322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1413:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "src": "1404:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1390:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 325, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "1418:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "35", + "id": 326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1427:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "src": "1418:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1390:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 331, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 329, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "1432:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "37", + "id": 330, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1441:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "src": "1432:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1390:52:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 335, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 333, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "1446:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "38", + "id": 334, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1455:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "src": "1446:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1390:66:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 339, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 337, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "1460:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3130", + "id": 338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1469:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "1460:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1390:81:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 343, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 341, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "1475:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3132", + "id": 342, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1484:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "1475:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1390:96:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 358, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 354, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 350, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 348, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "1568:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "34", + "id": 349, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1577:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "1568:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 353, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 351, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "1582:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "36", + "id": 352, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1591:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "src": "1582:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1568:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 357, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 355, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "1596:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "39", + "id": 356, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1605:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "src": "1596:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1568:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 359, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 311, + "src": "1610:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "3131", + "id": 360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1619:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_11_by_1", + "typeString": "int_const 11" + }, + "value": "11" + }, + "src": "1610:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "1568:53:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "condition": { + "arguments": [ + { + "id": 367, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 313, + "src": "1714:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 366, + "name": "isLeapYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 285, + "src": "1703:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint16) pure returns (bool)" + } + }, + "id": 368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "1703:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 374, + "nodeType": "Block", + "src": "1797:54:1", + "statements": [ + { + "expression": { + "hexValue": "3238", + "id": 372, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1830:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_28_by_1", + "typeString": "int_const 28" + }, + "value": "28" + }, + "functionReturnParameters": 317, + "id": 373, + "nodeType": "Return", + "src": "1823:9:1" + } + ] + }, + "id": 375, + "nodeType": "IfStatement", + "src": "1699:152:1", + "trueBody": { + "id": 371, + "nodeType": "Block", + "src": "1721:54:1", + "statements": [ + { + "expression": { + "hexValue": "3239", + "id": 369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1754:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_29_by_1", + "typeString": "int_const 29" + }, + "value": "29" + }, + "functionReturnParameters": 317, + "id": 370, + "nodeType": "Return", + "src": "1747:9:1" + } + ] + } + }, + "id": 376, + "nodeType": "IfStatement", + "src": "1564:287:1", + "trueBody": { + "id": 365, + "nodeType": "Block", + "src": "1623:54:1", + "statements": [ + { + "expression": { + "hexValue": "3330", + "id": 363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1656:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_30_by_1", + "typeString": "int_const 30" + }, + "value": "30" + }, + "functionReturnParameters": 317, + "id": 364, + "nodeType": "Return", + "src": "1649:9:1" + } + ] + } + }, + "id": 377, + "nodeType": "IfStatement", + "src": "1386:465:1", + "trueBody": { + "id": 347, + "nodeType": "Block", + "src": "1488:54:1", + "statements": [ + { + "expression": { + "hexValue": "3331", + "id": 345, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "1521:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "functionReturnParameters": 317, + "id": 346, + "nodeType": "Return", + "src": "1514:9:1" + } + ] + } + } + ] + }, + "functionSelector": "b238ad0e", + "id": 379, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDaysInMonth", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 314, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 311, + "mutability": "mutable", + "name": "month", + "nodeType": "VariableDeclaration", + "scope": 379, + "src": "1314:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 310, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1314:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 313, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 379, + "src": "1327:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 312, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "1327:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "src": "1313:26:1" + }, + "returnParameters": { + "id": 317, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 316, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 379, + "src": "1361:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 315, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "1361:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "1360:7:1" + }, + "scope": 988, + "src": "1290:571:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 543, + "nodeType": "Block", + "src": "1955:1558:1", + "statements": [ + { + "assignments": [ + 387 + ], + "declarations": [ + { + "constant": false, + "id": 387, + "mutability": "mutable", + "name": "secondsAccountedFor", + "nodeType": "VariableDeclaration", + "scope": 543, + "src": "1973:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 386, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1973:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 389, + "initialValue": { + "hexValue": "30", + "id": 388, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2000:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "1973:28:1" + }, + { + "assignments": [ + 391 + ], + "declarations": [ + { + "constant": false, + "id": 391, + "mutability": "mutable", + "name": "buf", + "nodeType": "VariableDeclaration", + "scope": 543, + "src": "2019:8:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 390, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2019:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 392, + "nodeType": "VariableDeclarationStatement", + "src": "2019:8:1" + }, + { + "assignments": [ + 394 + ], + "declarations": [ + { + "constant": false, + "id": 394, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 543, + "src": "2045:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 393, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "2045:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "id": 395, + "nodeType": "VariableDeclarationStatement", + "src": "2045:7:1" + }, + { + "expression": { + "id": 402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 396, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "2095:2:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$230_memory_ptr", + "typeString": "struct DateTime._DateTime memory" + } + }, + "id": 398, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "year", + "nodeType": "MemberAccess", + "referencedDeclaration": 217, + "src": "2095:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 400, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "2113:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 399, + "name": "getYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 630, + "src": "2105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint16_$", + "typeString": "function (uint256) pure returns (uint16)" + } + }, + "id": 401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2105:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "2095:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 403, + "nodeType": "ExpressionStatement", + "src": "2095:28:1" + }, + { + "expression": { + "id": 413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 404, + "name": "buf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 391, + "src": "2141:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "expression": { + "id": 406, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "2163:2:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$230_memory_ptr", + "typeString": "struct DateTime._DateTime memory" + } + }, + "id": 407, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "year", + "nodeType": "MemberAccess", + "referencedDeclaration": 217, + "src": "2163:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 405, + "name": "leapYearsBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "2147:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 408, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2147:24:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "id": 410, + "name": "ORIGIN_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "2190:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 409, + "name": "leapYearsBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "2174:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 411, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2174:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2147:55:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2141:61:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 414, + "nodeType": "ExpressionStatement", + "src": "2141:61:1" + }, + { + "expression": { + "id": 419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 415, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "2221:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 418, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 416, + "name": "LEAP_YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "2244:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 417, + "name": "buf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 391, + "src": "2267:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2244:26:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2221:49:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 420, + "nodeType": "ExpressionStatement", + "src": "2221:49:1" + }, + { + "expression": { + "id": 431, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 421, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "2288:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 430, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 422, + "name": "YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 236, + "src": "2311:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 428, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 426, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 423, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "2330:2:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$230_memory_ptr", + "typeString": "struct DateTime._DateTime memory" + } + }, + "id": 424, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "year", + "nodeType": "MemberAccess", + "referencedDeclaration": 217, + "src": "2330:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 425, + "name": "ORIGIN_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "2340:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "2330:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 427, + "name": "buf", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 391, + "src": "2354:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2330:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 429, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "2329:29:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2311:47:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2288:70:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 432, + "nodeType": "ExpressionStatement", + "src": "2288:70:1" + }, + { + "assignments": [ + 434 + ], + "declarations": [ + { + "constant": false, + "id": 434, + "mutability": "mutable", + "name": "secondsInMonth", + "nodeType": "VariableDeclaration", + "scope": 543, + "src": "2402:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 433, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "2402:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 435, + "nodeType": "VariableDeclarationStatement", + "src": "2402:19:1" + }, + { + "body": { + "id": 474, + "nodeType": "Block", + "src": "2465:359:1", + "statements": [ + { + "expression": { + "id": 454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 446, + "name": "secondsInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "2491:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 447, + "name": "DAY_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2508:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "arguments": [ + { + "id": 449, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 394, + "src": "2540:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "expression": { + "id": 450, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "2543:2:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$230_memory_ptr", + "typeString": "struct DateTime._DateTime memory" + } + }, + "id": 451, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "year", + "nodeType": "MemberAccess", + "referencedDeclaration": 217, + "src": "2543:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 448, + "name": "getDaysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 379, + "src": "2525:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint16_$returns$_t_uint8_$", + "typeString": "function (uint8,uint16) pure returns (uint8)" + } + }, + "id": 452, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2525:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "2508:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2491:60:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 455, + "nodeType": "ExpressionStatement", + "src": "2491:60:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 460, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 456, + "name": "secondsInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "2581:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 457, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "2598:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2581:36:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 459, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "2620:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2581:48:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 469, + "nodeType": "IfStatement", + "src": "2577:166:1", + "trueBody": { + "id": 468, + "nodeType": "Block", + "src": "2631:112:1", + "statements": [ + { + "expression": { + "id": 465, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 461, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "2665:2:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$230_memory_ptr", + "typeString": "struct DateTime._DateTime memory" + } + }, + "id": 463, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "month", + "nodeType": "MemberAccess", + "referencedDeclaration": 219, + "src": "2665:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 464, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 394, + "src": "2676:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "2665:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 466, + "nodeType": "ExpressionStatement", + "src": "2665:12:1" + }, + { + "id": 467, + "nodeType": "Break", + "src": "2711:5:1" + } + ] + } + }, + { + "expression": { + "id": 472, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 470, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "2768:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 471, + "name": "secondsInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 434, + "src": "2791:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2768:37:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 473, + "nodeType": "ExpressionStatement", + "src": "2768:37:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 440, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 394, + "src": "2451:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "hexValue": "3132", + "id": 441, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2456:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "src": "2451:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 475, + "initializationExpression": { + "expression": { + "id": 438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 436, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 394, + "src": "2444:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 437, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2448:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2444:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 439, + "nodeType": "ExpressionStatement", + "src": "2444:5:1" + }, + "loopExpression": { + "expression": { + "id": 444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2460:3:1", + "subExpression": { + "id": 443, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 394, + "src": "2460:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 445, + "nodeType": "ExpressionStatement", + "src": "2460:3:1" + }, + "nodeType": "ForStatement", + "src": "2439:385:1" + }, + { + "body": { + "id": 509, + "nodeType": "Block", + "src": "2922:271:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 495, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 493, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 491, + "name": "DAY_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "2952:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 492, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "2969:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2952:36:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 494, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "2991:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "2952:48:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 504, + "nodeType": "IfStatement", + "src": "2948:164:1", + "trueBody": { + "id": 503, + "nodeType": "Block", + "src": "3002:110:1", + "statements": [ + { + "expression": { + "id": 500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 496, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "3036:2:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$230_memory_ptr", + "typeString": "struct DateTime._DateTime memory" + } + }, + "id": 498, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "day", + "nodeType": "MemberAccess", + "referencedDeclaration": 221, + "src": "3036:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 499, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 394, + "src": "3045:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3036:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 501, + "nodeType": "ExpressionStatement", + "src": "3036:10:1" + }, + { + "id": 502, + "nodeType": "Break", + "src": "3080:5:1" + } + ] + } + }, + { + "expression": { + "id": 507, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 505, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 387, + "src": "3137:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 506, + "name": "DAY_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "3160:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3137:37:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 508, + "nodeType": "ExpressionStatement", + "src": "3137:37:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 487, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 480, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 394, + "src": "2877:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "arguments": [ + { + "expression": { + "id": 482, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "2897:2:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$230_memory_ptr", + "typeString": "struct DateTime._DateTime memory" + } + }, + "id": 483, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "month", + "nodeType": "MemberAccess", + "referencedDeclaration": 219, + "src": "2897:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "expression": { + "id": 484, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "2907:2:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$230_memory_ptr", + "typeString": "struct DateTime._DateTime memory" + } + }, + "id": 485, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "year", + "nodeType": "MemberAccess", + "referencedDeclaration": 217, + "src": "2907:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 481, + "name": "getDaysInMonth", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 379, + "src": "2882:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint8_$_t_uint16_$returns$_t_uint8_$", + "typeString": "function (uint8,uint16) pure returns (uint8)" + } + }, + "id": 486, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "2882:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "2877:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 510, + "initializationExpression": { + "expression": { + "id": 478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 476, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 394, + "src": "2870:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 477, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "2874:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "2870:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 479, + "nodeType": "ExpressionStatement", + "src": "2870:5:1" + }, + "loopExpression": { + "expression": { + "id": 489, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "2917:3:1", + "subExpression": { + "id": 488, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 394, + "src": "2917:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 490, + "nodeType": "ExpressionStatement", + "src": "2917:3:1" + }, + "nodeType": "ForStatement", + "src": "2865:328:1" + }, + { + "expression": { + "id": 517, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 511, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "3235:2:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$230_memory_ptr", + "typeString": "struct DateTime._DateTime memory" + } + }, + "id": 513, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "hour", + "nodeType": "MemberAccess", + "referencedDeclaration": 223, + "src": "3235:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 515, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "3253:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 514, + "name": "getHour", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 676, + "src": "3245:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint8_$", + "typeString": "function (uint256) pure returns (uint8)" + } + }, + "id": 516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3245:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3235:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 518, + "nodeType": "ExpressionStatement", + "src": "3235:28:1" + }, + { + "expression": { + "id": 525, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 519, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "3308:2:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$230_memory_ptr", + "typeString": "struct DateTime._DateTime memory" + } + }, + "id": 521, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "minute", + "nodeType": "MemberAccess", + "referencedDeclaration": 225, + "src": "3308:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 523, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "3330:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 522, + "name": "getMinute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 694, + "src": "3320:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint8_$", + "typeString": "function (uint256) pure returns (uint8)" + } + }, + "id": 524, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3320:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3308:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 526, + "nodeType": "ExpressionStatement", + "src": "3308:32:1" + }, + { + "expression": { + "id": 533, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 527, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "3385:2:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$230_memory_ptr", + "typeString": "struct DateTime._DateTime memory" + } + }, + "id": 529, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "second", + "nodeType": "MemberAccess", + "referencedDeclaration": 227, + "src": "3385:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 531, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "3407:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 530, + "name": "getSecond", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 709, + "src": "3397:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint8_$", + "typeString": "function (uint256) pure returns (uint8)" + } + }, + "id": 532, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3397:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3385:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 534, + "nodeType": "ExpressionStatement", + "src": "3385:32:1" + }, + { + "expression": { + "id": 541, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "id": 535, + "name": "dt", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 384, + "src": "3468:2:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$230_memory_ptr", + "typeString": "struct DateTime._DateTime memory" + } + }, + "id": 537, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "weekday", + "nodeType": "MemberAccess", + "referencedDeclaration": 229, + "src": "3468:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "id": 539, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 381, + "src": "3492:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 538, + "name": "getWeekday", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 729, + "src": "3481:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint8_$", + "typeString": "function (uint256) pure returns (uint8)" + } + }, + "id": 540, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3481:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "3468:34:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 542, + "nodeType": "ExpressionStatement", + "src": "3468:34:1" + } + ] + }, + "id": 544, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "parseTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 382, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 381, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 544, + "src": "1895:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 380, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "1895:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "1894:16:1" + }, + "returnParameters": { + "id": 385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 384, + "mutability": "mutable", + "name": "dt", + "nodeType": "VariableDeclaration", + "scope": 544, + "src": "1934:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$230_memory_ptr", + "typeString": "struct DateTime._DateTime" + }, + "typeName": { + "id": 383, + "name": "_DateTime", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 230, + "src": "1934:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$230_storage_ptr", + "typeString": "struct DateTime._DateTime" + } + }, + "visibility": "internal" + } + ], + "src": "1933:21:1" + }, + "scope": 988, + "src": "1871:1642:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 629, + "nodeType": "Block", + "src": "3585:909:1", + "statements": [ + { + "assignments": [ + 552 + ], + "declarations": [ + { + "constant": false, + "id": 552, + "mutability": "mutable", + "name": "secondsAccountedFor", + "nodeType": "VariableDeclaration", + "scope": 629, + "src": "3603:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 551, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3603:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 554, + "initialValue": { + "hexValue": "30", + "id": 553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "3630:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "nodeType": "VariableDeclarationStatement", + "src": "3603:28:1" + }, + { + "assignments": [ + 556 + ], + "declarations": [ + { + "constant": false, + "id": 556, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 629, + "src": "3649:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 555, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3649:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "id": 557, + "nodeType": "VariableDeclarationStatement", + "src": "3649:11:1" + }, + { + "assignments": [ + 559 + ], + "declarations": [ + { + "constant": false, + "id": 559, + "mutability": "mutable", + "name": "numLeapYears", + "nodeType": "VariableDeclaration", + "scope": 629, + "src": "3678:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 558, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3678:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 560, + "nodeType": "VariableDeclarationStatement", + "src": "3678:17:1" + }, + { + "expression": { + "id": 570, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 561, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 556, + "src": "3738:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 568, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 564, + "name": "ORIGIN_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "3752:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 567, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 565, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 546, + "src": "3766:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 566, + "name": "YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 236, + "src": "3778:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3766:27:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3752:41:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 563, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "3745:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 562, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3745:6:1", + "typeDescriptions": {} + } + }, + "id": 569, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3745:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "3738:56:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 571, + "nodeType": "ExpressionStatement", + "src": "3738:56:1" + }, + { + "expression": { + "id": 580, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 572, + "name": "numLeapYears", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "3812:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 579, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 574, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 556, + "src": "3843:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 573, + "name": "leapYearsBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "3827:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 575, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3827:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "arguments": [ + { + "id": 577, + "name": "ORIGIN_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "3867:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 576, + "name": "leapYearsBefore", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 309, + "src": "3851:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_uint256_$", + "typeString": "function (uint256) pure returns (uint256)" + } + }, + "id": 578, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "3851:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3827:52:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3812:67:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 581, + "nodeType": "ExpressionStatement", + "src": "3812:67:1" + }, + { + "expression": { + "id": 586, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 582, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 552, + "src": "3898:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 585, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 583, + "name": "LEAP_YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "3921:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 584, + "name": "numLeapYears", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "3944:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3921:35:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3898:58:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 587, + "nodeType": "ExpressionStatement", + "src": "3898:58:1" + }, + { + "expression": { + "id": 597, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 588, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 552, + "src": "3974:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 596, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 589, + "name": "YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 236, + "src": "3997:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 594, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 592, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 590, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 556, + "src": "4016:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 591, + "name": "ORIGIN_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "4023:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "4016:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 593, + "name": "numLeapYears", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 559, + "src": "4037:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4016:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 595, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4015:35:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3997:53:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "3974:76:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 598, + "nodeType": "ExpressionStatement", + "src": "3974:76:1" + }, + { + "body": { + "id": 625, + "nodeType": "Block", + "src": "4109:346:1", + "statements": [ + { + "condition": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 605, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 556, + "src": "4157:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 606, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4164:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4157:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 604, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4150:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint16_$", + "typeString": "type(uint16)" + }, + "typeName": { + "id": 603, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "4150:6:1", + "typeDescriptions": {} + } + }, + "id": 608, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4150:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 602, + "name": "isLeapYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 285, + "src": "4139:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint16) pure returns (bool)" + } + }, + "id": 609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4139:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 619, + "nodeType": "Block", + "src": "4303:99:1", + "statements": [ + { + "expression": { + "id": 617, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 615, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 552, + "src": "4337:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 616, + "name": "YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 236, + "src": "4360:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4337:38:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 618, + "nodeType": "ExpressionStatement", + "src": "4337:38:1" + } + ] + }, + "id": 620, + "nodeType": "IfStatement", + "src": "4135:267:1", + "trueBody": { + "id": 614, + "nodeType": "Block", + "src": "4169:104:1", + "statements": [ + { + "expression": { + "id": 612, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 610, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 552, + "src": "4203:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "id": 611, + "name": "LEAP_YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "4226:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4203:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 613, + "nodeType": "ExpressionStatement", + "src": "4203:43:1" + } + ] + } + }, + { + "expression": { + "id": 623, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 621, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 556, + "src": "4427:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Assignment", + "operator": "-=", + "rightHandSide": { + "hexValue": "31", + "id": 622, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4435:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "4427:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 624, + "nodeType": "ExpressionStatement", + "src": "4427:9:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 601, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 599, + "name": "secondsAccountedFor", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 552, + "src": "4076:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 600, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 546, + "src": "4098:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "4076:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 626, + "nodeType": "WhileStatement", + "src": "4069:386:1" + }, + { + "expression": { + "id": 627, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 556, + "src": "4479:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "functionReturnParameters": 550, + "id": 628, + "nodeType": "Return", + "src": "4472:11:1" + } + ] + }, + "functionSelector": "92d66313", + "id": 630, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getYear", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 547, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 546, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 630, + "src": "3540:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 545, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "3540:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3539:16:1" + }, + "returnParameters": { + "id": 550, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 549, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 630, + "src": "3577:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 548, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "3577:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "src": "3576:8:1" + }, + "scope": 988, + "src": "3523:971:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 642, + "nodeType": "Block", + "src": "4566:67:1", + "statements": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 638, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 632, + "src": "4606:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 637, + "name": "parseTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 544, + "src": "4591:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_struct$__DateTime_$230_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct DateTime._DateTime memory)" + } + }, + "id": 639, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4591:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$230_memory_ptr", + "typeString": "struct DateTime._DateTime memory" + } + }, + "id": 640, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "month", + "nodeType": "MemberAccess", + "referencedDeclaration": 219, + "src": "4591:31:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 636, + "id": 641, + "nodeType": "Return", + "src": "4584:38:1" + } + ] + }, + "functionSelector": "a324ad24", + "id": 643, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMonth", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 633, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 632, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 643, + "src": "4522:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 631, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4522:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4521:16:1" + }, + "returnParameters": { + "id": 636, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 643, + "src": "4559:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 634, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4559:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "4558:7:1" + }, + "scope": 988, + "src": "4504:129:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 655, + "nodeType": "Block", + "src": "4703:65:1", + "statements": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 651, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 645, + "src": "4743:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 650, + "name": "parseTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 544, + "src": "4728:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_struct$__DateTime_$230_memory_ptr_$", + "typeString": "function (uint256) pure returns (struct DateTime._DateTime memory)" + } + }, + "id": 652, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4728:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$__DateTime_$230_memory_ptr", + "typeString": "struct DateTime._DateTime memory" + } + }, + "id": 653, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "day", + "nodeType": "MemberAccess", + "referencedDeclaration": 221, + "src": "4728:29:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 649, + "id": 654, + "nodeType": "Return", + "src": "4721:36:1" + } + ] + }, + "functionSelector": "65c72840", + "id": 656, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getDay", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4659:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 644, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4659:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4658:16:1" + }, + "returnParameters": { + "id": 649, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 648, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 656, + "src": "4696:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 647, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4696:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "4695:7:1" + }, + "scope": 988, + "src": "4643:125:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 675, + "nodeType": "Block", + "src": "4839:69:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 672, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 669, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 667, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 665, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 658, + "src": "4871:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "3630", + "id": 666, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4883:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "4871:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "3630", + "id": 668, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4888:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "4871:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 670, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "4870:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3234", + "id": 671, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "4894:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_24_by_1", + "typeString": "int_const 24" + }, + "value": "24" + }, + "src": "4870:26:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 664, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "4864:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 663, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4864:5:1", + "typeDescriptions": {} + } + }, + "id": 673, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "4864:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 662, + "id": 674, + "nodeType": "Return", + "src": "4857:40:1" + } + ] + }, + "functionSelector": "3e239e1a", + "id": 676, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getHour", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 659, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 658, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 676, + "src": "4795:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 657, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4795:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4794:16:1" + }, + "returnParameters": { + "id": 662, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 661, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 676, + "src": "4832:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 660, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4832:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "4831:7:1" + }, + "scope": 988, + "src": "4778:130:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 693, + "nodeType": "Block", + "src": "4981:64:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 690, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 687, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 685, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 678, + "src": "5013:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "hexValue": "3630", + "id": 686, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5025:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "5013:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 688, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5012:16:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3630", + "id": 689, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5031:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "5012:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 684, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5006:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 683, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5006:5:1", + "typeDescriptions": {} + } + }, + "id": 691, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5006:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 682, + "id": 692, + "nodeType": "Return", + "src": "4999:35:1" + } + ] + }, + "functionSelector": "fa93f883", + "id": 694, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getMinute", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 679, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 678, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 694, + "src": "4937:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 677, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "4937:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4936:16:1" + }, + "returnParameters": { + "id": 682, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 681, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 694, + "src": "4974:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 680, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "4974:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "4973:7:1" + }, + "scope": 988, + "src": "4918:127:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 708, + "nodeType": "Block", + "src": "5118:57:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 705, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 703, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 696, + "src": "5149:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3630", + "id": 704, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5161:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_60_by_1", + "typeString": "int_const 60" + }, + "value": "60" + }, + "src": "5149:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 702, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5143:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 701, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5143:5:1", + "typeDescriptions": {} + } + }, + "id": 706, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5143:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 700, + "id": 707, + "nodeType": "Return", + "src": "5136:28:1" + } + ] + }, + "functionSelector": "8aa001fc", + "id": 709, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getSecond", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 697, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 696, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 709, + "src": "5074:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 695, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5074:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5073:16:1" + }, + "returnParameters": { + "id": 700, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 699, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 709, + "src": "5111:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 698, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5111:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "5110:7:1" + }, + "scope": 988, + "src": "5055:120:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 728, + "nodeType": "Block", + "src": "5249:79:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 722, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 720, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 718, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 711, + "src": "5281:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 719, + "name": "DAY_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "5293:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "5281:26:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "34", + "id": 721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5310:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "src": "5281:30:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 723, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "5280:32:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "37", + "id": 724, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5315:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "src": "5280:36:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 717, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "5274:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 716, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5274:5:1", + "typeDescriptions": {} + } + }, + "id": 726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5274:43:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "functionReturnParameters": 715, + "id": 727, + "nodeType": "Return", + "src": "5267:50:1" + } + ] + }, + "functionSelector": "4ac1ad78", + "id": 729, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getWeekday", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 712, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 711, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "5205:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 710, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5205:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5204:16:1" + }, + "returnParameters": { + "id": 715, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 729, + "src": "5242:5:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 713, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5242:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "5241:7:1" + }, + "scope": 988, + "src": "5185:143:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 749, + "nodeType": "Block", + "src": "5433:74:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 741, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 731, + "src": "5470:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "id": 742, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "5476:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 743, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 735, + "src": "5483:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "hexValue": "30", + "id": 744, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5488:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5491:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 746, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5494:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 740, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 750, + 773, + 798, + 987 + ], + "referencedDeclaration": 987, + "src": "5458:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint8_$_t_uint8_$_t_uint8_$_t_uint8_$_t_uint8_$returns$_t_uint256_$", + "typeString": "function (uint16,uint8,uint8,uint8,uint8,uint8) pure returns (uint256)" + } + }, + "id": 747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5458:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 739, + "id": 748, + "nodeType": "Return", + "src": "5451:45:1" + } + ] + }, + "functionSelector": "8c8d98a0", + "id": 750, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 736, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 731, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 750, + "src": "5359:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 730, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "5359:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 733, + "mutability": "mutable", + "name": "month", + "nodeType": "VariableDeclaration", + "scope": 750, + "src": "5372:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 732, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5372:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 735, + "mutability": "mutable", + "name": "day", + "nodeType": "VariableDeclaration", + "scope": 750, + "src": "5385:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 734, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5385:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "5358:37:1" + }, + "returnParameters": { + "id": 739, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 738, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 750, + "src": "5417:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 737, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5417:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5416:16:1" + }, + "scope": 988, + "src": "5338:169:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 772, + "nodeType": "Block", + "src": "5624:77:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 764, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 752, + "src": "5661:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "id": 765, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 754, + "src": "5667:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 766, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 756, + "src": "5674:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 767, + "name": "hour", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 758, + "src": "5679:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "hexValue": "30", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5685:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "hexValue": "30", + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5688:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 763, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 750, + 773, + 798, + 987 + ], + "referencedDeclaration": 987, + "src": "5649:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint8_$_t_uint8_$_t_uint8_$_t_uint8_$_t_uint8_$returns$_t_uint256_$", + "typeString": "function (uint16,uint8,uint8,uint8,uint8,uint8) pure returns (uint256)" + } + }, + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5649:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 762, + "id": 771, + "nodeType": "Return", + "src": "5642:48:1" + } + ] + }, + "functionSelector": "7f791833", + "id": 773, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 759, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 752, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 773, + "src": "5538:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 751, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "5538:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 754, + "mutability": "mutable", + "name": "month", + "nodeType": "VariableDeclaration", + "scope": 773, + "src": "5551:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 753, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5551:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 756, + "mutability": "mutable", + "name": "day", + "nodeType": "VariableDeclaration", + "scope": 773, + "src": "5564:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 755, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5564:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 758, + "mutability": "mutable", + "name": "hour", + "nodeType": "VariableDeclaration", + "scope": 773, + "src": "5575:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 757, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "5537:49:1" + }, + "returnParameters": { + "id": 762, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 761, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 773, + "src": "5608:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 760, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5608:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5607:16:1" + }, + "scope": 988, + "src": "5517:184:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 797, + "nodeType": "Block", + "src": "5832:82:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 789, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 775, + "src": "5869:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + { + "id": 790, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 777, + "src": "5875:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 791, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 779, + "src": "5882:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 792, + "name": "hour", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 781, + "src": "5887:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "id": 793, + "name": "minute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 783, + "src": "5893:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + { + "hexValue": "30", + "id": 794, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "5901:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 788, + "name": "toTimestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 750, + 773, + 798, + 987 + ], + "referencedDeclaration": 987, + "src": "5857:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$_t_uint8_$_t_uint8_$_t_uint8_$_t_uint8_$_t_uint8_$returns$_t_uint256_$", + "typeString": "function (uint16,uint8,uint8,uint8,uint8,uint8) pure returns (uint256)" + } + }, + "id": 795, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "5857:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 787, + "id": 796, + "nodeType": "Return", + "src": "5850:53:1" + } + ] + }, + "functionSelector": "62ba9687", + "id": 798, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 784, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 775, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 798, + "src": "5732:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 774, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "5732:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 777, + "mutability": "mutable", + "name": "month", + "nodeType": "VariableDeclaration", + "scope": 798, + "src": "5745:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 776, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5745:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 779, + "mutability": "mutable", + "name": "day", + "nodeType": "VariableDeclaration", + "scope": 798, + "src": "5758:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 778, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5758:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 781, + "mutability": "mutable", + "name": "hour", + "nodeType": "VariableDeclaration", + "scope": 798, + "src": "5769:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 780, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5769:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 783, + "mutability": "mutable", + "name": "minute", + "nodeType": "VariableDeclaration", + "scope": 798, + "src": "5781:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 782, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5781:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "5731:63:1" + }, + "returnParameters": { + "id": 787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 798, + "src": "5816:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 785, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "5816:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5815:16:1" + }, + "scope": 988, + "src": "5711:203:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 986, + "nodeType": "Block", + "src": "6059:1592:1", + "statements": [ + { + "assignments": [ + 816 + ], + "declarations": [ + { + "constant": false, + "id": 816, + "mutability": "mutable", + "name": "i", + "nodeType": "VariableDeclaration", + "scope": 986, + "src": "6077:8:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 815, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "6077:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + } + ], + "id": 817, + "nodeType": "VariableDeclarationStatement", + "src": "6077:8:1" + }, + { + "body": { + "id": 842, + "nodeType": "Block", + "src": "6165:276:1", + "statements": [ + { + "condition": { + "arguments": [ + { + "id": 829, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 816, + "src": "6206:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 828, + "name": "isLeapYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 285, + "src": "6195:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint16) pure returns (bool)" + } + }, + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6195:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 840, + "nodeType": "Block", + "src": "6334:89:1", + "statements": [ + { + "expression": { + "id": 838, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 836, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 813, + "src": "6368:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 837, + "name": "YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 236, + "src": "6381:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6368:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 839, + "nodeType": "ExpressionStatement", + "src": "6368:28:1" + } + ] + }, + "id": 841, + "nodeType": "IfStatement", + "src": "6191:232:1", + "trueBody": { + "id": 835, + "nodeType": "Block", + "src": "6210:94:1", + "statements": [ + { + "expression": { + "id": 833, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 831, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 813, + "src": "6244:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 832, + "name": "LEAP_YEAR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 239, + "src": "6257:20:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "6244:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 834, + "nodeType": "ExpressionStatement", + "src": "6244:33:1" + } + ] + } + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 824, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 822, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 816, + "src": "6150:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 823, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 800, + "src": "6154:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "6150:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 843, + "initializationExpression": { + "expression": { + "id": 820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 818, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 816, + "src": "6133:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 819, + "name": "ORIGIN_YEAR", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 248, + "src": "6137:11:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "src": "6133:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 821, + "nodeType": "ExpressionStatement", + "src": "6133:15:1" + }, + "loopExpression": { + "expression": { + "id": 826, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "6160:3:1", + "subExpression": { + "id": 825, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 816, + "src": "6160:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 827, + "nodeType": "ExpressionStatement", + "src": "6160:3:1" + }, + "nodeType": "ForStatement", + "src": "6128:313:1" + }, + { + "assignments": [ + 849 + ], + "declarations": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "monthDayCounts", + "nodeType": "VariableDeclaration", + "scope": 986, + "src": "6484:31:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12]" + }, + "typeName": { + "baseType": { + "id": 847, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "6484:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 848, + "length": { + "hexValue": "3132", + "id": 846, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6490:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_12_by_1", + "typeString": "int_const 12" + }, + "value": "12" + }, + "nodeType": "ArrayTypeName", + "src": "6484:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_storage_ptr", + "typeString": "uint8[12]" + } + }, + "visibility": "internal" + } + ], + "id": 850, + "nodeType": "VariableDeclarationStatement", + "src": "6484:31:1" + }, + { + "expression": { + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 851, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "6533:14:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 853, + "indexExpression": { + "hexValue": "30", + "id": 852, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6548:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6533:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3331", + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6553:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "6533:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 856, + "nodeType": "ExpressionStatement", + "src": "6533:22:1" + }, + { + "condition": { + "arguments": [ + { + "id": 858, + "name": "year", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 800, + "src": "6588:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "id": 857, + "name": "isLeapYear", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 285, + "src": "6577:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint16_$returns$_t_bool_$", + "typeString": "function (uint16) pure returns (bool)" + } + }, + "id": 859, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "6577:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 873, + "nodeType": "Block", + "src": "6684:67:1", + "statements": [ + { + "expression": { + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 867, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "6710:14:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 869, + "indexExpression": { + "hexValue": "31", + "id": 868, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6725:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6710:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3238", + "id": 870, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6730:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_28_by_1", + "typeString": "int_const 28" + }, + "value": "28" + }, + "src": "6710:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 872, + "nodeType": "ExpressionStatement", + "src": "6710:22:1" + } + ] + }, + "id": 874, + "nodeType": "IfStatement", + "src": "6573:178:1", + "trueBody": { + "id": 866, + "nodeType": "Block", + "src": "6595:67:1", + "statements": [ + { + "expression": { + "id": 864, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 860, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "6621:14:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 862, + "indexExpression": { + "hexValue": "31", + "id": 861, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6636:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6621:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3239", + "id": 863, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6641:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_29_by_1", + "typeString": "int_const 29" + }, + "value": "29" + }, + "src": "6621:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 865, + "nodeType": "ExpressionStatement", + "src": "6621:22:1" + } + ] + } + }, + { + "expression": { + "id": 879, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 875, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "6768:14:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 877, + "indexExpression": { + "hexValue": "32", + "id": 876, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6783:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2_by_1", + "typeString": "int_const 2" + }, + "value": "2" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6768:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3331", + "id": 878, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6788:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "6768:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 880, + "nodeType": "ExpressionStatement", + "src": "6768:22:1" + }, + { + "expression": { + "id": 885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 881, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "6808:14:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 883, + "indexExpression": { + "hexValue": "33", + "id": 882, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6823:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_3_by_1", + "typeString": "int_const 3" + }, + "value": "3" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6808:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3330", + "id": 884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6828:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_30_by_1", + "typeString": "int_const 30" + }, + "value": "30" + }, + "src": "6808:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 886, + "nodeType": "ExpressionStatement", + "src": "6808:22:1" + }, + { + "expression": { + "id": 891, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 887, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "6848:14:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 889, + "indexExpression": { + "hexValue": "34", + "id": 888, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6863:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4_by_1", + "typeString": "int_const 4" + }, + "value": "4" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6848:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3331", + "id": 890, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6868:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "6848:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 892, + "nodeType": "ExpressionStatement", + "src": "6848:22:1" + }, + { + "expression": { + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 893, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "6888:14:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 895, + "indexExpression": { + "hexValue": "35", + "id": 894, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6903:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_5_by_1", + "typeString": "int_const 5" + }, + "value": "5" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6888:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3330", + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6908:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_30_by_1", + "typeString": "int_const 30" + }, + "value": "30" + }, + "src": "6888:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 898, + "nodeType": "ExpressionStatement", + "src": "6888:22:1" + }, + { + "expression": { + "id": 903, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 899, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "6928:14:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 901, + "indexExpression": { + "hexValue": "36", + "id": 900, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6943:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_6_by_1", + "typeString": "int_const 6" + }, + "value": "6" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6928:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3331", + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6948:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "6928:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 904, + "nodeType": "ExpressionStatement", + "src": "6928:22:1" + }, + { + "expression": { + "id": 909, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 905, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "6968:14:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 907, + "indexExpression": { + "hexValue": "37", + "id": 906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6983:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_7_by_1", + "typeString": "int_const 7" + }, + "value": "7" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "6968:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3331", + "id": 908, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "6988:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "6968:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 910, + "nodeType": "ExpressionStatement", + "src": "6968:22:1" + }, + { + "expression": { + "id": 915, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 911, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "7008:14:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 913, + "indexExpression": { + "hexValue": "38", + "id": 912, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7023:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_8_by_1", + "typeString": "int_const 8" + }, + "value": "8" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7008:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3330", + "id": 914, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7028:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_30_by_1", + "typeString": "int_const 30" + }, + "value": "30" + }, + "src": "7008:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 916, + "nodeType": "ExpressionStatement", + "src": "7008:22:1" + }, + { + "expression": { + "id": 921, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 917, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "7048:14:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 919, + "indexExpression": { + "hexValue": "39", + "id": 918, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7063:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_9_by_1", + "typeString": "int_const 9" + }, + "value": "9" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7048:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3331", + "id": 920, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7068:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "7048:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 922, + "nodeType": "ExpressionStatement", + "src": "7048:22:1" + }, + { + "expression": { + "id": 927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 923, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "7088:14:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 925, + "indexExpression": { + "hexValue": "3130", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7103:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7088:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3330", + "id": 926, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7109:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_30_by_1", + "typeString": "int_const 30" + }, + "value": "30" + }, + "src": "7088:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 928, + "nodeType": "ExpressionStatement", + "src": "7088:23:1" + }, + { + "expression": { + "id": 933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 929, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "7129:14:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 931, + "indexExpression": { + "hexValue": "3131", + "id": 930, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7144:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_11_by_1", + "typeString": "int_const 11" + }, + "value": "11" + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "7129:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "3331", + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7150:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_31_by_1", + "typeString": "int_const 31" + }, + "value": "31" + }, + "src": "7129:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "id": 934, + "nodeType": "ExpressionStatement", + "src": "7129:23:1" + }, + { + "body": { + "id": 955, + "nodeType": "Block", + "src": "7199:96:1", + "statements": [ + { + "expression": { + "id": 953, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 945, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 813, + "src": "7225:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 952, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 946, + "name": "DAY_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "7238:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "baseExpression": { + "id": 947, + "name": "monthDayCounts", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 849, + "src": "7255:14:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_uint8_$12_memory_ptr", + "typeString": "uint8[12] memory" + } + }, + "id": 951, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 948, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 816, + "src": "7270:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 949, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7274:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7270:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "7255:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7238:38:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7225:51:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 954, + "nodeType": "ExpressionStatement", + "src": "7225:51:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "id": 941, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 939, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 816, + "src": "7183:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 940, + "name": "month", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 802, + "src": "7187:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7183:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 956, + "initializationExpression": { + "expression": { + "id": 937, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 935, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 816, + "src": "7176:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "31", + "id": 936, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7180:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7176:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 938, + "nodeType": "ExpressionStatement", + "src": "7176:5:1" + }, + "loopExpression": { + "expression": { + "id": 943, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "7194:3:1", + "subExpression": { + "id": 942, + "name": "i", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 816, + "src": "7194:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "id": 944, + "nodeType": "ExpressionStatement", + "src": "7194:3:1" + }, + "nodeType": "ForStatement", + "src": "7171:124:1" + }, + { + "expression": { + "id": 964, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 957, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 813, + "src": "7336:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 963, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 958, + "name": "DAY_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 233, + "src": "7349:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "id": 961, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 959, + "name": "day", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 804, + "src": "7367:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 960, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "7373:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "7367:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 962, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7366:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7349:26:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7336:39:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 965, + "nodeType": "ExpressionStatement", + "src": "7336:39:1" + }, + { + "expression": { + "id": 971, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 966, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 813, + "src": "7418:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 970, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 967, + "name": "HOUR_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 242, + "src": "7431:15:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "id": 968, + "name": "hour", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 806, + "src": "7450:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 969, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7449:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7431:24:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7418:37:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 972, + "nodeType": "ExpressionStatement", + "src": "7418:37:1" + }, + { + "expression": { + "id": 978, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 973, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 813, + "src": "7500:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 974, + "name": "MINUTE_IN_SECONDS", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 245, + "src": "7513:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "components": [ + { + "id": 975, + "name": "minute", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 808, + "src": "7534:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "id": 976, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "7533:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7513:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "7500:41:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 979, + "nodeType": "ExpressionStatement", + "src": "7500:41:1" + }, + { + "expression": { + "id": 982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 980, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 813, + "src": "7586:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "+=", + "rightHandSide": { + "id": 981, + "name": "second", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 810, + "src": "7599:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "src": "7586:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 983, + "nodeType": "ExpressionStatement", + "src": "7586:19:1" + }, + { + "expression": { + "id": 984, + "name": "timestamp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 813, + "src": "7631:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 814, + "id": 985, + "nodeType": "Return", + "src": "7624:16:1" + } + ] + }, + "functionSelector": "9054bdec", + "id": 987, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toTimestamp", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 811, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 800, + "mutability": "mutable", + "name": "year", + "nodeType": "VariableDeclaration", + "scope": 987, + "src": "5945:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "typeName": { + "id": 799, + "name": "uint16", + "nodeType": "ElementaryTypeName", + "src": "5945:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 802, + "mutability": "mutable", + "name": "month", + "nodeType": "VariableDeclaration", + "scope": 987, + "src": "5958:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 801, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5958:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 804, + "mutability": "mutable", + "name": "day", + "nodeType": "VariableDeclaration", + "scope": 987, + "src": "5971:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 803, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5971:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 806, + "mutability": "mutable", + "name": "hour", + "nodeType": "VariableDeclaration", + "scope": 987, + "src": "5982:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 805, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5982:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 808, + "mutability": "mutable", + "name": "minute", + "nodeType": "VariableDeclaration", + "scope": 987, + "src": "5994:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 807, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "5994:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 810, + "mutability": "mutable", + "name": "second", + "nodeType": "VariableDeclaration", + "scope": 987, + "src": "6008:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "typeName": { + "id": 809, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "6008:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + }, + "visibility": "internal" + } + ], + "src": "5944:77:1" + }, + "returnParameters": { + "id": 814, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 813, + "mutability": "mutable", + "name": "timestamp", + "nodeType": "VariableDeclaration", + "scope": 987, + "src": "6043:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 812, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "6043:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "6042:16:1" + }, + "scope": 988, + "src": "5924:1727:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + } + ], + "scope": 989, + "src": "75:7578:1" + } + ], + "src": "41:7613:1" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/crypto-boys/src/contracts/DateTime.sol", + "exportedSymbols": { + "DateTime": [ + 988 + ] + }, + "license": "SPDX-License" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.4", + ".21", + "<", + "0.8", + ".0" + ] + }, + "id": 215, + "name": "PragmaDirective", + "src": "41:32:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 988 + ], + "name": "DateTime", + "scope": 989 + }, + "children": [ + { + "attributes": { + "canonicalName": "DateTime._DateTime", + "name": "_DateTime", + "scope": 988, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 216, + "name": "ElementaryTypeName", + "src": "231:6:1" + } + ], + "id": 217, + "name": "VariableDeclaration", + "src": "231:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "month", + "scope": 230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 218, + "name": "ElementaryTypeName", + "src": "260:5:1" + } + ], + "id": 219, + "name": "VariableDeclaration", + "src": "260:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "day", + "scope": 230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 220, + "name": "ElementaryTypeName", + "src": "289:5:1" + } + ], + "id": 221, + "name": "VariableDeclaration", + "src": "289:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "hour", + "scope": 230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 222, + "name": "ElementaryTypeName", + "src": "316:5:1" + } + ], + "id": 223, + "name": "VariableDeclaration", + "src": "316:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "minute", + "scope": 230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 224, + "name": "ElementaryTypeName", + "src": "344:5:1" + } + ], + "id": 225, + "name": "VariableDeclaration", + "src": "344:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "second", + "scope": 230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 226, + "name": "ElementaryTypeName", + "src": "374:5:1" + } + ], + "id": 227, + "name": "VariableDeclaration", + "src": "374:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "weekday", + "scope": 230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 228, + "name": "ElementaryTypeName", + "src": "404:5:1" + } + ], + "id": 229, + "name": "VariableDeclaration", + "src": "404:13:1" + } + ], + "id": 230, + "name": "StructDefinition", + "src": "196:232:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "DAY_IN_SECONDS", + "scope": 988, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 231, + "name": "ElementaryTypeName", + "src": "438:4:1" + }, + { + "attributes": { + "hexvalue": "3836343030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 86400", + "value": "86400" + }, + "id": 232, + "name": "Literal", + "src": "469:5:1" + } + ], + "id": 233, + "name": "VariableDeclaration", + "src": "438:36:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "YEAR_IN_SECONDS", + "scope": 988, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 234, + "name": "ElementaryTypeName", + "src": "484:4:1" + }, + { + "attributes": { + "hexvalue": "3331353336303030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31536000", + "value": "31536000" + }, + "id": 235, + "name": "Literal", + "src": "516:8:1" + } + ], + "id": 236, + "name": "VariableDeclaration", + "src": "484:40:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "LEAP_YEAR_IN_SECONDS", + "scope": 988, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 237, + "name": "ElementaryTypeName", + "src": "534:4:1" + }, + { + "attributes": { + "hexvalue": "3331363232343030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31622400", + "value": "31622400" + }, + "id": 238, + "name": "Literal", + "src": "571:8:1" + } + ], + "id": 239, + "name": "VariableDeclaration", + "src": "534:45:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "HOUR_IN_SECONDS", + "scope": 988, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 240, + "name": "ElementaryTypeName", + "src": "590:4:1" + }, + { + "attributes": { + "hexvalue": "33363030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 3600", + "value": "3600" + }, + "id": 241, + "name": "Literal", + "src": "622:4:1" + } + ], + "id": 242, + "name": "VariableDeclaration", + "src": "590:36:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "MINUTE_IN_SECONDS", + "scope": 988, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 243, + "name": "ElementaryTypeName", + "src": "636:4:1" + }, + { + "attributes": { + "hexvalue": "3630", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 60", + "value": "60" + }, + "id": 244, + "name": "Literal", + "src": "670:2:1" + } + ], + "id": 245, + "name": "VariableDeclaration", + "src": "636:36:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "ORIGIN_YEAR", + "scope": 988, + "stateVariable": true, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 246, + "name": "ElementaryTypeName", + "src": "683:6:1" + }, + { + "attributes": { + "hexvalue": "31393730", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1970", + "value": "1970" + }, + "id": 247, + "name": "Literal", + "src": "713:4:1" + } + ], + "id": 248, + "name": "VariableDeclaration", + "src": "683:34:1" + }, + { + "attributes": { + "functionSelector": "a6f0e577", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isLeapYear", + "scope": 988, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 285, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 249, + "name": "ElementaryTypeName", + "src": "748:6:1" + } + ], + "id": 250, + "name": "VariableDeclaration", + "src": "748:11:1" + } + ], + "id": 251, + "name": "ParameterList", + "src": "747:13:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 285, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 252, + "name": "ElementaryTypeName", + "src": "782:4:1" + } + ], + "id": 253, + "name": "VariableDeclaration", + "src": "782:4:1" + } + ], + "id": 254, + "name": "ParameterList", + "src": "781:6:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 250, + "type": "uint16", + "value": "year" + }, + "id": 255, + "name": "Identifier", + "src": "810:4:1" + }, + { + "attributes": { + "hexvalue": "34", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4", + "value": "4" + }, + "id": 256, + "name": "Literal", + "src": "817:1:1" + } + ], + "id": 257, + "name": "BinaryOperation", + "src": "810:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 258, + "name": "Literal", + "src": "822:1:1" + } + ], + "id": 259, + "name": "BinaryOperation", + "src": "810:13:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 254 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 260, + "name": "Literal", + "src": "858:5:1" + } + ], + "id": 261, + "name": "Return", + "src": "851:12:1" + } + ], + "id": 262, + "name": "Block", + "src": "825:57:1" + } + ], + "id": 263, + "name": "IfStatement", + "src": "806:76:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 250, + "type": "uint16", + "value": "year" + }, + "id": 264, + "name": "Identifier", + "src": "903:4:1" + }, + { + "attributes": { + "hexvalue": "313030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 100", + "value": "100" + }, + "id": 265, + "name": "Literal", + "src": "910:3:1" + } + ], + "id": 266, + "name": "BinaryOperation", + "src": "903:10:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 267, + "name": "Literal", + "src": "917:1:1" + } + ], + "id": 268, + "name": "BinaryOperation", + "src": "903:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 254 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 269, + "name": "Literal", + "src": "953:4:1" + } + ], + "id": 270, + "name": "Return", + "src": "946:11:1" + } + ], + "id": 271, + "name": "Block", + "src": "920:56:1" + } + ], + "id": 272, + "name": "IfStatement", + "src": "899:77:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 250, + "type": "uint16", + "value": "year" + }, + "id": 273, + "name": "Identifier", + "src": "997:4:1" + }, + { + "attributes": { + "hexvalue": "343030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 400", + "value": "400" + }, + "id": 274, + "name": "Literal", + "src": "1004:3:1" + } + ], + "id": 275, + "name": "BinaryOperation", + "src": "997:10:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 276, + "name": "Literal", + "src": "1011:1:1" + } + ], + "id": 277, + "name": "BinaryOperation", + "src": "997:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 254 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 278, + "name": "Literal", + "src": "1047:5:1" + } + ], + "id": 279, + "name": "Return", + "src": "1040:12:1" + } + ], + "id": 280, + "name": "Block", + "src": "1014:57:1" + } + ], + "id": 281, + "name": "IfStatement", + "src": "993:78:1" + }, + { + "attributes": { + "functionReturnParameters": 254 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 282, + "name": "Literal", + "src": "1095:4:1" + } + ], + "id": 283, + "name": "Return", + "src": "1088:11:1" + } + ], + "id": 284, + "name": "Block", + "src": "788:322:1" + } + ], + "id": 285, + "name": "FunctionDefinition", + "src": "728:382:1" + }, + { + "attributes": { + "functionSelector": "b1999937", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "leapYearsBefore", + "scope": 988, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 309, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 286, + "name": "ElementaryTypeName", + "src": "1145:4:1" + } + ], + "id": 287, + "name": "VariableDeclaration", + "src": "1145:9:1" + } + ], + "id": 288, + "name": "ParameterList", + "src": "1144:11:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 309, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 289, + "name": "ElementaryTypeName", + "src": "1177:4:1" + } + ], + "id": 290, + "name": "VariableDeclaration", + "src": "1177:4:1" + } + ], + "id": 291, + "name": "ParameterList", + "src": "1176:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 287, + "type": "uint256", + "value": "year" + }, + "id": 292, + "name": "Identifier", + "src": "1201:4:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 293, + "name": "Literal", + "src": "1209:1:1" + } + ], + "id": 294, + "name": "Assignment", + "src": "1201:9:1" + } + ], + "id": 295, + "name": "ExpressionStatement", + "src": "1201:9:1" + }, + { + "attributes": { + "functionReturnParameters": 291 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 287, + "type": "uint256", + "value": "year" + }, + "id": 296, + "name": "Identifier", + "src": "1235:4:1" + }, + { + "attributes": { + "hexvalue": "34", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4", + "value": "4" + }, + "id": 297, + "name": "Literal", + "src": "1242:1:1" + } + ], + "id": 298, + "name": "BinaryOperation", + "src": "1235:8:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 287, + "type": "uint256", + "value": "year" + }, + "id": 299, + "name": "Identifier", + "src": "1246:4:1" + }, + { + "attributes": { + "hexvalue": "313030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 100", + "value": "100" + }, + "id": 300, + "name": "Literal", + "src": "1253:3:1" + } + ], + "id": 301, + "name": "BinaryOperation", + "src": "1246:10:1" + } + ], + "id": 302, + "name": "BinaryOperation", + "src": "1235:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 287, + "type": "uint256", + "value": "year" + }, + "id": 303, + "name": "Identifier", + "src": "1259:4:1" + }, + { + "attributes": { + "hexvalue": "343030", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 400", + "value": "400" + }, + "id": 304, + "name": "Literal", + "src": "1266:3:1" + } + ], + "id": 305, + "name": "BinaryOperation", + "src": "1259:10:1" + } + ], + "id": 306, + "name": "BinaryOperation", + "src": "1235:34:1" + } + ], + "id": 307, + "name": "Return", + "src": "1228:41:1" + } + ], + "id": 308, + "name": "Block", + "src": "1183:97:1" + } + ], + "id": 309, + "name": "FunctionDefinition", + "src": "1120:160:1" + }, + { + "attributes": { + "functionSelector": "b238ad0e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getDaysInMonth", + "scope": 988, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "month", + "scope": 379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 310, + "name": "ElementaryTypeName", + "src": "1314:5:1" + } + ], + "id": 311, + "name": "VariableDeclaration", + "src": "1314:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 312, + "name": "ElementaryTypeName", + "src": "1327:6:1" + } + ], + "id": 313, + "name": "VariableDeclaration", + "src": "1327:11:1" + } + ], + "id": 314, + "name": "ParameterList", + "src": "1313:26:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 315, + "name": "ElementaryTypeName", + "src": "1361:5:1" + } + ], + "id": 316, + "name": "VariableDeclaration", + "src": "1361:5:1" + } + ], + "id": 317, + "name": "ParameterList", + "src": "1360:7:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 311, + "type": "uint8", + "value": "month" + }, + "id": 318, + "name": "Identifier", + "src": "1390:5:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 319, + "name": "Literal", + "src": "1399:1:1" + } + ], + "id": 320, + "name": "BinaryOperation", + "src": "1390:10:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 311, + "type": "uint8", + "value": "month" + }, + "id": 321, + "name": "Identifier", + "src": "1404:5:1" + }, + { + "attributes": { + "hexvalue": "33", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 3", + "value": "3" + }, + "id": 322, + "name": "Literal", + "src": "1413:1:1" + } + ], + "id": 323, + "name": "BinaryOperation", + "src": "1404:10:1" + } + ], + "id": 324, + "name": "BinaryOperation", + "src": "1390:24:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 311, + "type": "uint8", + "value": "month" + }, + "id": 325, + "name": "Identifier", + "src": "1418:5:1" + }, + { + "attributes": { + "hexvalue": "35", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 5", + "value": "5" + }, + "id": 326, + "name": "Literal", + "src": "1427:1:1" + } + ], + "id": 327, + "name": "BinaryOperation", + "src": "1418:10:1" + } + ], + "id": 328, + "name": "BinaryOperation", + "src": "1390:38:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 311, + "type": "uint8", + "value": "month" + }, + "id": 329, + "name": "Identifier", + "src": "1432:5:1" + }, + { + "attributes": { + "hexvalue": "37", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 7", + "value": "7" + }, + "id": 330, + "name": "Literal", + "src": "1441:1:1" + } + ], + "id": 331, + "name": "BinaryOperation", + "src": "1432:10:1" + } + ], + "id": 332, + "name": "BinaryOperation", + "src": "1390:52:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 311, + "type": "uint8", + "value": "month" + }, + "id": 333, + "name": "Identifier", + "src": "1446:5:1" + }, + { + "attributes": { + "hexvalue": "38", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 8", + "value": "8" + }, + "id": 334, + "name": "Literal", + "src": "1455:1:1" + } + ], + "id": 335, + "name": "BinaryOperation", + "src": "1446:10:1" + } + ], + "id": 336, + "name": "BinaryOperation", + "src": "1390:66:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 311, + "type": "uint8", + "value": "month" + }, + "id": 337, + "name": "Identifier", + "src": "1460:5:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 338, + "name": "Literal", + "src": "1469:2:1" + } + ], + "id": 339, + "name": "BinaryOperation", + "src": "1460:11:1" + } + ], + "id": 340, + "name": "BinaryOperation", + "src": "1390:81:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 311, + "type": "uint8", + "value": "month" + }, + "id": 341, + "name": "Identifier", + "src": "1475:5:1" + }, + { + "attributes": { + "hexvalue": "3132", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 12", + "value": "12" + }, + "id": 342, + "name": "Literal", + "src": "1484:2:1" + } + ], + "id": 343, + "name": "BinaryOperation", + "src": "1475:11:1" + } + ], + "id": 344, + "name": "BinaryOperation", + "src": "1390:96:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 317 + }, + "children": [ + { + "attributes": { + "hexvalue": "3331", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31", + "value": "31" + }, + "id": 345, + "name": "Literal", + "src": "1521:2:1" + } + ], + "id": 346, + "name": "Return", + "src": "1514:9:1" + } + ], + "id": 347, + "name": "Block", + "src": "1488:54:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 311, + "type": "uint8", + "value": "month" + }, + "id": 348, + "name": "Identifier", + "src": "1568:5:1" + }, + { + "attributes": { + "hexvalue": "34", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4", + "value": "4" + }, + "id": 349, + "name": "Literal", + "src": "1577:1:1" + } + ], + "id": 350, + "name": "BinaryOperation", + "src": "1568:10:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 311, + "type": "uint8", + "value": "month" + }, + "id": 351, + "name": "Identifier", + "src": "1582:5:1" + }, + { + "attributes": { + "hexvalue": "36", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 6", + "value": "6" + }, + "id": 352, + "name": "Literal", + "src": "1591:1:1" + } + ], + "id": 353, + "name": "BinaryOperation", + "src": "1582:10:1" + } + ], + "id": 354, + "name": "BinaryOperation", + "src": "1568:24:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 311, + "type": "uint8", + "value": "month" + }, + "id": 355, + "name": "Identifier", + "src": "1596:5:1" + }, + { + "attributes": { + "hexvalue": "39", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 9", + "value": "9" + }, + "id": 356, + "name": "Literal", + "src": "1605:1:1" + } + ], + "id": 357, + "name": "BinaryOperation", + "src": "1596:10:1" + } + ], + "id": 358, + "name": "BinaryOperation", + "src": "1568:38:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 311, + "type": "uint8", + "value": "month" + }, + "id": 359, + "name": "Identifier", + "src": "1610:5:1" + }, + { + "attributes": { + "hexvalue": "3131", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 11", + "value": "11" + }, + "id": 360, + "name": "Literal", + "src": "1619:2:1" + } + ], + "id": 361, + "name": "BinaryOperation", + "src": "1610:11:1" + } + ], + "id": 362, + "name": "BinaryOperation", + "src": "1568:53:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 317 + }, + "children": [ + { + "attributes": { + "hexvalue": "3330", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 30", + "value": "30" + }, + "id": 363, + "name": "Literal", + "src": "1656:2:1" + } + ], + "id": 364, + "name": "Return", + "src": "1649:9:1" + } + ], + "id": 365, + "name": "Block", + "src": "1623:54:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 285, + "type": "function (uint16) pure returns (bool)", + "value": "isLeapYear" + }, + "id": 366, + "name": "Identifier", + "src": "1703:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 313, + "type": "uint16", + "value": "year" + }, + "id": 367, + "name": "Identifier", + "src": "1714:4:1" + } + ], + "id": 368, + "name": "FunctionCall", + "src": "1703:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 317 + }, + "children": [ + { + "attributes": { + "hexvalue": "3239", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 29", + "value": "29" + }, + "id": 369, + "name": "Literal", + "src": "1754:2:1" + } + ], + "id": 370, + "name": "Return", + "src": "1747:9:1" + } + ], + "id": 371, + "name": "Block", + "src": "1721:54:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 317 + }, + "children": [ + { + "attributes": { + "hexvalue": "3238", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 28", + "value": "28" + }, + "id": 372, + "name": "Literal", + "src": "1830:2:1" + } + ], + "id": 373, + "name": "Return", + "src": "1823:9:1" + } + ], + "id": 374, + "name": "Block", + "src": "1797:54:1" + } + ], + "id": 375, + "name": "IfStatement", + "src": "1699:152:1" + } + ], + "id": 376, + "name": "IfStatement", + "src": "1564:287:1" + } + ], + "id": 377, + "name": "IfStatement", + "src": "1386:465:1" + } + ], + "id": 378, + "name": "Block", + "src": "1368:493:1" + } + ], + "id": 379, + "name": "FunctionDefinition", + "src": "1290:571:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "parseTimestamp", + "scope": 988, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 544, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 380, + "name": "ElementaryTypeName", + "src": "1895:4:1" + } + ], + "id": 381, + "name": "VariableDeclaration", + "src": "1895:14:1" + } + ], + "id": 382, + "name": "ParameterList", + "src": "1894:16:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "dt", + "scope": 544, + "stateVariable": false, + "storageLocation": "memory", + "type": "struct DateTime._DateTime", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "_DateTime", + "referencedDeclaration": 230, + "type": "struct DateTime._DateTime" + }, + "id": 383, + "name": "UserDefinedTypeName", + "src": "1934:9:1" + } + ], + "id": 384, + "name": "VariableDeclaration", + "src": "1934:19:1" + } + ], + "id": 385, + "name": "ParameterList", + "src": "1933:21:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 387 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "secondsAccountedFor", + "scope": 543, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 386, + "name": "ElementaryTypeName", + "src": "1973:4:1" + } + ], + "id": 387, + "name": "VariableDeclaration", + "src": "1973:24:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 388, + "name": "Literal", + "src": "2000:1:1" + } + ], + "id": 389, + "name": "VariableDeclarationStatement", + "src": "1973:28:1" + }, + { + "attributes": { + "assignments": [ + 391 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "buf", + "scope": 543, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 390, + "name": "ElementaryTypeName", + "src": "2019:4:1" + } + ], + "id": 391, + "name": "VariableDeclaration", + "src": "2019:8:1" + } + ], + "id": 392, + "name": "VariableDeclarationStatement", + "src": "2019:8:1" + }, + { + "attributes": { + "assignments": [ + 394 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "i", + "scope": 543, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 393, + "name": "ElementaryTypeName", + "src": "2045:5:1" + } + ], + "id": 394, + "name": "VariableDeclaration", + "src": "2045:7:1" + } + ], + "id": 395, + "name": "VariableDeclarationStatement", + "src": "2045:7:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "year", + "referencedDeclaration": 217, + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 384, + "type": "struct DateTime._DateTime memory", + "value": "dt" + }, + "id": 396, + "name": "Identifier", + "src": "2095:2:1" + } + ], + "id": 398, + "name": "MemberAccess", + "src": "2095:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint16", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 630, + "type": "function (uint256) pure returns (uint16)", + "value": "getYear" + }, + "id": 399, + "name": "Identifier", + "src": "2105:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 381, + "type": "uint256", + "value": "timestamp" + }, + "id": 400, + "name": "Identifier", + "src": "2113:9:1" + } + ], + "id": 401, + "name": "FunctionCall", + "src": "2105:18:1" + } + ], + "id": 402, + "name": "Assignment", + "src": "2095:28:1" + } + ], + "id": 403, + "name": "ExpressionStatement", + "src": "2095:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 391, + "type": "uint256", + "value": "buf" + }, + "id": 404, + "name": "Identifier", + "src": "2141:3:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 309, + "type": "function (uint256) pure returns (uint256)", + "value": "leapYearsBefore" + }, + "id": 405, + "name": "Identifier", + "src": "2147:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "year", + "referencedDeclaration": 217, + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 384, + "type": "struct DateTime._DateTime memory", + "value": "dt" + }, + "id": 406, + "name": "Identifier", + "src": "2163:2:1" + } + ], + "id": 407, + "name": "MemberAccess", + "src": "2163:7:1" + } + ], + "id": 408, + "name": "FunctionCall", + "src": "2147:24:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 309, + "type": "function (uint256) pure returns (uint256)", + "value": "leapYearsBefore" + }, + "id": 409, + "name": "Identifier", + "src": "2174:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 248, + "type": "uint16", + "value": "ORIGIN_YEAR" + }, + "id": 410, + "name": "Identifier", + "src": "2190:11:1" + } + ], + "id": 411, + "name": "FunctionCall", + "src": "2174:28:1" + } + ], + "id": 412, + "name": "BinaryOperation", + "src": "2147:55:1" + } + ], + "id": 413, + "name": "Assignment", + "src": "2141:61:1" + } + ], + "id": 414, + "name": "ExpressionStatement", + "src": "2141:61:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 387, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 415, + "name": "Identifier", + "src": "2221:19:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 239, + "type": "uint256", + "value": "LEAP_YEAR_IN_SECONDS" + }, + "id": 416, + "name": "Identifier", + "src": "2244:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 391, + "type": "uint256", + "value": "buf" + }, + "id": 417, + "name": "Identifier", + "src": "2267:3:1" + } + ], + "id": 418, + "name": "BinaryOperation", + "src": "2244:26:1" + } + ], + "id": 419, + "name": "Assignment", + "src": "2221:49:1" + } + ], + "id": 420, + "name": "ExpressionStatement", + "src": "2221:49:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 387, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 421, + "name": "Identifier", + "src": "2288:19:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 236, + "type": "uint256", + "value": "YEAR_IN_SECONDS" + }, + "id": 422, + "name": "Identifier", + "src": "2311:15:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "year", + "referencedDeclaration": 217, + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 384, + "type": "struct DateTime._DateTime memory", + "value": "dt" + }, + "id": 423, + "name": "Identifier", + "src": "2330:2:1" + } + ], + "id": 424, + "name": "MemberAccess", + "src": "2330:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 248, + "type": "uint16", + "value": "ORIGIN_YEAR" + }, + "id": 425, + "name": "Identifier", + "src": "2340:11:1" + } + ], + "id": 426, + "name": "BinaryOperation", + "src": "2330:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 391, + "type": "uint256", + "value": "buf" + }, + "id": 427, + "name": "Identifier", + "src": "2354:3:1" + } + ], + "id": 428, + "name": "BinaryOperation", + "src": "2330:27:1" + } + ], + "id": 429, + "name": "TupleExpression", + "src": "2329:29:1" + } + ], + "id": 430, + "name": "BinaryOperation", + "src": "2311:47:1" + } + ], + "id": 431, + "name": "Assignment", + "src": "2288:70:1" + } + ], + "id": 432, + "name": "ExpressionStatement", + "src": "2288:70:1" + }, + { + "attributes": { + "assignments": [ + 434 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "secondsInMonth", + "scope": 543, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 433, + "name": "ElementaryTypeName", + "src": "2402:4:1" + } + ], + "id": 434, + "name": "VariableDeclaration", + "src": "2402:19:1" + } + ], + "id": 435, + "name": "VariableDeclarationStatement", + "src": "2402:19:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 394, + "type": "uint8", + "value": "i" + }, + "id": 436, + "name": "Identifier", + "src": "2444:1:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 437, + "name": "Literal", + "src": "2448:1:1" + } + ], + "id": 438, + "name": "Assignment", + "src": "2444:5:1" + } + ], + "id": 439, + "name": "ExpressionStatement", + "src": "2444:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 394, + "type": "uint8", + "value": "i" + }, + "id": 440, + "name": "Identifier", + "src": "2451:1:1" + }, + { + "attributes": { + "hexvalue": "3132", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 12", + "value": "12" + }, + "id": 441, + "name": "Literal", + "src": "2456:2:1" + } + ], + "id": 442, + "name": "BinaryOperation", + "src": "2451:7:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 394, + "type": "uint8", + "value": "i" + }, + "id": 443, + "name": "Identifier", + "src": "2460:1:1" + } + ], + "id": 444, + "name": "UnaryOperation", + "src": "2460:3:1" + } + ], + "id": 445, + "name": "ExpressionStatement", + "src": "2460:3:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 434, + "type": "uint256", + "value": "secondsInMonth" + }, + "id": 446, + "name": "Identifier", + "src": "2491:14:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 233, + "type": "uint256", + "value": "DAY_IN_SECONDS" + }, + "id": 447, + "name": "Identifier", + "src": "2508:14:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 379, + "type": "function (uint8,uint16) pure returns (uint8)", + "value": "getDaysInMonth" + }, + "id": 448, + "name": "Identifier", + "src": "2525:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 394, + "type": "uint8", + "value": "i" + }, + "id": 449, + "name": "Identifier", + "src": "2540:1:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "year", + "referencedDeclaration": 217, + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 384, + "type": "struct DateTime._DateTime memory", + "value": "dt" + }, + "id": 450, + "name": "Identifier", + "src": "2543:2:1" + } + ], + "id": 451, + "name": "MemberAccess", + "src": "2543:7:1" + } + ], + "id": 452, + "name": "FunctionCall", + "src": "2525:26:1" + } + ], + "id": 453, + "name": "BinaryOperation", + "src": "2508:43:1" + } + ], + "id": 454, + "name": "Assignment", + "src": "2491:60:1" + } + ], + "id": 455, + "name": "ExpressionStatement", + "src": "2491:60:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 434, + "type": "uint256", + "value": "secondsInMonth" + }, + "id": 456, + "name": "Identifier", + "src": "2581:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 387, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 457, + "name": "Identifier", + "src": "2598:19:1" + } + ], + "id": 458, + "name": "BinaryOperation", + "src": "2581:36:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 381, + "type": "uint256", + "value": "timestamp" + }, + "id": 459, + "name": "Identifier", + "src": "2620:9:1" + } + ], + "id": 460, + "name": "BinaryOperation", + "src": "2581:48:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "month", + "referencedDeclaration": 219, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 384, + "type": "struct DateTime._DateTime memory", + "value": "dt" + }, + "id": 461, + "name": "Identifier", + "src": "2665:2:1" + } + ], + "id": 463, + "name": "MemberAccess", + "src": "2665:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 394, + "type": "uint8", + "value": "i" + }, + "id": 464, + "name": "Identifier", + "src": "2676:1:1" + } + ], + "id": 465, + "name": "Assignment", + "src": "2665:12:1" + } + ], + "id": 466, + "name": "ExpressionStatement", + "src": "2665:12:1" + }, + { + "id": 467, + "name": "Break", + "src": "2711:5:1" + } + ], + "id": 468, + "name": "Block", + "src": "2631:112:1" + } + ], + "id": 469, + "name": "IfStatement", + "src": "2577:166:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 387, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 470, + "name": "Identifier", + "src": "2768:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 434, + "type": "uint256", + "value": "secondsInMonth" + }, + "id": 471, + "name": "Identifier", + "src": "2791:14:1" + } + ], + "id": 472, + "name": "Assignment", + "src": "2768:37:1" + } + ], + "id": 473, + "name": "ExpressionStatement", + "src": "2768:37:1" + } + ], + "id": 474, + "name": "Block", + "src": "2465:359:1" + } + ], + "id": 475, + "name": "ForStatement", + "src": "2439:385:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 394, + "type": "uint8", + "value": "i" + }, + "id": 476, + "name": "Identifier", + "src": "2870:1:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 477, + "name": "Literal", + "src": "2874:1:1" + } + ], + "id": 478, + "name": "Assignment", + "src": "2870:5:1" + } + ], + "id": 479, + "name": "ExpressionStatement", + "src": "2870:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 394, + "type": "uint8", + "value": "i" + }, + "id": 480, + "name": "Identifier", + "src": "2877:1:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 379, + "type": "function (uint8,uint16) pure returns (uint8)", + "value": "getDaysInMonth" + }, + "id": 481, + "name": "Identifier", + "src": "2882:14:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "month", + "referencedDeclaration": 219, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 384, + "type": "struct DateTime._DateTime memory", + "value": "dt" + }, + "id": 482, + "name": "Identifier", + "src": "2897:2:1" + } + ], + "id": 483, + "name": "MemberAccess", + "src": "2897:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "year", + "referencedDeclaration": 217, + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 384, + "type": "struct DateTime._DateTime memory", + "value": "dt" + }, + "id": 484, + "name": "Identifier", + "src": "2907:2:1" + } + ], + "id": 485, + "name": "MemberAccess", + "src": "2907:7:1" + } + ], + "id": 486, + "name": "FunctionCall", + "src": "2882:33:1" + } + ], + "id": 487, + "name": "BinaryOperation", + "src": "2877:38:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 394, + "type": "uint8", + "value": "i" + }, + "id": 488, + "name": "Identifier", + "src": "2917:1:1" + } + ], + "id": 489, + "name": "UnaryOperation", + "src": "2917:3:1" + } + ], + "id": 490, + "name": "ExpressionStatement", + "src": "2917:3:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 233, + "type": "uint256", + "value": "DAY_IN_SECONDS" + }, + "id": 491, + "name": "Identifier", + "src": "2952:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 387, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 492, + "name": "Identifier", + "src": "2969:19:1" + } + ], + "id": 493, + "name": "BinaryOperation", + "src": "2952:36:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 381, + "type": "uint256", + "value": "timestamp" + }, + "id": 494, + "name": "Identifier", + "src": "2991:9:1" + } + ], + "id": 495, + "name": "BinaryOperation", + "src": "2952:48:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "day", + "referencedDeclaration": 221, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 384, + "type": "struct DateTime._DateTime memory", + "value": "dt" + }, + "id": 496, + "name": "Identifier", + "src": "3036:2:1" + } + ], + "id": 498, + "name": "MemberAccess", + "src": "3036:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 394, + "type": "uint8", + "value": "i" + }, + "id": 499, + "name": "Identifier", + "src": "3045:1:1" + } + ], + "id": 500, + "name": "Assignment", + "src": "3036:10:1" + } + ], + "id": 501, + "name": "ExpressionStatement", + "src": "3036:10:1" + }, + { + "id": 502, + "name": "Break", + "src": "3080:5:1" + } + ], + "id": 503, + "name": "Block", + "src": "3002:110:1" + } + ], + "id": 504, + "name": "IfStatement", + "src": "2948:164:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 387, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 505, + "name": "Identifier", + "src": "3137:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 233, + "type": "uint256", + "value": "DAY_IN_SECONDS" + }, + "id": 506, + "name": "Identifier", + "src": "3160:14:1" + } + ], + "id": 507, + "name": "Assignment", + "src": "3137:37:1" + } + ], + "id": 508, + "name": "ExpressionStatement", + "src": "3137:37:1" + } + ], + "id": 509, + "name": "Block", + "src": "2922:271:1" + } + ], + "id": 510, + "name": "ForStatement", + "src": "2865:328:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "hour", + "referencedDeclaration": 223, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 384, + "type": "struct DateTime._DateTime memory", + "value": "dt" + }, + "id": 511, + "name": "Identifier", + "src": "3235:2:1" + } + ], + "id": 513, + "name": "MemberAccess", + "src": "3235:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 676, + "type": "function (uint256) pure returns (uint8)", + "value": "getHour" + }, + "id": 514, + "name": "Identifier", + "src": "3245:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 381, + "type": "uint256", + "value": "timestamp" + }, + "id": 515, + "name": "Identifier", + "src": "3253:9:1" + } + ], + "id": 516, + "name": "FunctionCall", + "src": "3245:18:1" + } + ], + "id": 517, + "name": "Assignment", + "src": "3235:28:1" + } + ], + "id": 518, + "name": "ExpressionStatement", + "src": "3235:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "minute", + "referencedDeclaration": 225, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 384, + "type": "struct DateTime._DateTime memory", + "value": "dt" + }, + "id": 519, + "name": "Identifier", + "src": "3308:2:1" + } + ], + "id": 521, + "name": "MemberAccess", + "src": "3308:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 694, + "type": "function (uint256) pure returns (uint8)", + "value": "getMinute" + }, + "id": 522, + "name": "Identifier", + "src": "3320:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 381, + "type": "uint256", + "value": "timestamp" + }, + "id": 523, + "name": "Identifier", + "src": "3330:9:1" + } + ], + "id": 524, + "name": "FunctionCall", + "src": "3320:20:1" + } + ], + "id": 525, + "name": "Assignment", + "src": "3308:32:1" + } + ], + "id": 526, + "name": "ExpressionStatement", + "src": "3308:32:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "second", + "referencedDeclaration": 227, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 384, + "type": "struct DateTime._DateTime memory", + "value": "dt" + }, + "id": 527, + "name": "Identifier", + "src": "3385:2:1" + } + ], + "id": 529, + "name": "MemberAccess", + "src": "3385:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 709, + "type": "function (uint256) pure returns (uint8)", + "value": "getSecond" + }, + "id": 530, + "name": "Identifier", + "src": "3397:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 381, + "type": "uint256", + "value": "timestamp" + }, + "id": 531, + "name": "Identifier", + "src": "3407:9:1" + } + ], + "id": 532, + "name": "FunctionCall", + "src": "3397:20:1" + } + ], + "id": 533, + "name": "Assignment", + "src": "3385:32:1" + } + ], + "id": 534, + "name": "ExpressionStatement", + "src": "3385:32:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "weekday", + "referencedDeclaration": 229, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 384, + "type": "struct DateTime._DateTime memory", + "value": "dt" + }, + "id": 535, + "name": "Identifier", + "src": "3468:2:1" + } + ], + "id": 537, + "name": "MemberAccess", + "src": "3468:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 729, + "type": "function (uint256) pure returns (uint8)", + "value": "getWeekday" + }, + "id": 538, + "name": "Identifier", + "src": "3481:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 381, + "type": "uint256", + "value": "timestamp" + }, + "id": 539, + "name": "Identifier", + "src": "3492:9:1" + } + ], + "id": 540, + "name": "FunctionCall", + "src": "3481:21:1" + } + ], + "id": 541, + "name": "Assignment", + "src": "3468:34:1" + } + ], + "id": 542, + "name": "ExpressionStatement", + "src": "3468:34:1" + } + ], + "id": 543, + "name": "Block", + "src": "1955:1558:1" + } + ], + "id": 544, + "name": "FunctionDefinition", + "src": "1871:1642:1" + }, + { + "attributes": { + "functionSelector": "92d66313", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getYear", + "scope": 988, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 630, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 545, + "name": "ElementaryTypeName", + "src": "3540:4:1" + } + ], + "id": 546, + "name": "VariableDeclaration", + "src": "3540:14:1" + } + ], + "id": 547, + "name": "ParameterList", + "src": "3539:16:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 630, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 548, + "name": "ElementaryTypeName", + "src": "3577:6:1" + } + ], + "id": 549, + "name": "VariableDeclaration", + "src": "3577:6:1" + } + ], + "id": 550, + "name": "ParameterList", + "src": "3576:8:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 552 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "secondsAccountedFor", + "scope": 629, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 551, + "name": "ElementaryTypeName", + "src": "3603:4:1" + } + ], + "id": 552, + "name": "VariableDeclaration", + "src": "3603:24:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 553, + "name": "Literal", + "src": "3630:1:1" + } + ], + "id": 554, + "name": "VariableDeclarationStatement", + "src": "3603:28:1" + }, + { + "attributes": { + "assignments": [ + 556 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 629, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 555, + "name": "ElementaryTypeName", + "src": "3649:6:1" + } + ], + "id": 556, + "name": "VariableDeclaration", + "src": "3649:11:1" + } + ], + "id": 557, + "name": "VariableDeclarationStatement", + "src": "3649:11:1" + }, + { + "attributes": { + "assignments": [ + 559 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "numLeapYears", + "scope": 629, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 558, + "name": "ElementaryTypeName", + "src": "3678:4:1" + } + ], + "id": 559, + "name": "VariableDeclaration", + "src": "3678:17:1" + } + ], + "id": 560, + "name": "VariableDeclarationStatement", + "src": "3678:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 556, + "type": "uint16", + "value": "year" + }, + "id": 561, + "name": "Identifier", + "src": "3738:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint16", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint16)" + }, + "children": [ + { + "attributes": { + "name": "uint16" + }, + "id": 562, + "name": "ElementaryTypeName", + "src": "3745:6:1" + } + ], + "id": 563, + "name": "ElementaryTypeNameExpression", + "src": "3745:6:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 248, + "type": "uint16", + "value": "ORIGIN_YEAR" + }, + "id": 564, + "name": "Identifier", + "src": "3752:11:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 546, + "type": "uint256", + "value": "timestamp" + }, + "id": 565, + "name": "Identifier", + "src": "3766:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 236, + "type": "uint256", + "value": "YEAR_IN_SECONDS" + }, + "id": 566, + "name": "Identifier", + "src": "3778:15:1" + } + ], + "id": 567, + "name": "BinaryOperation", + "src": "3766:27:1" + } + ], + "id": 568, + "name": "BinaryOperation", + "src": "3752:41:1" + } + ], + "id": 569, + "name": "FunctionCall", + "src": "3745:49:1" + } + ], + "id": 570, + "name": "Assignment", + "src": "3738:56:1" + } + ], + "id": 571, + "name": "ExpressionStatement", + "src": "3738:56:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 559, + "type": "uint256", + "value": "numLeapYears" + }, + "id": 572, + "name": "Identifier", + "src": "3812:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 309, + "type": "function (uint256) pure returns (uint256)", + "value": "leapYearsBefore" + }, + "id": 573, + "name": "Identifier", + "src": "3827:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 556, + "type": "uint16", + "value": "year" + }, + "id": 574, + "name": "Identifier", + "src": "3843:4:1" + } + ], + "id": 575, + "name": "FunctionCall", + "src": "3827:21:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 309, + "type": "function (uint256) pure returns (uint256)", + "value": "leapYearsBefore" + }, + "id": 576, + "name": "Identifier", + "src": "3851:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 248, + "type": "uint16", + "value": "ORIGIN_YEAR" + }, + "id": 577, + "name": "Identifier", + "src": "3867:11:1" + } + ], + "id": 578, + "name": "FunctionCall", + "src": "3851:28:1" + } + ], + "id": 579, + "name": "BinaryOperation", + "src": "3827:52:1" + } + ], + "id": 580, + "name": "Assignment", + "src": "3812:67:1" + } + ], + "id": 581, + "name": "ExpressionStatement", + "src": "3812:67:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 552, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 582, + "name": "Identifier", + "src": "3898:19:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 239, + "type": "uint256", + "value": "LEAP_YEAR_IN_SECONDS" + }, + "id": 583, + "name": "Identifier", + "src": "3921:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 559, + "type": "uint256", + "value": "numLeapYears" + }, + "id": 584, + "name": "Identifier", + "src": "3944:12:1" + } + ], + "id": 585, + "name": "BinaryOperation", + "src": "3921:35:1" + } + ], + "id": 586, + "name": "Assignment", + "src": "3898:58:1" + } + ], + "id": 587, + "name": "ExpressionStatement", + "src": "3898:58:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 552, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 588, + "name": "Identifier", + "src": "3974:19:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 236, + "type": "uint256", + "value": "YEAR_IN_SECONDS" + }, + "id": 589, + "name": "Identifier", + "src": "3997:15:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 556, + "type": "uint16", + "value": "year" + }, + "id": 590, + "name": "Identifier", + "src": "4016:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 248, + "type": "uint16", + "value": "ORIGIN_YEAR" + }, + "id": 591, + "name": "Identifier", + "src": "4023:11:1" + } + ], + "id": 592, + "name": "BinaryOperation", + "src": "4016:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 559, + "type": "uint256", + "value": "numLeapYears" + }, + "id": 593, + "name": "Identifier", + "src": "4037:12:1" + } + ], + "id": 594, + "name": "BinaryOperation", + "src": "4016:33:1" + } + ], + "id": 595, + "name": "TupleExpression", + "src": "4015:35:1" + } + ], + "id": 596, + "name": "BinaryOperation", + "src": "3997:53:1" + } + ], + "id": 597, + "name": "Assignment", + "src": "3974:76:1" + } + ], + "id": 598, + "name": "ExpressionStatement", + "src": "3974:76:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 552, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 599, + "name": "Identifier", + "src": "4076:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 546, + "type": "uint256", + "value": "timestamp" + }, + "id": 600, + "name": "Identifier", + "src": "4098:9:1" + } + ], + "id": 601, + "name": "BinaryOperation", + "src": "4076:31:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 285, + "type": "function (uint16) pure returns (bool)", + "value": "isLeapYear" + }, + "id": 602, + "name": "Identifier", + "src": "4139:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint16", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint16)" + }, + "children": [ + { + "attributes": { + "name": "uint16" + }, + "id": 603, + "name": "ElementaryTypeName", + "src": "4150:6:1" + } + ], + "id": 604, + "name": "ElementaryTypeNameExpression", + "src": "4150:6:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 556, + "type": "uint16", + "value": "year" + }, + "id": 605, + "name": "Identifier", + "src": "4157:4:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 606, + "name": "Literal", + "src": "4164:1:1" + } + ], + "id": 607, + "name": "BinaryOperation", + "src": "4157:8:1" + } + ], + "id": 608, + "name": "FunctionCall", + "src": "4150:16:1" + } + ], + "id": 609, + "name": "FunctionCall", + "src": "4139:28:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 552, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 610, + "name": "Identifier", + "src": "4203:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 239, + "type": "uint256", + "value": "LEAP_YEAR_IN_SECONDS" + }, + "id": 611, + "name": "Identifier", + "src": "4226:20:1" + } + ], + "id": 612, + "name": "Assignment", + "src": "4203:43:1" + } + ], + "id": 613, + "name": "ExpressionStatement", + "src": "4203:43:1" + } + ], + "id": 614, + "name": "Block", + "src": "4169:104:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 552, + "type": "uint256", + "value": "secondsAccountedFor" + }, + "id": 615, + "name": "Identifier", + "src": "4337:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 236, + "type": "uint256", + "value": "YEAR_IN_SECONDS" + }, + "id": 616, + "name": "Identifier", + "src": "4360:15:1" + } + ], + "id": 617, + "name": "Assignment", + "src": "4337:38:1" + } + ], + "id": 618, + "name": "ExpressionStatement", + "src": "4337:38:1" + } + ], + "id": 619, + "name": "Block", + "src": "4303:99:1" + } + ], + "id": 620, + "name": "IfStatement", + "src": "4135:267:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-=", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 556, + "type": "uint16", + "value": "year" + }, + "id": 621, + "name": "Identifier", + "src": "4427:4:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 622, + "name": "Literal", + "src": "4435:1:1" + } + ], + "id": 623, + "name": "Assignment", + "src": "4427:9:1" + } + ], + "id": 624, + "name": "ExpressionStatement", + "src": "4427:9:1" + } + ], + "id": 625, + "name": "Block", + "src": "4109:346:1" + } + ], + "id": 626, + "name": "WhileStatement", + "src": "4069:386:1" + }, + { + "attributes": { + "functionReturnParameters": 550 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 556, + "type": "uint16", + "value": "year" + }, + "id": 627, + "name": "Identifier", + "src": "4479:4:1" + } + ], + "id": 628, + "name": "Return", + "src": "4472:11:1" + } + ], + "id": 629, + "name": "Block", + "src": "3585:909:1" + } + ], + "id": 630, + "name": "FunctionDefinition", + "src": "3523:971:1" + }, + { + "attributes": { + "functionSelector": "a324ad24", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getMonth", + "scope": 988, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 643, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 631, + "name": "ElementaryTypeName", + "src": "4522:4:1" + } + ], + "id": 632, + "name": "VariableDeclaration", + "src": "4522:14:1" + } + ], + "id": 633, + "name": "ParameterList", + "src": "4521:16:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 643, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 634, + "name": "ElementaryTypeName", + "src": "4559:5:1" + } + ], + "id": 635, + "name": "VariableDeclaration", + "src": "4559:5:1" + } + ], + "id": 636, + "name": "ParameterList", + "src": "4558:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 636 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "month", + "referencedDeclaration": 219, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "struct DateTime._DateTime memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 544, + "type": "function (uint256) pure returns (struct DateTime._DateTime memory)", + "value": "parseTimestamp" + }, + "id": 637, + "name": "Identifier", + "src": "4591:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 632, + "type": "uint256", + "value": "timestamp" + }, + "id": 638, + "name": "Identifier", + "src": "4606:9:1" + } + ], + "id": 639, + "name": "FunctionCall", + "src": "4591:25:1" + } + ], + "id": 640, + "name": "MemberAccess", + "src": "4591:31:1" + } + ], + "id": 641, + "name": "Return", + "src": "4584:38:1" + } + ], + "id": 642, + "name": "Block", + "src": "4566:67:1" + } + ], + "id": 643, + "name": "FunctionDefinition", + "src": "4504:129:1" + }, + { + "attributes": { + "functionSelector": "65c72840", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getDay", + "scope": 988, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 656, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 644, + "name": "ElementaryTypeName", + "src": "4659:4:1" + } + ], + "id": 645, + "name": "VariableDeclaration", + "src": "4659:14:1" + } + ], + "id": 646, + "name": "ParameterList", + "src": "4658:16:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 656, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 647, + "name": "ElementaryTypeName", + "src": "4696:5:1" + } + ], + "id": 648, + "name": "VariableDeclaration", + "src": "4696:5:1" + } + ], + "id": 649, + "name": "ParameterList", + "src": "4695:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 649 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "day", + "referencedDeclaration": 221, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "struct DateTime._DateTime memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 544, + "type": "function (uint256) pure returns (struct DateTime._DateTime memory)", + "value": "parseTimestamp" + }, + "id": 650, + "name": "Identifier", + "src": "4728:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 645, + "type": "uint256", + "value": "timestamp" + }, + "id": 651, + "name": "Identifier", + "src": "4743:9:1" + } + ], + "id": 652, + "name": "FunctionCall", + "src": "4728:25:1" + } + ], + "id": 653, + "name": "MemberAccess", + "src": "4728:29:1" + } + ], + "id": 654, + "name": "Return", + "src": "4721:36:1" + } + ], + "id": 655, + "name": "Block", + "src": "4703:65:1" + } + ], + "id": 656, + "name": "FunctionDefinition", + "src": "4643:125:1" + }, + { + "attributes": { + "functionSelector": "3e239e1a", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getHour", + "scope": 988, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 676, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 657, + "name": "ElementaryTypeName", + "src": "4795:4:1" + } + ], + "id": 658, + "name": "VariableDeclaration", + "src": "4795:14:1" + } + ], + "id": 659, + "name": "ParameterList", + "src": "4794:16:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 676, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 660, + "name": "ElementaryTypeName", + "src": "4832:5:1" + } + ], + "id": 661, + "name": "VariableDeclaration", + "src": "4832:5:1" + } + ], + "id": 662, + "name": "ParameterList", + "src": "4831:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 662 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 663, + "name": "ElementaryTypeName", + "src": "4864:5:1" + } + ], + "id": 664, + "name": "ElementaryTypeNameExpression", + "src": "4864:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 658, + "type": "uint256", + "value": "timestamp" + }, + "id": 665, + "name": "Identifier", + "src": "4871:9:1" + }, + { + "attributes": { + "hexvalue": "3630", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 60", + "value": "60" + }, + "id": 666, + "name": "Literal", + "src": "4883:2:1" + } + ], + "id": 667, + "name": "BinaryOperation", + "src": "4871:14:1" + }, + { + "attributes": { + "hexvalue": "3630", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 60", + "value": "60" + }, + "id": 668, + "name": "Literal", + "src": "4888:2:1" + } + ], + "id": 669, + "name": "BinaryOperation", + "src": "4871:19:1" + } + ], + "id": 670, + "name": "TupleExpression", + "src": "4870:21:1" + }, + { + "attributes": { + "hexvalue": "3234", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 24", + "value": "24" + }, + "id": 671, + "name": "Literal", + "src": "4894:2:1" + } + ], + "id": 672, + "name": "BinaryOperation", + "src": "4870:26:1" + } + ], + "id": 673, + "name": "FunctionCall", + "src": "4864:33:1" + } + ], + "id": 674, + "name": "Return", + "src": "4857:40:1" + } + ], + "id": 675, + "name": "Block", + "src": "4839:69:1" + } + ], + "id": 676, + "name": "FunctionDefinition", + "src": "4778:130:1" + }, + { + "attributes": { + "functionSelector": "fa93f883", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getMinute", + "scope": 988, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 694, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 677, + "name": "ElementaryTypeName", + "src": "4937:4:1" + } + ], + "id": 678, + "name": "VariableDeclaration", + "src": "4937:14:1" + } + ], + "id": 679, + "name": "ParameterList", + "src": "4936:16:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 694, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 680, + "name": "ElementaryTypeName", + "src": "4974:5:1" + } + ], + "id": 681, + "name": "VariableDeclaration", + "src": "4974:5:1" + } + ], + "id": 682, + "name": "ParameterList", + "src": "4973:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 682 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 683, + "name": "ElementaryTypeName", + "src": "5006:5:1" + } + ], + "id": 684, + "name": "ElementaryTypeNameExpression", + "src": "5006:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 678, + "type": "uint256", + "value": "timestamp" + }, + "id": 685, + "name": "Identifier", + "src": "5013:9:1" + }, + { + "attributes": { + "hexvalue": "3630", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 60", + "value": "60" + }, + "id": 686, + "name": "Literal", + "src": "5025:2:1" + } + ], + "id": 687, + "name": "BinaryOperation", + "src": "5013:14:1" + } + ], + "id": 688, + "name": "TupleExpression", + "src": "5012:16:1" + }, + { + "attributes": { + "hexvalue": "3630", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 60", + "value": "60" + }, + "id": 689, + "name": "Literal", + "src": "5031:2:1" + } + ], + "id": 690, + "name": "BinaryOperation", + "src": "5012:21:1" + } + ], + "id": 691, + "name": "FunctionCall", + "src": "5006:28:1" + } + ], + "id": 692, + "name": "Return", + "src": "4999:35:1" + } + ], + "id": 693, + "name": "Block", + "src": "4981:64:1" + } + ], + "id": 694, + "name": "FunctionDefinition", + "src": "4918:127:1" + }, + { + "attributes": { + "functionSelector": "8aa001fc", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getSecond", + "scope": 988, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 709, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 695, + "name": "ElementaryTypeName", + "src": "5074:4:1" + } + ], + "id": 696, + "name": "VariableDeclaration", + "src": "5074:14:1" + } + ], + "id": 697, + "name": "ParameterList", + "src": "5073:16:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 709, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 698, + "name": "ElementaryTypeName", + "src": "5111:5:1" + } + ], + "id": 699, + "name": "VariableDeclaration", + "src": "5111:5:1" + } + ], + "id": 700, + "name": "ParameterList", + "src": "5110:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 700 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 701, + "name": "ElementaryTypeName", + "src": "5143:5:1" + } + ], + "id": 702, + "name": "ElementaryTypeNameExpression", + "src": "5143:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 696, + "type": "uint256", + "value": "timestamp" + }, + "id": 703, + "name": "Identifier", + "src": "5149:9:1" + }, + { + "attributes": { + "hexvalue": "3630", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 60", + "value": "60" + }, + "id": 704, + "name": "Literal", + "src": "5161:2:1" + } + ], + "id": 705, + "name": "BinaryOperation", + "src": "5149:14:1" + } + ], + "id": 706, + "name": "FunctionCall", + "src": "5143:21:1" + } + ], + "id": 707, + "name": "Return", + "src": "5136:28:1" + } + ], + "id": 708, + "name": "Block", + "src": "5118:57:1" + } + ], + "id": 709, + "name": "FunctionDefinition", + "src": "5055:120:1" + }, + { + "attributes": { + "functionSelector": "4ac1ad78", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getWeekday", + "scope": 988, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 729, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 710, + "name": "ElementaryTypeName", + "src": "5205:4:1" + } + ], + "id": 711, + "name": "VariableDeclaration", + "src": "5205:14:1" + } + ], + "id": 712, + "name": "ParameterList", + "src": "5204:16:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 729, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 713, + "name": "ElementaryTypeName", + "src": "5242:5:1" + } + ], + "id": 714, + "name": "VariableDeclaration", + "src": "5242:5:1" + } + ], + "id": 715, + "name": "ParameterList", + "src": "5241:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 715 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 716, + "name": "ElementaryTypeName", + "src": "5274:5:1" + } + ], + "id": 717, + "name": "ElementaryTypeNameExpression", + "src": "5274:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 711, + "type": "uint256", + "value": "timestamp" + }, + "id": 718, + "name": "Identifier", + "src": "5281:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 233, + "type": "uint256", + "value": "DAY_IN_SECONDS" + }, + "id": 719, + "name": "Identifier", + "src": "5293:14:1" + } + ], + "id": 720, + "name": "BinaryOperation", + "src": "5281:26:1" + }, + { + "attributes": { + "hexvalue": "34", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4", + "value": "4" + }, + "id": 721, + "name": "Literal", + "src": "5310:1:1" + } + ], + "id": 722, + "name": "BinaryOperation", + "src": "5281:30:1" + } + ], + "id": 723, + "name": "TupleExpression", + "src": "5280:32:1" + }, + { + "attributes": { + "hexvalue": "37", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 7", + "value": "7" + }, + "id": 724, + "name": "Literal", + "src": "5315:1:1" + } + ], + "id": 725, + "name": "BinaryOperation", + "src": "5280:36:1" + } + ], + "id": 726, + "name": "FunctionCall", + "src": "5274:43:1" + } + ], + "id": 727, + "name": "Return", + "src": "5267:50:1" + } + ], + "id": 728, + "name": "Block", + "src": "5249:79:1" + } + ], + "id": 729, + "name": "FunctionDefinition", + "src": "5185:143:1" + }, + { + "attributes": { + "functionSelector": "8c8d98a0", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toTimestamp", + "scope": 988, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 750, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 730, + "name": "ElementaryTypeName", + "src": "5359:6:1" + } + ], + "id": 731, + "name": "VariableDeclaration", + "src": "5359:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "month", + "scope": 750, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 732, + "name": "ElementaryTypeName", + "src": "5372:5:1" + } + ], + "id": 733, + "name": "VariableDeclaration", + "src": "5372:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "day", + "scope": 750, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 734, + "name": "ElementaryTypeName", + "src": "5385:5:1" + } + ], + "id": 735, + "name": "VariableDeclaration", + "src": "5385:9:1" + } + ], + "id": 736, + "name": "ParameterList", + "src": "5358:37:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 750, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 737, + "name": "ElementaryTypeName", + "src": "5417:4:1" + } + ], + "id": 738, + "name": "VariableDeclaration", + "src": "5417:14:1" + } + ], + "id": 739, + "name": "ParameterList", + "src": "5416:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 739 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "overloadedDeclarations": [ + 750, + 773, + 798, + 987 + ], + "referencedDeclaration": 987, + "type": "function (uint16,uint8,uint8,uint8,uint8,uint8) pure returns (uint256)", + "value": "toTimestamp" + }, + "id": 740, + "name": "Identifier", + "src": "5458:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 731, + "type": "uint16", + "value": "year" + }, + "id": 741, + "name": "Identifier", + "src": "5470:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 733, + "type": "uint8", + "value": "month" + }, + "id": 742, + "name": "Identifier", + "src": "5476:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 735, + "type": "uint8", + "value": "day" + }, + "id": 743, + "name": "Identifier", + "src": "5483:3:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 744, + "name": "Literal", + "src": "5488:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 745, + "name": "Literal", + "src": "5491:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 746, + "name": "Literal", + "src": "5494:1:1" + } + ], + "id": 747, + "name": "FunctionCall", + "src": "5458:38:1" + } + ], + "id": 748, + "name": "Return", + "src": "5451:45:1" + } + ], + "id": 749, + "name": "Block", + "src": "5433:74:1" + } + ], + "id": 750, + "name": "FunctionDefinition", + "src": "5338:169:1" + }, + { + "attributes": { + "functionSelector": "7f791833", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toTimestamp", + "scope": 988, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 773, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 751, + "name": "ElementaryTypeName", + "src": "5538:6:1" + } + ], + "id": 752, + "name": "VariableDeclaration", + "src": "5538:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "month", + "scope": 773, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 753, + "name": "ElementaryTypeName", + "src": "5551:5:1" + } + ], + "id": 754, + "name": "VariableDeclaration", + "src": "5551:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "day", + "scope": 773, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 755, + "name": "ElementaryTypeName", + "src": "5564:5:1" + } + ], + "id": 756, + "name": "VariableDeclaration", + "src": "5564:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "hour", + "scope": 773, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 757, + "name": "ElementaryTypeName", + "src": "5575:5:1" + } + ], + "id": 758, + "name": "VariableDeclaration", + "src": "5575:10:1" + } + ], + "id": 759, + "name": "ParameterList", + "src": "5537:49:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 773, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 760, + "name": "ElementaryTypeName", + "src": "5608:4:1" + } + ], + "id": 761, + "name": "VariableDeclaration", + "src": "5608:14:1" + } + ], + "id": 762, + "name": "ParameterList", + "src": "5607:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 762 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "overloadedDeclarations": [ + 750, + 773, + 798, + 987 + ], + "referencedDeclaration": 987, + "type": "function (uint16,uint8,uint8,uint8,uint8,uint8) pure returns (uint256)", + "value": "toTimestamp" + }, + "id": 763, + "name": "Identifier", + "src": "5649:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 752, + "type": "uint16", + "value": "year" + }, + "id": 764, + "name": "Identifier", + "src": "5661:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 754, + "type": "uint8", + "value": "month" + }, + "id": 765, + "name": "Identifier", + "src": "5667:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 756, + "type": "uint8", + "value": "day" + }, + "id": 766, + "name": "Identifier", + "src": "5674:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 758, + "type": "uint8", + "value": "hour" + }, + "id": 767, + "name": "Identifier", + "src": "5679:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 768, + "name": "Literal", + "src": "5685:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 769, + "name": "Literal", + "src": "5688:1:1" + } + ], + "id": 770, + "name": "FunctionCall", + "src": "5649:41:1" + } + ], + "id": 771, + "name": "Return", + "src": "5642:48:1" + } + ], + "id": 772, + "name": "Block", + "src": "5624:77:1" + } + ], + "id": 773, + "name": "FunctionDefinition", + "src": "5517:184:1" + }, + { + "attributes": { + "functionSelector": "62ba9687", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toTimestamp", + "scope": 988, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 798, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 774, + "name": "ElementaryTypeName", + "src": "5732:6:1" + } + ], + "id": 775, + "name": "VariableDeclaration", + "src": "5732:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "month", + "scope": 798, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 776, + "name": "ElementaryTypeName", + "src": "5745:5:1" + } + ], + "id": 777, + "name": "VariableDeclaration", + "src": "5745:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "day", + "scope": 798, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 778, + "name": "ElementaryTypeName", + "src": "5758:5:1" + } + ], + "id": 779, + "name": "VariableDeclaration", + "src": "5758:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "hour", + "scope": 798, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 780, + "name": "ElementaryTypeName", + "src": "5769:5:1" + } + ], + "id": 781, + "name": "VariableDeclaration", + "src": "5769:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "minute", + "scope": 798, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 782, + "name": "ElementaryTypeName", + "src": "5781:5:1" + } + ], + "id": 783, + "name": "VariableDeclaration", + "src": "5781:12:1" + } + ], + "id": 784, + "name": "ParameterList", + "src": "5731:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 798, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 785, + "name": "ElementaryTypeName", + "src": "5816:4:1" + } + ], + "id": 786, + "name": "VariableDeclaration", + "src": "5816:14:1" + } + ], + "id": 787, + "name": "ParameterList", + "src": "5815:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 787 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "overloadedDeclarations": [ + 750, + 773, + 798, + 987 + ], + "referencedDeclaration": 987, + "type": "function (uint16,uint8,uint8,uint8,uint8,uint8) pure returns (uint256)", + "value": "toTimestamp" + }, + "id": 788, + "name": "Identifier", + "src": "5857:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 775, + "type": "uint16", + "value": "year" + }, + "id": 789, + "name": "Identifier", + "src": "5869:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 777, + "type": "uint8", + "value": "month" + }, + "id": 790, + "name": "Identifier", + "src": "5875:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 779, + "type": "uint8", + "value": "day" + }, + "id": 791, + "name": "Identifier", + "src": "5882:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 781, + "type": "uint8", + "value": "hour" + }, + "id": 792, + "name": "Identifier", + "src": "5887:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 783, + "type": "uint8", + "value": "minute" + }, + "id": 793, + "name": "Identifier", + "src": "5893:6:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 794, + "name": "Literal", + "src": "5901:1:1" + } + ], + "id": 795, + "name": "FunctionCall", + "src": "5857:46:1" + } + ], + "id": 796, + "name": "Return", + "src": "5850:53:1" + } + ], + "id": 797, + "name": "Block", + "src": "5832:82:1" + } + ], + "id": 798, + "name": "FunctionDefinition", + "src": "5711:203:1" + }, + { + "attributes": { + "functionSelector": "9054bdec", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toTimestamp", + "scope": 988, + "stateMutability": "pure", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "year", + "scope": 987, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 799, + "name": "ElementaryTypeName", + "src": "5945:6:1" + } + ], + "id": 800, + "name": "VariableDeclaration", + "src": "5945:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "month", + "scope": 987, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 801, + "name": "ElementaryTypeName", + "src": "5958:5:1" + } + ], + "id": 802, + "name": "VariableDeclaration", + "src": "5958:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "day", + "scope": 987, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 803, + "name": "ElementaryTypeName", + "src": "5971:5:1" + } + ], + "id": 804, + "name": "VariableDeclaration", + "src": "5971:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "hour", + "scope": 987, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 805, + "name": "ElementaryTypeName", + "src": "5982:5:1" + } + ], + "id": 806, + "name": "VariableDeclaration", + "src": "5982:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "minute", + "scope": 987, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 807, + "name": "ElementaryTypeName", + "src": "5994:5:1" + } + ], + "id": 808, + "name": "VariableDeclaration", + "src": "5994:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "second", + "scope": 987, + "stateVariable": false, + "storageLocation": "default", + "type": "uint8", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 809, + "name": "ElementaryTypeName", + "src": "6008:5:1" + } + ], + "id": 810, + "name": "VariableDeclaration", + "src": "6008:12:1" + } + ], + "id": 811, + "name": "ParameterList", + "src": "5944:77:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "timestamp", + "scope": 987, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 812, + "name": "ElementaryTypeName", + "src": "6043:4:1" + } + ], + "id": 813, + "name": "VariableDeclaration", + "src": "6043:14:1" + } + ], + "id": 814, + "name": "ParameterList", + "src": "6042:16:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 816 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "i", + "scope": 986, + "stateVariable": false, + "storageLocation": "default", + "type": "uint16", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint16", + "type": "uint16" + }, + "id": 815, + "name": "ElementaryTypeName", + "src": "6077:6:1" + } + ], + "id": 816, + "name": "VariableDeclaration", + "src": "6077:8:1" + } + ], + "id": 817, + "name": "VariableDeclarationStatement", + "src": "6077:8:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 816, + "type": "uint16", + "value": "i" + }, + "id": 818, + "name": "Identifier", + "src": "6133:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 248, + "type": "uint16", + "value": "ORIGIN_YEAR" + }, + "id": 819, + "name": "Identifier", + "src": "6137:11:1" + } + ], + "id": 820, + "name": "Assignment", + "src": "6133:15:1" + } + ], + "id": 821, + "name": "ExpressionStatement", + "src": "6133:15:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 816, + "type": "uint16", + "value": "i" + }, + "id": 822, + "name": "Identifier", + "src": "6150:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 800, + "type": "uint16", + "value": "year" + }, + "id": 823, + "name": "Identifier", + "src": "6154:4:1" + } + ], + "id": 824, + "name": "BinaryOperation", + "src": "6150:8:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 816, + "type": "uint16", + "value": "i" + }, + "id": 825, + "name": "Identifier", + "src": "6160:1:1" + } + ], + "id": 826, + "name": "UnaryOperation", + "src": "6160:3:1" + } + ], + "id": 827, + "name": "ExpressionStatement", + "src": "6160:3:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 285, + "type": "function (uint16) pure returns (bool)", + "value": "isLeapYear" + }, + "id": 828, + "name": "Identifier", + "src": "6195:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 816, + "type": "uint16", + "value": "i" + }, + "id": 829, + "name": "Identifier", + "src": "6206:1:1" + } + ], + "id": 830, + "name": "FunctionCall", + "src": "6195:13:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 813, + "type": "uint256", + "value": "timestamp" + }, + "id": 831, + "name": "Identifier", + "src": "6244:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 239, + "type": "uint256", + "value": "LEAP_YEAR_IN_SECONDS" + }, + "id": 832, + "name": "Identifier", + "src": "6257:20:1" + } + ], + "id": 833, + "name": "Assignment", + "src": "6244:33:1" + } + ], + "id": 834, + "name": "ExpressionStatement", + "src": "6244:33:1" + } + ], + "id": 835, + "name": "Block", + "src": "6210:94:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 813, + "type": "uint256", + "value": "timestamp" + }, + "id": 836, + "name": "Identifier", + "src": "6368:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 236, + "type": "uint256", + "value": "YEAR_IN_SECONDS" + }, + "id": 837, + "name": "Identifier", + "src": "6381:15:1" + } + ], + "id": 838, + "name": "Assignment", + "src": "6368:28:1" + } + ], + "id": 839, + "name": "ExpressionStatement", + "src": "6368:28:1" + } + ], + "id": 840, + "name": "Block", + "src": "6334:89:1" + } + ], + "id": 841, + "name": "IfStatement", + "src": "6191:232:1" + } + ], + "id": 842, + "name": "Block", + "src": "6165:276:1" + } + ], + "id": 843, + "name": "ForStatement", + "src": "6128:313:1" + }, + { + "attributes": { + "assignments": [ + 849 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "monthDayCounts", + "scope": 986, + "stateVariable": false, + "storageLocation": "memory", + "type": "uint8[12]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "uint8[12]" + }, + "children": [ + { + "attributes": { + "name": "uint8", + "type": "uint8" + }, + "id": 847, + "name": "ElementaryTypeName", + "src": "6484:5:1" + }, + { + "attributes": { + "hexvalue": "3132", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 12", + "value": "12" + }, + "id": 846, + "name": "Literal", + "src": "6490:2:1" + } + ], + "id": 848, + "name": "ArrayTypeName", + "src": "6484:9:1" + } + ], + "id": 849, + "name": "VariableDeclaration", + "src": "6484:31:1" + } + ], + "id": 850, + "name": "VariableDeclarationStatement", + "src": "6484:31:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 849, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 851, + "name": "Identifier", + "src": "6533:14:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 852, + "name": "Literal", + "src": "6548:1:1" + } + ], + "id": 853, + "name": "IndexAccess", + "src": "6533:17:1" + }, + { + "attributes": { + "hexvalue": "3331", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31", + "value": "31" + }, + "id": 854, + "name": "Literal", + "src": "6553:2:1" + } + ], + "id": 855, + "name": "Assignment", + "src": "6533:22:1" + } + ], + "id": 856, + "name": "ExpressionStatement", + "src": "6533:22:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 285, + "type": "function (uint16) pure returns (bool)", + "value": "isLeapYear" + }, + "id": 857, + "name": "Identifier", + "src": "6577:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 800, + "type": "uint16", + "value": "year" + }, + "id": 858, + "name": "Identifier", + "src": "6588:4:1" + } + ], + "id": 859, + "name": "FunctionCall", + "src": "6577:16:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 849, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 860, + "name": "Identifier", + "src": "6621:14:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 861, + "name": "Literal", + "src": "6636:1:1" + } + ], + "id": 862, + "name": "IndexAccess", + "src": "6621:17:1" + }, + { + "attributes": { + "hexvalue": "3239", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 29", + "value": "29" + }, + "id": 863, + "name": "Literal", + "src": "6641:2:1" + } + ], + "id": 864, + "name": "Assignment", + "src": "6621:22:1" + } + ], + "id": 865, + "name": "ExpressionStatement", + "src": "6621:22:1" + } + ], + "id": 866, + "name": "Block", + "src": "6595:67:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 849, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 867, + "name": "Identifier", + "src": "6710:14:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 868, + "name": "Literal", + "src": "6725:1:1" + } + ], + "id": 869, + "name": "IndexAccess", + "src": "6710:17:1" + }, + { + "attributes": { + "hexvalue": "3238", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 28", + "value": "28" + }, + "id": 870, + "name": "Literal", + "src": "6730:2:1" + } + ], + "id": 871, + "name": "Assignment", + "src": "6710:22:1" + } + ], + "id": 872, + "name": "ExpressionStatement", + "src": "6710:22:1" + } + ], + "id": 873, + "name": "Block", + "src": "6684:67:1" + } + ], + "id": 874, + "name": "IfStatement", + "src": "6573:178:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 849, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 875, + "name": "Identifier", + "src": "6768:14:1" + }, + { + "attributes": { + "hexvalue": "32", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2", + "value": "2" + }, + "id": 876, + "name": "Literal", + "src": "6783:1:1" + } + ], + "id": 877, + "name": "IndexAccess", + "src": "6768:17:1" + }, + { + "attributes": { + "hexvalue": "3331", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31", + "value": "31" + }, + "id": 878, + "name": "Literal", + "src": "6788:2:1" + } + ], + "id": 879, + "name": "Assignment", + "src": "6768:22:1" + } + ], + "id": 880, + "name": "ExpressionStatement", + "src": "6768:22:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 849, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 881, + "name": "Identifier", + "src": "6808:14:1" + }, + { + "attributes": { + "hexvalue": "33", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 3", + "value": "3" + }, + "id": 882, + "name": "Literal", + "src": "6823:1:1" + } + ], + "id": 883, + "name": "IndexAccess", + "src": "6808:17:1" + }, + { + "attributes": { + "hexvalue": "3330", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 30", + "value": "30" + }, + "id": 884, + "name": "Literal", + "src": "6828:2:1" + } + ], + "id": 885, + "name": "Assignment", + "src": "6808:22:1" + } + ], + "id": 886, + "name": "ExpressionStatement", + "src": "6808:22:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 849, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 887, + "name": "Identifier", + "src": "6848:14:1" + }, + { + "attributes": { + "hexvalue": "34", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4", + "value": "4" + }, + "id": 888, + "name": "Literal", + "src": "6863:1:1" + } + ], + "id": 889, + "name": "IndexAccess", + "src": "6848:17:1" + }, + { + "attributes": { + "hexvalue": "3331", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31", + "value": "31" + }, + "id": 890, + "name": "Literal", + "src": "6868:2:1" + } + ], + "id": 891, + "name": "Assignment", + "src": "6848:22:1" + } + ], + "id": 892, + "name": "ExpressionStatement", + "src": "6848:22:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 849, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 893, + "name": "Identifier", + "src": "6888:14:1" + }, + { + "attributes": { + "hexvalue": "35", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 5", + "value": "5" + }, + "id": 894, + "name": "Literal", + "src": "6903:1:1" + } + ], + "id": 895, + "name": "IndexAccess", + "src": "6888:17:1" + }, + { + "attributes": { + "hexvalue": "3330", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 30", + "value": "30" + }, + "id": 896, + "name": "Literal", + "src": "6908:2:1" + } + ], + "id": 897, + "name": "Assignment", + "src": "6888:22:1" + } + ], + "id": 898, + "name": "ExpressionStatement", + "src": "6888:22:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 849, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 899, + "name": "Identifier", + "src": "6928:14:1" + }, + { + "attributes": { + "hexvalue": "36", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 6", + "value": "6" + }, + "id": 900, + "name": "Literal", + "src": "6943:1:1" + } + ], + "id": 901, + "name": "IndexAccess", + "src": "6928:17:1" + }, + { + "attributes": { + "hexvalue": "3331", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31", + "value": "31" + }, + "id": 902, + "name": "Literal", + "src": "6948:2:1" + } + ], + "id": 903, + "name": "Assignment", + "src": "6928:22:1" + } + ], + "id": 904, + "name": "ExpressionStatement", + "src": "6928:22:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 849, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 905, + "name": "Identifier", + "src": "6968:14:1" + }, + { + "attributes": { + "hexvalue": "37", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 7", + "value": "7" + }, + "id": 906, + "name": "Literal", + "src": "6983:1:1" + } + ], + "id": 907, + "name": "IndexAccess", + "src": "6968:17:1" + }, + { + "attributes": { + "hexvalue": "3331", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31", + "value": "31" + }, + "id": 908, + "name": "Literal", + "src": "6988:2:1" + } + ], + "id": 909, + "name": "Assignment", + "src": "6968:22:1" + } + ], + "id": 910, + "name": "ExpressionStatement", + "src": "6968:22:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 849, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 911, + "name": "Identifier", + "src": "7008:14:1" + }, + { + "attributes": { + "hexvalue": "38", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 8", + "value": "8" + }, + "id": 912, + "name": "Literal", + "src": "7023:1:1" + } + ], + "id": 913, + "name": "IndexAccess", + "src": "7008:17:1" + }, + { + "attributes": { + "hexvalue": "3330", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 30", + "value": "30" + }, + "id": 914, + "name": "Literal", + "src": "7028:2:1" + } + ], + "id": 915, + "name": "Assignment", + "src": "7008:22:1" + } + ], + "id": 916, + "name": "ExpressionStatement", + "src": "7008:22:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 849, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 917, + "name": "Identifier", + "src": "7048:14:1" + }, + { + "attributes": { + "hexvalue": "39", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 9", + "value": "9" + }, + "id": 918, + "name": "Literal", + "src": "7063:1:1" + } + ], + "id": 919, + "name": "IndexAccess", + "src": "7048:17:1" + }, + { + "attributes": { + "hexvalue": "3331", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31", + "value": "31" + }, + "id": 920, + "name": "Literal", + "src": "7068:2:1" + } + ], + "id": 921, + "name": "Assignment", + "src": "7048:22:1" + } + ], + "id": 922, + "name": "ExpressionStatement", + "src": "7048:22:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 849, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 923, + "name": "Identifier", + "src": "7088:14:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 924, + "name": "Literal", + "src": "7103:2:1" + } + ], + "id": 925, + "name": "IndexAccess", + "src": "7088:18:1" + }, + { + "attributes": { + "hexvalue": "3330", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 30", + "value": "30" + }, + "id": 926, + "name": "Literal", + "src": "7109:2:1" + } + ], + "id": 927, + "name": "Assignment", + "src": "7088:23:1" + } + ], + "id": 928, + "name": "ExpressionStatement", + "src": "7088:23:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 849, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 929, + "name": "Identifier", + "src": "7129:14:1" + }, + { + "attributes": { + "hexvalue": "3131", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 11", + "value": "11" + }, + "id": 930, + "name": "Literal", + "src": "7144:2:1" + } + ], + "id": 931, + "name": "IndexAccess", + "src": "7129:18:1" + }, + { + "attributes": { + "hexvalue": "3331", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 31", + "value": "31" + }, + "id": 932, + "name": "Literal", + "src": "7150:2:1" + } + ], + "id": 933, + "name": "Assignment", + "src": "7129:23:1" + } + ], + "id": 934, + "name": "ExpressionStatement", + "src": "7129:23:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 816, + "type": "uint16", + "value": "i" + }, + "id": 935, + "name": "Identifier", + "src": "7176:1:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 936, + "name": "Literal", + "src": "7180:1:1" + } + ], + "id": 937, + "name": "Assignment", + "src": "7176:5:1" + } + ], + "id": 938, + "name": "ExpressionStatement", + "src": "7176:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 816, + "type": "uint16", + "value": "i" + }, + "id": 939, + "name": "Identifier", + "src": "7183:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 802, + "type": "uint8", + "value": "month" + }, + "id": 940, + "name": "Identifier", + "src": "7187:5:1" + } + ], + "id": 941, + "name": "BinaryOperation", + "src": "7183:9:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 816, + "type": "uint16", + "value": "i" + }, + "id": 942, + "name": "Identifier", + "src": "7194:1:1" + } + ], + "id": 943, + "name": "UnaryOperation", + "src": "7194:3:1" + } + ], + "id": 944, + "name": "ExpressionStatement", + "src": "7194:3:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 813, + "type": "uint256", + "value": "timestamp" + }, + "id": 945, + "name": "Identifier", + "src": "7225:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 233, + "type": "uint256", + "value": "DAY_IN_SECONDS" + }, + "id": 946, + "name": "Identifier", + "src": "7238:14:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 849, + "type": "uint8[12] memory", + "value": "monthDayCounts" + }, + "id": 947, + "name": "Identifier", + "src": "7255:14:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint16", + "typeString": "uint16" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint16" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 816, + "type": "uint16", + "value": "i" + }, + "id": 948, + "name": "Identifier", + "src": "7270:1:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 949, + "name": "Literal", + "src": "7274:1:1" + } + ], + "id": 950, + "name": "BinaryOperation", + "src": "7270:5:1" + } + ], + "id": 951, + "name": "IndexAccess", + "src": "7255:21:1" + } + ], + "id": 952, + "name": "BinaryOperation", + "src": "7238:38:1" + } + ], + "id": 953, + "name": "Assignment", + "src": "7225:51:1" + } + ], + "id": 954, + "name": "ExpressionStatement", + "src": "7225:51:1" + } + ], + "id": 955, + "name": "Block", + "src": "7199:96:1" + } + ], + "id": 956, + "name": "ForStatement", + "src": "7171:124:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 813, + "type": "uint256", + "value": "timestamp" + }, + "id": 957, + "name": "Identifier", + "src": "7336:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 233, + "type": "uint256", + "value": "DAY_IN_SECONDS" + }, + "id": 958, + "name": "Identifier", + "src": "7349:14:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 804, + "type": "uint8", + "value": "day" + }, + "id": 959, + "name": "Identifier", + "src": "7367:3:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 960, + "name": "Literal", + "src": "7373:1:1" + } + ], + "id": 961, + "name": "BinaryOperation", + "src": "7367:7:1" + } + ], + "id": 962, + "name": "TupleExpression", + "src": "7366:9:1" + } + ], + "id": 963, + "name": "BinaryOperation", + "src": "7349:26:1" + } + ], + "id": 964, + "name": "Assignment", + "src": "7336:39:1" + } + ], + "id": 965, + "name": "ExpressionStatement", + "src": "7336:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 813, + "type": "uint256", + "value": "timestamp" + }, + "id": 966, + "name": "Identifier", + "src": "7418:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 242, + "type": "uint256", + "value": "HOUR_IN_SECONDS" + }, + "id": 967, + "name": "Identifier", + "src": "7431:15:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 806, + "type": "uint8", + "value": "hour" + }, + "id": 968, + "name": "Identifier", + "src": "7450:4:1" + } + ], + "id": 969, + "name": "TupleExpression", + "src": "7449:6:1" + } + ], + "id": 970, + "name": "BinaryOperation", + "src": "7431:24:1" + } + ], + "id": 971, + "name": "Assignment", + "src": "7418:37:1" + } + ], + "id": 972, + "name": "ExpressionStatement", + "src": "7418:37:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 813, + "type": "uint256", + "value": "timestamp" + }, + "id": 973, + "name": "Identifier", + "src": "7500:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 245, + "type": "uint256", + "value": "MINUTE_IN_SECONDS" + }, + "id": 974, + "name": "Identifier", + "src": "7513:17:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "uint8" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 808, + "type": "uint8", + "value": "minute" + }, + "id": 975, + "name": "Identifier", + "src": "7534:6:1" + } + ], + "id": 976, + "name": "TupleExpression", + "src": "7533:8:1" + } + ], + "id": 977, + "name": "BinaryOperation", + "src": "7513:28:1" + } + ], + "id": 978, + "name": "Assignment", + "src": "7500:41:1" + } + ], + "id": 979, + "name": "ExpressionStatement", + "src": "7500:41:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 813, + "type": "uint256", + "value": "timestamp" + }, + "id": 980, + "name": "Identifier", + "src": "7586:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 810, + "type": "uint8", + "value": "second" + }, + "id": 981, + "name": "Identifier", + "src": "7599:6:1" + } + ], + "id": 982, + "name": "Assignment", + "src": "7586:19:1" + } + ], + "id": 983, + "name": "ExpressionStatement", + "src": "7586:19:1" + }, + { + "attributes": { + "functionReturnParameters": 814 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 813, + "type": "uint256", + "value": "timestamp" + }, + "id": 984, + "name": "Identifier", + "src": "7631:9:1" + } + ], + "id": 985, + "name": "Return", + "src": "7624:16:1" + } + ], + "id": 986, + "name": "Block", + "src": "6059:1592:1" + } + ], + "id": 987, + "name": "FunctionDefinition", + "src": "5924:1727:1" + } + ], + "id": 988, + "name": "ContractDefinition", + "src": "75:7578:1" + } + ], + "id": 989, + "name": "SourceUnit", + "src": "41:7613:1" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-07T16:52:11.476Z", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/abis/ERC165.json b/src/abis/ERC165.json new file mode 100644 index 0000000..f98320c --- /dev/null +++ b/src/abis/ERC165.json @@ -0,0 +1,77587 @@ +{ + "contractName": "ERC165", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts may inherit from this and call {_registerInterface} to declare their support of an interface.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas.\"}},\"stateVariables\":{\"_supportedInterfaces\":{\"details\":\"Mapping of interface ids to whether or not it's supported.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":\"ERC165\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":{\"keccak256\":\"0xac9220652f9879c5fb3116025d59e8fbf6c2c3d149aed9f617b88edd31402044\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48de100723de94a6590c6db5bae5098a93445194389c3f3eeb104c7239ef3044\",\"dweb:/ipfs/QmVHLEtfLqBqX7XQRHfLuuwtufRBFJFHfgY4zbFRpaZwXC\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "", + "deployedSourceMap": "", + "source": "// SPDX-License-Identifier: MIT\n\n// File: @openzeppelin/contracts/utils/Context.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\n\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Enumerable is IERC721 {\n\n /**\n * @dev Returns the total amount of tokens stored by the contract.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);\n\n /**\n * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n * Use along with {totalSupply} to enumerate all tokens.\n */\n function tokenByIndex(uint256 index) external view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\npragma solidity >=0.6.0 <0.8.0;\n\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts may inherit from this and call {_registerInterface} to declare\n * their support of an interface.\n */\nabstract contract ERC165 is IERC165 {\n /*\n * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7\n */\n bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;\n\n /**\n * @dev Mapping of interface ids to whether or not it's supported.\n */\n mapping(bytes4 => bool) private _supportedInterfaces;\n\n constructor () {\n // Derived contracts need only register support for their own interfaces,\n // we register support for ERC165 itself here\n _registerInterface(_INTERFACE_ID_ERC165);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n *\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return _supportedInterfaces[interfaceId];\n }\n\n /**\n * @dev Registers the contract as an implementer of the interface defined by\n * `interfaceId`. Support of the actual ERC165 interface is automatic and\n * registering its interface id is not required.\n *\n * See {IERC165-supportsInterface}.\n *\n * Requirements:\n *\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).\n */\n function _registerInterface(bytes4 interfaceId) internal virtual {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the substraction of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n return a - b;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) return 0;\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: division by zero\");\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: modulo by zero\");\n return a % b;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {trySub}.\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryDiv}.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting with custom message when dividing by zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryMod}.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a % b;\n }\n}\n\n// File: @openzeppelin/contracts/utils/Address.sol\npragma solidity >=0.6.2 <0.8.0;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n // solhint-disable-next-line no-inline-assembly\n assembly { size := extcodesize(account) }\n return size > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: value }(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.staticcall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableSet.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) { // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n bytes32 lastvalue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastvalue;\n // Update the index for the moved value\n set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n require(set._values.length > index, \"EnumerableSet: index out of bounds\");\n return set._values[index];\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableMap.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing an enumerable variant of Solidity's\n * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n * type.\n *\n * Maps have the following properties:\n *\n * - Entries are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Entries are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableMap for EnumerableMap.UintToAddressMap;\n *\n * // Declare a set state variable\n * EnumerableMap.UintToAddressMap private myMap;\n * }\n * ```\n *\n * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n * supported.\n */\nlibrary EnumerableMap {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Map type with\n // bytes32 keys and values.\n // The Map implementation uses private functions, and user-facing\n // implementations (such as Uint256ToAddressMap) are just wrappers around\n // the underlying Map.\n // This means that we can only create new EnumerableMaps for types that fit\n // in bytes32.\n\n struct MapEntry {\n bytes32 _key;\n bytes32 _value;\n }\n\n struct Map {\n // Storage of map keys and values\n MapEntry[] _entries;\n\n // Position of the entry defined by a key in the `entries` array, plus 1\n // because index 0 means a key is not in the map.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex == 0) { // Equivalent to !contains(map, key)\n map._entries.push(MapEntry({ _key: key, _value: value }));\n // The entry is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n map._indexes[key] = map._entries.length;\n return true;\n } else {\n map._entries[keyIndex - 1]._value = value;\n return false;\n }\n }\n\n /**\n * @dev Removes a key-value pair from a map. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function _remove(Map storage map, bytes32 key) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex != 0) { // Equivalent to contains(map, key)\n // To delete a key-value pair from the _entries array in O(1), we swap the entry to delete with the last one\n // in the array, and then remove the last entry (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = keyIndex - 1;\n uint256 lastIndex = map._entries.length - 1;\n\n // When the entry to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n MapEntry storage lastEntry = map._entries[lastIndex];\n\n // Move the last entry to the index where the entry to delete is\n map._entries[toDeleteIndex] = lastEntry;\n // Update the index for the moved entry\n map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved entry was stored\n map._entries.pop();\n\n // Delete the index for the deleted slot\n delete map._indexes[key];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function _contains(Map storage map, bytes32 key) private view returns (bool) {\n return map._indexes[key] != 0;\n }\n\n /**\n * @dev Returns the number of key-value pairs in the map. O(1).\n */\n function _length(Map storage map) private view returns (uint256) {\n return map._entries.length;\n }\n\n /**\n * @dev Returns the key-value pair stored at position `index` in the map. O(1).\n *\n * Note that there are no guarantees on the ordering of entries inside the\n * array, and it may change when more entries are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) {\n require(map._entries.length > index, \"EnumerableMap: index out of bounds\");\n\n MapEntry storage entry = map._entries[index];\n return (entry._key, entry._value);\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n */\n function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) {\n uint256 keyIndex = map._indexes[key];\n if (keyIndex == 0) return (false, 0); // Equivalent to contains(map, key)\n return (true, map._entries[keyIndex - 1]._value); // All indexes are 1-based\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function _get(Map storage map, bytes32 key) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, \"EnumerableMap: nonexistent key\"); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n /**\n * @dev Same as {_get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {_tryGet}.\n */\n function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n // UintToAddressMap\n\n struct UintToAddressMap {\n Map _inner;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) {\n return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {\n return _remove(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {\n return _contains(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns the number of elements in the map. O(1).\n */\n function length(UintToAddressMap storage map) internal view returns (uint256) {\n return _length(map._inner);\n }\n\n /**\n * @dev Returns the element stored at position `index` in the set. O(1).\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {\n (bytes32 key, bytes32 value) = _at(map._inner, index);\n return (uint256(key), address(uint160(uint256(value))));\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n *\n * _Available since v3.4._\n */\n function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) {\n (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key));\n return (success, address(uint160(uint256(value))));\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key)))));\n }\n\n /**\n * @dev Same as {get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryGet}.\n */\n function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage))));\n }\n}\n\n// File: @openzeppelin/contracts/utils/Strings.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n /**\n * @dev Converts a `uint256` to its ASCII `string` representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n uint256 index = digits - 1;\n temp = value;\n while (temp != 0) {\n buffer[index--] = bytes1(uint8(48 + temp % 10));\n temp /= 10;\n }\n return string(buffer);\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 Non-Fungible Token Standard basic implementation\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable {\n using SafeMath for uint256;\n using Address for address;\n using EnumerableSet for EnumerableSet.UintSet;\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n using Strings for uint256;\n\n // Equals to `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n // which can be also obtained as `IERC721Receiver(0).onERC721Received.selector`\n bytes4 private constant _ERC721_RECEIVED = 0x150b7a02;\n\n // Mapping from holder address to their (enumerable) set of owned tokens\n mapping (address => EnumerableSet.UintSet) private _holderTokens;\n\n // Enumerable mapping from token ids to their owners\n EnumerableMap.UintToAddressMap private _tokenOwners;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Optional mapping for token URIs\n mapping (uint256 => string) private _tokenURIs;\n\n // Base URI\n string private _baseURI;\n\n /*\n * bytes4(keccak256('balanceOf(address)')) == 0x70a08231\n * bytes4(keccak256('ownerOf(uint256)')) == 0x6352211e\n * bytes4(keccak256('approve(address,uint256)')) == 0x095ea7b3\n * bytes4(keccak256('getApproved(uint256)')) == 0x081812fc\n * bytes4(keccak256('setApprovalForAll(address,bool)')) == 0xa22cb465\n * bytes4(keccak256('isApprovedForAll(address,address)')) == 0xe985e9c5\n * bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde\n *\n * => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^\n * 0xa22cb465 ^ 0xe985e9c5 ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n /*\n * bytes4(keccak256('name()')) == 0x06fdde03\n * bytes4(keccak256('symbol()')) == 0x95d89b41\n * bytes4(keccak256('tokenURI(uint256)')) == 0xc87b56dd\n *\n * => 0x06fdde03 ^ 0x95d89b41 ^ 0xc87b56dd == 0x5b5e139f\n */\n bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f;\n\n /*\n * bytes4(keccak256('totalSupply()')) == 0x18160ddd\n * bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) == 0x2f745c59\n * bytes4(keccak256('tokenByIndex(uint256)')) == 0x4f6ccce7\n *\n * => 0x18160ddd ^ 0x2f745c59 ^ 0x4f6ccce7 == 0x780e9d63\n */\n bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor (string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n return _holderTokens[owner].length();\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n return _tokenOwners.get(tokenId, \"ERC721: owner query for nonexistent token\");\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).\n if (bytes(_tokenURI).length > 0) {\n return string(abi.encodePacked(base, _tokenURI));\n }\n // If there is a baseURI but no tokenURI, concatenate the tokenID to the baseURI.\n return string(abi.encodePacked(base, tokenId.toString()));\n }\n\n /**\n * @dev Returns the base URI set via {_setBaseURI}. This will be\n * automatically added as a prefix in {tokenURI} to each token's URI, or\n * to the token ID if no specific URI is set for that token ID.\n */\n function baseURI() public view virtual returns (string memory) {\n return _baseURI;\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\n return _holderTokens[owner].at(index);\n }\n\n /**\n * @dev See {IERC721Enumerable-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n // _tokenOwners are indexed by tokenIds, so .length() returns the number of tokenIds\n return _tokenOwners.length();\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenByIndex}.\n */\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\n (uint256 tokenId, ) = _tokenOwners.at(index);\n return tokenId;\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(_msgSender() == owner || ERC721.isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n require(operator != _msgSender(), \"ERC721: approve to caller\");\n\n _operatorApprovals[_msgSender()][operator] = approved;\n emit ApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n _safeTransfer(from, to, tokenId, _data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `_data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _tokenOwners.contains(tokenId);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || ERC721.isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n d*\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory _data) internal virtual {\n _mint(to, tokenId);\n require(_checkOnERC721Received(address(0), to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId);\n\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId); // internal owner\n\n _beforeTokenTransfer(owner, address(0), tokenId);\n\n // Clear approvals\n _approve(address(0), tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n\n _holderTokens[owner].remove(tokenId);\n\n _tokenOwners.remove(tokenId);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\"); // internal owner\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId);\n\n // Clear approvals from the previous owner\n _approve(address(0), tokenId);\n\n _holderTokens[from].remove(tokenId);\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = _tokenURI;\n }\n\n /**\n * @dev Internal function to set the base URI for all token IDs. It is\n * automatically added as a prefix to the value returned in {tokenURI},\n * or to the token ID if {tokenURI} is empty.\n */\n function _setBaseURI(string memory baseURI_) internal virtual {\n _baseURI = baseURI_;\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data)\n private returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n bytes memory returndata = to.functionCall(abi.encodeWithSelector(\n IERC721Receiver(to).onERC721Received.selector,\n _msgSender(),\n from,\n tokenId,\n _data\n ), \"ERC721: transfer to non ERC721Receiver implementer\");\n bytes4 retval = abi.decode(returndata, (bytes4));\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits an {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId); // internal owner\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n * transferred to `to`.\n * - When `from` is zero, `tokenId` will be minted for `to`.\n * - When `to` is zero, ``from``'s `tokenId` will be burned.\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual { }\n}\n", + "sourcePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "ast": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "id": 3499, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 509, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "84:31:1" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 530, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 517, + "nodeType": "Block", + "src": "719:34:1", + "statements": [ + { + "expression": { + "expression": { + "id": 514, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "736:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "736:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 513, + "id": 516, + "nodeType": "Return", + "src": "729:17:1" + } + ] + }, + "id": 518, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 510, + "nodeType": "ParameterList", + "parameters": [], + "src": "668:2:1" + }, + "returnParameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 518, + "src": "702:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "702:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "701:17:1" + }, + "scope": 530, + "src": "649:104:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 528, + "nodeType": "Block", + "src": "824:165:1", + "statements": [ + { + "expression": { + "id": 523, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "834:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 524, + "nodeType": "ExpressionStatement", + "src": "834:4:1" + }, + { + "expression": { + "expression": { + "id": 525, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "974:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "src": "974:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 522, + "id": 527, + "nodeType": "Return", + "src": "967:15:1" + } + ] + }, + "id": 529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 519, + "nodeType": "ParameterList", + "parameters": [], + "src": "776:2:1" + }, + "returnParameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "810:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 520, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "810:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "809:14:1" + }, + "scope": 530, + "src": "759:230:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "617:374:1" + }, + { + "id": 531, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1053:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 532, + "nodeType": "StructuredDocumentation", + "src": "1086:279:1", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 541, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 533, + "nodeType": "StructuredDocumentation", + "src": "1390:340:1", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 540, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1762:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 534, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1762:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1761:20:1" + }, + "returnParameters": { + "id": 539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1805:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1805:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1804:6:1" + }, + "scope": 541, + "src": "1735:76:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1366:447:1" + }, + { + "id": 542, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1873:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 544, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "1996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 545, + "nodeType": "InheritanceSpecifier", + "src": "1996:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "1907:67:1", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 655, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 546, + "nodeType": "StructuredDocumentation", + "src": "2010:88:1", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 554, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 548, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2118:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 550, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2140:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2140:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 552, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2160:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2117:67:1" + }, + "src": "2103:82:1" + }, + { + "anonymous": false, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "2191:94:1", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 563, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 557, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2305:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2305:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 559, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2328:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 561, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2354:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2354:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2304:74:1" + }, + "src": "2290:89:1" + }, + { + "anonymous": false, + "documentation": { + "id": 564, + "nodeType": "StructuredDocumentation", + "src": "2385:117:1", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 572, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 566, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2528:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2528:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2551:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2551:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 570, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2577:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 569, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2577:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2527:64:1" + }, + "src": "2507:85:1" + }, + { + "documentation": { + "id": 573, + "nodeType": "StructuredDocumentation", + "src": "2598:76:1", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2698:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 574, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2698:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2697:15:1" + }, + "returnParameters": { + "id": 579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2736:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2735:17:1" + }, + "scope": 655, + "src": "2679:74:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 581, + "nodeType": "StructuredDocumentation", + "src": "2759:131:1", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 588, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 583, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2912:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2912:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2911:17:1" + }, + "returnParameters": { + "id": 587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2952:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2951:15:1" + }, + "scope": 655, + "src": "2895:72:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 589, + "nodeType": "StructuredDocumentation", + "src": "2973:690:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 598, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 591, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3694:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3694:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3708:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3708:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3720:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3720:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3693:43:1" + }, + "returnParameters": { + "id": 597, + "nodeType": "ParameterList", + "parameters": [], + "src": "3745:0:1" + }, + "scope": 655, + "src": "3668:78:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 599, + "nodeType": "StructuredDocumentation", + "src": "3752:504:1", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 608, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 601, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4283:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4283:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 603, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4297:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 602, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4297:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4309:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4309:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4282:43:1" + }, + "returnParameters": { + "id": 607, + "nodeType": "ParameterList", + "parameters": [], + "src": "4334:0:1" + }, + "scope": 655, + "src": "4261:74:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 609, + "nodeType": "StructuredDocumentation", + "src": "4341:452:1", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 616, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 611, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4815:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4815:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4827:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4814:29:1" + }, + "returnParameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [], + "src": "4852:0:1" + }, + "scope": 655, + "src": "4798:55:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 617, + "nodeType": "StructuredDocumentation", + "src": "4859:139:1", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 619, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5024:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5024:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5023:17:1" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5064:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5064:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5063:18:1" + }, + "scope": 655, + "src": "5003:79:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 625, + "nodeType": "StructuredDocumentation", + "src": "5088:309:1", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 632, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5429:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5429:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5447:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 628, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5447:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5428:34:1" + }, + "returnParameters": { + "id": 631, + "nodeType": "ParameterList", + "parameters": [], + "src": "5471:0:1" + }, + "scope": 655, + "src": "5402:70:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 633, + "nodeType": "StructuredDocumentation", + "src": "5478:138:1", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 642, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5647:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5647:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5662:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5662:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5646:33:1" + }, + "returnParameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5703:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 639, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5703:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5702:6:1" + }, + "scope": 655, + "src": "5621:88:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 643, + "nodeType": "StructuredDocumentation", + "src": "5715:568:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 654, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6314:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6314:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6328:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6340:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6340:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6357:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 650, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6357:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6313:64:1" + }, + "returnParameters": { + "id": 653, + "nodeType": "ParameterList", + "parameters": [], + "src": "6386:0:1" + }, + "scope": 655, + "src": "6288:99:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1975:4414:1" + }, + { + "id": 656, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "6457:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 658, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "6654:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 659, + "nodeType": "InheritanceSpecifier", + "src": "6654:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 657, + "nodeType": "StructuredDocumentation", + "src": "6491:133:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 680, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 660, + "nodeType": "StructuredDocumentation", + "src": "6669:58:1", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 665, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [], + "src": "6745:2:1" + }, + "returnParameters": { + "id": 664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 663, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 665, + "src": "6771:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 662, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6771:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6770:15:1" + }, + "scope": 680, + "src": "6732:54:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 666, + "nodeType": "StructuredDocumentation", + "src": "6792:60:1", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 671, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 667, + "nodeType": "ParameterList", + "parameters": [], + "src": "6872:2:1" + }, + "returnParameters": { + "id": 670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 669, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "6898:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 668, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6897:15:1" + }, + "scope": 680, + "src": "6857:56:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 672, + "nodeType": "StructuredDocumentation", + "src": "6919:90:1", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 679, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7032:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7031:17:1" + }, + "returnParameters": { + "id": 678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7072:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 676, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7072:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7071:15:1" + }, + "scope": 680, + "src": "7014:73:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "6625:464:1" + }, + { + "id": 681, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "7161:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 683, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "7363:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 684, + "nodeType": "InheritanceSpecifier", + "src": "7363:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 682, + "nodeType": "StructuredDocumentation", + "src": "7195:136:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 709, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 685, + "nodeType": "StructuredDocumentation", + "src": "7378:82:1", + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "functionSelector": "18160ddd", + "id": 690, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 686, + "nodeType": "ParameterList", + "parameters": [], + "src": "7485:2:1" + }, + "returnParameters": { + "id": 689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 688, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "7511:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 687, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7511:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7510:9:1" + }, + "scope": 709, + "src": "7465:55:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "7526:171:1", + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "functionSelector": "2f745c59", + "id": 700, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7731:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7731:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7746:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7746:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7730:30:1" + }, + "returnParameters": { + "id": 699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 698, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7784:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7784:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7783:17:1" + }, + "scope": 709, + "src": "7702:99:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 701, + "nodeType": "StructuredDocumentation", + "src": "7807:164:1", + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "functionSelector": "4f6ccce7", + "id": 708, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 703, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "7998:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7998:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7997:15:1" + }, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "8036:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8036:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8035:9:1" + }, + "scope": 709, + "src": "7976:69:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "7332:715:1" + }, + { + "id": 710, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "8117:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 711, + "nodeType": "StructuredDocumentation", + "src": "8150:152:1", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 726, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 712, + "nodeType": "StructuredDocumentation", + "src": "8335:485:1", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 725, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8851:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8851:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8869:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8883:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8900:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 719, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8900:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8850:70:1" + }, + "returnParameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8939:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 722, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8939:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "8938:8:1" + }, + "scope": 726, + "src": "8825:122:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "8303:646:1" + }, + { + "id": 727, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9009:31:1" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 729, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "9243:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 730, + "nodeType": "InheritanceSpecifier", + "src": "9243:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "documentation": { + "id": 728, + "nodeType": "StructuredDocumentation", + "src": "9043:171:1", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "fullyImplemented": true, + "id": 781, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 733, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9340:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 731, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9340:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783031666663396137", + "id": 732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "9404:82:1", + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 738, + "mutability": "mutable", + "name": "_supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9491:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 737, + "keyType": { + "id": 735, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9499:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "9491:23:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 736, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9509:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 745, + "nodeType": "Block", + "src": "9565:193:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 742, + "name": "_INTERFACE_ID_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "9730:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 741, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "9711:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9711:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 744, + "nodeType": "ExpressionStatement", + "src": "9711:40:1" + } + ] + }, + "id": 746, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 739, + "nodeType": "ParameterList", + "parameters": [], + "src": "9562:2:1" + }, + "returnParameters": { + "id": 740, + "nodeType": "ParameterList", + "parameters": [], + "src": "9565:0:1" + }, + "scope": 781, + "src": "9550:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 540 + ], + "body": { + "id": 759, + "nodeType": "Block", + "src": "9999:57:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 755, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10016:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 757, + "indexExpression": { + "id": 756, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "10037:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10016:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 754, + "id": 758, + "nodeType": "Return", + "src": "10009:40:1" + } + ] + }, + "documentation": { + "id": 747, + "nodeType": "StructuredDocumentation", + "src": "9764:139:1", + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 760, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 751, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9975:8:1" + }, + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9935:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 748, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9935:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "9934:20:1" + }, + "returnParameters": { + "id": 754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 753, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9993:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9993:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9992:6:1" + }, + "scope": 781, + "src": "9908:148:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 779, + "nodeType": "Block", + "src": "10515:133:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 767, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10533:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10548:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "10533:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10560:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + }, + "value": "ERC165: invalid interface id" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "id": 766, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "10525:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10525:66:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 772, + "nodeType": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "expression": { + "id": 777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 773, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10601:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 775, + "indexExpression": { + "id": 774, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10622:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10637:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10601:40:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 778, + "nodeType": "ExpressionStatement", + "src": "10601:40:1" + } + ] + }, + "documentation": { + "id": 761, + "nodeType": "StructuredDocumentation", + "src": "10062:383:1", + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 780, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 763, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 780, + "src": "10478:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 762, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "10478:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "10477:20:1" + }, + "returnParameters": { + "id": 765, + "nodeType": "ParameterList", + "parameters": [], + "src": "10515:0:1" + }, + "scope": 781, + "src": "10450:198:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "9215:1435:1" + }, + { + "id": 782, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10703:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 783, + "nodeType": "StructuredDocumentation", + "src": "10736:563:1", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 1135, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 813, + "nodeType": "Block", + "src": "11535:98:1", + "statements": [ + { + "assignments": [ + 796 + ], + "declarations": [ + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 813, + "src": "11545:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 795, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 800, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 797, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11557:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "11561:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11557:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 801, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11576:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 802, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11580:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11576:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 808, + "nodeType": "IfStatement", + "src": "11572:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11591:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11598:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 806, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11590:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 794, + "id": 807, + "nodeType": "Return", + "src": "11583:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11618:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 810, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11624:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 811, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11617:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 794, + "id": 812, + "nodeType": "Return", + "src": "11610:16:1" + } + ] + }, + "documentation": { + "id": 784, + "nodeType": "StructuredDocumentation", + "src": "11323:131:1", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 814, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11475:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11475:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11486:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11486:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11474:22:1" + }, + "returnParameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 791, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11526:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 792, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11526:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11519:15:1" + }, + "scope": 1135, + "src": "11459:174:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 840, + "nodeType": "Block", + "src": "11855:75:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 826, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11869:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 827, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11873:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11869:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 833, + "nodeType": "IfStatement", + "src": "11865:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11884:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 831, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11883:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 825, + "id": 832, + "nodeType": "Return", + "src": "11876:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11911:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 835, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11917:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 836, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11921:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11917:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 838, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11910:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 825, + "id": 839, + "nodeType": "Return", + "src": "11903:20:1" + } + ] + }, + "documentation": { + "id": 815, + "nodeType": "StructuredDocumentation", + "src": "11639:135:1", + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 841, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 817, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11795:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11795:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 819, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11806:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11806:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11794:22:1" + }, + "returnParameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11840:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 821, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11840:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 824, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11846:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11846:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11839:15:1" + }, + "scope": 1135, + "src": "11779:151:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 881, + "nodeType": "Block", + "src": "12154:359:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 853, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12386:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12391:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12386:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 860, + "nodeType": "IfStatement", + "src": "12382:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12402:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12408:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 858, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12401:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 859, + "nodeType": "Return", + "src": "12394:16:1" + } + }, + { + "assignments": [ + 862 + ], + "declarations": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "12420:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12420:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 866, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12432:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 864, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12436:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12432:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 867, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12451:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 868, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12455:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 870, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12460:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 876, + "nodeType": "IfStatement", + "src": "12447:33:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12471:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12478:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 874, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12470:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 875, + "nodeType": "Return", + "src": "12463:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12498:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 878, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12504:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12497:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 852, + "id": 880, + "nodeType": "Return", + "src": "12490:16:1" + } + ] + }, + "documentation": { + "id": 842, + "nodeType": "StructuredDocumentation", + "src": "11936:137:1", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 844, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12094:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12094:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 846, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12105:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12093:22:1" + }, + "returnParameters": { + "id": 852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12139:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 848, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12139:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12145:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12145:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12138:15:1" + }, + "scope": 1135, + "src": "12078:435:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 908, + "nodeType": "Block", + "src": "12738:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 894, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12752:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12757:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12752:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 901, + "nodeType": "IfStatement", + "src": "12748:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12768:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12775:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 899, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12767:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 893, + "id": 900, + "nodeType": "Return", + "src": "12760:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12795:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 903, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "12801:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 904, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12805:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12801:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 906, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12794:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 893, + "id": 907, + "nodeType": "Return", + "src": "12787:20:1" + } + ] + }, + "documentation": { + "id": 883, + "nodeType": "StructuredDocumentation", + "src": "12519:138:1", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 909, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12678:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12678:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12689:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12689:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12677:22:1" + }, + "returnParameters": { + "id": 893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12723:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 889, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12723:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12729:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12729:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12722:15:1" + }, + "scope": 1135, + "src": "12662:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 935, + "nodeType": "Block", + "src": "13049:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 921, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13063:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13068:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13063:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 928, + "nodeType": "IfStatement", + "src": "13059:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13079:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13086:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 926, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13078:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 920, + "id": 927, + "nodeType": "Return", + "src": "13071:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13106:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 930, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "13112:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 931, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13116:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13112:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13105:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 920, + "id": 934, + "nodeType": "Return", + "src": "13098:20:1" + } + ] + }, + "documentation": { + "id": 910, + "nodeType": "StructuredDocumentation", + "src": "12820:148:1", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 912, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "12989:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12989:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 914, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13000:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 913, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13000:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12988:22:1" + }, + "returnParameters": { + "id": 920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 917, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13034:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 916, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13034:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 919, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13040:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13040:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13033:15:1" + }, + "scope": 1135, + "src": "12973:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 961, + "nodeType": "Block", + "src": "13427:108:1", + "statements": [ + { + "assignments": [ + 947 + ], + "declarations": [ + { + "constant": false, + "id": 947, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "13437:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13437:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 951, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13449:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 949, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 941, + "src": "13453:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13449:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 953, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13472:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 954, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13477:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13480:29:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 952, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13464:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 958, + "nodeType": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "expression": { + "id": 959, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13527:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 945, + "id": 960, + "nodeType": "Return", + "src": "13520:8:1" + } + ] + }, + "documentation": { + "id": 937, + "nodeType": "StructuredDocumentation", + "src": "13131:224:1", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13373:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13384:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13384:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13372:22:1" + }, + "returnParameters": { + "id": 945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13418:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13418:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13417:9:1" + }, + "scope": 1135, + "src": "13360:175:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 983, + "nodeType": "Block", + "src": "13873:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 973, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13896:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13891:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13883:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 979, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13949:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 980, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13953:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13949:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 971, + "id": 982, + "nodeType": "Return", + "src": "13942:12:1" + } + ] + }, + "documentation": { + "id": 963, + "nodeType": "StructuredDocumentation", + "src": "13541:260:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 984, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13819:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 964, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 967, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13830:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13830:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13818:22:1" + }, + "returnParameters": { + "id": 971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 970, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13864:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13864:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13863:9:1" + }, + "scope": 1135, + "src": "13806:155:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "14275:148:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 994, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14289:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14294:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14289:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "IfStatement", + "src": "14285:20:1", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14304:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 993, + "id": 998, + "nodeType": "Return", + "src": "14297:8:1" + } + }, + { + "assignments": [ + 1001 + ], + "declarations": [ + { + "constant": false, + "id": 1001, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "14315:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14315:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1005, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1002, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14327:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1003, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14331:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14327:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1007, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14350:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1008, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14354:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1010, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14359:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14362:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1006, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14342:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14342:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "expression": { + "id": 1015, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14415:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 993, + "id": 1016, + "nodeType": "Return", + "src": "14408:8:1" + } + ] + }, + "documentation": { + "id": 985, + "nodeType": "StructuredDocumentation", + "src": "13967:236:1", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14221:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 989, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14232:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 988, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14232:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14220:22:1" + }, + "returnParameters": { + "id": 993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 992, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14266:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14266:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14265:9:1" + }, + "scope": 1135, + "src": "14208:215:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1039, + "nodeType": "Block", + "src": "14954:83:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1029, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "14972:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14976:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14972:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14979:28:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14964:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14964:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1034, + "nodeType": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1035, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1021, + "src": "15025:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1036, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "15029:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15025:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1027, + "id": 1038, + "nodeType": "Return", + "src": "15018:12:1" + } + ] + }, + "documentation": { + "id": 1019, + "nodeType": "StructuredDocumentation", + "src": "14429:453:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1040, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1021, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14900:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14900:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1023, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14911:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14899:22:1" + }, + "returnParameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1026, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14945:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14945:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14944:9:1" + }, + "scope": 1135, + "src": "14887:150:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1061, + "nodeType": "Block", + "src": "15557:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1051, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15575:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15579:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15582:26:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 1050, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "15567:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15567:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1056, + "nodeType": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1057, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1043, + "src": "15626:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1058, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15630:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15626:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1049, + "id": 1060, + "nodeType": "Return", + "src": "15619:12:1" + } + ] + }, + "documentation": { + "id": 1041, + "nodeType": "StructuredDocumentation", + "src": "15043:442:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1062, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1043, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15503:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1045, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15514:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15502:22:1" + }, + "returnParameters": { + "id": 1049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1048, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15548:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15548:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15547:9:1" + }, + "scope": 1135, + "src": "15490:148:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1085, + "nodeType": "Block", + "src": "16197:68:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16215:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1076, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16220:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16215:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1078, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "16223:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1074, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "16207:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16207:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1080, + "nodeType": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16253:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1082, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16257:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16253:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1073, + "id": 1084, + "nodeType": "Return", + "src": "16246:12:1" + } + ] + }, + "documentation": { + "id": 1063, + "nodeType": "StructuredDocumentation", + "src": "15644:453:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1086, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16115:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16115:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16126:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16137:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1068, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16137:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16114:50:1" + }, + "returnParameters": { + "id": 1073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16188:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16188:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16187:9:1" + }, + "scope": 1135, + "src": "16102:163:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1109, + "nodeType": "Block", + "src": "17017:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1099, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17035:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17039:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17035:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1102, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1093, + "src": "17042:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17027:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17027:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1105, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "17072:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1106, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17076:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17072:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1097, + "id": 1108, + "nodeType": "Return", + "src": "17065:12:1" + } + ] + }, + "documentation": { + "id": 1087, + "nodeType": "StructuredDocumentation", + "src": "16271:646:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16935:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16935:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16946:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16946:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1093, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16957:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1092, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16957:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16934:50:1" + }, + "returnParameters": { + "id": 1097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1096, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "17008:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17008:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17007:9:1" + }, + "scope": 1135, + "src": "16922:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1133, + "nodeType": "Block", + "src": "17825:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1123, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17843:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17847:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17843:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1126, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "17850:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17835:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1128, + "nodeType": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1129, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "17880:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1130, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17880:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1121, + "id": 1132, + "nodeType": "Return", + "src": "17873:12:1" + } + ] + }, + "documentation": { + "id": 1111, + "nodeType": "StructuredDocumentation", + "src": "17090:635:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17743:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17743:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17754:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17754:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17765:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1116, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17765:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17742:50:1" + }, + "returnParameters": { + "id": 1121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17816:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17816:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17815:9:1" + }, + "scope": 1135, + "src": "17730:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "11300:6594:1" + }, + { + "id": 1136, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "17947:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1137, + "nodeType": "StructuredDocumentation", + "src": "17980:67:1", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 1430, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1153, + "nodeType": "Block", + "src": "18706:347:1", + "statements": [ + { + "assignments": [ + 1146 + ], + "declarations": [ + { + "constant": false, + "id": 1146, + "mutability": "mutable", + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 1153, + "src": "18903:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18903:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1147, + "nodeType": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "18990:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18992:28:1", + "value": { + "arguments": [ + { + "name": "account", + "nodeType": "YulIdentifier", + "src": "19012:7:1" + } + ], + "functionName": { + "name": "extcodesize", + "nodeType": "YulIdentifier", + "src": "19000:11:1" + }, + "nodeType": "YulFunctionCall", + "src": "19000:20:1" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "18992:4:1" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "id": 1148, + "nodeType": "InlineAssembly", + "src": "18981:41:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1149, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "19038:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19045:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19038:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1144, + "id": 1152, + "nodeType": "Return", + "src": "19031:15:1" + } + ] + }, + "documentation": { + "id": 1138, + "nodeType": "StructuredDocumentation", + "src": "18070:565:1", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1154, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1140, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18660:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18660:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18659:17:1" + }, + "returnParameters": { + "id": 1144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1143, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18700:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1142, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18700:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "18699:6:1" + }, + "scope": 1430, + "src": "18640:413:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1187, + "nodeType": "Block", + "src": "20041:320:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1165, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "20067:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20059:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1163, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20059:7:1", + "typeDescriptions": {} + } + }, + "id": 1166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20059:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "20059:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1168, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20084:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20059:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20092:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 1162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20051:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1172, + "nodeType": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "assignments": [ + 1174, + null + ], + "declarations": [ + { + "constant": false, + "id": 1174, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1187, + "src": "20213:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1173, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20213:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1181, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20263:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 1175, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1157, + "src": "20231:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "20231:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1177, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20254:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "20231:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20231:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1183, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "20284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20293:60:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 1182, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20276:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20276:78:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1186, + "nodeType": "ExpressionStatement", + "src": "20276:78:1" + } + ] + }, + "documentation": { + "id": 1155, + "nodeType": "StructuredDocumentation", + "src": "19059:906:1", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1188, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1157, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "19989:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19989:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1159, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "20016:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19988:43:1" + }, + "returnParameters": { + "id": 1161, + "nodeType": "ParameterList", + "parameters": [], + "src": "20041:0:1" + }, + "scope": 1430, + "src": "19970:391:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1204, + "nodeType": "Block", + "src": "21191:82:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1199, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "21219:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1200, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "21227:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21233:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 1198, + "name": "functionCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "src": "21206:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21206:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1197, + "id": 1203, + "nodeType": "Return", + "src": "21199:67:1" + } + ] + }, + "documentation": { + "id": 1189, + "nodeType": "StructuredDocumentation", + "src": "20367:730:1", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1205, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21124:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21124:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21140:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1192, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21140:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21123:35:1" + }, + "returnParameters": { + "id": 1197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1196, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21177:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1195, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21176:14:1" + }, + "scope": 1430, + "src": "21102:171:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1224, + "nodeType": "Block", + "src": "21612:76:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1218, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "21651:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1219, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "21659:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21665:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 1221, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "21668:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1217, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "21629:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21629:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1216, + "id": 1223, + "nodeType": "Return", + "src": "21622:59:1" + } + ] + }, + "documentation": { + "id": 1206, + "nodeType": "StructuredDocumentation", + "src": "21279:211:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1208, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21517:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21517:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21533:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1209, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21533:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1212, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21552:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1211, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "21552:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "21516:63:1" + }, + "returnParameters": { + "id": 1216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1215, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21598:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1214, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21598:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21597:14:1" + }, + "scope": 1430, + "src": "21495:193:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1244, + "nodeType": "Block", + "src": "22163:111:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1238, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "22202:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1239, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "22210:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1240, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1232, + "src": "22216:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22223:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 1237, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "22180:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22180:87:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1236, + "id": 1243, + "nodeType": "Return", + "src": "22173:94:1" + } + ] + }, + "documentation": { + "id": 1226, + "nodeType": "StructuredDocumentation", + "src": "21694:351:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1245, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1228, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22081:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22081:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1230, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22097:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1229, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22097:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1232, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22116:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "22080:50:1" + }, + "returnParameters": { + "id": 1236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1235, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22149:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1234, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22149:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22148:14:1" + }, + "scope": 1430, + "src": "22050:224:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1294, + "nodeType": "Block", + "src": "22663:382:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1262, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "22689:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22681:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22681:7:1", + "typeDescriptions": {} + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22681:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "22681:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1265, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22706:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22681:30:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 1267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22713:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 1259, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22673:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22673:81:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1269, + "nodeType": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1272, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22783:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1271, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "22772:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22772:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22792:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 1270, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22764:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22764:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1276, + "nodeType": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "assignments": [ + 1278, + 1280 + ], + "declarations": [ + { + "constant": false, + "id": 1278, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22895:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1277, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22895:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1280, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22909:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1279, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22909:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1287, + "initialValue": { + "arguments": [ + { + "id": 1285, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1250, + "src": "22964:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1281, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22936:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "22936:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1283, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22956:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "22936:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22936:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1289, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "23004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1290, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1280, + "src": "23013:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1291, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "23025:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1288, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "22986:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22986:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1258, + "id": 1293, + "nodeType": "Return", + "src": "22979:59:1" + } + ] + }, + "documentation": { + "id": 1246, + "nodeType": "StructuredDocumentation", + "src": "22280:237:1", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1295, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1248, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22553:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22553:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1250, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22569:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1249, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22569:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1252, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22588:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22588:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1254, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22603:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1253, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "22603:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "22552:78:1" + }, + "returnParameters": { + "id": 1258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1257, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22649:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1256, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22649:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22648:14:1" + }, + "scope": 1430, + "src": "22522:523:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1311, + "nodeType": "Block", + "src": "23322:97:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1306, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1298, + "src": "23358:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1307, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "23366:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23372:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 1305, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "src": "23339:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23339:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1304, + "id": 1310, + "nodeType": "Return", + "src": "23332:80:1" + } + ] + }, + "documentation": { + "id": 1296, + "nodeType": "StructuredDocumentation", + "src": "23051:166:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1298, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23250:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23250:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23266:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1299, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23266:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23249:35:1" + }, + "returnParameters": { + "id": 1304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1303, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23308:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23308:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23307:14:1" + }, + "scope": 1430, + "src": "23222:197:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1346, + "nodeType": "Block", + "src": "23731:288:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1326, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1325, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "23749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23749:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23769:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + }, + "value": "Address: static call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "id": 1324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "23741:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23741:67:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1330, + "nodeType": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "assignments": [ + 1332, + 1334 + ], + "declarations": [ + { + "constant": false, + "id": 1332, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23879:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1331, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23879:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1334, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23893:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1333, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23893:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1339, + "initialValue": { + "arguments": [ + { + "id": 1337, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "23938:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1335, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23920:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "23920:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23920:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1341, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "23978:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1342, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1334, + "src": "23987:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1343, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "23999:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1340, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "23960:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23960:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1323, + "id": 1345, + "nodeType": "Return", + "src": "23953:59:1" + } + ] + }, + "documentation": { + "id": 1313, + "nodeType": "StructuredDocumentation", + "src": "23425:173:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1315, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23631:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23631:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1317, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23647:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1316, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23647:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1319, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23666:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1318, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "23666:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "23630:63:1" + }, + "returnParameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1322, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23717:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1321, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23717:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23716:14:1" + }, + "scope": 1430, + "src": "23603:416:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1363, + "nodeType": "Block", + "src": "24295:101:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1358, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "24333:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1359, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "24341:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24347:41:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 1357, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "src": "24312:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24312:77:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1356, + "id": 1362, + "nodeType": "Return", + "src": "24305:84:1" + } + ] + }, + "documentation": { + "id": 1348, + "nodeType": "StructuredDocumentation", + "src": "24025:168:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1364, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1350, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24228:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24244:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1351, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24227:35:1" + }, + "returnParameters": { + "id": 1356, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1355, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24281:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1354, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24281:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24280:14:1" + }, + "scope": 1430, + "src": "24198:198:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1398, + "nodeType": "Block", + "src": "24707:292:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1378, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24736:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1377, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "24725:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24725:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24745:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + }, + "value": "Address: delegate call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "id": 1376, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "24717:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24717:69:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1382, + "nodeType": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "assignments": [ + 1384, + 1386 + ], + "declarations": [ + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24857:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1383, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "24857:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24871:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1385, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24871:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1391, + "initialValue": { + "arguments": [ + { + "id": 1389, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1369, + "src": "24918:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1387, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "24898:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24898:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1393, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1384, + "src": "24958:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1394, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1386, + "src": "24967:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1395, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1371, + "src": "24979:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1392, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "24940:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24940:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1375, + "id": 1397, + "nodeType": "Return", + "src": "24933:59:1" + } + ] + }, + "documentation": { + "id": 1365, + "nodeType": "StructuredDocumentation", + "src": "24402:175:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1399, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1367, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24612:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24612:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1369, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24628:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1368, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24628:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1371, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24647:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1370, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "24647:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "24611:63:1" + }, + "returnParameters": { + "id": 1375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1374, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24693:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1373, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24693:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24692:14:1" + }, + "scope": 1430, + "src": "24582:417:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1428, + "nodeType": "Block", + "src": "25134:596:1", + "statements": [ + { + "condition": { + "id": 1410, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "25148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1426, + "nodeType": "Block", + "src": "25205:519:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1414, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25289:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "25289:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25309:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25289:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1424, + "nodeType": "Block", + "src": "25661:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1421, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1405, + "src": "25686:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1420, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "25679:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25679:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1423, + "nodeType": "ExpressionStatement", + "src": "25679:20:1" + } + ] + }, + "id": 1425, + "nodeType": "IfStatement", + "src": "25285:429:1", + "trueBody": { + "id": 1419, + "nodeType": "Block", + "src": "25312:343:1", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "25496:145:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "25518:40:1", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25547:10:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "25541:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "25541:17:1" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "25522:15:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25590:2:1", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25594:10:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25586:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "25586:19:1" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "25607:15:1" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "25579:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "25579:44:1" + }, + "nodeType": "YulExpressionStatement", + "src": "25579:44:1" + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "id": 1418, + "nodeType": "InlineAssembly", + "src": "25487:154:1" + } + ] + } + } + ] + }, + "id": 1427, + "nodeType": "IfStatement", + "src": "25144:580:1", + "trueBody": { + "id": 1413, + "nodeType": "Block", + "src": "25157:42:1", + "statements": [ + { + "expression": { + "id": 1411, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25178:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1409, + "id": 1412, + "nodeType": "Return", + "src": "25171:17:1" + } + ] + } + } + ] + }, + "id": 1429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1401, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25032:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1400, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "25032:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1403, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25046:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1402, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25046:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1405, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25071:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1404, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "25071:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "25031:67:1" + }, + "returnParameters": { + "id": 1409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1408, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25120:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1407, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25120:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "25119:14:1" + }, + "scope": 1430, + "src": "25005:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3499, + "src": "18048:7684:1" + }, + { + "id": 1431, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "25791:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1432, + "nodeType": "StructuredDocumentation", + "src": "25824:686:1", + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "fullyImplemented": true, + "id": 1921, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableSet.Set", + "id": 1440, + "members": [ + { + "constant": false, + "id": 1435, + "mutability": "mutable", + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27033:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1433, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27033:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1434, + "nodeType": "ArrayTypeName", + "src": "27033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1439, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27184:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1438, + "keyType": { + "id": 1436, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "27184:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "26979:249:1", + "visibility": "public" + }, + { + "body": { + "id": 1480, + "nodeType": "Block", + "src": "27467:335:1", + "statements": [ + { + "condition": { + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "27481:22:1", + "subExpression": { + "arguments": [ + { + "id": 1451, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27492:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + { + "id": 1452, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27497:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1450, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "27482:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27482:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1478, + "nodeType": "Block", + "src": "27759:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27780:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1449, + "id": 1477, + "nodeType": "Return", + "src": "27773:12:1" + } + ] + }, + "id": 1479, + "nodeType": "IfStatement", + "src": "27477:319:1", + "trueBody": { + "id": 1475, + "nodeType": "Block", + "src": "27505:248:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1460, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27536:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "expression": { + "id": 1455, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1458, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27519:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "27519:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 1461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27519:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1462, + "nodeType": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "expression": { + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1463, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27677:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "27677:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1467, + "indexExpression": { + "id": 1465, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27690:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "27677:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1468, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27699:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1469, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27699:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "27699:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27677:40:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1472, + "nodeType": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27738:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1449, + "id": 1474, + "nodeType": "Return", + "src": "27731:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1441, + "nodeType": "StructuredDocumentation", + "src": "27234:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1481, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27412:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1442, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27412:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1445, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27429:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1444, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27411:32:1" + }, + "returnParameters": { + "id": 1449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1447, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "27461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "27460:6:1" + }, + "scope": 1921, + "src": "27398:404:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1560, + "nodeType": "Block", + "src": "28042:1440:1", + "statements": [ + { + "assignments": [ + 1492 + ], + "declarations": [ + { + "constant": false, + "id": 1492, + "mutability": "mutable", + "name": "valueIndex", + "nodeType": "VariableDeclaration", + "scope": 1560, + "src": "28152:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28152:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1497, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1493, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28173:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1494, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "28173:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1496, + "indexExpression": { + "id": 1495, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "28186:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28173:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1498, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28207:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28221:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28207:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1558, + "nodeType": "Block", + "src": "29439:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29460:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1490, + "id": 1557, + "nodeType": "Return", + "src": "29453:12:1" + } + ] + }, + "id": 1559, + "nodeType": "IfStatement", + "src": "28203:1273:1", + "trueBody": { + "id": 1555, + "nodeType": "Block", + "src": "28224:1209:1", + "statements": [ + { + "assignments": [ + 1502 + ], + "declarations": [ + { + "constant": false, + "id": 1502, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28564:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28564:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1506, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1503, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28588:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28588:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "assignments": [ + 1508 + ], + "declarations": [ + { + "constant": false, + "id": 1508, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28616:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28616:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1514, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1509, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28636:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28636:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "28636:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28657:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28636:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "assignments": [ + 1516 + ], + "declarations": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "lastvalue", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28898:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1515, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28898:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1521, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1517, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28918:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1520, + "indexExpression": { + "id": 1519, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "28930:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28918:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "expression": { + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1522, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29032:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1525, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29032:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1526, + "indexExpression": { + "id": 1524, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29044:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29032:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1527, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29061:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "29032:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1529, + "nodeType": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "expression": { + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1530, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29136:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1533, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29136:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1534, + "indexExpression": { + "id": 1532, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29149:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29136:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1535, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29162:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29178:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "29162:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29136:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1539, + "nodeType": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 1540, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29285:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "29285:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29285:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1546, + "nodeType": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "expression": { + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "29370:26:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 1547, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29377:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29377:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1550, + "indexExpression": { + "id": 1549, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "29390:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29377:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1552, + "nodeType": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29418:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1490, + "id": 1554, + "nodeType": "Return", + "src": "29411:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1482, + "nodeType": "StructuredDocumentation", + "src": "27808:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1561, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "27987:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1483, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27987:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1486, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28004:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1485, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27986:32:1" + }, + "returnParameters": { + "id": 1490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28036:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1488, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "28036:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "28035:6:1" + }, + "scope": 1921, + "src": "27970:1512:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1578, + "nodeType": "Block", + "src": "29642:48:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 1571, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "29659:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29659:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1574, + "indexExpression": { + "id": 1573, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "29672:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29659:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29682:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "29659:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1570, + "id": 1577, + "nodeType": "Return", + "src": "29652:31:1" + } + ] + }, + "documentation": { + "id": 1562, + "nodeType": "StructuredDocumentation", + "src": "29488:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1579, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1564, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29582:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1563, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29582:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29599:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1565, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "29599:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "29581:32:1" + }, + "returnParameters": { + "id": 1570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29636:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "29636:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "29635:6:1" + }, + "scope": 1921, + "src": "29563:127:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1591, + "nodeType": "Block", + "src": "29836:42:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 1587, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1582, + "src": "29853:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1588, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29853:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "29853:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1586, + "id": 1590, + "nodeType": "Return", + "src": "29846:25:1" + } + ] + }, + "documentation": { + "id": 1580, + "nodeType": "StructuredDocumentation", + "src": "29696:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1582, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29788:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1581, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29788:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "src": "29787:17:1" + }, + "returnParameters": { + "id": 1586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1585, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29827:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29826:9:1" + }, + "scope": 1921, + "src": "29771:107:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1616, + "nodeType": "Block", + "src": "30286:125:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1603, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30304:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30304:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "30304:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1606, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30325:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30304:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30332:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + }, + "value": "EnumerableSet: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "id": 1602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "30296:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30296:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1610, + "nodeType": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 1611, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30386:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30386:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1614, + "indexExpression": { + "id": 1613, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30398:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30386:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1601, + "id": 1615, + "nodeType": "Return", + "src": "30379:25:1" + } + ] + }, + "documentation": { + "id": 1593, + "nodeType": "StructuredDocumentation", + "src": "29883:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1617, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1595, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30223:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1594, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30223:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30240:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30240:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30222:32:1" + }, + "returnParameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1600, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30277:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1599, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30276:9:1" + }, + "scope": 1921, + "src": "30210:201:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableSet.Bytes32Set", + "id": 1620, + "members": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "30464:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1618, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30464:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "30436:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1636, + "nodeType": "Block", + "src": "30727:47:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1631, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "30749:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "30749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1625, + "src": "30761:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1630, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "30744:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30744:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1629, + "id": 1635, + "nodeType": "Return", + "src": "30737:30:1" + } + ] + }, + "documentation": { + "id": 1621, + "nodeType": "StructuredDocumentation", + "src": "30487:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30664:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1622, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30664:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30688:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1624, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30688:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30663:39:1" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30721:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "30721:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "30720:6:1" + }, + "scope": 1921, + "src": "30651:123:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1653, + "nodeType": "Block", + "src": "31021:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1648, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "31046:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31046:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1650, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "31058:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1647, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "31038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31038:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1646, + "id": 1652, + "nodeType": "Return", + "src": "31031:33:1" + } + ] + }, + "documentation": { + "id": 1638, + "nodeType": "StructuredDocumentation", + "src": "30780:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1654, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30958:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1639, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30958:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30982:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1641, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30982:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30957:39:1" + }, + "returnParameters": { + "id": 1646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1645, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "31015:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31015:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31014:6:1" + }, + "scope": 1921, + "src": "30942:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1670, + "nodeType": "Block", + "src": "31238:52:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1665, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1657, + "src": "31265:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31265:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1667, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1659, + "src": "31277:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1664, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "31255:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31255:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1663, + "id": 1669, + "nodeType": "Return", + "src": "31248:35:1" + } + ] + }, + "documentation": { + "id": 1655, + "nodeType": "StructuredDocumentation", + "src": "31077:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1671, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1657, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31170:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1656, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31170:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31194:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1658, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31194:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31169:39:1" + }, + "returnParameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1662, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31232:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1661, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31232:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31231:6:1" + }, + "scope": 1921, + "src": "31152:138:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "31443:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1680, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1674, + "src": "31468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1681, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31468:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1679, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "31460:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31460:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1678, + "id": 1683, + "nodeType": "Return", + "src": "31453:26:1" + } + ] + }, + "documentation": { + "id": 1672, + "nodeType": "StructuredDocumentation", + "src": "31296:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1685, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1674, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31387:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1673, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + } + ], + "src": "31386:24:1" + }, + "returnParameters": { + "id": 1678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31434:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31434:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31433:9:1" + }, + "scope": 1921, + "src": "31371:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1701, + "nodeType": "Block", + "src": "31901:46:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1696, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1688, + "src": "31922:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1697, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31922:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1698, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "31934:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1695, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "31918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31918:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1694, + "id": 1700, + "nodeType": "Return", + "src": "31911:29:1" + } + ] + }, + "documentation": { + "id": 1686, + "nodeType": "StructuredDocumentation", + "src": "31491:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1688, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31830:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1687, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31830:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1690, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31854:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31854:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31829:39:1" + }, + "returnParameters": { + "id": 1694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31892:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1692, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31892:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31891:9:1" + }, + "scope": 1921, + "src": "31818:129:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.AddressSet", + "id": 1705, + "members": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1705, + "src": "32000:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1703, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "32000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "31972:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1730, + "nodeType": "Block", + "src": "32263:74:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1716, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1708, + "src": "32285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32285:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "32321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32313:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1722, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32313:7:1", + "typeDescriptions": {} + } + }, + "id": 1725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32313:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32305:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1720, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32305:7:1", + "typeDescriptions": {} + } + }, + "id": 1726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32305:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1718, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32297:7:1", + "typeDescriptions": {} + } + }, + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32297:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1715, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "32280:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32280:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1714, + "id": 1729, + "nodeType": "Return", + "src": "32273:57:1" + } + ] + }, + "documentation": { + "id": 1706, + "nodeType": "StructuredDocumentation", + "src": "32023:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1731, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1708, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32200:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1707, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32200:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32224:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32224:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32199:39:1" + }, + "returnParameters": { + "id": 1714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1713, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32257:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1712, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32257:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32256:6:1" + }, + "scope": 1921, + "src": "32187:150:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1756, + "nodeType": "Block", + "src": "32584:77:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1742, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "32609:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1743, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32609:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1750, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "32645:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32637:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1748, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32637:7:1", + "typeDescriptions": {} + } + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32637:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32629:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32629:7:1", + "typeDescriptions": {} + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32629:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32621:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1744, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32621:7:1", + "typeDescriptions": {} + } + }, + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32621:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1741, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "32601:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32601:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1740, + "id": 1755, + "nodeType": "Return", + "src": "32594:60:1" + } + ] + }, + "documentation": { + "id": 1732, + "nodeType": "StructuredDocumentation", + "src": "32343:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1757, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1734, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32521:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1733, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32521:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1736, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32545:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32545:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32520:39:1" + }, + "returnParameters": { + "id": 1740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1739, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32578:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1738, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32578:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32577:6:1" + }, + "scope": 1921, + "src": "32505:156:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1782, + "nodeType": "Block", + "src": "32828:79:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1768, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1760, + "src": "32855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1776, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1762, + "src": "32891:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1774, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32883:7:1", + "typeDescriptions": {} + } + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32883:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32875:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32875:7:1", + "typeDescriptions": {} + } + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32875:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1770, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32867:7:1", + "typeDescriptions": {} + } + }, + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32867:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1767, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "32845:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32845:55:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1766, + "id": 1781, + "nodeType": "Return", + "src": "32838:62:1" + } + ] + }, + "documentation": { + "id": 1758, + "nodeType": "StructuredDocumentation", + "src": "32667:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1783, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1760, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32760:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1759, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32760:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1762, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32784:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32784:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32759:39:1" + }, + "returnParameters": { + "id": 1766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1765, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32822:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1764, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32822:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32821:6:1" + }, + "scope": 1921, + "src": "32742:165:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1796, + "nodeType": "Block", + "src": "33060:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1792, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1786, + "src": "33085:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33085:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1791, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "33077:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33077:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1790, + "id": 1795, + "nodeType": "Return", + "src": "33070:26:1" + } + ] + }, + "documentation": { + "id": 1784, + "nodeType": "StructuredDocumentation", + "src": "32913:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1797, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1786, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33004:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1785, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33004:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + } + ], + "src": "33003:24:1" + }, + "returnParameters": { + "id": 1790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1789, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33050:9:1" + }, + "scope": 1921, + "src": "32988:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1822, + "nodeType": "Block", + "src": "33518:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1814, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "33563:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33563:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1816, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "33575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1813, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "33559:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33559:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33551:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33551:7:1", + "typeDescriptions": {} + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33551:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33543:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1809, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "33543:7:1", + "typeDescriptions": {} + } + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33543:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33535:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33535:7:1", + "typeDescriptions": {} + } + }, + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33535:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 1806, + "id": 1821, + "nodeType": "Return", + "src": "33528:56:1" + } + ] + }, + "documentation": { + "id": 1798, + "nodeType": "StructuredDocumentation", + "src": "33108:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1823, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1800, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33447:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1799, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33447:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1802, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33471:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33471:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33446:39:1" + }, + "returnParameters": { + "id": 1806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33509:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33509:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "33508:9:1" + }, + "scope": 1921, + "src": "33435:156:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.UintSet", + "id": 1826, + "members": [ + { + "constant": false, + "id": 1825, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1826, + "src": "33639:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1824, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "33639:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "UintSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "33614:42:1", + "visibility": "public" + }, + { + "body": { + "id": 1845, + "nodeType": "Block", + "src": "33899:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1837, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1829, + "src": "33921:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "33921:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1841, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "33941:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33933:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1839, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "33933:7:1", + "typeDescriptions": {} + } + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33933:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1836, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "33916:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33916:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1835, + "id": 1844, + "nodeType": "Return", + "src": "33909:39:1" + } + ] + }, + "documentation": { + "id": 1827, + "nodeType": "StructuredDocumentation", + "src": "33662:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1846, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1829, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33839:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1828, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "33839:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1831, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33860:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33860:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33838:36:1" + }, + "returnParameters": { + "id": 1835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1834, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33893:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1833, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "33893:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "33892:6:1" + }, + "scope": 1921, + "src": "33826:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1865, + "nodeType": "Block", + "src": "34199:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1857, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1849, + "src": "34224:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34224:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1861, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "34244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34236:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1859, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34236:7:1", + "typeDescriptions": {} + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34236:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1856, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "34216:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34216:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1855, + "id": 1864, + "nodeType": "Return", + "src": "34209:42:1" + } + ] + }, + "documentation": { + "id": 1847, + "nodeType": "StructuredDocumentation", + "src": "33961:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1849, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34139:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1848, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34139:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1851, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34160:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34138:36:1" + }, + "returnParameters": { + "id": 1855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1854, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34193:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1853, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34193:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34192:6:1" + }, + "scope": 1921, + "src": "34123:135:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1885, + "nodeType": "Block", + "src": "34422:61:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1877, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1869, + "src": "34449:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34449:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1881, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "34469:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1879, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34461:7:1", + "typeDescriptions": {} + } + }, + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34461:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1876, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "34439:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34439:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1875, + "id": 1884, + "nodeType": "Return", + "src": "34432:44:1" + } + ] + }, + "documentation": { + "id": 1867, + "nodeType": "StructuredDocumentation", + "src": "34264:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1886, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1869, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34357:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1868, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34378:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34378:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34356:36:1" + }, + "returnParameters": { + "id": 1875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1874, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34416:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1873, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34416:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34415:6:1" + }, + "scope": 1921, + "src": "34339:144:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1899, + "nodeType": "Block", + "src": "34633:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1895, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1889, + "src": "34658:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34658:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1894, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "34650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34650:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1893, + "id": 1898, + "nodeType": "Return", + "src": "34643:26:1" + } + ] + }, + "documentation": { + "id": 1887, + "nodeType": "StructuredDocumentation", + "src": "34489:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1900, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1889, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34580:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1888, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + } + ], + "src": "34579:21:1" + }, + "returnParameters": { + "id": 1893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34624:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34623:9:1" + }, + "scope": 1921, + "src": "34564:112:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1919, + "nodeType": "Block", + "src": "35088:55:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1913, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "35117:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "35117:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1915, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1905, + "src": "35129:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1912, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "35113:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35113:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "35105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35105:7:1", + "typeDescriptions": {} + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35105:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1909, + "id": 1918, + "nodeType": "Return", + "src": "35098:38:1" + } + ] + }, + "documentation": { + "id": 1901, + "nodeType": "StructuredDocumentation", + "src": "34681:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1920, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35020:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1902, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "35020:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1905, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35041:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35041:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35019:36:1" + }, + "returnParameters": { + "id": 1909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1908, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35079:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1907, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35079:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35078:9:1" + }, + "scope": 1921, + "src": "35008:135:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "26511:8634:1" + }, + { + "id": 1922, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "35204:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1923, + "nodeType": "StructuredDocumentation", + "src": "35237:705:1", + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "fullyImplemented": true, + "id": 2480, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableMap.MapEntry", + "id": 1928, + "members": [ + { + "constant": false, + "id": 1925, + "mutability": "mutable", + "name": "_key", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36455:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1924, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1927, + "mutability": "mutable", + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36477:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1926, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36477:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "MapEntry", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36429:69:1", + "visibility": "public" + }, + { + "canonicalName": "EnumerableMap.Map", + "id": 1936, + "members": [ + { + "constant": false, + "id": 1931, + "mutability": "mutable", + "name": "_entries", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36567:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + }, + "typeName": { + "baseType": { + "id": 1929, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "36567:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "id": 1930, + "nodeType": "ArrayTypeName", + "src": "36567:10:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1935, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36736:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1934, + "keyType": { + "id": 1932, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "36736:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "36756:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Map", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36504:276:1", + "visibility": "public" + }, + { + "body": { + "id": 1997, + "nodeType": "Block", + "src": "37089:596:1", + "statements": [ + { + "assignments": [ + 1949 + ], + "declarations": [ + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 1997, + "src": "37197:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "37197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1954, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1950, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1953, + "indexExpression": { + "id": 1952, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37229:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37216:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1955, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37248:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37260:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "37248:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1995, + "nodeType": "Block", + "src": "37587:92:1", + "statements": [ + { + "expression": { + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 1982, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37601:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1987, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37601:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1988, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1984, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37614:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37625:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "37614:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37601:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 1989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "37601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1990, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37637:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "37601:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1992, + "nodeType": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37663:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1947, + "id": 1994, + "nodeType": "Return", + "src": "37656:12:1" + } + ] + }, + "id": 1996, + "nodeType": "IfStatement", + "src": "37244:435:1", + "trueBody": { + "id": 1981, + "nodeType": "Block", + "src": "37263:318:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1964, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37349:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1965, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37362:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1963, + "name": "MapEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1928, + "src": "37332:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_MapEntry_$1928_storage_ptr_$", + "typeString": "type(struct EnumerableMap.MapEntry storage pointer)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "nodeType": "FunctionCall", + "src": "37332:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "expression": { + "expression": { + "id": 1958, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37314:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37314:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "37314:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$1928_storage_$returns$__$", + "typeString": "function (struct EnumerableMap.MapEntry storage ref)" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37314:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1968, + "nodeType": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "expression": { + "id": 1977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1969, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37506:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37506:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1973, + "indexExpression": { + "id": 1971, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "37506:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1974, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37526:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37526:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "37526:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37506:39:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1978, + "nodeType": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37566:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1947, + "id": 1980, + "nodeType": "Return", + "src": "37559:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1937, + "nodeType": "StructuredDocumentation", + "src": "36786:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1998, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37021:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 1938, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37021:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37038:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1940, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1943, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1942, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37020:45:1" + }, + "returnParameters": { + "id": 1947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1946, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37083:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1945, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37083:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37082:6:1" + }, + "scope": 2480, + "src": "37007:678:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2078, + "nodeType": "Block", + "src": "37923:1447:1", + "statements": [ + { + "assignments": [ + 2009 + ], + "declarations": [ + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2078, + "src": "38031:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2014, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2010, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38050:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2011, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "38050:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2013, + "indexExpression": { + "id": 2012, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "38063:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38050:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2015, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38082:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38094:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "38082:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2076, + "nodeType": "Block", + "src": "39327:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39348:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2007, + "id": 2075, + "nodeType": "Return", + "src": "39341:12:1" + } + ] + }, + "id": 2077, + "nodeType": "IfStatement", + "src": "38078:1286:1", + "trueBody": { + "id": 2073, + "nodeType": "Block", + "src": "38097:1224:1", + "statements": [ + { + "assignments": [ + 2019 + ], + "declarations": [ + { + "constant": false, + "id": 2019, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38438:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2023, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2020, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38462:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38473:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38462:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "assignments": [ + 2025 + ], + "declarations": [ + { + "constant": false, + "id": 2025, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38488:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38488:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2031, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2026, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38508:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38508:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "38508:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38530:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38508:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "assignments": [ + 2033 + ], + "declarations": [ + { + "constant": false, + "id": 2033, + "mutability": "mutable", + "name": "lastEntry", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38771:26:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2032, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "38771:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2038, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2034, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38800:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38800:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2037, + "indexExpression": { + "id": 2036, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2025, + "src": "38813:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38800:23:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "expression": { + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2039, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38915:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38915:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2043, + "indexExpression": { + "id": 2041, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "38928:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "38915:27:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2044, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "38945:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "src": "38915:39:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2046, + "nodeType": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2047, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2051, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39020:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2052, + "indexExpression": { + "expression": { + "id": 2049, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "39033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "39033:14:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39020:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2053, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "39051:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39067:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "39051:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39020:48:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 2058, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39174:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2061, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39174:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "39174:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "39174:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2064, + "nodeType": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "expression": { + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "39260:24:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 2065, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39267:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2066, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39267:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2068, + "indexExpression": { + "id": 2067, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "39280:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39267:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2070, + "nodeType": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39306:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2007, + "id": 2072, + "nodeType": "Return", + "src": "39299:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1999, + "nodeType": "StructuredDocumentation", + "src": "37691:157:1", + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2079, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2001, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37870:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2000, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37870:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37887:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2002, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37887:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37869:30:1" + }, + "returnParameters": { + "id": 2007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2006, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37917:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2005, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37917:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37916:6:1" + }, + "scope": 2480, + "src": "37853:1517:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2096, + "nodeType": "Block", + "src": "39526:46:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 2089, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2082, + "src": "39543:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2090, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39543:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2092, + "indexExpression": { + "id": 2091, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2084, + "src": "39556:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "39543:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39564:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "39543:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2088, + "id": 2095, + "nodeType": "Return", + "src": "39536:29:1" + } + ] + }, + "documentation": { + "id": 2080, + "nodeType": "StructuredDocumentation", + "src": "39376:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2082, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39468:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2081, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2084, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39485:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2083, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "39485:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "39467:30:1" + }, + "returnParameters": { + "id": 2088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2087, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2086, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "39520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "39519:6:1" + }, + "scope": 2480, + "src": "39449:123:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2109, + "nodeType": "Block", + "src": "39727:43:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 2105, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "39744:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39744:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "39744:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2104, + "id": 2108, + "nodeType": "Return", + "src": "39737:26:1" + } + ] + }, + "documentation": { + "id": 2098, + "nodeType": "StructuredDocumentation", + "src": "39578:79:1", + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2100, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39679:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2099, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39679:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "src": "39678:17:1" + }, + "returnParameters": { + "id": 2104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2103, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39718:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "39718:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "39717:9:1" + }, + "scope": 2480, + "src": "39662:108:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2144, + "nodeType": "Block", + "src": "40198:189:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2123, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "40216:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2126, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40216:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40245:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + }, + "value": "EnumerableMap: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "id": 2122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "40208:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "40208:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2130, + "nodeType": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "assignments": [ + 2132 + ], + "declarations": [ + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "entry", + "nodeType": "VariableDeclaration", + "scope": 2144, + "src": "40293:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2131, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "40293:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2137, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2133, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40318:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40318:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2136, + "indexExpression": { + "id": 2135, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40331:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40318:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "expression": { + "components": [ + { + "expression": { + "id": 2138, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40355:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2139, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "40355:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 2140, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40367:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40367:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40354:26:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "functionReturnParameters": 2121, + "id": 2143, + "nodeType": "Return", + "src": "40347:33:1" + } + ] + }, + "documentation": { + "id": 2111, + "nodeType": "StructuredDocumentation", + "src": "39775:333:1", + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2145, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2113, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40126:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2112, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40126:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2115, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40143:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40143:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "40125:32:1" + }, + "returnParameters": { + "id": 2121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40180:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40180:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40189:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2119, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40189:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40179:18:1" + }, + "scope": 2480, + "src": "40113:274:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2182, + "nodeType": "Block", + "src": "40613:220:1", + "statements": [ + { + "assignments": [ + 2158 + ], + "declarations": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2182, + "src": "40623:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40623:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2163, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2159, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40642:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "40642:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2162, + "indexExpression": { + "id": 2161, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2150, + "src": "40655:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40642:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2164, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40673:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40685:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "40673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2171, + "nodeType": "IfStatement", + "src": "40669:36:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40696:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40703:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2169, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40695:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2156, + "id": 2170, + "nodeType": "Return", + "src": "40688:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40759:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 2173, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40765:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2174, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40765:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2178, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2175, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40778:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40789:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "40778:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40765:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40765:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2180, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40758:41:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "functionReturnParameters": 2156, + "id": 2181, + "nodeType": "Return", + "src": "40751:48:1" + } + ] + }, + "documentation": { + "id": 2146, + "nodeType": "StructuredDocumentation", + "src": "40393:131:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2183, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2151, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40546:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2147, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40546:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2150, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40563:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2149, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40563:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40545:30:1" + }, + "returnParameters": { + "id": 2156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2153, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40598:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2152, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "40598:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2155, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40604:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2154, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40604:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40597:15:1" + }, + "scope": 2480, + "src": "40529:304:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2215, + "nodeType": "Block", + "src": "41060:232:1", + "statements": [ + { + "assignments": [ + 2194 + ], + "declarations": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2215, + "src": "41070:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41070:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2199, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2195, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41089:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2196, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41089:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2198, + "indexExpression": { + "id": 2197, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2188, + "src": "41102:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41089:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2201, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41124:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41136:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41124:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "id": 2204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41139:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + }, + "value": "EnumerableMap: nonexistent key" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "id": 2200, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41116:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2206, + "nodeType": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2207, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41225:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2208, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41225:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2212, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2209, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41238:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41249:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41238:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41225:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2213, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41225:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2192, + "id": 2214, + "nodeType": "Return", + "src": "41218:40:1" + } + ] + }, + "documentation": { + "id": 2184, + "nodeType": "StructuredDocumentation", + "src": "40839:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2186, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "40999:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2185, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40999:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2188, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41016:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2187, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40998:30:1" + }, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2190, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41050:9:1" + }, + "scope": 2480, + "src": "40985:307:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2250, + "nodeType": "Block", + "src": "41677:212:1", + "statements": [ + { + "assignments": [ + 2229 + ], + "declarations": [ + { + "constant": false, + "id": 2229, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2250, + "src": "41687:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41687:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2234, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2230, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41706:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2231, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41706:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2233, + "indexExpression": { + "id": 2232, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "41719:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41706:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2236, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41741:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41753:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41741:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2239, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2223, + "src": "41756:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2235, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41733:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41733:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2241, + "nodeType": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2242, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41822:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41822:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2247, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2244, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41835:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41846:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41835:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41822:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41822:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2227, + "id": 2249, + "nodeType": "Return", + "src": "41815:40:1" + } + ] + }, + "documentation": { + "id": 2217, + "nodeType": "StructuredDocumentation", + "src": "41298:271:1", + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2251, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2219, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41588:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2218, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41588:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2221, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41605:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2220, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2223, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41618:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2222, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "41618:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "41587:58:1" + }, + "returnParameters": { + "id": 2227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2226, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41668:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2225, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41668:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41667:9:1" + }, + "scope": 2480, + "src": "41574:315:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableMap.UintToAddressMap", + "id": 2254, + "members": [ + { + "constant": false, + "id": 2253, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 2254, + "src": "41954:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2252, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41954:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "name": "UintToAddressMap", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "41920:51:1", + "visibility": "public" + }, + { + "body": { + "id": 2285, + "nodeType": "Block", + "src": "42293:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2267, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "42315:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42315:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2271, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2259, + "src": "42335:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42327:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2269, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42327:7:1", + "typeDescriptions": {} + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42327:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2279, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2261, + "src": "42365:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2277, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "42357:7:1", + "typeDescriptions": {} + } + }, + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42357:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42349:7:1", + "typeDescriptions": {} + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42349:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42341:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42341:7:1", + "typeDescriptions": {} + } + }, + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42341:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2266, + "name": "_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1998, + "src": "42310:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42310:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2265, + "id": 2284, + "nodeType": "Return", + "src": "42303:71:1" + } + ] + }, + "documentation": { + "id": 2255, + "nodeType": "StructuredDocumentation", + "src": "41977:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2286, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2257, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42211:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2256, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42211:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2259, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42241:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2258, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42241:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2261, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42254:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "42254:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "42210:58:1" + }, + "returnParameters": { + "id": 2265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2264, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42287:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2263, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42287:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42286:6:1" + }, + "scope": 2480, + "src": "42198:183:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2305, + "nodeType": "Block", + "src": "42623:57:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2297, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2289, + "src": "42648:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2298, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42648:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2301, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2291, + "src": "42668:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42660:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2299, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42660:7:1", + "typeDescriptions": {} + } + }, + "id": 2302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42660:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2296, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2079, + "src": "42640:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)" + } + }, + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42640:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2295, + "id": 2304, + "nodeType": "Return", + "src": "42633:40:1" + } + ] + }, + "documentation": { + "id": 2287, + "nodeType": "StructuredDocumentation", + "src": "42387:148:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2289, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42556:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2288, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42556:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2291, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42586:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42586:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42555:43:1" + }, + "returnParameters": { + "id": 2295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2294, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42617:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2293, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42617:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42616:6:1" + }, + "scope": 2480, + "src": "42540:140:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2325, + "nodeType": "Block", + "src": "42849:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2317, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2309, + "src": "42876:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42876:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2321, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "42896:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42888:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2319, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42888:7:1", + "typeDescriptions": {} + } + }, + "id": 2322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42888:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2316, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2097, + "src": "42866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42866:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2315, + "id": 2324, + "nodeType": "Return", + "src": "42859:42:1" + } + ] + }, + "documentation": { + "id": 2307, + "nodeType": "StructuredDocumentation", + "src": "42686:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2326, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2309, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42777:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2308, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42777:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2311, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42807:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42807:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42776:43:1" + }, + "returnParameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2314, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42843:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42843:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42842:6:1" + }, + "scope": 2480, + "src": "42759:149:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2339, + "nodeType": "Block", + "src": "43069:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2335, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2329, + "src": "43094:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43094:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "id": 2334, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2110, + "src": "43086:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)" + } + }, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43086:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2333, + "id": 2338, + "nodeType": "Return", + "src": "43079:26:1" + } + ] + }, + "documentation": { + "id": 2327, + "nodeType": "StructuredDocumentation", + "src": "42914:72:1", + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2340, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2329, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43007:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2328, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43007:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + } + ], + "src": "43006:30:1" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43060:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43059:9:1" + }, + "scope": 2480, + "src": "42991:121:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2378, + "nodeType": "Block", + "src": "43538:135:1", + "statements": [ + { + "assignments": [ + 2353, + 2355 + ], + "declarations": [ + { + "constant": false, + "id": 2353, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43549:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2352, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43549:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2355, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43562:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2354, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43562:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2361, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2357, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "43583:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2358, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "id": 2359, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "43595:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2356, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "43579:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)" + } + }, + "id": 2360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43579:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "expression": { + "components": [ + { + "arguments": [ + { + "id": 2364, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "43627:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43619:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43619:7:1", + "typeDescriptions": {} + } + }, + "id": 2365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43619:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2372, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2355, + "src": "43657:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43649:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43649:7:1", + "typeDescriptions": {} + } + }, + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43649:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43641:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2368, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "43641:7:1", + "typeDescriptions": {} + } + }, + "id": 2374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43641:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43633:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43633:7:1", + "typeDescriptions": {} + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43633:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2376, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43618:48:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$", + "typeString": "tuple(uint256,address payable)" + } + }, + "functionReturnParameters": 2351, + "id": 2377, + "nodeType": "Return", + "src": "43611:55:1" + } + ] + }, + "documentation": { + "id": 2341, + "nodeType": "StructuredDocumentation", + "src": "43117:318:1", + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2379, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43452:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2342, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43452:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2345, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43482:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43482:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43451:45:1" + }, + "returnParameters": { + "id": 2351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2348, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43520:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43520:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2350, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43529:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43529:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43519:18:1" + }, + "scope": 2480, + "src": "43440:233:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2417, + "nodeType": "Block", + "src": "43950:142:1", + "statements": [ + { + "assignments": [ + 2392, + 2394 + ], + "declarations": [ + { + "constant": false, + "id": 2392, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43961:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43961:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43975:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2393, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2403, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2396, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "44000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44000:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2400, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2384, + "src": "44020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44012:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2398, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44012:7:1", + "typeDescriptions": {} + } + }, + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44012:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2395, + "name": "_tryGet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2183, + "src": "43992:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)" + } + }, + "id": 2402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43992:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "expression": { + "components": [ + { + "id": 2404, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2392, + "src": "44043:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2411, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "44076:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44068:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44068:7:1", + "typeDescriptions": {} + } + }, + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44068:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2407, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44060:7:1", + "typeDescriptions": {} + } + }, + "id": 2413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44060:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44052:7:1", + "typeDescriptions": {} + } + }, + "id": 2414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44052:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2415, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44042:43:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_payable_$", + "typeString": "tuple(bool,address payable)" + } + }, + "functionReturnParameters": 2390, + "id": 2416, + "nodeType": "Return", + "src": "44035:50:1" + } + ] + }, + "documentation": { + "id": 2380, + "nodeType": "StructuredDocumentation", + "src": "43679:169:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2418, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2382, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43869:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2381, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43869:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2384, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43899:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43868:43:1" + }, + "returnParameters": { + "id": 2390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2387, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43935:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2386, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2389, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43941:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43941:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43934:15:1" + }, + "scope": 2480, + "src": "43853:239:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2446, + "nodeType": "Block", + "src": "44332:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2435, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "44378:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44378:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2439, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2423, + "src": "44398:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44390:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2437, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44390:7:1", + "typeDescriptions": {} + } + }, + "id": 2440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44390:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2434, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "src": "44373:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)" + } + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44373:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44365:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44365:7:1", + "typeDescriptions": {} + } + }, + "id": 2442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44365:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2430, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44357:7:1", + "typeDescriptions": {} + } + }, + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44357:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44349:7:1", + "typeDescriptions": {} + } + }, + "id": 2444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44349:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2427, + "id": 2445, + "nodeType": "Return", + "src": "44342:64:1" + } + ] + }, + "documentation": { + "id": 2419, + "nodeType": "StructuredDocumentation", + "src": "44098:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2447, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2421, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44257:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2420, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44257:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2423, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44287:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44287:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "44256:43:1" + }, + "returnParameters": { + "id": 2427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2426, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44323:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44323:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44322:9:1" + }, + "scope": 2480, + "src": "44244:169:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2478, + "nodeType": "Block", + "src": "44809:95:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2466, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2450, + "src": "44855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2467, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2470, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2452, + "src": "44875:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2468, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44867:7:1", + "typeDescriptions": {} + } + }, + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44867:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 2472, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "44881:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2465, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "src": "44850:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)" + } + }, + "id": 2473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44850:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44842:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44842:7:1", + "typeDescriptions": {} + } + }, + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44842:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44834:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2461, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44834:7:1", + "typeDescriptions": {} + } + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44834:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44826:7:1", + "typeDescriptions": {} + } + }, + "id": 2476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44826:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2458, + "id": 2477, + "nodeType": "Return", + "src": "44819:78:1" + } + ] + }, + "documentation": { + "id": 2448, + "nodeType": "StructuredDocumentation", + "src": "44419:269:1", + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2450, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44706:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2449, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44706:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2452, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44736:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2454, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44749:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2453, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "44749:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "44705:71:1" + }, + "returnParameters": { + "id": 2458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2457, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44799:9:1" + }, + "scope": 2480, + "src": "44693:211:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "35943:8963:1" + }, + { + "id": 2481, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "44959:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2482, + "nodeType": "StructuredDocumentation", + "src": "44992:34:1", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2566, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2564, + "nodeType": "Block", + "src": "45207:654:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2490, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45409:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45418:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45409:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2496, + "nodeType": "IfStatement", + "src": "45405:51:1", + "trueBody": { + "id": 2495, + "nodeType": "Block", + "src": "45421:35:1", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45442:3:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "functionReturnParameters": 2489, + "id": 2494, + "nodeType": "Return", + "src": "45435:10:1" + } + ] + } + }, + { + "assignments": [ + 2498 + ], + "declarations": [ + { + "constant": false, + "id": 2498, + "mutability": "mutable", + "name": "temp", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45465:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2500, + "initialValue": { + "id": 2499, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45480:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "assignments": [ + 2502 + ], + "declarations": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "digits", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45495:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45495:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2503, + "nodeType": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "body": { + "id": 2514, + "nodeType": "Block", + "src": "45537:57:1", + "statements": [ + { + "expression": { + "id": 2508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "45551:8:1", + "subExpression": { + "id": 2507, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45551:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2509, + "nodeType": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "expression": { + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2510, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45581:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45573:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2513, + "nodeType": "ExpressionStatement", + "src": "45573:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2504, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45526:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45534:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45526:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2515, + "nodeType": "WhileStatement", + "src": "45519:75:1" + }, + { + "assignments": [ + 2517 + ], + "declarations": [ + { + "constant": false, + "id": 2517, + "mutability": "mutable", + "name": "buffer", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45603:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2516, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2522, + "initialValue": { + "arguments": [ + { + "id": 2520, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45635:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "45625:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2518, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45629:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45625:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "assignments": [ + 2524 + ], + "declarations": [ + { + "constant": false, + "id": 2524, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45652:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45652:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2528, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2525, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45668:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45677:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "45668:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "expression": { + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2529, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45688:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2530, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45695:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45688:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2532, + "nodeType": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "body": { + "id": 2557, + "nodeType": "Block", + "src": "45728:96:1", + "statements": [ + { + "expression": { + "id": 2551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2536, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45742:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2539, + "indexExpression": { + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "45749:7:1", + "subExpression": { + "id": 2537, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2524, + "src": "45749:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "45742:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3438", + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45773:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2545, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45778:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3130", + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45785:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45778:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45773:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45767:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2542, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "45767:5:1", + "typeDescriptions": {} + } + }, + "id": 2549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45767:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 2540, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "45760:6:1", + "typeDescriptions": {} + } + }, + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45760:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "45742:47:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2552, + "nodeType": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "expression": { + "id": 2555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2553, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45803:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45811:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45803:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2556, + "nodeType": "ExpressionStatement", + "src": "45803:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2533, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45717:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45725:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45717:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2558, + "nodeType": "WhileStatement", + "src": "45710:114:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2561, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45847:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45840:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2559, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45840:6:1", + "typeDescriptions": {} + } + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45840:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2489, + "id": 2563, + "nodeType": "Return", + "src": "45833:21:1" + } + ] + }, + "documentation": { + "id": 2483, + "nodeType": "StructuredDocumentation", + "src": "45049:82:1", + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2485, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45154:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45154:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "45153:15:1" + }, + "returnParameters": { + "id": 2489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2488, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45192:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2487, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45192:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "45191:15:1" + }, + "scope": 2566, + "src": "45136:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "45027:836:1" + }, + { + "id": 2567, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "45922:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2569, + "name": "Context", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 530, + "src": "46099:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 2570, + "nodeType": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "baseName": { + "id": 2571, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 781, + "src": "46108:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$781", + "typeString": "contract ERC165" + } + }, + "id": 2572, + "nodeType": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "baseName": { + "id": 2573, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "46116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 2574, + "nodeType": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "baseName": { + "id": 2575, + "name": "IERC721Metadata", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 680, + "src": "46125:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Metadata_$680", + "typeString": "contract IERC721Metadata" + } + }, + "id": 2576, + "nodeType": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "baseName": { + "id": 2577, + "name": "IERC721Enumerable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 709, + "src": "46142:17:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Enumerable_$709", + "typeString": "contract IERC721Enumerable" + } + }, + "id": 2578, + "nodeType": "InheritanceSpecifier", + "src": "46142:17:1" + } + ], + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "documentation": { + "id": 2568, + "nodeType": "StructuredDocumentation", + "src": "45955:124:1", + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": true, + "id": 3498, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2581, + "libraryName": { + "id": 2579, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1135, + "src": "46172:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$1135", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "46166:27:1", + "typeName": { + "id": 2580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46185:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 2584, + "libraryName": { + "id": 2582, + "name": "Address", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1430, + "src": "46204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + }, + "nodeType": "UsingForDirective", + "src": "46198:26:1", + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46216:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 2587, + "libraryName": { + "id": 2585, + "name": "EnumerableSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1921, + "src": "46235:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableSet_$1921", + "typeString": "library EnumerableSet" + } + }, + "nodeType": "UsingForDirective", + "src": "46229:46:1", + "typeName": { + "id": 2586, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46253:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + { + "id": 2590, + "libraryName": { + "id": 2588, + "name": "EnumerableMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2480, + "src": "46286:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableMap_$2480", + "typeString": "library EnumerableMap" + } + }, + "nodeType": "UsingForDirective", + "src": "46280:55:1", + "typeName": { + "id": 2589, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46304:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + } + }, + { + "id": 2593, + "libraryName": { + "id": 2591, + "name": "Strings", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2566, + "src": "46346:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Strings_$2566", + "typeString": "library Strings" + } + }, + "nodeType": "UsingForDirective", + "src": "46340:26:1", + "typeName": { + "id": 2592, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46358:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 2596, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46544:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2594, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "46544:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783135306237613032", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46587:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_353073666_by_1", + "typeString": "int_const 353073666" + }, + "value": "0x150b7a02" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2600, + "mutability": "mutable", + "name": "_holderTokens", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46681:64:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "typeName": { + "id": 2599, + "keyType": { + "id": 2597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "46681:42:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "valueType": { + "id": 2598, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46701:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2602, + "mutability": "mutable", + "name": "_tokenOwners", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46809:51:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2601, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46809:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2606, + "mutability": "mutable", + "name": "_tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46916:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 2605, + "keyType": { + "id": 2603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46925:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "46916:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 2604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46936:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2612, + "mutability": "mutable", + "name": "_operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47023:73:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 2611, + "keyType": { + "id": 2607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47023:46:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 2610, + "keyType": { + "id": 2608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47043:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2609, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "47063:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2614, + "mutability": "mutable", + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47121:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2613, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47121:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2616, + "mutability": "mutable", + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47168:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47168:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2620, + "mutability": "mutable", + "name": "_tokenURIs", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47236:46:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 2619, + "keyType": { + "id": 2617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "47245:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "47236:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 2618, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47256:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2622, + "mutability": "mutable", + "name": "_baseURI", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47305:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2621, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47305:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2625, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48204:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2623, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48204:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783830616335386364", + "id": 2624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48251:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2628, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48527:66:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2626, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48527:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783562356531333966", + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1532892063_by_1", + "typeString": "int_const 1532892063" + }, + "value": "0x5b5e139f" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2631, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48898:68:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2629, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783738306539643633", + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48956:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2014223715_by_1", + "typeString": "int_const 2014223715" + }, + "value": "0x780e9d63" + }, + "visibility": "private" + }, + { + "body": { + "id": 2659, + "nodeType": "Block", + "src": "49143:305:1", + "statements": [ + { + "expression": { + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2639, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "49153:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2640, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "49161:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49153:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2642, + "nodeType": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "expression": { + "id": 2645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2643, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "49176:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2644, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2636, + "src": "49186:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49176:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2646, + "nodeType": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2648, + "name": "_INTERFACE_ID_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "49300:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2647, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49281:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49281:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2650, + "nodeType": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2652, + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "49350:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2651, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49331:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49331:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2654, + "nodeType": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2656, + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2631, + "src": "49409:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2655, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49390:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49390:51:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2658, + "nodeType": "ExpressionStatement", + "src": "49390:51:1" + } + ] + }, + "documentation": { + "id": 2632, + "nodeType": "StructuredDocumentation", + "src": "48973:108:1", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2660, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2634, + "mutability": "mutable", + "name": "name_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49099:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2633, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49099:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2636, + "mutability": "mutable", + "name": "symbol_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49120:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2635, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49120:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "49098:44:1" + }, + "returnParameters": { + "id": 2638, + "nodeType": "ParameterList", + "parameters": [], + "src": "49143:0:1" + }, + "scope": 3498, + "src": "49086:362:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 580 + ], + "body": { + "id": 2685, + "nodeType": "Block", + "src": "49588:137:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2670, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49606:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49623:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "49615:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49615:7:1", + "typeDescriptions": {} + } + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49615:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "49606:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49627:44:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + }, + "value": "ERC721: balance query for the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "id": 2669, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "49598:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49598:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2678, + "nodeType": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 2679, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "49689:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2681, + "indexExpression": { + "id": 2680, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49703:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "49689:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2682, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "49689:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + } + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49689:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2668, + "id": 2684, + "nodeType": "Return", + "src": "49682:36:1" + } + ] + }, + "documentation": { + "id": 2661, + "nodeType": "StructuredDocumentation", + "src": "49454:48:1", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 2686, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2665, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49561:8:1" + }, + "parameters": { + "id": 2664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2663, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49526:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49526:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49525:15:1" + }, + "returnParameters": { + "id": 2668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2667, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49579:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49579:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49578:9:1" + }, + "scope": 3498, + "src": "49507:218:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 588 + ], + "body": { + "id": 2701, + "nodeType": "Block", + "src": "49863:94:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2697, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "49897:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49906:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + }, + "value": "ERC721: owner query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "expression": { + "id": 2695, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "49880:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2696, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 2479, + "src": "49880:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + } + }, + "id": 2699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49880:70:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2694, + "id": 2700, + "nodeType": "Return", + "src": "49873:77:1" + } + ] + }, + "documentation": { + "id": 2687, + "nodeType": "StructuredDocumentation", + "src": "49731:46:1", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 2702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2691, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49836:8:1" + }, + "parameters": { + "id": 2690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2689, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49799:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49799:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49798:17:1" + }, + "returnParameters": { + "id": 2694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49854:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49854:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49853:9:1" + }, + "scope": 3498, + "src": "49782:175:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 665 + ], + "body": { + "id": 2711, + "nodeType": "Block", + "src": "50088:29:1", + "statements": [ + { + "expression": { + "id": 2709, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "50105:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2708, + "id": 2710, + "nodeType": "Return", + "src": "50098:12:1" + } + ] + }, + "documentation": { + "id": 2703, + "nodeType": "StructuredDocumentation", + "src": "49963:51:1", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 2712, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2705, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50055:8:1" + }, + "parameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [], + "src": "50032:2:1" + }, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2707, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2712, + "src": "50073:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2706, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50073:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50072:15:1" + }, + "scope": 3498, + "src": "50019:98:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 671 + ], + "body": { + "id": 2721, + "nodeType": "Block", + "src": "50252:31:1", + "statements": [ + { + "expression": { + "id": 2719, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "50269:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2718, + "id": 2720, + "nodeType": "Return", + "src": "50262:14:1" + } + ] + }, + "documentation": { + "id": 2713, + "nodeType": "StructuredDocumentation", + "src": "50123:53:1", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 2722, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2715, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50219:8:1" + }, + "parameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [], + "src": "50196:2:1" + }, + "returnParameters": { + "id": 2718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2717, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2722, + "src": "50237:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2716, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50237:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50236:15:1" + }, + "scope": 3498, + "src": "50181:102:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 679 + ], + "body": { + "id": 2789, + "nodeType": "Block", + "src": "50437:688:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2733, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50463:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2732, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "50455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50455:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50473:49:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + }, + "value": "ERC721Metadata: URI query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "id": 2731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "50447:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50447:76:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "assignments": [ + 2739 + ], + "declarations": [ + { + "constant": false, + "id": 2739, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50534:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50534:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2743, + "initialValue": { + "baseExpression": { + "id": 2740, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "50560:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 2742, + "indexExpression": { + "id": 2741, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50571:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "50560:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "assignments": [ + 2745 + ], + "declarations": [ + { + "constant": false, + "id": 2745, + "mutability": "mutable", + "name": "base", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50589:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50589:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2748, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2746, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2799, + "src": "50610:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 2747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50610:9:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2751, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50698:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50692:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50692:5:1", + "typeDescriptions": {} + } + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50692:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50692:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50714:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50692:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2759, + "nodeType": "IfStatement", + "src": "50688:70:1", + "trueBody": { + "id": 2758, + "nodeType": "Block", + "src": "50717:41:1", + "statements": [ + { + "expression": { + "id": 2756, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50738:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2757, + "nodeType": "Return", + "src": "50731:16:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2762, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50860:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2760, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50860:5:1", + "typeDescriptions": {} + } + }, + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50860:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50860:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50886:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50860:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2777, + "nodeType": "IfStatement", + "src": "50856:106:1", + "trueBody": { + "id": 2776, + "nodeType": "Block", + "src": "50889:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2771, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50934:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 2772, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50940:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2769, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "50917:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "50917:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50917:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50910:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2767, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50910:6:1", + "typeDescriptions": {} + } + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50910:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2775, + "nodeType": "Return", + "src": "50903:48:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2782, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "51092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2783, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "51098:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2565, + "src": "51098:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 2785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51098:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2780, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "51075:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "51075:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51075:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "51068:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2778, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51068:6:1", + "typeDescriptions": {} + } + }, + "id": 2787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51068:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2788, + "nodeType": "Return", + "src": "51061:57:1" + } + ] + }, + "documentation": { + "id": 2723, + "nodeType": "StructuredDocumentation", + "src": "50289:55:1", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 2790, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50404:8:1" + }, + "parameters": { + "id": 2726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2725, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50367:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50367:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "50366:17:1" + }, + "returnParameters": { + "id": 2730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50422:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2728, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50422:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50421:15:1" + }, + "scope": 3498, + "src": "50349:776:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2798, + "nodeType": "Block", + "src": "51420:32:1", + "statements": [ + { + "expression": { + "id": 2796, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "51437:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2795, + "id": 2797, + "nodeType": "Return", + "src": "51430:15:1" + } + ] + }, + "documentation": { + "id": 2791, + "nodeType": "StructuredDocumentation", + "src": "51131:221:1", + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "functionSelector": "6c0360eb", + "id": 2799, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "baseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2792, + "nodeType": "ParameterList", + "parameters": [], + "src": "51373:2:1" + }, + "returnParameters": { + "id": 2795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2799, + "src": "51405:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2793, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51405:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "51404:15:1" + }, + "scope": 3498, + "src": "51357:95:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 700 + ], + "body": { + "id": 2817, + "nodeType": "Block", + "src": "51637:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2814, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "51678:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 2810, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "51654:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2812, + "indexExpression": { + "id": 2811, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2802, + "src": "51668:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "51654:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2813, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 1920, + "src": "51654:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51654:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2809, + "id": 2816, + "nodeType": "Return", + "src": "51647:37:1" + } + ] + }, + "documentation": { + "id": 2800, + "nodeType": "StructuredDocumentation", + "src": "51458:68:1", + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "functionSelector": "2f745c59", + "id": 2818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2806, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51610:8:1" + }, + "parameters": { + "id": 2805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2802, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51560:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "51560:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2804, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51575:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2803, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51575:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51559:30:1" + }, + "returnParameters": { + "id": 2809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2808, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51628:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51628:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51627:9:1" + }, + "scope": 3498, + "src": "51531:160:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 690 + ], + "body": { + "id": 2829, + "nodeType": "Block", + "src": "51832:138:1", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2825, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "51942:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 2340, + "src": "51942:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51942:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2824, + "id": 2828, + "nodeType": "Return", + "src": "51935:28:1" + } + ] + }, + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "51697:60:1", + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 2830, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2821, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51805:8:1" + }, + "parameters": { + "id": 2820, + "nodeType": "ParameterList", + "parameters": [], + "src": "51782:2:1" + }, + "returnParameters": { + "id": 2824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2823, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2830, + "src": "51823:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51823:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51822:9:1" + }, + "scope": 3498, + "src": "51762:208:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 708 + ], + "body": { + "id": 2848, + "nodeType": "Block", + "src": "52126:85:1", + "statements": [ + { + "assignments": [ + 2840, + null + ], + "declarations": [ + { + "constant": false, + "id": 2840, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2848, + "src": "52137:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2839, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52137:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2845, + "initialValue": { + "arguments": [ + { + "id": 2843, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2833, + "src": "52174:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2841, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "52158:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 2379, + "src": "52158:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + } + }, + "id": 2844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52158:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$", + "typeString": "tuple(uint256,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "expression": { + "id": 2846, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2840, + "src": "52197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2838, + "id": 2847, + "nodeType": "Return", + "src": "52190:14:1" + } + ] + }, + "documentation": { + "id": 2831, + "nodeType": "StructuredDocumentation", + "src": "51976:61:1", + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "functionSelector": "4f6ccce7", + "id": 2849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2835, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52099:8:1" + }, + "parameters": { + "id": 2834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2833, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52064:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52064:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52063:15:1" + }, + "returnParameters": { + "id": 2838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2837, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52117:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52116:9:1" + }, + "scope": 3498, + "src": "52042:169:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 616 + ], + "body": { + "id": 2892, + "nodeType": "Block", + "src": "52338:325:1", + "statements": [ + { + "assignments": [ + 2859 + ], + "declarations": [ + { + "constant": false, + "id": 2859, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2892, + "src": "52348:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52348:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2864, + "initialValue": { + "arguments": [ + { + "id": 2862, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52379:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2860, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52364:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "52364:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52364:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2866, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52405:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2867, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52411:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52405:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "id": 2869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52418:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + }, + "value": "ERC721: approval to current owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "id": 2865, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52397:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52397:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2871, + "nodeType": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2873, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52473:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52473:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2875, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52489:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52473:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 2879, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52522:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2880, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52529:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52529:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 2877, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52498:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "52498:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52498:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "52473:69:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52556:58:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + }, + "value": "ERC721: approve caller is not owner nor approved for all" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "id": 2872, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52465:159:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2886, + "nodeType": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2888, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52644:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2889, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52648:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2887, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "52635:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52635:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2891, + "nodeType": "ExpressionStatement", + "src": "52635:21:1" + } + ] + }, + "documentation": { + "id": 2850, + "nodeType": "StructuredDocumentation", + "src": "52217:46:1", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 2893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2856, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52329:8:1" + }, + "parameters": { + "id": 2855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2852, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52285:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52285:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2854, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52297:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52284:29:1" + }, + "returnParameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [], + "src": "52338:0:1" + }, + "scope": 3498, + "src": "52268:395:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 624 + ], + "body": { + "id": 2913, + "nodeType": "Block", + "src": "52809:132:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2904, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2903, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "52827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52827:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52845:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + }, + "value": "ERC721: approved query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "id": 2902, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52819:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2908, + "nodeType": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "expression": { + "baseExpression": { + "id": 2909, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "52910:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 2911, + "indexExpression": { + "id": 2910, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52926:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "52910:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2901, + "id": 2912, + "nodeType": "Return", + "src": "52903:31:1" + } + ] + }, + "documentation": { + "id": 2894, + "nodeType": "StructuredDocumentation", + "src": "52669:50:1", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 2914, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2898, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52782:8:1" + }, + "parameters": { + "id": 2897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2896, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52745:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52744:17:1" + }, + "returnParameters": { + "id": 2901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2900, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2899, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "52799:9:1" + }, + "scope": 3498, + "src": "52724:217:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 632 + ], + "body": { + "id": 2947, + "nodeType": "Block", + "src": "53092:206:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2924, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53110:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2925, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53122:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53122:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "53110:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "id": 2928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53136:27:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + }, + "value": "ERC721: approve to caller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "id": 2923, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53102:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53102:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2930, + "nodeType": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "expression": { + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 2931, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53175:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2935, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2932, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53194:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53194:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53175:32:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2936, + "indexExpression": { + "id": 2934, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53208:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "53175:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2937, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53220:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "53175:53:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2941, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53258:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53258:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2943, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53272:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2944, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53282:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2940, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "53243:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 2945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53243:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2946, + "nodeType": "EmitStatement", + "src": "53238:53:1" + } + ] + }, + "documentation": { + "id": 2915, + "nodeType": "StructuredDocumentation", + "src": "52947:56:1", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 2948, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2921, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53083:8:1" + }, + "parameters": { + "id": 2920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2917, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53035:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53035:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2919, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53053:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2918, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53053:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53034:33:1" + }, + "returnParameters": { + "id": 2922, + "nodeType": "ParameterList", + "parameters": [], + "src": "53092:0:1" + }, + "scope": 3498, + "src": "53008:290:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 642 + ], + "body": { + "id": 2965, + "nodeType": "Block", + "src": "53467:59:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 2959, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53484:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2961, + "indexExpression": { + "id": 2960, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "53503:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2963, + "indexExpression": { + "id": 2962, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "53510:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2958, + "id": 2964, + "nodeType": "Return", + "src": "53477:42:1" + } + ] + }, + "documentation": { + "id": 2949, + "nodeType": "StructuredDocumentation", + "src": "53304:55:1", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 2966, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2955, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53443:8:1" + }, + "parameters": { + "id": 2954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53390:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53390:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2953, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53405:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53405:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "53389:33:1" + }, + "returnParameters": { + "id": 2958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2957, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2956, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53460:6:1" + }, + "scope": 3498, + "src": "53364:162:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 608 + ], + "body": { + "id": 2992, + "nodeType": "Block", + "src": "53677:211:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2979, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53766:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53766:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2981, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53780:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2978, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "53747:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53747:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53790:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 2977, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53739:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53739:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2985, + "nodeType": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2987, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2969, + "src": "53863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2988, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2971, + "src": "53869:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2989, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53873:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2986, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "53853:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53853:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2991, + "nodeType": "ExpressionStatement", + "src": "53853:28:1" + } + ] + }, + "documentation": { + "id": 2967, + "nodeType": "StructuredDocumentation", + "src": "53532:51:1", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 2993, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2975, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53668:8:1" + }, + "parameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2969, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53610:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53610:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2971, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53624:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53624:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2973, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53636:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "53636:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53609:43:1" + }, + "returnParameters": { + "id": 2976, + "nodeType": "ParameterList", + "parameters": [], + "src": "53677:0:1" + }, + "scope": 3498, + "src": "53588:300:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 598 + ], + "body": { + "id": 3011, + "nodeType": "Block", + "src": "54047:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3005, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2996, + "src": "54074:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3006, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2998, + "src": "54080:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3007, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3000, + "src": "54084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54093:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3004, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "src": "54057:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54057:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3010, + "nodeType": "ExpressionStatement", + "src": "54057:39:1" + } + ] + }, + "documentation": { + "id": 2994, + "nodeType": "StructuredDocumentation", + "src": "53894:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 3012, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3002, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54038:8:1" + }, + "parameters": { + "id": 3001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2996, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53980:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53980:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2998, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53994:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2997, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53994:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3000, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "54006:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54006:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53979:43:1" + }, + "returnParameters": { + "id": 3003, + "nodeType": "ParameterList", + "parameters": [], + "src": "54047:0:1" + }, + "scope": 3498, + "src": "53954:149:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 654 + ], + "body": { + "id": 3041, + "nodeType": "Block", + "src": "54282:169:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3027, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "54319:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54319:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3029, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3026, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "54300:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 3030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54300:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 3031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54343:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 3025, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "54292:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54292:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3033, + "nodeType": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3035, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3015, + "src": "54419:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3036, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3017, + "src": "54425:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3037, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3038, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3021, + "src": "54438:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3034, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3071, + "src": "54405:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54405:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3040, + "nodeType": "ExpressionStatement", + "src": "54405:39:1" + } + ] + }, + "documentation": { + "id": 3013, + "nodeType": "StructuredDocumentation", + "src": "54109:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 3042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3023, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54273:8:1" + }, + "parameters": { + "id": 3022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3015, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54195:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54195:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3017, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54209:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3016, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54209:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3019, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54221:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3021, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54238:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3020, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "54238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "54194:63:1" + }, + "returnParameters": { + "id": 3024, + "nodeType": "ParameterList", + "parameters": [], + "src": "54282:0:1" + }, + "scope": 3498, + "src": "54169:282:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 3070, + "nodeType": "Block", + "src": "55416:166:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3055, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55436:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55442:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3057, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55446:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3054, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "55426:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55426:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3059, + "nodeType": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3062, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55495:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3063, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55501:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3064, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55505:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3065, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3051, + "src": "55514:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3061, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "55472:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55472:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55522:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3060, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "55464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55464:111:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3069, + "nodeType": "ExpressionStatement", + "src": "55464:111:1" + } + ] + }, + "documentation": { + "id": 3043, + "nodeType": "StructuredDocumentation", + "src": "54457:851:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3071, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3045, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55336:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55336:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3047, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55350:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55350:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3049, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55362:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55362:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3051, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55379:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3050, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "55379:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "55335:63:1" + }, + "returnParameters": { + "id": 3053, + "nodeType": "ParameterList", + "parameters": [], + "src": "55416:0:1" + }, + "scope": 3498, + "src": "55313:269:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3084, + "nodeType": "Block", + "src": "55956:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3081, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "55995:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3079, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "55973:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3080, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 2326, + "src": "55973:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + } + }, + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55973:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3078, + "id": 3083, + "nodeType": "Return", + "src": "55966:37:1" + } + ] + }, + "documentation": { + "id": 3072, + "nodeType": "StructuredDocumentation", + "src": "55588:292:1", + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3085, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3074, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55902:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3073, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55902:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "55901:17:1" + }, + "returnParameters": { + "id": 3078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3077, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55950:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3076, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "55950:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "55949:6:1" + }, + "scope": 3498, + "src": "55885:125:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3126, + "nodeType": "Block", + "src": "56267:252:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3097, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56293:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3096, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "56285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56285:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 3099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56303:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + }, + "value": "ERC721: operator query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "id": 3095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "56277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56277:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3101, + "nodeType": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "assignments": [ + 3103 + ], + "declarations": [ + { + "constant": false, + "id": 3103, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3126, + "src": "56360:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56360:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3108, + "initialValue": { + "arguments": [ + { + "id": 3106, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56391:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3104, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56376:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "56376:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56376:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3109, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56417:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3110, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56428:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56417:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3113, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56449:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3112, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "56437:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56437:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3115, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56437:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:51:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 3120, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56496:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3121, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3118, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "56472:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56472:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:94:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3124, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56416:96:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3094, + "id": 3125, + "nodeType": "Return", + "src": "56409:103:1" + } + ] + }, + "documentation": { + "id": 3086, + "nodeType": "StructuredDocumentation", + "src": "56016:147:1", + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3088, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56196:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56196:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3090, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56213:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56213:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56195:34:1" + }, + "returnParameters": { + "id": 3094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3093, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56261:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3092, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "56261:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "56260:6:1" + }, + "scope": 3498, + "src": "56168:351:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3141, + "nodeType": "Block", + "src": "56915:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3136, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3130, + "src": "56935:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3137, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3132, + "src": "56939:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56948:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3135, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "src": "56925:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 3139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56925:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3140, + "nodeType": "ExpressionStatement", + "src": "56925:26:1" + } + ] + }, + "documentation": { + "id": 3128, + "nodeType": "StructuredDocumentation", + "src": "56525:320:1", + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3142, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3130, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56869:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3132, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56881:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56881:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56868:29:1" + }, + "returnParameters": { + "id": 3134, + "nodeType": "ParameterList", + "parameters": [], + "src": "56915:0:1" + }, + "scope": 3498, + "src": "56850:108:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3170, + "nodeType": "Block", + "src": "57264:162:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3153, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57280:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3154, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3152, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "57274:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57274:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3156, + "nodeType": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57341:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57333:7:1", + "typeDescriptions": {} + } + }, + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57333:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3163, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57345:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3164, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3165, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "57358:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3158, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "57310:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57310:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57366:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3157, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57302:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57302:117:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3169, + "nodeType": "ExpressionStatement", + "src": "57302:117:1" + } + ] + }, + "documentation": { + "id": 3143, + "nodeType": "StructuredDocumentation", + "src": "56964:210:1", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3171, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3145, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57198:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3144, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57198:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3147, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57210:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57210:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3149, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57227:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3148, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "57227:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "57197:49:1" + }, + "returnParameters": { + "id": 3151, + "nodeType": "ParameterList", + "parameters": [], + "src": "57264:0:1" + }, + "scope": 3498, + "src": "57179:247:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3229, + "nodeType": "Block", + "src": "57809:332:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3180, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57827:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57841:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57833:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57833:7:1", + "typeDescriptions": {} + } + }, + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57833:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "57827:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57845:34:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + }, + "value": "ERC721: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "id": 3179, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57819:61:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "57898:17:1", + "subExpression": { + "arguments": [ + { + "id": 3191, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57907:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3190, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "57899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57899:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57917:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + }, + "value": "ERC721: token already minted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "id": 3189, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57890:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57890:58:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3196, + "nodeType": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57988:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57980:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57980:7:1", + "typeDescriptions": {} + } + }, + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57980:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3202, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57992:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3203, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3197, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "57959:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57959:45:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3205, + "nodeType": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3210, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58037:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3206, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58015:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3208, + "indexExpression": { + "id": 3207, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58029:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58015:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3209, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "58015:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58015:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3212, + "nodeType": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3216, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58073:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3217, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58082:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3213, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58056:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3215, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "58056:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58056:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3219, + "nodeType": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58118:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58110:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58110:7:1", + "typeDescriptions": {} + } + }, + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58110:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3225, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58122:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3226, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3220, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58101:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58101:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3228, + "nodeType": "EmitStatement", + "src": "58096:38:1" + } + ] + }, + "documentation": { + "id": 3172, + "nodeType": "StructuredDocumentation", + "src": "57432:311:1", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3174, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57763:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57763:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3176, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57775:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57775:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "57762:29:1" + }, + "returnParameters": { + "id": 3178, + "nodeType": "ParameterList", + "parameters": [], + "src": "57809:0:1" + }, + "scope": 3498, + "src": "57748:393:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3298, + "nodeType": "Block", + "src": "58407:478:1", + "statements": [ + { + "assignments": [ + 3237 + ], + "declarations": [ + { + "constant": false, + "id": 3237, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "58417:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58417:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3242, + "initialValue": { + "arguments": [ + { + "id": 3240, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58448:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3238, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "58433:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "58433:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58433:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3244, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58506:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58521:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58513:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58513:7:1", + "typeDescriptions": {} + } + }, + "id": 3248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58513:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3249, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58525:7:1", + "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": 3243, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "58485:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58485:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3251, + "nodeType": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58588:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58580:7:1", + "typeDescriptions": {} + } + }, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58580:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3257, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58592:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3252, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "58571:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58571:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3259, + "nodeType": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 3262, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58656:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3264, + "indexExpression": { + "id": 3263, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58667:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58656:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 3261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58650:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3260, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "58650:5:1", + "typeDescriptions": {} + } + }, + "id": 3265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58650:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes storage pointer" + } + }, + "id": 3266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "58650:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 3267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58687:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "58650:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3275, + "nodeType": "IfStatement", + "src": "58646:95:1", + "trueBody": { + "id": 3274, + "nodeType": "Block", + "src": "58690:51:1", + "statements": [ + { + "expression": { + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "58704:26:1", + "subExpression": { + "baseExpression": { + "id": 3269, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58711:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3271, + "indexExpression": { + "id": 3270, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58722:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "58711:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3273, + "nodeType": "ExpressionStatement", + "src": "58704:26:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 3280, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58779:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3276, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58751:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3278, + "indexExpression": { + "id": 3277, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58765:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58751:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3279, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "58751:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58751:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3282, + "nodeType": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3286, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58818:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3283, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58798:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 2306, + "src": "58798:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + } + }, + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58798:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3288, + "nodeType": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3290, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58851:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58866:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58858:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58858:7:1", + "typeDescriptions": {} + } + }, + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58858:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3295, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58870:7:1", + "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": 3289, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58842:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58842:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3297, + "nodeType": "EmitStatement", + "src": "58837:41:1" + } + ] + }, + "documentation": { + "id": 3231, + "nodeType": "StructuredDocumentation", + "src": "58147:206:1", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3299, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3233, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3299, + "src": "58373:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "58372:17:1" + }, + "returnParameters": { + "id": 3235, + "nodeType": "ParameterList", + "parameters": [], + "src": "58407:0:1" + }, + "scope": 3498, + "src": "58358:527:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3370, + "nodeType": "Block", + "src": "59288:505:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3312, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59321:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3310, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "59306:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "59306:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59306:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3314, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59333:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "59306:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59339:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + }, + "value": "ERC721: transfer of token that is not own" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "id": 3309, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59298:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59298:85:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3318, + "nodeType": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3320, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59419:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59433:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59425:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59425:7:1", + "typeDescriptions": {} + } + }, + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59425:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "59419:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59437:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + }, + "value": "ERC721: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "id": 3319, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59411:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59411:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3328, + "nodeType": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3330, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59508:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3331, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59514:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3332, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59518:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3329, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "59487:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59487:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3334, + "nodeType": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59605:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59597:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59597:7:1", + "typeDescriptions": {} + } + }, + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59597:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3340, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59609:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3335, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "59588:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59588:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3342, + "nodeType": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3347, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59655:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3343, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59628:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3345, + "indexExpression": { + "id": 3344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59642:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59628:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3346, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "59628:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59628:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3354, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59695:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3350, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3352, + "indexExpression": { + "id": 3351, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59687:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59673:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3353, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "59673:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59673:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3356, + "nodeType": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3360, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59731:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3361, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59740:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3357, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "59714:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "59714:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59714:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3363, + "nodeType": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3365, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59768:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3366, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59774:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3367, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59778:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3364, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "59759:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59759:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3369, + "nodeType": "EmitStatement", + "src": "59754:32:1" + } + ] + }, + "documentation": { + "id": 3300, + "nodeType": "StructuredDocumentation", + "src": "58891:313:1", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3302, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59228:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3304, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59242:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59242:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3306, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59254:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3305, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59254:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "59227:43:1" + }, + "returnParameters": { + "id": 3308, + "nodeType": "ParameterList", + "parameters": [], + "src": "59288:0:1" + }, + "scope": 3498, + "src": "59209:584:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3392, + "nodeType": "Block", + "src": "60021:131:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3381, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60047:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3380, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "60039:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60039:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "id": 3383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "60057:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + }, + "value": "ERC721Metadata: URI set of nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "id": 3379, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "60031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60031:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3385, + "nodeType": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "expression": { + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3386, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "60114:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3388, + "indexExpression": { + "id": 3387, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60125:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "60114:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3389, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "60136:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60114:31:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3391, + "nodeType": "ExpressionStatement", + "src": "60114:31:1" + } + ] + }, + "documentation": { + "id": 3372, + "nodeType": "StructuredDocumentation", + "src": "59799:136:1", + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setTokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3374, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59962:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59962:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3376, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59979:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3375, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "59979:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "59961:42:1" + }, + "returnParameters": { + "id": 3378, + "nodeType": "ParameterList", + "parameters": [], + "src": "60021:0:1" + }, + "scope": 3498, + "src": "59940:212:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3403, + "nodeType": "Block", + "src": "60437:36:1", + "statements": [ + { + "expression": { + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3399, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "60447:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3400, + "name": "baseURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "60458:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60447:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3402, + "nodeType": "ExpressionStatement", + "src": "60447:19:1" + } + ] + }, + "documentation": { + "id": 3394, + "nodeType": "StructuredDocumentation", + "src": "60158:212:1", + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3404, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setBaseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3396, + "mutability": "mutable", + "name": "baseURI_", + "nodeType": "VariableDeclaration", + "scope": 3404, + "src": "60396:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3395, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "60396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "60395:24:1" + }, + "returnParameters": { + "id": 3398, + "nodeType": "ParameterList", + "parameters": [], + "src": "60437:0:1" + }, + "scope": 3498, + "src": "60375:98:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3461, + "nodeType": "Block", + "src": "61156:459:1", + "statements": [ + { + "condition": { + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "61170:16:1", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3418, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61171:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 1154, + "src": "61171:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61171:15:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3425, + "nodeType": "IfStatement", + "src": "61166:58:1", + "trueBody": { + "id": 3424, + "nodeType": "Block", + "src": "61188:36:1", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 3422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61209:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3417, + "id": 3423, + "nodeType": "Return", + "src": "61202:11:1" + } + ] + } + }, + { + "assignments": [ + 3427 + ], + "declarations": [ + { + "constant": false, + "id": 3427, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61233:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3426, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61233:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3445, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 3433, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61327:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3432, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "61311:15:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$726_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 3434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61311:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$726", + "typeString": "contract IERC721Receiver" + } + }, + "id": 3435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 725, + "src": "61311:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "61311:45:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3437, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "61370:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61370:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3439, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "61396:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3440, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "61414:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3441, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3413, + "src": "61435:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3430, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61275:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "61275:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 3442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61275:175:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61452:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "expression": { + "id": 3428, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61259:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 1225, + "src": "61259:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 3444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61259:246:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "assignments": [ + 3447 + ], + "declarations": [ + { + "constant": false, + "id": 3447, + "mutability": "mutable", + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61515:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3446, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61515:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "id": 3455, + "initialValue": { + "arguments": [ + { + "id": 3450, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3427, + "src": "61542:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 3452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "61555:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 3451, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61555:6:1", + "typeDescriptions": {} + } + } + ], + "id": 3453, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61554:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "expression": { + "id": 3448, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61531:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "61531:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61531:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3456, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "61581:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3457, + "name": "_ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "61591:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "61581:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3459, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61580:28:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3417, + "id": 3460, + "nodeType": "Return", + "src": "61573:35:1" + } + ] + }, + "documentation": { + "id": 3405, + "nodeType": "StructuredDocumentation", + "src": "60479:542:1", + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3462, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3407, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61058:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61058:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3409, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61072:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61072:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3411, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61084:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3410, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3413, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61101:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3412, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61101:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "61057:63:1" + }, + "returnParameters": { + "id": 3417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3416, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61146:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3415, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "61146:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "61145:6:1" + }, + "scope": 3498, + "src": "61026:589:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3485, + "nodeType": "Block", + "src": "61791:125:1", + "statements": [ + { + "expression": { + "id": 3474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3470, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "61801:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 3472, + "indexExpression": { + "id": 3471, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61817:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "61801:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3473, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61828:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "61801:29:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3475, + "nodeType": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 3479, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61869:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3477, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "61854:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "61854:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61854:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3481, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61879:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3482, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3476, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "61845:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61845:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3484, + "nodeType": "EmitStatement", + "src": "61840:51:1" + } + ] + }, + "documentation": { + "id": 3463, + "nodeType": "StructuredDocumentation", + "src": "61621:101:1", + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3486, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3465, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61745:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61745:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3467, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61757:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61757:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "61744:29:1" + }, + "returnParameters": { + "id": 3469, + "nodeType": "ParameterList", + "parameters": [], + "src": "61791:0:1" + }, + "scope": 3498, + "src": "61727:189:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3496, + "nodeType": "Block", + "src": "62602:3:1", + "statements": [] + }, + "documentation": { + "id": 3487, + "nodeType": "StructuredDocumentation", + "src": "61922:585:1", + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3497, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3489, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62542:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62542:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3491, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62556:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62556:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3493, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62568:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "62568:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "62541:43:1" + }, + "returnParameters": { + "id": 3495, + "nodeType": "ParameterList", + "parameters": [], + "src": "62602:0:1" + }, + "scope": 3498, + "src": "62512:93:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "46080:16527:1" + } + ], + "src": "84:62524:1" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "license": "MIT" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 509, + "name": "PragmaDirective", + "src": "84:31:1" + }, + { + "attributes": { + "abstract": true, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgSender", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 510, + "name": "ParameterList", + "src": "668:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 518, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 511, + "name": "ElementaryTypeName", + "src": "702:15:1" + } + ], + "id": 512, + "name": "VariableDeclaration", + "src": "702:15:1" + } + ], + "id": 513, + "name": "ParameterList", + "src": "701:17:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 513 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 514, + "name": "Identifier", + "src": "736:3:1" + } + ], + "id": 515, + "name": "MemberAccess", + "src": "736:10:1" + } + ], + "id": 516, + "name": "Return", + "src": "729:17:1" + } + ], + "id": 517, + "name": "Block", + "src": "719:34:1" + } + ], + "id": 518, + "name": "FunctionDefinition", + "src": "649:104:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgData", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 519, + "name": "ParameterList", + "src": "776:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 529, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 520, + "name": "ElementaryTypeName", + "src": "810:5:1" + } + ], + "id": 521, + "name": "VariableDeclaration", + "src": "810:12:1" + } + ], + "id": 522, + "name": "ParameterList", + "src": "809:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "contract Context", + "value": "this" + }, + "id": 523, + "name": "Identifier", + "src": "834:4:1" + } + ], + "id": 524, + "name": "ExpressionStatement", + "src": "834:4:1" + }, + { + "attributes": { + "functionReturnParameters": 522 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "data", + "type": "bytes calldata" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 525, + "name": "Identifier", + "src": "974:3:1" + } + ], + "id": 526, + "name": "MemberAccess", + "src": "974:8:1" + } + ], + "id": 527, + "name": "Return", + "src": "967:15:1" + } + ], + "id": 528, + "name": "Block", + "src": "824:165:1" + } + ], + "id": 529, + "name": "FunctionDefinition", + "src": "759:230:1" + } + ], + "id": 530, + "name": "ContractDefinition", + "src": "617:374:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 531, + "name": "PragmaDirective", + "src": "1053:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "id": 532, + "name": "StructuredDocumentation", + "src": "1086:279:1" + }, + { + "attributes": { + "functionSelector": "01ffc9a7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 541, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "id": 533, + "name": "StructuredDocumentation", + "src": "1390:340:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 534, + "name": "ElementaryTypeName", + "src": "1762:6:1" + } + ], + "id": 535, + "name": "VariableDeclaration", + "src": "1762:18:1" + } + ], + "id": 536, + "name": "ParameterList", + "src": "1761:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 537, + "name": "ElementaryTypeName", + "src": "1805:4:1" + } + ], + "id": 538, + "name": "VariableDeclaration", + "src": "1805:4:1" + } + ], + "id": 539, + "name": "ParameterList", + "src": "1804:6:1" + } + ], + "id": 540, + "name": "FunctionDefinition", + "src": "1735:76:1" + } + ], + "id": 541, + "name": "ContractDefinition", + "src": "1366:447:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 542, + "name": "PragmaDirective", + "src": "1873:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "id": 543, + "name": "StructuredDocumentation", + "src": "1907:67:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 544, + "name": "UserDefinedTypeName", + "src": "1996:7:1" + } + ], + "id": 545, + "name": "InheritanceSpecifier", + "src": "1996:7:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Transfer" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 546, + "name": "StructuredDocumentation", + "src": "2010:88:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "from", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 547, + "name": "ElementaryTypeName", + "src": "2118:7:1" + } + ], + "id": 548, + "name": "VariableDeclaration", + "src": "2118:20:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "to", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 549, + "name": "ElementaryTypeName", + "src": "2140:7:1" + } + ], + "id": 550, + "name": "VariableDeclaration", + "src": "2140:18:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 551, + "name": "ElementaryTypeName", + "src": "2160:7:1" + } + ], + "id": 552, + "name": "VariableDeclaration", + "src": "2160:23:1" + } + ], + "id": 553, + "name": "ParameterList", + "src": "2117:67:1" + } + ], + "id": 554, + "name": "EventDefinition", + "src": "2103:82:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Approval" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 555, + "name": "StructuredDocumentation", + "src": "2191:94:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 556, + "name": "ElementaryTypeName", + "src": "2305:7:1" + } + ], + "id": 557, + "name": "VariableDeclaration", + "src": "2305:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 558, + "name": "ElementaryTypeName", + "src": "2328:7:1" + } + ], + "id": 559, + "name": "VariableDeclaration", + "src": "2328:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 560, + "name": "ElementaryTypeName", + "src": "2354:7:1" + } + ], + "id": 561, + "name": "VariableDeclaration", + "src": "2354:23:1" + } + ], + "id": 562, + "name": "ParameterList", + "src": "2304:74:1" + } + ], + "id": 563, + "name": "EventDefinition", + "src": "2290:89:1" + }, + { + "attributes": { + "anonymous": false, + "name": "ApprovalForAll" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 564, + "name": "StructuredDocumentation", + "src": "2385:117:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 565, + "name": "ElementaryTypeName", + "src": "2528:7:1" + } + ], + "id": 566, + "name": "VariableDeclaration", + "src": "2528:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 567, + "name": "ElementaryTypeName", + "src": "2551:7:1" + } + ], + "id": 568, + "name": "VariableDeclaration", + "src": "2551:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 569, + "name": "ElementaryTypeName", + "src": "2577:4:1" + } + ], + "id": 570, + "name": "VariableDeclaration", + "src": "2577:13:1" + } + ], + "id": 571, + "name": "ParameterList", + "src": "2527:64:1" + } + ], + "id": 572, + "name": "EventDefinition", + "src": "2507:85:1" + }, + { + "attributes": { + "functionSelector": "70a08231", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "id": 573, + "name": "StructuredDocumentation", + "src": "2598:76:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 574, + "name": "ElementaryTypeName", + "src": "2698:7:1" + } + ], + "id": 575, + "name": "VariableDeclaration", + "src": "2698:13:1" + } + ], + "id": 576, + "name": "ParameterList", + "src": "2697:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "balance", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 577, + "name": "ElementaryTypeName", + "src": "2736:7:1" + } + ], + "id": 578, + "name": "VariableDeclaration", + "src": "2736:15:1" + } + ], + "id": 579, + "name": "ParameterList", + "src": "2735:17:1" + } + ], + "id": 580, + "name": "FunctionDefinition", + "src": "2679:74:1" + }, + { + "attributes": { + "functionSelector": "6352211e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 581, + "name": "StructuredDocumentation", + "src": "2759:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 582, + "name": "ElementaryTypeName", + "src": "2912:7:1" + } + ], + "id": 583, + "name": "VariableDeclaration", + "src": "2912:15:1" + } + ], + "id": 584, + "name": "ParameterList", + "src": "2911:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 585, + "name": "ElementaryTypeName", + "src": "2952:7:1" + } + ], + "id": 586, + "name": "VariableDeclaration", + "src": "2952:13:1" + } + ], + "id": 587, + "name": "ParameterList", + "src": "2951:15:1" + } + ], + "id": 588, + "name": "FunctionDefinition", + "src": "2895:72:1" + }, + { + "attributes": { + "functionSelector": "42842e0e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 589, + "name": "StructuredDocumentation", + "src": "2973:690:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 590, + "name": "ElementaryTypeName", + "src": "3694:7:1" + } + ], + "id": 591, + "name": "VariableDeclaration", + "src": "3694:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 592, + "name": "ElementaryTypeName", + "src": "3708:7:1" + } + ], + "id": 593, + "name": "VariableDeclaration", + "src": "3708:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 594, + "name": "ElementaryTypeName", + "src": "3720:7:1" + } + ], + "id": 595, + "name": "VariableDeclaration", + "src": "3720:15:1" + } + ], + "id": 596, + "name": "ParameterList", + "src": "3693:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 597, + "name": "ParameterList", + "src": "3745:0:1" + } + ], + "id": 598, + "name": "FunctionDefinition", + "src": "3668:78:1" + }, + { + "attributes": { + "functionSelector": "23b872dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "id": 599, + "name": "StructuredDocumentation", + "src": "3752:504:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 600, + "name": "ElementaryTypeName", + "src": "4283:7:1" + } + ], + "id": 601, + "name": "VariableDeclaration", + "src": "4283:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 602, + "name": "ElementaryTypeName", + "src": "4297:7:1" + } + ], + "id": 603, + "name": "VariableDeclaration", + "src": "4297:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 604, + "name": "ElementaryTypeName", + "src": "4309:7:1" + } + ], + "id": 605, + "name": "VariableDeclaration", + "src": "4309:15:1" + } + ], + "id": 606, + "name": "ParameterList", + "src": "4282:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 607, + "name": "ParameterList", + "src": "4334:0:1" + } + ], + "id": 608, + "name": "FunctionDefinition", + "src": "4261:74:1" + }, + { + "attributes": { + "functionSelector": "095ea7b3", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "id": 609, + "name": "StructuredDocumentation", + "src": "4341:452:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 610, + "name": "ElementaryTypeName", + "src": "4815:7:1" + } + ], + "id": 611, + "name": "VariableDeclaration", + "src": "4815:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 612, + "name": "ElementaryTypeName", + "src": "4827:7:1" + } + ], + "id": 613, + "name": "VariableDeclaration", + "src": "4827:15:1" + } + ], + "id": 614, + "name": "ParameterList", + "src": "4814:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 615, + "name": "ParameterList", + "src": "4852:0:1" + } + ], + "id": 616, + "name": "FunctionDefinition", + "src": "4798:55:1" + }, + { + "attributes": { + "functionSelector": "081812fc", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 617, + "name": "StructuredDocumentation", + "src": "4859:139:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 618, + "name": "ElementaryTypeName", + "src": "5024:7:1" + } + ], + "id": 619, + "name": "VariableDeclaration", + "src": "5024:15:1" + } + ], + "id": 620, + "name": "ParameterList", + "src": "5023:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 621, + "name": "ElementaryTypeName", + "src": "5064:7:1" + } + ], + "id": 622, + "name": "VariableDeclaration", + "src": "5064:16:1" + } + ], + "id": 623, + "name": "ParameterList", + "src": "5063:18:1" + } + ], + "id": 624, + "name": "FunctionDefinition", + "src": "5003:79:1" + }, + { + "attributes": { + "functionSelector": "a22cb465", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "id": 625, + "name": "StructuredDocumentation", + "src": "5088:309:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 626, + "name": "ElementaryTypeName", + "src": "5429:7:1" + } + ], + "id": 627, + "name": "VariableDeclaration", + "src": "5429:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_approved", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 628, + "name": "ElementaryTypeName", + "src": "5447:4:1" + } + ], + "id": 629, + "name": "VariableDeclaration", + "src": "5447:14:1" + } + ], + "id": 630, + "name": "ParameterList", + "src": "5428:34:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 631, + "name": "ParameterList", + "src": "5471:0:1" + } + ], + "id": 632, + "name": "FunctionDefinition", + "src": "5402:70:1" + }, + { + "attributes": { + "functionSelector": "e985e9c5", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "id": 633, + "name": "StructuredDocumentation", + "src": "5478:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 634, + "name": "ElementaryTypeName", + "src": "5647:7:1" + } + ], + "id": 635, + "name": "VariableDeclaration", + "src": "5647:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 636, + "name": "ElementaryTypeName", + "src": "5662:7:1" + } + ], + "id": 637, + "name": "VariableDeclaration", + "src": "5662:16:1" + } + ], + "id": 638, + "name": "ParameterList", + "src": "5646:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 639, + "name": "ElementaryTypeName", + "src": "5703:4:1" + } + ], + "id": 640, + "name": "VariableDeclaration", + "src": "5703:4:1" + } + ], + "id": 641, + "name": "ParameterList", + "src": "5702:6:1" + } + ], + "id": 642, + "name": "FunctionDefinition", + "src": "5621:88:1" + }, + { + "attributes": { + "functionSelector": "b88d4fde", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 643, + "name": "StructuredDocumentation", + "src": "5715:568:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 644, + "name": "ElementaryTypeName", + "src": "6314:7:1" + } + ], + "id": 645, + "name": "VariableDeclaration", + "src": "6314:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 646, + "name": "ElementaryTypeName", + "src": "6328:7:1" + } + ], + "id": 647, + "name": "VariableDeclaration", + "src": "6328:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 648, + "name": "ElementaryTypeName", + "src": "6340:7:1" + } + ], + "id": 649, + "name": "VariableDeclaration", + "src": "6340:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 654, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 650, + "name": "ElementaryTypeName", + "src": "6357:5:1" + } + ], + "id": 651, + "name": "VariableDeclaration", + "src": "6357:19:1" + } + ], + "id": 652, + "name": "ParameterList", + "src": "6313:64:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 653, + "name": "ParameterList", + "src": "6386:0:1" + } + ], + "id": 654, + "name": "FunctionDefinition", + "src": "6288:99:1" + } + ], + "id": 655, + "name": "ContractDefinition", + "src": "1975:4414:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 656, + "name": "PragmaDirective", + "src": "6457:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 657, + "name": "StructuredDocumentation", + "src": "6491:133:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 658, + "name": "UserDefinedTypeName", + "src": "6654:7:1" + } + ], + "id": 659, + "name": "InheritanceSpecifier", + "src": "6654:7:1" + }, + { + "attributes": { + "functionSelector": "06fdde03", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection name." + }, + "id": 660, + "name": "StructuredDocumentation", + "src": "6669:58:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 661, + "name": "ParameterList", + "src": "6745:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 665, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 662, + "name": "ElementaryTypeName", + "src": "6771:6:1" + } + ], + "id": 663, + "name": "VariableDeclaration", + "src": "6771:13:1" + } + ], + "id": 664, + "name": "ParameterList", + "src": "6770:15:1" + } + ], + "id": 665, + "name": "FunctionDefinition", + "src": "6732:54:1" + }, + { + "attributes": { + "functionSelector": "95d89b41", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection symbol." + }, + "id": 666, + "name": "StructuredDocumentation", + "src": "6792:60:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 667, + "name": "ParameterList", + "src": "6872:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 671, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 668, + "name": "ElementaryTypeName", + "src": "6898:6:1" + } + ], + "id": 669, + "name": "VariableDeclaration", + "src": "6898:13:1" + } + ], + "id": 670, + "name": "ParameterList", + "src": "6897:15:1" + } + ], + "id": 671, + "name": "FunctionDefinition", + "src": "6857:56:1" + }, + { + "attributes": { + "functionSelector": "c87b56dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "id": 672, + "name": "StructuredDocumentation", + "src": "6919:90:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 679, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 673, + "name": "ElementaryTypeName", + "src": "7032:7:1" + } + ], + "id": 674, + "name": "VariableDeclaration", + "src": "7032:15:1" + } + ], + "id": 675, + "name": "ParameterList", + "src": "7031:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 679, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 676, + "name": "ElementaryTypeName", + "src": "7072:6:1" + } + ], + "id": 677, + "name": "VariableDeclaration", + "src": "7072:13:1" + } + ], + "id": 678, + "name": "ParameterList", + "src": "7071:15:1" + } + ], + "id": 679, + "name": "FunctionDefinition", + "src": "7014:73:1" + } + ], + "id": 680, + "name": "ContractDefinition", + "src": "6625:464:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 681, + "name": "PragmaDirective", + "src": "7161:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 682, + "name": "StructuredDocumentation", + "src": "7195:136:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 683, + "name": "UserDefinedTypeName", + "src": "7363:7:1" + } + ], + "id": 684, + "name": "InheritanceSpecifier", + "src": "7363:7:1" + }, + { + "attributes": { + "functionSelector": "18160ddd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "id": 685, + "name": "StructuredDocumentation", + "src": "7378:82:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 686, + "name": "ParameterList", + "src": "7485:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 690, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 687, + "name": "ElementaryTypeName", + "src": "7511:7:1" + } + ], + "id": 688, + "name": "VariableDeclaration", + "src": "7511:7:1" + } + ], + "id": 689, + "name": "ParameterList", + "src": "7510:9:1" + } + ], + "id": 690, + "name": "FunctionDefinition", + "src": "7465:55:1" + }, + { + "attributes": { + "functionSelector": "2f745c59", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "id": 691, + "name": "StructuredDocumentation", + "src": "7526:171:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 692, + "name": "ElementaryTypeName", + "src": "7731:7:1" + } + ], + "id": 693, + "name": "VariableDeclaration", + "src": "7731:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 694, + "name": "ElementaryTypeName", + "src": "7746:7:1" + } + ], + "id": 695, + "name": "VariableDeclaration", + "src": "7746:13:1" + } + ], + "id": 696, + "name": "ParameterList", + "src": "7730:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 697, + "name": "ElementaryTypeName", + "src": "7784:7:1" + } + ], + "id": 698, + "name": "VariableDeclaration", + "src": "7784:15:1" + } + ], + "id": 699, + "name": "ParameterList", + "src": "7783:17:1" + } + ], + "id": 700, + "name": "FunctionDefinition", + "src": "7702:99:1" + }, + { + "attributes": { + "functionSelector": "4f6ccce7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "id": 701, + "name": "StructuredDocumentation", + "src": "7807:164:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 702, + "name": "ElementaryTypeName", + "src": "7998:7:1" + } + ], + "id": 703, + "name": "VariableDeclaration", + "src": "7998:13:1" + } + ], + "id": 704, + "name": "ParameterList", + "src": "7997:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 705, + "name": "ElementaryTypeName", + "src": "8036:7:1" + } + ], + "id": 706, + "name": "VariableDeclaration", + "src": "8036:7:1" + } + ], + "id": 707, + "name": "ParameterList", + "src": "8035:9:1" + } + ], + "id": 708, + "name": "FunctionDefinition", + "src": "7976:69:1" + } + ], + "id": 709, + "name": "ContractDefinition", + "src": "7332:715:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 710, + "name": "PragmaDirective", + "src": "8117:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "id": 711, + "name": "StructuredDocumentation", + "src": "8150:152:1" + }, + { + "attributes": { + "functionSelector": "150b7a02", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "onERC721Received", + "scope": 726, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "id": 712, + "name": "StructuredDocumentation", + "src": "8335:485:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 713, + "name": "ElementaryTypeName", + "src": "8851:7:1" + } + ], + "id": 714, + "name": "VariableDeclaration", + "src": "8851:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 715, + "name": "ElementaryTypeName", + "src": "8869:7:1" + } + ], + "id": 716, + "name": "VariableDeclaration", + "src": "8869:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 717, + "name": "ElementaryTypeName", + "src": "8883:7:1" + } + ], + "id": 718, + "name": "VariableDeclaration", + "src": "8883:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 725, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 719, + "name": "ElementaryTypeName", + "src": "8900:5:1" + } + ], + "id": 720, + "name": "VariableDeclaration", + "src": "8900:19:1" + } + ], + "id": 721, + "name": "ParameterList", + "src": "8850:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 722, + "name": "ElementaryTypeName", + "src": "8939:6:1" + } + ], + "id": 723, + "name": "VariableDeclaration", + "src": "8939:6:1" + } + ], + "id": 724, + "name": "ParameterList", + "src": "8938:8:1" + } + ], + "id": 725, + "name": "FunctionDefinition", + "src": "8825:122:1" + } + ], + "id": 726, + "name": "ContractDefinition", + "src": "8303:646:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 727, + "name": "PragmaDirective", + "src": "9009:31:1" + }, + { + "attributes": { + "abstract": true, + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "id": 728, + "name": "StructuredDocumentation", + "src": "9043:171:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 729, + "name": "UserDefinedTypeName", + "src": "9243:7:1" + } + ], + "id": 730, + "name": "InheritanceSpecifier", + "src": "9243:7:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 731, + "name": "ElementaryTypeName", + "src": "9340:6:1" + }, + { + "attributes": { + "hexvalue": "30783031666663396137", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 33540519", + "value": "0x01ffc9a7" + }, + "id": 732, + "name": "Literal", + "src": "9387:10:1" + } + ], + "id": 733, + "name": "VariableDeclaration", + "src": "9340:57:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_supportedInterfaces", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes4 => bool)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes4 => bool)" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 735, + "name": "ElementaryTypeName", + "src": "9499:6:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 736, + "name": "ElementaryTypeName", + "src": "9509:4:1" + } + ], + "id": 737, + "name": "Mapping", + "src": "9491:23:1" + }, + { + "attributes": { + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 734, + "name": "StructuredDocumentation", + "src": "9404:82:1" + } + ], + "id": 738, + "name": "VariableDeclaration", + "src": "9491:52:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 739, + "name": "ParameterList", + "src": "9562:2:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 740, + "name": "ParameterList", + "src": "9565:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 741, + "name": "Identifier", + "src": "9711:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 733, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC165" + }, + "id": 742, + "name": "Identifier", + "src": "9730:20:1" + } + ], + "id": 743, + "name": "FunctionCall", + "src": "9711:40:1" + } + ], + "id": 744, + "name": "ExpressionStatement", + "src": "9711:40:1" + } + ], + "id": 745, + "name": "Block", + "src": "9565:193:1" + } + ], + "id": 746, + "name": "FunctionDefinition", + "src": "9550:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 540 + ], + "functionSelector": "01ffc9a7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 781, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "id": 747, + "name": "StructuredDocumentation", + "src": "9764:139:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 751, + "name": "OverrideSpecifier", + "src": "9975:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 748, + "name": "ElementaryTypeName", + "src": "9935:6:1" + } + ], + "id": 749, + "name": "VariableDeclaration", + "src": "9935:18:1" + } + ], + "id": 750, + "name": "ParameterList", + "src": "9934:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 752, + "name": "ElementaryTypeName", + "src": "9993:4:1" + } + ], + "id": 753, + "name": "VariableDeclaration", + "src": "9993:4:1" + } + ], + "id": 754, + "name": "ParameterList", + "src": "9992:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 754 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 755, + "name": "Identifier", + "src": "10016:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 749, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 756, + "name": "Identifier", + "src": "10037:11:1" + } + ], + "id": 757, + "name": "IndexAccess", + "src": "10016:33:1" + } + ], + "id": 758, + "name": "Return", + "src": "10009:40:1" + } + ], + "id": 759, + "name": "Block", + "src": "9999:57:1" + } + ], + "id": 760, + "name": "FunctionDefinition", + "src": "9908:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_registerInterface", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 761, + "name": "StructuredDocumentation", + "src": "10062:383:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 780, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 762, + "name": "ElementaryTypeName", + "src": "10478:6:1" + } + ], + "id": 763, + "name": "VariableDeclaration", + "src": "10478:18:1" + } + ], + "id": 764, + "name": "ParameterList", + "src": "10477:20:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 765, + "name": "ParameterList", + "src": "10515:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 766, + "name": "Identifier", + "src": "10525:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 767, + "name": "Identifier", + "src": "10533:11:1" + }, + { + "attributes": { + "hexvalue": "30786666666666666666", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4294967295", + "value": "0xffffffff" + }, + "id": 768, + "name": "Literal", + "src": "10548:10:1" + } + ], + "id": 769, + "name": "BinaryOperation", + "src": "10533:25:1" + }, + { + "attributes": { + "hexvalue": "4552433136353a20696e76616c696420696e74657266616365206964", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC165: invalid interface id\"", + "value": "ERC165: invalid interface id" + }, + "id": 770, + "name": "Literal", + "src": "10560:30:1" + } + ], + "id": 771, + "name": "FunctionCall", + "src": "10525:66:1" + } + ], + "id": 772, + "name": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 773, + "name": "Identifier", + "src": "10601:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 774, + "name": "Identifier", + "src": "10622:11:1" + } + ], + "id": 775, + "name": "IndexAccess", + "src": "10601:33:1" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 776, + "name": "Literal", + "src": "10637:4:1" + } + ], + "id": 777, + "name": "Assignment", + "src": "10601:40:1" + } + ], + "id": 778, + "name": "ExpressionStatement", + "src": "10601:40:1" + } + ], + "id": 779, + "name": "Block", + "src": "10515:133:1" + } + ], + "id": 780, + "name": "FunctionDefinition", + "src": "10450:198:1" + } + ], + "id": 781, + "name": "ContractDefinition", + "src": "9215:1435:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 782, + "name": "PragmaDirective", + "src": "10703:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "id": 783, + "name": "StructuredDocumentation", + "src": "10736:563:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryAdd", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 784, + "name": "StructuredDocumentation", + "src": "11323:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 785, + "name": "ElementaryTypeName", + "src": "11475:7:1" + } + ], + "id": 786, + "name": "VariableDeclaration", + "src": "11475:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 787, + "name": "ElementaryTypeName", + "src": "11486:7:1" + } + ], + "id": 788, + "name": "VariableDeclaration", + "src": "11486:9:1" + } + ], + "id": 789, + "name": "ParameterList", + "src": "11474:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 790, + "name": "ElementaryTypeName", + "src": "11520:4:1" + } + ], + "id": 791, + "name": "VariableDeclaration", + "src": "11520:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 792, + "name": "ElementaryTypeName", + "src": "11526:7:1" + } + ], + "id": 793, + "name": "VariableDeclaration", + "src": "11526:7:1" + } + ], + "id": 794, + "name": "ParameterList", + "src": "11519:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 796 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 813, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 795, + "name": "ElementaryTypeName", + "src": "11545:7:1" + } + ], + "id": 796, + "name": "VariableDeclaration", + "src": "11545:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 797, + "name": "Identifier", + "src": "11557:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 788, + "type": "uint256", + "value": "b" + }, + "id": 798, + "name": "Identifier", + "src": "11561:1:1" + } + ], + "id": 799, + "name": "BinaryOperation", + "src": "11557:5:1" + } + ], + "id": 800, + "name": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 801, + "name": "Identifier", + "src": "11576:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 802, + "name": "Identifier", + "src": "11580:1:1" + } + ], + "id": 803, + "name": "BinaryOperation", + "src": "11576:5:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 804, + "name": "Literal", + "src": "11591:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 805, + "name": "Literal", + "src": "11598:1:1" + } + ], + "id": 806, + "name": "TupleExpression", + "src": "11590:10:1" + } + ], + "id": 807, + "name": "Return", + "src": "11583:17:1" + } + ], + "id": 808, + "name": "IfStatement", + "src": "11572:28:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 809, + "name": "Literal", + "src": "11618:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 810, + "name": "Identifier", + "src": "11624:1:1" + } + ], + "id": 811, + "name": "TupleExpression", + "src": "11617:9:1" + } + ], + "id": 812, + "name": "Return", + "src": "11610:16:1" + } + ], + "id": 813, + "name": "Block", + "src": "11535:98:1" + } + ], + "id": 814, + "name": "FunctionDefinition", + "src": "11459:174:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "trySub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 815, + "name": "StructuredDocumentation", + "src": "11639:135:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 816, + "name": "ElementaryTypeName", + "src": "11795:7:1" + } + ], + "id": 817, + "name": "VariableDeclaration", + "src": "11795:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 818, + "name": "ElementaryTypeName", + "src": "11806:7:1" + } + ], + "id": 819, + "name": "VariableDeclaration", + "src": "11806:9:1" + } + ], + "id": 820, + "name": "ParameterList", + "src": "11794:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 821, + "name": "ElementaryTypeName", + "src": "11840:4:1" + } + ], + "id": 822, + "name": "VariableDeclaration", + "src": "11840:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 823, + "name": "ElementaryTypeName", + "src": "11846:7:1" + } + ], + "id": 824, + "name": "VariableDeclaration", + "src": "11846:7:1" + } + ], + "id": 825, + "name": "ParameterList", + "src": "11839:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 826, + "name": "Identifier", + "src": "11869:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 827, + "name": "Identifier", + "src": "11873:1:1" + } + ], + "id": 828, + "name": "BinaryOperation", + "src": "11869:5:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 829, + "name": "Literal", + "src": "11884:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 830, + "name": "Literal", + "src": "11891:1:1" + } + ], + "id": 831, + "name": "TupleExpression", + "src": "11883:10:1" + } + ], + "id": 832, + "name": "Return", + "src": "11876:17:1" + } + ], + "id": 833, + "name": "IfStatement", + "src": "11865:28:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 834, + "name": "Literal", + "src": "11911:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 835, + "name": "Identifier", + "src": "11917:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 836, + "name": "Identifier", + "src": "11921:1:1" + } + ], + "id": 837, + "name": "BinaryOperation", + "src": "11917:5:1" + } + ], + "id": 838, + "name": "TupleExpression", + "src": "11910:13:1" + } + ], + "id": 839, + "name": "Return", + "src": "11903:20:1" + } + ], + "id": 840, + "name": "Block", + "src": "11855:75:1" + } + ], + "id": 841, + "name": "FunctionDefinition", + "src": "11779:151:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 842, + "name": "StructuredDocumentation", + "src": "11936:137:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 843, + "name": "ElementaryTypeName", + "src": "12094:7:1" + } + ], + "id": 844, + "name": "VariableDeclaration", + "src": "12094:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 845, + "name": "ElementaryTypeName", + "src": "12105:7:1" + } + ], + "id": 846, + "name": "VariableDeclaration", + "src": "12105:9:1" + } + ], + "id": 847, + "name": "ParameterList", + "src": "12093:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 848, + "name": "ElementaryTypeName", + "src": "12139:4:1" + } + ], + "id": 849, + "name": "VariableDeclaration", + "src": "12139:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 850, + "name": "ElementaryTypeName", + "src": "12145:7:1" + } + ], + "id": 851, + "name": "VariableDeclaration", + "src": "12145:7:1" + } + ], + "id": 852, + "name": "ParameterList", + "src": "12138:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 853, + "name": "Identifier", + "src": "12386:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 854, + "name": "Literal", + "src": "12391:1:1" + } + ], + "id": 855, + "name": "BinaryOperation", + "src": "12386:6:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 856, + "name": "Literal", + "src": "12402:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 857, + "name": "Literal", + "src": "12408:1:1" + } + ], + "id": 858, + "name": "TupleExpression", + "src": "12401:9:1" + } + ], + "id": 859, + "name": "Return", + "src": "12394:16:1" + } + ], + "id": 860, + "name": "IfStatement", + "src": "12382:28:1" + }, + { + "attributes": { + "assignments": [ + 862 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 881, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 861, + "name": "ElementaryTypeName", + "src": "12420:7:1" + } + ], + "id": 862, + "name": "VariableDeclaration", + "src": "12420:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 863, + "name": "Identifier", + "src": "12432:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 864, + "name": "Identifier", + "src": "12436:1:1" + } + ], + "id": 865, + "name": "BinaryOperation", + "src": "12432:5:1" + } + ], + "id": 866, + "name": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 867, + "name": "Identifier", + "src": "12451:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 868, + "name": "Identifier", + "src": "12455:1:1" + } + ], + "id": 869, + "name": "BinaryOperation", + "src": "12451:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 870, + "name": "Identifier", + "src": "12460:1:1" + } + ], + "id": 871, + "name": "BinaryOperation", + "src": "12451:10:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 872, + "name": "Literal", + "src": "12471:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 873, + "name": "Literal", + "src": "12478:1:1" + } + ], + "id": 874, + "name": "TupleExpression", + "src": "12470:10:1" + } + ], + "id": 875, + "name": "Return", + "src": "12463:17:1" + } + ], + "id": 876, + "name": "IfStatement", + "src": "12447:33:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 877, + "name": "Literal", + "src": "12498:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 878, + "name": "Identifier", + "src": "12504:1:1" + } + ], + "id": 879, + "name": "TupleExpression", + "src": "12497:9:1" + } + ], + "id": 880, + "name": "Return", + "src": "12490:16:1" + } + ], + "id": 881, + "name": "Block", + "src": "12154:359:1" + } + ], + "id": 882, + "name": "FunctionDefinition", + "src": "12078:435:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryDiv", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 883, + "name": "StructuredDocumentation", + "src": "12519:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 884, + "name": "ElementaryTypeName", + "src": "12678:7:1" + } + ], + "id": 885, + "name": "VariableDeclaration", + "src": "12678:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 886, + "name": "ElementaryTypeName", + "src": "12689:7:1" + } + ], + "id": 887, + "name": "VariableDeclaration", + "src": "12689:9:1" + } + ], + "id": 888, + "name": "ParameterList", + "src": "12677:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 889, + "name": "ElementaryTypeName", + "src": "12723:4:1" + } + ], + "id": 890, + "name": "VariableDeclaration", + "src": "12723:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 891, + "name": "ElementaryTypeName", + "src": "12729:7:1" + } + ], + "id": 892, + "name": "VariableDeclaration", + "src": "12729:7:1" + } + ], + "id": 893, + "name": "ParameterList", + "src": "12722:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 894, + "name": "Identifier", + "src": "12752:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 895, + "name": "Literal", + "src": "12757:1:1" + } + ], + "id": 896, + "name": "BinaryOperation", + "src": "12752:6:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 897, + "name": "Literal", + "src": "12768:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 898, + "name": "Literal", + "src": "12775:1:1" + } + ], + "id": 899, + "name": "TupleExpression", + "src": "12767:10:1" + } + ], + "id": 900, + "name": "Return", + "src": "12760:17:1" + } + ], + "id": 901, + "name": "IfStatement", + "src": "12748:29:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 902, + "name": "Literal", + "src": "12795:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 885, + "type": "uint256", + "value": "a" + }, + "id": 903, + "name": "Identifier", + "src": "12801:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 904, + "name": "Identifier", + "src": "12805:1:1" + } + ], + "id": 905, + "name": "BinaryOperation", + "src": "12801:5:1" + } + ], + "id": 906, + "name": "TupleExpression", + "src": "12794:13:1" + } + ], + "id": 907, + "name": "Return", + "src": "12787:20:1" + } + ], + "id": 908, + "name": "Block", + "src": "12738:76:1" + } + ], + "id": 909, + "name": "FunctionDefinition", + "src": "12662:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 910, + "name": "StructuredDocumentation", + "src": "12820:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 911, + "name": "ElementaryTypeName", + "src": "12989:7:1" + } + ], + "id": 912, + "name": "VariableDeclaration", + "src": "12989:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 913, + "name": "ElementaryTypeName", + "src": "13000:7:1" + } + ], + "id": 914, + "name": "VariableDeclaration", + "src": "13000:9:1" + } + ], + "id": 915, + "name": "ParameterList", + "src": "12988:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 916, + "name": "ElementaryTypeName", + "src": "13034:4:1" + } + ], + "id": 917, + "name": "VariableDeclaration", + "src": "13034:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 918, + "name": "ElementaryTypeName", + "src": "13040:7:1" + } + ], + "id": 919, + "name": "VariableDeclaration", + "src": "13040:7:1" + } + ], + "id": 920, + "name": "ParameterList", + "src": "13033:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 921, + "name": "Identifier", + "src": "13063:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 922, + "name": "Literal", + "src": "13068:1:1" + } + ], + "id": 923, + "name": "BinaryOperation", + "src": "13063:6:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 924, + "name": "Literal", + "src": "13079:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 925, + "name": "Literal", + "src": "13086:1:1" + } + ], + "id": 926, + "name": "TupleExpression", + "src": "13078:10:1" + } + ], + "id": 927, + "name": "Return", + "src": "13071:17:1" + } + ], + "id": 928, + "name": "IfStatement", + "src": "13059:29:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 929, + "name": "Literal", + "src": "13106:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 912, + "type": "uint256", + "value": "a" + }, + "id": 930, + "name": "Identifier", + "src": "13112:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 931, + "name": "Identifier", + "src": "13116:1:1" + } + ], + "id": 932, + "name": "BinaryOperation", + "src": "13112:5:1" + } + ], + "id": 933, + "name": "TupleExpression", + "src": "13105:13:1" + } + ], + "id": 934, + "name": "Return", + "src": "13098:20:1" + } + ], + "id": 935, + "name": "Block", + "src": "13049:76:1" + } + ], + "id": 936, + "name": "FunctionDefinition", + "src": "12973:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 937, + "name": "StructuredDocumentation", + "src": "13131:224:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 938, + "name": "ElementaryTypeName", + "src": "13373:7:1" + } + ], + "id": 939, + "name": "VariableDeclaration", + "src": "13373:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 940, + "name": "ElementaryTypeName", + "src": "13384:7:1" + } + ], + "id": 941, + "name": "VariableDeclaration", + "src": "13384:9:1" + } + ], + "id": 942, + "name": "ParameterList", + "src": "13372:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 943, + "name": "ElementaryTypeName", + "src": "13418:7:1" + } + ], + "id": 944, + "name": "VariableDeclaration", + "src": "13418:7:1" + } + ], + "id": 945, + "name": "ParameterList", + "src": "13417:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 947 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 961, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 946, + "name": "ElementaryTypeName", + "src": "13437:7:1" + } + ], + "id": 947, + "name": "VariableDeclaration", + "src": "13437:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 948, + "name": "Identifier", + "src": "13449:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 941, + "type": "uint256", + "value": "b" + }, + "id": 949, + "name": "Identifier", + "src": "13453:1:1" + } + ], + "id": 950, + "name": "BinaryOperation", + "src": "13449:5:1" + } + ], + "id": 951, + "name": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 952, + "name": "Identifier", + "src": "13464:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 953, + "name": "Identifier", + "src": "13472:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 954, + "name": "Identifier", + "src": "13477:1:1" + } + ], + "id": 955, + "name": "BinaryOperation", + "src": "13472:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: addition overflow\"", + "value": "SafeMath: addition overflow" + }, + "id": 956, + "name": "Literal", + "src": "13480:29:1" + } + ], + "id": 957, + "name": "FunctionCall", + "src": "13464:46:1" + } + ], + "id": 958, + "name": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "attributes": { + "functionReturnParameters": 945 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 959, + "name": "Identifier", + "src": "13527:1:1" + } + ], + "id": 960, + "name": "Return", + "src": "13520:8:1" + } + ], + "id": 961, + "name": "Block", + "src": "13427:108:1" + } + ], + "id": 962, + "name": "FunctionDefinition", + "src": "13360:175:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 963, + "name": "StructuredDocumentation", + "src": "13541:260:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 964, + "name": "ElementaryTypeName", + "src": "13819:7:1" + } + ], + "id": 965, + "name": "VariableDeclaration", + "src": "13819:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 966, + "name": "ElementaryTypeName", + "src": "13830:7:1" + } + ], + "id": 967, + "name": "VariableDeclaration", + "src": "13830:9:1" + } + ], + "id": 968, + "name": "ParameterList", + "src": "13818:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 969, + "name": "ElementaryTypeName", + "src": "13864:7:1" + } + ], + "id": 970, + "name": "VariableDeclaration", + "src": "13864:7:1" + } + ], + "id": 971, + "name": "ParameterList", + "src": "13863:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 972, + "name": "Identifier", + "src": "13883:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 973, + "name": "Identifier", + "src": "13891:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 974, + "name": "Identifier", + "src": "13896:1:1" + } + ], + "id": 975, + "name": "BinaryOperation", + "src": "13891:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: subtraction overflow\"", + "value": "SafeMath: subtraction overflow" + }, + "id": 976, + "name": "Literal", + "src": "13899:32:1" + } + ], + "id": 977, + "name": "FunctionCall", + "src": "13883:49:1" + } + ], + "id": 978, + "name": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "attributes": { + "functionReturnParameters": 971 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 979, + "name": "Identifier", + "src": "13949:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 980, + "name": "Identifier", + "src": "13953:1:1" + } + ], + "id": 981, + "name": "BinaryOperation", + "src": "13949:5:1" + } + ], + "id": 982, + "name": "Return", + "src": "13942:12:1" + } + ], + "id": 983, + "name": "Block", + "src": "13873:88:1" + } + ], + "id": 984, + "name": "FunctionDefinition", + "src": "13806:155:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 985, + "name": "StructuredDocumentation", + "src": "13967:236:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 986, + "name": "ElementaryTypeName", + "src": "14221:7:1" + } + ], + "id": 987, + "name": "VariableDeclaration", + "src": "14221:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 988, + "name": "ElementaryTypeName", + "src": "14232:7:1" + } + ], + "id": 989, + "name": "VariableDeclaration", + "src": "14232:9:1" + } + ], + "id": 990, + "name": "ParameterList", + "src": "14220:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 991, + "name": "ElementaryTypeName", + "src": "14266:7:1" + } + ], + "id": 992, + "name": "VariableDeclaration", + "src": "14266:7:1" + } + ], + "id": 993, + "name": "ParameterList", + "src": "14265:9:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 994, + "name": "Identifier", + "src": "14289:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 995, + "name": "Literal", + "src": "14294:1:1" + } + ], + "id": 996, + "name": "BinaryOperation", + "src": "14289:6:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 997, + "name": "Literal", + "src": "14304:1:1" + } + ], + "id": 998, + "name": "Return", + "src": "14297:8:1" + } + ], + "id": 999, + "name": "IfStatement", + "src": "14285:20:1" + }, + { + "attributes": { + "assignments": [ + 1001 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 1017, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1000, + "name": "ElementaryTypeName", + "src": "14315:7:1" + } + ], + "id": 1001, + "name": "VariableDeclaration", + "src": "14315:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1002, + "name": "Identifier", + "src": "14327:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1003, + "name": "Identifier", + "src": "14331:1:1" + } + ], + "id": 1004, + "name": "BinaryOperation", + "src": "14327:5:1" + } + ], + "id": 1005, + "name": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1006, + "name": "Identifier", + "src": "14342:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1007, + "name": "Identifier", + "src": "14350:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1008, + "name": "Identifier", + "src": "14354:1:1" + } + ], + "id": 1009, + "name": "BinaryOperation", + "src": "14350:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1010, + "name": "Identifier", + "src": "14359:1:1" + } + ], + "id": 1011, + "name": "BinaryOperation", + "src": "14350:10:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: multiplication overflow\"", + "value": "SafeMath: multiplication overflow" + }, + "id": 1012, + "name": "Literal", + "src": "14362:35:1" + } + ], + "id": 1013, + "name": "FunctionCall", + "src": "14342:56:1" + } + ], + "id": 1014, + "name": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1015, + "name": "Identifier", + "src": "14415:1:1" + } + ], + "id": 1016, + "name": "Return", + "src": "14408:8:1" + } + ], + "id": 1017, + "name": "Block", + "src": "14275:148:1" + } + ], + "id": 1018, + "name": "FunctionDefinition", + "src": "14208:215:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1019, + "name": "StructuredDocumentation", + "src": "14429:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1020, + "name": "ElementaryTypeName", + "src": "14900:7:1" + } + ], + "id": 1021, + "name": "VariableDeclaration", + "src": "14900:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1022, + "name": "ElementaryTypeName", + "src": "14911:7:1" + } + ], + "id": 1023, + "name": "VariableDeclaration", + "src": "14911:9:1" + } + ], + "id": 1024, + "name": "ParameterList", + "src": "14899:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1025, + "name": "ElementaryTypeName", + "src": "14945:7:1" + } + ], + "id": 1026, + "name": "VariableDeclaration", + "src": "14945:7:1" + } + ], + "id": 1027, + "name": "ParameterList", + "src": "14944:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1028, + "name": "Identifier", + "src": "14964:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1029, + "name": "Identifier", + "src": "14972:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1030, + "name": "Literal", + "src": "14976:1:1" + } + ], + "id": 1031, + "name": "BinaryOperation", + "src": "14972:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206469766973696f6e206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: division by zero\"", + "value": "SafeMath: division by zero" + }, + "id": 1032, + "name": "Literal", + "src": "14979:28:1" + } + ], + "id": 1033, + "name": "FunctionCall", + "src": "14964:44:1" + } + ], + "id": 1034, + "name": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "attributes": { + "functionReturnParameters": 1027 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1021, + "type": "uint256", + "value": "a" + }, + "id": 1035, + "name": "Identifier", + "src": "15025:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1036, + "name": "Identifier", + "src": "15029:1:1" + } + ], + "id": 1037, + "name": "BinaryOperation", + "src": "15025:5:1" + } + ], + "id": 1038, + "name": "Return", + "src": "15018:12:1" + } + ], + "id": 1039, + "name": "Block", + "src": "14954:83:1" + } + ], + "id": 1040, + "name": "FunctionDefinition", + "src": "14887:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1041, + "name": "StructuredDocumentation", + "src": "15043:442:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1042, + "name": "ElementaryTypeName", + "src": "15503:7:1" + } + ], + "id": 1043, + "name": "VariableDeclaration", + "src": "15503:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1044, + "name": "ElementaryTypeName", + "src": "15514:7:1" + } + ], + "id": 1045, + "name": "VariableDeclaration", + "src": "15514:9:1" + } + ], + "id": 1046, + "name": "ParameterList", + "src": "15502:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1047, + "name": "ElementaryTypeName", + "src": "15548:7:1" + } + ], + "id": 1048, + "name": "VariableDeclaration", + "src": "15548:7:1" + } + ], + "id": 1049, + "name": "ParameterList", + "src": "15547:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1050, + "name": "Identifier", + "src": "15567:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1051, + "name": "Identifier", + "src": "15575:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1052, + "name": "Literal", + "src": "15579:1:1" + } + ], + "id": 1053, + "name": "BinaryOperation", + "src": "15575:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: modulo by zero\"", + "value": "SafeMath: modulo by zero" + }, + "id": 1054, + "name": "Literal", + "src": "15582:26:1" + } + ], + "id": 1055, + "name": "FunctionCall", + "src": "15567:42:1" + } + ], + "id": 1056, + "name": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "attributes": { + "functionReturnParameters": 1049 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1043, + "type": "uint256", + "value": "a" + }, + "id": 1057, + "name": "Identifier", + "src": "15626:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1058, + "name": "Identifier", + "src": "15630:1:1" + } + ], + "id": 1059, + "name": "BinaryOperation", + "src": "15626:5:1" + } + ], + "id": 1060, + "name": "Return", + "src": "15619:12:1" + } + ], + "id": 1061, + "name": "Block", + "src": "15557:81:1" + } + ], + "id": 1062, + "name": "FunctionDefinition", + "src": "15490:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1063, + "name": "StructuredDocumentation", + "src": "15644:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1064, + "name": "ElementaryTypeName", + "src": "16115:7:1" + } + ], + "id": 1065, + "name": "VariableDeclaration", + "src": "16115:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1066, + "name": "ElementaryTypeName", + "src": "16126:7:1" + } + ], + "id": 1067, + "name": "VariableDeclaration", + "src": "16126:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1086, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1068, + "name": "ElementaryTypeName", + "src": "16137:6:1" + } + ], + "id": 1069, + "name": "VariableDeclaration", + "src": "16137:26:1" + } + ], + "id": 1070, + "name": "ParameterList", + "src": "16114:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1071, + "name": "ElementaryTypeName", + "src": "16188:7:1" + } + ], + "id": 1072, + "name": "VariableDeclaration", + "src": "16188:7:1" + } + ], + "id": 1073, + "name": "ParameterList", + "src": "16187:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1074, + "name": "Identifier", + "src": "16207:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1075, + "name": "Identifier", + "src": "16215:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1076, + "name": "Identifier", + "src": "16220:1:1" + } + ], + "id": 1077, + "name": "BinaryOperation", + "src": "16215:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1069, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1078, + "name": "Identifier", + "src": "16223:12:1" + } + ], + "id": 1079, + "name": "FunctionCall", + "src": "16207:29:1" + } + ], + "id": 1080, + "name": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "attributes": { + "functionReturnParameters": 1073 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1081, + "name": "Identifier", + "src": "16253:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1082, + "name": "Identifier", + "src": "16257:1:1" + } + ], + "id": 1083, + "name": "BinaryOperation", + "src": "16253:5:1" + } + ], + "id": 1084, + "name": "Return", + "src": "16246:12:1" + } + ], + "id": 1085, + "name": "Block", + "src": "16197:68:1" + } + ], + "id": 1086, + "name": "FunctionDefinition", + "src": "16102:163:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1087, + "name": "StructuredDocumentation", + "src": "16271:646:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1088, + "name": "ElementaryTypeName", + "src": "16935:7:1" + } + ], + "id": 1089, + "name": "VariableDeclaration", + "src": "16935:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1090, + "name": "ElementaryTypeName", + "src": "16946:7:1" + } + ], + "id": 1091, + "name": "VariableDeclaration", + "src": "16946:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1110, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1092, + "name": "ElementaryTypeName", + "src": "16957:6:1" + } + ], + "id": 1093, + "name": "VariableDeclaration", + "src": "16957:26:1" + } + ], + "id": 1094, + "name": "ParameterList", + "src": "16934:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1095, + "name": "ElementaryTypeName", + "src": "17008:7:1" + } + ], + "id": 1096, + "name": "VariableDeclaration", + "src": "17008:7:1" + } + ], + "id": 1097, + "name": "ParameterList", + "src": "17007:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1098, + "name": "Identifier", + "src": "17027:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1099, + "name": "Identifier", + "src": "17035:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1100, + "name": "Literal", + "src": "17039:1:1" + } + ], + "id": 1101, + "name": "BinaryOperation", + "src": "17035:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1093, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1102, + "name": "Identifier", + "src": "17042:12:1" + } + ], + "id": 1103, + "name": "FunctionCall", + "src": "17027:28:1" + } + ], + "id": 1104, + "name": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1097 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1089, + "type": "uint256", + "value": "a" + }, + "id": 1105, + "name": "Identifier", + "src": "17072:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1106, + "name": "Identifier", + "src": "17076:1:1" + } + ], + "id": 1107, + "name": "BinaryOperation", + "src": "17072:5:1" + } + ], + "id": 1108, + "name": "Return", + "src": "17065:12:1" + } + ], + "id": 1109, + "name": "Block", + "src": "17017:67:1" + } + ], + "id": 1110, + "name": "FunctionDefinition", + "src": "16922:162:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1111, + "name": "StructuredDocumentation", + "src": "17090:635:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1112, + "name": "ElementaryTypeName", + "src": "17743:7:1" + } + ], + "id": 1113, + "name": "VariableDeclaration", + "src": "17743:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1114, + "name": "ElementaryTypeName", + "src": "17754:7:1" + } + ], + "id": 1115, + "name": "VariableDeclaration", + "src": "17754:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1134, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1116, + "name": "ElementaryTypeName", + "src": "17765:6:1" + } + ], + "id": 1117, + "name": "VariableDeclaration", + "src": "17765:26:1" + } + ], + "id": 1118, + "name": "ParameterList", + "src": "17742:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1119, + "name": "ElementaryTypeName", + "src": "17816:7:1" + } + ], + "id": 1120, + "name": "VariableDeclaration", + "src": "17816:7:1" + } + ], + "id": 1121, + "name": "ParameterList", + "src": "17815:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1122, + "name": "Identifier", + "src": "17835:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1123, + "name": "Identifier", + "src": "17843:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1124, + "name": "Literal", + "src": "17847:1:1" + } + ], + "id": 1125, + "name": "BinaryOperation", + "src": "17843:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1117, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1126, + "name": "Identifier", + "src": "17850:12:1" + } + ], + "id": 1127, + "name": "FunctionCall", + "src": "17835:28:1" + } + ], + "id": 1128, + "name": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1121 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "uint256", + "value": "a" + }, + "id": 1129, + "name": "Identifier", + "src": "17880:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1130, + "name": "Identifier", + "src": "17884:1:1" + } + ], + "id": 1131, + "name": "BinaryOperation", + "src": "17880:5:1" + } + ], + "id": 1132, + "name": "Return", + "src": "17873:12:1" + } + ], + "id": 1133, + "name": "Block", + "src": "17825:67:1" + } + ], + "id": 1134, + "name": "FunctionDefinition", + "src": "17730:162:1" + } + ], + "id": 1135, + "name": "ContractDefinition", + "src": "11300:6594:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 1136, + "name": "PragmaDirective", + "src": "17947:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Collection of functions related to the address type" + }, + "id": 1137, + "name": "StructuredDocumentation", + "src": "17980:67:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isContract", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1138, + "name": "StructuredDocumentation", + "src": "18070:565:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "account", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1139, + "name": "ElementaryTypeName", + "src": "18660:7:1" + } + ], + "id": 1140, + "name": "VariableDeclaration", + "src": "18660:15:1" + } + ], + "id": 1141, + "name": "ParameterList", + "src": "18659:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1142, + "name": "ElementaryTypeName", + "src": "18700:4:1" + } + ], + "id": 1143, + "name": "VariableDeclaration", + "src": "18700:4:1" + } + ], + "id": 1144, + "name": "ParameterList", + "src": "18699:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1146 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "size", + "scope": 1153, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1145, + "name": "ElementaryTypeName", + "src": "18903:7:1" + } + ], + "id": 1146, + "name": "VariableDeclaration", + "src": "18903:12:1" + } + ], + "id": 1147, + "name": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "operations": "{ size := extcodesize(account) }" + }, + "children": [], + "id": 1148, + "name": "InlineAssembly", + "src": "18981:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1144 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1146, + "type": "uint256", + "value": "size" + }, + "id": 1149, + "name": "Identifier", + "src": "19038:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1150, + "name": "Literal", + "src": "19045:1:1" + } + ], + "id": 1151, + "name": "BinaryOperation", + "src": "19038:8:1" + } + ], + "id": 1152, + "name": "Return", + "src": "19031:15:1" + } + ], + "id": 1153, + "name": "Block", + "src": "18706:347:1" + } + ], + "id": 1154, + "name": "FunctionDefinition", + "src": "18640:413:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sendValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1155, + "name": "StructuredDocumentation", + "src": "19059:906:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "recipient", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 1156, + "name": "ElementaryTypeName", + "src": "19989:15:1" + } + ], + "id": 1157, + "name": "VariableDeclaration", + "src": "19989:25:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "amount", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1158, + "name": "ElementaryTypeName", + "src": "20016:7:1" + } + ], + "id": 1159, + "name": "VariableDeclaration", + "src": "20016:14:1" + } + ], + "id": 1160, + "name": "ParameterList", + "src": "19988:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1161, + "name": "ParameterList", + "src": "20041:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1162, + "name": "Identifier", + "src": "20051:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1163, + "name": "ElementaryTypeName", + "src": "20059:7:1" + } + ], + "id": 1164, + "name": "ElementaryTypeNameExpression", + "src": "20059:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1165, + "name": "Identifier", + "src": "20067:4:1" + } + ], + "id": 1166, + "name": "FunctionCall", + "src": "20059:13:1" + } + ], + "id": 1167, + "name": "MemberAccess", + "src": "20059:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1168, + "name": "Identifier", + "src": "20084:6:1" + } + ], + "id": 1169, + "name": "BinaryOperation", + "src": "20059:31:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance\"", + "value": "Address: insufficient balance" + }, + "id": 1170, + "name": "Literal", + "src": "20092:31:1" + } + ], + "id": 1171, + "name": "FunctionCall", + "src": "20051:73:1" + } + ], + "id": 1172, + "name": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "attributes": { + "assignments": [ + 1174, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1187, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1173, + "name": "ElementaryTypeName", + "src": "20213:4:1" + } + ], + "id": 1174, + "name": "VariableDeclaration", + "src": "20213:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1157, + "type": "address payable", + "value": "recipient" + }, + "id": 1175, + "name": "Identifier", + "src": "20231:9:1" + } + ], + "id": 1176, + "name": "MemberAccess", + "src": "20231:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1177, + "name": "Identifier", + "src": "20254:6:1" + } + ], + "id": 1178, + "name": "FunctionCallOptions", + "src": "20231:31:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 1179, + "name": "Literal", + "src": "20263:2:1" + } + ], + "id": 1180, + "name": "FunctionCall", + "src": "20231:35:1" + } + ], + "id": 1181, + "name": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1182, + "name": "Identifier", + "src": "20276:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1174, + "type": "bool", + "value": "success" + }, + "id": 1183, + "name": "Identifier", + "src": "20284:7:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: unable to send value, recipient may have reverted\"", + "value": "Address: unable to send value, recipient may have reverted" + }, + "id": 1184, + "name": "Literal", + "src": "20293:60:1" + } + ], + "id": 1185, + "name": "FunctionCall", + "src": "20276:78:1" + } + ], + "id": 1186, + "name": "ExpressionStatement", + "src": "20276:78:1" + } + ], + "id": 1187, + "name": "Block", + "src": "20041:320:1" + } + ], + "id": 1188, + "name": "FunctionDefinition", + "src": "19970:391:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1189, + "name": "StructuredDocumentation", + "src": "20367:730:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1205, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1190, + "name": "ElementaryTypeName", + "src": "21124:7:1" + } + ], + "id": 1191, + "name": "VariableDeclaration", + "src": "21124:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1192, + "name": "ElementaryTypeName", + "src": "21140:5:1" + } + ], + "id": 1193, + "name": "VariableDeclaration", + "src": "21140:17:1" + } + ], + "id": 1194, + "name": "ParameterList", + "src": "21123:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1195, + "name": "ElementaryTypeName", + "src": "21177:5:1" + } + ], + "id": 1196, + "name": "VariableDeclaration", + "src": "21177:12:1" + } + ], + "id": 1197, + "name": "ParameterList", + "src": "21176:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1197 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionCall" + }, + "id": 1198, + "name": "Identifier", + "src": "21206:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1191, + "type": "address", + "value": "target" + }, + "id": 1199, + "name": "Identifier", + "src": "21219:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1193, + "type": "bytes memory", + "value": "data" + }, + "id": 1200, + "name": "Identifier", + "src": "21227:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call failed\"", + "value": "Address: low-level call failed" + }, + "id": 1201, + "name": "Literal", + "src": "21233:32:1" + } + ], + "id": 1202, + "name": "FunctionCall", + "src": "21206:60:1" + } + ], + "id": 1203, + "name": "Return", + "src": "21199:67:1" + } + ], + "id": 1204, + "name": "Block", + "src": "21191:82:1" + } + ], + "id": 1205, + "name": "FunctionDefinition", + "src": "21102:171:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1206, + "name": "StructuredDocumentation", + "src": "21279:211:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1225, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1207, + "name": "ElementaryTypeName", + "src": "21517:7:1" + } + ], + "id": 1208, + "name": "VariableDeclaration", + "src": "21517:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1209, + "name": "ElementaryTypeName", + "src": "21533:5:1" + } + ], + "id": 1210, + "name": "VariableDeclaration", + "src": "21533:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1211, + "name": "ElementaryTypeName", + "src": "21552:6:1" + } + ], + "id": 1212, + "name": "VariableDeclaration", + "src": "21552:26:1" + } + ], + "id": 1213, + "name": "ParameterList", + "src": "21516:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1214, + "name": "ElementaryTypeName", + "src": "21598:5:1" + } + ], + "id": 1215, + "name": "VariableDeclaration", + "src": "21598:12:1" + } + ], + "id": 1216, + "name": "ParameterList", + "src": "21597:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1216 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1217, + "name": "Identifier", + "src": "21629:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1208, + "type": "address", + "value": "target" + }, + "id": 1218, + "name": "Identifier", + "src": "21651:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1210, + "type": "bytes memory", + "value": "data" + }, + "id": 1219, + "name": "Identifier", + "src": "21659:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1220, + "name": "Literal", + "src": "21665:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1212, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1221, + "name": "Identifier", + "src": "21668:12:1" + } + ], + "id": 1222, + "name": "FunctionCall", + "src": "21629:52:1" + } + ], + "id": 1223, + "name": "Return", + "src": "21622:59:1" + } + ], + "id": 1224, + "name": "Block", + "src": "21612:76:1" + } + ], + "id": 1225, + "name": "FunctionDefinition", + "src": "21495:193:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1226, + "name": "StructuredDocumentation", + "src": "21694:351:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1227, + "name": "ElementaryTypeName", + "src": "22081:7:1" + } + ], + "id": 1228, + "name": "VariableDeclaration", + "src": "22081:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1229, + "name": "ElementaryTypeName", + "src": "22097:5:1" + } + ], + "id": 1230, + "name": "VariableDeclaration", + "src": "22097:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1231, + "name": "ElementaryTypeName", + "src": "22116:7:1" + } + ], + "id": 1232, + "name": "VariableDeclaration", + "src": "22116:13:1" + } + ], + "id": 1233, + "name": "ParameterList", + "src": "22080:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1234, + "name": "ElementaryTypeName", + "src": "22149:5:1" + } + ], + "id": 1235, + "name": "VariableDeclaration", + "src": "22149:12:1" + } + ], + "id": 1236, + "name": "ParameterList", + "src": "22148:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1236 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1237, + "name": "Identifier", + "src": "22180:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1228, + "type": "address", + "value": "target" + }, + "id": 1238, + "name": "Identifier", + "src": "22202:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1230, + "type": "bytes memory", + "value": "data" + }, + "id": 1239, + "name": "Identifier", + "src": "22210:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1232, + "type": "uint256", + "value": "value" + }, + "id": 1240, + "name": "Identifier", + "src": "22216:5:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call with value failed\"", + "value": "Address: low-level call with value failed" + }, + "id": 1241, + "name": "Literal", + "src": "22223:43:1" + } + ], + "id": 1242, + "name": "FunctionCall", + "src": "22180:87:1" + } + ], + "id": 1243, + "name": "Return", + "src": "22173:94:1" + } + ], + "id": 1244, + "name": "Block", + "src": "22163:111:1" + } + ], + "id": 1245, + "name": "FunctionDefinition", + "src": "22050:224:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1246, + "name": "StructuredDocumentation", + "src": "22280:237:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1247, + "name": "ElementaryTypeName", + "src": "22553:7:1" + } + ], + "id": 1248, + "name": "VariableDeclaration", + "src": "22553:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1249, + "name": "ElementaryTypeName", + "src": "22569:5:1" + } + ], + "id": 1250, + "name": "VariableDeclaration", + "src": "22569:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1251, + "name": "ElementaryTypeName", + "src": "22588:7:1" + } + ], + "id": 1252, + "name": "VariableDeclaration", + "src": "22588:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1253, + "name": "ElementaryTypeName", + "src": "22603:6:1" + } + ], + "id": 1254, + "name": "VariableDeclaration", + "src": "22603:26:1" + } + ], + "id": 1255, + "name": "ParameterList", + "src": "22552:78:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1256, + "name": "ElementaryTypeName", + "src": "22649:5:1" + } + ], + "id": 1257, + "name": "VariableDeclaration", + "src": "22649:12:1" + } + ], + "id": 1258, + "name": "ParameterList", + "src": "22648:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1259, + "name": "Identifier", + "src": "22673:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1260, + "name": "ElementaryTypeName", + "src": "22681:7:1" + } + ], + "id": 1261, + "name": "ElementaryTypeNameExpression", + "src": "22681:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1262, + "name": "Identifier", + "src": "22689:4:1" + } + ], + "id": 1263, + "name": "FunctionCall", + "src": "22681:13:1" + } + ], + "id": 1264, + "name": "MemberAccess", + "src": "22681:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1265, + "name": "Identifier", + "src": "22706:5:1" + } + ], + "id": 1266, + "name": "BinaryOperation", + "src": "22681:30:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance for call\"", + "value": "Address: insufficient balance for call" + }, + "id": 1267, + "name": "Literal", + "src": "22713:40:1" + } + ], + "id": 1268, + "name": "FunctionCall", + "src": "22673:81:1" + } + ], + "id": 1269, + "name": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1270, + "name": "Identifier", + "src": "22764:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1271, + "name": "Identifier", + "src": "22772:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1272, + "name": "Identifier", + "src": "22783:6:1" + } + ], + "id": 1273, + "name": "FunctionCall", + "src": "22772:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: call to non-contract\"", + "value": "Address: call to non-contract" + }, + "id": 1274, + "name": "Literal", + "src": "22792:31:1" + } + ], + "id": 1275, + "name": "FunctionCall", + "src": "22764:60:1" + } + ], + "id": 1276, + "name": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "attributes": { + "assignments": [ + 1278, + 1280 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1294, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1277, + "name": "ElementaryTypeName", + "src": "22895:4:1" + } + ], + "id": 1278, + "name": "VariableDeclaration", + "src": "22895:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1279, + "name": "ElementaryTypeName", + "src": "22909:5:1" + } + ], + "id": 1280, + "name": "VariableDeclaration", + "src": "22909:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1281, + "name": "Identifier", + "src": "22936:6:1" + } + ], + "id": 1282, + "name": "MemberAccess", + "src": "22936:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1283, + "name": "Identifier", + "src": "22956:5:1" + } + ], + "id": 1284, + "name": "FunctionCallOptions", + "src": "22936:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1250, + "type": "bytes memory", + "value": "data" + }, + "id": 1285, + "name": "Identifier", + "src": "22964:4:1" + } + ], + "id": 1286, + "name": "FunctionCall", + "src": "22936:33:1" + } + ], + "id": 1287, + "name": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "attributes": { + "functionReturnParameters": 1258 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1288, + "name": "Identifier", + "src": "22986:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1278, + "type": "bool", + "value": "success" + }, + "id": 1289, + "name": "Identifier", + "src": "23004:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1280, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1290, + "name": "Identifier", + "src": "23013:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1254, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1291, + "name": "Identifier", + "src": "23025:12:1" + } + ], + "id": 1292, + "name": "FunctionCall", + "src": "22986:52:1" + } + ], + "id": 1293, + "name": "Return", + "src": "22979:59:1" + } + ], + "id": 1294, + "name": "Block", + "src": "22663:382:1" + } + ], + "id": 1295, + "name": "FunctionDefinition", + "src": "22522:523:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1296, + "name": "StructuredDocumentation", + "src": "23051:166:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1312, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1297, + "name": "ElementaryTypeName", + "src": "23250:7:1" + } + ], + "id": 1298, + "name": "VariableDeclaration", + "src": "23250:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1299, + "name": "ElementaryTypeName", + "src": "23266:5:1" + } + ], + "id": 1300, + "name": "VariableDeclaration", + "src": "23266:17:1" + } + ], + "id": 1301, + "name": "ParameterList", + "src": "23249:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1302, + "name": "ElementaryTypeName", + "src": "23308:5:1" + } + ], + "id": 1303, + "name": "VariableDeclaration", + "src": "23308:12:1" + } + ], + "id": 1304, + "name": "ParameterList", + "src": "23307:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1304 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "type": "function (address,bytes memory,string memory) view returns (bytes memory)", + "value": "functionStaticCall" + }, + "id": 1305, + "name": "Identifier", + "src": "23339:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1298, + "type": "address", + "value": "target" + }, + "id": 1306, + "name": "Identifier", + "src": "23358:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1300, + "type": "bytes memory", + "value": "data" + }, + "id": 1307, + "name": "Identifier", + "src": "23366:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level static call failed\"", + "value": "Address: low-level static call failed" + }, + "id": 1308, + "name": "Literal", + "src": "23372:39:1" + } + ], + "id": 1309, + "name": "FunctionCall", + "src": "23339:73:1" + } + ], + "id": 1310, + "name": "Return", + "src": "23332:80:1" + } + ], + "id": 1311, + "name": "Block", + "src": "23322:97:1" + } + ], + "id": 1312, + "name": "FunctionDefinition", + "src": "23222:197:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1313, + "name": "StructuredDocumentation", + "src": "23425:173:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1347, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1314, + "name": "ElementaryTypeName", + "src": "23631:7:1" + } + ], + "id": 1315, + "name": "VariableDeclaration", + "src": "23631:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1316, + "name": "ElementaryTypeName", + "src": "23647:5:1" + } + ], + "id": 1317, + "name": "VariableDeclaration", + "src": "23647:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1318, + "name": "ElementaryTypeName", + "src": "23666:6:1" + } + ], + "id": 1319, + "name": "VariableDeclaration", + "src": "23666:26:1" + } + ], + "id": 1320, + "name": "ParameterList", + "src": "23630:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1321, + "name": "ElementaryTypeName", + "src": "23717:5:1" + } + ], + "id": 1322, + "name": "VariableDeclaration", + "src": "23717:12:1" + } + ], + "id": 1323, + "name": "ParameterList", + "src": "23716:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1324, + "name": "Identifier", + "src": "23741:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1325, + "name": "Identifier", + "src": "23749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1326, + "name": "Identifier", + "src": "23760:6:1" + } + ], + "id": 1327, + "name": "FunctionCall", + "src": "23749:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: static call to non-contract\"", + "value": "Address: static call to non-contract" + }, + "id": 1328, + "name": "Literal", + "src": "23769:38:1" + } + ], + "id": 1329, + "name": "FunctionCall", + "src": "23741:67:1" + } + ], + "id": 1330, + "name": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "attributes": { + "assignments": [ + 1332, + 1334 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1346, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1331, + "name": "ElementaryTypeName", + "src": "23879:4:1" + } + ], + "id": 1332, + "name": "VariableDeclaration", + "src": "23879:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1346, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1333, + "name": "ElementaryTypeName", + "src": "23893:5:1" + } + ], + "id": 1334, + "name": "VariableDeclaration", + "src": "23893:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "staticcall", + "type": "function (bytes memory) view returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1335, + "name": "Identifier", + "src": "23920:6:1" + } + ], + "id": 1336, + "name": "MemberAccess", + "src": "23920:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1317, + "type": "bytes memory", + "value": "data" + }, + "id": 1337, + "name": "Identifier", + "src": "23938:4:1" + } + ], + "id": 1338, + "name": "FunctionCall", + "src": "23920:23:1" + } + ], + "id": 1339, + "name": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "attributes": { + "functionReturnParameters": 1323 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1340, + "name": "Identifier", + "src": "23960:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1332, + "type": "bool", + "value": "success" + }, + "id": 1341, + "name": "Identifier", + "src": "23978:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1334, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1342, + "name": "Identifier", + "src": "23987:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1319, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1343, + "name": "Identifier", + "src": "23999:12:1" + } + ], + "id": 1344, + "name": "FunctionCall", + "src": "23960:52:1" + } + ], + "id": 1345, + "name": "Return", + "src": "23953:59:1" + } + ], + "id": 1346, + "name": "Block", + "src": "23731:288:1" + } + ], + "id": 1347, + "name": "FunctionDefinition", + "src": "23603:416:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1348, + "name": "StructuredDocumentation", + "src": "24025:168:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1364, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1349, + "name": "ElementaryTypeName", + "src": "24228:7:1" + } + ], + "id": 1350, + "name": "VariableDeclaration", + "src": "24228:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1351, + "name": "ElementaryTypeName", + "src": "24244:5:1" + } + ], + "id": 1352, + "name": "VariableDeclaration", + "src": "24244:17:1" + } + ], + "id": 1353, + "name": "ParameterList", + "src": "24227:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1354, + "name": "ElementaryTypeName", + "src": "24281:5:1" + } + ], + "id": 1355, + "name": "VariableDeclaration", + "src": "24281:12:1" + } + ], + "id": 1356, + "name": "ParameterList", + "src": "24280:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1356 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionDelegateCall" + }, + "id": 1357, + "name": "Identifier", + "src": "24312:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1350, + "type": "address", + "value": "target" + }, + "id": 1358, + "name": "Identifier", + "src": "24333:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1352, + "type": "bytes memory", + "value": "data" + }, + "id": 1359, + "name": "Identifier", + "src": "24341:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level delegate call failed\"", + "value": "Address: low-level delegate call failed" + }, + "id": 1360, + "name": "Literal", + "src": "24347:41:1" + } + ], + "id": 1361, + "name": "FunctionCall", + "src": "24312:77:1" + } + ], + "id": 1362, + "name": "Return", + "src": "24305:84:1" + } + ], + "id": 1363, + "name": "Block", + "src": "24295:101:1" + } + ], + "id": 1364, + "name": "FunctionDefinition", + "src": "24198:198:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1365, + "name": "StructuredDocumentation", + "src": "24402:175:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1399, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1366, + "name": "ElementaryTypeName", + "src": "24612:7:1" + } + ], + "id": 1367, + "name": "VariableDeclaration", + "src": "24612:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1368, + "name": "ElementaryTypeName", + "src": "24628:5:1" + } + ], + "id": 1369, + "name": "VariableDeclaration", + "src": "24628:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1370, + "name": "ElementaryTypeName", + "src": "24647:6:1" + } + ], + "id": 1371, + "name": "VariableDeclaration", + "src": "24647:26:1" + } + ], + "id": 1372, + "name": "ParameterList", + "src": "24611:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1373, + "name": "ElementaryTypeName", + "src": "24693:5:1" + } + ], + "id": 1374, + "name": "VariableDeclaration", + "src": "24693:12:1" + } + ], + "id": 1375, + "name": "ParameterList", + "src": "24692:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1376, + "name": "Identifier", + "src": "24717:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1377, + "name": "Identifier", + "src": "24725:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1378, + "name": "Identifier", + "src": "24736:6:1" + } + ], + "id": 1379, + "name": "FunctionCall", + "src": "24725:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: delegate call to non-contract\"", + "value": "Address: delegate call to non-contract" + }, + "id": 1380, + "name": "Literal", + "src": "24745:40:1" + } + ], + "id": 1381, + "name": "FunctionCall", + "src": "24717:69:1" + } + ], + "id": 1382, + "name": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "attributes": { + "assignments": [ + 1384, + 1386 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1398, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1383, + "name": "ElementaryTypeName", + "src": "24857:4:1" + } + ], + "id": 1384, + "name": "VariableDeclaration", + "src": "24857:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1398, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1385, + "name": "ElementaryTypeName", + "src": "24871:5:1" + } + ], + "id": 1386, + "name": "VariableDeclaration", + "src": "24871:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "delegatecall", + "type": "function (bytes memory) returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1387, + "name": "Identifier", + "src": "24898:6:1" + } + ], + "id": 1388, + "name": "MemberAccess", + "src": "24898:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1369, + "type": "bytes memory", + "value": "data" + }, + "id": 1389, + "name": "Identifier", + "src": "24918:4:1" + } + ], + "id": 1390, + "name": "FunctionCall", + "src": "24898:25:1" + } + ], + "id": 1391, + "name": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "attributes": { + "functionReturnParameters": 1375 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1392, + "name": "Identifier", + "src": "24940:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1384, + "type": "bool", + "value": "success" + }, + "id": 1393, + "name": "Identifier", + "src": "24958:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1386, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1394, + "name": "Identifier", + "src": "24967:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1371, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1395, + "name": "Identifier", + "src": "24979:12:1" + } + ], + "id": 1396, + "name": "FunctionCall", + "src": "24940:52:1" + } + ], + "id": 1397, + "name": "Return", + "src": "24933:59:1" + } + ], + "id": 1398, + "name": "Block", + "src": "24707:292:1" + } + ], + "id": 1399, + "name": "FunctionDefinition", + "src": "24582:417:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_verifyCallResult", + "scope": 1430, + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1429, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1400, + "name": "ElementaryTypeName", + "src": "25032:4:1" + } + ], + "id": 1401, + "name": "VariableDeclaration", + "src": "25032:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1402, + "name": "ElementaryTypeName", + "src": "25046:5:1" + } + ], + "id": 1403, + "name": "VariableDeclaration", + "src": "25046:23:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1404, + "name": "ElementaryTypeName", + "src": "25071:6:1" + } + ], + "id": 1405, + "name": "VariableDeclaration", + "src": "25071:26:1" + } + ], + "id": 1406, + "name": "ParameterList", + "src": "25031:67:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1407, + "name": "ElementaryTypeName", + "src": "25120:5:1" + } + ], + "id": 1408, + "name": "VariableDeclaration", + "src": "25120:12:1" + } + ], + "id": 1409, + "name": "ParameterList", + "src": "25119:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1401, + "type": "bool", + "value": "success" + }, + "id": 1410, + "name": "Identifier", + "src": "25148:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1409 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1411, + "name": "Identifier", + "src": "25178:10:1" + } + ], + "id": 1412, + "name": "Return", + "src": "25171:17:1" + } + ], + "id": 1413, + "name": "Block", + "src": "25157:42:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1414, + "name": "Identifier", + "src": "25289:10:1" + } + ], + "id": 1415, + "name": "MemberAccess", + "src": "25289:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1416, + "name": "Literal", + "src": "25309:1:1" + } + ], + "id": 1417, + "name": "BinaryOperation", + "src": "25289:21:1" + }, + { + "children": [ + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "operations": "{\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n}" + }, + "children": [], + "id": 1418, + "name": "InlineAssembly", + "src": "25487:154:1" + } + ], + "id": 1419, + "name": "Block", + "src": "25312:343:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "type": "function (string memory) pure", + "value": "revert" + }, + "id": 1420, + "name": "Identifier", + "src": "25679:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1405, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1421, + "name": "Identifier", + "src": "25686:12:1" + } + ], + "id": 1422, + "name": "FunctionCall", + "src": "25679:20:1" + } + ], + "id": 1423, + "name": "ExpressionStatement", + "src": "25679:20:1" + } + ], + "id": 1424, + "name": "Block", + "src": "25661:53:1" + } + ], + "id": 1425, + "name": "IfStatement", + "src": "25285:429:1" + } + ], + "id": 1426, + "name": "Block", + "src": "25205:519:1" + } + ], + "id": 1427, + "name": "IfStatement", + "src": "25144:580:1" + } + ], + "id": 1428, + "name": "Block", + "src": "25134:596:1" + } + ], + "id": 1429, + "name": "FunctionDefinition", + "src": "25005:725:1" + } + ], + "id": 1430, + "name": "ContractDefinition", + "src": "18048:7684:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1431, + "name": "PragmaDirective", + "src": "25791:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "id": 1432, + "name": "StructuredDocumentation", + "src": "25824:686:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Set", + "name": "Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_values", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "bytes32[]" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1433, + "name": "ElementaryTypeName", + "src": "27033:7:1" + } + ], + "id": 1434, + "name": "ArrayTypeName", + "src": "27033:9:1" + } + ], + "id": 1435, + "name": "VariableDeclaration", + "src": "27033:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1436, + "name": "ElementaryTypeName", + "src": "27193:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1437, + "name": "ElementaryTypeName", + "src": "27204:7:1" + } + ], + "id": 1438, + "name": "Mapping", + "src": "27184:28:1" + } + ], + "id": 1439, + "name": "VariableDeclaration", + "src": "27184:37:1" + } + ], + "id": 1440, + "name": "StructDefinition", + "src": "26979:249:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1441, + "name": "StructuredDocumentation", + "src": "27234:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1481, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1442, + "name": "UserDefinedTypeName", + "src": "27412:3:1" + } + ], + "id": 1443, + "name": "VariableDeclaration", + "src": "27412:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1444, + "name": "ElementaryTypeName", + "src": "27429:7:1" + } + ], + "id": 1445, + "name": "VariableDeclaration", + "src": "27429:13:1" + } + ], + "id": 1446, + "name": "ParameterList", + "src": "27411:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1447, + "name": "ElementaryTypeName", + "src": "27461:4:1" + } + ], + "id": 1448, + "name": "VariableDeclaration", + "src": "27461:4:1" + } + ], + "id": 1449, + "name": "ParameterList", + "src": "27460:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1450, + "name": "Identifier", + "src": "27482:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1451, + "name": "Identifier", + "src": "27492:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1452, + "name": "Identifier", + "src": "27497:5:1" + } + ], + "id": 1453, + "name": "FunctionCall", + "src": "27482:21:1" + } + ], + "id": 1454, + "name": "UnaryOperation", + "src": "27481:22:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1455, + "name": "Identifier", + "src": "27519:3:1" + } + ], + "id": 1458, + "name": "MemberAccess", + "src": "27519:11:1" + } + ], + "id": 1459, + "name": "MemberAccess", + "src": "27519:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1460, + "name": "Identifier", + "src": "27536:5:1" + } + ], + "id": 1461, + "name": "FunctionCall", + "src": "27519:23:1" + } + ], + "id": 1462, + "name": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1463, + "name": "Identifier", + "src": "27677:3:1" + } + ], + "id": 1466, + "name": "MemberAccess", + "src": "27677:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1465, + "name": "Identifier", + "src": "27690:5:1" + } + ], + "id": 1467, + "name": "IndexAccess", + "src": "27677:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1468, + "name": "Identifier", + "src": "27699:3:1" + } + ], + "id": 1469, + "name": "MemberAccess", + "src": "27699:11:1" + } + ], + "id": 1470, + "name": "MemberAccess", + "src": "27699:18:1" + } + ], + "id": 1471, + "name": "Assignment", + "src": "27677:40:1" + } + ], + "id": 1472, + "name": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1473, + "name": "Literal", + "src": "27738:4:1" + } + ], + "id": 1474, + "name": "Return", + "src": "27731:11:1" + } + ], + "id": 1475, + "name": "Block", + "src": "27505:248:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1476, + "name": "Literal", + "src": "27780:5:1" + } + ], + "id": 1477, + "name": "Return", + "src": "27773:12:1" + } + ], + "id": 1478, + "name": "Block", + "src": "27759:37:1" + } + ], + "id": 1479, + "name": "IfStatement", + "src": "27477:319:1" + } + ], + "id": 1480, + "name": "Block", + "src": "27467:335:1" + } + ], + "id": 1481, + "name": "FunctionDefinition", + "src": "27398:404:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1482, + "name": "StructuredDocumentation", + "src": "27808:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1561, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1483, + "name": "UserDefinedTypeName", + "src": "27987:3:1" + } + ], + "id": 1484, + "name": "VariableDeclaration", + "src": "27987:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1485, + "name": "ElementaryTypeName", + "src": "28004:7:1" + } + ], + "id": 1486, + "name": "VariableDeclaration", + "src": "28004:13:1" + } + ], + "id": 1487, + "name": "ParameterList", + "src": "27986:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1488, + "name": "ElementaryTypeName", + "src": "28036:4:1" + } + ], + "id": 1489, + "name": "VariableDeclaration", + "src": "28036:4:1" + } + ], + "id": 1490, + "name": "ParameterList", + "src": "28035:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1492 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "valueIndex", + "scope": 1560, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1491, + "name": "ElementaryTypeName", + "src": "28152:7:1" + } + ], + "id": 1492, + "name": "VariableDeclaration", + "src": "28152:18:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1493, + "name": "Identifier", + "src": "28173:3:1" + } + ], + "id": 1494, + "name": "MemberAccess", + "src": "28173:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1495, + "name": "Identifier", + "src": "28186:5:1" + } + ], + "id": 1496, + "name": "IndexAccess", + "src": "28173:19:1" + } + ], + "id": 1497, + "name": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1498, + "name": "Identifier", + "src": "28207:10:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1499, + "name": "Literal", + "src": "28221:1:1" + } + ], + "id": 1500, + "name": "BinaryOperation", + "src": "28207:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1501, + "name": "ElementaryTypeName", + "src": "28564:7:1" + } + ], + "id": 1502, + "name": "VariableDeclaration", + "src": "28564:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1503, + "name": "Identifier", + "src": "28588:10:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1504, + "name": "Literal", + "src": "28601:1:1" + } + ], + "id": 1505, + "name": "BinaryOperation", + "src": "28588:14:1" + } + ], + "id": 1506, + "name": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "attributes": { + "assignments": [ + 1508 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1507, + "name": "ElementaryTypeName", + "src": "28616:7:1" + } + ], + "id": 1508, + "name": "VariableDeclaration", + "src": "28616:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1509, + "name": "Identifier", + "src": "28636:3:1" + } + ], + "id": 1510, + "name": "MemberAccess", + "src": "28636:11:1" + } + ], + "id": 1511, + "name": "MemberAccess", + "src": "28636:18:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1512, + "name": "Literal", + "src": "28657:1:1" + } + ], + "id": 1513, + "name": "BinaryOperation", + "src": "28636:22:1" + } + ], + "id": 1514, + "name": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "attributes": { + "assignments": [ + 1516 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastvalue", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1515, + "name": "ElementaryTypeName", + "src": "28898:7:1" + } + ], + "id": 1516, + "name": "VariableDeclaration", + "src": "28898:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1517, + "name": "Identifier", + "src": "28918:3:1" + } + ], + "id": 1518, + "name": "MemberAccess", + "src": "28918:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1508, + "type": "uint256", + "value": "lastIndex" + }, + "id": 1519, + "name": "Identifier", + "src": "28930:9:1" + } + ], + "id": 1520, + "name": "IndexAccess", + "src": "28918:22:1" + } + ], + "id": 1521, + "name": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1522, + "name": "Identifier", + "src": "29032:3:1" + } + ], + "id": 1525, + "name": "MemberAccess", + "src": "29032:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1524, + "name": "Identifier", + "src": "29044:13:1" + } + ], + "id": 1526, + "name": "IndexAccess", + "src": "29032:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1527, + "name": "Identifier", + "src": "29061:9:1" + } + ], + "id": 1528, + "name": "Assignment", + "src": "29032:38:1" + } + ], + "id": 1529, + "name": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1530, + "name": "Identifier", + "src": "29136:3:1" + } + ], + "id": 1533, + "name": "MemberAccess", + "src": "29136:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1532, + "name": "Identifier", + "src": "29149:9:1" + } + ], + "id": 1534, + "name": "IndexAccess", + "src": "29136:23:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1535, + "name": "Identifier", + "src": "29162:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1536, + "name": "Literal", + "src": "29178:1:1" + } + ], + "id": 1537, + "name": "BinaryOperation", + "src": "29162:17:1" + } + ], + "id": 1538, + "name": "Assignment", + "src": "29136:43:1" + } + ], + "id": 1539, + "name": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1540, + "name": "Identifier", + "src": "29285:3:1" + } + ], + "id": 1543, + "name": "MemberAccess", + "src": "29285:11:1" + } + ], + "id": 1544, + "name": "MemberAccess", + "src": "29285:15:1" + } + ], + "id": 1545, + "name": "FunctionCall", + "src": "29285:17:1" + } + ], + "id": 1546, + "name": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1547, + "name": "Identifier", + "src": "29377:3:1" + } + ], + "id": 1548, + "name": "MemberAccess", + "src": "29377:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1549, + "name": "Identifier", + "src": "29390:5:1" + } + ], + "id": 1550, + "name": "IndexAccess", + "src": "29377:19:1" + } + ], + "id": 1551, + "name": "UnaryOperation", + "src": "29370:26:1" + } + ], + "id": 1552, + "name": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1553, + "name": "Literal", + "src": "29418:4:1" + } + ], + "id": 1554, + "name": "Return", + "src": "29411:11:1" + } + ], + "id": 1555, + "name": "Block", + "src": "28224:1209:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1556, + "name": "Literal", + "src": "29460:5:1" + } + ], + "id": 1557, + "name": "Return", + "src": "29453:12:1" + } + ], + "id": 1558, + "name": "Block", + "src": "29439:37:1" + } + ], + "id": 1559, + "name": "IfStatement", + "src": "28203:1273:1" + } + ], + "id": 1560, + "name": "Block", + "src": "28042:1440:1" + } + ], + "id": 1561, + "name": "FunctionDefinition", + "src": "27970:1512:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1562, + "name": "StructuredDocumentation", + "src": "29488:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1579, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1563, + "name": "UserDefinedTypeName", + "src": "29582:3:1" + } + ], + "id": 1564, + "name": "VariableDeclaration", + "src": "29582:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1565, + "name": "ElementaryTypeName", + "src": "29599:7:1" + } + ], + "id": 1566, + "name": "VariableDeclaration", + "src": "29599:13:1" + } + ], + "id": 1567, + "name": "ParameterList", + "src": "29581:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1568, + "name": "ElementaryTypeName", + "src": "29636:4:1" + } + ], + "id": 1569, + "name": "VariableDeclaration", + "src": "29636:4:1" + } + ], + "id": 1570, + "name": "ParameterList", + "src": "29635:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1570 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1564, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1571, + "name": "Identifier", + "src": "29659:3:1" + } + ], + "id": 1572, + "name": "MemberAccess", + "src": "29659:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1566, + "type": "bytes32", + "value": "value" + }, + "id": 1573, + "name": "Identifier", + "src": "29672:5:1" + } + ], + "id": 1574, + "name": "IndexAccess", + "src": "29659:19:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1575, + "name": "Literal", + "src": "29682:1:1" + } + ], + "id": 1576, + "name": "BinaryOperation", + "src": "29659:24:1" + } + ], + "id": 1577, + "name": "Return", + "src": "29652:31:1" + } + ], + "id": 1578, + "name": "Block", + "src": "29642:48:1" + } + ], + "id": 1579, + "name": "FunctionDefinition", + "src": "29563:127:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1580, + "name": "StructuredDocumentation", + "src": "29696:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1592, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1581, + "name": "UserDefinedTypeName", + "src": "29788:3:1" + } + ], + "id": 1582, + "name": "VariableDeclaration", + "src": "29788:15:1" + } + ], + "id": 1583, + "name": "ParameterList", + "src": "29787:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1592, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1584, + "name": "ElementaryTypeName", + "src": "29827:7:1" + } + ], + "id": 1585, + "name": "VariableDeclaration", + "src": "29827:7:1" + } + ], + "id": 1586, + "name": "ParameterList", + "src": "29826:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1586 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1582, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1587, + "name": "Identifier", + "src": "29853:3:1" + } + ], + "id": 1588, + "name": "MemberAccess", + "src": "29853:11:1" + } + ], + "id": 1589, + "name": "MemberAccess", + "src": "29853:18:1" + } + ], + "id": 1590, + "name": "Return", + "src": "29846:25:1" + } + ], + "id": 1591, + "name": "Block", + "src": "29836:42:1" + } + ], + "id": 1592, + "name": "FunctionDefinition", + "src": "29771:107:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1593, + "name": "StructuredDocumentation", + "src": "29883:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1617, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1594, + "name": "UserDefinedTypeName", + "src": "30223:3:1" + } + ], + "id": 1595, + "name": "VariableDeclaration", + "src": "30223:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1596, + "name": "ElementaryTypeName", + "src": "30240:7:1" + } + ], + "id": 1597, + "name": "VariableDeclaration", + "src": "30240:13:1" + } + ], + "id": 1598, + "name": "ParameterList", + "src": "30222:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1599, + "name": "ElementaryTypeName", + "src": "30277:7:1" + } + ], + "id": 1600, + "name": "VariableDeclaration", + "src": "30277:7:1" + } + ], + "id": 1601, + "name": "ParameterList", + "src": "30276:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1602, + "name": "Identifier", + "src": "30296:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1603, + "name": "Identifier", + "src": "30304:3:1" + } + ], + "id": 1604, + "name": "MemberAccess", + "src": "30304:11:1" + } + ], + "id": 1605, + "name": "MemberAccess", + "src": "30304:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1606, + "name": "Identifier", + "src": "30325:5:1" + } + ], + "id": 1607, + "name": "BinaryOperation", + "src": "30304:26:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableSet: index out of bounds\"", + "value": "EnumerableSet: index out of bounds" + }, + "id": 1608, + "name": "Literal", + "src": "30332:36:1" + } + ], + "id": 1609, + "name": "FunctionCall", + "src": "30296:73:1" + } + ], + "id": 1610, + "name": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "attributes": { + "functionReturnParameters": 1601 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1611, + "name": "Identifier", + "src": "30386:3:1" + } + ], + "id": 1612, + "name": "MemberAccess", + "src": "30386:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1613, + "name": "Identifier", + "src": "30398:5:1" + } + ], + "id": 1614, + "name": "IndexAccess", + "src": "30386:18:1" + } + ], + "id": 1615, + "name": "Return", + "src": "30379:25:1" + } + ], + "id": 1616, + "name": "Block", + "src": "30286:125:1" + } + ], + "id": 1617, + "name": "FunctionDefinition", + "src": "30210:201:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Bytes32Set", + "name": "Bytes32Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1620, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1618, + "name": "UserDefinedTypeName", + "src": "30464:3:1" + } + ], + "id": 1619, + "name": "VariableDeclaration", + "src": "30464:10:1" + } + ], + "id": 1620, + "name": "StructDefinition", + "src": "30436:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1621, + "name": "StructuredDocumentation", + "src": "30487:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1637, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1622, + "name": "UserDefinedTypeName", + "src": "30664:10:1" + } + ], + "id": 1623, + "name": "VariableDeclaration", + "src": "30664:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1624, + "name": "ElementaryTypeName", + "src": "30688:7:1" + } + ], + "id": 1625, + "name": "VariableDeclaration", + "src": "30688:13:1" + } + ], + "id": 1626, + "name": "ParameterList", + "src": "30663:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1627, + "name": "ElementaryTypeName", + "src": "30721:4:1" + } + ], + "id": 1628, + "name": "VariableDeclaration", + "src": "30721:4:1" + } + ], + "id": 1629, + "name": "ParameterList", + "src": "30720:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1629 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1630, + "name": "Identifier", + "src": "30744:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1623, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1631, + "name": "Identifier", + "src": "30749:3:1" + } + ], + "id": 1632, + "name": "MemberAccess", + "src": "30749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1625, + "type": "bytes32", + "value": "value" + }, + "id": 1633, + "name": "Identifier", + "src": "30761:5:1" + } + ], + "id": 1634, + "name": "FunctionCall", + "src": "30744:23:1" + } + ], + "id": 1635, + "name": "Return", + "src": "30737:30:1" + } + ], + "id": 1636, + "name": "Block", + "src": "30727:47:1" + } + ], + "id": 1637, + "name": "FunctionDefinition", + "src": "30651:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1638, + "name": "StructuredDocumentation", + "src": "30780:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1654, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1639, + "name": "UserDefinedTypeName", + "src": "30958:10:1" + } + ], + "id": 1640, + "name": "VariableDeclaration", + "src": "30958:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1641, + "name": "ElementaryTypeName", + "src": "30982:7:1" + } + ], + "id": 1642, + "name": "VariableDeclaration", + "src": "30982:13:1" + } + ], + "id": 1643, + "name": "ParameterList", + "src": "30957:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1644, + "name": "ElementaryTypeName", + "src": "31015:4:1" + } + ], + "id": 1645, + "name": "VariableDeclaration", + "src": "31015:4:1" + } + ], + "id": 1646, + "name": "ParameterList", + "src": "31014:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1646 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1647, + "name": "Identifier", + "src": "31038:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1640, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1648, + "name": "Identifier", + "src": "31046:3:1" + } + ], + "id": 1649, + "name": "MemberAccess", + "src": "31046:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1642, + "type": "bytes32", + "value": "value" + }, + "id": 1650, + "name": "Identifier", + "src": "31058:5:1" + } + ], + "id": 1651, + "name": "FunctionCall", + "src": "31038:26:1" + } + ], + "id": 1652, + "name": "Return", + "src": "31031:33:1" + } + ], + "id": 1653, + "name": "Block", + "src": "31021:50:1" + } + ], + "id": 1654, + "name": "FunctionDefinition", + "src": "30942:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1655, + "name": "StructuredDocumentation", + "src": "31077:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1671, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1656, + "name": "UserDefinedTypeName", + "src": "31170:10:1" + } + ], + "id": 1657, + "name": "VariableDeclaration", + "src": "31170:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1658, + "name": "ElementaryTypeName", + "src": "31194:7:1" + } + ], + "id": 1659, + "name": "VariableDeclaration", + "src": "31194:13:1" + } + ], + "id": 1660, + "name": "ParameterList", + "src": "31169:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1661, + "name": "ElementaryTypeName", + "src": "31232:4:1" + } + ], + "id": 1662, + "name": "VariableDeclaration", + "src": "31232:4:1" + } + ], + "id": 1663, + "name": "ParameterList", + "src": "31231:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1663 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1664, + "name": "Identifier", + "src": "31255:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1657, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1665, + "name": "Identifier", + "src": "31265:3:1" + } + ], + "id": 1666, + "name": "MemberAccess", + "src": "31265:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1659, + "type": "bytes32", + "value": "value" + }, + "id": 1667, + "name": "Identifier", + "src": "31277:5:1" + } + ], + "id": 1668, + "name": "FunctionCall", + "src": "31255:28:1" + } + ], + "id": 1669, + "name": "Return", + "src": "31248:35:1" + } + ], + "id": 1670, + "name": "Block", + "src": "31238:52:1" + } + ], + "id": 1671, + "name": "FunctionDefinition", + "src": "31152:138:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1672, + "name": "StructuredDocumentation", + "src": "31296:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1685, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1673, + "name": "UserDefinedTypeName", + "src": "31387:10:1" + } + ], + "id": 1674, + "name": "VariableDeclaration", + "src": "31387:22:1" + } + ], + "id": 1675, + "name": "ParameterList", + "src": "31386:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1685, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1676, + "name": "ElementaryTypeName", + "src": "31434:7:1" + } + ], + "id": 1677, + "name": "VariableDeclaration", + "src": "31434:7:1" + } + ], + "id": 1678, + "name": "ParameterList", + "src": "31433:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1678 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1679, + "name": "Identifier", + "src": "31460:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1674, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1680, + "name": "Identifier", + "src": "31468:3:1" + } + ], + "id": 1681, + "name": "MemberAccess", + "src": "31468:10:1" + } + ], + "id": 1682, + "name": "FunctionCall", + "src": "31460:19:1" + } + ], + "id": 1683, + "name": "Return", + "src": "31453:26:1" + } + ], + "id": 1684, + "name": "Block", + "src": "31443:43:1" + } + ], + "id": 1685, + "name": "FunctionDefinition", + "src": "31371:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1686, + "name": "StructuredDocumentation", + "src": "31491:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1702, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1687, + "name": "UserDefinedTypeName", + "src": "31830:10:1" + } + ], + "id": 1688, + "name": "VariableDeclaration", + "src": "31830:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1689, + "name": "ElementaryTypeName", + "src": "31854:7:1" + } + ], + "id": 1690, + "name": "VariableDeclaration", + "src": "31854:13:1" + } + ], + "id": 1691, + "name": "ParameterList", + "src": "31829:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1692, + "name": "ElementaryTypeName", + "src": "31892:7:1" + } + ], + "id": 1693, + "name": "VariableDeclaration", + "src": "31892:7:1" + } + ], + "id": 1694, + "name": "ParameterList", + "src": "31891:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1695, + "name": "Identifier", + "src": "31918:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1688, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1696, + "name": "Identifier", + "src": "31922:3:1" + } + ], + "id": 1697, + "name": "MemberAccess", + "src": "31922:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1690, + "type": "uint256", + "value": "index" + }, + "id": 1698, + "name": "Identifier", + "src": "31934:5:1" + } + ], + "id": 1699, + "name": "FunctionCall", + "src": "31918:22:1" + } + ], + "id": 1700, + "name": "Return", + "src": "31911:29:1" + } + ], + "id": 1701, + "name": "Block", + "src": "31901:46:1" + } + ], + "id": 1702, + "name": "FunctionDefinition", + "src": "31818:129:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.AddressSet", + "name": "AddressSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1705, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1703, + "name": "UserDefinedTypeName", + "src": "32000:3:1" + } + ], + "id": 1704, + "name": "VariableDeclaration", + "src": "32000:10:1" + } + ], + "id": 1705, + "name": "StructDefinition", + "src": "31972:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1706, + "name": "StructuredDocumentation", + "src": "32023:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1731, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1707, + "name": "UserDefinedTypeName", + "src": "32200:10:1" + } + ], + "id": 1708, + "name": "VariableDeclaration", + "src": "32200:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1709, + "name": "ElementaryTypeName", + "src": "32224:7:1" + } + ], + "id": 1710, + "name": "VariableDeclaration", + "src": "32224:13:1" + } + ], + "id": 1711, + "name": "ParameterList", + "src": "32199:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1712, + "name": "ElementaryTypeName", + "src": "32257:4:1" + } + ], + "id": 1713, + "name": "VariableDeclaration", + "src": "32257:4:1" + } + ], + "id": 1714, + "name": "ParameterList", + "src": "32256:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1714 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1715, + "name": "Identifier", + "src": "32280:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1708, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1716, + "name": "Identifier", + "src": "32285:3:1" + } + ], + "id": 1717, + "name": "MemberAccess", + "src": "32285:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1718, + "name": "ElementaryTypeName", + "src": "32297:7:1" + } + ], + "id": 1719, + "name": "ElementaryTypeNameExpression", + "src": "32297:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1720, + "name": "ElementaryTypeName", + "src": "32305:7:1" + } + ], + "id": 1721, + "name": "ElementaryTypeNameExpression", + "src": "32305:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1722, + "name": "ElementaryTypeName", + "src": "32313:7:1" + } + ], + "id": 1723, + "name": "ElementaryTypeNameExpression", + "src": "32313:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1710, + "type": "address", + "value": "value" + }, + "id": 1724, + "name": "Identifier", + "src": "32321:5:1" + } + ], + "id": 1725, + "name": "FunctionCall", + "src": "32313:14:1" + } + ], + "id": 1726, + "name": "FunctionCall", + "src": "32305:23:1" + } + ], + "id": 1727, + "name": "FunctionCall", + "src": "32297:32:1" + } + ], + "id": 1728, + "name": "FunctionCall", + "src": "32280:50:1" + } + ], + "id": 1729, + "name": "Return", + "src": "32273:57:1" + } + ], + "id": 1730, + "name": "Block", + "src": "32263:74:1" + } + ], + "id": 1731, + "name": "FunctionDefinition", + "src": "32187:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1732, + "name": "StructuredDocumentation", + "src": "32343:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1757, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1733, + "name": "UserDefinedTypeName", + "src": "32521:10:1" + } + ], + "id": 1734, + "name": "VariableDeclaration", + "src": "32521:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1735, + "name": "ElementaryTypeName", + "src": "32545:7:1" + } + ], + "id": 1736, + "name": "VariableDeclaration", + "src": "32545:13:1" + } + ], + "id": 1737, + "name": "ParameterList", + "src": "32520:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1738, + "name": "ElementaryTypeName", + "src": "32578:4:1" + } + ], + "id": 1739, + "name": "VariableDeclaration", + "src": "32578:4:1" + } + ], + "id": 1740, + "name": "ParameterList", + "src": "32577:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1740 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1741, + "name": "Identifier", + "src": "32601:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1734, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1742, + "name": "Identifier", + "src": "32609:3:1" + } + ], + "id": 1743, + "name": "MemberAccess", + "src": "32609:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1744, + "name": "ElementaryTypeName", + "src": "32621:7:1" + } + ], + "id": 1745, + "name": "ElementaryTypeNameExpression", + "src": "32621:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1746, + "name": "ElementaryTypeName", + "src": "32629:7:1" + } + ], + "id": 1747, + "name": "ElementaryTypeNameExpression", + "src": "32629:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1748, + "name": "ElementaryTypeName", + "src": "32637:7:1" + } + ], + "id": 1749, + "name": "ElementaryTypeNameExpression", + "src": "32637:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1736, + "type": "address", + "value": "value" + }, + "id": 1750, + "name": "Identifier", + "src": "32645:5:1" + } + ], + "id": 1751, + "name": "FunctionCall", + "src": "32637:14:1" + } + ], + "id": 1752, + "name": "FunctionCall", + "src": "32629:23:1" + } + ], + "id": 1753, + "name": "FunctionCall", + "src": "32621:32:1" + } + ], + "id": 1754, + "name": "FunctionCall", + "src": "32601:53:1" + } + ], + "id": 1755, + "name": "Return", + "src": "32594:60:1" + } + ], + "id": 1756, + "name": "Block", + "src": "32584:77:1" + } + ], + "id": 1757, + "name": "FunctionDefinition", + "src": "32505:156:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1758, + "name": "StructuredDocumentation", + "src": "32667:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1783, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1759, + "name": "UserDefinedTypeName", + "src": "32760:10:1" + } + ], + "id": 1760, + "name": "VariableDeclaration", + "src": "32760:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1761, + "name": "ElementaryTypeName", + "src": "32784:7:1" + } + ], + "id": 1762, + "name": "VariableDeclaration", + "src": "32784:13:1" + } + ], + "id": 1763, + "name": "ParameterList", + "src": "32759:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1764, + "name": "ElementaryTypeName", + "src": "32822:4:1" + } + ], + "id": 1765, + "name": "VariableDeclaration", + "src": "32822:4:1" + } + ], + "id": 1766, + "name": "ParameterList", + "src": "32821:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1766 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1767, + "name": "Identifier", + "src": "32845:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1760, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1768, + "name": "Identifier", + "src": "32855:3:1" + } + ], + "id": 1769, + "name": "MemberAccess", + "src": "32855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1770, + "name": "ElementaryTypeName", + "src": "32867:7:1" + } + ], + "id": 1771, + "name": "ElementaryTypeNameExpression", + "src": "32867:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1772, + "name": "ElementaryTypeName", + "src": "32875:7:1" + } + ], + "id": 1773, + "name": "ElementaryTypeNameExpression", + "src": "32875:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1774, + "name": "ElementaryTypeName", + "src": "32883:7:1" + } + ], + "id": 1775, + "name": "ElementaryTypeNameExpression", + "src": "32883:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1762, + "type": "address", + "value": "value" + }, + "id": 1776, + "name": "Identifier", + "src": "32891:5:1" + } + ], + "id": 1777, + "name": "FunctionCall", + "src": "32883:14:1" + } + ], + "id": 1778, + "name": "FunctionCall", + "src": "32875:23:1" + } + ], + "id": 1779, + "name": "FunctionCall", + "src": "32867:32:1" + } + ], + "id": 1780, + "name": "FunctionCall", + "src": "32845:55:1" + } + ], + "id": 1781, + "name": "Return", + "src": "32838:62:1" + } + ], + "id": 1782, + "name": "Block", + "src": "32828:79:1" + } + ], + "id": 1783, + "name": "FunctionDefinition", + "src": "32742:165:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1784, + "name": "StructuredDocumentation", + "src": "32913:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1797, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1785, + "name": "UserDefinedTypeName", + "src": "33004:10:1" + } + ], + "id": 1786, + "name": "VariableDeclaration", + "src": "33004:22:1" + } + ], + "id": 1787, + "name": "ParameterList", + "src": "33003:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1797, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1788, + "name": "ElementaryTypeName", + "src": "33051:7:1" + } + ], + "id": 1789, + "name": "VariableDeclaration", + "src": "33051:7:1" + } + ], + "id": 1790, + "name": "ParameterList", + "src": "33050:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1790 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1791, + "name": "Identifier", + "src": "33077:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1786, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1792, + "name": "Identifier", + "src": "33085:3:1" + } + ], + "id": 1793, + "name": "MemberAccess", + "src": "33085:10:1" + } + ], + "id": 1794, + "name": "FunctionCall", + "src": "33077:19:1" + } + ], + "id": 1795, + "name": "Return", + "src": "33070:26:1" + } + ], + "id": 1796, + "name": "Block", + "src": "33060:43:1" + } + ], + "id": 1797, + "name": "FunctionDefinition", + "src": "32988:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1798, + "name": "StructuredDocumentation", + "src": "33108:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1823, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1799, + "name": "UserDefinedTypeName", + "src": "33447:10:1" + } + ], + "id": 1800, + "name": "VariableDeclaration", + "src": "33447:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1801, + "name": "ElementaryTypeName", + "src": "33471:7:1" + } + ], + "id": 1802, + "name": "VariableDeclaration", + "src": "33471:13:1" + } + ], + "id": 1803, + "name": "ParameterList", + "src": "33446:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1804, + "name": "ElementaryTypeName", + "src": "33509:7:1" + } + ], + "id": 1805, + "name": "VariableDeclaration", + "src": "33509:7:1" + } + ], + "id": 1806, + "name": "ParameterList", + "src": "33508:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1806 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1807, + "name": "ElementaryTypeName", + "src": "33535:7:1" + } + ], + "id": 1808, + "name": "ElementaryTypeNameExpression", + "src": "33535:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1809, + "name": "ElementaryTypeName", + "src": "33543:7:1" + } + ], + "id": 1810, + "name": "ElementaryTypeNameExpression", + "src": "33543:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1811, + "name": "ElementaryTypeName", + "src": "33551:7:1" + } + ], + "id": 1812, + "name": "ElementaryTypeNameExpression", + "src": "33551:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1813, + "name": "Identifier", + "src": "33559:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1800, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1814, + "name": "Identifier", + "src": "33563:3:1" + } + ], + "id": 1815, + "name": "MemberAccess", + "src": "33563:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1802, + "type": "uint256", + "value": "index" + }, + "id": 1816, + "name": "Identifier", + "src": "33575:5:1" + } + ], + "id": 1817, + "name": "FunctionCall", + "src": "33559:22:1" + } + ], + "id": 1818, + "name": "FunctionCall", + "src": "33551:31:1" + } + ], + "id": 1819, + "name": "FunctionCall", + "src": "33543:40:1" + } + ], + "id": 1820, + "name": "FunctionCall", + "src": "33535:49:1" + } + ], + "id": 1821, + "name": "Return", + "src": "33528:56:1" + } + ], + "id": 1822, + "name": "Block", + "src": "33518:73:1" + } + ], + "id": 1823, + "name": "FunctionDefinition", + "src": "33435:156:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.UintSet", + "name": "UintSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1826, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1824, + "name": "UserDefinedTypeName", + "src": "33639:3:1" + } + ], + "id": 1825, + "name": "VariableDeclaration", + "src": "33639:10:1" + } + ], + "id": 1826, + "name": "StructDefinition", + "src": "33614:42:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1827, + "name": "StructuredDocumentation", + "src": "33662:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1846, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1828, + "name": "UserDefinedTypeName", + "src": "33839:7:1" + } + ], + "id": 1829, + "name": "VariableDeclaration", + "src": "33839:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1830, + "name": "ElementaryTypeName", + "src": "33860:7:1" + } + ], + "id": 1831, + "name": "VariableDeclaration", + "src": "33860:13:1" + } + ], + "id": 1832, + "name": "ParameterList", + "src": "33838:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1833, + "name": "ElementaryTypeName", + "src": "33893:4:1" + } + ], + "id": 1834, + "name": "VariableDeclaration", + "src": "33893:4:1" + } + ], + "id": 1835, + "name": "ParameterList", + "src": "33892:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1835 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1836, + "name": "Identifier", + "src": "33916:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1829, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1837, + "name": "Identifier", + "src": "33921:3:1" + } + ], + "id": 1838, + "name": "MemberAccess", + "src": "33921:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1839, + "name": "ElementaryTypeName", + "src": "33933:7:1" + } + ], + "id": 1840, + "name": "ElementaryTypeNameExpression", + "src": "33933:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1831, + "type": "uint256", + "value": "value" + }, + "id": 1841, + "name": "Identifier", + "src": "33941:5:1" + } + ], + "id": 1842, + "name": "FunctionCall", + "src": "33933:14:1" + } + ], + "id": 1843, + "name": "FunctionCall", + "src": "33916:32:1" + } + ], + "id": 1844, + "name": "Return", + "src": "33909:39:1" + } + ], + "id": 1845, + "name": "Block", + "src": "33899:56:1" + } + ], + "id": 1846, + "name": "FunctionDefinition", + "src": "33826:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1847, + "name": "StructuredDocumentation", + "src": "33961:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1866, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1848, + "name": "UserDefinedTypeName", + "src": "34139:7:1" + } + ], + "id": 1849, + "name": "VariableDeclaration", + "src": "34139:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1850, + "name": "ElementaryTypeName", + "src": "34160:7:1" + } + ], + "id": 1851, + "name": "VariableDeclaration", + "src": "34160:13:1" + } + ], + "id": 1852, + "name": "ParameterList", + "src": "34138:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1853, + "name": "ElementaryTypeName", + "src": "34193:4:1" + } + ], + "id": 1854, + "name": "VariableDeclaration", + "src": "34193:4:1" + } + ], + "id": 1855, + "name": "ParameterList", + "src": "34192:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1855 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1856, + "name": "Identifier", + "src": "34216:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1849, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1857, + "name": "Identifier", + "src": "34224:3:1" + } + ], + "id": 1858, + "name": "MemberAccess", + "src": "34224:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1859, + "name": "ElementaryTypeName", + "src": "34236:7:1" + } + ], + "id": 1860, + "name": "ElementaryTypeNameExpression", + "src": "34236:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1851, + "type": "uint256", + "value": "value" + }, + "id": 1861, + "name": "Identifier", + "src": "34244:5:1" + } + ], + "id": 1862, + "name": "FunctionCall", + "src": "34236:14:1" + } + ], + "id": 1863, + "name": "FunctionCall", + "src": "34216:35:1" + } + ], + "id": 1864, + "name": "Return", + "src": "34209:42:1" + } + ], + "id": 1865, + "name": "Block", + "src": "34199:59:1" + } + ], + "id": 1866, + "name": "FunctionDefinition", + "src": "34123:135:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1867, + "name": "StructuredDocumentation", + "src": "34264:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1886, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1868, + "name": "UserDefinedTypeName", + "src": "34357:7:1" + } + ], + "id": 1869, + "name": "VariableDeclaration", + "src": "34357:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1870, + "name": "ElementaryTypeName", + "src": "34378:7:1" + } + ], + "id": 1871, + "name": "VariableDeclaration", + "src": "34378:13:1" + } + ], + "id": 1872, + "name": "ParameterList", + "src": "34356:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1873, + "name": "ElementaryTypeName", + "src": "34416:4:1" + } + ], + "id": 1874, + "name": "VariableDeclaration", + "src": "34416:4:1" + } + ], + "id": 1875, + "name": "ParameterList", + "src": "34415:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1875 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1876, + "name": "Identifier", + "src": "34439:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1869, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1877, + "name": "Identifier", + "src": "34449:3:1" + } + ], + "id": 1878, + "name": "MemberAccess", + "src": "34449:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1879, + "name": "ElementaryTypeName", + "src": "34461:7:1" + } + ], + "id": 1880, + "name": "ElementaryTypeNameExpression", + "src": "34461:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1871, + "type": "uint256", + "value": "value" + }, + "id": 1881, + "name": "Identifier", + "src": "34469:5:1" + } + ], + "id": 1882, + "name": "FunctionCall", + "src": "34461:14:1" + } + ], + "id": 1883, + "name": "FunctionCall", + "src": "34439:37:1" + } + ], + "id": 1884, + "name": "Return", + "src": "34432:44:1" + } + ], + "id": 1885, + "name": "Block", + "src": "34422:61:1" + } + ], + "id": 1886, + "name": "FunctionDefinition", + "src": "34339:144:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1887, + "name": "StructuredDocumentation", + "src": "34489:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1900, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1888, + "name": "UserDefinedTypeName", + "src": "34580:7:1" + } + ], + "id": 1889, + "name": "VariableDeclaration", + "src": "34580:19:1" + } + ], + "id": 1890, + "name": "ParameterList", + "src": "34579:21:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1900, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1891, + "name": "ElementaryTypeName", + "src": "34624:7:1" + } + ], + "id": 1892, + "name": "VariableDeclaration", + "src": "34624:7:1" + } + ], + "id": 1893, + "name": "ParameterList", + "src": "34623:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1894, + "name": "Identifier", + "src": "34650:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1889, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1895, + "name": "Identifier", + "src": "34658:3:1" + } + ], + "id": 1896, + "name": "MemberAccess", + "src": "34658:10:1" + } + ], + "id": 1897, + "name": "FunctionCall", + "src": "34650:19:1" + } + ], + "id": 1898, + "name": "Return", + "src": "34643:26:1" + } + ], + "id": 1899, + "name": "Block", + "src": "34633:43:1" + } + ], + "id": 1900, + "name": "FunctionDefinition", + "src": "34564:112:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1901, + "name": "StructuredDocumentation", + "src": "34681:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1920, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1902, + "name": "UserDefinedTypeName", + "src": "35020:7:1" + } + ], + "id": 1903, + "name": "VariableDeclaration", + "src": "35020:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1904, + "name": "ElementaryTypeName", + "src": "35041:7:1" + } + ], + "id": 1905, + "name": "VariableDeclaration", + "src": "35041:13:1" + } + ], + "id": 1906, + "name": "ParameterList", + "src": "35019:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1907, + "name": "ElementaryTypeName", + "src": "35079:7:1" + } + ], + "id": 1908, + "name": "VariableDeclaration", + "src": "35079:7:1" + } + ], + "id": 1909, + "name": "ParameterList", + "src": "35078:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1909 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1910, + "name": "ElementaryTypeName", + "src": "35105:7:1" + } + ], + "id": 1911, + "name": "ElementaryTypeNameExpression", + "src": "35105:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1912, + "name": "Identifier", + "src": "35113:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1903, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1913, + "name": "Identifier", + "src": "35117:3:1" + } + ], + "id": 1914, + "name": "MemberAccess", + "src": "35117:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1905, + "type": "uint256", + "value": "index" + }, + "id": 1915, + "name": "Identifier", + "src": "35129:5:1" + } + ], + "id": 1916, + "name": "FunctionCall", + "src": "35113:22:1" + } + ], + "id": 1917, + "name": "FunctionCall", + "src": "35105:31:1" + } + ], + "id": 1918, + "name": "Return", + "src": "35098:38:1" + } + ], + "id": 1919, + "name": "Block", + "src": "35088:55:1" + } + ], + "id": 1920, + "name": "FunctionDefinition", + "src": "35008:135:1" + } + ], + "id": 1921, + "name": "ContractDefinition", + "src": "26511:8634:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1922, + "name": "PragmaDirective", + "src": "35204:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "id": 1923, + "name": "StructuredDocumentation", + "src": "35237:705:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.MapEntry", + "name": "MapEntry", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_key", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1924, + "name": "ElementaryTypeName", + "src": "36455:7:1" + } + ], + "id": 1925, + "name": "VariableDeclaration", + "src": "36455:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_value", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1926, + "name": "ElementaryTypeName", + "src": "36477:7:1" + } + ], + "id": 1927, + "name": "VariableDeclaration", + "src": "36477:14:1" + } + ], + "id": 1928, + "name": "StructDefinition", + "src": "36429:69:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.Map", + "name": "Map", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_entries", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.MapEntry[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "struct EnumerableMap.MapEntry[]" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 1929, + "name": "UserDefinedTypeName", + "src": "36567:8:1" + } + ], + "id": 1930, + "name": "ArrayTypeName", + "src": "36567:10:1" + } + ], + "id": 1931, + "name": "VariableDeclaration", + "src": "36567:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1932, + "name": "ElementaryTypeName", + "src": "36745:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1933, + "name": "ElementaryTypeName", + "src": "36756:7:1" + } + ], + "id": 1934, + "name": "Mapping", + "src": "36736:28:1" + } + ], + "id": 1935, + "name": "VariableDeclaration", + "src": "36736:37:1" + } + ], + "id": 1936, + "name": "StructDefinition", + "src": "36504:276:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1937, + "name": "StructuredDocumentation", + "src": "36786:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 1998, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 1938, + "name": "UserDefinedTypeName", + "src": "37021:3:1" + } + ], + "id": 1939, + "name": "VariableDeclaration", + "src": "37021:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1940, + "name": "ElementaryTypeName", + "src": "37038:7:1" + } + ], + "id": 1941, + "name": "VariableDeclaration", + "src": "37038:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1942, + "name": "ElementaryTypeName", + "src": "37051:7:1" + } + ], + "id": 1943, + "name": "VariableDeclaration", + "src": "37051:13:1" + } + ], + "id": 1944, + "name": "ParameterList", + "src": "37020:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1945, + "name": "ElementaryTypeName", + "src": "37083:4:1" + } + ], + "id": 1946, + "name": "VariableDeclaration", + "src": "37083:4:1" + } + ], + "id": 1947, + "name": "ParameterList", + "src": "37082:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1949 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 1997, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1948, + "name": "ElementaryTypeName", + "src": "37197:7:1" + } + ], + "id": 1949, + "name": "VariableDeclaration", + "src": "37197:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1950, + "name": "Identifier", + "src": "37216:3:1" + } + ], + "id": 1951, + "name": "MemberAccess", + "src": "37216:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1952, + "name": "Identifier", + "src": "37229:3:1" + } + ], + "id": 1953, + "name": "IndexAccess", + "src": "37216:17:1" + } + ], + "id": 1954, + "name": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1955, + "name": "Identifier", + "src": "37248:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1956, + "name": "Literal", + "src": "37260:1:1" + } + ], + "id": 1957, + "name": "BinaryOperation", + "src": "37248:13:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (struct EnumerableMap.MapEntry storage ref)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1958, + "name": "Identifier", + "src": "37314:3:1" + } + ], + "id": 1961, + "name": "MemberAccess", + "src": "37314:12:1" + } + ], + "id": 1962, + "name": "MemberAccess", + "src": "37314:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": true, + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "tryCall": false, + "type": "struct EnumerableMap.MapEntry memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1928, + "type": "type(struct EnumerableMap.MapEntry storage pointer)", + "value": "MapEntry" + }, + "id": 1963, + "name": "Identifier", + "src": "37332:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1964, + "name": "Identifier", + "src": "37349:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1965, + "name": "Identifier", + "src": "37362:5:1" + } + ], + "id": 1966, + "name": "FunctionCall", + "src": "37332:38:1" + } + ], + "id": 1967, + "name": "FunctionCall", + "src": "37314:57:1" + } + ], + "id": 1968, + "name": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1969, + "name": "Identifier", + "src": "37506:3:1" + } + ], + "id": 1972, + "name": "MemberAccess", + "src": "37506:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1971, + "name": "Identifier", + "src": "37519:3:1" + } + ], + "id": 1973, + "name": "IndexAccess", + "src": "37506:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1974, + "name": "Identifier", + "src": "37526:3:1" + } + ], + "id": 1975, + "name": "MemberAccess", + "src": "37526:12:1" + } + ], + "id": 1976, + "name": "MemberAccess", + "src": "37526:19:1" + } + ], + "id": 1977, + "name": "Assignment", + "src": "37506:39:1" + } + ], + "id": 1978, + "name": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1979, + "name": "Literal", + "src": "37566:4:1" + } + ], + "id": 1980, + "name": "Return", + "src": "37559:11:1" + } + ], + "id": 1981, + "name": "Block", + "src": "37263:318:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1982, + "name": "Identifier", + "src": "37601:3:1" + } + ], + "id": 1987, + "name": "MemberAccess", + "src": "37601:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1984, + "name": "Identifier", + "src": "37614:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1985, + "name": "Literal", + "src": "37625:1:1" + } + ], + "id": 1986, + "name": "BinaryOperation", + "src": "37614:12:1" + } + ], + "id": 1988, + "name": "IndexAccess", + "src": "37601:26:1" + } + ], + "id": 1989, + "name": "MemberAccess", + "src": "37601:33:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1990, + "name": "Identifier", + "src": "37637:5:1" + } + ], + "id": 1991, + "name": "Assignment", + "src": "37601:41:1" + } + ], + "id": 1992, + "name": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1993, + "name": "Literal", + "src": "37663:5:1" + } + ], + "id": 1994, + "name": "Return", + "src": "37656:12:1" + } + ], + "id": 1995, + "name": "Block", + "src": "37587:92:1" + } + ], + "id": 1996, + "name": "IfStatement", + "src": "37244:435:1" + } + ], + "id": 1997, + "name": "Block", + "src": "37089:596:1" + } + ], + "id": 1998, + "name": "FunctionDefinition", + "src": "37007:678:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 1999, + "name": "StructuredDocumentation", + "src": "37691:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2079, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2000, + "name": "UserDefinedTypeName", + "src": "37870:3:1" + } + ], + "id": 2001, + "name": "VariableDeclaration", + "src": "37870:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2002, + "name": "ElementaryTypeName", + "src": "37887:7:1" + } + ], + "id": 2003, + "name": "VariableDeclaration", + "src": "37887:11:1" + } + ], + "id": 2004, + "name": "ParameterList", + "src": "37869:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2005, + "name": "ElementaryTypeName", + "src": "37917:4:1" + } + ], + "id": 2006, + "name": "VariableDeclaration", + "src": "37917:4:1" + } + ], + "id": 2007, + "name": "ParameterList", + "src": "37916:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2009 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2078, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2008, + "name": "ElementaryTypeName", + "src": "38031:7:1" + } + ], + "id": 2009, + "name": "VariableDeclaration", + "src": "38031:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2010, + "name": "Identifier", + "src": "38050:3:1" + } + ], + "id": 2011, + "name": "MemberAccess", + "src": "38050:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2012, + "name": "Identifier", + "src": "38063:3:1" + } + ], + "id": 2013, + "name": "IndexAccess", + "src": "38050:17:1" + } + ], + "id": 2014, + "name": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2015, + "name": "Identifier", + "src": "38082:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2016, + "name": "Literal", + "src": "38094:1:1" + } + ], + "id": 2017, + "name": "BinaryOperation", + "src": "38082:13:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2019 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2018, + "name": "ElementaryTypeName", + "src": "38438:7:1" + } + ], + "id": 2019, + "name": "VariableDeclaration", + "src": "38438:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2020, + "name": "Identifier", + "src": "38462:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2021, + "name": "Literal", + "src": "38473:1:1" + } + ], + "id": 2022, + "name": "BinaryOperation", + "src": "38462:12:1" + } + ], + "id": 2023, + "name": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "attributes": { + "assignments": [ + 2025 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2024, + "name": "ElementaryTypeName", + "src": "38488:7:1" + } + ], + "id": 2025, + "name": "VariableDeclaration", + "src": "38488:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2026, + "name": "Identifier", + "src": "38508:3:1" + } + ], + "id": 2027, + "name": "MemberAccess", + "src": "38508:12:1" + } + ], + "id": 2028, + "name": "MemberAccess", + "src": "38508:19:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2029, + "name": "Literal", + "src": "38530:1:1" + } + ], + "id": 2030, + "name": "BinaryOperation", + "src": "38508:23:1" + } + ], + "id": 2031, + "name": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "attributes": { + "assignments": [ + 2033 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastEntry", + "scope": 2073, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2032, + "name": "UserDefinedTypeName", + "src": "38771:8:1" + } + ], + "id": 2033, + "name": "VariableDeclaration", + "src": "38771:26:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2034, + "name": "Identifier", + "src": "38800:3:1" + } + ], + "id": 2035, + "name": "MemberAccess", + "src": "38800:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2025, + "type": "uint256", + "value": "lastIndex" + }, + "id": 2036, + "name": "Identifier", + "src": "38813:9:1" + } + ], + "id": 2037, + "name": "IndexAccess", + "src": "38800:23:1" + } + ], + "id": 2038, + "name": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2039, + "name": "Identifier", + "src": "38915:3:1" + } + ], + "id": 2042, + "name": "MemberAccess", + "src": "38915:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2041, + "name": "Identifier", + "src": "38928:13:1" + } + ], + "id": 2043, + "name": "IndexAccess", + "src": "38915:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2044, + "name": "Identifier", + "src": "38945:9:1" + } + ], + "id": 2045, + "name": "Assignment", + "src": "38915:39:1" + } + ], + "id": 2046, + "name": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2047, + "name": "Identifier", + "src": "39020:3:1" + } + ], + "id": 2051, + "name": "MemberAccess", + "src": "39020:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2049, + "name": "Identifier", + "src": "39033:9:1" + } + ], + "id": 2050, + "name": "MemberAccess", + "src": "39033:14:1" + } + ], + "id": 2052, + "name": "IndexAccess", + "src": "39020:28:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2053, + "name": "Identifier", + "src": "39051:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2054, + "name": "Literal", + "src": "39067:1:1" + } + ], + "id": 2055, + "name": "BinaryOperation", + "src": "39051:17:1" + } + ], + "id": 2056, + "name": "Assignment", + "src": "39020:48:1" + } + ], + "id": 2057, + "name": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2058, + "name": "Identifier", + "src": "39174:3:1" + } + ], + "id": 2061, + "name": "MemberAccess", + "src": "39174:12:1" + } + ], + "id": 2062, + "name": "MemberAccess", + "src": "39174:16:1" + } + ], + "id": 2063, + "name": "FunctionCall", + "src": "39174:18:1" + } + ], + "id": 2064, + "name": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2065, + "name": "Identifier", + "src": "39267:3:1" + } + ], + "id": 2066, + "name": "MemberAccess", + "src": "39267:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2067, + "name": "Identifier", + "src": "39280:3:1" + } + ], + "id": 2068, + "name": "IndexAccess", + "src": "39267:17:1" + } + ], + "id": 2069, + "name": "UnaryOperation", + "src": "39260:24:1" + } + ], + "id": 2070, + "name": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2071, + "name": "Literal", + "src": "39306:4:1" + } + ], + "id": 2072, + "name": "Return", + "src": "39299:11:1" + } + ], + "id": 2073, + "name": "Block", + "src": "38097:1224:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2074, + "name": "Literal", + "src": "39348:5:1" + } + ], + "id": 2075, + "name": "Return", + "src": "39341:12:1" + } + ], + "id": 2076, + "name": "Block", + "src": "39327:37:1" + } + ], + "id": 2077, + "name": "IfStatement", + "src": "38078:1286:1" + } + ], + "id": 2078, + "name": "Block", + "src": "37923:1447:1" + } + ], + "id": 2079, + "name": "FunctionDefinition", + "src": "37853:1517:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2080, + "name": "StructuredDocumentation", + "src": "39376:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2097, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2081, + "name": "UserDefinedTypeName", + "src": "39468:3:1" + } + ], + "id": 2082, + "name": "VariableDeclaration", + "src": "39468:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2083, + "name": "ElementaryTypeName", + "src": "39485:7:1" + } + ], + "id": 2084, + "name": "VariableDeclaration", + "src": "39485:11:1" + } + ], + "id": 2085, + "name": "ParameterList", + "src": "39467:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2086, + "name": "ElementaryTypeName", + "src": "39520:4:1" + } + ], + "id": 2087, + "name": "VariableDeclaration", + "src": "39520:4:1" + } + ], + "id": 2088, + "name": "ParameterList", + "src": "39519:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2088 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2082, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2089, + "name": "Identifier", + "src": "39543:3:1" + } + ], + "id": 2090, + "name": "MemberAccess", + "src": "39543:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2084, + "type": "bytes32", + "value": "key" + }, + "id": 2091, + "name": "Identifier", + "src": "39556:3:1" + } + ], + "id": 2092, + "name": "IndexAccess", + "src": "39543:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2093, + "name": "Literal", + "src": "39564:1:1" + } + ], + "id": 2094, + "name": "BinaryOperation", + "src": "39543:22:1" + } + ], + "id": 2095, + "name": "Return", + "src": "39536:29:1" + } + ], + "id": 2096, + "name": "Block", + "src": "39526:46:1" + } + ], + "id": 2097, + "name": "FunctionDefinition", + "src": "39449:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2098, + "name": "StructuredDocumentation", + "src": "39578:79:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2110, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2099, + "name": "UserDefinedTypeName", + "src": "39679:3:1" + } + ], + "id": 2100, + "name": "VariableDeclaration", + "src": "39679:15:1" + } + ], + "id": 2101, + "name": "ParameterList", + "src": "39678:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2102, + "name": "ElementaryTypeName", + "src": "39718:7:1" + } + ], + "id": 2103, + "name": "VariableDeclaration", + "src": "39718:7:1" + } + ], + "id": 2104, + "name": "ParameterList", + "src": "39717:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2104 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2100, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2105, + "name": "Identifier", + "src": "39744:3:1" + } + ], + "id": 2106, + "name": "MemberAccess", + "src": "39744:12:1" + } + ], + "id": 2107, + "name": "MemberAccess", + "src": "39744:19:1" + } + ], + "id": 2108, + "name": "Return", + "src": "39737:26:1" + } + ], + "id": 2109, + "name": "Block", + "src": "39727:43:1" + } + ], + "id": 2110, + "name": "FunctionDefinition", + "src": "39662:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2111, + "name": "StructuredDocumentation", + "src": "39775:333:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2145, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2112, + "name": "UserDefinedTypeName", + "src": "40126:3:1" + } + ], + "id": 2113, + "name": "VariableDeclaration", + "src": "40126:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2114, + "name": "ElementaryTypeName", + "src": "40143:7:1" + } + ], + "id": 2115, + "name": "VariableDeclaration", + "src": "40143:13:1" + } + ], + "id": 2116, + "name": "ParameterList", + "src": "40125:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2117, + "name": "ElementaryTypeName", + "src": "40180:7:1" + } + ], + "id": 2118, + "name": "VariableDeclaration", + "src": "40180:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2119, + "name": "ElementaryTypeName", + "src": "40189:7:1" + } + ], + "id": 2120, + "name": "VariableDeclaration", + "src": "40189:7:1" + } + ], + "id": 2121, + "name": "ParameterList", + "src": "40179:18:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2122, + "name": "Identifier", + "src": "40208:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2123, + "name": "Identifier", + "src": "40216:3:1" + } + ], + "id": 2124, + "name": "MemberAccess", + "src": "40216:12:1" + } + ], + "id": 2125, + "name": "MemberAccess", + "src": "40216:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2126, + "name": "Identifier", + "src": "40238:5:1" + } + ], + "id": 2127, + "name": "BinaryOperation", + "src": "40216:27:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: index out of bounds\"", + "value": "EnumerableMap: index out of bounds" + }, + "id": 2128, + "name": "Literal", + "src": "40245:36:1" + } + ], + "id": 2129, + "name": "FunctionCall", + "src": "40208:74:1" + } + ], + "id": 2130, + "name": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "attributes": { + "assignments": [ + 2132 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "entry", + "scope": 2144, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2131, + "name": "UserDefinedTypeName", + "src": "40293:8:1" + } + ], + "id": 2132, + "name": "VariableDeclaration", + "src": "40293:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2133, + "name": "Identifier", + "src": "40318:3:1" + } + ], + "id": 2134, + "name": "MemberAccess", + "src": "40318:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2135, + "name": "Identifier", + "src": "40331:5:1" + } + ], + "id": 2136, + "name": "IndexAccess", + "src": "40318:19:1" + } + ], + "id": 2137, + "name": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2121 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bytes32,bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2138, + "name": "Identifier", + "src": "40355:5:1" + } + ], + "id": 2139, + "name": "MemberAccess", + "src": "40355:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2140, + "name": "Identifier", + "src": "40367:5:1" + } + ], + "id": 2141, + "name": "MemberAccess", + "src": "40367:12:1" + } + ], + "id": 2142, + "name": "TupleExpression", + "src": "40354:26:1" + } + ], + "id": 2143, + "name": "Return", + "src": "40347:33:1" + } + ], + "id": 2144, + "name": "Block", + "src": "40198:189:1" + } + ], + "id": 2145, + "name": "FunctionDefinition", + "src": "40113:274:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2146, + "name": "StructuredDocumentation", + "src": "40393:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2183, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2147, + "name": "UserDefinedTypeName", + "src": "40546:3:1" + } + ], + "id": 2148, + "name": "VariableDeclaration", + "src": "40546:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2149, + "name": "ElementaryTypeName", + "src": "40563:7:1" + } + ], + "id": 2150, + "name": "VariableDeclaration", + "src": "40563:11:1" + } + ], + "id": 2151, + "name": "ParameterList", + "src": "40545:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2152, + "name": "ElementaryTypeName", + "src": "40598:4:1" + } + ], + "id": 2153, + "name": "VariableDeclaration", + "src": "40598:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2154, + "name": "ElementaryTypeName", + "src": "40604:7:1" + } + ], + "id": 2155, + "name": "VariableDeclaration", + "src": "40604:7:1" + } + ], + "id": 2156, + "name": "ParameterList", + "src": "40597:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2158 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2182, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2157, + "name": "ElementaryTypeName", + "src": "40623:7:1" + } + ], + "id": 2158, + "name": "VariableDeclaration", + "src": "40623:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2159, + "name": "Identifier", + "src": "40642:3:1" + } + ], + "id": 2160, + "name": "MemberAccess", + "src": "40642:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2150, + "type": "bytes32", + "value": "key" + }, + "id": 2161, + "name": "Identifier", + "src": "40655:3:1" + } + ], + "id": 2162, + "name": "IndexAccess", + "src": "40642:17:1" + } + ], + "id": 2163, + "name": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2164, + "name": "Identifier", + "src": "40673:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2165, + "name": "Literal", + "src": "40685:1:1" + } + ], + "id": 2166, + "name": "BinaryOperation", + "src": "40673:13:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2167, + "name": "Literal", + "src": "40696:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2168, + "name": "Literal", + "src": "40703:1:1" + } + ], + "id": 2169, + "name": "TupleExpression", + "src": "40695:10:1" + } + ], + "id": 2170, + "name": "Return", + "src": "40688:17:1" + } + ], + "id": 2171, + "name": "IfStatement", + "src": "40669:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,bytes32)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2172, + "name": "Literal", + "src": "40759:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2173, + "name": "Identifier", + "src": "40765:3:1" + } + ], + "id": 2174, + "name": "MemberAccess", + "src": "40765:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2175, + "name": "Identifier", + "src": "40778:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2176, + "name": "Literal", + "src": "40789:1:1" + } + ], + "id": 2177, + "name": "BinaryOperation", + "src": "40778:12:1" + } + ], + "id": 2178, + "name": "IndexAccess", + "src": "40765:26:1" + } + ], + "id": 2179, + "name": "MemberAccess", + "src": "40765:33:1" + } + ], + "id": 2180, + "name": "TupleExpression", + "src": "40758:41:1" + } + ], + "id": 2181, + "name": "Return", + "src": "40751:48:1" + } + ], + "id": 2182, + "name": "Block", + "src": "40613:220:1" + } + ], + "id": 2183, + "name": "FunctionDefinition", + "src": "40529:304:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2184, + "name": "StructuredDocumentation", + "src": "40839:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2216, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2185, + "name": "UserDefinedTypeName", + "src": "40999:3:1" + } + ], + "id": 2186, + "name": "VariableDeclaration", + "src": "40999:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2187, + "name": "ElementaryTypeName", + "src": "41016:7:1" + } + ], + "id": 2188, + "name": "VariableDeclaration", + "src": "41016:11:1" + } + ], + "id": 2189, + "name": "ParameterList", + "src": "40998:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2190, + "name": "ElementaryTypeName", + "src": "41051:7:1" + } + ], + "id": 2191, + "name": "VariableDeclaration", + "src": "41051:7:1" + } + ], + "id": 2192, + "name": "ParameterList", + "src": "41050:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2194 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2215, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2193, + "name": "ElementaryTypeName", + "src": "41070:7:1" + } + ], + "id": 2194, + "name": "VariableDeclaration", + "src": "41070:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2195, + "name": "Identifier", + "src": "41089:3:1" + } + ], + "id": 2196, + "name": "MemberAccess", + "src": "41089:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2188, + "type": "bytes32", + "value": "key" + }, + "id": 2197, + "name": "Identifier", + "src": "41102:3:1" + } + ], + "id": 2198, + "name": "IndexAccess", + "src": "41089:17:1" + } + ], + "id": 2199, + "name": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2200, + "name": "Identifier", + "src": "41116:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2201, + "name": "Identifier", + "src": "41124:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2202, + "name": "Literal", + "src": "41136:1:1" + } + ], + "id": 2203, + "name": "BinaryOperation", + "src": "41124:13:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: nonexistent key\"", + "value": "EnumerableMap: nonexistent key" + }, + "id": 2204, + "name": "Literal", + "src": "41139:32:1" + } + ], + "id": 2205, + "name": "FunctionCall", + "src": "41116:56:1" + } + ], + "id": 2206, + "name": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "attributes": { + "functionReturnParameters": 2192 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2207, + "name": "Identifier", + "src": "41225:3:1" + } + ], + "id": 2208, + "name": "MemberAccess", + "src": "41225:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2209, + "name": "Identifier", + "src": "41238:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2210, + "name": "Literal", + "src": "41249:1:1" + } + ], + "id": 2211, + "name": "BinaryOperation", + "src": "41238:12:1" + } + ], + "id": 2212, + "name": "IndexAccess", + "src": "41225:26:1" + } + ], + "id": 2213, + "name": "MemberAccess", + "src": "41225:33:1" + } + ], + "id": 2214, + "name": "Return", + "src": "41218:40:1" + } + ], + "id": 2215, + "name": "Block", + "src": "41060:232:1" + } + ], + "id": 2216, + "name": "FunctionDefinition", + "src": "40985:307:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2217, + "name": "StructuredDocumentation", + "src": "41298:271:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2251, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2218, + "name": "UserDefinedTypeName", + "src": "41588:3:1" + } + ], + "id": 2219, + "name": "VariableDeclaration", + "src": "41588:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2220, + "name": "ElementaryTypeName", + "src": "41605:7:1" + } + ], + "id": 2221, + "name": "VariableDeclaration", + "src": "41605:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2251, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2222, + "name": "ElementaryTypeName", + "src": "41618:6:1" + } + ], + "id": 2223, + "name": "VariableDeclaration", + "src": "41618:26:1" + } + ], + "id": 2224, + "name": "ParameterList", + "src": "41587:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2225, + "name": "ElementaryTypeName", + "src": "41668:7:1" + } + ], + "id": 2226, + "name": "VariableDeclaration", + "src": "41668:7:1" + } + ], + "id": 2227, + "name": "ParameterList", + "src": "41667:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2229 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2250, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2228, + "name": "ElementaryTypeName", + "src": "41687:7:1" + } + ], + "id": 2229, + "name": "VariableDeclaration", + "src": "41687:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2230, + "name": "Identifier", + "src": "41706:3:1" + } + ], + "id": 2231, + "name": "MemberAccess", + "src": "41706:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2221, + "type": "bytes32", + "value": "key" + }, + "id": 2232, + "name": "Identifier", + "src": "41719:3:1" + } + ], + "id": 2233, + "name": "IndexAccess", + "src": "41706:17:1" + } + ], + "id": 2234, + "name": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2235, + "name": "Identifier", + "src": "41733:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2236, + "name": "Identifier", + "src": "41741:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2237, + "name": "Literal", + "src": "41753:1:1" + } + ], + "id": 2238, + "name": "BinaryOperation", + "src": "41741:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2223, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2239, + "name": "Identifier", + "src": "41756:12:1" + } + ], + "id": 2240, + "name": "FunctionCall", + "src": "41733:36:1" + } + ], + "id": 2241, + "name": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2227 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2242, + "name": "Identifier", + "src": "41822:3:1" + } + ], + "id": 2243, + "name": "MemberAccess", + "src": "41822:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2244, + "name": "Identifier", + "src": "41835:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2245, + "name": "Literal", + "src": "41846:1:1" + } + ], + "id": 2246, + "name": "BinaryOperation", + "src": "41835:12:1" + } + ], + "id": 2247, + "name": "IndexAccess", + "src": "41822:26:1" + } + ], + "id": 2248, + "name": "MemberAccess", + "src": "41822:33:1" + } + ], + "id": 2249, + "name": "Return", + "src": "41815:40:1" + } + ], + "id": 2250, + "name": "Block", + "src": "41677:212:1" + } + ], + "id": 2251, + "name": "FunctionDefinition", + "src": "41574:315:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.UintToAddressMap", + "name": "UintToAddressMap", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 2254, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2252, + "name": "UserDefinedTypeName", + "src": "41954:3:1" + } + ], + "id": 2253, + "name": "VariableDeclaration", + "src": "41954:10:1" + } + ], + "id": 2254, + "name": "StructDefinition", + "src": "41920:51:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2255, + "name": "StructuredDocumentation", + "src": "41977:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2286, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2256, + "name": "UserDefinedTypeName", + "src": "42211:16:1" + } + ], + "id": 2257, + "name": "VariableDeclaration", + "src": "42211:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2258, + "name": "ElementaryTypeName", + "src": "42241:7:1" + } + ], + "id": 2259, + "name": "VariableDeclaration", + "src": "42241:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2260, + "name": "ElementaryTypeName", + "src": "42254:7:1" + } + ], + "id": 2261, + "name": "VariableDeclaration", + "src": "42254:13:1" + } + ], + "id": 2262, + "name": "ParameterList", + "src": "42210:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2263, + "name": "ElementaryTypeName", + "src": "42287:4:1" + } + ], + "id": 2264, + "name": "VariableDeclaration", + "src": "42287:4:1" + } + ], + "id": 2265, + "name": "ParameterList", + "src": "42286:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2265 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1998, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)", + "value": "_set" + }, + "id": 2266, + "name": "Identifier", + "src": "42310:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2257, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2267, + "name": "Identifier", + "src": "42315:3:1" + } + ], + "id": 2268, + "name": "MemberAccess", + "src": "42315:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2269, + "name": "ElementaryTypeName", + "src": "42327:7:1" + } + ], + "id": 2270, + "name": "ElementaryTypeNameExpression", + "src": "42327:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2259, + "type": "uint256", + "value": "key" + }, + "id": 2271, + "name": "Identifier", + "src": "42335:3:1" + } + ], + "id": 2272, + "name": "FunctionCall", + "src": "42327:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2273, + "name": "ElementaryTypeName", + "src": "42341:7:1" + } + ], + "id": 2274, + "name": "ElementaryTypeNameExpression", + "src": "42341:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2275, + "name": "ElementaryTypeName", + "src": "42349:7:1" + } + ], + "id": 2276, + "name": "ElementaryTypeNameExpression", + "src": "42349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2277, + "name": "ElementaryTypeName", + "src": "42357:7:1" + } + ], + "id": 2278, + "name": "ElementaryTypeNameExpression", + "src": "42357:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2261, + "type": "address", + "value": "value" + }, + "id": 2279, + "name": "Identifier", + "src": "42365:5:1" + } + ], + "id": 2280, + "name": "FunctionCall", + "src": "42357:14:1" + } + ], + "id": 2281, + "name": "FunctionCall", + "src": "42349:23:1" + } + ], + "id": 2282, + "name": "FunctionCall", + "src": "42341:32:1" + } + ], + "id": 2283, + "name": "FunctionCall", + "src": "42310:64:1" + } + ], + "id": 2284, + "name": "Return", + "src": "42303:71:1" + } + ], + "id": 2285, + "name": "Block", + "src": "42293:88:1" + } + ], + "id": 2286, + "name": "FunctionDefinition", + "src": "42198:183:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2287, + "name": "StructuredDocumentation", + "src": "42387:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2306, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2288, + "name": "UserDefinedTypeName", + "src": "42556:16:1" + } + ], + "id": 2289, + "name": "VariableDeclaration", + "src": "42556:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2290, + "name": "ElementaryTypeName", + "src": "42586:7:1" + } + ], + "id": 2291, + "name": "VariableDeclaration", + "src": "42586:11:1" + } + ], + "id": 2292, + "name": "ParameterList", + "src": "42555:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2293, + "name": "ElementaryTypeName", + "src": "42617:4:1" + } + ], + "id": 2294, + "name": "VariableDeclaration", + "src": "42617:4:1" + } + ], + "id": 2295, + "name": "ParameterList", + "src": "42616:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2295 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2079, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 2296, + "name": "Identifier", + "src": "42640:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2289, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2297, + "name": "Identifier", + "src": "42648:3:1" + } + ], + "id": 2298, + "name": "MemberAccess", + "src": "42648:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2299, + "name": "ElementaryTypeName", + "src": "42660:7:1" + } + ], + "id": 2300, + "name": "ElementaryTypeNameExpression", + "src": "42660:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2291, + "type": "uint256", + "value": "key" + }, + "id": 2301, + "name": "Identifier", + "src": "42668:3:1" + } + ], + "id": 2302, + "name": "FunctionCall", + "src": "42660:12:1" + } + ], + "id": 2303, + "name": "FunctionCall", + "src": "42640:33:1" + } + ], + "id": 2304, + "name": "Return", + "src": "42633:40:1" + } + ], + "id": 2305, + "name": "Block", + "src": "42623:57:1" + } + ], + "id": 2306, + "name": "FunctionDefinition", + "src": "42540:140:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2307, + "name": "StructuredDocumentation", + "src": "42686:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2326, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2308, + "name": "UserDefinedTypeName", + "src": "42777:16:1" + } + ], + "id": 2309, + "name": "VariableDeclaration", + "src": "42777:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2310, + "name": "ElementaryTypeName", + "src": "42807:7:1" + } + ], + "id": 2311, + "name": "VariableDeclaration", + "src": "42807:11:1" + } + ], + "id": 2312, + "name": "ParameterList", + "src": "42776:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2313, + "name": "ElementaryTypeName", + "src": "42843:4:1" + } + ], + "id": 2314, + "name": "VariableDeclaration", + "src": "42843:4:1" + } + ], + "id": 2315, + "name": "ParameterList", + "src": "42842:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2315 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2097, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 2316, + "name": "Identifier", + "src": "42866:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2309, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2317, + "name": "Identifier", + "src": "42876:3:1" + } + ], + "id": 2318, + "name": "MemberAccess", + "src": "42876:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2319, + "name": "ElementaryTypeName", + "src": "42888:7:1" + } + ], + "id": 2320, + "name": "ElementaryTypeNameExpression", + "src": "42888:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2311, + "type": "uint256", + "value": "key" + }, + "id": 2321, + "name": "Identifier", + "src": "42896:3:1" + } + ], + "id": 2322, + "name": "FunctionCall", + "src": "42888:12:1" + } + ], + "id": 2323, + "name": "FunctionCall", + "src": "42866:35:1" + } + ], + "id": 2324, + "name": "Return", + "src": "42859:42:1" + } + ], + "id": 2325, + "name": "Block", + "src": "42849:59:1" + } + ], + "id": 2326, + "name": "FunctionDefinition", + "src": "42759:149:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2327, + "name": "StructuredDocumentation", + "src": "42914:72:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2340, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2328, + "name": "UserDefinedTypeName", + "src": "43007:16:1" + } + ], + "id": 2329, + "name": "VariableDeclaration", + "src": "43007:28:1" + } + ], + "id": 2330, + "name": "ParameterList", + "src": "43006:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2340, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2331, + "name": "ElementaryTypeName", + "src": "43060:7:1" + } + ], + "id": 2332, + "name": "VariableDeclaration", + "src": "43060:7:1" + } + ], + "id": 2333, + "name": "ParameterList", + "src": "43059:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2333 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2110, + "type": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 2334, + "name": "Identifier", + "src": "43086:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2329, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2335, + "name": "Identifier", + "src": "43094:3:1" + } + ], + "id": 2336, + "name": "MemberAccess", + "src": "43094:10:1" + } + ], + "id": 2337, + "name": "FunctionCall", + "src": "43086:19:1" + } + ], + "id": 2338, + "name": "Return", + "src": "43079:26:1" + } + ], + "id": 2339, + "name": "Block", + "src": "43069:43:1" + } + ], + "id": 2340, + "name": "FunctionDefinition", + "src": "42991:121:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2341, + "name": "StructuredDocumentation", + "src": "43117:318:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2379, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2342, + "name": "UserDefinedTypeName", + "src": "43452:16:1" + } + ], + "id": 2343, + "name": "VariableDeclaration", + "src": "43452:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2344, + "name": "ElementaryTypeName", + "src": "43482:7:1" + } + ], + "id": 2345, + "name": "VariableDeclaration", + "src": "43482:13:1" + } + ], + "id": 2346, + "name": "ParameterList", + "src": "43451:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2347, + "name": "ElementaryTypeName", + "src": "43520:7:1" + } + ], + "id": 2348, + "name": "VariableDeclaration", + "src": "43520:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2349, + "name": "ElementaryTypeName", + "src": "43529:7:1" + } + ], + "id": 2350, + "name": "VariableDeclaration", + "src": "43529:7:1" + } + ], + "id": 2351, + "name": "ParameterList", + "src": "43519:18:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2353, + 2355 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2352, + "name": "ElementaryTypeName", + "src": "43549:7:1" + } + ], + "id": 2353, + "name": "VariableDeclaration", + "src": "43549:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2354, + "name": "ElementaryTypeName", + "src": "43562:7:1" + } + ], + "id": 2355, + "name": "VariableDeclaration", + "src": "43562:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bytes32,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2145, + "type": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)", + "value": "_at" + }, + "id": 2356, + "name": "Identifier", + "src": "43579:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2343, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2357, + "name": "Identifier", + "src": "43583:3:1" + } + ], + "id": 2358, + "name": "MemberAccess", + "src": "43583:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2345, + "type": "uint256", + "value": "index" + }, + "id": 2359, + "name": "Identifier", + "src": "43595:5:1" + } + ], + "id": 2360, + "name": "FunctionCall", + "src": "43579:22:1" + } + ], + "id": 2361, + "name": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "attributes": { + "functionReturnParameters": 2351 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(uint256,address payable)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2362, + "name": "ElementaryTypeName", + "src": "43619:7:1" + } + ], + "id": 2363, + "name": "ElementaryTypeNameExpression", + "src": "43619:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2353, + "type": "bytes32", + "value": "key" + }, + "id": 2364, + "name": "Identifier", + "src": "43627:3:1" + } + ], + "id": 2365, + "name": "FunctionCall", + "src": "43619:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2366, + "name": "ElementaryTypeName", + "src": "43633:7:1" + } + ], + "id": 2367, + "name": "ElementaryTypeNameExpression", + "src": "43633:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2368, + "name": "ElementaryTypeName", + "src": "43641:7:1" + } + ], + "id": 2369, + "name": "ElementaryTypeNameExpression", + "src": "43641:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2370, + "name": "ElementaryTypeName", + "src": "43649:7:1" + } + ], + "id": 2371, + "name": "ElementaryTypeNameExpression", + "src": "43649:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2355, + "type": "bytes32", + "value": "value" + }, + "id": 2372, + "name": "Identifier", + "src": "43657:5:1" + } + ], + "id": 2373, + "name": "FunctionCall", + "src": "43649:14:1" + } + ], + "id": 2374, + "name": "FunctionCall", + "src": "43641:23:1" + } + ], + "id": 2375, + "name": "FunctionCall", + "src": "43633:32:1" + } + ], + "id": 2376, + "name": "TupleExpression", + "src": "43618:48:1" + } + ], + "id": 2377, + "name": "Return", + "src": "43611:55:1" + } + ], + "id": 2378, + "name": "Block", + "src": "43538:135:1" + } + ], + "id": 2379, + "name": "FunctionDefinition", + "src": "43440:233:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2380, + "name": "StructuredDocumentation", + "src": "43679:169:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2418, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2381, + "name": "UserDefinedTypeName", + "src": "43869:16:1" + } + ], + "id": 2382, + "name": "VariableDeclaration", + "src": "43869:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2383, + "name": "ElementaryTypeName", + "src": "43899:7:1" + } + ], + "id": 2384, + "name": "VariableDeclaration", + "src": "43899:11:1" + } + ], + "id": 2385, + "name": "ParameterList", + "src": "43868:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2386, + "name": "ElementaryTypeName", + "src": "43935:4:1" + } + ], + "id": 2387, + "name": "VariableDeclaration", + "src": "43935:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2388, + "name": "ElementaryTypeName", + "src": "43941:7:1" + } + ], + "id": 2389, + "name": "VariableDeclaration", + "src": "43941:7:1" + } + ], + "id": 2390, + "name": "ParameterList", + "src": "43934:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2392, + 2394 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "43961:4:1" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "43961:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "43975:7:1" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "43975:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2183, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)", + "value": "_tryGet" + }, + "id": 2395, + "name": "Identifier", + "src": "43992:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2382, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2396, + "name": "Identifier", + "src": "44000:3:1" + } + ], + "id": 2397, + "name": "MemberAccess", + "src": "44000:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "44012:7:1" + } + ], + "id": 2399, + "name": "ElementaryTypeNameExpression", + "src": "44012:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2384, + "type": "uint256", + "value": "key" + }, + "id": 2400, + "name": "Identifier", + "src": "44020:3:1" + } + ], + "id": 2401, + "name": "FunctionCall", + "src": "44012:12:1" + } + ], + "id": 2402, + "name": "FunctionCall", + "src": "43992:33:1" + } + ], + "id": 2403, + "name": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "attributes": { + "functionReturnParameters": 2390 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,address payable)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2392, + "type": "bool", + "value": "success" + }, + "id": 2404, + "name": "Identifier", + "src": "44043:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2405, + "name": "ElementaryTypeName", + "src": "44052:7:1" + } + ], + "id": 2406, + "name": "ElementaryTypeNameExpression", + "src": "44052:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "44060:7:1" + } + ], + "id": 2408, + "name": "ElementaryTypeNameExpression", + "src": "44060:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "44068:7:1" + } + ], + "id": 2410, + "name": "ElementaryTypeNameExpression", + "src": "44068:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2394, + "type": "bytes32", + "value": "value" + }, + "id": 2411, + "name": "Identifier", + "src": "44076:5:1" + } + ], + "id": 2412, + "name": "FunctionCall", + "src": "44068:14:1" + } + ], + "id": 2413, + "name": "FunctionCall", + "src": "44060:23:1" + } + ], + "id": 2414, + "name": "FunctionCall", + "src": "44052:32:1" + } + ], + "id": 2415, + "name": "TupleExpression", + "src": "44042:43:1" + } + ], + "id": 2416, + "name": "Return", + "src": "44035:50:1" + } + ], + "id": 2417, + "name": "Block", + "src": "43950:142:1" + } + ], + "id": 2418, + "name": "FunctionDefinition", + "src": "43853:239:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2419, + "name": "StructuredDocumentation", + "src": "44098:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2447, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2420, + "name": "UserDefinedTypeName", + "src": "44257:16:1" + } + ], + "id": 2421, + "name": "VariableDeclaration", + "src": "44257:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2422, + "name": "ElementaryTypeName", + "src": "44287:7:1" + } + ], + "id": 2423, + "name": "VariableDeclaration", + "src": "44287:11:1" + } + ], + "id": 2424, + "name": "ParameterList", + "src": "44256:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2425, + "name": "ElementaryTypeName", + "src": "44323:7:1" + } + ], + "id": 2426, + "name": "VariableDeclaration", + "src": "44323:7:1" + } + ], + "id": 2427, + "name": "ParameterList", + "src": "44322:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2427 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2428, + "name": "ElementaryTypeName", + "src": "44349:7:1" + } + ], + "id": 2429, + "name": "ElementaryTypeNameExpression", + "src": "44349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2430, + "name": "ElementaryTypeName", + "src": "44357:7:1" + } + ], + "id": 2431, + "name": "ElementaryTypeNameExpression", + "src": "44357:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2432, + "name": "ElementaryTypeName", + "src": "44365:7:1" + } + ], + "id": 2433, + "name": "ElementaryTypeNameExpression", + "src": "44365:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)", + "value": "_get" + }, + "id": 2434, + "name": "Identifier", + "src": "44373:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2421, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2435, + "name": "Identifier", + "src": "44378:3:1" + } + ], + "id": 2436, + "name": "MemberAccess", + "src": "44378:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "44390:7:1" + } + ], + "id": 2438, + "name": "ElementaryTypeNameExpression", + "src": "44390:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2423, + "type": "uint256", + "value": "key" + }, + "id": 2439, + "name": "Identifier", + "src": "44398:3:1" + } + ], + "id": 2440, + "name": "FunctionCall", + "src": "44390:12:1" + } + ], + "id": 2441, + "name": "FunctionCall", + "src": "44373:30:1" + } + ], + "id": 2442, + "name": "FunctionCall", + "src": "44365:39:1" + } + ], + "id": 2443, + "name": "FunctionCall", + "src": "44357:48:1" + } + ], + "id": 2444, + "name": "FunctionCall", + "src": "44349:57:1" + } + ], + "id": 2445, + "name": "Return", + "src": "44342:64:1" + } + ], + "id": 2446, + "name": "Block", + "src": "44332:81:1" + } + ], + "id": 2447, + "name": "FunctionDefinition", + "src": "44244:169:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2448, + "name": "StructuredDocumentation", + "src": "44419:269:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2479, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2449, + "name": "UserDefinedTypeName", + "src": "44706:16:1" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "44706:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2451, + "name": "ElementaryTypeName", + "src": "44736:7:1" + } + ], + "id": 2452, + "name": "VariableDeclaration", + "src": "44736:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2479, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "44749:6:1" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "44749:26:1" + } + ], + "id": 2455, + "name": "ParameterList", + "src": "44705:71:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2456, + "name": "ElementaryTypeName", + "src": "44800:7:1" + } + ], + "id": 2457, + "name": "VariableDeclaration", + "src": "44800:7:1" + } + ], + "id": 2458, + "name": "ParameterList", + "src": "44799:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2458 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "44826:7:1" + } + ], + "id": 2460, + "name": "ElementaryTypeNameExpression", + "src": "44826:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "44834:7:1" + } + ], + "id": 2462, + "name": "ElementaryTypeNameExpression", + "src": "44834:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2463, + "name": "ElementaryTypeName", + "src": "44842:7:1" + } + ], + "id": 2464, + "name": "ElementaryTypeNameExpression", + "src": "44842:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)", + "value": "_get" + }, + "id": 2465, + "name": "Identifier", + "src": "44850:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2450, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2466, + "name": "Identifier", + "src": "44855:3:1" + } + ], + "id": 2467, + "name": "MemberAccess", + "src": "44855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2468, + "name": "ElementaryTypeName", + "src": "44867:7:1" + } + ], + "id": 2469, + "name": "ElementaryTypeNameExpression", + "src": "44867:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2452, + "type": "uint256", + "value": "key" + }, + "id": 2470, + "name": "Identifier", + "src": "44875:3:1" + } + ], + "id": 2471, + "name": "FunctionCall", + "src": "44867:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2454, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2472, + "name": "Identifier", + "src": "44881:12:1" + } + ], + "id": 2473, + "name": "FunctionCall", + "src": "44850:44:1" + } + ], + "id": 2474, + "name": "FunctionCall", + "src": "44842:53:1" + } + ], + "id": 2475, + "name": "FunctionCall", + "src": "44834:62:1" + } + ], + "id": 2476, + "name": "FunctionCall", + "src": "44826:71:1" + } + ], + "id": 2477, + "name": "Return", + "src": "44819:78:1" + } + ], + "id": 2478, + "name": "Block", + "src": "44809:95:1" + } + ], + "id": 2479, + "name": "FunctionDefinition", + "src": "44693:211:1" + } + ], + "id": 2480, + "name": "ContractDefinition", + "src": "35943:8963:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2481, + "name": "PragmaDirective", + "src": "44959:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev String operations." + }, + "id": 2482, + "name": "StructuredDocumentation", + "src": "44992:34:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toString", + "scope": 2566, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2483, + "name": "StructuredDocumentation", + "src": "45049:82:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2565, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2484, + "name": "ElementaryTypeName", + "src": "45154:7:1" + } + ], + "id": 2485, + "name": "VariableDeclaration", + "src": "45154:13:1" + } + ], + "id": 2486, + "name": "ParameterList", + "src": "45153:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2565, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "45192:6:1" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "45192:13:1" + } + ], + "id": 2489, + "name": "ParameterList", + "src": "45191:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2490, + "name": "Identifier", + "src": "45409:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2491, + "name": "Literal", + "src": "45418:1:1" + } + ], + "id": 2492, + "name": "BinaryOperation", + "src": "45409:10:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"0\"", + "value": "0" + }, + "id": 2493, + "name": "Literal", + "src": "45442:3:1" + } + ], + "id": 2494, + "name": "Return", + "src": "45435:10:1" + } + ], + "id": 2495, + "name": "Block", + "src": "45421:35:1" + } + ], + "id": 2496, + "name": "IfStatement", + "src": "45405:51:1" + }, + { + "attributes": { + "assignments": [ + 2498 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "temp", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2497, + "name": "ElementaryTypeName", + "src": "45465:7:1" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "45465:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2499, + "name": "Identifier", + "src": "45480:5:1" + } + ], + "id": 2500, + "name": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "attributes": { + "assignments": [ + 2502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "digits", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "45495:7:1" + } + ], + "id": 2502, + "name": "VariableDeclaration", + "src": "45495:14:1" + } + ], + "id": 2503, + "name": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2504, + "name": "Identifier", + "src": "45526:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2505, + "name": "Literal", + "src": "45534:1:1" + } + ], + "id": 2506, + "name": "BinaryOperation", + "src": "45526:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2507, + "name": "Identifier", + "src": "45551:6:1" + } + ], + "id": 2508, + "name": "UnaryOperation", + "src": "45551:8:1" + } + ], + "id": 2509, + "name": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2510, + "name": "Identifier", + "src": "45573:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2511, + "name": "Literal", + "src": "45581:2:1" + } + ], + "id": 2512, + "name": "Assignment", + "src": "45573:10:1" + } + ], + "id": 2513, + "name": "ExpressionStatement", + "src": "45573:10:1" + } + ], + "id": 2514, + "name": "Block", + "src": "45537:57:1" + } + ], + "id": 2515, + "name": "WhileStatement", + "src": "45519:75:1" + }, + { + "attributes": { + "assignments": [ + 2517 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "buffer", + "scope": 2564, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2516, + "name": "ElementaryTypeName", + "src": "45603:5:1" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "45603:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "function (uint256) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "45629:5:1" + } + ], + "id": 2519, + "name": "NewExpression", + "src": "45625:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2520, + "name": "Identifier", + "src": "45635:6:1" + } + ], + "id": 2521, + "name": "FunctionCall", + "src": "45625:17:1" + } + ], + "id": 2522, + "name": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "attributes": { + "assignments": [ + 2524 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2523, + "name": "ElementaryTypeName", + "src": "45652:7:1" + } + ], + "id": 2524, + "name": "VariableDeclaration", + "src": "45652:13:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2525, + "name": "Identifier", + "src": "45668:6:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2526, + "name": "Literal", + "src": "45677:1:1" + } + ], + "id": 2527, + "name": "BinaryOperation", + "src": "45668:10:1" + } + ], + "id": 2528, + "name": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2529, + "name": "Identifier", + "src": "45688:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2530, + "name": "Identifier", + "src": "45695:5:1" + } + ], + "id": 2531, + "name": "Assignment", + "src": "45688:12:1" + } + ], + "id": 2532, + "name": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2533, + "name": "Identifier", + "src": "45717:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2534, + "name": "Literal", + "src": "45725:1:1" + } + ], + "id": 2535, + "name": "BinaryOperation", + "src": "45717:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2536, + "name": "Identifier", + "src": "45742:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "--", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2524, + "type": "uint256", + "value": "index" + }, + "id": 2537, + "name": "Identifier", + "src": "45749:5:1" + } + ], + "id": 2538, + "name": "UnaryOperation", + "src": "45749:7:1" + } + ], + "id": 2539, + "name": "IndexAccess", + "src": "45742:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes1", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes1)" + }, + "children": [ + { + "attributes": { + "name": "bytes1" + }, + "id": 2540, + "name": "ElementaryTypeName", + "src": "45760:6:1" + } + ], + "id": 2541, + "name": "ElementaryTypeNameExpression", + "src": "45760:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 2542, + "name": "ElementaryTypeName", + "src": "45767:5:1" + } + ], + "id": 2543, + "name": "ElementaryTypeNameExpression", + "src": "45767:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "hexvalue": "3438", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 48", + "value": "48" + }, + "id": 2544, + "name": "Literal", + "src": "45773:2:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2545, + "name": "Identifier", + "src": "45778:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2546, + "name": "Literal", + "src": "45785:2:1" + } + ], + "id": 2547, + "name": "BinaryOperation", + "src": "45778:9:1" + } + ], + "id": 2548, + "name": "BinaryOperation", + "src": "45773:14:1" + } + ], + "id": 2549, + "name": "FunctionCall", + "src": "45767:21:1" + } + ], + "id": 2550, + "name": "FunctionCall", + "src": "45760:29:1" + } + ], + "id": 2551, + "name": "Assignment", + "src": "45742:47:1" + } + ], + "id": 2552, + "name": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2553, + "name": "Identifier", + "src": "45803:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2554, + "name": "Literal", + "src": "45811:2:1" + } + ], + "id": 2555, + "name": "Assignment", + "src": "45803:10:1" + } + ], + "id": 2556, + "name": "ExpressionStatement", + "src": "45803:10:1" + } + ], + "id": 2557, + "name": "Block", + "src": "45728:96:1" + } + ], + "id": 2558, + "name": "WhileStatement", + "src": "45710:114:1" + }, + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2559, + "name": "ElementaryTypeName", + "src": "45840:6:1" + } + ], + "id": 2560, + "name": "ElementaryTypeNameExpression", + "src": "45840:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2561, + "name": "Identifier", + "src": "45847:6:1" + } + ], + "id": 2562, + "name": "FunctionCall", + "src": "45840:14:1" + } + ], + "id": 2563, + "name": "Return", + "src": "45833:21:1" + } + ], + "id": 2564, + "name": "Block", + "src": "45207:654:1" + } + ], + "id": 2565, + "name": "FunctionDefinition", + "src": "45136:725:1" + } + ], + "id": 2566, + "name": "ContractDefinition", + "src": "45027:836:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2567, + "name": "PragmaDirective", + "src": "45922:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 2568, + "name": "StructuredDocumentation", + "src": "45955:124:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "Context", + "referencedDeclaration": 530, + "type": "contract Context" + }, + "id": 2569, + "name": "UserDefinedTypeName", + "src": "46099:7:1" + } + ], + "id": 2570, + "name": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "ERC165", + "referencedDeclaration": 781, + "type": "contract ERC165" + }, + "id": 2571, + "name": "UserDefinedTypeName", + "src": "46108:6:1" + } + ], + "id": 2572, + "name": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 2573, + "name": "UserDefinedTypeName", + "src": "46116:7:1" + } + ], + "id": 2574, + "name": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Metadata", + "referencedDeclaration": 680, + "type": "contract IERC721Metadata" + }, + "id": 2575, + "name": "UserDefinedTypeName", + "src": "46125:15:1" + } + ], + "id": 2576, + "name": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Enumerable", + "referencedDeclaration": 709, + "type": "contract IERC721Enumerable" + }, + "id": 2577, + "name": "UserDefinedTypeName", + "src": "46142:17:1" + } + ], + "id": 2578, + "name": "InheritanceSpecifier", + "src": "46142:17:1" + }, + { + "children": [ + { + "attributes": { + "name": "SafeMath", + "referencedDeclaration": 1135, + "type": "library SafeMath" + }, + "id": 2579, + "name": "UserDefinedTypeName", + "src": "46172:8:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2580, + "name": "ElementaryTypeName", + "src": "46185:7:1" + } + ], + "id": 2581, + "name": "UsingForDirective", + "src": "46166:27:1" + }, + { + "children": [ + { + "attributes": { + "name": "Address", + "referencedDeclaration": 1430, + "type": "library Address" + }, + "id": 2582, + "name": "UserDefinedTypeName", + "src": "46204:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "46216:7:1" + } + ], + "id": 2584, + "name": "UsingForDirective", + "src": "46198:26:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableSet", + "referencedDeclaration": 1921, + "type": "library EnumerableSet" + }, + "id": 2585, + "name": "UserDefinedTypeName", + "src": "46235:13:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2586, + "name": "UserDefinedTypeName", + "src": "46253:21:1" + } + ], + "id": 2587, + "name": "UsingForDirective", + "src": "46229:46:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableMap", + "referencedDeclaration": 2480, + "type": "library EnumerableMap" + }, + "id": 2588, + "name": "UserDefinedTypeName", + "src": "46286:13:1" + }, + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2589, + "name": "UserDefinedTypeName", + "src": "46304:30:1" + } + ], + "id": 2590, + "name": "UsingForDirective", + "src": "46280:55:1" + }, + { + "children": [ + { + "attributes": { + "name": "Strings", + "referencedDeclaration": 2566, + "type": "library Strings" + }, + "id": 2591, + "name": "UserDefinedTypeName", + "src": "46346:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2592, + "name": "ElementaryTypeName", + "src": "46358:7:1" + } + ], + "id": 2593, + "name": "UsingForDirective", + "src": "46340:26:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "46544:6:1" + }, + { + "attributes": { + "hexvalue": "30783135306237613032", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 353073666", + "value": "0x150b7a02" + }, + "id": 2595, + "name": "Literal", + "src": "46587:10:1" + } + ], + "id": 2596, + "name": "VariableDeclaration", + "src": "46544:53:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_holderTokens", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => struct EnumerableSet.UintSet)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct EnumerableSet.UintSet)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2597, + "name": "ElementaryTypeName", + "src": "46690:7:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2598, + "name": "UserDefinedTypeName", + "src": "46701:21:1" + } + ], + "id": 2599, + "name": "Mapping", + "src": "46681:42:1" + } + ], + "id": 2600, + "name": "VariableDeclaration", + "src": "46681:64:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenOwners", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2601, + "name": "UserDefinedTypeName", + "src": "46809:30:1" + } + ], + "id": 2602, + "name": "VariableDeclaration", + "src": "46809:51:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => address)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => address)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2603, + "name": "ElementaryTypeName", + "src": "46925:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "46936:7:1" + } + ], + "id": 2605, + "name": "Mapping", + "src": "46916:28:1" + } + ], + "id": 2606, + "name": "VariableDeclaration", + "src": "46916:52:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_operatorApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => mapping(address => bool))", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => mapping(address => bool))" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2607, + "name": "ElementaryTypeName", + "src": "47032:7:1" + }, + { + "attributes": { + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2608, + "name": "ElementaryTypeName", + "src": "47052:7:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2609, + "name": "ElementaryTypeName", + "src": "47063:4:1" + } + ], + "id": 2610, + "name": "Mapping", + "src": "47043:25:1" + } + ], + "id": 2611, + "name": "Mapping", + "src": "47023:46:1" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "47023:73:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_name", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "47121:6:1" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "47121:20:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_symbol", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "47168:6:1" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "47168:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURIs", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => string)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => string)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "47245:7:1" + }, + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2618, + "name": "ElementaryTypeName", + "src": "47256:6:1" + } + ], + "id": 2619, + "name": "Mapping", + "src": "47236:27:1" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "47236:46:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_baseURI", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2621, + "name": "ElementaryTypeName", + "src": "47305:6:1" + } + ], + "id": 2622, + "name": "VariableDeclaration", + "src": "47305:23:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2623, + "name": "ElementaryTypeName", + "src": "48204:6:1" + }, + { + "attributes": { + "hexvalue": "30783830616335386364", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2158778573", + "value": "0x80ac58cd" + }, + "id": 2624, + "name": "Literal", + "src": "48251:10:1" + } + ], + "id": 2625, + "name": "VariableDeclaration", + "src": "48204:57:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2626, + "name": "ElementaryTypeName", + "src": "48527:6:1" + }, + { + "attributes": { + "hexvalue": "30783562356531333966", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1532892063", + "value": "0x5b5e139f" + }, + "id": 2627, + "name": "Literal", + "src": "48583:10:1" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "48527:66:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "48898:6:1" + }, + { + "attributes": { + "hexvalue": "30783738306539643633", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2014223715", + "value": "0x780e9d63" + }, + "id": 2630, + "name": "Literal", + "src": "48956:10:1" + } + ], + "id": 2631, + "name": "VariableDeclaration", + "src": "48898:68:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2632, + "name": "StructuredDocumentation", + "src": "48973:108:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "name_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2633, + "name": "ElementaryTypeName", + "src": "49099:6:1" + } + ], + "id": 2634, + "name": "VariableDeclaration", + "src": "49099:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "symbol_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2635, + "name": "ElementaryTypeName", + "src": "49120:6:1" + } + ], + "id": 2636, + "name": "VariableDeclaration", + "src": "49120:21:1" + } + ], + "id": 2637, + "name": "ParameterList", + "src": "49098:44:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2638, + "name": "ParameterList", + "src": "49143:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2639, + "name": "Identifier", + "src": "49153:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2634, + "type": "string memory", + "value": "name_" + }, + "id": 2640, + "name": "Identifier", + "src": "49161:5:1" + } + ], + "id": 2641, + "name": "Assignment", + "src": "49153:13:1" + } + ], + "id": 2642, + "name": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2643, + "name": "Identifier", + "src": "49176:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2636, + "type": "string memory", + "value": "symbol_" + }, + "id": 2644, + "name": "Identifier", + "src": "49186:7:1" + } + ], + "id": 2645, + "name": "Assignment", + "src": "49176:17:1" + } + ], + "id": 2646, + "name": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2647, + "name": "Identifier", + "src": "49281:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2625, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721" + }, + "id": 2648, + "name": "Identifier", + "src": "49300:20:1" + } + ], + "id": 2649, + "name": "FunctionCall", + "src": "49281:40:1" + } + ], + "id": 2650, + "name": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2651, + "name": "Identifier", + "src": "49331:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2628, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_METADATA" + }, + "id": 2652, + "name": "Identifier", + "src": "49350:29:1" + } + ], + "id": 2653, + "name": "FunctionCall", + "src": "49331:49:1" + } + ], + "id": 2654, + "name": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2655, + "name": "Identifier", + "src": "49390:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2631, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_ENUMERABLE" + }, + "id": 2656, + "name": "Identifier", + "src": "49409:31:1" + } + ], + "id": 2657, + "name": "FunctionCall", + "src": "49390:51:1" + } + ], + "id": 2658, + "name": "ExpressionStatement", + "src": "49390:51:1" + } + ], + "id": 2659, + "name": "Block", + "src": "49143:305:1" + } + ], + "id": 2660, + "name": "FunctionDefinition", + "src": "49086:362:1" + }, + { + "attributes": { + "baseFunctions": [ + 580 + ], + "functionSelector": "70a08231", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-balanceOf}." + }, + "id": 2661, + "name": "StructuredDocumentation", + "src": "49454:48:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2665, + "name": "OverrideSpecifier", + "src": "49561:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2662, + "name": "ElementaryTypeName", + "src": "49526:7:1" + } + ], + "id": 2663, + "name": "VariableDeclaration", + "src": "49526:13:1" + } + ], + "id": 2664, + "name": "ParameterList", + "src": "49525:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2666, + "name": "ElementaryTypeName", + "src": "49579:7:1" + } + ], + "id": 2667, + "name": "VariableDeclaration", + "src": "49579:7:1" + } + ], + "id": 2668, + "name": "ParameterList", + "src": "49578:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2669, + "name": "Identifier", + "src": "49598:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2670, + "name": "Identifier", + "src": "49606:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2671, + "name": "ElementaryTypeName", + "src": "49615:7:1" + } + ], + "id": 2672, + "name": "ElementaryTypeNameExpression", + "src": "49615:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2673, + "name": "Literal", + "src": "49623:1:1" + } + ], + "id": 2674, + "name": "FunctionCall", + "src": "49615:10:1" + } + ], + "id": 2675, + "name": "BinaryOperation", + "src": "49606:19:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: balance query for the zero address\"", + "value": "ERC721: balance query for the zero address" + }, + "id": 2676, + "name": "Literal", + "src": "49627:44:1" + } + ], + "id": 2677, + "name": "FunctionCall", + "src": "49598:74:1" + } + ], + "id": 2678, + "name": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "attributes": { + "functionReturnParameters": 2668 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 1900, + "type": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2679, + "name": "Identifier", + "src": "49689:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2680, + "name": "Identifier", + "src": "49703:5:1" + } + ], + "id": 2681, + "name": "IndexAccess", + "src": "49689:20:1" + } + ], + "id": 2682, + "name": "MemberAccess", + "src": "49689:27:1" + } + ], + "id": 2683, + "name": "FunctionCall", + "src": "49689:29:1" + } + ], + "id": 2684, + "name": "Return", + "src": "49682:36:1" + } + ], + "id": 2685, + "name": "Block", + "src": "49588:137:1" + } + ], + "id": 2686, + "name": "FunctionDefinition", + "src": "49507:218:1" + }, + { + "attributes": { + "baseFunctions": [ + 588 + ], + "functionSelector": "6352211e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-ownerOf}." + }, + "id": 2687, + "name": "StructuredDocumentation", + "src": "49731:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2691, + "name": "OverrideSpecifier", + "src": "49836:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2688, + "name": "ElementaryTypeName", + "src": "49799:7:1" + } + ], + "id": 2689, + "name": "VariableDeclaration", + "src": "49799:15:1" + } + ], + "id": 2690, + "name": "ParameterList", + "src": "49798:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2692, + "name": "ElementaryTypeName", + "src": "49854:7:1" + } + ], + "id": 2693, + "name": "VariableDeclaration", + "src": "49854:7:1" + } + ], + "id": 2694, + "name": "ParameterList", + "src": "49853:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "get", + "referencedDeclaration": 2479, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2695, + "name": "Identifier", + "src": "49880:12:1" + } + ], + "id": 2696, + "name": "MemberAccess", + "src": "49880:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2689, + "type": "uint256", + "value": "tokenId" + }, + "id": 2697, + "name": "Identifier", + "src": "49897:7:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: owner query for nonexistent token\"", + "value": "ERC721: owner query for nonexistent token" + }, + "id": 2698, + "name": "Literal", + "src": "49906:43:1" + } + ], + "id": 2699, + "name": "FunctionCall", + "src": "49880:70:1" + } + ], + "id": 2700, + "name": "Return", + "src": "49873:77:1" + } + ], + "id": 2701, + "name": "Block", + "src": "49863:94:1" + } + ], + "id": 2702, + "name": "FunctionDefinition", + "src": "49782:175:1" + }, + { + "attributes": { + "baseFunctions": [ + 665 + ], + "functionSelector": "06fdde03", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-name}." + }, + "id": 2703, + "name": "StructuredDocumentation", + "src": "49963:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2705, + "name": "OverrideSpecifier", + "src": "50055:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2704, + "name": "ParameterList", + "src": "50032:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2712, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2706, + "name": "ElementaryTypeName", + "src": "50073:6:1" + } + ], + "id": 2707, + "name": "VariableDeclaration", + "src": "50073:13:1" + } + ], + "id": 2708, + "name": "ParameterList", + "src": "50072:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2708 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2709, + "name": "Identifier", + "src": "50105:5:1" + } + ], + "id": 2710, + "name": "Return", + "src": "50098:12:1" + } + ], + "id": 2711, + "name": "Block", + "src": "50088:29:1" + } + ], + "id": 2712, + "name": "FunctionDefinition", + "src": "50019:98:1" + }, + { + "attributes": { + "baseFunctions": [ + 671 + ], + "functionSelector": "95d89b41", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-symbol}." + }, + "id": 2713, + "name": "StructuredDocumentation", + "src": "50123:53:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2715, + "name": "OverrideSpecifier", + "src": "50219:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2714, + "name": "ParameterList", + "src": "50196:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2722, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2716, + "name": "ElementaryTypeName", + "src": "50237:6:1" + } + ], + "id": 2717, + "name": "VariableDeclaration", + "src": "50237:13:1" + } + ], + "id": 2718, + "name": "ParameterList", + "src": "50236:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2718 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2719, + "name": "Identifier", + "src": "50269:7:1" + } + ], + "id": 2720, + "name": "Return", + "src": "50262:14:1" + } + ], + "id": 2721, + "name": "Block", + "src": "50252:31:1" + } + ], + "id": 2722, + "name": "FunctionDefinition", + "src": "50181:102:1" + }, + { + "attributes": { + "baseFunctions": [ + 679 + ], + "functionSelector": "c87b56dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "id": 2723, + "name": "StructuredDocumentation", + "src": "50289:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2727, + "name": "OverrideSpecifier", + "src": "50404:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2790, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2724, + "name": "ElementaryTypeName", + "src": "50367:7:1" + } + ], + "id": 2725, + "name": "VariableDeclaration", + "src": "50367:15:1" + } + ], + "id": 2726, + "name": "ParameterList", + "src": "50366:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2790, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2728, + "name": "ElementaryTypeName", + "src": "50422:6:1" + } + ], + "id": 2729, + "name": "VariableDeclaration", + "src": "50422:13:1" + } + ], + "id": 2730, + "name": "ParameterList", + "src": "50421:15:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2731, + "name": "Identifier", + "src": "50447:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2732, + "name": "Identifier", + "src": "50455:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2733, + "name": "Identifier", + "src": "50463:7:1" + } + ], + "id": 2734, + "name": "FunctionCall", + "src": "50455:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI query for nonexistent token\"", + "value": "ERC721Metadata: URI query for nonexistent token" + }, + "id": 2735, + "name": "Literal", + "src": "50473:49:1" + } + ], + "id": 2736, + "name": "FunctionCall", + "src": "50447:76:1" + } + ], + "id": 2737, + "name": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "attributes": { + "assignments": [ + 2739 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2738, + "name": "ElementaryTypeName", + "src": "50534:6:1" + } + ], + "id": 2739, + "name": "VariableDeclaration", + "src": "50534:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 2740, + "name": "Identifier", + "src": "50560:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2741, + "name": "Identifier", + "src": "50571:7:1" + } + ], + "id": 2742, + "name": "IndexAccess", + "src": "50560:19:1" + } + ], + "id": 2743, + "name": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "attributes": { + "assignments": [ + 2745 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "base", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2744, + "name": "ElementaryTypeName", + "src": "50589:6:1" + } + ], + "id": 2745, + "name": "VariableDeclaration", + "src": "50589:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2799, + "type": "function () view returns (string memory)", + "value": "baseURI" + }, + "id": 2746, + "name": "Identifier", + "src": "50610:7:1" + } + ], + "id": 2747, + "name": "FunctionCall", + "src": "50610:9:1" + } + ], + "id": 2748, + "name": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2749, + "name": "ElementaryTypeName", + "src": "50692:5:1" + } + ], + "id": 2750, + "name": "ElementaryTypeNameExpression", + "src": "50692:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2751, + "name": "Identifier", + "src": "50698:4:1" + } + ], + "id": 2752, + "name": "FunctionCall", + "src": "50692:11:1" + } + ], + "id": 2753, + "name": "MemberAccess", + "src": "50692:18:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2754, + "name": "Literal", + "src": "50714:1:1" + } + ], + "id": 2755, + "name": "BinaryOperation", + "src": "50692:23:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2756, + "name": "Identifier", + "src": "50738:9:1" + } + ], + "id": 2757, + "name": "Return", + "src": "50731:16:1" + } + ], + "id": 2758, + "name": "Block", + "src": "50717:41:1" + } + ], + "id": 2759, + "name": "IfStatement", + "src": "50688:70:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2760, + "name": "ElementaryTypeName", + "src": "50860:5:1" + } + ], + "id": 2761, + "name": "ElementaryTypeNameExpression", + "src": "50860:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2762, + "name": "Identifier", + "src": "50866:9:1" + } + ], + "id": 2763, + "name": "FunctionCall", + "src": "50860:16:1" + } + ], + "id": 2764, + "name": "MemberAccess", + "src": "50860:23:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2765, + "name": "Literal", + "src": "50886:1:1" + } + ], + "id": 2766, + "name": "BinaryOperation", + "src": "50860:27:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2767, + "name": "ElementaryTypeName", + "src": "50910:6:1" + } + ], + "id": 2768, + "name": "ElementaryTypeNameExpression", + "src": "50910:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2769, + "name": "Identifier", + "src": "50917:3:1" + } + ], + "id": 2770, + "name": "MemberAccess", + "src": "50917:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2771, + "name": "Identifier", + "src": "50934:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2772, + "name": "Identifier", + "src": "50940:9:1" + } + ], + "id": 2773, + "name": "FunctionCall", + "src": "50917:33:1" + } + ], + "id": 2774, + "name": "FunctionCall", + "src": "50910:41:1" + } + ], + "id": 2775, + "name": "Return", + "src": "50903:48:1" + } + ], + "id": 2776, + "name": "Block", + "src": "50889:73:1" + } + ], + "id": 2777, + "name": "IfStatement", + "src": "50856:106:1" + }, + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2778, + "name": "ElementaryTypeName", + "src": "51068:6:1" + } + ], + "id": 2779, + "name": "ElementaryTypeNameExpression", + "src": "51068:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2780, + "name": "Identifier", + "src": "51075:3:1" + } + ], + "id": 2781, + "name": "MemberAccess", + "src": "51075:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2782, + "name": "Identifier", + "src": "51092:4:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "toString", + "referencedDeclaration": 2565, + "type": "function (uint256) pure returns (string memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2783, + "name": "Identifier", + "src": "51098:7:1" + } + ], + "id": 2784, + "name": "MemberAccess", + "src": "51098:16:1" + } + ], + "id": 2785, + "name": "FunctionCall", + "src": "51098:18:1" + } + ], + "id": 2786, + "name": "FunctionCall", + "src": "51075:42:1" + } + ], + "id": 2787, + "name": "FunctionCall", + "src": "51068:50:1" + } + ], + "id": 2788, + "name": "Return", + "src": "51061:57:1" + } + ], + "id": 2789, + "name": "Block", + "src": "50437:688:1" + } + ], + "id": 2790, + "name": "FunctionDefinition", + "src": "50349:776:1" + }, + { + "attributes": { + "functionSelector": "6c0360eb", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "baseURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "id": 2791, + "name": "StructuredDocumentation", + "src": "51131:221:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2792, + "name": "ParameterList", + "src": "51373:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2799, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2793, + "name": "ElementaryTypeName", + "src": "51405:6:1" + } + ], + "id": 2794, + "name": "VariableDeclaration", + "src": "51405:13:1" + } + ], + "id": 2795, + "name": "ParameterList", + "src": "51404:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2795 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 2796, + "name": "Identifier", + "src": "51437:8:1" + } + ], + "id": 2797, + "name": "Return", + "src": "51430:15:1" + } + ], + "id": 2798, + "name": "Block", + "src": "51420:32:1" + } + ], + "id": 2799, + "name": "FunctionDefinition", + "src": "51357:95:1" + }, + { + "attributes": { + "baseFunctions": [ + 700 + ], + "functionSelector": "2f745c59", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "id": 2800, + "name": "StructuredDocumentation", + "src": "51458:68:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2806, + "name": "OverrideSpecifier", + "src": "51610:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2801, + "name": "ElementaryTypeName", + "src": "51560:7:1" + } + ], + "id": 2802, + "name": "VariableDeclaration", + "src": "51560:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2803, + "name": "ElementaryTypeName", + "src": "51575:7:1" + } + ], + "id": 2804, + "name": "VariableDeclaration", + "src": "51575:13:1" + } + ], + "id": 2805, + "name": "ParameterList", + "src": "51559:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2807, + "name": "ElementaryTypeName", + "src": "51628:7:1" + } + ], + "id": 2808, + "name": "VariableDeclaration", + "src": "51628:7:1" + } + ], + "id": 2809, + "name": "ParameterList", + "src": "51627:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2809 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 1920, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2810, + "name": "Identifier", + "src": "51654:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2802, + "type": "address", + "value": "owner" + }, + "id": 2811, + "name": "Identifier", + "src": "51668:5:1" + } + ], + "id": 2812, + "name": "IndexAccess", + "src": "51654:20:1" + } + ], + "id": 2813, + "name": "MemberAccess", + "src": "51654:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2804, + "type": "uint256", + "value": "index" + }, + "id": 2814, + "name": "Identifier", + "src": "51678:5:1" + } + ], + "id": 2815, + "name": "FunctionCall", + "src": "51654:30:1" + } + ], + "id": 2816, + "name": "Return", + "src": "51647:37:1" + } + ], + "id": 2817, + "name": "Block", + "src": "51637:54:1" + } + ], + "id": 2818, + "name": "FunctionDefinition", + "src": "51531:160:1" + }, + { + "attributes": { + "baseFunctions": [ + 690 + ], + "functionSelector": "18160ddd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "id": 2819, + "name": "StructuredDocumentation", + "src": "51697:60:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2821, + "name": "OverrideSpecifier", + "src": "51805:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2820, + "name": "ParameterList", + "src": "51782:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2830, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2822, + "name": "ElementaryTypeName", + "src": "51823:7:1" + } + ], + "id": 2823, + "name": "VariableDeclaration", + "src": "51823:7:1" + } + ], + "id": 2824, + "name": "ParameterList", + "src": "51822:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2824 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 2340, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2825, + "name": "Identifier", + "src": "51942:12:1" + } + ], + "id": 2826, + "name": "MemberAccess", + "src": "51942:19:1" + } + ], + "id": 2827, + "name": "FunctionCall", + "src": "51942:21:1" + } + ], + "id": 2828, + "name": "Return", + "src": "51935:28:1" + } + ], + "id": 2829, + "name": "Block", + "src": "51832:138:1" + } + ], + "id": 2830, + "name": "FunctionDefinition", + "src": "51762:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 708 + ], + "functionSelector": "4f6ccce7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "id": 2831, + "name": "StructuredDocumentation", + "src": "51976:61:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2835, + "name": "OverrideSpecifier", + "src": "52099:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2832, + "name": "ElementaryTypeName", + "src": "52064:7:1" + } + ], + "id": 2833, + "name": "VariableDeclaration", + "src": "52064:13:1" + } + ], + "id": 2834, + "name": "ParameterList", + "src": "52063:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2836, + "name": "ElementaryTypeName", + "src": "52117:7:1" + } + ], + "id": 2837, + "name": "VariableDeclaration", + "src": "52117:7:1" + } + ], + "id": 2838, + "name": "ParameterList", + "src": "52116:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2840, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2848, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2839, + "name": "ElementaryTypeName", + "src": "52137:7:1" + } + ], + "id": 2840, + "name": "VariableDeclaration", + "src": "52137:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(uint256,address)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 2379, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2841, + "name": "Identifier", + "src": "52158:12:1" + } + ], + "id": 2842, + "name": "MemberAccess", + "src": "52158:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2833, + "type": "uint256", + "value": "index" + }, + "id": 2843, + "name": "Identifier", + "src": "52174:5:1" + } + ], + "id": 2844, + "name": "FunctionCall", + "src": "52158:22:1" + } + ], + "id": 2845, + "name": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2838 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2840, + "type": "uint256", + "value": "tokenId" + }, + "id": 2846, + "name": "Identifier", + "src": "52197:7:1" + } + ], + "id": 2847, + "name": "Return", + "src": "52190:14:1" + } + ], + "id": 2848, + "name": "Block", + "src": "52126:85:1" + } + ], + "id": 2849, + "name": "FunctionDefinition", + "src": "52042:169:1" + }, + { + "attributes": { + "baseFunctions": [ + 616 + ], + "functionSelector": "095ea7b3", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-approve}." + }, + "id": 2850, + "name": "StructuredDocumentation", + "src": "52217:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2856, + "name": "OverrideSpecifier", + "src": "52329:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2851, + "name": "ElementaryTypeName", + "src": "52285:7:1" + } + ], + "id": 2852, + "name": "VariableDeclaration", + "src": "52285:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2853, + "name": "ElementaryTypeName", + "src": "52297:7:1" + } + ], + "id": 2854, + "name": "VariableDeclaration", + "src": "52297:15:1" + } + ], + "id": 2855, + "name": "ParameterList", + "src": "52284:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2857, + "name": "ParameterList", + "src": "52338:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2859 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2892, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2858, + "name": "ElementaryTypeName", + "src": "52348:7:1" + } + ], + "id": 2859, + "name": "VariableDeclaration", + "src": "52348:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2860, + "name": "Identifier", + "src": "52364:6:1" + } + ], + "id": 2861, + "name": "MemberAccess", + "src": "52364:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2862, + "name": "Identifier", + "src": "52379:7:1" + } + ], + "id": 2863, + "name": "FunctionCall", + "src": "52364:23:1" + } + ], + "id": 2864, + "name": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2865, + "name": "Identifier", + "src": "52397:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2866, + "name": "Identifier", + "src": "52405:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2867, + "name": "Identifier", + "src": "52411:5:1" + } + ], + "id": 2868, + "name": "BinaryOperation", + "src": "52405:11:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approval to current owner\"", + "value": "ERC721: approval to current owner" + }, + "id": 2869, + "name": "Literal", + "src": "52418:35:1" + } + ], + "id": 2870, + "name": "FunctionCall", + "src": "52397:57:1" + } + ], + "id": 2871, + "name": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2872, + "name": "Identifier", + "src": "52465:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2873, + "name": "Identifier", + "src": "52473:10:1" + } + ], + "id": 2874, + "name": "FunctionCall", + "src": "52473:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2875, + "name": "Identifier", + "src": "52489:5:1" + } + ], + "id": 2876, + "name": "BinaryOperation", + "src": "52473:21:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2877, + "name": "Identifier", + "src": "52498:6:1" + } + ], + "id": 2878, + "name": "MemberAccess", + "src": "52498:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2879, + "name": "Identifier", + "src": "52522:5:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2880, + "name": "Identifier", + "src": "52529:10:1" + } + ], + "id": 2881, + "name": "FunctionCall", + "src": "52529:12:1" + } + ], + "id": 2882, + "name": "FunctionCall", + "src": "52498:44:1" + } + ], + "id": 2883, + "name": "BinaryOperation", + "src": "52473:69:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve caller is not owner nor approved for all\"", + "value": "ERC721: approve caller is not owner nor approved for all" + }, + "id": 2884, + "name": "Literal", + "src": "52556:58:1" + } + ], + "id": 2885, + "name": "FunctionCall", + "src": "52465:159:1" + } + ], + "id": 2886, + "name": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 2887, + "name": "Identifier", + "src": "52635:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2888, + "name": "Identifier", + "src": "52644:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2889, + "name": "Identifier", + "src": "52648:7:1" + } + ], + "id": 2890, + "name": "FunctionCall", + "src": "52635:21:1" + } + ], + "id": 2891, + "name": "ExpressionStatement", + "src": "52635:21:1" + } + ], + "id": 2892, + "name": "Block", + "src": "52338:325:1" + } + ], + "id": 2893, + "name": "FunctionDefinition", + "src": "52268:395:1" + }, + { + "attributes": { + "baseFunctions": [ + 624 + ], + "functionSelector": "081812fc", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-getApproved}." + }, + "id": 2894, + "name": "StructuredDocumentation", + "src": "52669:50:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2898, + "name": "OverrideSpecifier", + "src": "52782:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2895, + "name": "ElementaryTypeName", + "src": "52745:7:1" + } + ], + "id": 2896, + "name": "VariableDeclaration", + "src": "52745:15:1" + } + ], + "id": 2897, + "name": "ParameterList", + "src": "52744:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2899, + "name": "ElementaryTypeName", + "src": "52800:7:1" + } + ], + "id": 2900, + "name": "VariableDeclaration", + "src": "52800:7:1" + } + ], + "id": 2901, + "name": "ParameterList", + "src": "52799:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2902, + "name": "Identifier", + "src": "52819:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2903, + "name": "Identifier", + "src": "52827:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2904, + "name": "Identifier", + "src": "52835:7:1" + } + ], + "id": 2905, + "name": "FunctionCall", + "src": "52827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approved query for nonexistent token\"", + "value": "ERC721: approved query for nonexistent token" + }, + "id": 2906, + "name": "Literal", + "src": "52845:46:1" + } + ], + "id": 2907, + "name": "FunctionCall", + "src": "52819:73:1" + } + ], + "id": 2908, + "name": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "attributes": { + "functionReturnParameters": 2901 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 2909, + "name": "Identifier", + "src": "52910:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2910, + "name": "Identifier", + "src": "52926:7:1" + } + ], + "id": 2911, + "name": "IndexAccess", + "src": "52910:24:1" + } + ], + "id": 2912, + "name": "Return", + "src": "52903:31:1" + } + ], + "id": 2913, + "name": "Block", + "src": "52809:132:1" + } + ], + "id": 2914, + "name": "FunctionDefinition", + "src": "52724:217:1" + }, + { + "attributes": { + "baseFunctions": [ + 632 + ], + "functionSelector": "a22cb465", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "id": 2915, + "name": "StructuredDocumentation", + "src": "52947:56:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2921, + "name": "OverrideSpecifier", + "src": "53083:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2916, + "name": "ElementaryTypeName", + "src": "53035:7:1" + } + ], + "id": 2917, + "name": "VariableDeclaration", + "src": "53035:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "approved", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2918, + "name": "ElementaryTypeName", + "src": "53053:4:1" + } + ], + "id": 2919, + "name": "VariableDeclaration", + "src": "53053:13:1" + } + ], + "id": 2920, + "name": "ParameterList", + "src": "53034:33:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2922, + "name": "ParameterList", + "src": "53092:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2923, + "name": "Identifier", + "src": "53102:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2924, + "name": "Identifier", + "src": "53110:8:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2925, + "name": "Identifier", + "src": "53122:10:1" + } + ], + "id": 2926, + "name": "FunctionCall", + "src": "53122:12:1" + } + ], + "id": 2927, + "name": "BinaryOperation", + "src": "53110:24:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f766520746f2063616c6c6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve to caller\"", + "value": "ERC721: approve to caller" + }, + "id": 2928, + "name": "Literal", + "src": "53136:27:1" + } + ], + "id": 2929, + "name": "FunctionCall", + "src": "53102:62:1" + } + ], + "id": 2930, + "name": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2931, + "name": "Identifier", + "src": "53175:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2932, + "name": "Identifier", + "src": "53194:10:1" + } + ], + "id": 2933, + "name": "FunctionCall", + "src": "53194:12:1" + } + ], + "id": 2935, + "name": "IndexAccess", + "src": "53175:32:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2934, + "name": "Identifier", + "src": "53208:8:1" + } + ], + "id": 2936, + "name": "IndexAccess", + "src": "53175:42:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2937, + "name": "Identifier", + "src": "53220:8:1" + } + ], + "id": 2938, + "name": "Assignment", + "src": "53175:53:1" + } + ], + "id": 2939, + "name": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 572, + "type": "function (address,address,bool)", + "value": "ApprovalForAll" + }, + "id": 2940, + "name": "Identifier", + "src": "53243:14:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2941, + "name": "Identifier", + "src": "53258:10:1" + } + ], + "id": 2942, + "name": "FunctionCall", + "src": "53258:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2943, + "name": "Identifier", + "src": "53272:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2944, + "name": "Identifier", + "src": "53282:8:1" + } + ], + "id": 2945, + "name": "FunctionCall", + "src": "53243:48:1" + } + ], + "id": 2946, + "name": "EmitStatement", + "src": "53238:53:1" + } + ], + "id": 2947, + "name": "Block", + "src": "53092:206:1" + } + ], + "id": 2948, + "name": "FunctionDefinition", + "src": "53008:290:1" + }, + { + "attributes": { + "baseFunctions": [ + 642 + ], + "functionSelector": "e985e9c5", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "id": 2949, + "name": "StructuredDocumentation", + "src": "53304:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2955, + "name": "OverrideSpecifier", + "src": "53443:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2950, + "name": "ElementaryTypeName", + "src": "53390:7:1" + } + ], + "id": 2951, + "name": "VariableDeclaration", + "src": "53390:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2952, + "name": "ElementaryTypeName", + "src": "53405:7:1" + } + ], + "id": 2953, + "name": "VariableDeclaration", + "src": "53405:16:1" + } + ], + "id": 2954, + "name": "ParameterList", + "src": "53389:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2956, + "name": "ElementaryTypeName", + "src": "53461:4:1" + } + ], + "id": 2957, + "name": "VariableDeclaration", + "src": "53461:4:1" + } + ], + "id": 2958, + "name": "ParameterList", + "src": "53460:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2958 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2959, + "name": "Identifier", + "src": "53484:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2951, + "type": "address", + "value": "owner" + }, + "id": 2960, + "name": "Identifier", + "src": "53503:5:1" + } + ], + "id": 2961, + "name": "IndexAccess", + "src": "53484:25:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2953, + "type": "address", + "value": "operator" + }, + "id": 2962, + "name": "Identifier", + "src": "53510:8:1" + } + ], + "id": 2963, + "name": "IndexAccess", + "src": "53484:35:1" + } + ], + "id": 2964, + "name": "Return", + "src": "53477:42:1" + } + ], + "id": 2965, + "name": "Block", + "src": "53467:59:1" + } + ], + "id": 2966, + "name": "FunctionDefinition", + "src": "53364:162:1" + }, + { + "attributes": { + "baseFunctions": [ + 608 + ], + "functionSelector": "23b872dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-transferFrom}." + }, + "id": 2967, + "name": "StructuredDocumentation", + "src": "53532:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2975, + "name": "OverrideSpecifier", + "src": "53668:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2968, + "name": "ElementaryTypeName", + "src": "53610:7:1" + } + ], + "id": 2969, + "name": "VariableDeclaration", + "src": "53610:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2970, + "name": "ElementaryTypeName", + "src": "53624:7:1" + } + ], + "id": 2971, + "name": "VariableDeclaration", + "src": "53624:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2972, + "name": "ElementaryTypeName", + "src": "53636:7:1" + } + ], + "id": 2973, + "name": "VariableDeclaration", + "src": "53636:15:1" + } + ], + "id": 2974, + "name": "ParameterList", + "src": "53609:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2976, + "name": "ParameterList", + "src": "53677:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2977, + "name": "Identifier", + "src": "53739:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 2978, + "name": "Identifier", + "src": "53747:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2979, + "name": "Identifier", + "src": "53766:10:1" + } + ], + "id": 2980, + "name": "FunctionCall", + "src": "53766:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2981, + "name": "Identifier", + "src": "53780:7:1" + } + ], + "id": 2982, + "name": "FunctionCall", + "src": "53747:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 2983, + "name": "Literal", + "src": "53790:51:1" + } + ], + "id": 2984, + "name": "FunctionCall", + "src": "53739:103:1" + } + ], + "id": 2985, + "name": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 2986, + "name": "Identifier", + "src": "53853:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2969, + "type": "address", + "value": "from" + }, + "id": 2987, + "name": "Identifier", + "src": "53863:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2971, + "type": "address", + "value": "to" + }, + "id": 2988, + "name": "Identifier", + "src": "53869:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2989, + "name": "Identifier", + "src": "53873:7:1" + } + ], + "id": 2990, + "name": "FunctionCall", + "src": "53853:28:1" + } + ], + "id": 2991, + "name": "ExpressionStatement", + "src": "53853:28:1" + } + ], + "id": 2992, + "name": "Block", + "src": "53677:211:1" + } + ], + "id": 2993, + "name": "FunctionDefinition", + "src": "53588:300:1" + }, + { + "attributes": { + "baseFunctions": [ + 598 + ], + "functionSelector": "42842e0e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 2994, + "name": "StructuredDocumentation", + "src": "53894:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3002, + "name": "OverrideSpecifier", + "src": "54038:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2995, + "name": "ElementaryTypeName", + "src": "53980:7:1" + } + ], + "id": 2996, + "name": "VariableDeclaration", + "src": "53980:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2997, + "name": "ElementaryTypeName", + "src": "53994:7:1" + } + ], + "id": 2998, + "name": "VariableDeclaration", + "src": "53994:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2999, + "name": "ElementaryTypeName", + "src": "54006:7:1" + } + ], + "id": 3000, + "name": "VariableDeclaration", + "src": "54006:15:1" + } + ], + "id": 3001, + "name": "ParameterList", + "src": "53979:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3003, + "name": "ParameterList", + "src": "54047:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "type": "function (address,address,uint256,bytes memory)", + "value": "safeTransferFrom" + }, + "id": 3004, + "name": "Identifier", + "src": "54057:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2996, + "type": "address", + "value": "from" + }, + "id": 3005, + "name": "Identifier", + "src": "54074:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2998, + "type": "address", + "value": "to" + }, + "id": 3006, + "name": "Identifier", + "src": "54080:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3000, + "type": "uint256", + "value": "tokenId" + }, + "id": 3007, + "name": "Identifier", + "src": "54084:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3008, + "name": "Literal", + "src": "54093:2:1" + } + ], + "id": 3009, + "name": "FunctionCall", + "src": "54057:39:1" + } + ], + "id": 3010, + "name": "ExpressionStatement", + "src": "54057:39:1" + } + ], + "id": 3011, + "name": "Block", + "src": "54047:56:1" + } + ], + "id": 3012, + "name": "FunctionDefinition", + "src": "53954:149:1" + }, + { + "attributes": { + "baseFunctions": [ + 654 + ], + "functionSelector": "b88d4fde", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 3013, + "name": "StructuredDocumentation", + "src": "54109:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3023, + "name": "OverrideSpecifier", + "src": "54273:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3014, + "name": "ElementaryTypeName", + "src": "54195:7:1" + } + ], + "id": 3015, + "name": "VariableDeclaration", + "src": "54195:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3016, + "name": "ElementaryTypeName", + "src": "54209:7:1" + } + ], + "id": 3017, + "name": "VariableDeclaration", + "src": "54209:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3018, + "name": "ElementaryTypeName", + "src": "54221:7:1" + } + ], + "id": 3019, + "name": "VariableDeclaration", + "src": "54221:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3042, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3020, + "name": "ElementaryTypeName", + "src": "54238:5:1" + } + ], + "id": 3021, + "name": "VariableDeclaration", + "src": "54238:18:1" + } + ], + "id": 3022, + "name": "ParameterList", + "src": "54194:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3024, + "name": "ParameterList", + "src": "54282:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3025, + "name": "Identifier", + "src": "54292:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 3026, + "name": "Identifier", + "src": "54300:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3027, + "name": "Identifier", + "src": "54319:10:1" + } + ], + "id": 3028, + "name": "FunctionCall", + "src": "54319:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3029, + "name": "Identifier", + "src": "54333:7:1" + } + ], + "id": 3030, + "name": "FunctionCall", + "src": "54300:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 3031, + "name": "Literal", + "src": "54343:51:1" + } + ], + "id": 3032, + "name": "FunctionCall", + "src": "54292:103:1" + } + ], + "id": 3033, + "name": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3071, + "type": "function (address,address,uint256,bytes memory)", + "value": "_safeTransfer" + }, + "id": 3034, + "name": "Identifier", + "src": "54405:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3015, + "type": "address", + "value": "from" + }, + "id": 3035, + "name": "Identifier", + "src": "54419:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3017, + "type": "address", + "value": "to" + }, + "id": 3036, + "name": "Identifier", + "src": "54425:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3037, + "name": "Identifier", + "src": "54429:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3021, + "type": "bytes memory", + "value": "_data" + }, + "id": 3038, + "name": "Identifier", + "src": "54438:5:1" + } + ], + "id": 3039, + "name": "FunctionCall", + "src": "54405:39:1" + } + ], + "id": 3040, + "name": "ExpressionStatement", + "src": "54405:39:1" + } + ], + "id": 3041, + "name": "Block", + "src": "54282:169:1" + } + ], + "id": 3042, + "name": "FunctionDefinition", + "src": "54169:282:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3043, + "name": "StructuredDocumentation", + "src": "54457:851:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3044, + "name": "ElementaryTypeName", + "src": "55336:7:1" + } + ], + "id": 3045, + "name": "VariableDeclaration", + "src": "55336:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3046, + "name": "ElementaryTypeName", + "src": "55350:7:1" + } + ], + "id": 3047, + "name": "VariableDeclaration", + "src": "55350:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3048, + "name": "ElementaryTypeName", + "src": "55362:7:1" + } + ], + "id": 3049, + "name": "VariableDeclaration", + "src": "55362:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3071, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3050, + "name": "ElementaryTypeName", + "src": "55379:5:1" + } + ], + "id": 3051, + "name": "VariableDeclaration", + "src": "55379:18:1" + } + ], + "id": 3052, + "name": "ParameterList", + "src": "55335:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3053, + "name": "ParameterList", + "src": "55416:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 3054, + "name": "Identifier", + "src": "55426:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3055, + "name": "Identifier", + "src": "55436:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3056, + "name": "Identifier", + "src": "55442:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3057, + "name": "Identifier", + "src": "55446:7:1" + } + ], + "id": 3058, + "name": "FunctionCall", + "src": "55426:28:1" + } + ], + "id": 3059, + "name": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3060, + "name": "Identifier", + "src": "55464:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3061, + "name": "Identifier", + "src": "55472:22:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3062, + "name": "Identifier", + "src": "55495:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3063, + "name": "Identifier", + "src": "55501:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3064, + "name": "Identifier", + "src": "55505:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3051, + "type": "bytes memory", + "value": "_data" + }, + "id": 3065, + "name": "Identifier", + "src": "55514:5:1" + } + ], + "id": 3066, + "name": "FunctionCall", + "src": "55472:48:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3067, + "name": "Literal", + "src": "55522:52:1" + } + ], + "id": 3068, + "name": "FunctionCall", + "src": "55464:111:1" + } + ], + "id": 3069, + "name": "ExpressionStatement", + "src": "55464:111:1" + } + ], + "id": 3070, + "name": "Block", + "src": "55416:166:1" + } + ], + "id": 3071, + "name": "FunctionDefinition", + "src": "55313:269:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_exists", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3072, + "name": "StructuredDocumentation", + "src": "55588:292:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3073, + "name": "ElementaryTypeName", + "src": "55902:7:1" + } + ], + "id": 3074, + "name": "VariableDeclaration", + "src": "55902:15:1" + } + ], + "id": 3075, + "name": "ParameterList", + "src": "55901:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3076, + "name": "ElementaryTypeName", + "src": "55950:4:1" + } + ], + "id": 3077, + "name": "VariableDeclaration", + "src": "55950:4:1" + } + ], + "id": 3078, + "name": "ParameterList", + "src": "55949:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3078 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "contains", + "referencedDeclaration": 2326, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3079, + "name": "Identifier", + "src": "55973:12:1" + } + ], + "id": 3080, + "name": "MemberAccess", + "src": "55973:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3074, + "type": "uint256", + "value": "tokenId" + }, + "id": 3081, + "name": "Identifier", + "src": "55995:7:1" + } + ], + "id": 3082, + "name": "FunctionCall", + "src": "55973:30:1" + } + ], + "id": 3083, + "name": "Return", + "src": "55966:37:1" + } + ], + "id": 3084, + "name": "Block", + "src": "55956:54:1" + } + ], + "id": 3085, + "name": "FunctionDefinition", + "src": "55885:125:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_isApprovedOrOwner", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3086, + "name": "StructuredDocumentation", + "src": "56016:147:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "spender", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3087, + "name": "ElementaryTypeName", + "src": "56196:7:1" + } + ], + "id": 3088, + "name": "VariableDeclaration", + "src": "56196:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3089, + "name": "ElementaryTypeName", + "src": "56213:7:1" + } + ], + "id": 3090, + "name": "VariableDeclaration", + "src": "56213:15:1" + } + ], + "id": 3091, + "name": "ParameterList", + "src": "56195:34:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3092, + "name": "ElementaryTypeName", + "src": "56261:4:1" + } + ], + "id": 3093, + "name": "VariableDeclaration", + "src": "56261:4:1" + } + ], + "id": 3094, + "name": "ParameterList", + "src": "56260:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3095, + "name": "Identifier", + "src": "56277:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3096, + "name": "Identifier", + "src": "56285:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3097, + "name": "Identifier", + "src": "56293:7:1" + } + ], + "id": 3098, + "name": "FunctionCall", + "src": "56285:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: operator query for nonexistent token\"", + "value": "ERC721: operator query for nonexistent token" + }, + "id": 3099, + "name": "Literal", + "src": "56303:46:1" + } + ], + "id": 3100, + "name": "FunctionCall", + "src": "56277:73:1" + } + ], + "id": 3101, + "name": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "attributes": { + "assignments": [ + 3103 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3126, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3102, + "name": "ElementaryTypeName", + "src": "56360:7:1" + } + ], + "id": 3103, + "name": "VariableDeclaration", + "src": "56360:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3104, + "name": "Identifier", + "src": "56376:6:1" + } + ], + "id": 3105, + "name": "MemberAccess", + "src": "56376:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3106, + "name": "Identifier", + "src": "56391:7:1" + } + ], + "id": 3107, + "name": "FunctionCall", + "src": "56376:23:1" + } + ], + "id": 3108, + "name": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "attributes": { + "functionReturnParameters": 3094 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3109, + "name": "Identifier", + "src": "56417:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3110, + "name": "Identifier", + "src": "56428:5:1" + } + ], + "id": 3111, + "name": "BinaryOperation", + "src": "56417:16:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2914, + "type": "function (uint256) view returns (address)", + "value": "getApproved" + }, + "id": 3112, + "name": "Identifier", + "src": "56437:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3113, + "name": "Identifier", + "src": "56449:7:1" + } + ], + "id": 3114, + "name": "FunctionCall", + "src": "56437:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3115, + "name": "Identifier", + "src": "56461:7:1" + } + ], + "id": 3116, + "name": "BinaryOperation", + "src": "56437:31:1" + } + ], + "id": 3117, + "name": "BinaryOperation", + "src": "56417:51:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3118, + "name": "Identifier", + "src": "56472:6:1" + } + ], + "id": 3119, + "name": "MemberAccess", + "src": "56472:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3120, + "name": "Identifier", + "src": "56496:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3121, + "name": "Identifier", + "src": "56503:7:1" + } + ], + "id": 3122, + "name": "FunctionCall", + "src": "56472:39:1" + } + ], + "id": 3123, + "name": "BinaryOperation", + "src": "56417:94:1" + } + ], + "id": 3124, + "name": "TupleExpression", + "src": "56416:96:1" + } + ], + "id": 3125, + "name": "Return", + "src": "56409:103:1" + } + ], + "id": 3126, + "name": "Block", + "src": "56267:252:1" + } + ], + "id": 3127, + "name": "FunctionDefinition", + "src": "56168:351:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3128, + "name": "StructuredDocumentation", + "src": "56525:320:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3129, + "name": "ElementaryTypeName", + "src": "56869:7:1" + } + ], + "id": 3130, + "name": "VariableDeclaration", + "src": "56869:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3131, + "name": "ElementaryTypeName", + "src": "56881:7:1" + } + ], + "id": 3132, + "name": "VariableDeclaration", + "src": "56881:15:1" + } + ], + "id": 3133, + "name": "ParameterList", + "src": "56868:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3134, + "name": "ParameterList", + "src": "56915:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "type": "function (address,uint256,bytes memory)", + "value": "_safeMint" + }, + "id": 3135, + "name": "Identifier", + "src": "56925:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3130, + "type": "address", + "value": "to" + }, + "id": 3136, + "name": "Identifier", + "src": "56935:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3132, + "type": "uint256", + "value": "tokenId" + }, + "id": 3137, + "name": "Identifier", + "src": "56939:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3138, + "name": "Literal", + "src": "56948:2:1" + } + ], + "id": 3139, + "name": "FunctionCall", + "src": "56925:26:1" + } + ], + "id": 3140, + "name": "ExpressionStatement", + "src": "56925:26:1" + } + ], + "id": 3141, + "name": "Block", + "src": "56915:43:1" + } + ], + "id": 3142, + "name": "FunctionDefinition", + "src": "56850:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3143, + "name": "StructuredDocumentation", + "src": "56964:210:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3144, + "name": "ElementaryTypeName", + "src": "57198:7:1" + } + ], + "id": 3145, + "name": "VariableDeclaration", + "src": "57198:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3146, + "name": "ElementaryTypeName", + "src": "57210:7:1" + } + ], + "id": 3147, + "name": "VariableDeclaration", + "src": "57210:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3171, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3148, + "name": "ElementaryTypeName", + "src": "57227:5:1" + } + ], + "id": 3149, + "name": "VariableDeclaration", + "src": "57227:18:1" + } + ], + "id": 3150, + "name": "ParameterList", + "src": "57197:49:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3151, + "name": "ParameterList", + "src": "57264:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3230, + "type": "function (address,uint256)", + "value": "_mint" + }, + "id": 3152, + "name": "Identifier", + "src": "57274:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3153, + "name": "Identifier", + "src": "57280:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3154, + "name": "Identifier", + "src": "57284:7:1" + } + ], + "id": 3155, + "name": "FunctionCall", + "src": "57274:18:1" + } + ], + "id": 3156, + "name": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3157, + "name": "Identifier", + "src": "57302:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3158, + "name": "Identifier", + "src": "57310:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3159, + "name": "ElementaryTypeName", + "src": "57333:7:1" + } + ], + "id": 3160, + "name": "ElementaryTypeNameExpression", + "src": "57333:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3161, + "name": "Literal", + "src": "57341:1:1" + } + ], + "id": 3162, + "name": "FunctionCall", + "src": "57333:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3163, + "name": "Identifier", + "src": "57345:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3164, + "name": "Identifier", + "src": "57349:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3149, + "type": "bytes memory", + "value": "_data" + }, + "id": 3165, + "name": "Identifier", + "src": "57358:5:1" + } + ], + "id": 3166, + "name": "FunctionCall", + "src": "57310:54:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3167, + "name": "Literal", + "src": "57366:52:1" + } + ], + "id": 3168, + "name": "FunctionCall", + "src": "57302:117:1" + } + ], + "id": 3169, + "name": "ExpressionStatement", + "src": "57302:117:1" + } + ], + "id": 3170, + "name": "Block", + "src": "57264:162:1" + } + ], + "id": 3171, + "name": "FunctionDefinition", + "src": "57179:247:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_mint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3172, + "name": "StructuredDocumentation", + "src": "57432:311:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3173, + "name": "ElementaryTypeName", + "src": "57763:7:1" + } + ], + "id": 3174, + "name": "VariableDeclaration", + "src": "57763:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3175, + "name": "ElementaryTypeName", + "src": "57775:7:1" + } + ], + "id": 3176, + "name": "VariableDeclaration", + "src": "57775:15:1" + } + ], + "id": 3177, + "name": "ParameterList", + "src": "57762:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3178, + "name": "ParameterList", + "src": "57809:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3179, + "name": "Identifier", + "src": "57819:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3180, + "name": "Identifier", + "src": "57827:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3181, + "name": "ElementaryTypeName", + "src": "57833:7:1" + } + ], + "id": 3182, + "name": "ElementaryTypeNameExpression", + "src": "57833:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3183, + "name": "Literal", + "src": "57841:1:1" + } + ], + "id": 3184, + "name": "FunctionCall", + "src": "57833:10:1" + } + ], + "id": 3185, + "name": "BinaryOperation", + "src": "57827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: mint to the zero address\"", + "value": "ERC721: mint to the zero address" + }, + "id": 3186, + "name": "Literal", + "src": "57845:34:1" + } + ], + "id": 3187, + "name": "FunctionCall", + "src": "57819:61:1" + } + ], + "id": 3188, + "name": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3189, + "name": "Identifier", + "src": "57890:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3190, + "name": "Identifier", + "src": "57899:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3191, + "name": "Identifier", + "src": "57907:7:1" + } + ], + "id": 3192, + "name": "FunctionCall", + "src": "57899:16:1" + } + ], + "id": 3193, + "name": "UnaryOperation", + "src": "57898:17:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: token already minted\"", + "value": "ERC721: token already minted" + }, + "id": 3194, + "name": "Literal", + "src": "57917:30:1" + } + ], + "id": 3195, + "name": "FunctionCall", + "src": "57890:58:1" + } + ], + "id": 3196, + "name": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3197, + "name": "Identifier", + "src": "57959:20:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3198, + "name": "ElementaryTypeName", + "src": "57980:7:1" + } + ], + "id": 3199, + "name": "ElementaryTypeNameExpression", + "src": "57980:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3200, + "name": "Literal", + "src": "57988:1:1" + } + ], + "id": 3201, + "name": "FunctionCall", + "src": "57980:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3202, + "name": "Identifier", + "src": "57992:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3203, + "name": "Identifier", + "src": "57996:7:1" + } + ], + "id": 3204, + "name": "FunctionCall", + "src": "57959:45:1" + } + ], + "id": 3205, + "name": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3206, + "name": "Identifier", + "src": "58015:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3207, + "name": "Identifier", + "src": "58029:2:1" + } + ], + "id": 3208, + "name": "IndexAccess", + "src": "58015:17:1" + } + ], + "id": 3209, + "name": "MemberAccess", + "src": "58015:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3210, + "name": "Identifier", + "src": "58037:7:1" + } + ], + "id": 3211, + "name": "FunctionCall", + "src": "58015:30:1" + } + ], + "id": 3212, + "name": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3213, + "name": "Identifier", + "src": "58056:12:1" + } + ], + "id": 3215, + "name": "MemberAccess", + "src": "58056:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3216, + "name": "Identifier", + "src": "58073:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3217, + "name": "Identifier", + "src": "58082:2:1" + } + ], + "id": 3218, + "name": "FunctionCall", + "src": "58056:29:1" + } + ], + "id": 3219, + "name": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3220, + "name": "Identifier", + "src": "58101:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3221, + "name": "ElementaryTypeName", + "src": "58110:7:1" + } + ], + "id": 3222, + "name": "ElementaryTypeNameExpression", + "src": "58110:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3223, + "name": "Literal", + "src": "58118:1:1" + } + ], + "id": 3224, + "name": "FunctionCall", + "src": "58110:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3225, + "name": "Identifier", + "src": "58122:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3226, + "name": "Identifier", + "src": "58126:7:1" + } + ], + "id": 3227, + "name": "FunctionCall", + "src": "58101:33:1" + } + ], + "id": 3228, + "name": "EmitStatement", + "src": "58096:38:1" + } + ], + "id": 3229, + "name": "Block", + "src": "57809:332:1" + } + ], + "id": 3230, + "name": "FunctionDefinition", + "src": "57748:393:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_burn", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3231, + "name": "StructuredDocumentation", + "src": "58147:206:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3299, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3232, + "name": "ElementaryTypeName", + "src": "58373:7:1" + } + ], + "id": 3233, + "name": "VariableDeclaration", + "src": "58373:15:1" + } + ], + "id": 3234, + "name": "ParameterList", + "src": "58372:17:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3235, + "name": "ParameterList", + "src": "58407:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 3237 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3298, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3236, + "name": "ElementaryTypeName", + "src": "58417:7:1" + } + ], + "id": 3237, + "name": "VariableDeclaration", + "src": "58417:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3238, + "name": "Identifier", + "src": "58433:6:1" + } + ], + "id": 3239, + "name": "MemberAccess", + "src": "58433:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3240, + "name": "Identifier", + "src": "58448:7:1" + } + ], + "id": 3241, + "name": "FunctionCall", + "src": "58433:23:1" + } + ], + "id": 3242, + "name": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3243, + "name": "Identifier", + "src": "58485:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3244, + "name": "Identifier", + "src": "58506:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3245, + "name": "ElementaryTypeName", + "src": "58513:7:1" + } + ], + "id": 3246, + "name": "ElementaryTypeNameExpression", + "src": "58513:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3247, + "name": "Literal", + "src": "58521:1:1" + } + ], + "id": 3248, + "name": "FunctionCall", + "src": "58513:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3249, + "name": "Identifier", + "src": "58525:7:1" + } + ], + "id": 3250, + "name": "FunctionCall", + "src": "58485:48:1" + } + ], + "id": 3251, + "name": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3252, + "name": "Identifier", + "src": "58571:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3253, + "name": "ElementaryTypeName", + "src": "58580:7:1" + } + ], + "id": 3254, + "name": "ElementaryTypeNameExpression", + "src": "58580:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3255, + "name": "Literal", + "src": "58588:1:1" + } + ], + "id": 3256, + "name": "FunctionCall", + "src": "58580:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3257, + "name": "Identifier", + "src": "58592:7:1" + } + ], + "id": 3258, + "name": "FunctionCall", + "src": "58571:29:1" + } + ], + "id": 3259, + "name": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes storage pointer", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 3260, + "name": "ElementaryTypeName", + "src": "58650:5:1" + } + ], + "id": 3261, + "name": "ElementaryTypeNameExpression", + "src": "58650:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3262, + "name": "Identifier", + "src": "58656:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3263, + "name": "Identifier", + "src": "58667:7:1" + } + ], + "id": 3264, + "name": "IndexAccess", + "src": "58656:19:1" + } + ], + "id": 3265, + "name": "FunctionCall", + "src": "58650:26:1" + } + ], + "id": 3266, + "name": "MemberAccess", + "src": "58650:33:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3267, + "name": "Literal", + "src": "58687:1:1" + } + ], + "id": 3268, + "name": "BinaryOperation", + "src": "58650:38:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3269, + "name": "Identifier", + "src": "58711:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3270, + "name": "Identifier", + "src": "58722:7:1" + } + ], + "id": 3271, + "name": "IndexAccess", + "src": "58711:19:1" + } + ], + "id": 3272, + "name": "UnaryOperation", + "src": "58704:26:1" + } + ], + "id": 3273, + "name": "ExpressionStatement", + "src": "58704:26:1" + } + ], + "id": 3274, + "name": "Block", + "src": "58690:51:1" + } + ], + "id": 3275, + "name": "IfStatement", + "src": "58646:95:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3276, + "name": "Identifier", + "src": "58751:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3277, + "name": "Identifier", + "src": "58765:5:1" + } + ], + "id": 3278, + "name": "IndexAccess", + "src": "58751:20:1" + } + ], + "id": 3279, + "name": "MemberAccess", + "src": "58751:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3280, + "name": "Identifier", + "src": "58779:7:1" + } + ], + "id": 3281, + "name": "FunctionCall", + "src": "58751:36:1" + } + ], + "id": 3282, + "name": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 2306, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3283, + "name": "Identifier", + "src": "58798:12:1" + } + ], + "id": 3285, + "name": "MemberAccess", + "src": "58798:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3286, + "name": "Identifier", + "src": "58818:7:1" + } + ], + "id": 3287, + "name": "FunctionCall", + "src": "58798:28:1" + } + ], + "id": 3288, + "name": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3289, + "name": "Identifier", + "src": "58842:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3290, + "name": "Identifier", + "src": "58851:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3291, + "name": "ElementaryTypeName", + "src": "58858:7:1" + } + ], + "id": 3292, + "name": "ElementaryTypeNameExpression", + "src": "58858:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3293, + "name": "Literal", + "src": "58866:1:1" + } + ], + "id": 3294, + "name": "FunctionCall", + "src": "58858:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3295, + "name": "Identifier", + "src": "58870:7:1" + } + ], + "id": 3296, + "name": "FunctionCall", + "src": "58842:36:1" + } + ], + "id": 3297, + "name": "EmitStatement", + "src": "58837:41:1" + } + ], + "id": 3298, + "name": "Block", + "src": "58407:478:1" + } + ], + "id": 3299, + "name": "FunctionDefinition", + "src": "58358:527:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_transfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3300, + "name": "StructuredDocumentation", + "src": "58891:313:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3301, + "name": "ElementaryTypeName", + "src": "59228:7:1" + } + ], + "id": 3302, + "name": "VariableDeclaration", + "src": "59228:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3303, + "name": "ElementaryTypeName", + "src": "59242:7:1" + } + ], + "id": 3304, + "name": "VariableDeclaration", + "src": "59242:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3305, + "name": "ElementaryTypeName", + "src": "59254:7:1" + } + ], + "id": 3306, + "name": "VariableDeclaration", + "src": "59254:15:1" + } + ], + "id": 3307, + "name": "ParameterList", + "src": "59227:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3308, + "name": "ParameterList", + "src": "59288:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3309, + "name": "Identifier", + "src": "59298:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3310, + "name": "Identifier", + "src": "59306:6:1" + } + ], + "id": 3311, + "name": "MemberAccess", + "src": "59306:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3312, + "name": "Identifier", + "src": "59321:7:1" + } + ], + "id": 3313, + "name": "FunctionCall", + "src": "59306:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3314, + "name": "Identifier", + "src": "59333:4:1" + } + ], + "id": 3315, + "name": "BinaryOperation", + "src": "59306:31:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer of token that is not own\"", + "value": "ERC721: transfer of token that is not own" + }, + "id": 3316, + "name": "Literal", + "src": "59339:43:1" + } + ], + "id": 3317, + "name": "FunctionCall", + "src": "59298:85:1" + } + ], + "id": 3318, + "name": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3319, + "name": "Identifier", + "src": "59411:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3320, + "name": "Identifier", + "src": "59419:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3321, + "name": "ElementaryTypeName", + "src": "59425:7:1" + } + ], + "id": 3322, + "name": "ElementaryTypeNameExpression", + "src": "59425:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3323, + "name": "Literal", + "src": "59433:1:1" + } + ], + "id": 3324, + "name": "FunctionCall", + "src": "59425:10:1" + } + ], + "id": 3325, + "name": "BinaryOperation", + "src": "59419:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to the zero address\"", + "value": "ERC721: transfer to the zero address" + }, + "id": 3326, + "name": "Literal", + "src": "59437:38:1" + } + ], + "id": 3327, + "name": "FunctionCall", + "src": "59411:65:1" + } + ], + "id": 3328, + "name": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3329, + "name": "Identifier", + "src": "59487:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3330, + "name": "Identifier", + "src": "59508:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3331, + "name": "Identifier", + "src": "59514:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3332, + "name": "Identifier", + "src": "59518:7:1" + } + ], + "id": 3333, + "name": "FunctionCall", + "src": "59487:39:1" + } + ], + "id": 3334, + "name": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3335, + "name": "Identifier", + "src": "59588:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3336, + "name": "ElementaryTypeName", + "src": "59597:7:1" + } + ], + "id": 3337, + "name": "ElementaryTypeNameExpression", + "src": "59597:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3338, + "name": "Literal", + "src": "59605:1:1" + } + ], + "id": 3339, + "name": "FunctionCall", + "src": "59597:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3340, + "name": "Identifier", + "src": "59609:7:1" + } + ], + "id": 3341, + "name": "FunctionCall", + "src": "59588:29:1" + } + ], + "id": 3342, + "name": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3343, + "name": "Identifier", + "src": "59628:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3344, + "name": "Identifier", + "src": "59642:4:1" + } + ], + "id": 3345, + "name": "IndexAccess", + "src": "59628:19:1" + } + ], + "id": 3346, + "name": "MemberAccess", + "src": "59628:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3347, + "name": "Identifier", + "src": "59655:7:1" + } + ], + "id": 3348, + "name": "FunctionCall", + "src": "59628:35:1" + } + ], + "id": 3349, + "name": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3350, + "name": "Identifier", + "src": "59673:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3351, + "name": "Identifier", + "src": "59687:2:1" + } + ], + "id": 3352, + "name": "IndexAccess", + "src": "59673:17:1" + } + ], + "id": 3353, + "name": "MemberAccess", + "src": "59673:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3354, + "name": "Identifier", + "src": "59695:7:1" + } + ], + "id": 3355, + "name": "FunctionCall", + "src": "59673:30:1" + } + ], + "id": 3356, + "name": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3357, + "name": "Identifier", + "src": "59714:12:1" + } + ], + "id": 3359, + "name": "MemberAccess", + "src": "59714:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3360, + "name": "Identifier", + "src": "59731:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3361, + "name": "Identifier", + "src": "59740:2:1" + } + ], + "id": 3362, + "name": "FunctionCall", + "src": "59714:29:1" + } + ], + "id": 3363, + "name": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3364, + "name": "Identifier", + "src": "59759:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3365, + "name": "Identifier", + "src": "59768:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3366, + "name": "Identifier", + "src": "59774:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3367, + "name": "Identifier", + "src": "59778:7:1" + } + ], + "id": 3368, + "name": "FunctionCall", + "src": "59759:27:1" + } + ], + "id": 3369, + "name": "EmitStatement", + "src": "59754:32:1" + } + ], + "id": 3370, + "name": "Block", + "src": "59288:505:1" + } + ], + "id": 3371, + "name": "FunctionDefinition", + "src": "59209:584:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setTokenURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3372, + "name": "StructuredDocumentation", + "src": "59799:136:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3393, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3373, + "name": "ElementaryTypeName", + "src": "59962:7:1" + } + ], + "id": 3374, + "name": "VariableDeclaration", + "src": "59962:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 3393, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3375, + "name": "ElementaryTypeName", + "src": "59979:6:1" + } + ], + "id": 3376, + "name": "VariableDeclaration", + "src": "59979:23:1" + } + ], + "id": 3377, + "name": "ParameterList", + "src": "59961:42:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3378, + "name": "ParameterList", + "src": "60021:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3379, + "name": "Identifier", + "src": "60031:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3380, + "name": "Identifier", + "src": "60039:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3381, + "name": "Identifier", + "src": "60047:7:1" + } + ], + "id": 3382, + "name": "FunctionCall", + "src": "60039:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI set of nonexistent token\"", + "value": "ERC721Metadata: URI set of nonexistent token" + }, + "id": 3383, + "name": "Literal", + "src": "60057:46:1" + } + ], + "id": 3384, + "name": "FunctionCall", + "src": "60031:73:1" + } + ], + "id": 3385, + "name": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3386, + "name": "Identifier", + "src": "60114:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3387, + "name": "Identifier", + "src": "60125:7:1" + } + ], + "id": 3388, + "name": "IndexAccess", + "src": "60114:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3376, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 3389, + "name": "Identifier", + "src": "60136:9:1" + } + ], + "id": 3390, + "name": "Assignment", + "src": "60114:31:1" + } + ], + "id": 3391, + "name": "ExpressionStatement", + "src": "60114:31:1" + } + ], + "id": 3392, + "name": "Block", + "src": "60021:131:1" + } + ], + "id": 3393, + "name": "FunctionDefinition", + "src": "59940:212:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setBaseURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3394, + "name": "StructuredDocumentation", + "src": "60158:212:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "baseURI_", + "scope": 3404, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3395, + "name": "ElementaryTypeName", + "src": "60396:6:1" + } + ], + "id": 3396, + "name": "VariableDeclaration", + "src": "60396:22:1" + } + ], + "id": 3397, + "name": "ParameterList", + "src": "60395:24:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3398, + "name": "ParameterList", + "src": "60437:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 3399, + "name": "Identifier", + "src": "60447:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3396, + "type": "string memory", + "value": "baseURI_" + }, + "id": 3400, + "name": "Identifier", + "src": "60458:8:1" + } + ], + "id": 3401, + "name": "Assignment", + "src": "60447:19:1" + } + ], + "id": 3402, + "name": "ExpressionStatement", + "src": "60447:19:1" + } + ], + "id": 3403, + "name": "Block", + "src": "60437:36:1" + } + ], + "id": 3404, + "name": "FunctionDefinition", + "src": "60375:98:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_checkOnERC721Received", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3405, + "name": "StructuredDocumentation", + "src": "60479:542:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3406, + "name": "ElementaryTypeName", + "src": "61058:7:1" + } + ], + "id": 3407, + "name": "VariableDeclaration", + "src": "61058:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3408, + "name": "ElementaryTypeName", + "src": "61072:7:1" + } + ], + "id": 3409, + "name": "VariableDeclaration", + "src": "61072:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3410, + "name": "ElementaryTypeName", + "src": "61084:7:1" + } + ], + "id": 3411, + "name": "VariableDeclaration", + "src": "61084:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3462, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3412, + "name": "ElementaryTypeName", + "src": "61101:5:1" + } + ], + "id": 3413, + "name": "VariableDeclaration", + "src": "61101:18:1" + } + ], + "id": 3414, + "name": "ParameterList", + "src": "61057:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3415, + "name": "ElementaryTypeName", + "src": "61146:4:1" + } + ], + "id": 3416, + "name": "VariableDeclaration", + "src": "61146:4:1" + } + ], + "id": 3417, + "name": "ParameterList", + "src": "61145:6:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isContract", + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3418, + "name": "Identifier", + "src": "61171:2:1" + } + ], + "id": 3419, + "name": "MemberAccess", + "src": "61171:13:1" + } + ], + "id": 3420, + "name": "FunctionCall", + "src": "61171:15:1" + } + ], + "id": 3421, + "name": "UnaryOperation", + "src": "61170:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 3422, + "name": "Literal", + "src": "61209:4:1" + } + ], + "id": 3423, + "name": "Return", + "src": "61202:11:1" + } + ], + "id": 3424, + "name": "Block", + "src": "61188:36:1" + } + ], + "id": 3425, + "name": "IfStatement", + "src": "61166:58:1" + }, + { + "attributes": { + "assignments": [ + 3427 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 3461, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3426, + "name": "ElementaryTypeName", + "src": "61233:5:1" + } + ], + "id": 3427, + "name": "VariableDeclaration", + "src": "61233:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "functionCall", + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3428, + "name": "Identifier", + "src": "61259:2:1" + } + ], + "id": 3429, + "name": "MemberAccess", + "src": "61259:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodeWithSelector", + "type": "function (bytes4) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3430, + "name": "Identifier", + "src": "61275:3:1" + } + ], + "id": 3431, + "name": "MemberAccess", + "src": "61275:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "selector", + "type": "bytes4" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "onERC721Received", + "referencedDeclaration": 725, + "type": "function (address,address,uint256,bytes memory) external returns (bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "contract IERC721Receiver", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 726, + "type": "type(contract IERC721Receiver)", + "value": "IERC721Receiver" + }, + "id": 3432, + "name": "Identifier", + "src": "61311:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3433, + "name": "Identifier", + "src": "61327:2:1" + } + ], + "id": 3434, + "name": "FunctionCall", + "src": "61311:19:1" + } + ], + "id": 3435, + "name": "MemberAccess", + "src": "61311:36:1" + } + ], + "id": 3436, + "name": "MemberAccess", + "src": "61311:45:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3437, + "name": "Identifier", + "src": "61370:10:1" + } + ], + "id": 3438, + "name": "FunctionCall", + "src": "61370:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3407, + "type": "address", + "value": "from" + }, + "id": 3439, + "name": "Identifier", + "src": "61396:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3411, + "type": "uint256", + "value": "tokenId" + }, + "id": 3440, + "name": "Identifier", + "src": "61414:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3413, + "type": "bytes memory", + "value": "_data" + }, + "id": 3441, + "name": "Identifier", + "src": "61435:5:1" + } + ], + "id": 3442, + "name": "FunctionCall", + "src": "61275:175:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3443, + "name": "Literal", + "src": "61452:52:1" + } + ], + "id": 3444, + "name": "FunctionCall", + "src": "61259:246:1" + } + ], + "id": 3445, + "name": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "attributes": { + "assignments": [ + 3447 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "retval", + "scope": 3461, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 3446, + "name": "ElementaryTypeName", + "src": "61515:6:1" + } + ], + "id": 3447, + "name": "VariableDeclaration", + "src": "61515:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes4", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "decode", + "type": "function () pure" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3448, + "name": "Identifier", + "src": "61531:3:1" + } + ], + "id": 3449, + "name": "MemberAccess", + "src": "61531:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3427, + "type": "bytes memory", + "value": "returndata" + }, + "id": 3450, + "name": "Identifier", + "src": "61542:10:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "name": "bytes4" + }, + "id": 3451, + "name": "ElementaryTypeName", + "src": "61555:6:1" + } + ], + "id": 3452, + "name": "ElementaryTypeNameExpression", + "src": "61555:6:1" + } + ], + "id": 3453, + "name": "TupleExpression", + "src": "61554:8:1" + } + ], + "id": 3454, + "name": "FunctionCall", + "src": "61531:32:1" + } + ], + "id": 3455, + "name": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3447, + "type": "bytes4", + "value": "retval" + }, + "id": 3456, + "name": "Identifier", + "src": "61581:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2596, + "type": "bytes4", + "value": "_ERC721_RECEIVED" + }, + "id": 3457, + "name": "Identifier", + "src": "61591:16:1" + } + ], + "id": 3458, + "name": "BinaryOperation", + "src": "61581:26:1" + } + ], + "id": 3459, + "name": "TupleExpression", + "src": "61580:28:1" + } + ], + "id": 3460, + "name": "Return", + "src": "61573:35:1" + } + ], + "id": 3461, + "name": "Block", + "src": "61156:459:1" + } + ], + "id": 3462, + "name": "FunctionDefinition", + "src": "61026:589:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3463, + "name": "StructuredDocumentation", + "src": "61621:101:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3464, + "name": "ElementaryTypeName", + "src": "61745:7:1" + } + ], + "id": 3465, + "name": "VariableDeclaration", + "src": "61745:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3466, + "name": "ElementaryTypeName", + "src": "61757:7:1" + } + ], + "id": 3467, + "name": "VariableDeclaration", + "src": "61757:15:1" + } + ], + "id": 3468, + "name": "ParameterList", + "src": "61744:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3469, + "name": "ParameterList", + "src": "61791:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 3470, + "name": "Identifier", + "src": "61801:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3471, + "name": "Identifier", + "src": "61817:7:1" + } + ], + "id": 3472, + "name": "IndexAccess", + "src": "61801:24:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3473, + "name": "Identifier", + "src": "61828:2:1" + } + ], + "id": 3474, + "name": "Assignment", + "src": "61801:29:1" + } + ], + "id": 3475, + "name": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 563, + "type": "function (address,address,uint256)", + "value": "Approval" + }, + "id": 3476, + "name": "Identifier", + "src": "61845:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3477, + "name": "Identifier", + "src": "61854:6:1" + } + ], + "id": 3478, + "name": "MemberAccess", + "src": "61854:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3479, + "name": "Identifier", + "src": "61869:7:1" + } + ], + "id": 3480, + "name": "FunctionCall", + "src": "61854:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3481, + "name": "Identifier", + "src": "61879:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3482, + "name": "Identifier", + "src": "61883:7:1" + } + ], + "id": 3483, + "name": "FunctionCall", + "src": "61845:46:1" + } + ], + "id": 3484, + "name": "EmitStatement", + "src": "61840:51:1" + } + ], + "id": 3485, + "name": "Block", + "src": "61791:125:1" + } + ], + "id": 3486, + "name": "FunctionDefinition", + "src": "61727:189:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_beforeTokenTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3487, + "name": "StructuredDocumentation", + "src": "61922:585:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3488, + "name": "ElementaryTypeName", + "src": "62542:7:1" + } + ], + "id": 3489, + "name": "VariableDeclaration", + "src": "62542:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3490, + "name": "ElementaryTypeName", + "src": "62556:7:1" + } + ], + "id": 3491, + "name": "VariableDeclaration", + "src": "62556:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3492, + "name": "ElementaryTypeName", + "src": "62568:7:1" + } + ], + "id": 3493, + "name": "VariableDeclaration", + "src": "62568:15:1" + } + ], + "id": 3494, + "name": "ParameterList", + "src": "62541:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3495, + "name": "ParameterList", + "src": "62602:0:1" + }, + { + "attributes": { + "statements": [ + null + ] + }, + "children": [], + "id": 3496, + "name": "Block", + "src": "62602:3:1" + } + ], + "id": 3497, + "name": "FunctionDefinition", + "src": "62512:93:1" + } + ], + "id": 3498, + "name": "ContractDefinition", + "src": "46080:16527:1" + } + ], + "id": 3499, + "name": "SourceUnit", + "src": "84:62524:1" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-13T11:18:07.194Z", + "devdoc": { + "details": "Implementation of the {IERC165} interface. Contracts may inherit from this and call {_registerInterface} to declare their support of an interface.", + "kind": "dev", + "methods": { + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas." + } + }, + "stateVariables": { + "_supportedInterfaces": { + "details": "Mapping of interface ids to whether or not it's supported." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/abis/ERC721.json b/src/abis/ERC721.json new file mode 100644 index 0000000..5ea50ac --- /dev/null +++ b/src/abis/ERC721.json @@ -0,0 +1,78030 @@ +{ + "contractName": "ERC721", + "abi": [ + { + "inputs": [ + { + "internalType": "string", + "name": "name_", + "type": "string" + }, + { + "internalType": "string", + "name": "symbol_", + "type": "string" + } + ], + "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": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "baseURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenOfOwnerByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"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\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"see https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"baseURI()\":{\"details\":\"Returns the base URI set via {_setBaseURI}. This will be automatically added as a prefix in {tokenURI} to each token's URI, or to the token ID if no specific URI is set for that token ID.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"title\":\"ERC721 Non-Fungible Token Standard basic implementation\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":{\"keccak256\":\"0xac9220652f9879c5fb3116025d59e8fbf6c2c3d149aed9f617b88edd31402044\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48de100723de94a6590c6db5bae5098a93445194389c3f3eeb104c7239ef3044\",\"dweb:/ipfs/QmVHLEtfLqBqX7XQRHfLuuwtufRBFJFHfgY4zbFRpaZwXC\"]}},\"version\":1}", + "bytecode": "0x60806040523480156200001157600080fd5b5060405162002b4238038062002b42833981810160405260408110156200003757600080fd5b81019080805160405193929190846401000000008211156200005857600080fd5b838201915060208201858111156200006f57600080fd5b82518660018202830111640100000000821117156200008d57600080fd5b8083526020830192505050908051906020019080838360005b83811015620000c3578082015181840152602081019050620000a6565b50505050905090810190601f168015620000f15780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200011557600080fd5b838201915060208201858111156200012c57600080fd5b82518660018202830111640100000000821117156200014a57600080fd5b8083526020830192505050908051906020019080838360005b838110156200018057808201518184015260208101905062000163565b50505050905090810190601f168015620001ae5780820380516001836020036101000a031916815260200191505b50604052505050620001cd6301ffc9a760e01b6200024f60201b60201c565b8160069080519060200190620001e592919062000358565b508060079080519060200190620001fe92919062000358565b50620002176380ac58cd60e01b6200024f60201b60201c565b6200022f635b5e139f60e01b6200024f60201b60201c565b6200024763780e9d6360e01b6200024f60201b60201c565b50506200040e565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161415620002ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282620003905760008555620003dc565b82601f10620003ab57805160ff1916838001178555620003dc565b82800160010185558215620003dc579182015b82811115620003db578251825591602001919060010190620003be565b5b509050620003eb9190620003ef565b5090565b5b808211156200040a576000816000905550600101620003f0565b5090565b612724806200041e6000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c80634f6ccce7116100a257806395d89b411161007157806395d89b411461056d578063a22cb465146105f0578063b88d4fde14610640578063c87b56dd14610745578063e985e9c5146107ec5761010b565b80634f6ccce7146103f85780636352211e1461043a5780636c0360eb1461049257806370a08231146105155761010b565b806318160ddd116100de57806318160ddd1461029c57806323b872dd146102ba5780632f745c591461032857806342842e0e1461038a5761010b565b806301ffc9a71461011057806306fdde0314610173578063081812fc146101f6578063095ea7b31461024e575b600080fd5b61015b6004803603602081101561012657600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610866565b60405180821515815260200191505060405180910390f35b61017b6108cd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bb5780820151818401526020810190506101a0565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102226004803603602081101561020c57600080fd5b810190808035906020019092919050505061096f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61029a6004803603604081101561026457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a0a565b005b6102a4610b4e565b6040518082815260200191505060405180910390f35b610326600480360360608110156102d057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b5f565b005b6103746004803603604081101561033e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bd5565b6040518082815260200191505060405180910390f35b6103f6600480360360608110156103a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c30565b005b6104246004803603602081101561040e57600080fd5b8101908080359060200190929190505050610c50565b6040518082815260200191505060405180910390f35b6104666004803603602081101561045057600080fd5b8101908080359060200190929190505050610c73565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61049a610caa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104da5780820151818401526020810190506104bf565b50505050905090810190601f1680156105075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105576004803603602081101561052b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d4c565b6040518082815260200191505060405180910390f35b610575610e21565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105b557808201518184015260208101905061059a565b50505050905090810190601f1680156105e25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61063e6004803603604081101561060657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610ec3565b005b6107436004803603608081101561065657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156106bd57600080fd5b8201836020820111156106cf57600080fd5b803590602001918460018302840111640100000000831117156106f157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611079565b005b6107716004803603602081101561075b57600080fd5b81019080803590602001909291905050506110f1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107b1578082015181840152602081019050610796565b50505050905090810190601f1680156107de5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61084e6004803603604081101561080257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113c2565b60405180821515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109655780601f1061093a57610100808354040283529160200191610965565b820191906000526020600020905b81548152906001019060200180831161094857829003601f168201915b5050505050905090565b600061097a82611456565b6109cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612619602c913960400191505060405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a1582610c73565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061269d6021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610abb611473565b73ffffffffffffffffffffffffffffffffffffffff161480610aea5750610ae981610ae4611473565b6113c2565b5b610b3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018061256c6038913960400191505060405180910390fd5b610b49838361147b565b505050565b6000610b5a6002611534565b905090565b610b70610b6a611473565b82611549565b610bc5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806126be6031913960400191505060405180910390fd5b610bd083838361163d565b505050565b6000610c2882600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061188090919063ffffffff16565b905092915050565b610c4b83838360405180602001604052806000815250611079565b505050565b600080610c6783600261189a90919063ffffffff16565b50905080915050919050565b6000610ca3826040518060600160405280602981526020016125ce6029913960026118c69092919063ffffffff16565b9050919050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d425780601f10610d1757610100808354040283529160200191610d42565b820191906000526020600020905b815481529060010190602001808311610d2557829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806125a4602a913960400191505060405180910390fd5b610e1a600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206118e5565b9050919050565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610eb95780601f10610e8e57610100808354040283529160200191610eb9565b820191906000526020600020905b815481529060010190602001808311610e9c57829003601f168201915b5050505050905090565b610ecb611473565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f6c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b8060056000610f79611473565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611026611473565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b61108a611084611473565b83611549565b6110df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806126be6031913960400191505060405180910390fd5b6110eb848484846118fa565b50505050565b60606110fc82611456565b611151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061266e602f913960400191505060405180910390fd5b6000600860008481526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111fa5780601f106111cf576101008083540402835291602001916111fa565b820191906000526020600020905b8154815290600101906020018083116111dd57829003601f168201915b50505050509050600061120b610caa565b90506000815114156112215781925050506113bd565b6000825111156112f25780826040516020018083805190602001908083835b602083106112635780518252602082019150602081019050602083039250611240565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b602083106112b45780518252602082019150602081019050602083039250611291565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052925050506113bd565b806112fc8561196c565b6040516020018083805190602001908083835b60208310611332578051825260208201915060208101905060208303925061130f565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b602083106113835780518252602082019150602081019050602083039250611360565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600061146c826002611ab390919063ffffffff16565b9050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166114ee83610c73565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061154282600001611acd565b9050919050565b600061155482611456565b6115a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612540602c913960400191505060405180910390fd5b60006115b483610c73565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061162357508373ffffffffffffffffffffffffffffffffffffffff1661160b8461096f565b73ffffffffffffffffffffffffffffffffffffffff16145b80611634575061163381856113c2565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661165d82610c73565b73ffffffffffffffffffffffffffffffffffffffff16146116c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806126456029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561174f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806124f66024913960400191505060405180910390fd5b61175a838383611ade565b61176560008261147b565b6117b681600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611ae390919063ffffffff16565b5061180881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611afd90919063ffffffff16565b5061181f81836002611b179092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600061188f8360000183611b4c565b60001c905092915050565b6000806000806118ad8660000186611bcf565b915091508160001c8160001c9350935050509250929050565b60006118d9846000018460001b84611c68565b60001c90509392505050565b60006118f382600001611d5e565b9050919050565b61190584848461163d565b61191184848484611d6f565b611966576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806124c46032913960400191505060405180910390fd5b50505050565b606060008214156119b4576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611aae565b600082905060005b600082146119de578080600101915050600a82816119d657fe5b0491506119bc565b60008167ffffffffffffffff811180156119f757600080fd5b506040519080825280601f01601f191660200182016040528015611a2a5781602001600182028036833780820191505090505b50905060006001830390508593505b60008414611aa657600a8481611a4b57fe5b0660300160f81b82828060019003935081518110611a6557fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8481611a9e57fe5b049350611a39565b819450505050505b919050565b6000611ac5836000018360001b611f88565b905092915050565b600081600001805490509050919050565b505050565b6000611af5836000018360001b611fab565b905092915050565b6000611b0f836000018360001b612093565b905092915050565b6000611b43846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b612103565b90509392505050565b600081836000018054905011611bad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806124a26022913960400191505060405180910390fd5b826000018281548110611bbc57fe5b9060005260206000200154905092915050565b60008082846000018054905011611c31576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806125f76022913960400191505060405180910390fd5b6000846000018481548110611c4257fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b60008084600101600085815260200190815260200160002054905060008114158390611d2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf4578082015181840152602081019050611cd9565b50505050905090810190601f168015611d215780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50846000016001820381548110611d4257fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b6000611d908473ffffffffffffffffffffffffffffffffffffffff166121df565b611d9d5760019050611f80565b6000611f0763150b7a0260e01b611db2611473565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611e36578082015181840152602081019050611e1b565b50505050905090810190601f168015611e635780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518060600160405280603281526020016124c4603291398773ffffffffffffffffffffffffffffffffffffffff166121f29092919063ffffffff16565b90506000818060200190516020811015611f2057600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600080836001016000848152602001908152602001600020541415905092915050565b600080836001016000848152602001908152602001600020549050600081146120875760006001820390506000600186600001805490500390506000866000018281548110611ff657fe5b906000526020600020015490508087600001848154811061201357fe5b906000526020600020018190555060018301876001016000838152602001908152602001600020819055508660000180548061204b57fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061208d565b60009150505b92915050565b600061209f838361220a565b6120f85782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506120fd565b600090505b92915050565b60008084600101600085815260200190815260200160002054905060008114156121aa578460000160405180604001604052808681526020018581525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010155505084600001805490508560010160008681526020019081526020016000208190555060019150506121d8565b828560000160018303815481106121bd57fe5b90600052602060002090600202016001018190555060009150505b9392505050565b600080823b905060008111915050919050565b6060612201848460008561222d565b90509392505050565b600080836001016000848152602001908152602001600020541415905092915050565b606082471015612288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061251a6026913960400191505060405180910390fd5b612291856121df565b612303576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310612352578051825260208201915060208101905060208303925061232f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146123b4576040519150601f19603f3d011682016040523d82523d6000602084013e6123b9565b606091505b50915091506123c98282866123d5565b92505050949350505050565b606083156123e55782905061249a565b6000835111156123f85782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561245f578082015181840152602081019050612444565b50505050905090810190601f16801561248c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b939250505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a26469706673582212205ae7703f0360bf1ceb1b85a37e056f5b09a69c9c5e0f7b93555c74875233a60864736f6c63430007060033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061010b5760003560e01c80634f6ccce7116100a257806395d89b411161007157806395d89b411461056d578063a22cb465146105f0578063b88d4fde14610640578063c87b56dd14610745578063e985e9c5146107ec5761010b565b80634f6ccce7146103f85780636352211e1461043a5780636c0360eb1461049257806370a08231146105155761010b565b806318160ddd116100de57806318160ddd1461029c57806323b872dd146102ba5780632f745c591461032857806342842e0e1461038a5761010b565b806301ffc9a71461011057806306fdde0314610173578063081812fc146101f6578063095ea7b31461024e575b600080fd5b61015b6004803603602081101561012657600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19169060200190929190505050610866565b60405180821515815260200191505060405180910390f35b61017b6108cd565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101bb5780820151818401526020810190506101a0565b50505050905090810190601f1680156101e85780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102226004803603602081101561020c57600080fd5b810190808035906020019092919050505061096f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61029a6004803603604081101561026457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a0a565b005b6102a4610b4e565b6040518082815260200191505060405180910390f35b610326600480360360608110156102d057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b5f565b005b6103746004803603604081101561033e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bd5565b6040518082815260200191505060405180910390f35b6103f6600480360360608110156103a057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c30565b005b6104246004803603602081101561040e57600080fd5b8101908080359060200190929190505050610c50565b6040518082815260200191505060405180910390f35b6104666004803603602081101561045057600080fd5b8101908080359060200190929190505050610c73565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61049a610caa565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156104da5780820151818401526020810190506104bf565b50505050905090810190601f1680156105075780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6105576004803603602081101561052b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d4c565b6040518082815260200191505060405180910390f35b610575610e21565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105b557808201518184015260208101905061059a565b50505050905090810190601f1680156105e25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61063e6004803603604081101561060657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610ec3565b005b6107436004803603608081101561065657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001906401000000008111156106bd57600080fd5b8201836020820111156106cf57600080fd5b803590602001918460018302840111640100000000831117156106f157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611079565b005b6107716004803603602081101561075b57600080fd5b81019080803590602001909291905050506110f1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107b1578082015181840152602081019050610796565b50505050905090810190601f1680156107de5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61084e6004803603604081101561080257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506113c2565b60405180821515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156109655780601f1061093a57610100808354040283529160200191610965565b820191906000526020600020905b81548152906001019060200180831161094857829003601f168201915b5050505050905090565b600061097a82611456565b6109cf576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612619602c913960400191505060405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610a1582610c73565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610a9c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061269d6021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610abb611473565b73ffffffffffffffffffffffffffffffffffffffff161480610aea5750610ae981610ae4611473565b6113c2565b5b610b3f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603881526020018061256c6038913960400191505060405180910390fd5b610b49838361147b565b505050565b6000610b5a6002611534565b905090565b610b70610b6a611473565b82611549565b610bc5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806126be6031913960400191505060405180910390fd5b610bd083838361163d565b505050565b6000610c2882600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061188090919063ffffffff16565b905092915050565b610c4b83838360405180602001604052806000815250611079565b505050565b600080610c6783600261189a90919063ffffffff16565b50905080915050919050565b6000610ca3826040518060600160405280602981526020016125ce6029913960026118c69092919063ffffffff16565b9050919050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610d425780601f10610d1757610100808354040283529160200191610d42565b820191906000526020600020905b815481529060010190602001808311610d2557829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610dd3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806125a4602a913960400191505060405180910390fd5b610e1a600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206118e5565b9050919050565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610eb95780601f10610e8e57610100808354040283529160200191610eb9565b820191906000526020600020905b815481529060010190602001808311610e9c57829003601f168201915b5050505050905090565b610ecb611473565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610f6c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b8060056000610f79611473565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611026611473565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b61108a611084611473565b83611549565b6110df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806126be6031913960400191505060405180910390fd5b6110eb848484846118fa565b50505050565b60606110fc82611456565b611151576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061266e602f913960400191505060405180910390fd5b6000600860008481526020019081526020016000208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111fa5780601f106111cf576101008083540402835291602001916111fa565b820191906000526020600020905b8154815290600101906020018083116111dd57829003601f168201915b50505050509050600061120b610caa565b90506000815114156112215781925050506113bd565b6000825111156112f25780826040516020018083805190602001908083835b602083106112635780518252602082019150602081019050602083039250611240565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b602083106112b45780518252602082019150602081019050602083039250611291565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052925050506113bd565b806112fc8561196c565b6040516020018083805190602001908083835b60208310611332578051825260208201915060208101905060208303925061130f565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b602083106113835780518252602082019150602081019050602083039250611360565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600061146c826002611ab390919063ffffffff16565b9050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166114ee83610c73565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061154282600001611acd565b9050919050565b600061155482611456565b6115a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612540602c913960400191505060405180910390fd5b60006115b483610c73565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061162357508373ffffffffffffffffffffffffffffffffffffffff1661160b8461096f565b73ffffffffffffffffffffffffffffffffffffffff16145b80611634575061163381856113c2565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661165d82610c73565b73ffffffffffffffffffffffffffffffffffffffff16146116c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806126456029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561174f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806124f66024913960400191505060405180910390fd5b61175a838383611ade565b61176560008261147b565b6117b681600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611ae390919063ffffffff16565b5061180881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020611afd90919063ffffffff16565b5061181f81836002611b179092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600061188f8360000183611b4c565b60001c905092915050565b6000806000806118ad8660000186611bcf565b915091508160001c8160001c9350935050509250929050565b60006118d9846000018460001b84611c68565b60001c90509392505050565b60006118f382600001611d5e565b9050919050565b61190584848461163d565b61191184848484611d6f565b611966576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260328152602001806124c46032913960400191505060405180910390fd5b50505050565b606060008214156119b4576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611aae565b600082905060005b600082146119de578080600101915050600a82816119d657fe5b0491506119bc565b60008167ffffffffffffffff811180156119f757600080fd5b506040519080825280601f01601f191660200182016040528015611a2a5781602001600182028036833780820191505090505b50905060006001830390508593505b60008414611aa657600a8481611a4b57fe5b0660300160f81b82828060019003935081518110611a6557fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8481611a9e57fe5b049350611a39565b819450505050505b919050565b6000611ac5836000018360001b611f88565b905092915050565b600081600001805490509050919050565b505050565b6000611af5836000018360001b611fab565b905092915050565b6000611b0f836000018360001b612093565b905092915050565b6000611b43846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b612103565b90509392505050565b600081836000018054905011611bad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806124a26022913960400191505060405180910390fd5b826000018281548110611bbc57fe5b9060005260206000200154905092915050565b60008082846000018054905011611c31576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806125f76022913960400191505060405180910390fd5b6000846000018481548110611c4257fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b60008084600101600085815260200190815260200160002054905060008114158390611d2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cf4578082015181840152602081019050611cd9565b50505050905090810190601f168015611d215780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50846000016001820381548110611d4257fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b6000611d908473ffffffffffffffffffffffffffffffffffffffff166121df565b611d9d5760019050611f80565b6000611f0763150b7a0260e01b611db2611473565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015611e36578082015181840152602081019050611e1b565b50505050905090810190601f168015611e635780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040518060600160405280603281526020016124c4603291398773ffffffffffffffffffffffffffffffffffffffff166121f29092919063ffffffff16565b90506000818060200190516020811015611f2057600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b600080836001016000848152602001908152602001600020541415905092915050565b600080836001016000848152602001908152602001600020549050600081146120875760006001820390506000600186600001805490500390506000866000018281548110611ff657fe5b906000526020600020015490508087600001848154811061201357fe5b906000526020600020018190555060018301876001016000838152602001908152602001600020819055508660000180548061204b57fe5b6001900381819060005260206000200160009055905586600101600087815260200190815260200160002060009055600194505050505061208d565b60009150505b92915050565b600061209f838361220a565b6120f85782600001829080600181540180825580915050600190039060005260206000200160009091909190915055826000018054905083600101600084815260200190815260200160002081905550600190506120fd565b600090505b92915050565b60008084600101600085815260200190815260200160002054905060008114156121aa578460000160405180604001604052808681526020018581525090806001815401808255809150506001900390600052602060002090600202016000909190919091506000820151816000015560208201518160010155505084600001805490508560010160008681526020019081526020016000208190555060019150506121d8565b828560000160018303815481106121bd57fe5b90600052602060002090600202016001018190555060009150505b9392505050565b600080823b905060008111915050919050565b6060612201848460008561222d565b90509392505050565b600080836001016000848152602001908152602001600020541415905092915050565b606082471015612288576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061251a6026913960400191505060405180910390fd5b612291856121df565b612303576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b60208310612352578051825260208201915060208101905060208303925061232f565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d80600081146123b4576040519150601f19603f3d011682016040523d82523d6000602084013e6123b9565b606091505b50915091506123c98282866123d5565b92505050949350505050565b606083156123e55782905061249a565b6000835111156123f85782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561245f578082015181840152602081019050612444565b50505050905090810190601f16801561248c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b939250505056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e64734552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724552433732313a207472616e7366657220746f20746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e64734552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564a26469706673582212205ae7703f0360bf1ceb1b85a37e056f5b09a69c9c5e0f7b93555c74875233a60864736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "46080:16527:1:-:0;;;49086:362;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9711:40;9387:10;9730:20;;9711:18;;;:40;;:::i;:::-;49161:5;49153;:13;;;;;;;;;;;;:::i;:::-;;49186:7;49176;:17;;;;;;;;;;;;:::i;:::-;;49281:40;48251:10;49300:20;;49281:18;;;:40;;:::i;:::-;49331:49;48583:10;49350:29;;49331:18;;;:49;;:::i;:::-;49390:51;48956:10;49409:31;;49390:18;;;:51;;:::i;:::-;49086:362;;46080:16527;;10450:198;10548:10;10533:25;;:11;:25;;;;;10525:66;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10637:4;10601:20;:33;10622:11;10601:33;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;10450:198;:::o;46080:16527::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;", + "deployedSourceMap": "46080:16527:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9908:148;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;50019:98;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52724:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;52268:395;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;51762:208;;;:::i;:::-;;;;;;;;;;;;;;;;;;;53588:300;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;51531:160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;53954:149;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;52042:169;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;49782:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;51357:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49507:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;50181:102;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;53008:290;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;54169:282;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;50349:776;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;53364:162;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;9908:148;9993:4;10016:20;:33;10037:11;10016:33;;;;;;;;;;;;;;;;;;;;;;;;;;;10009:40;;9908:148;;;:::o;50019:98::-;50073:13;50105:5;50098:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50019:98;:::o;52724:217::-;52800:7;52827:16;52835:7;52827;:16::i;:::-;52819:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52910:15;:24;52926:7;52910:24;;;;;;;;;;;;;;;;;;;;;52903:31;;52724:217;;;:::o;52268:395::-;52348:13;52364:23;52379:7;52364:14;:23::i;:::-;52348:39;;52411:5;52405:11;;:2;:11;;;;52397:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52489:5;52473:21;;:12;:10;:12::i;:::-;:21;;;:69;;;;52498:44;52522:5;52529:12;:10;:12::i;:::-;52498:23;:44::i;:::-;52473:69;52465:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;52635:21;52644:2;52648:7;52635:8;:21::i;:::-;52268:395;;;:::o;51762:208::-;51823:7;51942:21;:12;:19;:21::i;:::-;51935:28;;51762:208;:::o;53588:300::-;53747:41;53766:12;:10;:12::i;:::-;53780:7;53747:18;:41::i;:::-;53739:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;53853:28;53863:4;53869:2;53873:7;53853:9;:28::i;:::-;53588:300;;;:::o;51531:160::-;51628:7;51654:30;51678:5;51654:13;:20;51668:5;51654:20;;;;;;;;;;;;;;;:23;;:30;;;;:::i;:::-;51647:37;;51531:160;;;;:::o;53954:149::-;54057:39;54074:4;54080:2;54084:7;54057:39;;;;;;;;;;;;:16;:39::i;:::-;53954:149;;;:::o;52042:169::-;52117:7;52137:15;52158:22;52174:5;52158:12;:15;;:22;;;;:::i;:::-;52136:44;;;52197:7;52190:14;;;52042:169;;;:::o;49782:175::-;49854:7;49880:70;49897:7;49880:70;;;;;;;;;;;;;;;;;:12;:16;;:70;;;;;:::i;:::-;49873:77;;49782:175;;;:::o;51357:95::-;51405:13;51437:8;51430:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;51357:95;:::o;49507:218::-;49579:7;49623:1;49606:19;;:5;:19;;;;49598:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49689:29;:13;:20;49703:5;49689:20;;;;;;;;;;;;;;;:27;:29::i;:::-;49682:36;;49507:218;;;:::o;50181:102::-;50237:13;50269:7;50262:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50181:102;:::o;53008:290::-;53122:12;:10;:12::i;:::-;53110:24;;:8;:24;;;;53102:62;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;53220:8;53175:18;:32;53194:12;:10;:12::i;:::-;53175:32;;;;;;;;;;;;;;;:42;53208:8;53175:42;;;;;;;;;;;;;;;;:53;;;;;;;;;;;;;;;;;;53272:8;53243:48;;53258:12;:10;:12::i;:::-;53243:48;;;53282:8;53243:48;;;;;;;;;;;;;;;;;;;;53008:290;;:::o;54169:282::-;54300:41;54319:12;:10;:12::i;:::-;54333:7;54300:18;:41::i;:::-;54292:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;54405:39;54419:4;54425:2;54429:7;54438:5;54405:13;:39::i;:::-;54169:282;;;;:::o;50349:776::-;50422:13;50455:16;50463:7;50455;:16::i;:::-;50447:76;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50534:23;50560:10;:19;50571:7;50560:19;;;;;;;;;;;50534:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50589:18;50610:9;:7;:9::i;:::-;50589:30;;50714:1;50698:4;50692:18;:23;50688:70;;;50738:9;50731:16;;;;;;50688:70;50886:1;50866:9;50860:23;:27;50856:106;;;50934:4;50940:9;50917:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50903:48;;;;;;50856:106;51092:4;51098:18;:7;:16;:18::i;:::-;51075:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;51061:57;;;;50349:776;;;;:::o;53364:162::-;53461:4;53484:18;:25;53503:5;53484:25;;;;;;;;;;;;;;;:35;53510:8;53484:35;;;;;;;;;;;;;;;;;;;;;;;;;53477:42;;53364:162;;;;:::o;55885:125::-;55950:4;55973:30;55995:7;55973:12;:21;;:30;;;;:::i;:::-;55966:37;;55885:125;;;:::o;649:104::-;702:15;736:10;729:17;;649:104;:::o;61727:189::-;61828:2;61801:15;:24;61817:7;61801:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;61883:7;61879:2;61845:46;;61854:23;61869:7;61854:14;:23::i;:::-;61845:46;;;;;;;;;;;;61727:189;;:::o;42991:121::-;43060:7;43086:19;43094:3;:10;;43086:7;:19::i;:::-;43079:26;;42991:121;;;:::o;56168:351::-;56261:4;56285:16;56293:7;56285;:16::i;:::-;56277:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;56360:13;56376:23;56391:7;56376:14;:23::i;:::-;56360:39;;56428:5;56417:16;;:7;:16;;;:51;;;;56461:7;56437:31;;:20;56449:7;56437:11;:20::i;:::-;:31;;;56417:51;:94;;;;56472:39;56496:5;56503:7;56472:23;:39::i;:::-;56417:94;56409:103;;;56168:351;;;;:::o;59209:584::-;59333:4;59306:31;;:23;59321:7;59306:14;:23::i;:::-;:31;;;59298:85;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;59433:1;59419:16;;:2;:16;;;;59411:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;59487:39;59508:4;59514:2;59518:7;59487:20;:39::i;:::-;59588:29;59605:1;59609:7;59588:8;:29::i;:::-;59628:35;59655:7;59628:13;:19;59642:4;59628:19;;;;;;;;;;;;;;;:26;;:35;;;;:::i;:::-;;59673:30;59695:7;59673:13;:17;59687:2;59673:17;;;;;;;;;;;;;;;:21;;:30;;;;:::i;:::-;;59714:29;59731:7;59740:2;59714:12;:16;;:29;;;;;:::i;:::-;;59778:7;59774:2;59759:27;;59768:4;59759:27;;;;;;;;;;;;59209:584;;;:::o;35008:135::-;35079:7;35113:22;35117:3;:10;;35129:5;35113:3;:22::i;:::-;35105:31;;35098:38;;35008:135;;;;:::o;43440:233::-;43520:7;43529;43549:11;43562:13;43579:22;43583:3;:10;;43595:5;43579:3;:22::i;:::-;43548:53;;;;43627:3;43619:12;;43657:5;43649:14;;43611:55;;;;;;43440:233;;;;;:::o;44693:211::-;44800:7;44850:44;44855:3;:10;;44875:3;44867:12;;44881;44850:4;:44::i;:::-;44842:53;;44819:78;;44693:211;;;;;:::o;34564:112::-;34624:7;34650:19;34658:3;:10;;34650:7;:19::i;:::-;34643:26;;34564:112;;;:::o;55313:269::-;55426:28;55436:4;55442:2;55446:7;55426:9;:28::i;:::-;55472:48;55495:4;55501:2;55505:7;55514:5;55472:22;:48::i;:::-;55464:111;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;55313:269;;;;:::o;45136:725::-;45192:13;45418:1;45409:5;:10;45405:51;;;45435:10;;;;;;;;;;;;;;;;;;;;;45405:51;45465:12;45480:5;45465:20;;45495:14;45519:75;45534:1;45526:4;:9;45519:75;;45551:8;;;;;;;45581:2;45573:10;;;;;;;;;45519:75;;;45603:19;45635:6;45625:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;45603:39;;45652:13;45677:1;45668:6;:10;45652:26;;45695:5;45688:12;;45710:114;45725:1;45717:4;:9;45710:114;;45785:2;45778:4;:9;;;;;;45773:2;:14;45760:29;;45742:6;45749:7;;;;;;;45742:15;;;;;;;;;;;:47;;;;;;;;;;;45811:2;45803:10;;;;;;;;;45710:114;;;45847:6;45833:21;;;;;;45136:725;;;;:::o;42759:149::-;42843:4;42866:35;42876:3;:10;;42896:3;42888:12;;42866:9;:35::i;:::-;42859:42;;42759:149;;;;:::o;39662:108::-;39718:7;39744:3;:12;;:19;;;;39737:26;;39662:108;;;:::o;62512:93::-;;;;:::o;34123:135::-;34193:4;34216:35;34224:3;:10;;34244:5;34236:14;;34216:7;:35::i;:::-;34209:42;;34123:135;;;;:::o;33826:129::-;33893:4;33916:32;33921:3;:10;;33941:5;33933:14;;33916:4;:32::i;:::-;33909:39;;33826:129;;;;:::o;42198:183::-;42287:4;42310:64;42315:3;:10;;42335:3;42327:12;;42365:5;42349:23;;42341:32;;42310:4;:64::i;:::-;42303:71;;42198:183;;;;;:::o;30210:201::-;30277:7;30325:5;30304:3;:11;;:18;;;;:26;30296:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30386:3;:11;;30398:5;30386:18;;;;;;;;;;;;;;;;30379:25;;30210:201;;;;:::o;40113:274::-;40180:7;40189;40238:5;40216:3;:12;;:19;;;;:27;40208:74;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40293:22;40318:3;:12;;40331:5;40318:19;;;;;;;;;;;;;;;;;;40293:44;;40355:5;:10;;;40367:5;:12;;;40347:33;;;;;40113:274;;;;;:::o;41574:315::-;41668:7;41687:16;41706:3;:12;;:17;41719:3;41706:17;;;;;;;;;;;;41687:36;;41753:1;41741:8;:13;;41756:12;41733:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;41822:3;:12;;41846:1;41835:8;:12;41822:26;;;;;;;;;;;;;;;;;;:33;;;41815:40;;;41574:315;;;;;:::o;29771:107::-;29827:7;29853:3;:11;;:18;;;;29846:25;;29771:107;;;:::o;61026:589::-;61146:4;61171:15;:2;:13;;;:15::i;:::-;61166:58;;61209:4;61202:11;;;;61166:58;61233:23;61259:246;61311:45;;;61370:12;:10;:12::i;:::-;61396:4;61414:7;61435:5;61275:175;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;61259:246;;;;;;;;;;;;;;;;;:2;:15;;;;:246;;;;;:::i;:::-;61233:272;;61515:13;61542:10;61531:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;61515:48;;46587:10;61591:16;;61581:26;;;:6;:26;;;;61573:35;;;;61026:589;;;;;;;:::o;39449:123::-;39520:4;39564:1;39543:3;:12;;:17;39556:3;39543:17;;;;;;;;;;;;:22;;39536:29;;39449:123;;;;:::o;27970:1512::-;28036:4;28152:18;28173:3;:12;;:19;28186:5;28173:19;;;;;;;;;;;;28152:40;;28221:1;28207:10;:15;28203:1273;;28564:21;28601:1;28588:10;:14;28564:38;;28616:17;28657:1;28636:3;:11;;:18;;;;:22;28616:42;;28898:17;28918:3;:11;;28930:9;28918:22;;;;;;;;;;;;;;;;28898:42;;29061:9;29032:3;:11;;29044:13;29032:26;;;;;;;;;;;;;;;:38;;;;29178:1;29162:13;:17;29136:3;:12;;:23;29149:9;29136:23;;;;;;;;;;;:43;;;;29285:3;:11;;:17;;;;;;;;;;;;;;;;;;;;;;;;29377:3;:12;;:19;29390:5;29377:19;;;;;;;;;;;29370:26;;;29418:4;29411:11;;;;;;;;28203:1273;29460:5;29453:12;;;27970:1512;;;;;:::o;27398:404::-;27461:4;27482:21;27492:3;27497:5;27482:9;:21::i;:::-;27477:319;;27519:3;:11;;27536:5;27519:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27699:3;:11;;:18;;;;27677:3;:12;;:19;27690:5;27677:19;;;;;;;;;;;:40;;;;27738:4;27731:11;;;;27477:319;27780:5;27773:12;;27398:404;;;;;:::o;37007:678::-;37083:4;37197:16;37216:3;:12;;:17;37229:3;37216:17;;;;;;;;;;;;37197:36;;37260:1;37248:8;:13;37244:435;;;37314:3;:12;;37332:38;;;;;;;;37349:3;37332:38;;;;37362:5;37332:38;;;37314:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;37526:3;:12;;:19;;;;37506:3;:12;;:17;37519:3;37506:17;;;;;;;;;;;:39;;;;37566:4;37559:11;;;;;37244:435;37637:5;37601:3;:12;;37625:1;37614:8;:12;37601:26;;;;;;;;;;;;;;;;;;:33;;:41;;;;37663:5;37656:12;;;37007:678;;;;;;:::o;18640:413::-;18700:4;18903:12;19012:7;19000:20;18992:28;;19045:1;19038:4;:8;19031:15;;;18640:413;;;:::o;21495:193::-;21598:12;21629:52;21651:6;21659:4;21665:1;21668:12;21629:21;:52::i;:::-;21622:59;;21495:193;;;;;:::o;29563:127::-;29636:4;29682:1;29659:3;:12;;:19;29672:5;29659:19;;;;;;;;;;;;:24;;29652:31;;29563:127;;;;:::o;22522:523::-;22649:12;22706:5;22681:21;:30;;22673:81;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22772:18;22783:6;22772:10;:18::i;:::-;22764:60;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22895:12;22909:23;22936:6;:11;;22956:5;22964:4;22936:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22894:75;;;;22986:52;23004:7;23013:10;23025:12;22986:17;:52::i;:::-;22979:59;;;;22522:523;;;;;;:::o;25005:725::-;25120:12;25148:7;25144:580;;;25178:10;25171:17;;;;25144:580;25309:1;25289:10;:17;:21;25285:429;;;25547:10;25541:17;25607:15;25594:10;25590:2;25586:19;25579:44;25496:145;25686:12;25679:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25005:725;;;;;;:::o", + "source": "// SPDX-License-Identifier: MIT\n\n// File: @openzeppelin/contracts/utils/Context.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\n\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Enumerable is IERC721 {\n\n /**\n * @dev Returns the total amount of tokens stored by the contract.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);\n\n /**\n * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n * Use along with {totalSupply} to enumerate all tokens.\n */\n function tokenByIndex(uint256 index) external view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\npragma solidity >=0.6.0 <0.8.0;\n\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts may inherit from this and call {_registerInterface} to declare\n * their support of an interface.\n */\nabstract contract ERC165 is IERC165 {\n /*\n * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7\n */\n bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;\n\n /**\n * @dev Mapping of interface ids to whether or not it's supported.\n */\n mapping(bytes4 => bool) private _supportedInterfaces;\n\n constructor () {\n // Derived contracts need only register support for their own interfaces,\n // we register support for ERC165 itself here\n _registerInterface(_INTERFACE_ID_ERC165);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n *\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return _supportedInterfaces[interfaceId];\n }\n\n /**\n * @dev Registers the contract as an implementer of the interface defined by\n * `interfaceId`. Support of the actual ERC165 interface is automatic and\n * registering its interface id is not required.\n *\n * See {IERC165-supportsInterface}.\n *\n * Requirements:\n *\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).\n */\n function _registerInterface(bytes4 interfaceId) internal virtual {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the substraction of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n return a - b;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) return 0;\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: division by zero\");\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: modulo by zero\");\n return a % b;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {trySub}.\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryDiv}.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting with custom message when dividing by zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryMod}.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a % b;\n }\n}\n\n// File: @openzeppelin/contracts/utils/Address.sol\npragma solidity >=0.6.2 <0.8.0;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n // solhint-disable-next-line no-inline-assembly\n assembly { size := extcodesize(account) }\n return size > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: value }(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.staticcall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableSet.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) { // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n bytes32 lastvalue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastvalue;\n // Update the index for the moved value\n set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n require(set._values.length > index, \"EnumerableSet: index out of bounds\");\n return set._values[index];\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableMap.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing an enumerable variant of Solidity's\n * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n * type.\n *\n * Maps have the following properties:\n *\n * - Entries are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Entries are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableMap for EnumerableMap.UintToAddressMap;\n *\n * // Declare a set state variable\n * EnumerableMap.UintToAddressMap private myMap;\n * }\n * ```\n *\n * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n * supported.\n */\nlibrary EnumerableMap {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Map type with\n // bytes32 keys and values.\n // The Map implementation uses private functions, and user-facing\n // implementations (such as Uint256ToAddressMap) are just wrappers around\n // the underlying Map.\n // This means that we can only create new EnumerableMaps for types that fit\n // in bytes32.\n\n struct MapEntry {\n bytes32 _key;\n bytes32 _value;\n }\n\n struct Map {\n // Storage of map keys and values\n MapEntry[] _entries;\n\n // Position of the entry defined by a key in the `entries` array, plus 1\n // because index 0 means a key is not in the map.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex == 0) { // Equivalent to !contains(map, key)\n map._entries.push(MapEntry({ _key: key, _value: value }));\n // The entry is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n map._indexes[key] = map._entries.length;\n return true;\n } else {\n map._entries[keyIndex - 1]._value = value;\n return false;\n }\n }\n\n /**\n * @dev Removes a key-value pair from a map. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function _remove(Map storage map, bytes32 key) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex != 0) { // Equivalent to contains(map, key)\n // To delete a key-value pair from the _entries array in O(1), we swap the entry to delete with the last one\n // in the array, and then remove the last entry (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = keyIndex - 1;\n uint256 lastIndex = map._entries.length - 1;\n\n // When the entry to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n MapEntry storage lastEntry = map._entries[lastIndex];\n\n // Move the last entry to the index where the entry to delete is\n map._entries[toDeleteIndex] = lastEntry;\n // Update the index for the moved entry\n map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved entry was stored\n map._entries.pop();\n\n // Delete the index for the deleted slot\n delete map._indexes[key];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function _contains(Map storage map, bytes32 key) private view returns (bool) {\n return map._indexes[key] != 0;\n }\n\n /**\n * @dev Returns the number of key-value pairs in the map. O(1).\n */\n function _length(Map storage map) private view returns (uint256) {\n return map._entries.length;\n }\n\n /**\n * @dev Returns the key-value pair stored at position `index` in the map. O(1).\n *\n * Note that there are no guarantees on the ordering of entries inside the\n * array, and it may change when more entries are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) {\n require(map._entries.length > index, \"EnumerableMap: index out of bounds\");\n\n MapEntry storage entry = map._entries[index];\n return (entry._key, entry._value);\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n */\n function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) {\n uint256 keyIndex = map._indexes[key];\n if (keyIndex == 0) return (false, 0); // Equivalent to contains(map, key)\n return (true, map._entries[keyIndex - 1]._value); // All indexes are 1-based\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function _get(Map storage map, bytes32 key) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, \"EnumerableMap: nonexistent key\"); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n /**\n * @dev Same as {_get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {_tryGet}.\n */\n function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n // UintToAddressMap\n\n struct UintToAddressMap {\n Map _inner;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) {\n return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {\n return _remove(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {\n return _contains(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns the number of elements in the map. O(1).\n */\n function length(UintToAddressMap storage map) internal view returns (uint256) {\n return _length(map._inner);\n }\n\n /**\n * @dev Returns the element stored at position `index` in the set. O(1).\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {\n (bytes32 key, bytes32 value) = _at(map._inner, index);\n return (uint256(key), address(uint160(uint256(value))));\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n *\n * _Available since v3.4._\n */\n function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) {\n (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key));\n return (success, address(uint160(uint256(value))));\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key)))));\n }\n\n /**\n * @dev Same as {get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryGet}.\n */\n function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage))));\n }\n}\n\n// File: @openzeppelin/contracts/utils/Strings.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n /**\n * @dev Converts a `uint256` to its ASCII `string` representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n uint256 index = digits - 1;\n temp = value;\n while (temp != 0) {\n buffer[index--] = bytes1(uint8(48 + temp % 10));\n temp /= 10;\n }\n return string(buffer);\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 Non-Fungible Token Standard basic implementation\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable {\n using SafeMath for uint256;\n using Address for address;\n using EnumerableSet for EnumerableSet.UintSet;\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n using Strings for uint256;\n\n // Equals to `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n // which can be also obtained as `IERC721Receiver(0).onERC721Received.selector`\n bytes4 private constant _ERC721_RECEIVED = 0x150b7a02;\n\n // Mapping from holder address to their (enumerable) set of owned tokens\n mapping (address => EnumerableSet.UintSet) private _holderTokens;\n\n // Enumerable mapping from token ids to their owners\n EnumerableMap.UintToAddressMap private _tokenOwners;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Optional mapping for token URIs\n mapping (uint256 => string) private _tokenURIs;\n\n // Base URI\n string private _baseURI;\n\n /*\n * bytes4(keccak256('balanceOf(address)')) == 0x70a08231\n * bytes4(keccak256('ownerOf(uint256)')) == 0x6352211e\n * bytes4(keccak256('approve(address,uint256)')) == 0x095ea7b3\n * bytes4(keccak256('getApproved(uint256)')) == 0x081812fc\n * bytes4(keccak256('setApprovalForAll(address,bool)')) == 0xa22cb465\n * bytes4(keccak256('isApprovedForAll(address,address)')) == 0xe985e9c5\n * bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde\n *\n * => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^\n * 0xa22cb465 ^ 0xe985e9c5 ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n /*\n * bytes4(keccak256('name()')) == 0x06fdde03\n * bytes4(keccak256('symbol()')) == 0x95d89b41\n * bytes4(keccak256('tokenURI(uint256)')) == 0xc87b56dd\n *\n * => 0x06fdde03 ^ 0x95d89b41 ^ 0xc87b56dd == 0x5b5e139f\n */\n bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f;\n\n /*\n * bytes4(keccak256('totalSupply()')) == 0x18160ddd\n * bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) == 0x2f745c59\n * bytes4(keccak256('tokenByIndex(uint256)')) == 0x4f6ccce7\n *\n * => 0x18160ddd ^ 0x2f745c59 ^ 0x4f6ccce7 == 0x780e9d63\n */\n bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor (string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n return _holderTokens[owner].length();\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n return _tokenOwners.get(tokenId, \"ERC721: owner query for nonexistent token\");\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).\n if (bytes(_tokenURI).length > 0) {\n return string(abi.encodePacked(base, _tokenURI));\n }\n // If there is a baseURI but no tokenURI, concatenate the tokenID to the baseURI.\n return string(abi.encodePacked(base, tokenId.toString()));\n }\n\n /**\n * @dev Returns the base URI set via {_setBaseURI}. This will be\n * automatically added as a prefix in {tokenURI} to each token's URI, or\n * to the token ID if no specific URI is set for that token ID.\n */\n function baseURI() public view virtual returns (string memory) {\n return _baseURI;\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\n return _holderTokens[owner].at(index);\n }\n\n /**\n * @dev See {IERC721Enumerable-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n // _tokenOwners are indexed by tokenIds, so .length() returns the number of tokenIds\n return _tokenOwners.length();\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenByIndex}.\n */\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\n (uint256 tokenId, ) = _tokenOwners.at(index);\n return tokenId;\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(_msgSender() == owner || ERC721.isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n require(operator != _msgSender(), \"ERC721: approve to caller\");\n\n _operatorApprovals[_msgSender()][operator] = approved;\n emit ApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n _safeTransfer(from, to, tokenId, _data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `_data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _tokenOwners.contains(tokenId);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || ERC721.isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n d*\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory _data) internal virtual {\n _mint(to, tokenId);\n require(_checkOnERC721Received(address(0), to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId);\n\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId); // internal owner\n\n _beforeTokenTransfer(owner, address(0), tokenId);\n\n // Clear approvals\n _approve(address(0), tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n\n _holderTokens[owner].remove(tokenId);\n\n _tokenOwners.remove(tokenId);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\"); // internal owner\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId);\n\n // Clear approvals from the previous owner\n _approve(address(0), tokenId);\n\n _holderTokens[from].remove(tokenId);\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = _tokenURI;\n }\n\n /**\n * @dev Internal function to set the base URI for all token IDs. It is\n * automatically added as a prefix to the value returned in {tokenURI},\n * or to the token ID if {tokenURI} is empty.\n */\n function _setBaseURI(string memory baseURI_) internal virtual {\n _baseURI = baseURI_;\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data)\n private returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n bytes memory returndata = to.functionCall(abi.encodeWithSelector(\n IERC721Receiver(to).onERC721Received.selector,\n _msgSender(),\n from,\n tokenId,\n _data\n ), \"ERC721: transfer to non ERC721Receiver implementer\");\n bytes4 retval = abi.decode(returndata, (bytes4));\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits an {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId); // internal owner\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n * transferred to `to`.\n * - When `from` is zero, `tokenId` will be minted for `to`.\n * - When `to` is zero, ``from``'s `tokenId` will be burned.\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual { }\n}\n", + "sourcePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "ast": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "id": 3499, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 509, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "84:31:1" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 530, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 517, + "nodeType": "Block", + "src": "719:34:1", + "statements": [ + { + "expression": { + "expression": { + "id": 514, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "736:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "736:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 513, + "id": 516, + "nodeType": "Return", + "src": "729:17:1" + } + ] + }, + "id": 518, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 510, + "nodeType": "ParameterList", + "parameters": [], + "src": "668:2:1" + }, + "returnParameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 518, + "src": "702:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "702:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "701:17:1" + }, + "scope": 530, + "src": "649:104:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 528, + "nodeType": "Block", + "src": "824:165:1", + "statements": [ + { + "expression": { + "id": 523, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "834:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 524, + "nodeType": "ExpressionStatement", + "src": "834:4:1" + }, + { + "expression": { + "expression": { + "id": 525, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "974:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "src": "974:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 522, + "id": 527, + "nodeType": "Return", + "src": "967:15:1" + } + ] + }, + "id": 529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 519, + "nodeType": "ParameterList", + "parameters": [], + "src": "776:2:1" + }, + "returnParameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "810:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 520, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "810:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "809:14:1" + }, + "scope": 530, + "src": "759:230:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "617:374:1" + }, + { + "id": 531, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1053:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 532, + "nodeType": "StructuredDocumentation", + "src": "1086:279:1", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 541, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 533, + "nodeType": "StructuredDocumentation", + "src": "1390:340:1", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 540, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1762:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 534, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1762:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1761:20:1" + }, + "returnParameters": { + "id": 539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1805:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1805:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1804:6:1" + }, + "scope": 541, + "src": "1735:76:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1366:447:1" + }, + { + "id": 542, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1873:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 544, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "1996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 545, + "nodeType": "InheritanceSpecifier", + "src": "1996:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "1907:67:1", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 655, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 546, + "nodeType": "StructuredDocumentation", + "src": "2010:88:1", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 554, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 548, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2118:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 550, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2140:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2140:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 552, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2160:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2117:67:1" + }, + "src": "2103:82:1" + }, + { + "anonymous": false, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "2191:94:1", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 563, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 557, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2305:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2305:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 559, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2328:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 561, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2354:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2354:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2304:74:1" + }, + "src": "2290:89:1" + }, + { + "anonymous": false, + "documentation": { + "id": 564, + "nodeType": "StructuredDocumentation", + "src": "2385:117:1", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 572, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 566, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2528:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2528:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2551:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2551:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 570, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2577:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 569, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2577:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2527:64:1" + }, + "src": "2507:85:1" + }, + { + "documentation": { + "id": 573, + "nodeType": "StructuredDocumentation", + "src": "2598:76:1", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2698:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 574, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2698:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2697:15:1" + }, + "returnParameters": { + "id": 579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2736:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2735:17:1" + }, + "scope": 655, + "src": "2679:74:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 581, + "nodeType": "StructuredDocumentation", + "src": "2759:131:1", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 588, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 583, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2912:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2912:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2911:17:1" + }, + "returnParameters": { + "id": 587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2952:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2951:15:1" + }, + "scope": 655, + "src": "2895:72:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 589, + "nodeType": "StructuredDocumentation", + "src": "2973:690:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 598, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 591, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3694:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3694:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3708:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3708:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3720:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3720:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3693:43:1" + }, + "returnParameters": { + "id": 597, + "nodeType": "ParameterList", + "parameters": [], + "src": "3745:0:1" + }, + "scope": 655, + "src": "3668:78:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 599, + "nodeType": "StructuredDocumentation", + "src": "3752:504:1", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 608, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 601, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4283:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4283:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 603, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4297:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 602, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4297:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4309:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4309:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4282:43:1" + }, + "returnParameters": { + "id": 607, + "nodeType": "ParameterList", + "parameters": [], + "src": "4334:0:1" + }, + "scope": 655, + "src": "4261:74:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 609, + "nodeType": "StructuredDocumentation", + "src": "4341:452:1", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 616, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 611, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4815:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4815:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4827:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4814:29:1" + }, + "returnParameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [], + "src": "4852:0:1" + }, + "scope": 655, + "src": "4798:55:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 617, + "nodeType": "StructuredDocumentation", + "src": "4859:139:1", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 619, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5024:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5024:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5023:17:1" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5064:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5064:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5063:18:1" + }, + "scope": 655, + "src": "5003:79:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 625, + "nodeType": "StructuredDocumentation", + "src": "5088:309:1", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 632, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5429:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5429:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5447:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 628, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5447:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5428:34:1" + }, + "returnParameters": { + "id": 631, + "nodeType": "ParameterList", + "parameters": [], + "src": "5471:0:1" + }, + "scope": 655, + "src": "5402:70:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 633, + "nodeType": "StructuredDocumentation", + "src": "5478:138:1", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 642, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5647:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5647:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5662:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5662:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5646:33:1" + }, + "returnParameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5703:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 639, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5703:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5702:6:1" + }, + "scope": 655, + "src": "5621:88:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 643, + "nodeType": "StructuredDocumentation", + "src": "5715:568:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 654, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6314:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6314:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6328:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6340:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6340:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6357:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 650, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6357:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6313:64:1" + }, + "returnParameters": { + "id": 653, + "nodeType": "ParameterList", + "parameters": [], + "src": "6386:0:1" + }, + "scope": 655, + "src": "6288:99:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1975:4414:1" + }, + { + "id": 656, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "6457:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 658, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "6654:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 659, + "nodeType": "InheritanceSpecifier", + "src": "6654:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 657, + "nodeType": "StructuredDocumentation", + "src": "6491:133:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 680, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 660, + "nodeType": "StructuredDocumentation", + "src": "6669:58:1", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 665, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [], + "src": "6745:2:1" + }, + "returnParameters": { + "id": 664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 663, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 665, + "src": "6771:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 662, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6771:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6770:15:1" + }, + "scope": 680, + "src": "6732:54:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 666, + "nodeType": "StructuredDocumentation", + "src": "6792:60:1", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 671, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 667, + "nodeType": "ParameterList", + "parameters": [], + "src": "6872:2:1" + }, + "returnParameters": { + "id": 670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 669, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "6898:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 668, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6897:15:1" + }, + "scope": 680, + "src": "6857:56:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 672, + "nodeType": "StructuredDocumentation", + "src": "6919:90:1", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 679, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7032:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7031:17:1" + }, + "returnParameters": { + "id": 678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7072:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 676, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7072:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7071:15:1" + }, + "scope": 680, + "src": "7014:73:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "6625:464:1" + }, + { + "id": 681, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "7161:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 683, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "7363:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 684, + "nodeType": "InheritanceSpecifier", + "src": "7363:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 682, + "nodeType": "StructuredDocumentation", + "src": "7195:136:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 709, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 685, + "nodeType": "StructuredDocumentation", + "src": "7378:82:1", + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "functionSelector": "18160ddd", + "id": 690, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 686, + "nodeType": "ParameterList", + "parameters": [], + "src": "7485:2:1" + }, + "returnParameters": { + "id": 689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 688, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "7511:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 687, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7511:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7510:9:1" + }, + "scope": 709, + "src": "7465:55:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "7526:171:1", + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "functionSelector": "2f745c59", + "id": 700, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7731:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7731:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7746:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7746:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7730:30:1" + }, + "returnParameters": { + "id": 699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 698, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7784:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7784:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7783:17:1" + }, + "scope": 709, + "src": "7702:99:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 701, + "nodeType": "StructuredDocumentation", + "src": "7807:164:1", + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "functionSelector": "4f6ccce7", + "id": 708, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 703, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "7998:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7998:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7997:15:1" + }, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "8036:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8036:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8035:9:1" + }, + "scope": 709, + "src": "7976:69:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "7332:715:1" + }, + { + "id": 710, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "8117:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 711, + "nodeType": "StructuredDocumentation", + "src": "8150:152:1", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 726, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 712, + "nodeType": "StructuredDocumentation", + "src": "8335:485:1", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 725, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8851:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8851:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8869:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8883:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8900:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 719, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8900:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8850:70:1" + }, + "returnParameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8939:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 722, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8939:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "8938:8:1" + }, + "scope": 726, + "src": "8825:122:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "8303:646:1" + }, + { + "id": 727, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9009:31:1" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 729, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "9243:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 730, + "nodeType": "InheritanceSpecifier", + "src": "9243:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "documentation": { + "id": 728, + "nodeType": "StructuredDocumentation", + "src": "9043:171:1", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "fullyImplemented": true, + "id": 781, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 733, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9340:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 731, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9340:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783031666663396137", + "id": 732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "9404:82:1", + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 738, + "mutability": "mutable", + "name": "_supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9491:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 737, + "keyType": { + "id": 735, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9499:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "9491:23:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 736, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9509:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 745, + "nodeType": "Block", + "src": "9565:193:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 742, + "name": "_INTERFACE_ID_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "9730:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 741, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "9711:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9711:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 744, + "nodeType": "ExpressionStatement", + "src": "9711:40:1" + } + ] + }, + "id": 746, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 739, + "nodeType": "ParameterList", + "parameters": [], + "src": "9562:2:1" + }, + "returnParameters": { + "id": 740, + "nodeType": "ParameterList", + "parameters": [], + "src": "9565:0:1" + }, + "scope": 781, + "src": "9550:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 540 + ], + "body": { + "id": 759, + "nodeType": "Block", + "src": "9999:57:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 755, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10016:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 757, + "indexExpression": { + "id": 756, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "10037:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10016:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 754, + "id": 758, + "nodeType": "Return", + "src": "10009:40:1" + } + ] + }, + "documentation": { + "id": 747, + "nodeType": "StructuredDocumentation", + "src": "9764:139:1", + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 760, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 751, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9975:8:1" + }, + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9935:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 748, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9935:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "9934:20:1" + }, + "returnParameters": { + "id": 754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 753, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9993:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9993:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9992:6:1" + }, + "scope": 781, + "src": "9908:148:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 779, + "nodeType": "Block", + "src": "10515:133:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 767, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10533:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10548:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "10533:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10560:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + }, + "value": "ERC165: invalid interface id" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "id": 766, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "10525:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10525:66:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 772, + "nodeType": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "expression": { + "id": 777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 773, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10601:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 775, + "indexExpression": { + "id": 774, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10622:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10637:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10601:40:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 778, + "nodeType": "ExpressionStatement", + "src": "10601:40:1" + } + ] + }, + "documentation": { + "id": 761, + "nodeType": "StructuredDocumentation", + "src": "10062:383:1", + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 780, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 763, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 780, + "src": "10478:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 762, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "10478:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "10477:20:1" + }, + "returnParameters": { + "id": 765, + "nodeType": "ParameterList", + "parameters": [], + "src": "10515:0:1" + }, + "scope": 781, + "src": "10450:198:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "9215:1435:1" + }, + { + "id": 782, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10703:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 783, + "nodeType": "StructuredDocumentation", + "src": "10736:563:1", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 1135, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 813, + "nodeType": "Block", + "src": "11535:98:1", + "statements": [ + { + "assignments": [ + 796 + ], + "declarations": [ + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 813, + "src": "11545:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 795, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 800, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 797, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11557:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "11561:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11557:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 801, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11576:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 802, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11580:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11576:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 808, + "nodeType": "IfStatement", + "src": "11572:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11591:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11598:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 806, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11590:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 794, + "id": 807, + "nodeType": "Return", + "src": "11583:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11618:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 810, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11624:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 811, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11617:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 794, + "id": 812, + "nodeType": "Return", + "src": "11610:16:1" + } + ] + }, + "documentation": { + "id": 784, + "nodeType": "StructuredDocumentation", + "src": "11323:131:1", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 814, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11475:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11475:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11486:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11486:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11474:22:1" + }, + "returnParameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 791, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11526:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 792, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11526:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11519:15:1" + }, + "scope": 1135, + "src": "11459:174:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 840, + "nodeType": "Block", + "src": "11855:75:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 826, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11869:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 827, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11873:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11869:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 833, + "nodeType": "IfStatement", + "src": "11865:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11884:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 831, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11883:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 825, + "id": 832, + "nodeType": "Return", + "src": "11876:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11911:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 835, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11917:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 836, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11921:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11917:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 838, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11910:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 825, + "id": 839, + "nodeType": "Return", + "src": "11903:20:1" + } + ] + }, + "documentation": { + "id": 815, + "nodeType": "StructuredDocumentation", + "src": "11639:135:1", + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 841, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 817, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11795:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11795:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 819, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11806:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11806:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11794:22:1" + }, + "returnParameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11840:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 821, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11840:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 824, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11846:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11846:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11839:15:1" + }, + "scope": 1135, + "src": "11779:151:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 881, + "nodeType": "Block", + "src": "12154:359:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 853, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12386:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12391:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12386:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 860, + "nodeType": "IfStatement", + "src": "12382:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12402:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12408:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 858, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12401:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 859, + "nodeType": "Return", + "src": "12394:16:1" + } + }, + { + "assignments": [ + 862 + ], + "declarations": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "12420:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12420:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 866, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12432:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 864, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12436:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12432:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 867, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12451:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 868, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12455:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 870, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12460:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 876, + "nodeType": "IfStatement", + "src": "12447:33:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12471:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12478:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 874, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12470:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 875, + "nodeType": "Return", + "src": "12463:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12498:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 878, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12504:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12497:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 852, + "id": 880, + "nodeType": "Return", + "src": "12490:16:1" + } + ] + }, + "documentation": { + "id": 842, + "nodeType": "StructuredDocumentation", + "src": "11936:137:1", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 844, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12094:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12094:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 846, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12105:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12093:22:1" + }, + "returnParameters": { + "id": 852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12139:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 848, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12139:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12145:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12145:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12138:15:1" + }, + "scope": 1135, + "src": "12078:435:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 908, + "nodeType": "Block", + "src": "12738:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 894, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12752:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12757:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12752:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 901, + "nodeType": "IfStatement", + "src": "12748:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12768:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12775:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 899, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12767:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 893, + "id": 900, + "nodeType": "Return", + "src": "12760:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12795:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 903, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "12801:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 904, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12805:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12801:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 906, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12794:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 893, + "id": 907, + "nodeType": "Return", + "src": "12787:20:1" + } + ] + }, + "documentation": { + "id": 883, + "nodeType": "StructuredDocumentation", + "src": "12519:138:1", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 909, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12678:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12678:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12689:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12689:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12677:22:1" + }, + "returnParameters": { + "id": 893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12723:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 889, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12723:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12729:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12729:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12722:15:1" + }, + "scope": 1135, + "src": "12662:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 935, + "nodeType": "Block", + "src": "13049:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 921, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13063:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13068:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13063:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 928, + "nodeType": "IfStatement", + "src": "13059:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13079:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13086:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 926, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13078:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 920, + "id": 927, + "nodeType": "Return", + "src": "13071:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13106:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 930, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "13112:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 931, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13116:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13112:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13105:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 920, + "id": 934, + "nodeType": "Return", + "src": "13098:20:1" + } + ] + }, + "documentation": { + "id": 910, + "nodeType": "StructuredDocumentation", + "src": "12820:148:1", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 912, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "12989:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12989:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 914, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13000:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 913, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13000:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12988:22:1" + }, + "returnParameters": { + "id": 920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 917, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13034:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 916, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13034:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 919, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13040:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13040:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13033:15:1" + }, + "scope": 1135, + "src": "12973:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 961, + "nodeType": "Block", + "src": "13427:108:1", + "statements": [ + { + "assignments": [ + 947 + ], + "declarations": [ + { + "constant": false, + "id": 947, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "13437:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13437:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 951, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13449:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 949, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 941, + "src": "13453:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13449:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 953, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13472:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 954, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13477:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13480:29:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 952, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13464:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 958, + "nodeType": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "expression": { + "id": 959, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13527:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 945, + "id": 960, + "nodeType": "Return", + "src": "13520:8:1" + } + ] + }, + "documentation": { + "id": 937, + "nodeType": "StructuredDocumentation", + "src": "13131:224:1", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13373:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13384:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13384:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13372:22:1" + }, + "returnParameters": { + "id": 945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13418:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13418:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13417:9:1" + }, + "scope": 1135, + "src": "13360:175:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 983, + "nodeType": "Block", + "src": "13873:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 973, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13896:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13891:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13883:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 979, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13949:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 980, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13953:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13949:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 971, + "id": 982, + "nodeType": "Return", + "src": "13942:12:1" + } + ] + }, + "documentation": { + "id": 963, + "nodeType": "StructuredDocumentation", + "src": "13541:260:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 984, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13819:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 964, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 967, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13830:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13830:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13818:22:1" + }, + "returnParameters": { + "id": 971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 970, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13864:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13864:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13863:9:1" + }, + "scope": 1135, + "src": "13806:155:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "14275:148:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 994, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14289:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14294:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14289:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "IfStatement", + "src": "14285:20:1", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14304:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 993, + "id": 998, + "nodeType": "Return", + "src": "14297:8:1" + } + }, + { + "assignments": [ + 1001 + ], + "declarations": [ + { + "constant": false, + "id": 1001, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "14315:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14315:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1005, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1002, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14327:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1003, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14331:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14327:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1007, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14350:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1008, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14354:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1010, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14359:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14362:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1006, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14342:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14342:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "expression": { + "id": 1015, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14415:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 993, + "id": 1016, + "nodeType": "Return", + "src": "14408:8:1" + } + ] + }, + "documentation": { + "id": 985, + "nodeType": "StructuredDocumentation", + "src": "13967:236:1", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14221:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 989, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14232:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 988, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14232:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14220:22:1" + }, + "returnParameters": { + "id": 993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 992, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14266:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14266:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14265:9:1" + }, + "scope": 1135, + "src": "14208:215:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1039, + "nodeType": "Block", + "src": "14954:83:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1029, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "14972:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14976:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14972:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14979:28:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14964:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14964:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1034, + "nodeType": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1035, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1021, + "src": "15025:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1036, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "15029:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15025:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1027, + "id": 1038, + "nodeType": "Return", + "src": "15018:12:1" + } + ] + }, + "documentation": { + "id": 1019, + "nodeType": "StructuredDocumentation", + "src": "14429:453:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1040, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1021, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14900:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14900:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1023, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14911:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14899:22:1" + }, + "returnParameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1026, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14945:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14945:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14944:9:1" + }, + "scope": 1135, + "src": "14887:150:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1061, + "nodeType": "Block", + "src": "15557:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1051, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15575:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15579:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15582:26:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 1050, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "15567:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15567:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1056, + "nodeType": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1057, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1043, + "src": "15626:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1058, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15630:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15626:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1049, + "id": 1060, + "nodeType": "Return", + "src": "15619:12:1" + } + ] + }, + "documentation": { + "id": 1041, + "nodeType": "StructuredDocumentation", + "src": "15043:442:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1062, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1043, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15503:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1045, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15514:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15502:22:1" + }, + "returnParameters": { + "id": 1049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1048, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15548:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15548:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15547:9:1" + }, + "scope": 1135, + "src": "15490:148:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1085, + "nodeType": "Block", + "src": "16197:68:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16215:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1076, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16220:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16215:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1078, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "16223:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1074, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "16207:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16207:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1080, + "nodeType": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16253:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1082, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16257:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16253:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1073, + "id": 1084, + "nodeType": "Return", + "src": "16246:12:1" + } + ] + }, + "documentation": { + "id": 1063, + "nodeType": "StructuredDocumentation", + "src": "15644:453:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1086, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16115:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16115:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16126:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16137:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1068, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16137:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16114:50:1" + }, + "returnParameters": { + "id": 1073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16188:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16188:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16187:9:1" + }, + "scope": 1135, + "src": "16102:163:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1109, + "nodeType": "Block", + "src": "17017:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1099, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17035:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17039:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17035:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1102, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1093, + "src": "17042:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17027:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17027:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1105, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "17072:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1106, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17076:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17072:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1097, + "id": 1108, + "nodeType": "Return", + "src": "17065:12:1" + } + ] + }, + "documentation": { + "id": 1087, + "nodeType": "StructuredDocumentation", + "src": "16271:646:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16935:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16935:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16946:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16946:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1093, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16957:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1092, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16957:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16934:50:1" + }, + "returnParameters": { + "id": 1097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1096, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "17008:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17008:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17007:9:1" + }, + "scope": 1135, + "src": "16922:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1133, + "nodeType": "Block", + "src": "17825:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1123, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17843:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17847:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17843:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1126, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "17850:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17835:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1128, + "nodeType": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1129, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "17880:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1130, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17880:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1121, + "id": 1132, + "nodeType": "Return", + "src": "17873:12:1" + } + ] + }, + "documentation": { + "id": 1111, + "nodeType": "StructuredDocumentation", + "src": "17090:635:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17743:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17743:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17754:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17754:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17765:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1116, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17765:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17742:50:1" + }, + "returnParameters": { + "id": 1121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17816:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17816:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17815:9:1" + }, + "scope": 1135, + "src": "17730:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "11300:6594:1" + }, + { + "id": 1136, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "17947:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1137, + "nodeType": "StructuredDocumentation", + "src": "17980:67:1", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 1430, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1153, + "nodeType": "Block", + "src": "18706:347:1", + "statements": [ + { + "assignments": [ + 1146 + ], + "declarations": [ + { + "constant": false, + "id": 1146, + "mutability": "mutable", + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 1153, + "src": "18903:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18903:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1147, + "nodeType": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "18990:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18992:28:1", + "value": { + "arguments": [ + { + "name": "account", + "nodeType": "YulIdentifier", + "src": "19012:7:1" + } + ], + "functionName": { + "name": "extcodesize", + "nodeType": "YulIdentifier", + "src": "19000:11:1" + }, + "nodeType": "YulFunctionCall", + "src": "19000:20:1" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "18992:4:1" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "id": 1148, + "nodeType": "InlineAssembly", + "src": "18981:41:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1149, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "19038:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19045:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19038:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1144, + "id": 1152, + "nodeType": "Return", + "src": "19031:15:1" + } + ] + }, + "documentation": { + "id": 1138, + "nodeType": "StructuredDocumentation", + "src": "18070:565:1", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1154, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1140, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18660:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18660:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18659:17:1" + }, + "returnParameters": { + "id": 1144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1143, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18700:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1142, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18700:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "18699:6:1" + }, + "scope": 1430, + "src": "18640:413:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1187, + "nodeType": "Block", + "src": "20041:320:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1165, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "20067:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20059:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1163, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20059:7:1", + "typeDescriptions": {} + } + }, + "id": 1166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20059:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "20059:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1168, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20084:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20059:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20092:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 1162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20051:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1172, + "nodeType": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "assignments": [ + 1174, + null + ], + "declarations": [ + { + "constant": false, + "id": 1174, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1187, + "src": "20213:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1173, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20213:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1181, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20263:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 1175, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1157, + "src": "20231:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "20231:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1177, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20254:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "20231:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20231:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1183, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "20284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20293:60:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 1182, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20276:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20276:78:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1186, + "nodeType": "ExpressionStatement", + "src": "20276:78:1" + } + ] + }, + "documentation": { + "id": 1155, + "nodeType": "StructuredDocumentation", + "src": "19059:906:1", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1188, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1157, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "19989:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19989:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1159, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "20016:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19988:43:1" + }, + "returnParameters": { + "id": 1161, + "nodeType": "ParameterList", + "parameters": [], + "src": "20041:0:1" + }, + "scope": 1430, + "src": "19970:391:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1204, + "nodeType": "Block", + "src": "21191:82:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1199, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "21219:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1200, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "21227:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21233:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 1198, + "name": "functionCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "src": "21206:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21206:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1197, + "id": 1203, + "nodeType": "Return", + "src": "21199:67:1" + } + ] + }, + "documentation": { + "id": 1189, + "nodeType": "StructuredDocumentation", + "src": "20367:730:1", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1205, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21124:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21124:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21140:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1192, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21140:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21123:35:1" + }, + "returnParameters": { + "id": 1197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1196, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21177:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1195, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21176:14:1" + }, + "scope": 1430, + "src": "21102:171:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1224, + "nodeType": "Block", + "src": "21612:76:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1218, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "21651:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1219, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "21659:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21665:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 1221, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "21668:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1217, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "21629:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21629:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1216, + "id": 1223, + "nodeType": "Return", + "src": "21622:59:1" + } + ] + }, + "documentation": { + "id": 1206, + "nodeType": "StructuredDocumentation", + "src": "21279:211:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1208, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21517:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21517:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21533:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1209, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21533:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1212, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21552:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1211, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "21552:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "21516:63:1" + }, + "returnParameters": { + "id": 1216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1215, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21598:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1214, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21598:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21597:14:1" + }, + "scope": 1430, + "src": "21495:193:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1244, + "nodeType": "Block", + "src": "22163:111:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1238, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "22202:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1239, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "22210:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1240, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1232, + "src": "22216:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22223:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 1237, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "22180:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22180:87:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1236, + "id": 1243, + "nodeType": "Return", + "src": "22173:94:1" + } + ] + }, + "documentation": { + "id": 1226, + "nodeType": "StructuredDocumentation", + "src": "21694:351:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1245, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1228, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22081:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22081:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1230, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22097:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1229, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22097:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1232, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22116:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "22080:50:1" + }, + "returnParameters": { + "id": 1236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1235, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22149:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1234, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22149:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22148:14:1" + }, + "scope": 1430, + "src": "22050:224:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1294, + "nodeType": "Block", + "src": "22663:382:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1262, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "22689:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22681:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22681:7:1", + "typeDescriptions": {} + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22681:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "22681:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1265, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22706:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22681:30:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 1267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22713:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 1259, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22673:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22673:81:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1269, + "nodeType": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1272, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22783:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1271, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "22772:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22772:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22792:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 1270, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22764:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22764:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1276, + "nodeType": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "assignments": [ + 1278, + 1280 + ], + "declarations": [ + { + "constant": false, + "id": 1278, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22895:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1277, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22895:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1280, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22909:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1279, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22909:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1287, + "initialValue": { + "arguments": [ + { + "id": 1285, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1250, + "src": "22964:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1281, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22936:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "22936:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1283, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22956:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "22936:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22936:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1289, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "23004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1290, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1280, + "src": "23013:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1291, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "23025:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1288, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "22986:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22986:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1258, + "id": 1293, + "nodeType": "Return", + "src": "22979:59:1" + } + ] + }, + "documentation": { + "id": 1246, + "nodeType": "StructuredDocumentation", + "src": "22280:237:1", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1295, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1248, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22553:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22553:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1250, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22569:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1249, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22569:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1252, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22588:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22588:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1254, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22603:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1253, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "22603:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "22552:78:1" + }, + "returnParameters": { + "id": 1258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1257, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22649:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1256, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22649:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22648:14:1" + }, + "scope": 1430, + "src": "22522:523:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1311, + "nodeType": "Block", + "src": "23322:97:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1306, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1298, + "src": "23358:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1307, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "23366:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23372:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 1305, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "src": "23339:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23339:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1304, + "id": 1310, + "nodeType": "Return", + "src": "23332:80:1" + } + ] + }, + "documentation": { + "id": 1296, + "nodeType": "StructuredDocumentation", + "src": "23051:166:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1298, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23250:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23250:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23266:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1299, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23266:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23249:35:1" + }, + "returnParameters": { + "id": 1304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1303, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23308:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23308:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23307:14:1" + }, + "scope": 1430, + "src": "23222:197:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1346, + "nodeType": "Block", + "src": "23731:288:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1326, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1325, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "23749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23749:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23769:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + }, + "value": "Address: static call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "id": 1324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "23741:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23741:67:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1330, + "nodeType": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "assignments": [ + 1332, + 1334 + ], + "declarations": [ + { + "constant": false, + "id": 1332, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23879:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1331, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23879:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1334, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23893:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1333, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23893:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1339, + "initialValue": { + "arguments": [ + { + "id": 1337, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "23938:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1335, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23920:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "23920:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23920:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1341, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "23978:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1342, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1334, + "src": "23987:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1343, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "23999:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1340, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "23960:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23960:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1323, + "id": 1345, + "nodeType": "Return", + "src": "23953:59:1" + } + ] + }, + "documentation": { + "id": 1313, + "nodeType": "StructuredDocumentation", + "src": "23425:173:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1315, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23631:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23631:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1317, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23647:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1316, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23647:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1319, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23666:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1318, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "23666:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "23630:63:1" + }, + "returnParameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1322, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23717:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1321, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23717:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23716:14:1" + }, + "scope": 1430, + "src": "23603:416:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1363, + "nodeType": "Block", + "src": "24295:101:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1358, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "24333:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1359, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "24341:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24347:41:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 1357, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "src": "24312:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24312:77:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1356, + "id": 1362, + "nodeType": "Return", + "src": "24305:84:1" + } + ] + }, + "documentation": { + "id": 1348, + "nodeType": "StructuredDocumentation", + "src": "24025:168:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1364, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1350, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24228:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24244:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1351, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24227:35:1" + }, + "returnParameters": { + "id": 1356, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1355, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24281:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1354, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24281:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24280:14:1" + }, + "scope": 1430, + "src": "24198:198:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1398, + "nodeType": "Block", + "src": "24707:292:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1378, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24736:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1377, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "24725:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24725:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24745:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + }, + "value": "Address: delegate call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "id": 1376, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "24717:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24717:69:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1382, + "nodeType": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "assignments": [ + 1384, + 1386 + ], + "declarations": [ + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24857:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1383, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "24857:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24871:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1385, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24871:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1391, + "initialValue": { + "arguments": [ + { + "id": 1389, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1369, + "src": "24918:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1387, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "24898:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24898:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1393, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1384, + "src": "24958:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1394, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1386, + "src": "24967:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1395, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1371, + "src": "24979:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1392, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "24940:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24940:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1375, + "id": 1397, + "nodeType": "Return", + "src": "24933:59:1" + } + ] + }, + "documentation": { + "id": 1365, + "nodeType": "StructuredDocumentation", + "src": "24402:175:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1399, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1367, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24612:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24612:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1369, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24628:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1368, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24628:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1371, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24647:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1370, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "24647:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "24611:63:1" + }, + "returnParameters": { + "id": 1375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1374, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24693:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1373, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24693:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24692:14:1" + }, + "scope": 1430, + "src": "24582:417:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1428, + "nodeType": "Block", + "src": "25134:596:1", + "statements": [ + { + "condition": { + "id": 1410, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "25148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1426, + "nodeType": "Block", + "src": "25205:519:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1414, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25289:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "25289:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25309:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25289:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1424, + "nodeType": "Block", + "src": "25661:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1421, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1405, + "src": "25686:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1420, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "25679:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25679:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1423, + "nodeType": "ExpressionStatement", + "src": "25679:20:1" + } + ] + }, + "id": 1425, + "nodeType": "IfStatement", + "src": "25285:429:1", + "trueBody": { + "id": 1419, + "nodeType": "Block", + "src": "25312:343:1", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "25496:145:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "25518:40:1", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25547:10:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "25541:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "25541:17:1" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "25522:15:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25590:2:1", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25594:10:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25586:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "25586:19:1" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "25607:15:1" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "25579:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "25579:44:1" + }, + "nodeType": "YulExpressionStatement", + "src": "25579:44:1" + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "id": 1418, + "nodeType": "InlineAssembly", + "src": "25487:154:1" + } + ] + } + } + ] + }, + "id": 1427, + "nodeType": "IfStatement", + "src": "25144:580:1", + "trueBody": { + "id": 1413, + "nodeType": "Block", + "src": "25157:42:1", + "statements": [ + { + "expression": { + "id": 1411, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25178:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1409, + "id": 1412, + "nodeType": "Return", + "src": "25171:17:1" + } + ] + } + } + ] + }, + "id": 1429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1401, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25032:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1400, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "25032:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1403, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25046:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1402, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25046:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1405, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25071:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1404, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "25071:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "25031:67:1" + }, + "returnParameters": { + "id": 1409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1408, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25120:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1407, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25120:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "25119:14:1" + }, + "scope": 1430, + "src": "25005:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3499, + "src": "18048:7684:1" + }, + { + "id": 1431, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "25791:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1432, + "nodeType": "StructuredDocumentation", + "src": "25824:686:1", + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "fullyImplemented": true, + "id": 1921, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableSet.Set", + "id": 1440, + "members": [ + { + "constant": false, + "id": 1435, + "mutability": "mutable", + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27033:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1433, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27033:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1434, + "nodeType": "ArrayTypeName", + "src": "27033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1439, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27184:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1438, + "keyType": { + "id": 1436, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "27184:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "26979:249:1", + "visibility": "public" + }, + { + "body": { + "id": 1480, + "nodeType": "Block", + "src": "27467:335:1", + "statements": [ + { + "condition": { + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "27481:22:1", + "subExpression": { + "arguments": [ + { + "id": 1451, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27492:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + { + "id": 1452, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27497:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1450, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "27482:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27482:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1478, + "nodeType": "Block", + "src": "27759:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27780:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1449, + "id": 1477, + "nodeType": "Return", + "src": "27773:12:1" + } + ] + }, + "id": 1479, + "nodeType": "IfStatement", + "src": "27477:319:1", + "trueBody": { + "id": 1475, + "nodeType": "Block", + "src": "27505:248:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1460, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27536:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "expression": { + "id": 1455, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1458, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27519:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "27519:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 1461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27519:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1462, + "nodeType": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "expression": { + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1463, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27677:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "27677:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1467, + "indexExpression": { + "id": 1465, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27690:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "27677:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1468, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27699:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1469, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27699:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "27699:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27677:40:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1472, + "nodeType": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27738:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1449, + "id": 1474, + "nodeType": "Return", + "src": "27731:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1441, + "nodeType": "StructuredDocumentation", + "src": "27234:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1481, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27412:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1442, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27412:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1445, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27429:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1444, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27411:32:1" + }, + "returnParameters": { + "id": 1449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1447, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "27461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "27460:6:1" + }, + "scope": 1921, + "src": "27398:404:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1560, + "nodeType": "Block", + "src": "28042:1440:1", + "statements": [ + { + "assignments": [ + 1492 + ], + "declarations": [ + { + "constant": false, + "id": 1492, + "mutability": "mutable", + "name": "valueIndex", + "nodeType": "VariableDeclaration", + "scope": 1560, + "src": "28152:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28152:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1497, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1493, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28173:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1494, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "28173:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1496, + "indexExpression": { + "id": 1495, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "28186:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28173:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1498, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28207:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28221:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28207:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1558, + "nodeType": "Block", + "src": "29439:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29460:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1490, + "id": 1557, + "nodeType": "Return", + "src": "29453:12:1" + } + ] + }, + "id": 1559, + "nodeType": "IfStatement", + "src": "28203:1273:1", + "trueBody": { + "id": 1555, + "nodeType": "Block", + "src": "28224:1209:1", + "statements": [ + { + "assignments": [ + 1502 + ], + "declarations": [ + { + "constant": false, + "id": 1502, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28564:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28564:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1506, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1503, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28588:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28588:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "assignments": [ + 1508 + ], + "declarations": [ + { + "constant": false, + "id": 1508, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28616:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28616:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1514, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1509, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28636:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28636:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "28636:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28657:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28636:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "assignments": [ + 1516 + ], + "declarations": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "lastvalue", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28898:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1515, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28898:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1521, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1517, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28918:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1520, + "indexExpression": { + "id": 1519, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "28930:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28918:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "expression": { + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1522, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29032:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1525, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29032:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1526, + "indexExpression": { + "id": 1524, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29044:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29032:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1527, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29061:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "29032:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1529, + "nodeType": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "expression": { + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1530, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29136:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1533, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29136:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1534, + "indexExpression": { + "id": 1532, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29149:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29136:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1535, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29162:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29178:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "29162:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29136:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1539, + "nodeType": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 1540, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29285:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "29285:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29285:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1546, + "nodeType": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "expression": { + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "29370:26:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 1547, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29377:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29377:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1550, + "indexExpression": { + "id": 1549, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "29390:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29377:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1552, + "nodeType": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29418:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1490, + "id": 1554, + "nodeType": "Return", + "src": "29411:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1482, + "nodeType": "StructuredDocumentation", + "src": "27808:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1561, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "27987:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1483, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27987:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1486, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28004:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1485, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27986:32:1" + }, + "returnParameters": { + "id": 1490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28036:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1488, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "28036:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "28035:6:1" + }, + "scope": 1921, + "src": "27970:1512:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1578, + "nodeType": "Block", + "src": "29642:48:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 1571, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "29659:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29659:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1574, + "indexExpression": { + "id": 1573, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "29672:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29659:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29682:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "29659:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1570, + "id": 1577, + "nodeType": "Return", + "src": "29652:31:1" + } + ] + }, + "documentation": { + "id": 1562, + "nodeType": "StructuredDocumentation", + "src": "29488:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1579, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1564, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29582:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1563, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29582:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29599:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1565, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "29599:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "29581:32:1" + }, + "returnParameters": { + "id": 1570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29636:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "29636:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "29635:6:1" + }, + "scope": 1921, + "src": "29563:127:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1591, + "nodeType": "Block", + "src": "29836:42:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 1587, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1582, + "src": "29853:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1588, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29853:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "29853:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1586, + "id": 1590, + "nodeType": "Return", + "src": "29846:25:1" + } + ] + }, + "documentation": { + "id": 1580, + "nodeType": "StructuredDocumentation", + "src": "29696:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1582, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29788:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1581, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29788:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "src": "29787:17:1" + }, + "returnParameters": { + "id": 1586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1585, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29827:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29826:9:1" + }, + "scope": 1921, + "src": "29771:107:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1616, + "nodeType": "Block", + "src": "30286:125:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1603, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30304:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30304:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "30304:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1606, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30325:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30304:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30332:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + }, + "value": "EnumerableSet: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "id": 1602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "30296:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30296:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1610, + "nodeType": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 1611, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30386:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30386:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1614, + "indexExpression": { + "id": 1613, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30398:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30386:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1601, + "id": 1615, + "nodeType": "Return", + "src": "30379:25:1" + } + ] + }, + "documentation": { + "id": 1593, + "nodeType": "StructuredDocumentation", + "src": "29883:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1617, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1595, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30223:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1594, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30223:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30240:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30240:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30222:32:1" + }, + "returnParameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1600, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30277:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1599, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30276:9:1" + }, + "scope": 1921, + "src": "30210:201:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableSet.Bytes32Set", + "id": 1620, + "members": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "30464:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1618, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30464:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "30436:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1636, + "nodeType": "Block", + "src": "30727:47:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1631, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "30749:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "30749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1625, + "src": "30761:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1630, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "30744:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30744:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1629, + "id": 1635, + "nodeType": "Return", + "src": "30737:30:1" + } + ] + }, + "documentation": { + "id": 1621, + "nodeType": "StructuredDocumentation", + "src": "30487:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30664:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1622, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30664:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30688:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1624, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30688:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30663:39:1" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30721:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "30721:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "30720:6:1" + }, + "scope": 1921, + "src": "30651:123:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1653, + "nodeType": "Block", + "src": "31021:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1648, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "31046:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31046:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1650, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "31058:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1647, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "31038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31038:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1646, + "id": 1652, + "nodeType": "Return", + "src": "31031:33:1" + } + ] + }, + "documentation": { + "id": 1638, + "nodeType": "StructuredDocumentation", + "src": "30780:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1654, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30958:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1639, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30958:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30982:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1641, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30982:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30957:39:1" + }, + "returnParameters": { + "id": 1646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1645, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "31015:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31015:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31014:6:1" + }, + "scope": 1921, + "src": "30942:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1670, + "nodeType": "Block", + "src": "31238:52:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1665, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1657, + "src": "31265:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31265:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1667, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1659, + "src": "31277:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1664, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "31255:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31255:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1663, + "id": 1669, + "nodeType": "Return", + "src": "31248:35:1" + } + ] + }, + "documentation": { + "id": 1655, + "nodeType": "StructuredDocumentation", + "src": "31077:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1671, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1657, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31170:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1656, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31170:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31194:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1658, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31194:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31169:39:1" + }, + "returnParameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1662, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31232:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1661, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31232:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31231:6:1" + }, + "scope": 1921, + "src": "31152:138:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "31443:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1680, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1674, + "src": "31468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1681, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31468:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1679, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "31460:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31460:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1678, + "id": 1683, + "nodeType": "Return", + "src": "31453:26:1" + } + ] + }, + "documentation": { + "id": 1672, + "nodeType": "StructuredDocumentation", + "src": "31296:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1685, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1674, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31387:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1673, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + } + ], + "src": "31386:24:1" + }, + "returnParameters": { + "id": 1678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31434:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31434:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31433:9:1" + }, + "scope": 1921, + "src": "31371:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1701, + "nodeType": "Block", + "src": "31901:46:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1696, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1688, + "src": "31922:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1697, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31922:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1698, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "31934:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1695, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "31918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31918:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1694, + "id": 1700, + "nodeType": "Return", + "src": "31911:29:1" + } + ] + }, + "documentation": { + "id": 1686, + "nodeType": "StructuredDocumentation", + "src": "31491:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1688, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31830:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1687, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31830:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1690, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31854:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31854:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31829:39:1" + }, + "returnParameters": { + "id": 1694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31892:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1692, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31892:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31891:9:1" + }, + "scope": 1921, + "src": "31818:129:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.AddressSet", + "id": 1705, + "members": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1705, + "src": "32000:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1703, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "32000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "31972:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1730, + "nodeType": "Block", + "src": "32263:74:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1716, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1708, + "src": "32285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32285:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "32321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32313:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1722, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32313:7:1", + "typeDescriptions": {} + } + }, + "id": 1725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32313:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32305:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1720, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32305:7:1", + "typeDescriptions": {} + } + }, + "id": 1726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32305:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1718, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32297:7:1", + "typeDescriptions": {} + } + }, + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32297:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1715, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "32280:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32280:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1714, + "id": 1729, + "nodeType": "Return", + "src": "32273:57:1" + } + ] + }, + "documentation": { + "id": 1706, + "nodeType": "StructuredDocumentation", + "src": "32023:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1731, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1708, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32200:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1707, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32200:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32224:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32224:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32199:39:1" + }, + "returnParameters": { + "id": 1714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1713, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32257:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1712, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32257:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32256:6:1" + }, + "scope": 1921, + "src": "32187:150:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1756, + "nodeType": "Block", + "src": "32584:77:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1742, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "32609:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1743, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32609:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1750, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "32645:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32637:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1748, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32637:7:1", + "typeDescriptions": {} + } + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32637:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32629:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32629:7:1", + "typeDescriptions": {} + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32629:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32621:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1744, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32621:7:1", + "typeDescriptions": {} + } + }, + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32621:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1741, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "32601:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32601:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1740, + "id": 1755, + "nodeType": "Return", + "src": "32594:60:1" + } + ] + }, + "documentation": { + "id": 1732, + "nodeType": "StructuredDocumentation", + "src": "32343:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1757, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1734, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32521:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1733, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32521:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1736, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32545:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32545:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32520:39:1" + }, + "returnParameters": { + "id": 1740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1739, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32578:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1738, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32578:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32577:6:1" + }, + "scope": 1921, + "src": "32505:156:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1782, + "nodeType": "Block", + "src": "32828:79:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1768, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1760, + "src": "32855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1776, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1762, + "src": "32891:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1774, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32883:7:1", + "typeDescriptions": {} + } + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32883:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32875:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32875:7:1", + "typeDescriptions": {} + } + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32875:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1770, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32867:7:1", + "typeDescriptions": {} + } + }, + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32867:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1767, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "32845:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32845:55:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1766, + "id": 1781, + "nodeType": "Return", + "src": "32838:62:1" + } + ] + }, + "documentation": { + "id": 1758, + "nodeType": "StructuredDocumentation", + "src": "32667:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1783, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1760, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32760:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1759, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32760:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1762, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32784:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32784:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32759:39:1" + }, + "returnParameters": { + "id": 1766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1765, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32822:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1764, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32822:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32821:6:1" + }, + "scope": 1921, + "src": "32742:165:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1796, + "nodeType": "Block", + "src": "33060:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1792, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1786, + "src": "33085:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33085:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1791, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "33077:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33077:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1790, + "id": 1795, + "nodeType": "Return", + "src": "33070:26:1" + } + ] + }, + "documentation": { + "id": 1784, + "nodeType": "StructuredDocumentation", + "src": "32913:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1797, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1786, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33004:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1785, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33004:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + } + ], + "src": "33003:24:1" + }, + "returnParameters": { + "id": 1790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1789, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33050:9:1" + }, + "scope": 1921, + "src": "32988:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1822, + "nodeType": "Block", + "src": "33518:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1814, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "33563:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33563:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1816, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "33575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1813, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "33559:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33559:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33551:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33551:7:1", + "typeDescriptions": {} + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33551:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33543:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1809, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "33543:7:1", + "typeDescriptions": {} + } + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33543:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33535:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33535:7:1", + "typeDescriptions": {} + } + }, + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33535:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 1806, + "id": 1821, + "nodeType": "Return", + "src": "33528:56:1" + } + ] + }, + "documentation": { + "id": 1798, + "nodeType": "StructuredDocumentation", + "src": "33108:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1823, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1800, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33447:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1799, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33447:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1802, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33471:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33471:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33446:39:1" + }, + "returnParameters": { + "id": 1806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33509:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33509:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "33508:9:1" + }, + "scope": 1921, + "src": "33435:156:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.UintSet", + "id": 1826, + "members": [ + { + "constant": false, + "id": 1825, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1826, + "src": "33639:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1824, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "33639:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "UintSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "33614:42:1", + "visibility": "public" + }, + { + "body": { + "id": 1845, + "nodeType": "Block", + "src": "33899:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1837, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1829, + "src": "33921:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "33921:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1841, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "33941:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33933:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1839, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "33933:7:1", + "typeDescriptions": {} + } + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33933:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1836, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "33916:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33916:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1835, + "id": 1844, + "nodeType": "Return", + "src": "33909:39:1" + } + ] + }, + "documentation": { + "id": 1827, + "nodeType": "StructuredDocumentation", + "src": "33662:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1846, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1829, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33839:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1828, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "33839:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1831, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33860:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33860:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33838:36:1" + }, + "returnParameters": { + "id": 1835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1834, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33893:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1833, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "33893:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "33892:6:1" + }, + "scope": 1921, + "src": "33826:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1865, + "nodeType": "Block", + "src": "34199:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1857, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1849, + "src": "34224:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34224:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1861, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "34244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34236:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1859, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34236:7:1", + "typeDescriptions": {} + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34236:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1856, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "34216:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34216:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1855, + "id": 1864, + "nodeType": "Return", + "src": "34209:42:1" + } + ] + }, + "documentation": { + "id": 1847, + "nodeType": "StructuredDocumentation", + "src": "33961:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1849, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34139:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1848, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34139:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1851, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34160:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34138:36:1" + }, + "returnParameters": { + "id": 1855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1854, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34193:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1853, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34193:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34192:6:1" + }, + "scope": 1921, + "src": "34123:135:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1885, + "nodeType": "Block", + "src": "34422:61:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1877, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1869, + "src": "34449:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34449:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1881, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "34469:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1879, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34461:7:1", + "typeDescriptions": {} + } + }, + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34461:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1876, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "34439:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34439:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1875, + "id": 1884, + "nodeType": "Return", + "src": "34432:44:1" + } + ] + }, + "documentation": { + "id": 1867, + "nodeType": "StructuredDocumentation", + "src": "34264:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1886, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1869, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34357:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1868, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34378:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34378:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34356:36:1" + }, + "returnParameters": { + "id": 1875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1874, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34416:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1873, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34416:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34415:6:1" + }, + "scope": 1921, + "src": "34339:144:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1899, + "nodeType": "Block", + "src": "34633:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1895, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1889, + "src": "34658:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34658:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1894, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "34650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34650:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1893, + "id": 1898, + "nodeType": "Return", + "src": "34643:26:1" + } + ] + }, + "documentation": { + "id": 1887, + "nodeType": "StructuredDocumentation", + "src": "34489:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1900, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1889, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34580:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1888, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + } + ], + "src": "34579:21:1" + }, + "returnParameters": { + "id": 1893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34624:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34623:9:1" + }, + "scope": 1921, + "src": "34564:112:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1919, + "nodeType": "Block", + "src": "35088:55:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1913, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "35117:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "35117:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1915, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1905, + "src": "35129:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1912, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "35113:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35113:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "35105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35105:7:1", + "typeDescriptions": {} + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35105:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1909, + "id": 1918, + "nodeType": "Return", + "src": "35098:38:1" + } + ] + }, + "documentation": { + "id": 1901, + "nodeType": "StructuredDocumentation", + "src": "34681:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1920, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35020:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1902, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "35020:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1905, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35041:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35041:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35019:36:1" + }, + "returnParameters": { + "id": 1909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1908, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35079:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1907, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35079:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35078:9:1" + }, + "scope": 1921, + "src": "35008:135:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "26511:8634:1" + }, + { + "id": 1922, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "35204:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1923, + "nodeType": "StructuredDocumentation", + "src": "35237:705:1", + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "fullyImplemented": true, + "id": 2480, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableMap.MapEntry", + "id": 1928, + "members": [ + { + "constant": false, + "id": 1925, + "mutability": "mutable", + "name": "_key", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36455:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1924, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1927, + "mutability": "mutable", + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36477:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1926, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36477:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "MapEntry", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36429:69:1", + "visibility": "public" + }, + { + "canonicalName": "EnumerableMap.Map", + "id": 1936, + "members": [ + { + "constant": false, + "id": 1931, + "mutability": "mutable", + "name": "_entries", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36567:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + }, + "typeName": { + "baseType": { + "id": 1929, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "36567:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "id": 1930, + "nodeType": "ArrayTypeName", + "src": "36567:10:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1935, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36736:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1934, + "keyType": { + "id": 1932, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "36736:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "36756:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Map", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36504:276:1", + "visibility": "public" + }, + { + "body": { + "id": 1997, + "nodeType": "Block", + "src": "37089:596:1", + "statements": [ + { + "assignments": [ + 1949 + ], + "declarations": [ + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 1997, + "src": "37197:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "37197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1954, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1950, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1953, + "indexExpression": { + "id": 1952, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37229:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37216:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1955, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37248:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37260:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "37248:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1995, + "nodeType": "Block", + "src": "37587:92:1", + "statements": [ + { + "expression": { + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 1982, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37601:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1987, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37601:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1988, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1984, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37614:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37625:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "37614:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37601:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 1989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "37601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1990, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37637:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "37601:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1992, + "nodeType": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37663:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1947, + "id": 1994, + "nodeType": "Return", + "src": "37656:12:1" + } + ] + }, + "id": 1996, + "nodeType": "IfStatement", + "src": "37244:435:1", + "trueBody": { + "id": 1981, + "nodeType": "Block", + "src": "37263:318:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1964, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37349:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1965, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37362:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1963, + "name": "MapEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1928, + "src": "37332:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_MapEntry_$1928_storage_ptr_$", + "typeString": "type(struct EnumerableMap.MapEntry storage pointer)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "nodeType": "FunctionCall", + "src": "37332:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "expression": { + "expression": { + "id": 1958, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37314:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37314:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "37314:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$1928_storage_$returns$__$", + "typeString": "function (struct EnumerableMap.MapEntry storage ref)" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37314:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1968, + "nodeType": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "expression": { + "id": 1977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1969, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37506:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37506:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1973, + "indexExpression": { + "id": 1971, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "37506:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1974, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37526:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37526:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "37526:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37506:39:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1978, + "nodeType": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37566:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1947, + "id": 1980, + "nodeType": "Return", + "src": "37559:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1937, + "nodeType": "StructuredDocumentation", + "src": "36786:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1998, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37021:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 1938, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37021:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37038:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1940, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1943, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1942, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37020:45:1" + }, + "returnParameters": { + "id": 1947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1946, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37083:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1945, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37083:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37082:6:1" + }, + "scope": 2480, + "src": "37007:678:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2078, + "nodeType": "Block", + "src": "37923:1447:1", + "statements": [ + { + "assignments": [ + 2009 + ], + "declarations": [ + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2078, + "src": "38031:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2014, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2010, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38050:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2011, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "38050:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2013, + "indexExpression": { + "id": 2012, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "38063:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38050:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2015, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38082:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38094:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "38082:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2076, + "nodeType": "Block", + "src": "39327:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39348:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2007, + "id": 2075, + "nodeType": "Return", + "src": "39341:12:1" + } + ] + }, + "id": 2077, + "nodeType": "IfStatement", + "src": "38078:1286:1", + "trueBody": { + "id": 2073, + "nodeType": "Block", + "src": "38097:1224:1", + "statements": [ + { + "assignments": [ + 2019 + ], + "declarations": [ + { + "constant": false, + "id": 2019, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38438:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2023, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2020, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38462:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38473:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38462:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "assignments": [ + 2025 + ], + "declarations": [ + { + "constant": false, + "id": 2025, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38488:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38488:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2031, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2026, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38508:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38508:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "38508:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38530:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38508:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "assignments": [ + 2033 + ], + "declarations": [ + { + "constant": false, + "id": 2033, + "mutability": "mutable", + "name": "lastEntry", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38771:26:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2032, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "38771:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2038, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2034, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38800:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38800:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2037, + "indexExpression": { + "id": 2036, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2025, + "src": "38813:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38800:23:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "expression": { + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2039, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38915:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38915:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2043, + "indexExpression": { + "id": 2041, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "38928:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "38915:27:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2044, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "38945:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "src": "38915:39:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2046, + "nodeType": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2047, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2051, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39020:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2052, + "indexExpression": { + "expression": { + "id": 2049, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "39033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "39033:14:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39020:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2053, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "39051:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39067:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "39051:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39020:48:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 2058, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39174:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2061, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39174:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "39174:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "39174:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2064, + "nodeType": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "expression": { + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "39260:24:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 2065, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39267:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2066, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39267:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2068, + "indexExpression": { + "id": 2067, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "39280:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39267:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2070, + "nodeType": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39306:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2007, + "id": 2072, + "nodeType": "Return", + "src": "39299:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1999, + "nodeType": "StructuredDocumentation", + "src": "37691:157:1", + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2079, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2001, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37870:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2000, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37870:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37887:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2002, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37887:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37869:30:1" + }, + "returnParameters": { + "id": 2007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2006, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37917:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2005, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37917:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37916:6:1" + }, + "scope": 2480, + "src": "37853:1517:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2096, + "nodeType": "Block", + "src": "39526:46:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 2089, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2082, + "src": "39543:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2090, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39543:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2092, + "indexExpression": { + "id": 2091, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2084, + "src": "39556:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "39543:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39564:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "39543:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2088, + "id": 2095, + "nodeType": "Return", + "src": "39536:29:1" + } + ] + }, + "documentation": { + "id": 2080, + "nodeType": "StructuredDocumentation", + "src": "39376:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2082, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39468:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2081, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2084, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39485:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2083, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "39485:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "39467:30:1" + }, + "returnParameters": { + "id": 2088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2087, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2086, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "39520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "39519:6:1" + }, + "scope": 2480, + "src": "39449:123:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2109, + "nodeType": "Block", + "src": "39727:43:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 2105, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "39744:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39744:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "39744:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2104, + "id": 2108, + "nodeType": "Return", + "src": "39737:26:1" + } + ] + }, + "documentation": { + "id": 2098, + "nodeType": "StructuredDocumentation", + "src": "39578:79:1", + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2100, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39679:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2099, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39679:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "src": "39678:17:1" + }, + "returnParameters": { + "id": 2104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2103, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39718:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "39718:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "39717:9:1" + }, + "scope": 2480, + "src": "39662:108:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2144, + "nodeType": "Block", + "src": "40198:189:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2123, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "40216:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2126, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40216:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40245:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + }, + "value": "EnumerableMap: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "id": 2122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "40208:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "40208:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2130, + "nodeType": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "assignments": [ + 2132 + ], + "declarations": [ + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "entry", + "nodeType": "VariableDeclaration", + "scope": 2144, + "src": "40293:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2131, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "40293:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2137, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2133, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40318:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40318:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2136, + "indexExpression": { + "id": 2135, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40331:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40318:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "expression": { + "components": [ + { + "expression": { + "id": 2138, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40355:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2139, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "40355:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 2140, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40367:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40367:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40354:26:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "functionReturnParameters": 2121, + "id": 2143, + "nodeType": "Return", + "src": "40347:33:1" + } + ] + }, + "documentation": { + "id": 2111, + "nodeType": "StructuredDocumentation", + "src": "39775:333:1", + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2145, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2113, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40126:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2112, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40126:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2115, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40143:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40143:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "40125:32:1" + }, + "returnParameters": { + "id": 2121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40180:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40180:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40189:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2119, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40189:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40179:18:1" + }, + "scope": 2480, + "src": "40113:274:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2182, + "nodeType": "Block", + "src": "40613:220:1", + "statements": [ + { + "assignments": [ + 2158 + ], + "declarations": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2182, + "src": "40623:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40623:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2163, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2159, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40642:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "40642:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2162, + "indexExpression": { + "id": 2161, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2150, + "src": "40655:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40642:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2164, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40673:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40685:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "40673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2171, + "nodeType": "IfStatement", + "src": "40669:36:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40696:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40703:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2169, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40695:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2156, + "id": 2170, + "nodeType": "Return", + "src": "40688:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40759:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 2173, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40765:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2174, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40765:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2178, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2175, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40778:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40789:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "40778:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40765:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40765:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2180, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40758:41:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "functionReturnParameters": 2156, + "id": 2181, + "nodeType": "Return", + "src": "40751:48:1" + } + ] + }, + "documentation": { + "id": 2146, + "nodeType": "StructuredDocumentation", + "src": "40393:131:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2183, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2151, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40546:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2147, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40546:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2150, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40563:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2149, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40563:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40545:30:1" + }, + "returnParameters": { + "id": 2156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2153, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40598:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2152, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "40598:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2155, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40604:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2154, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40604:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40597:15:1" + }, + "scope": 2480, + "src": "40529:304:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2215, + "nodeType": "Block", + "src": "41060:232:1", + "statements": [ + { + "assignments": [ + 2194 + ], + "declarations": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2215, + "src": "41070:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41070:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2199, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2195, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41089:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2196, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41089:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2198, + "indexExpression": { + "id": 2197, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2188, + "src": "41102:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41089:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2201, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41124:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41136:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41124:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "id": 2204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41139:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + }, + "value": "EnumerableMap: nonexistent key" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "id": 2200, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41116:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2206, + "nodeType": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2207, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41225:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2208, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41225:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2212, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2209, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41238:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41249:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41238:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41225:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2213, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41225:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2192, + "id": 2214, + "nodeType": "Return", + "src": "41218:40:1" + } + ] + }, + "documentation": { + "id": 2184, + "nodeType": "StructuredDocumentation", + "src": "40839:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2186, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "40999:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2185, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40999:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2188, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41016:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2187, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40998:30:1" + }, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2190, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41050:9:1" + }, + "scope": 2480, + "src": "40985:307:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2250, + "nodeType": "Block", + "src": "41677:212:1", + "statements": [ + { + "assignments": [ + 2229 + ], + "declarations": [ + { + "constant": false, + "id": 2229, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2250, + "src": "41687:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41687:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2234, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2230, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41706:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2231, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41706:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2233, + "indexExpression": { + "id": 2232, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "41719:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41706:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2236, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41741:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41753:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41741:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2239, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2223, + "src": "41756:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2235, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41733:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41733:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2241, + "nodeType": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2242, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41822:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41822:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2247, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2244, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41835:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41846:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41835:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41822:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41822:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2227, + "id": 2249, + "nodeType": "Return", + "src": "41815:40:1" + } + ] + }, + "documentation": { + "id": 2217, + "nodeType": "StructuredDocumentation", + "src": "41298:271:1", + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2251, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2219, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41588:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2218, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41588:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2221, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41605:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2220, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2223, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41618:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2222, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "41618:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "41587:58:1" + }, + "returnParameters": { + "id": 2227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2226, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41668:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2225, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41668:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41667:9:1" + }, + "scope": 2480, + "src": "41574:315:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableMap.UintToAddressMap", + "id": 2254, + "members": [ + { + "constant": false, + "id": 2253, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 2254, + "src": "41954:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2252, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41954:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "name": "UintToAddressMap", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "41920:51:1", + "visibility": "public" + }, + { + "body": { + "id": 2285, + "nodeType": "Block", + "src": "42293:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2267, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "42315:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42315:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2271, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2259, + "src": "42335:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42327:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2269, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42327:7:1", + "typeDescriptions": {} + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42327:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2279, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2261, + "src": "42365:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2277, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "42357:7:1", + "typeDescriptions": {} + } + }, + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42357:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42349:7:1", + "typeDescriptions": {} + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42349:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42341:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42341:7:1", + "typeDescriptions": {} + } + }, + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42341:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2266, + "name": "_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1998, + "src": "42310:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42310:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2265, + "id": 2284, + "nodeType": "Return", + "src": "42303:71:1" + } + ] + }, + "documentation": { + "id": 2255, + "nodeType": "StructuredDocumentation", + "src": "41977:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2286, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2257, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42211:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2256, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42211:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2259, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42241:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2258, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42241:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2261, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42254:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "42254:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "42210:58:1" + }, + "returnParameters": { + "id": 2265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2264, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42287:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2263, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42287:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42286:6:1" + }, + "scope": 2480, + "src": "42198:183:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2305, + "nodeType": "Block", + "src": "42623:57:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2297, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2289, + "src": "42648:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2298, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42648:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2301, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2291, + "src": "42668:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42660:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2299, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42660:7:1", + "typeDescriptions": {} + } + }, + "id": 2302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42660:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2296, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2079, + "src": "42640:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)" + } + }, + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42640:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2295, + "id": 2304, + "nodeType": "Return", + "src": "42633:40:1" + } + ] + }, + "documentation": { + "id": 2287, + "nodeType": "StructuredDocumentation", + "src": "42387:148:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2289, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42556:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2288, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42556:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2291, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42586:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42586:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42555:43:1" + }, + "returnParameters": { + "id": 2295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2294, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42617:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2293, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42617:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42616:6:1" + }, + "scope": 2480, + "src": "42540:140:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2325, + "nodeType": "Block", + "src": "42849:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2317, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2309, + "src": "42876:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42876:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2321, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "42896:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42888:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2319, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42888:7:1", + "typeDescriptions": {} + } + }, + "id": 2322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42888:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2316, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2097, + "src": "42866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42866:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2315, + "id": 2324, + "nodeType": "Return", + "src": "42859:42:1" + } + ] + }, + "documentation": { + "id": 2307, + "nodeType": "StructuredDocumentation", + "src": "42686:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2326, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2309, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42777:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2308, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42777:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2311, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42807:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42807:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42776:43:1" + }, + "returnParameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2314, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42843:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42843:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42842:6:1" + }, + "scope": 2480, + "src": "42759:149:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2339, + "nodeType": "Block", + "src": "43069:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2335, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2329, + "src": "43094:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43094:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "id": 2334, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2110, + "src": "43086:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)" + } + }, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43086:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2333, + "id": 2338, + "nodeType": "Return", + "src": "43079:26:1" + } + ] + }, + "documentation": { + "id": 2327, + "nodeType": "StructuredDocumentation", + "src": "42914:72:1", + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2340, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2329, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43007:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2328, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43007:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + } + ], + "src": "43006:30:1" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43060:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43059:9:1" + }, + "scope": 2480, + "src": "42991:121:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2378, + "nodeType": "Block", + "src": "43538:135:1", + "statements": [ + { + "assignments": [ + 2353, + 2355 + ], + "declarations": [ + { + "constant": false, + "id": 2353, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43549:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2352, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43549:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2355, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43562:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2354, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43562:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2361, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2357, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "43583:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2358, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "id": 2359, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "43595:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2356, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "43579:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)" + } + }, + "id": 2360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43579:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "expression": { + "components": [ + { + "arguments": [ + { + "id": 2364, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "43627:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43619:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43619:7:1", + "typeDescriptions": {} + } + }, + "id": 2365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43619:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2372, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2355, + "src": "43657:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43649:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43649:7:1", + "typeDescriptions": {} + } + }, + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43649:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43641:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2368, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "43641:7:1", + "typeDescriptions": {} + } + }, + "id": 2374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43641:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43633:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43633:7:1", + "typeDescriptions": {} + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43633:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2376, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43618:48:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$", + "typeString": "tuple(uint256,address payable)" + } + }, + "functionReturnParameters": 2351, + "id": 2377, + "nodeType": "Return", + "src": "43611:55:1" + } + ] + }, + "documentation": { + "id": 2341, + "nodeType": "StructuredDocumentation", + "src": "43117:318:1", + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2379, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43452:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2342, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43452:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2345, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43482:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43482:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43451:45:1" + }, + "returnParameters": { + "id": 2351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2348, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43520:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43520:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2350, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43529:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43529:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43519:18:1" + }, + "scope": 2480, + "src": "43440:233:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2417, + "nodeType": "Block", + "src": "43950:142:1", + "statements": [ + { + "assignments": [ + 2392, + 2394 + ], + "declarations": [ + { + "constant": false, + "id": 2392, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43961:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43961:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43975:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2393, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2403, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2396, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "44000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44000:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2400, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2384, + "src": "44020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44012:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2398, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44012:7:1", + "typeDescriptions": {} + } + }, + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44012:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2395, + "name": "_tryGet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2183, + "src": "43992:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)" + } + }, + "id": 2402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43992:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "expression": { + "components": [ + { + "id": 2404, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2392, + "src": "44043:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2411, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "44076:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44068:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44068:7:1", + "typeDescriptions": {} + } + }, + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44068:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2407, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44060:7:1", + "typeDescriptions": {} + } + }, + "id": 2413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44060:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44052:7:1", + "typeDescriptions": {} + } + }, + "id": 2414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44052:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2415, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44042:43:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_payable_$", + "typeString": "tuple(bool,address payable)" + } + }, + "functionReturnParameters": 2390, + "id": 2416, + "nodeType": "Return", + "src": "44035:50:1" + } + ] + }, + "documentation": { + "id": 2380, + "nodeType": "StructuredDocumentation", + "src": "43679:169:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2418, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2382, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43869:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2381, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43869:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2384, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43899:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43868:43:1" + }, + "returnParameters": { + "id": 2390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2387, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43935:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2386, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2389, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43941:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43941:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43934:15:1" + }, + "scope": 2480, + "src": "43853:239:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2446, + "nodeType": "Block", + "src": "44332:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2435, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "44378:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44378:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2439, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2423, + "src": "44398:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44390:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2437, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44390:7:1", + "typeDescriptions": {} + } + }, + "id": 2440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44390:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2434, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "src": "44373:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)" + } + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44373:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44365:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44365:7:1", + "typeDescriptions": {} + } + }, + "id": 2442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44365:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2430, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44357:7:1", + "typeDescriptions": {} + } + }, + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44357:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44349:7:1", + "typeDescriptions": {} + } + }, + "id": 2444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44349:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2427, + "id": 2445, + "nodeType": "Return", + "src": "44342:64:1" + } + ] + }, + "documentation": { + "id": 2419, + "nodeType": "StructuredDocumentation", + "src": "44098:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2447, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2421, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44257:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2420, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44257:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2423, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44287:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44287:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "44256:43:1" + }, + "returnParameters": { + "id": 2427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2426, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44323:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44323:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44322:9:1" + }, + "scope": 2480, + "src": "44244:169:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2478, + "nodeType": "Block", + "src": "44809:95:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2466, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2450, + "src": "44855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2467, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2470, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2452, + "src": "44875:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2468, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44867:7:1", + "typeDescriptions": {} + } + }, + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44867:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 2472, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "44881:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2465, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "src": "44850:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)" + } + }, + "id": 2473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44850:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44842:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44842:7:1", + "typeDescriptions": {} + } + }, + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44842:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44834:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2461, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44834:7:1", + "typeDescriptions": {} + } + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44834:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44826:7:1", + "typeDescriptions": {} + } + }, + "id": 2476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44826:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2458, + "id": 2477, + "nodeType": "Return", + "src": "44819:78:1" + } + ] + }, + "documentation": { + "id": 2448, + "nodeType": "StructuredDocumentation", + "src": "44419:269:1", + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2450, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44706:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2449, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44706:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2452, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44736:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2454, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44749:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2453, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "44749:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "44705:71:1" + }, + "returnParameters": { + "id": 2458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2457, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44799:9:1" + }, + "scope": 2480, + "src": "44693:211:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "35943:8963:1" + }, + { + "id": 2481, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "44959:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2482, + "nodeType": "StructuredDocumentation", + "src": "44992:34:1", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2566, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2564, + "nodeType": "Block", + "src": "45207:654:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2490, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45409:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45418:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45409:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2496, + "nodeType": "IfStatement", + "src": "45405:51:1", + "trueBody": { + "id": 2495, + "nodeType": "Block", + "src": "45421:35:1", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45442:3:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "functionReturnParameters": 2489, + "id": 2494, + "nodeType": "Return", + "src": "45435:10:1" + } + ] + } + }, + { + "assignments": [ + 2498 + ], + "declarations": [ + { + "constant": false, + "id": 2498, + "mutability": "mutable", + "name": "temp", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45465:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2500, + "initialValue": { + "id": 2499, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45480:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "assignments": [ + 2502 + ], + "declarations": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "digits", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45495:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45495:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2503, + "nodeType": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "body": { + "id": 2514, + "nodeType": "Block", + "src": "45537:57:1", + "statements": [ + { + "expression": { + "id": 2508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "45551:8:1", + "subExpression": { + "id": 2507, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45551:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2509, + "nodeType": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "expression": { + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2510, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45581:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45573:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2513, + "nodeType": "ExpressionStatement", + "src": "45573:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2504, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45526:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45534:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45526:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2515, + "nodeType": "WhileStatement", + "src": "45519:75:1" + }, + { + "assignments": [ + 2517 + ], + "declarations": [ + { + "constant": false, + "id": 2517, + "mutability": "mutable", + "name": "buffer", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45603:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2516, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2522, + "initialValue": { + "arguments": [ + { + "id": 2520, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45635:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "45625:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2518, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45629:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45625:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "assignments": [ + 2524 + ], + "declarations": [ + { + "constant": false, + "id": 2524, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45652:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45652:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2528, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2525, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45668:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45677:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "45668:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "expression": { + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2529, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45688:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2530, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45695:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45688:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2532, + "nodeType": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "body": { + "id": 2557, + "nodeType": "Block", + "src": "45728:96:1", + "statements": [ + { + "expression": { + "id": 2551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2536, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45742:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2539, + "indexExpression": { + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "45749:7:1", + "subExpression": { + "id": 2537, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2524, + "src": "45749:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "45742:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3438", + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45773:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2545, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45778:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3130", + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45785:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45778:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45773:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45767:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2542, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "45767:5:1", + "typeDescriptions": {} + } + }, + "id": 2549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45767:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 2540, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "45760:6:1", + "typeDescriptions": {} + } + }, + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45760:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "45742:47:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2552, + "nodeType": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "expression": { + "id": 2555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2553, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45803:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45811:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45803:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2556, + "nodeType": "ExpressionStatement", + "src": "45803:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2533, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45717:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45725:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45717:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2558, + "nodeType": "WhileStatement", + "src": "45710:114:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2561, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45847:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45840:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2559, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45840:6:1", + "typeDescriptions": {} + } + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45840:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2489, + "id": 2563, + "nodeType": "Return", + "src": "45833:21:1" + } + ] + }, + "documentation": { + "id": 2483, + "nodeType": "StructuredDocumentation", + "src": "45049:82:1", + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2485, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45154:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45154:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "45153:15:1" + }, + "returnParameters": { + "id": 2489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2488, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45192:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2487, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45192:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "45191:15:1" + }, + "scope": 2566, + "src": "45136:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "45027:836:1" + }, + { + "id": 2567, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "45922:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2569, + "name": "Context", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 530, + "src": "46099:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 2570, + "nodeType": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "baseName": { + "id": 2571, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 781, + "src": "46108:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$781", + "typeString": "contract ERC165" + } + }, + "id": 2572, + "nodeType": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "baseName": { + "id": 2573, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "46116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 2574, + "nodeType": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "baseName": { + "id": 2575, + "name": "IERC721Metadata", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 680, + "src": "46125:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Metadata_$680", + "typeString": "contract IERC721Metadata" + } + }, + "id": 2576, + "nodeType": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "baseName": { + "id": 2577, + "name": "IERC721Enumerable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 709, + "src": "46142:17:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Enumerable_$709", + "typeString": "contract IERC721Enumerable" + } + }, + "id": 2578, + "nodeType": "InheritanceSpecifier", + "src": "46142:17:1" + } + ], + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "documentation": { + "id": 2568, + "nodeType": "StructuredDocumentation", + "src": "45955:124:1", + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": true, + "id": 3498, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2581, + "libraryName": { + "id": 2579, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1135, + "src": "46172:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$1135", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "46166:27:1", + "typeName": { + "id": 2580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46185:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 2584, + "libraryName": { + "id": 2582, + "name": "Address", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1430, + "src": "46204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + }, + "nodeType": "UsingForDirective", + "src": "46198:26:1", + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46216:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 2587, + "libraryName": { + "id": 2585, + "name": "EnumerableSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1921, + "src": "46235:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableSet_$1921", + "typeString": "library EnumerableSet" + } + }, + "nodeType": "UsingForDirective", + "src": "46229:46:1", + "typeName": { + "id": 2586, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46253:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + { + "id": 2590, + "libraryName": { + "id": 2588, + "name": "EnumerableMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2480, + "src": "46286:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableMap_$2480", + "typeString": "library EnumerableMap" + } + }, + "nodeType": "UsingForDirective", + "src": "46280:55:1", + "typeName": { + "id": 2589, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46304:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + } + }, + { + "id": 2593, + "libraryName": { + "id": 2591, + "name": "Strings", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2566, + "src": "46346:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Strings_$2566", + "typeString": "library Strings" + } + }, + "nodeType": "UsingForDirective", + "src": "46340:26:1", + "typeName": { + "id": 2592, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46358:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 2596, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46544:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2594, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "46544:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783135306237613032", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46587:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_353073666_by_1", + "typeString": "int_const 353073666" + }, + "value": "0x150b7a02" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2600, + "mutability": "mutable", + "name": "_holderTokens", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46681:64:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "typeName": { + "id": 2599, + "keyType": { + "id": 2597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "46681:42:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "valueType": { + "id": 2598, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46701:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2602, + "mutability": "mutable", + "name": "_tokenOwners", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46809:51:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2601, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46809:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2606, + "mutability": "mutable", + "name": "_tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46916:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 2605, + "keyType": { + "id": 2603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46925:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "46916:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 2604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46936:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2612, + "mutability": "mutable", + "name": "_operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47023:73:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 2611, + "keyType": { + "id": 2607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47023:46:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 2610, + "keyType": { + "id": 2608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47043:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2609, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "47063:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2614, + "mutability": "mutable", + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47121:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2613, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47121:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2616, + "mutability": "mutable", + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47168:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47168:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2620, + "mutability": "mutable", + "name": "_tokenURIs", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47236:46:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 2619, + "keyType": { + "id": 2617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "47245:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "47236:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 2618, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47256:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2622, + "mutability": "mutable", + "name": "_baseURI", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47305:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2621, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47305:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2625, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48204:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2623, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48204:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783830616335386364", + "id": 2624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48251:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2628, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48527:66:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2626, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48527:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783562356531333966", + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1532892063_by_1", + "typeString": "int_const 1532892063" + }, + "value": "0x5b5e139f" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2631, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48898:68:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2629, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783738306539643633", + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48956:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2014223715_by_1", + "typeString": "int_const 2014223715" + }, + "value": "0x780e9d63" + }, + "visibility": "private" + }, + { + "body": { + "id": 2659, + "nodeType": "Block", + "src": "49143:305:1", + "statements": [ + { + "expression": { + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2639, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "49153:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2640, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "49161:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49153:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2642, + "nodeType": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "expression": { + "id": 2645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2643, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "49176:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2644, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2636, + "src": "49186:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49176:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2646, + "nodeType": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2648, + "name": "_INTERFACE_ID_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "49300:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2647, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49281:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49281:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2650, + "nodeType": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2652, + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "49350:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2651, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49331:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49331:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2654, + "nodeType": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2656, + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2631, + "src": "49409:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2655, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49390:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49390:51:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2658, + "nodeType": "ExpressionStatement", + "src": "49390:51:1" + } + ] + }, + "documentation": { + "id": 2632, + "nodeType": "StructuredDocumentation", + "src": "48973:108:1", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2660, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2634, + "mutability": "mutable", + "name": "name_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49099:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2633, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49099:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2636, + "mutability": "mutable", + "name": "symbol_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49120:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2635, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49120:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "49098:44:1" + }, + "returnParameters": { + "id": 2638, + "nodeType": "ParameterList", + "parameters": [], + "src": "49143:0:1" + }, + "scope": 3498, + "src": "49086:362:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 580 + ], + "body": { + "id": 2685, + "nodeType": "Block", + "src": "49588:137:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2670, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49606:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49623:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "49615:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49615:7:1", + "typeDescriptions": {} + } + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49615:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "49606:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49627:44:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + }, + "value": "ERC721: balance query for the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "id": 2669, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "49598:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49598:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2678, + "nodeType": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 2679, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "49689:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2681, + "indexExpression": { + "id": 2680, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49703:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "49689:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2682, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "49689:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + } + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49689:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2668, + "id": 2684, + "nodeType": "Return", + "src": "49682:36:1" + } + ] + }, + "documentation": { + "id": 2661, + "nodeType": "StructuredDocumentation", + "src": "49454:48:1", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 2686, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2665, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49561:8:1" + }, + "parameters": { + "id": 2664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2663, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49526:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49526:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49525:15:1" + }, + "returnParameters": { + "id": 2668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2667, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49579:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49579:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49578:9:1" + }, + "scope": 3498, + "src": "49507:218:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 588 + ], + "body": { + "id": 2701, + "nodeType": "Block", + "src": "49863:94:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2697, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "49897:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49906:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + }, + "value": "ERC721: owner query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "expression": { + "id": 2695, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "49880:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2696, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 2479, + "src": "49880:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + } + }, + "id": 2699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49880:70:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2694, + "id": 2700, + "nodeType": "Return", + "src": "49873:77:1" + } + ] + }, + "documentation": { + "id": 2687, + "nodeType": "StructuredDocumentation", + "src": "49731:46:1", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 2702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2691, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49836:8:1" + }, + "parameters": { + "id": 2690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2689, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49799:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49799:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49798:17:1" + }, + "returnParameters": { + "id": 2694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49854:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49854:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49853:9:1" + }, + "scope": 3498, + "src": "49782:175:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 665 + ], + "body": { + "id": 2711, + "nodeType": "Block", + "src": "50088:29:1", + "statements": [ + { + "expression": { + "id": 2709, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "50105:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2708, + "id": 2710, + "nodeType": "Return", + "src": "50098:12:1" + } + ] + }, + "documentation": { + "id": 2703, + "nodeType": "StructuredDocumentation", + "src": "49963:51:1", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 2712, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2705, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50055:8:1" + }, + "parameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [], + "src": "50032:2:1" + }, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2707, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2712, + "src": "50073:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2706, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50073:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50072:15:1" + }, + "scope": 3498, + "src": "50019:98:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 671 + ], + "body": { + "id": 2721, + "nodeType": "Block", + "src": "50252:31:1", + "statements": [ + { + "expression": { + "id": 2719, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "50269:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2718, + "id": 2720, + "nodeType": "Return", + "src": "50262:14:1" + } + ] + }, + "documentation": { + "id": 2713, + "nodeType": "StructuredDocumentation", + "src": "50123:53:1", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 2722, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2715, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50219:8:1" + }, + "parameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [], + "src": "50196:2:1" + }, + "returnParameters": { + "id": 2718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2717, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2722, + "src": "50237:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2716, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50237:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50236:15:1" + }, + "scope": 3498, + "src": "50181:102:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 679 + ], + "body": { + "id": 2789, + "nodeType": "Block", + "src": "50437:688:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2733, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50463:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2732, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "50455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50455:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50473:49:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + }, + "value": "ERC721Metadata: URI query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "id": 2731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "50447:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50447:76:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "assignments": [ + 2739 + ], + "declarations": [ + { + "constant": false, + "id": 2739, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50534:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50534:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2743, + "initialValue": { + "baseExpression": { + "id": 2740, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "50560:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 2742, + "indexExpression": { + "id": 2741, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50571:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "50560:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "assignments": [ + 2745 + ], + "declarations": [ + { + "constant": false, + "id": 2745, + "mutability": "mutable", + "name": "base", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50589:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50589:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2748, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2746, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2799, + "src": "50610:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 2747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50610:9:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2751, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50698:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50692:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50692:5:1", + "typeDescriptions": {} + } + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50692:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50692:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50714:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50692:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2759, + "nodeType": "IfStatement", + "src": "50688:70:1", + "trueBody": { + "id": 2758, + "nodeType": "Block", + "src": "50717:41:1", + "statements": [ + { + "expression": { + "id": 2756, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50738:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2757, + "nodeType": "Return", + "src": "50731:16:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2762, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50860:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2760, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50860:5:1", + "typeDescriptions": {} + } + }, + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50860:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50860:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50886:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50860:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2777, + "nodeType": "IfStatement", + "src": "50856:106:1", + "trueBody": { + "id": 2776, + "nodeType": "Block", + "src": "50889:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2771, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50934:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 2772, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50940:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2769, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "50917:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "50917:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50917:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50910:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2767, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50910:6:1", + "typeDescriptions": {} + } + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50910:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2775, + "nodeType": "Return", + "src": "50903:48:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2782, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "51092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2783, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "51098:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2565, + "src": "51098:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 2785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51098:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2780, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "51075:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "51075:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51075:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "51068:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2778, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51068:6:1", + "typeDescriptions": {} + } + }, + "id": 2787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51068:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2788, + "nodeType": "Return", + "src": "51061:57:1" + } + ] + }, + "documentation": { + "id": 2723, + "nodeType": "StructuredDocumentation", + "src": "50289:55:1", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 2790, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50404:8:1" + }, + "parameters": { + "id": 2726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2725, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50367:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50367:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "50366:17:1" + }, + "returnParameters": { + "id": 2730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50422:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2728, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50422:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50421:15:1" + }, + "scope": 3498, + "src": "50349:776:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2798, + "nodeType": "Block", + "src": "51420:32:1", + "statements": [ + { + "expression": { + "id": 2796, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "51437:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2795, + "id": 2797, + "nodeType": "Return", + "src": "51430:15:1" + } + ] + }, + "documentation": { + "id": 2791, + "nodeType": "StructuredDocumentation", + "src": "51131:221:1", + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "functionSelector": "6c0360eb", + "id": 2799, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "baseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2792, + "nodeType": "ParameterList", + "parameters": [], + "src": "51373:2:1" + }, + "returnParameters": { + "id": 2795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2799, + "src": "51405:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2793, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51405:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "51404:15:1" + }, + "scope": 3498, + "src": "51357:95:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 700 + ], + "body": { + "id": 2817, + "nodeType": "Block", + "src": "51637:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2814, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "51678:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 2810, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "51654:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2812, + "indexExpression": { + "id": 2811, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2802, + "src": "51668:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "51654:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2813, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 1920, + "src": "51654:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51654:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2809, + "id": 2816, + "nodeType": "Return", + "src": "51647:37:1" + } + ] + }, + "documentation": { + "id": 2800, + "nodeType": "StructuredDocumentation", + "src": "51458:68:1", + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "functionSelector": "2f745c59", + "id": 2818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2806, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51610:8:1" + }, + "parameters": { + "id": 2805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2802, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51560:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "51560:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2804, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51575:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2803, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51575:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51559:30:1" + }, + "returnParameters": { + "id": 2809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2808, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51628:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51628:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51627:9:1" + }, + "scope": 3498, + "src": "51531:160:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 690 + ], + "body": { + "id": 2829, + "nodeType": "Block", + "src": "51832:138:1", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2825, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "51942:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 2340, + "src": "51942:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51942:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2824, + "id": 2828, + "nodeType": "Return", + "src": "51935:28:1" + } + ] + }, + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "51697:60:1", + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 2830, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2821, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51805:8:1" + }, + "parameters": { + "id": 2820, + "nodeType": "ParameterList", + "parameters": [], + "src": "51782:2:1" + }, + "returnParameters": { + "id": 2824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2823, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2830, + "src": "51823:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51823:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51822:9:1" + }, + "scope": 3498, + "src": "51762:208:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 708 + ], + "body": { + "id": 2848, + "nodeType": "Block", + "src": "52126:85:1", + "statements": [ + { + "assignments": [ + 2840, + null + ], + "declarations": [ + { + "constant": false, + "id": 2840, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2848, + "src": "52137:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2839, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52137:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2845, + "initialValue": { + "arguments": [ + { + "id": 2843, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2833, + "src": "52174:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2841, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "52158:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 2379, + "src": "52158:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + } + }, + "id": 2844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52158:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$", + "typeString": "tuple(uint256,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "expression": { + "id": 2846, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2840, + "src": "52197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2838, + "id": 2847, + "nodeType": "Return", + "src": "52190:14:1" + } + ] + }, + "documentation": { + "id": 2831, + "nodeType": "StructuredDocumentation", + "src": "51976:61:1", + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "functionSelector": "4f6ccce7", + "id": 2849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2835, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52099:8:1" + }, + "parameters": { + "id": 2834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2833, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52064:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52064:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52063:15:1" + }, + "returnParameters": { + "id": 2838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2837, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52117:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52116:9:1" + }, + "scope": 3498, + "src": "52042:169:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 616 + ], + "body": { + "id": 2892, + "nodeType": "Block", + "src": "52338:325:1", + "statements": [ + { + "assignments": [ + 2859 + ], + "declarations": [ + { + "constant": false, + "id": 2859, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2892, + "src": "52348:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52348:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2864, + "initialValue": { + "arguments": [ + { + "id": 2862, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52379:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2860, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52364:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "52364:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52364:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2866, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52405:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2867, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52411:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52405:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "id": 2869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52418:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + }, + "value": "ERC721: approval to current owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "id": 2865, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52397:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52397:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2871, + "nodeType": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2873, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52473:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52473:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2875, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52489:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52473:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 2879, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52522:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2880, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52529:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52529:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 2877, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52498:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "52498:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52498:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "52473:69:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52556:58:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + }, + "value": "ERC721: approve caller is not owner nor approved for all" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "id": 2872, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52465:159:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2886, + "nodeType": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2888, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52644:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2889, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52648:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2887, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "52635:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52635:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2891, + "nodeType": "ExpressionStatement", + "src": "52635:21:1" + } + ] + }, + "documentation": { + "id": 2850, + "nodeType": "StructuredDocumentation", + "src": "52217:46:1", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 2893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2856, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52329:8:1" + }, + "parameters": { + "id": 2855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2852, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52285:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52285:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2854, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52297:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52284:29:1" + }, + "returnParameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [], + "src": "52338:0:1" + }, + "scope": 3498, + "src": "52268:395:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 624 + ], + "body": { + "id": 2913, + "nodeType": "Block", + "src": "52809:132:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2904, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2903, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "52827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52827:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52845:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + }, + "value": "ERC721: approved query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "id": 2902, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52819:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2908, + "nodeType": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "expression": { + "baseExpression": { + "id": 2909, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "52910:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 2911, + "indexExpression": { + "id": 2910, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52926:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "52910:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2901, + "id": 2912, + "nodeType": "Return", + "src": "52903:31:1" + } + ] + }, + "documentation": { + "id": 2894, + "nodeType": "StructuredDocumentation", + "src": "52669:50:1", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 2914, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2898, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52782:8:1" + }, + "parameters": { + "id": 2897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2896, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52745:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52744:17:1" + }, + "returnParameters": { + "id": 2901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2900, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2899, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "52799:9:1" + }, + "scope": 3498, + "src": "52724:217:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 632 + ], + "body": { + "id": 2947, + "nodeType": "Block", + "src": "53092:206:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2924, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53110:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2925, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53122:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53122:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "53110:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "id": 2928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53136:27:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + }, + "value": "ERC721: approve to caller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "id": 2923, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53102:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53102:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2930, + "nodeType": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "expression": { + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 2931, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53175:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2935, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2932, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53194:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53194:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53175:32:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2936, + "indexExpression": { + "id": 2934, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53208:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "53175:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2937, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53220:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "53175:53:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2941, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53258:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53258:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2943, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53272:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2944, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53282:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2940, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "53243:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 2945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53243:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2946, + "nodeType": "EmitStatement", + "src": "53238:53:1" + } + ] + }, + "documentation": { + "id": 2915, + "nodeType": "StructuredDocumentation", + "src": "52947:56:1", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 2948, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2921, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53083:8:1" + }, + "parameters": { + "id": 2920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2917, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53035:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53035:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2919, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53053:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2918, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53053:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53034:33:1" + }, + "returnParameters": { + "id": 2922, + "nodeType": "ParameterList", + "parameters": [], + "src": "53092:0:1" + }, + "scope": 3498, + "src": "53008:290:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 642 + ], + "body": { + "id": 2965, + "nodeType": "Block", + "src": "53467:59:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 2959, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53484:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2961, + "indexExpression": { + "id": 2960, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "53503:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2963, + "indexExpression": { + "id": 2962, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "53510:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2958, + "id": 2964, + "nodeType": "Return", + "src": "53477:42:1" + } + ] + }, + "documentation": { + "id": 2949, + "nodeType": "StructuredDocumentation", + "src": "53304:55:1", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 2966, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2955, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53443:8:1" + }, + "parameters": { + "id": 2954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53390:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53390:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2953, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53405:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53405:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "53389:33:1" + }, + "returnParameters": { + "id": 2958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2957, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2956, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53460:6:1" + }, + "scope": 3498, + "src": "53364:162:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 608 + ], + "body": { + "id": 2992, + "nodeType": "Block", + "src": "53677:211:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2979, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53766:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53766:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2981, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53780:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2978, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "53747:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53747:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53790:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 2977, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53739:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53739:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2985, + "nodeType": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2987, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2969, + "src": "53863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2988, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2971, + "src": "53869:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2989, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53873:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2986, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "53853:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53853:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2991, + "nodeType": "ExpressionStatement", + "src": "53853:28:1" + } + ] + }, + "documentation": { + "id": 2967, + "nodeType": "StructuredDocumentation", + "src": "53532:51:1", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 2993, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2975, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53668:8:1" + }, + "parameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2969, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53610:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53610:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2971, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53624:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53624:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2973, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53636:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "53636:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53609:43:1" + }, + "returnParameters": { + "id": 2976, + "nodeType": "ParameterList", + "parameters": [], + "src": "53677:0:1" + }, + "scope": 3498, + "src": "53588:300:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 598 + ], + "body": { + "id": 3011, + "nodeType": "Block", + "src": "54047:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3005, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2996, + "src": "54074:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3006, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2998, + "src": "54080:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3007, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3000, + "src": "54084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54093:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3004, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "src": "54057:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54057:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3010, + "nodeType": "ExpressionStatement", + "src": "54057:39:1" + } + ] + }, + "documentation": { + "id": 2994, + "nodeType": "StructuredDocumentation", + "src": "53894:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 3012, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3002, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54038:8:1" + }, + "parameters": { + "id": 3001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2996, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53980:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53980:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2998, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53994:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2997, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53994:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3000, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "54006:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54006:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53979:43:1" + }, + "returnParameters": { + "id": 3003, + "nodeType": "ParameterList", + "parameters": [], + "src": "54047:0:1" + }, + "scope": 3498, + "src": "53954:149:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 654 + ], + "body": { + "id": 3041, + "nodeType": "Block", + "src": "54282:169:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3027, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "54319:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54319:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3029, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3026, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "54300:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 3030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54300:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 3031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54343:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 3025, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "54292:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54292:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3033, + "nodeType": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3035, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3015, + "src": "54419:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3036, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3017, + "src": "54425:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3037, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3038, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3021, + "src": "54438:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3034, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3071, + "src": "54405:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54405:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3040, + "nodeType": "ExpressionStatement", + "src": "54405:39:1" + } + ] + }, + "documentation": { + "id": 3013, + "nodeType": "StructuredDocumentation", + "src": "54109:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 3042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3023, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54273:8:1" + }, + "parameters": { + "id": 3022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3015, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54195:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54195:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3017, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54209:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3016, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54209:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3019, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54221:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3021, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54238:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3020, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "54238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "54194:63:1" + }, + "returnParameters": { + "id": 3024, + "nodeType": "ParameterList", + "parameters": [], + "src": "54282:0:1" + }, + "scope": 3498, + "src": "54169:282:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 3070, + "nodeType": "Block", + "src": "55416:166:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3055, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55436:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55442:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3057, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55446:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3054, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "55426:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55426:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3059, + "nodeType": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3062, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55495:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3063, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55501:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3064, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55505:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3065, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3051, + "src": "55514:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3061, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "55472:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55472:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55522:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3060, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "55464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55464:111:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3069, + "nodeType": "ExpressionStatement", + "src": "55464:111:1" + } + ] + }, + "documentation": { + "id": 3043, + "nodeType": "StructuredDocumentation", + "src": "54457:851:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3071, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3045, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55336:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55336:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3047, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55350:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55350:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3049, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55362:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55362:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3051, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55379:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3050, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "55379:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "55335:63:1" + }, + "returnParameters": { + "id": 3053, + "nodeType": "ParameterList", + "parameters": [], + "src": "55416:0:1" + }, + "scope": 3498, + "src": "55313:269:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3084, + "nodeType": "Block", + "src": "55956:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3081, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "55995:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3079, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "55973:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3080, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 2326, + "src": "55973:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + } + }, + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55973:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3078, + "id": 3083, + "nodeType": "Return", + "src": "55966:37:1" + } + ] + }, + "documentation": { + "id": 3072, + "nodeType": "StructuredDocumentation", + "src": "55588:292:1", + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3085, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3074, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55902:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3073, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55902:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "55901:17:1" + }, + "returnParameters": { + "id": 3078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3077, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55950:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3076, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "55950:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "55949:6:1" + }, + "scope": 3498, + "src": "55885:125:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3126, + "nodeType": "Block", + "src": "56267:252:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3097, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56293:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3096, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "56285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56285:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 3099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56303:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + }, + "value": "ERC721: operator query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "id": 3095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "56277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56277:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3101, + "nodeType": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "assignments": [ + 3103 + ], + "declarations": [ + { + "constant": false, + "id": 3103, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3126, + "src": "56360:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56360:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3108, + "initialValue": { + "arguments": [ + { + "id": 3106, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56391:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3104, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56376:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "56376:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56376:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3109, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56417:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3110, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56428:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56417:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3113, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56449:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3112, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "56437:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56437:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3115, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56437:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:51:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 3120, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56496:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3121, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3118, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "56472:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56472:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:94:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3124, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56416:96:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3094, + "id": 3125, + "nodeType": "Return", + "src": "56409:103:1" + } + ] + }, + "documentation": { + "id": 3086, + "nodeType": "StructuredDocumentation", + "src": "56016:147:1", + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3088, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56196:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56196:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3090, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56213:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56213:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56195:34:1" + }, + "returnParameters": { + "id": 3094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3093, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56261:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3092, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "56261:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "56260:6:1" + }, + "scope": 3498, + "src": "56168:351:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3141, + "nodeType": "Block", + "src": "56915:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3136, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3130, + "src": "56935:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3137, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3132, + "src": "56939:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56948:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3135, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "src": "56925:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 3139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56925:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3140, + "nodeType": "ExpressionStatement", + "src": "56925:26:1" + } + ] + }, + "documentation": { + "id": 3128, + "nodeType": "StructuredDocumentation", + "src": "56525:320:1", + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3142, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3130, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56869:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3132, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56881:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56881:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56868:29:1" + }, + "returnParameters": { + "id": 3134, + "nodeType": "ParameterList", + "parameters": [], + "src": "56915:0:1" + }, + "scope": 3498, + "src": "56850:108:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3170, + "nodeType": "Block", + "src": "57264:162:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3153, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57280:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3154, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3152, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "57274:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57274:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3156, + "nodeType": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57341:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57333:7:1", + "typeDescriptions": {} + } + }, + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57333:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3163, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57345:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3164, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3165, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "57358:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3158, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "57310:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57310:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57366:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3157, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57302:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57302:117:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3169, + "nodeType": "ExpressionStatement", + "src": "57302:117:1" + } + ] + }, + "documentation": { + "id": 3143, + "nodeType": "StructuredDocumentation", + "src": "56964:210:1", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3171, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3145, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57198:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3144, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57198:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3147, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57210:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57210:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3149, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57227:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3148, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "57227:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "57197:49:1" + }, + "returnParameters": { + "id": 3151, + "nodeType": "ParameterList", + "parameters": [], + "src": "57264:0:1" + }, + "scope": 3498, + "src": "57179:247:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3229, + "nodeType": "Block", + "src": "57809:332:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3180, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57827:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57841:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57833:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57833:7:1", + "typeDescriptions": {} + } + }, + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57833:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "57827:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57845:34:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + }, + "value": "ERC721: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "id": 3179, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57819:61:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "57898:17:1", + "subExpression": { + "arguments": [ + { + "id": 3191, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57907:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3190, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "57899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57899:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57917:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + }, + "value": "ERC721: token already minted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "id": 3189, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57890:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57890:58:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3196, + "nodeType": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57988:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57980:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57980:7:1", + "typeDescriptions": {} + } + }, + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57980:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3202, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57992:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3203, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3197, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "57959:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57959:45:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3205, + "nodeType": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3210, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58037:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3206, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58015:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3208, + "indexExpression": { + "id": 3207, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58029:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58015:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3209, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "58015:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58015:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3212, + "nodeType": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3216, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58073:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3217, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58082:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3213, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58056:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3215, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "58056:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58056:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3219, + "nodeType": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58118:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58110:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58110:7:1", + "typeDescriptions": {} + } + }, + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58110:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3225, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58122:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3226, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3220, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58101:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58101:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3228, + "nodeType": "EmitStatement", + "src": "58096:38:1" + } + ] + }, + "documentation": { + "id": 3172, + "nodeType": "StructuredDocumentation", + "src": "57432:311:1", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3174, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57763:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57763:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3176, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57775:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57775:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "57762:29:1" + }, + "returnParameters": { + "id": 3178, + "nodeType": "ParameterList", + "parameters": [], + "src": "57809:0:1" + }, + "scope": 3498, + "src": "57748:393:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3298, + "nodeType": "Block", + "src": "58407:478:1", + "statements": [ + { + "assignments": [ + 3237 + ], + "declarations": [ + { + "constant": false, + "id": 3237, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "58417:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58417:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3242, + "initialValue": { + "arguments": [ + { + "id": 3240, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58448:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3238, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "58433:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "58433:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58433:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3244, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58506:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58521:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58513:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58513:7:1", + "typeDescriptions": {} + } + }, + "id": 3248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58513:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3249, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58525:7:1", + "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": 3243, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "58485:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58485:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3251, + "nodeType": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58588:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58580:7:1", + "typeDescriptions": {} + } + }, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58580:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3257, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58592:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3252, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "58571:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58571:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3259, + "nodeType": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 3262, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58656:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3264, + "indexExpression": { + "id": 3263, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58667:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58656:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 3261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58650:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3260, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "58650:5:1", + "typeDescriptions": {} + } + }, + "id": 3265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58650:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes storage pointer" + } + }, + "id": 3266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "58650:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 3267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58687:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "58650:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3275, + "nodeType": "IfStatement", + "src": "58646:95:1", + "trueBody": { + "id": 3274, + "nodeType": "Block", + "src": "58690:51:1", + "statements": [ + { + "expression": { + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "58704:26:1", + "subExpression": { + "baseExpression": { + "id": 3269, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58711:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3271, + "indexExpression": { + "id": 3270, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58722:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "58711:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3273, + "nodeType": "ExpressionStatement", + "src": "58704:26:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 3280, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58779:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3276, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58751:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3278, + "indexExpression": { + "id": 3277, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58765:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58751:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3279, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "58751:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58751:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3282, + "nodeType": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3286, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58818:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3283, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58798:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 2306, + "src": "58798:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + } + }, + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58798:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3288, + "nodeType": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3290, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58851:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58866:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58858:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58858:7:1", + "typeDescriptions": {} + } + }, + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58858:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3295, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58870:7:1", + "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": 3289, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58842:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58842:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3297, + "nodeType": "EmitStatement", + "src": "58837:41:1" + } + ] + }, + "documentation": { + "id": 3231, + "nodeType": "StructuredDocumentation", + "src": "58147:206:1", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3299, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3233, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3299, + "src": "58373:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "58372:17:1" + }, + "returnParameters": { + "id": 3235, + "nodeType": "ParameterList", + "parameters": [], + "src": "58407:0:1" + }, + "scope": 3498, + "src": "58358:527:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3370, + "nodeType": "Block", + "src": "59288:505:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3312, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59321:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3310, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "59306:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "59306:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59306:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3314, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59333:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "59306:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59339:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + }, + "value": "ERC721: transfer of token that is not own" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "id": 3309, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59298:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59298:85:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3318, + "nodeType": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3320, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59419:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59433:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59425:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59425:7:1", + "typeDescriptions": {} + } + }, + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59425:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "59419:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59437:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + }, + "value": "ERC721: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "id": 3319, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59411:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59411:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3328, + "nodeType": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3330, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59508:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3331, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59514:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3332, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59518:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3329, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "59487:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59487:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3334, + "nodeType": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59605:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59597:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59597:7:1", + "typeDescriptions": {} + } + }, + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59597:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3340, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59609:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3335, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "59588:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59588:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3342, + "nodeType": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3347, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59655:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3343, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59628:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3345, + "indexExpression": { + "id": 3344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59642:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59628:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3346, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "59628:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59628:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3354, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59695:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3350, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3352, + "indexExpression": { + "id": 3351, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59687:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59673:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3353, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "59673:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59673:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3356, + "nodeType": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3360, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59731:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3361, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59740:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3357, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "59714:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "59714:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59714:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3363, + "nodeType": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3365, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59768:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3366, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59774:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3367, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59778:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3364, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "59759:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59759:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3369, + "nodeType": "EmitStatement", + "src": "59754:32:1" + } + ] + }, + "documentation": { + "id": 3300, + "nodeType": "StructuredDocumentation", + "src": "58891:313:1", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3302, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59228:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3304, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59242:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59242:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3306, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59254:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3305, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59254:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "59227:43:1" + }, + "returnParameters": { + "id": 3308, + "nodeType": "ParameterList", + "parameters": [], + "src": "59288:0:1" + }, + "scope": 3498, + "src": "59209:584:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3392, + "nodeType": "Block", + "src": "60021:131:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3381, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60047:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3380, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "60039:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60039:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "id": 3383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "60057:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + }, + "value": "ERC721Metadata: URI set of nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "id": 3379, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "60031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60031:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3385, + "nodeType": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "expression": { + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3386, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "60114:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3388, + "indexExpression": { + "id": 3387, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60125:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "60114:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3389, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "60136:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60114:31:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3391, + "nodeType": "ExpressionStatement", + "src": "60114:31:1" + } + ] + }, + "documentation": { + "id": 3372, + "nodeType": "StructuredDocumentation", + "src": "59799:136:1", + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setTokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3374, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59962:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59962:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3376, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59979:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3375, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "59979:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "59961:42:1" + }, + "returnParameters": { + "id": 3378, + "nodeType": "ParameterList", + "parameters": [], + "src": "60021:0:1" + }, + "scope": 3498, + "src": "59940:212:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3403, + "nodeType": "Block", + "src": "60437:36:1", + "statements": [ + { + "expression": { + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3399, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "60447:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3400, + "name": "baseURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "60458:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60447:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3402, + "nodeType": "ExpressionStatement", + "src": "60447:19:1" + } + ] + }, + "documentation": { + "id": 3394, + "nodeType": "StructuredDocumentation", + "src": "60158:212:1", + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3404, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setBaseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3396, + "mutability": "mutable", + "name": "baseURI_", + "nodeType": "VariableDeclaration", + "scope": 3404, + "src": "60396:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3395, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "60396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "60395:24:1" + }, + "returnParameters": { + "id": 3398, + "nodeType": "ParameterList", + "parameters": [], + "src": "60437:0:1" + }, + "scope": 3498, + "src": "60375:98:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3461, + "nodeType": "Block", + "src": "61156:459:1", + "statements": [ + { + "condition": { + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "61170:16:1", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3418, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61171:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 1154, + "src": "61171:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61171:15:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3425, + "nodeType": "IfStatement", + "src": "61166:58:1", + "trueBody": { + "id": 3424, + "nodeType": "Block", + "src": "61188:36:1", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 3422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61209:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3417, + "id": 3423, + "nodeType": "Return", + "src": "61202:11:1" + } + ] + } + }, + { + "assignments": [ + 3427 + ], + "declarations": [ + { + "constant": false, + "id": 3427, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61233:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3426, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61233:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3445, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 3433, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61327:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3432, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "61311:15:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$726_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 3434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61311:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$726", + "typeString": "contract IERC721Receiver" + } + }, + "id": 3435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 725, + "src": "61311:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "61311:45:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3437, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "61370:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61370:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3439, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "61396:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3440, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "61414:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3441, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3413, + "src": "61435:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3430, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61275:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "61275:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 3442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61275:175:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61452:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "expression": { + "id": 3428, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61259:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 1225, + "src": "61259:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 3444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61259:246:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "assignments": [ + 3447 + ], + "declarations": [ + { + "constant": false, + "id": 3447, + "mutability": "mutable", + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61515:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3446, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61515:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "id": 3455, + "initialValue": { + "arguments": [ + { + "id": 3450, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3427, + "src": "61542:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 3452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "61555:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 3451, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61555:6:1", + "typeDescriptions": {} + } + } + ], + "id": 3453, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61554:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "expression": { + "id": 3448, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61531:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "61531:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61531:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3456, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "61581:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3457, + "name": "_ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "61591:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "61581:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3459, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61580:28:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3417, + "id": 3460, + "nodeType": "Return", + "src": "61573:35:1" + } + ] + }, + "documentation": { + "id": 3405, + "nodeType": "StructuredDocumentation", + "src": "60479:542:1", + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3462, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3407, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61058:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61058:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3409, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61072:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61072:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3411, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61084:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3410, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3413, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61101:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3412, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61101:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "61057:63:1" + }, + "returnParameters": { + "id": 3417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3416, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61146:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3415, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "61146:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "61145:6:1" + }, + "scope": 3498, + "src": "61026:589:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3485, + "nodeType": "Block", + "src": "61791:125:1", + "statements": [ + { + "expression": { + "id": 3474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3470, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "61801:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 3472, + "indexExpression": { + "id": 3471, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61817:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "61801:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3473, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61828:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "61801:29:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3475, + "nodeType": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 3479, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61869:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3477, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "61854:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "61854:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61854:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3481, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61879:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3482, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3476, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "61845:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61845:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3484, + "nodeType": "EmitStatement", + "src": "61840:51:1" + } + ] + }, + "documentation": { + "id": 3463, + "nodeType": "StructuredDocumentation", + "src": "61621:101:1", + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3486, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3465, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61745:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61745:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3467, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61757:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61757:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "61744:29:1" + }, + "returnParameters": { + "id": 3469, + "nodeType": "ParameterList", + "parameters": [], + "src": "61791:0:1" + }, + "scope": 3498, + "src": "61727:189:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3496, + "nodeType": "Block", + "src": "62602:3:1", + "statements": [] + }, + "documentation": { + "id": 3487, + "nodeType": "StructuredDocumentation", + "src": "61922:585:1", + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3497, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3489, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62542:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62542:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3491, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62556:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62556:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3493, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62568:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "62568:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "62541:43:1" + }, + "returnParameters": { + "id": 3495, + "nodeType": "ParameterList", + "parameters": [], + "src": "62602:0:1" + }, + "scope": 3498, + "src": "62512:93:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "46080:16527:1" + } + ], + "src": "84:62524:1" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "license": "MIT" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 509, + "name": "PragmaDirective", + "src": "84:31:1" + }, + { + "attributes": { + "abstract": true, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgSender", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 510, + "name": "ParameterList", + "src": "668:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 518, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 511, + "name": "ElementaryTypeName", + "src": "702:15:1" + } + ], + "id": 512, + "name": "VariableDeclaration", + "src": "702:15:1" + } + ], + "id": 513, + "name": "ParameterList", + "src": "701:17:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 513 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 514, + "name": "Identifier", + "src": "736:3:1" + } + ], + "id": 515, + "name": "MemberAccess", + "src": "736:10:1" + } + ], + "id": 516, + "name": "Return", + "src": "729:17:1" + } + ], + "id": 517, + "name": "Block", + "src": "719:34:1" + } + ], + "id": 518, + "name": "FunctionDefinition", + "src": "649:104:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgData", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 519, + "name": "ParameterList", + "src": "776:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 529, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 520, + "name": "ElementaryTypeName", + "src": "810:5:1" + } + ], + "id": 521, + "name": "VariableDeclaration", + "src": "810:12:1" + } + ], + "id": 522, + "name": "ParameterList", + "src": "809:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "contract Context", + "value": "this" + }, + "id": 523, + "name": "Identifier", + "src": "834:4:1" + } + ], + "id": 524, + "name": "ExpressionStatement", + "src": "834:4:1" + }, + { + "attributes": { + "functionReturnParameters": 522 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "data", + "type": "bytes calldata" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 525, + "name": "Identifier", + "src": "974:3:1" + } + ], + "id": 526, + "name": "MemberAccess", + "src": "974:8:1" + } + ], + "id": 527, + "name": "Return", + "src": "967:15:1" + } + ], + "id": 528, + "name": "Block", + "src": "824:165:1" + } + ], + "id": 529, + "name": "FunctionDefinition", + "src": "759:230:1" + } + ], + "id": 530, + "name": "ContractDefinition", + "src": "617:374:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 531, + "name": "PragmaDirective", + "src": "1053:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "id": 532, + "name": "StructuredDocumentation", + "src": "1086:279:1" + }, + { + "attributes": { + "functionSelector": "01ffc9a7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 541, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "id": 533, + "name": "StructuredDocumentation", + "src": "1390:340:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 534, + "name": "ElementaryTypeName", + "src": "1762:6:1" + } + ], + "id": 535, + "name": "VariableDeclaration", + "src": "1762:18:1" + } + ], + "id": 536, + "name": "ParameterList", + "src": "1761:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 537, + "name": "ElementaryTypeName", + "src": "1805:4:1" + } + ], + "id": 538, + "name": "VariableDeclaration", + "src": "1805:4:1" + } + ], + "id": 539, + "name": "ParameterList", + "src": "1804:6:1" + } + ], + "id": 540, + "name": "FunctionDefinition", + "src": "1735:76:1" + } + ], + "id": 541, + "name": "ContractDefinition", + "src": "1366:447:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 542, + "name": "PragmaDirective", + "src": "1873:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "id": 543, + "name": "StructuredDocumentation", + "src": "1907:67:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 544, + "name": "UserDefinedTypeName", + "src": "1996:7:1" + } + ], + "id": 545, + "name": "InheritanceSpecifier", + "src": "1996:7:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Transfer" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 546, + "name": "StructuredDocumentation", + "src": "2010:88:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "from", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 547, + "name": "ElementaryTypeName", + "src": "2118:7:1" + } + ], + "id": 548, + "name": "VariableDeclaration", + "src": "2118:20:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "to", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 549, + "name": "ElementaryTypeName", + "src": "2140:7:1" + } + ], + "id": 550, + "name": "VariableDeclaration", + "src": "2140:18:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 551, + "name": "ElementaryTypeName", + "src": "2160:7:1" + } + ], + "id": 552, + "name": "VariableDeclaration", + "src": "2160:23:1" + } + ], + "id": 553, + "name": "ParameterList", + "src": "2117:67:1" + } + ], + "id": 554, + "name": "EventDefinition", + "src": "2103:82:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Approval" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 555, + "name": "StructuredDocumentation", + "src": "2191:94:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 556, + "name": "ElementaryTypeName", + "src": "2305:7:1" + } + ], + "id": 557, + "name": "VariableDeclaration", + "src": "2305:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 558, + "name": "ElementaryTypeName", + "src": "2328:7:1" + } + ], + "id": 559, + "name": "VariableDeclaration", + "src": "2328:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 560, + "name": "ElementaryTypeName", + "src": "2354:7:1" + } + ], + "id": 561, + "name": "VariableDeclaration", + "src": "2354:23:1" + } + ], + "id": 562, + "name": "ParameterList", + "src": "2304:74:1" + } + ], + "id": 563, + "name": "EventDefinition", + "src": "2290:89:1" + }, + { + "attributes": { + "anonymous": false, + "name": "ApprovalForAll" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 564, + "name": "StructuredDocumentation", + "src": "2385:117:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 565, + "name": "ElementaryTypeName", + "src": "2528:7:1" + } + ], + "id": 566, + "name": "VariableDeclaration", + "src": "2528:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 567, + "name": "ElementaryTypeName", + "src": "2551:7:1" + } + ], + "id": 568, + "name": "VariableDeclaration", + "src": "2551:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 569, + "name": "ElementaryTypeName", + "src": "2577:4:1" + } + ], + "id": 570, + "name": "VariableDeclaration", + "src": "2577:13:1" + } + ], + "id": 571, + "name": "ParameterList", + "src": "2527:64:1" + } + ], + "id": 572, + "name": "EventDefinition", + "src": "2507:85:1" + }, + { + "attributes": { + "functionSelector": "70a08231", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "id": 573, + "name": "StructuredDocumentation", + "src": "2598:76:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 574, + "name": "ElementaryTypeName", + "src": "2698:7:1" + } + ], + "id": 575, + "name": "VariableDeclaration", + "src": "2698:13:1" + } + ], + "id": 576, + "name": "ParameterList", + "src": "2697:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "balance", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 577, + "name": "ElementaryTypeName", + "src": "2736:7:1" + } + ], + "id": 578, + "name": "VariableDeclaration", + "src": "2736:15:1" + } + ], + "id": 579, + "name": "ParameterList", + "src": "2735:17:1" + } + ], + "id": 580, + "name": "FunctionDefinition", + "src": "2679:74:1" + }, + { + "attributes": { + "functionSelector": "6352211e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 581, + "name": "StructuredDocumentation", + "src": "2759:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 582, + "name": "ElementaryTypeName", + "src": "2912:7:1" + } + ], + "id": 583, + "name": "VariableDeclaration", + "src": "2912:15:1" + } + ], + "id": 584, + "name": "ParameterList", + "src": "2911:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 585, + "name": "ElementaryTypeName", + "src": "2952:7:1" + } + ], + "id": 586, + "name": "VariableDeclaration", + "src": "2952:13:1" + } + ], + "id": 587, + "name": "ParameterList", + "src": "2951:15:1" + } + ], + "id": 588, + "name": "FunctionDefinition", + "src": "2895:72:1" + }, + { + "attributes": { + "functionSelector": "42842e0e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 589, + "name": "StructuredDocumentation", + "src": "2973:690:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 590, + "name": "ElementaryTypeName", + "src": "3694:7:1" + } + ], + "id": 591, + "name": "VariableDeclaration", + "src": "3694:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 592, + "name": "ElementaryTypeName", + "src": "3708:7:1" + } + ], + "id": 593, + "name": "VariableDeclaration", + "src": "3708:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 594, + "name": "ElementaryTypeName", + "src": "3720:7:1" + } + ], + "id": 595, + "name": "VariableDeclaration", + "src": "3720:15:1" + } + ], + "id": 596, + "name": "ParameterList", + "src": "3693:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 597, + "name": "ParameterList", + "src": "3745:0:1" + } + ], + "id": 598, + "name": "FunctionDefinition", + "src": "3668:78:1" + }, + { + "attributes": { + "functionSelector": "23b872dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "id": 599, + "name": "StructuredDocumentation", + "src": "3752:504:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 600, + "name": "ElementaryTypeName", + "src": "4283:7:1" + } + ], + "id": 601, + "name": "VariableDeclaration", + "src": "4283:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 602, + "name": "ElementaryTypeName", + "src": "4297:7:1" + } + ], + "id": 603, + "name": "VariableDeclaration", + "src": "4297:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 604, + "name": "ElementaryTypeName", + "src": "4309:7:1" + } + ], + "id": 605, + "name": "VariableDeclaration", + "src": "4309:15:1" + } + ], + "id": 606, + "name": "ParameterList", + "src": "4282:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 607, + "name": "ParameterList", + "src": "4334:0:1" + } + ], + "id": 608, + "name": "FunctionDefinition", + "src": "4261:74:1" + }, + { + "attributes": { + "functionSelector": "095ea7b3", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "id": 609, + "name": "StructuredDocumentation", + "src": "4341:452:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 610, + "name": "ElementaryTypeName", + "src": "4815:7:1" + } + ], + "id": 611, + "name": "VariableDeclaration", + "src": "4815:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 612, + "name": "ElementaryTypeName", + "src": "4827:7:1" + } + ], + "id": 613, + "name": "VariableDeclaration", + "src": "4827:15:1" + } + ], + "id": 614, + "name": "ParameterList", + "src": "4814:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 615, + "name": "ParameterList", + "src": "4852:0:1" + } + ], + "id": 616, + "name": "FunctionDefinition", + "src": "4798:55:1" + }, + { + "attributes": { + "functionSelector": "081812fc", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 617, + "name": "StructuredDocumentation", + "src": "4859:139:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 618, + "name": "ElementaryTypeName", + "src": "5024:7:1" + } + ], + "id": 619, + "name": "VariableDeclaration", + "src": "5024:15:1" + } + ], + "id": 620, + "name": "ParameterList", + "src": "5023:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 621, + "name": "ElementaryTypeName", + "src": "5064:7:1" + } + ], + "id": 622, + "name": "VariableDeclaration", + "src": "5064:16:1" + } + ], + "id": 623, + "name": "ParameterList", + "src": "5063:18:1" + } + ], + "id": 624, + "name": "FunctionDefinition", + "src": "5003:79:1" + }, + { + "attributes": { + "functionSelector": "a22cb465", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "id": 625, + "name": "StructuredDocumentation", + "src": "5088:309:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 626, + "name": "ElementaryTypeName", + "src": "5429:7:1" + } + ], + "id": 627, + "name": "VariableDeclaration", + "src": "5429:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_approved", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 628, + "name": "ElementaryTypeName", + "src": "5447:4:1" + } + ], + "id": 629, + "name": "VariableDeclaration", + "src": "5447:14:1" + } + ], + "id": 630, + "name": "ParameterList", + "src": "5428:34:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 631, + "name": "ParameterList", + "src": "5471:0:1" + } + ], + "id": 632, + "name": "FunctionDefinition", + "src": "5402:70:1" + }, + { + "attributes": { + "functionSelector": "e985e9c5", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "id": 633, + "name": "StructuredDocumentation", + "src": "5478:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 634, + "name": "ElementaryTypeName", + "src": "5647:7:1" + } + ], + "id": 635, + "name": "VariableDeclaration", + "src": "5647:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 636, + "name": "ElementaryTypeName", + "src": "5662:7:1" + } + ], + "id": 637, + "name": "VariableDeclaration", + "src": "5662:16:1" + } + ], + "id": 638, + "name": "ParameterList", + "src": "5646:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 639, + "name": "ElementaryTypeName", + "src": "5703:4:1" + } + ], + "id": 640, + "name": "VariableDeclaration", + "src": "5703:4:1" + } + ], + "id": 641, + "name": "ParameterList", + "src": "5702:6:1" + } + ], + "id": 642, + "name": "FunctionDefinition", + "src": "5621:88:1" + }, + { + "attributes": { + "functionSelector": "b88d4fde", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 643, + "name": "StructuredDocumentation", + "src": "5715:568:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 644, + "name": "ElementaryTypeName", + "src": "6314:7:1" + } + ], + "id": 645, + "name": "VariableDeclaration", + "src": "6314:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 646, + "name": "ElementaryTypeName", + "src": "6328:7:1" + } + ], + "id": 647, + "name": "VariableDeclaration", + "src": "6328:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 648, + "name": "ElementaryTypeName", + "src": "6340:7:1" + } + ], + "id": 649, + "name": "VariableDeclaration", + "src": "6340:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 654, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 650, + "name": "ElementaryTypeName", + "src": "6357:5:1" + } + ], + "id": 651, + "name": "VariableDeclaration", + "src": "6357:19:1" + } + ], + "id": 652, + "name": "ParameterList", + "src": "6313:64:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 653, + "name": "ParameterList", + "src": "6386:0:1" + } + ], + "id": 654, + "name": "FunctionDefinition", + "src": "6288:99:1" + } + ], + "id": 655, + "name": "ContractDefinition", + "src": "1975:4414:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 656, + "name": "PragmaDirective", + "src": "6457:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 657, + "name": "StructuredDocumentation", + "src": "6491:133:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 658, + "name": "UserDefinedTypeName", + "src": "6654:7:1" + } + ], + "id": 659, + "name": "InheritanceSpecifier", + "src": "6654:7:1" + }, + { + "attributes": { + "functionSelector": "06fdde03", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection name." + }, + "id": 660, + "name": "StructuredDocumentation", + "src": "6669:58:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 661, + "name": "ParameterList", + "src": "6745:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 665, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 662, + "name": "ElementaryTypeName", + "src": "6771:6:1" + } + ], + "id": 663, + "name": "VariableDeclaration", + "src": "6771:13:1" + } + ], + "id": 664, + "name": "ParameterList", + "src": "6770:15:1" + } + ], + "id": 665, + "name": "FunctionDefinition", + "src": "6732:54:1" + }, + { + "attributes": { + "functionSelector": "95d89b41", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection symbol." + }, + "id": 666, + "name": "StructuredDocumentation", + "src": "6792:60:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 667, + "name": "ParameterList", + "src": "6872:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 671, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 668, + "name": "ElementaryTypeName", + "src": "6898:6:1" + } + ], + "id": 669, + "name": "VariableDeclaration", + "src": "6898:13:1" + } + ], + "id": 670, + "name": "ParameterList", + "src": "6897:15:1" + } + ], + "id": 671, + "name": "FunctionDefinition", + "src": "6857:56:1" + }, + { + "attributes": { + "functionSelector": "c87b56dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "id": 672, + "name": "StructuredDocumentation", + "src": "6919:90:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 679, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 673, + "name": "ElementaryTypeName", + "src": "7032:7:1" + } + ], + "id": 674, + "name": "VariableDeclaration", + "src": "7032:15:1" + } + ], + "id": 675, + "name": "ParameterList", + "src": "7031:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 679, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 676, + "name": "ElementaryTypeName", + "src": "7072:6:1" + } + ], + "id": 677, + "name": "VariableDeclaration", + "src": "7072:13:1" + } + ], + "id": 678, + "name": "ParameterList", + "src": "7071:15:1" + } + ], + "id": 679, + "name": "FunctionDefinition", + "src": "7014:73:1" + } + ], + "id": 680, + "name": "ContractDefinition", + "src": "6625:464:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 681, + "name": "PragmaDirective", + "src": "7161:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 682, + "name": "StructuredDocumentation", + "src": "7195:136:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 683, + "name": "UserDefinedTypeName", + "src": "7363:7:1" + } + ], + "id": 684, + "name": "InheritanceSpecifier", + "src": "7363:7:1" + }, + { + "attributes": { + "functionSelector": "18160ddd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "id": 685, + "name": "StructuredDocumentation", + "src": "7378:82:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 686, + "name": "ParameterList", + "src": "7485:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 690, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 687, + "name": "ElementaryTypeName", + "src": "7511:7:1" + } + ], + "id": 688, + "name": "VariableDeclaration", + "src": "7511:7:1" + } + ], + "id": 689, + "name": "ParameterList", + "src": "7510:9:1" + } + ], + "id": 690, + "name": "FunctionDefinition", + "src": "7465:55:1" + }, + { + "attributes": { + "functionSelector": "2f745c59", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "id": 691, + "name": "StructuredDocumentation", + "src": "7526:171:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 692, + "name": "ElementaryTypeName", + "src": "7731:7:1" + } + ], + "id": 693, + "name": "VariableDeclaration", + "src": "7731:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 694, + "name": "ElementaryTypeName", + "src": "7746:7:1" + } + ], + "id": 695, + "name": "VariableDeclaration", + "src": "7746:13:1" + } + ], + "id": 696, + "name": "ParameterList", + "src": "7730:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 697, + "name": "ElementaryTypeName", + "src": "7784:7:1" + } + ], + "id": 698, + "name": "VariableDeclaration", + "src": "7784:15:1" + } + ], + "id": 699, + "name": "ParameterList", + "src": "7783:17:1" + } + ], + "id": 700, + "name": "FunctionDefinition", + "src": "7702:99:1" + }, + { + "attributes": { + "functionSelector": "4f6ccce7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "id": 701, + "name": "StructuredDocumentation", + "src": "7807:164:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 702, + "name": "ElementaryTypeName", + "src": "7998:7:1" + } + ], + "id": 703, + "name": "VariableDeclaration", + "src": "7998:13:1" + } + ], + "id": 704, + "name": "ParameterList", + "src": "7997:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 705, + "name": "ElementaryTypeName", + "src": "8036:7:1" + } + ], + "id": 706, + "name": "VariableDeclaration", + "src": "8036:7:1" + } + ], + "id": 707, + "name": "ParameterList", + "src": "8035:9:1" + } + ], + "id": 708, + "name": "FunctionDefinition", + "src": "7976:69:1" + } + ], + "id": 709, + "name": "ContractDefinition", + "src": "7332:715:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 710, + "name": "PragmaDirective", + "src": "8117:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "id": 711, + "name": "StructuredDocumentation", + "src": "8150:152:1" + }, + { + "attributes": { + "functionSelector": "150b7a02", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "onERC721Received", + "scope": 726, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "id": 712, + "name": "StructuredDocumentation", + "src": "8335:485:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 713, + "name": "ElementaryTypeName", + "src": "8851:7:1" + } + ], + "id": 714, + "name": "VariableDeclaration", + "src": "8851:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 715, + "name": "ElementaryTypeName", + "src": "8869:7:1" + } + ], + "id": 716, + "name": "VariableDeclaration", + "src": "8869:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 717, + "name": "ElementaryTypeName", + "src": "8883:7:1" + } + ], + "id": 718, + "name": "VariableDeclaration", + "src": "8883:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 725, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 719, + "name": "ElementaryTypeName", + "src": "8900:5:1" + } + ], + "id": 720, + "name": "VariableDeclaration", + "src": "8900:19:1" + } + ], + "id": 721, + "name": "ParameterList", + "src": "8850:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 722, + "name": "ElementaryTypeName", + "src": "8939:6:1" + } + ], + "id": 723, + "name": "VariableDeclaration", + "src": "8939:6:1" + } + ], + "id": 724, + "name": "ParameterList", + "src": "8938:8:1" + } + ], + "id": 725, + "name": "FunctionDefinition", + "src": "8825:122:1" + } + ], + "id": 726, + "name": "ContractDefinition", + "src": "8303:646:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 727, + "name": "PragmaDirective", + "src": "9009:31:1" + }, + { + "attributes": { + "abstract": true, + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "id": 728, + "name": "StructuredDocumentation", + "src": "9043:171:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 729, + "name": "UserDefinedTypeName", + "src": "9243:7:1" + } + ], + "id": 730, + "name": "InheritanceSpecifier", + "src": "9243:7:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 731, + "name": "ElementaryTypeName", + "src": "9340:6:1" + }, + { + "attributes": { + "hexvalue": "30783031666663396137", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 33540519", + "value": "0x01ffc9a7" + }, + "id": 732, + "name": "Literal", + "src": "9387:10:1" + } + ], + "id": 733, + "name": "VariableDeclaration", + "src": "9340:57:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_supportedInterfaces", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes4 => bool)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes4 => bool)" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 735, + "name": "ElementaryTypeName", + "src": "9499:6:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 736, + "name": "ElementaryTypeName", + "src": "9509:4:1" + } + ], + "id": 737, + "name": "Mapping", + "src": "9491:23:1" + }, + { + "attributes": { + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 734, + "name": "StructuredDocumentation", + "src": "9404:82:1" + } + ], + "id": 738, + "name": "VariableDeclaration", + "src": "9491:52:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 739, + "name": "ParameterList", + "src": "9562:2:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 740, + "name": "ParameterList", + "src": "9565:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 741, + "name": "Identifier", + "src": "9711:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 733, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC165" + }, + "id": 742, + "name": "Identifier", + "src": "9730:20:1" + } + ], + "id": 743, + "name": "FunctionCall", + "src": "9711:40:1" + } + ], + "id": 744, + "name": "ExpressionStatement", + "src": "9711:40:1" + } + ], + "id": 745, + "name": "Block", + "src": "9565:193:1" + } + ], + "id": 746, + "name": "FunctionDefinition", + "src": "9550:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 540 + ], + "functionSelector": "01ffc9a7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 781, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "id": 747, + "name": "StructuredDocumentation", + "src": "9764:139:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 751, + "name": "OverrideSpecifier", + "src": "9975:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 748, + "name": "ElementaryTypeName", + "src": "9935:6:1" + } + ], + "id": 749, + "name": "VariableDeclaration", + "src": "9935:18:1" + } + ], + "id": 750, + "name": "ParameterList", + "src": "9934:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 752, + "name": "ElementaryTypeName", + "src": "9993:4:1" + } + ], + "id": 753, + "name": "VariableDeclaration", + "src": "9993:4:1" + } + ], + "id": 754, + "name": "ParameterList", + "src": "9992:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 754 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 755, + "name": "Identifier", + "src": "10016:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 749, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 756, + "name": "Identifier", + "src": "10037:11:1" + } + ], + "id": 757, + "name": "IndexAccess", + "src": "10016:33:1" + } + ], + "id": 758, + "name": "Return", + "src": "10009:40:1" + } + ], + "id": 759, + "name": "Block", + "src": "9999:57:1" + } + ], + "id": 760, + "name": "FunctionDefinition", + "src": "9908:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_registerInterface", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 761, + "name": "StructuredDocumentation", + "src": "10062:383:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 780, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 762, + "name": "ElementaryTypeName", + "src": "10478:6:1" + } + ], + "id": 763, + "name": "VariableDeclaration", + "src": "10478:18:1" + } + ], + "id": 764, + "name": "ParameterList", + "src": "10477:20:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 765, + "name": "ParameterList", + "src": "10515:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 766, + "name": "Identifier", + "src": "10525:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 767, + "name": "Identifier", + "src": "10533:11:1" + }, + { + "attributes": { + "hexvalue": "30786666666666666666", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4294967295", + "value": "0xffffffff" + }, + "id": 768, + "name": "Literal", + "src": "10548:10:1" + } + ], + "id": 769, + "name": "BinaryOperation", + "src": "10533:25:1" + }, + { + "attributes": { + "hexvalue": "4552433136353a20696e76616c696420696e74657266616365206964", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC165: invalid interface id\"", + "value": "ERC165: invalid interface id" + }, + "id": 770, + "name": "Literal", + "src": "10560:30:1" + } + ], + "id": 771, + "name": "FunctionCall", + "src": "10525:66:1" + } + ], + "id": 772, + "name": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 773, + "name": "Identifier", + "src": "10601:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 774, + "name": "Identifier", + "src": "10622:11:1" + } + ], + "id": 775, + "name": "IndexAccess", + "src": "10601:33:1" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 776, + "name": "Literal", + "src": "10637:4:1" + } + ], + "id": 777, + "name": "Assignment", + "src": "10601:40:1" + } + ], + "id": 778, + "name": "ExpressionStatement", + "src": "10601:40:1" + } + ], + "id": 779, + "name": "Block", + "src": "10515:133:1" + } + ], + "id": 780, + "name": "FunctionDefinition", + "src": "10450:198:1" + } + ], + "id": 781, + "name": "ContractDefinition", + "src": "9215:1435:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 782, + "name": "PragmaDirective", + "src": "10703:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "id": 783, + "name": "StructuredDocumentation", + "src": "10736:563:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryAdd", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 784, + "name": "StructuredDocumentation", + "src": "11323:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 785, + "name": "ElementaryTypeName", + "src": "11475:7:1" + } + ], + "id": 786, + "name": "VariableDeclaration", + "src": "11475:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 787, + "name": "ElementaryTypeName", + "src": "11486:7:1" + } + ], + "id": 788, + "name": "VariableDeclaration", + "src": "11486:9:1" + } + ], + "id": 789, + "name": "ParameterList", + "src": "11474:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 790, + "name": "ElementaryTypeName", + "src": "11520:4:1" + } + ], + "id": 791, + "name": "VariableDeclaration", + "src": "11520:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 792, + "name": "ElementaryTypeName", + "src": "11526:7:1" + } + ], + "id": 793, + "name": "VariableDeclaration", + "src": "11526:7:1" + } + ], + "id": 794, + "name": "ParameterList", + "src": "11519:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 796 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 813, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 795, + "name": "ElementaryTypeName", + "src": "11545:7:1" + } + ], + "id": 796, + "name": "VariableDeclaration", + "src": "11545:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 797, + "name": "Identifier", + "src": "11557:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 788, + "type": "uint256", + "value": "b" + }, + "id": 798, + "name": "Identifier", + "src": "11561:1:1" + } + ], + "id": 799, + "name": "BinaryOperation", + "src": "11557:5:1" + } + ], + "id": 800, + "name": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 801, + "name": "Identifier", + "src": "11576:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 802, + "name": "Identifier", + "src": "11580:1:1" + } + ], + "id": 803, + "name": "BinaryOperation", + "src": "11576:5:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 804, + "name": "Literal", + "src": "11591:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 805, + "name": "Literal", + "src": "11598:1:1" + } + ], + "id": 806, + "name": "TupleExpression", + "src": "11590:10:1" + } + ], + "id": 807, + "name": "Return", + "src": "11583:17:1" + } + ], + "id": 808, + "name": "IfStatement", + "src": "11572:28:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 809, + "name": "Literal", + "src": "11618:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 810, + "name": "Identifier", + "src": "11624:1:1" + } + ], + "id": 811, + "name": "TupleExpression", + "src": "11617:9:1" + } + ], + "id": 812, + "name": "Return", + "src": "11610:16:1" + } + ], + "id": 813, + "name": "Block", + "src": "11535:98:1" + } + ], + "id": 814, + "name": "FunctionDefinition", + "src": "11459:174:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "trySub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 815, + "name": "StructuredDocumentation", + "src": "11639:135:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 816, + "name": "ElementaryTypeName", + "src": "11795:7:1" + } + ], + "id": 817, + "name": "VariableDeclaration", + "src": "11795:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 818, + "name": "ElementaryTypeName", + "src": "11806:7:1" + } + ], + "id": 819, + "name": "VariableDeclaration", + "src": "11806:9:1" + } + ], + "id": 820, + "name": "ParameterList", + "src": "11794:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 821, + "name": "ElementaryTypeName", + "src": "11840:4:1" + } + ], + "id": 822, + "name": "VariableDeclaration", + "src": "11840:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 823, + "name": "ElementaryTypeName", + "src": "11846:7:1" + } + ], + "id": 824, + "name": "VariableDeclaration", + "src": "11846:7:1" + } + ], + "id": 825, + "name": "ParameterList", + "src": "11839:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 826, + "name": "Identifier", + "src": "11869:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 827, + "name": "Identifier", + "src": "11873:1:1" + } + ], + "id": 828, + "name": "BinaryOperation", + "src": "11869:5:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 829, + "name": "Literal", + "src": "11884:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 830, + "name": "Literal", + "src": "11891:1:1" + } + ], + "id": 831, + "name": "TupleExpression", + "src": "11883:10:1" + } + ], + "id": 832, + "name": "Return", + "src": "11876:17:1" + } + ], + "id": 833, + "name": "IfStatement", + "src": "11865:28:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 834, + "name": "Literal", + "src": "11911:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 835, + "name": "Identifier", + "src": "11917:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 836, + "name": "Identifier", + "src": "11921:1:1" + } + ], + "id": 837, + "name": "BinaryOperation", + "src": "11917:5:1" + } + ], + "id": 838, + "name": "TupleExpression", + "src": "11910:13:1" + } + ], + "id": 839, + "name": "Return", + "src": "11903:20:1" + } + ], + "id": 840, + "name": "Block", + "src": "11855:75:1" + } + ], + "id": 841, + "name": "FunctionDefinition", + "src": "11779:151:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 842, + "name": "StructuredDocumentation", + "src": "11936:137:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 843, + "name": "ElementaryTypeName", + "src": "12094:7:1" + } + ], + "id": 844, + "name": "VariableDeclaration", + "src": "12094:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 845, + "name": "ElementaryTypeName", + "src": "12105:7:1" + } + ], + "id": 846, + "name": "VariableDeclaration", + "src": "12105:9:1" + } + ], + "id": 847, + "name": "ParameterList", + "src": "12093:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 848, + "name": "ElementaryTypeName", + "src": "12139:4:1" + } + ], + "id": 849, + "name": "VariableDeclaration", + "src": "12139:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 850, + "name": "ElementaryTypeName", + "src": "12145:7:1" + } + ], + "id": 851, + "name": "VariableDeclaration", + "src": "12145:7:1" + } + ], + "id": 852, + "name": "ParameterList", + "src": "12138:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 853, + "name": "Identifier", + "src": "12386:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 854, + "name": "Literal", + "src": "12391:1:1" + } + ], + "id": 855, + "name": "BinaryOperation", + "src": "12386:6:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 856, + "name": "Literal", + "src": "12402:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 857, + "name": "Literal", + "src": "12408:1:1" + } + ], + "id": 858, + "name": "TupleExpression", + "src": "12401:9:1" + } + ], + "id": 859, + "name": "Return", + "src": "12394:16:1" + } + ], + "id": 860, + "name": "IfStatement", + "src": "12382:28:1" + }, + { + "attributes": { + "assignments": [ + 862 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 881, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 861, + "name": "ElementaryTypeName", + "src": "12420:7:1" + } + ], + "id": 862, + "name": "VariableDeclaration", + "src": "12420:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 863, + "name": "Identifier", + "src": "12432:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 864, + "name": "Identifier", + "src": "12436:1:1" + } + ], + "id": 865, + "name": "BinaryOperation", + "src": "12432:5:1" + } + ], + "id": 866, + "name": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 867, + "name": "Identifier", + "src": "12451:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 868, + "name": "Identifier", + "src": "12455:1:1" + } + ], + "id": 869, + "name": "BinaryOperation", + "src": "12451:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 870, + "name": "Identifier", + "src": "12460:1:1" + } + ], + "id": 871, + "name": "BinaryOperation", + "src": "12451:10:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 872, + "name": "Literal", + "src": "12471:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 873, + "name": "Literal", + "src": "12478:1:1" + } + ], + "id": 874, + "name": "TupleExpression", + "src": "12470:10:1" + } + ], + "id": 875, + "name": "Return", + "src": "12463:17:1" + } + ], + "id": 876, + "name": "IfStatement", + "src": "12447:33:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 877, + "name": "Literal", + "src": "12498:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 878, + "name": "Identifier", + "src": "12504:1:1" + } + ], + "id": 879, + "name": "TupleExpression", + "src": "12497:9:1" + } + ], + "id": 880, + "name": "Return", + "src": "12490:16:1" + } + ], + "id": 881, + "name": "Block", + "src": "12154:359:1" + } + ], + "id": 882, + "name": "FunctionDefinition", + "src": "12078:435:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryDiv", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 883, + "name": "StructuredDocumentation", + "src": "12519:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 884, + "name": "ElementaryTypeName", + "src": "12678:7:1" + } + ], + "id": 885, + "name": "VariableDeclaration", + "src": "12678:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 886, + "name": "ElementaryTypeName", + "src": "12689:7:1" + } + ], + "id": 887, + "name": "VariableDeclaration", + "src": "12689:9:1" + } + ], + "id": 888, + "name": "ParameterList", + "src": "12677:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 889, + "name": "ElementaryTypeName", + "src": "12723:4:1" + } + ], + "id": 890, + "name": "VariableDeclaration", + "src": "12723:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 891, + "name": "ElementaryTypeName", + "src": "12729:7:1" + } + ], + "id": 892, + "name": "VariableDeclaration", + "src": "12729:7:1" + } + ], + "id": 893, + "name": "ParameterList", + "src": "12722:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 894, + "name": "Identifier", + "src": "12752:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 895, + "name": "Literal", + "src": "12757:1:1" + } + ], + "id": 896, + "name": "BinaryOperation", + "src": "12752:6:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 897, + "name": "Literal", + "src": "12768:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 898, + "name": "Literal", + "src": "12775:1:1" + } + ], + "id": 899, + "name": "TupleExpression", + "src": "12767:10:1" + } + ], + "id": 900, + "name": "Return", + "src": "12760:17:1" + } + ], + "id": 901, + "name": "IfStatement", + "src": "12748:29:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 902, + "name": "Literal", + "src": "12795:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 885, + "type": "uint256", + "value": "a" + }, + "id": 903, + "name": "Identifier", + "src": "12801:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 904, + "name": "Identifier", + "src": "12805:1:1" + } + ], + "id": 905, + "name": "BinaryOperation", + "src": "12801:5:1" + } + ], + "id": 906, + "name": "TupleExpression", + "src": "12794:13:1" + } + ], + "id": 907, + "name": "Return", + "src": "12787:20:1" + } + ], + "id": 908, + "name": "Block", + "src": "12738:76:1" + } + ], + "id": 909, + "name": "FunctionDefinition", + "src": "12662:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 910, + "name": "StructuredDocumentation", + "src": "12820:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 911, + "name": "ElementaryTypeName", + "src": "12989:7:1" + } + ], + "id": 912, + "name": "VariableDeclaration", + "src": "12989:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 913, + "name": "ElementaryTypeName", + "src": "13000:7:1" + } + ], + "id": 914, + "name": "VariableDeclaration", + "src": "13000:9:1" + } + ], + "id": 915, + "name": "ParameterList", + "src": "12988:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 916, + "name": "ElementaryTypeName", + "src": "13034:4:1" + } + ], + "id": 917, + "name": "VariableDeclaration", + "src": "13034:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 918, + "name": "ElementaryTypeName", + "src": "13040:7:1" + } + ], + "id": 919, + "name": "VariableDeclaration", + "src": "13040:7:1" + } + ], + "id": 920, + "name": "ParameterList", + "src": "13033:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 921, + "name": "Identifier", + "src": "13063:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 922, + "name": "Literal", + "src": "13068:1:1" + } + ], + "id": 923, + "name": "BinaryOperation", + "src": "13063:6:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 924, + "name": "Literal", + "src": "13079:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 925, + "name": "Literal", + "src": "13086:1:1" + } + ], + "id": 926, + "name": "TupleExpression", + "src": "13078:10:1" + } + ], + "id": 927, + "name": "Return", + "src": "13071:17:1" + } + ], + "id": 928, + "name": "IfStatement", + "src": "13059:29:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 929, + "name": "Literal", + "src": "13106:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 912, + "type": "uint256", + "value": "a" + }, + "id": 930, + "name": "Identifier", + "src": "13112:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 931, + "name": "Identifier", + "src": "13116:1:1" + } + ], + "id": 932, + "name": "BinaryOperation", + "src": "13112:5:1" + } + ], + "id": 933, + "name": "TupleExpression", + "src": "13105:13:1" + } + ], + "id": 934, + "name": "Return", + "src": "13098:20:1" + } + ], + "id": 935, + "name": "Block", + "src": "13049:76:1" + } + ], + "id": 936, + "name": "FunctionDefinition", + "src": "12973:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 937, + "name": "StructuredDocumentation", + "src": "13131:224:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 938, + "name": "ElementaryTypeName", + "src": "13373:7:1" + } + ], + "id": 939, + "name": "VariableDeclaration", + "src": "13373:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 940, + "name": "ElementaryTypeName", + "src": "13384:7:1" + } + ], + "id": 941, + "name": "VariableDeclaration", + "src": "13384:9:1" + } + ], + "id": 942, + "name": "ParameterList", + "src": "13372:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 943, + "name": "ElementaryTypeName", + "src": "13418:7:1" + } + ], + "id": 944, + "name": "VariableDeclaration", + "src": "13418:7:1" + } + ], + "id": 945, + "name": "ParameterList", + "src": "13417:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 947 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 961, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 946, + "name": "ElementaryTypeName", + "src": "13437:7:1" + } + ], + "id": 947, + "name": "VariableDeclaration", + "src": "13437:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 948, + "name": "Identifier", + "src": "13449:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 941, + "type": "uint256", + "value": "b" + }, + "id": 949, + "name": "Identifier", + "src": "13453:1:1" + } + ], + "id": 950, + "name": "BinaryOperation", + "src": "13449:5:1" + } + ], + "id": 951, + "name": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 952, + "name": "Identifier", + "src": "13464:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 953, + "name": "Identifier", + "src": "13472:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 954, + "name": "Identifier", + "src": "13477:1:1" + } + ], + "id": 955, + "name": "BinaryOperation", + "src": "13472:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: addition overflow\"", + "value": "SafeMath: addition overflow" + }, + "id": 956, + "name": "Literal", + "src": "13480:29:1" + } + ], + "id": 957, + "name": "FunctionCall", + "src": "13464:46:1" + } + ], + "id": 958, + "name": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "attributes": { + "functionReturnParameters": 945 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 959, + "name": "Identifier", + "src": "13527:1:1" + } + ], + "id": 960, + "name": "Return", + "src": "13520:8:1" + } + ], + "id": 961, + "name": "Block", + "src": "13427:108:1" + } + ], + "id": 962, + "name": "FunctionDefinition", + "src": "13360:175:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 963, + "name": "StructuredDocumentation", + "src": "13541:260:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 964, + "name": "ElementaryTypeName", + "src": "13819:7:1" + } + ], + "id": 965, + "name": "VariableDeclaration", + "src": "13819:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 966, + "name": "ElementaryTypeName", + "src": "13830:7:1" + } + ], + "id": 967, + "name": "VariableDeclaration", + "src": "13830:9:1" + } + ], + "id": 968, + "name": "ParameterList", + "src": "13818:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 969, + "name": "ElementaryTypeName", + "src": "13864:7:1" + } + ], + "id": 970, + "name": "VariableDeclaration", + "src": "13864:7:1" + } + ], + "id": 971, + "name": "ParameterList", + "src": "13863:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 972, + "name": "Identifier", + "src": "13883:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 973, + "name": "Identifier", + "src": "13891:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 974, + "name": "Identifier", + "src": "13896:1:1" + } + ], + "id": 975, + "name": "BinaryOperation", + "src": "13891:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: subtraction overflow\"", + "value": "SafeMath: subtraction overflow" + }, + "id": 976, + "name": "Literal", + "src": "13899:32:1" + } + ], + "id": 977, + "name": "FunctionCall", + "src": "13883:49:1" + } + ], + "id": 978, + "name": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "attributes": { + "functionReturnParameters": 971 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 979, + "name": "Identifier", + "src": "13949:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 980, + "name": "Identifier", + "src": "13953:1:1" + } + ], + "id": 981, + "name": "BinaryOperation", + "src": "13949:5:1" + } + ], + "id": 982, + "name": "Return", + "src": "13942:12:1" + } + ], + "id": 983, + "name": "Block", + "src": "13873:88:1" + } + ], + "id": 984, + "name": "FunctionDefinition", + "src": "13806:155:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 985, + "name": "StructuredDocumentation", + "src": "13967:236:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 986, + "name": "ElementaryTypeName", + "src": "14221:7:1" + } + ], + "id": 987, + "name": "VariableDeclaration", + "src": "14221:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 988, + "name": "ElementaryTypeName", + "src": "14232:7:1" + } + ], + "id": 989, + "name": "VariableDeclaration", + "src": "14232:9:1" + } + ], + "id": 990, + "name": "ParameterList", + "src": "14220:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 991, + "name": "ElementaryTypeName", + "src": "14266:7:1" + } + ], + "id": 992, + "name": "VariableDeclaration", + "src": "14266:7:1" + } + ], + "id": 993, + "name": "ParameterList", + "src": "14265:9:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 994, + "name": "Identifier", + "src": "14289:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 995, + "name": "Literal", + "src": "14294:1:1" + } + ], + "id": 996, + "name": "BinaryOperation", + "src": "14289:6:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 997, + "name": "Literal", + "src": "14304:1:1" + } + ], + "id": 998, + "name": "Return", + "src": "14297:8:1" + } + ], + "id": 999, + "name": "IfStatement", + "src": "14285:20:1" + }, + { + "attributes": { + "assignments": [ + 1001 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 1017, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1000, + "name": "ElementaryTypeName", + "src": "14315:7:1" + } + ], + "id": 1001, + "name": "VariableDeclaration", + "src": "14315:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1002, + "name": "Identifier", + "src": "14327:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1003, + "name": "Identifier", + "src": "14331:1:1" + } + ], + "id": 1004, + "name": "BinaryOperation", + "src": "14327:5:1" + } + ], + "id": 1005, + "name": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1006, + "name": "Identifier", + "src": "14342:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1007, + "name": "Identifier", + "src": "14350:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1008, + "name": "Identifier", + "src": "14354:1:1" + } + ], + "id": 1009, + "name": "BinaryOperation", + "src": "14350:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1010, + "name": "Identifier", + "src": "14359:1:1" + } + ], + "id": 1011, + "name": "BinaryOperation", + "src": "14350:10:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: multiplication overflow\"", + "value": "SafeMath: multiplication overflow" + }, + "id": 1012, + "name": "Literal", + "src": "14362:35:1" + } + ], + "id": 1013, + "name": "FunctionCall", + "src": "14342:56:1" + } + ], + "id": 1014, + "name": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1015, + "name": "Identifier", + "src": "14415:1:1" + } + ], + "id": 1016, + "name": "Return", + "src": "14408:8:1" + } + ], + "id": 1017, + "name": "Block", + "src": "14275:148:1" + } + ], + "id": 1018, + "name": "FunctionDefinition", + "src": "14208:215:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1019, + "name": "StructuredDocumentation", + "src": "14429:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1020, + "name": "ElementaryTypeName", + "src": "14900:7:1" + } + ], + "id": 1021, + "name": "VariableDeclaration", + "src": "14900:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1022, + "name": "ElementaryTypeName", + "src": "14911:7:1" + } + ], + "id": 1023, + "name": "VariableDeclaration", + "src": "14911:9:1" + } + ], + "id": 1024, + "name": "ParameterList", + "src": "14899:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1025, + "name": "ElementaryTypeName", + "src": "14945:7:1" + } + ], + "id": 1026, + "name": "VariableDeclaration", + "src": "14945:7:1" + } + ], + "id": 1027, + "name": "ParameterList", + "src": "14944:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1028, + "name": "Identifier", + "src": "14964:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1029, + "name": "Identifier", + "src": "14972:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1030, + "name": "Literal", + "src": "14976:1:1" + } + ], + "id": 1031, + "name": "BinaryOperation", + "src": "14972:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206469766973696f6e206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: division by zero\"", + "value": "SafeMath: division by zero" + }, + "id": 1032, + "name": "Literal", + "src": "14979:28:1" + } + ], + "id": 1033, + "name": "FunctionCall", + "src": "14964:44:1" + } + ], + "id": 1034, + "name": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "attributes": { + "functionReturnParameters": 1027 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1021, + "type": "uint256", + "value": "a" + }, + "id": 1035, + "name": "Identifier", + "src": "15025:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1036, + "name": "Identifier", + "src": "15029:1:1" + } + ], + "id": 1037, + "name": "BinaryOperation", + "src": "15025:5:1" + } + ], + "id": 1038, + "name": "Return", + "src": "15018:12:1" + } + ], + "id": 1039, + "name": "Block", + "src": "14954:83:1" + } + ], + "id": 1040, + "name": "FunctionDefinition", + "src": "14887:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1041, + "name": "StructuredDocumentation", + "src": "15043:442:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1042, + "name": "ElementaryTypeName", + "src": "15503:7:1" + } + ], + "id": 1043, + "name": "VariableDeclaration", + "src": "15503:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1044, + "name": "ElementaryTypeName", + "src": "15514:7:1" + } + ], + "id": 1045, + "name": "VariableDeclaration", + "src": "15514:9:1" + } + ], + "id": 1046, + "name": "ParameterList", + "src": "15502:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1047, + "name": "ElementaryTypeName", + "src": "15548:7:1" + } + ], + "id": 1048, + "name": "VariableDeclaration", + "src": "15548:7:1" + } + ], + "id": 1049, + "name": "ParameterList", + "src": "15547:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1050, + "name": "Identifier", + "src": "15567:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1051, + "name": "Identifier", + "src": "15575:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1052, + "name": "Literal", + "src": "15579:1:1" + } + ], + "id": 1053, + "name": "BinaryOperation", + "src": "15575:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: modulo by zero\"", + "value": "SafeMath: modulo by zero" + }, + "id": 1054, + "name": "Literal", + "src": "15582:26:1" + } + ], + "id": 1055, + "name": "FunctionCall", + "src": "15567:42:1" + } + ], + "id": 1056, + "name": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "attributes": { + "functionReturnParameters": 1049 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1043, + "type": "uint256", + "value": "a" + }, + "id": 1057, + "name": "Identifier", + "src": "15626:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1058, + "name": "Identifier", + "src": "15630:1:1" + } + ], + "id": 1059, + "name": "BinaryOperation", + "src": "15626:5:1" + } + ], + "id": 1060, + "name": "Return", + "src": "15619:12:1" + } + ], + "id": 1061, + "name": "Block", + "src": "15557:81:1" + } + ], + "id": 1062, + "name": "FunctionDefinition", + "src": "15490:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1063, + "name": "StructuredDocumentation", + "src": "15644:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1064, + "name": "ElementaryTypeName", + "src": "16115:7:1" + } + ], + "id": 1065, + "name": "VariableDeclaration", + "src": "16115:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1066, + "name": "ElementaryTypeName", + "src": "16126:7:1" + } + ], + "id": 1067, + "name": "VariableDeclaration", + "src": "16126:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1086, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1068, + "name": "ElementaryTypeName", + "src": "16137:6:1" + } + ], + "id": 1069, + "name": "VariableDeclaration", + "src": "16137:26:1" + } + ], + "id": 1070, + "name": "ParameterList", + "src": "16114:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1071, + "name": "ElementaryTypeName", + "src": "16188:7:1" + } + ], + "id": 1072, + "name": "VariableDeclaration", + "src": "16188:7:1" + } + ], + "id": 1073, + "name": "ParameterList", + "src": "16187:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1074, + "name": "Identifier", + "src": "16207:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1075, + "name": "Identifier", + "src": "16215:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1076, + "name": "Identifier", + "src": "16220:1:1" + } + ], + "id": 1077, + "name": "BinaryOperation", + "src": "16215:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1069, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1078, + "name": "Identifier", + "src": "16223:12:1" + } + ], + "id": 1079, + "name": "FunctionCall", + "src": "16207:29:1" + } + ], + "id": 1080, + "name": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "attributes": { + "functionReturnParameters": 1073 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1081, + "name": "Identifier", + "src": "16253:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1082, + "name": "Identifier", + "src": "16257:1:1" + } + ], + "id": 1083, + "name": "BinaryOperation", + "src": "16253:5:1" + } + ], + "id": 1084, + "name": "Return", + "src": "16246:12:1" + } + ], + "id": 1085, + "name": "Block", + "src": "16197:68:1" + } + ], + "id": 1086, + "name": "FunctionDefinition", + "src": "16102:163:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1087, + "name": "StructuredDocumentation", + "src": "16271:646:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1088, + "name": "ElementaryTypeName", + "src": "16935:7:1" + } + ], + "id": 1089, + "name": "VariableDeclaration", + "src": "16935:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1090, + "name": "ElementaryTypeName", + "src": "16946:7:1" + } + ], + "id": 1091, + "name": "VariableDeclaration", + "src": "16946:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1110, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1092, + "name": "ElementaryTypeName", + "src": "16957:6:1" + } + ], + "id": 1093, + "name": "VariableDeclaration", + "src": "16957:26:1" + } + ], + "id": 1094, + "name": "ParameterList", + "src": "16934:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1095, + "name": "ElementaryTypeName", + "src": "17008:7:1" + } + ], + "id": 1096, + "name": "VariableDeclaration", + "src": "17008:7:1" + } + ], + "id": 1097, + "name": "ParameterList", + "src": "17007:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1098, + "name": "Identifier", + "src": "17027:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1099, + "name": "Identifier", + "src": "17035:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1100, + "name": "Literal", + "src": "17039:1:1" + } + ], + "id": 1101, + "name": "BinaryOperation", + "src": "17035:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1093, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1102, + "name": "Identifier", + "src": "17042:12:1" + } + ], + "id": 1103, + "name": "FunctionCall", + "src": "17027:28:1" + } + ], + "id": 1104, + "name": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1097 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1089, + "type": "uint256", + "value": "a" + }, + "id": 1105, + "name": "Identifier", + "src": "17072:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1106, + "name": "Identifier", + "src": "17076:1:1" + } + ], + "id": 1107, + "name": "BinaryOperation", + "src": "17072:5:1" + } + ], + "id": 1108, + "name": "Return", + "src": "17065:12:1" + } + ], + "id": 1109, + "name": "Block", + "src": "17017:67:1" + } + ], + "id": 1110, + "name": "FunctionDefinition", + "src": "16922:162:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1111, + "name": "StructuredDocumentation", + "src": "17090:635:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1112, + "name": "ElementaryTypeName", + "src": "17743:7:1" + } + ], + "id": 1113, + "name": "VariableDeclaration", + "src": "17743:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1114, + "name": "ElementaryTypeName", + "src": "17754:7:1" + } + ], + "id": 1115, + "name": "VariableDeclaration", + "src": "17754:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1134, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1116, + "name": "ElementaryTypeName", + "src": "17765:6:1" + } + ], + "id": 1117, + "name": "VariableDeclaration", + "src": "17765:26:1" + } + ], + "id": 1118, + "name": "ParameterList", + "src": "17742:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1119, + "name": "ElementaryTypeName", + "src": "17816:7:1" + } + ], + "id": 1120, + "name": "VariableDeclaration", + "src": "17816:7:1" + } + ], + "id": 1121, + "name": "ParameterList", + "src": "17815:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1122, + "name": "Identifier", + "src": "17835:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1123, + "name": "Identifier", + "src": "17843:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1124, + "name": "Literal", + "src": "17847:1:1" + } + ], + "id": 1125, + "name": "BinaryOperation", + "src": "17843:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1117, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1126, + "name": "Identifier", + "src": "17850:12:1" + } + ], + "id": 1127, + "name": "FunctionCall", + "src": "17835:28:1" + } + ], + "id": 1128, + "name": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1121 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "uint256", + "value": "a" + }, + "id": 1129, + "name": "Identifier", + "src": "17880:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1130, + "name": "Identifier", + "src": "17884:1:1" + } + ], + "id": 1131, + "name": "BinaryOperation", + "src": "17880:5:1" + } + ], + "id": 1132, + "name": "Return", + "src": "17873:12:1" + } + ], + "id": 1133, + "name": "Block", + "src": "17825:67:1" + } + ], + "id": 1134, + "name": "FunctionDefinition", + "src": "17730:162:1" + } + ], + "id": 1135, + "name": "ContractDefinition", + "src": "11300:6594:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 1136, + "name": "PragmaDirective", + "src": "17947:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Collection of functions related to the address type" + }, + "id": 1137, + "name": "StructuredDocumentation", + "src": "17980:67:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isContract", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1138, + "name": "StructuredDocumentation", + "src": "18070:565:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "account", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1139, + "name": "ElementaryTypeName", + "src": "18660:7:1" + } + ], + "id": 1140, + "name": "VariableDeclaration", + "src": "18660:15:1" + } + ], + "id": 1141, + "name": "ParameterList", + "src": "18659:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1142, + "name": "ElementaryTypeName", + "src": "18700:4:1" + } + ], + "id": 1143, + "name": "VariableDeclaration", + "src": "18700:4:1" + } + ], + "id": 1144, + "name": "ParameterList", + "src": "18699:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1146 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "size", + "scope": 1153, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1145, + "name": "ElementaryTypeName", + "src": "18903:7:1" + } + ], + "id": 1146, + "name": "VariableDeclaration", + "src": "18903:12:1" + } + ], + "id": 1147, + "name": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "operations": "{ size := extcodesize(account) }" + }, + "children": [], + "id": 1148, + "name": "InlineAssembly", + "src": "18981:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1144 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1146, + "type": "uint256", + "value": "size" + }, + "id": 1149, + "name": "Identifier", + "src": "19038:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1150, + "name": "Literal", + "src": "19045:1:1" + } + ], + "id": 1151, + "name": "BinaryOperation", + "src": "19038:8:1" + } + ], + "id": 1152, + "name": "Return", + "src": "19031:15:1" + } + ], + "id": 1153, + "name": "Block", + "src": "18706:347:1" + } + ], + "id": 1154, + "name": "FunctionDefinition", + "src": "18640:413:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sendValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1155, + "name": "StructuredDocumentation", + "src": "19059:906:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "recipient", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 1156, + "name": "ElementaryTypeName", + "src": "19989:15:1" + } + ], + "id": 1157, + "name": "VariableDeclaration", + "src": "19989:25:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "amount", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1158, + "name": "ElementaryTypeName", + "src": "20016:7:1" + } + ], + "id": 1159, + "name": "VariableDeclaration", + "src": "20016:14:1" + } + ], + "id": 1160, + "name": "ParameterList", + "src": "19988:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1161, + "name": "ParameterList", + "src": "20041:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1162, + "name": "Identifier", + "src": "20051:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1163, + "name": "ElementaryTypeName", + "src": "20059:7:1" + } + ], + "id": 1164, + "name": "ElementaryTypeNameExpression", + "src": "20059:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1165, + "name": "Identifier", + "src": "20067:4:1" + } + ], + "id": 1166, + "name": "FunctionCall", + "src": "20059:13:1" + } + ], + "id": 1167, + "name": "MemberAccess", + "src": "20059:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1168, + "name": "Identifier", + "src": "20084:6:1" + } + ], + "id": 1169, + "name": "BinaryOperation", + "src": "20059:31:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance\"", + "value": "Address: insufficient balance" + }, + "id": 1170, + "name": "Literal", + "src": "20092:31:1" + } + ], + "id": 1171, + "name": "FunctionCall", + "src": "20051:73:1" + } + ], + "id": 1172, + "name": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "attributes": { + "assignments": [ + 1174, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1187, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1173, + "name": "ElementaryTypeName", + "src": "20213:4:1" + } + ], + "id": 1174, + "name": "VariableDeclaration", + "src": "20213:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1157, + "type": "address payable", + "value": "recipient" + }, + "id": 1175, + "name": "Identifier", + "src": "20231:9:1" + } + ], + "id": 1176, + "name": "MemberAccess", + "src": "20231:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1177, + "name": "Identifier", + "src": "20254:6:1" + } + ], + "id": 1178, + "name": "FunctionCallOptions", + "src": "20231:31:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 1179, + "name": "Literal", + "src": "20263:2:1" + } + ], + "id": 1180, + "name": "FunctionCall", + "src": "20231:35:1" + } + ], + "id": 1181, + "name": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1182, + "name": "Identifier", + "src": "20276:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1174, + "type": "bool", + "value": "success" + }, + "id": 1183, + "name": "Identifier", + "src": "20284:7:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: unable to send value, recipient may have reverted\"", + "value": "Address: unable to send value, recipient may have reverted" + }, + "id": 1184, + "name": "Literal", + "src": "20293:60:1" + } + ], + "id": 1185, + "name": "FunctionCall", + "src": "20276:78:1" + } + ], + "id": 1186, + "name": "ExpressionStatement", + "src": "20276:78:1" + } + ], + "id": 1187, + "name": "Block", + "src": "20041:320:1" + } + ], + "id": 1188, + "name": "FunctionDefinition", + "src": "19970:391:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1189, + "name": "StructuredDocumentation", + "src": "20367:730:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1205, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1190, + "name": "ElementaryTypeName", + "src": "21124:7:1" + } + ], + "id": 1191, + "name": "VariableDeclaration", + "src": "21124:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1192, + "name": "ElementaryTypeName", + "src": "21140:5:1" + } + ], + "id": 1193, + "name": "VariableDeclaration", + "src": "21140:17:1" + } + ], + "id": 1194, + "name": "ParameterList", + "src": "21123:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1195, + "name": "ElementaryTypeName", + "src": "21177:5:1" + } + ], + "id": 1196, + "name": "VariableDeclaration", + "src": "21177:12:1" + } + ], + "id": 1197, + "name": "ParameterList", + "src": "21176:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1197 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionCall" + }, + "id": 1198, + "name": "Identifier", + "src": "21206:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1191, + "type": "address", + "value": "target" + }, + "id": 1199, + "name": "Identifier", + "src": "21219:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1193, + "type": "bytes memory", + "value": "data" + }, + "id": 1200, + "name": "Identifier", + "src": "21227:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call failed\"", + "value": "Address: low-level call failed" + }, + "id": 1201, + "name": "Literal", + "src": "21233:32:1" + } + ], + "id": 1202, + "name": "FunctionCall", + "src": "21206:60:1" + } + ], + "id": 1203, + "name": "Return", + "src": "21199:67:1" + } + ], + "id": 1204, + "name": "Block", + "src": "21191:82:1" + } + ], + "id": 1205, + "name": "FunctionDefinition", + "src": "21102:171:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1206, + "name": "StructuredDocumentation", + "src": "21279:211:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1225, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1207, + "name": "ElementaryTypeName", + "src": "21517:7:1" + } + ], + "id": 1208, + "name": "VariableDeclaration", + "src": "21517:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1209, + "name": "ElementaryTypeName", + "src": "21533:5:1" + } + ], + "id": 1210, + "name": "VariableDeclaration", + "src": "21533:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1211, + "name": "ElementaryTypeName", + "src": "21552:6:1" + } + ], + "id": 1212, + "name": "VariableDeclaration", + "src": "21552:26:1" + } + ], + "id": 1213, + "name": "ParameterList", + "src": "21516:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1214, + "name": "ElementaryTypeName", + "src": "21598:5:1" + } + ], + "id": 1215, + "name": "VariableDeclaration", + "src": "21598:12:1" + } + ], + "id": 1216, + "name": "ParameterList", + "src": "21597:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1216 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1217, + "name": "Identifier", + "src": "21629:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1208, + "type": "address", + "value": "target" + }, + "id": 1218, + "name": "Identifier", + "src": "21651:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1210, + "type": "bytes memory", + "value": "data" + }, + "id": 1219, + "name": "Identifier", + "src": "21659:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1220, + "name": "Literal", + "src": "21665:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1212, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1221, + "name": "Identifier", + "src": "21668:12:1" + } + ], + "id": 1222, + "name": "FunctionCall", + "src": "21629:52:1" + } + ], + "id": 1223, + "name": "Return", + "src": "21622:59:1" + } + ], + "id": 1224, + "name": "Block", + "src": "21612:76:1" + } + ], + "id": 1225, + "name": "FunctionDefinition", + "src": "21495:193:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1226, + "name": "StructuredDocumentation", + "src": "21694:351:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1227, + "name": "ElementaryTypeName", + "src": "22081:7:1" + } + ], + "id": 1228, + "name": "VariableDeclaration", + "src": "22081:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1229, + "name": "ElementaryTypeName", + "src": "22097:5:1" + } + ], + "id": 1230, + "name": "VariableDeclaration", + "src": "22097:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1231, + "name": "ElementaryTypeName", + "src": "22116:7:1" + } + ], + "id": 1232, + "name": "VariableDeclaration", + "src": "22116:13:1" + } + ], + "id": 1233, + "name": "ParameterList", + "src": "22080:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1234, + "name": "ElementaryTypeName", + "src": "22149:5:1" + } + ], + "id": 1235, + "name": "VariableDeclaration", + "src": "22149:12:1" + } + ], + "id": 1236, + "name": "ParameterList", + "src": "22148:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1236 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1237, + "name": "Identifier", + "src": "22180:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1228, + "type": "address", + "value": "target" + }, + "id": 1238, + "name": "Identifier", + "src": "22202:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1230, + "type": "bytes memory", + "value": "data" + }, + "id": 1239, + "name": "Identifier", + "src": "22210:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1232, + "type": "uint256", + "value": "value" + }, + "id": 1240, + "name": "Identifier", + "src": "22216:5:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call with value failed\"", + "value": "Address: low-level call with value failed" + }, + "id": 1241, + "name": "Literal", + "src": "22223:43:1" + } + ], + "id": 1242, + "name": "FunctionCall", + "src": "22180:87:1" + } + ], + "id": 1243, + "name": "Return", + "src": "22173:94:1" + } + ], + "id": 1244, + "name": "Block", + "src": "22163:111:1" + } + ], + "id": 1245, + "name": "FunctionDefinition", + "src": "22050:224:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1246, + "name": "StructuredDocumentation", + "src": "22280:237:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1247, + "name": "ElementaryTypeName", + "src": "22553:7:1" + } + ], + "id": 1248, + "name": "VariableDeclaration", + "src": "22553:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1249, + "name": "ElementaryTypeName", + "src": "22569:5:1" + } + ], + "id": 1250, + "name": "VariableDeclaration", + "src": "22569:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1251, + "name": "ElementaryTypeName", + "src": "22588:7:1" + } + ], + "id": 1252, + "name": "VariableDeclaration", + "src": "22588:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1253, + "name": "ElementaryTypeName", + "src": "22603:6:1" + } + ], + "id": 1254, + "name": "VariableDeclaration", + "src": "22603:26:1" + } + ], + "id": 1255, + "name": "ParameterList", + "src": "22552:78:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1256, + "name": "ElementaryTypeName", + "src": "22649:5:1" + } + ], + "id": 1257, + "name": "VariableDeclaration", + "src": "22649:12:1" + } + ], + "id": 1258, + "name": "ParameterList", + "src": "22648:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1259, + "name": "Identifier", + "src": "22673:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1260, + "name": "ElementaryTypeName", + "src": "22681:7:1" + } + ], + "id": 1261, + "name": "ElementaryTypeNameExpression", + "src": "22681:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1262, + "name": "Identifier", + "src": "22689:4:1" + } + ], + "id": 1263, + "name": "FunctionCall", + "src": "22681:13:1" + } + ], + "id": 1264, + "name": "MemberAccess", + "src": "22681:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1265, + "name": "Identifier", + "src": "22706:5:1" + } + ], + "id": 1266, + "name": "BinaryOperation", + "src": "22681:30:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance for call\"", + "value": "Address: insufficient balance for call" + }, + "id": 1267, + "name": "Literal", + "src": "22713:40:1" + } + ], + "id": 1268, + "name": "FunctionCall", + "src": "22673:81:1" + } + ], + "id": 1269, + "name": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1270, + "name": "Identifier", + "src": "22764:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1271, + "name": "Identifier", + "src": "22772:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1272, + "name": "Identifier", + "src": "22783:6:1" + } + ], + "id": 1273, + "name": "FunctionCall", + "src": "22772:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: call to non-contract\"", + "value": "Address: call to non-contract" + }, + "id": 1274, + "name": "Literal", + "src": "22792:31:1" + } + ], + "id": 1275, + "name": "FunctionCall", + "src": "22764:60:1" + } + ], + "id": 1276, + "name": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "attributes": { + "assignments": [ + 1278, + 1280 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1294, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1277, + "name": "ElementaryTypeName", + "src": "22895:4:1" + } + ], + "id": 1278, + "name": "VariableDeclaration", + "src": "22895:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1279, + "name": "ElementaryTypeName", + "src": "22909:5:1" + } + ], + "id": 1280, + "name": "VariableDeclaration", + "src": "22909:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1281, + "name": "Identifier", + "src": "22936:6:1" + } + ], + "id": 1282, + "name": "MemberAccess", + "src": "22936:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1283, + "name": "Identifier", + "src": "22956:5:1" + } + ], + "id": 1284, + "name": "FunctionCallOptions", + "src": "22936:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1250, + "type": "bytes memory", + "value": "data" + }, + "id": 1285, + "name": "Identifier", + "src": "22964:4:1" + } + ], + "id": 1286, + "name": "FunctionCall", + "src": "22936:33:1" + } + ], + "id": 1287, + "name": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "attributes": { + "functionReturnParameters": 1258 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1288, + "name": "Identifier", + "src": "22986:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1278, + "type": "bool", + "value": "success" + }, + "id": 1289, + "name": "Identifier", + "src": "23004:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1280, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1290, + "name": "Identifier", + "src": "23013:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1254, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1291, + "name": "Identifier", + "src": "23025:12:1" + } + ], + "id": 1292, + "name": "FunctionCall", + "src": "22986:52:1" + } + ], + "id": 1293, + "name": "Return", + "src": "22979:59:1" + } + ], + "id": 1294, + "name": "Block", + "src": "22663:382:1" + } + ], + "id": 1295, + "name": "FunctionDefinition", + "src": "22522:523:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1296, + "name": "StructuredDocumentation", + "src": "23051:166:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1312, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1297, + "name": "ElementaryTypeName", + "src": "23250:7:1" + } + ], + "id": 1298, + "name": "VariableDeclaration", + "src": "23250:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1299, + "name": "ElementaryTypeName", + "src": "23266:5:1" + } + ], + "id": 1300, + "name": "VariableDeclaration", + "src": "23266:17:1" + } + ], + "id": 1301, + "name": "ParameterList", + "src": "23249:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1302, + "name": "ElementaryTypeName", + "src": "23308:5:1" + } + ], + "id": 1303, + "name": "VariableDeclaration", + "src": "23308:12:1" + } + ], + "id": 1304, + "name": "ParameterList", + "src": "23307:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1304 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "type": "function (address,bytes memory,string memory) view returns (bytes memory)", + "value": "functionStaticCall" + }, + "id": 1305, + "name": "Identifier", + "src": "23339:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1298, + "type": "address", + "value": "target" + }, + "id": 1306, + "name": "Identifier", + "src": "23358:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1300, + "type": "bytes memory", + "value": "data" + }, + "id": 1307, + "name": "Identifier", + "src": "23366:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level static call failed\"", + "value": "Address: low-level static call failed" + }, + "id": 1308, + "name": "Literal", + "src": "23372:39:1" + } + ], + "id": 1309, + "name": "FunctionCall", + "src": "23339:73:1" + } + ], + "id": 1310, + "name": "Return", + "src": "23332:80:1" + } + ], + "id": 1311, + "name": "Block", + "src": "23322:97:1" + } + ], + "id": 1312, + "name": "FunctionDefinition", + "src": "23222:197:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1313, + "name": "StructuredDocumentation", + "src": "23425:173:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1347, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1314, + "name": "ElementaryTypeName", + "src": "23631:7:1" + } + ], + "id": 1315, + "name": "VariableDeclaration", + "src": "23631:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1316, + "name": "ElementaryTypeName", + "src": "23647:5:1" + } + ], + "id": 1317, + "name": "VariableDeclaration", + "src": "23647:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1318, + "name": "ElementaryTypeName", + "src": "23666:6:1" + } + ], + "id": 1319, + "name": "VariableDeclaration", + "src": "23666:26:1" + } + ], + "id": 1320, + "name": "ParameterList", + "src": "23630:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1321, + "name": "ElementaryTypeName", + "src": "23717:5:1" + } + ], + "id": 1322, + "name": "VariableDeclaration", + "src": "23717:12:1" + } + ], + "id": 1323, + "name": "ParameterList", + "src": "23716:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1324, + "name": "Identifier", + "src": "23741:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1325, + "name": "Identifier", + "src": "23749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1326, + "name": "Identifier", + "src": "23760:6:1" + } + ], + "id": 1327, + "name": "FunctionCall", + "src": "23749:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: static call to non-contract\"", + "value": "Address: static call to non-contract" + }, + "id": 1328, + "name": "Literal", + "src": "23769:38:1" + } + ], + "id": 1329, + "name": "FunctionCall", + "src": "23741:67:1" + } + ], + "id": 1330, + "name": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "attributes": { + "assignments": [ + 1332, + 1334 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1346, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1331, + "name": "ElementaryTypeName", + "src": "23879:4:1" + } + ], + "id": 1332, + "name": "VariableDeclaration", + "src": "23879:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1346, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1333, + "name": "ElementaryTypeName", + "src": "23893:5:1" + } + ], + "id": 1334, + "name": "VariableDeclaration", + "src": "23893:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "staticcall", + "type": "function (bytes memory) view returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1335, + "name": "Identifier", + "src": "23920:6:1" + } + ], + "id": 1336, + "name": "MemberAccess", + "src": "23920:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1317, + "type": "bytes memory", + "value": "data" + }, + "id": 1337, + "name": "Identifier", + "src": "23938:4:1" + } + ], + "id": 1338, + "name": "FunctionCall", + "src": "23920:23:1" + } + ], + "id": 1339, + "name": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "attributes": { + "functionReturnParameters": 1323 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1340, + "name": "Identifier", + "src": "23960:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1332, + "type": "bool", + "value": "success" + }, + "id": 1341, + "name": "Identifier", + "src": "23978:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1334, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1342, + "name": "Identifier", + "src": "23987:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1319, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1343, + "name": "Identifier", + "src": "23999:12:1" + } + ], + "id": 1344, + "name": "FunctionCall", + "src": "23960:52:1" + } + ], + "id": 1345, + "name": "Return", + "src": "23953:59:1" + } + ], + "id": 1346, + "name": "Block", + "src": "23731:288:1" + } + ], + "id": 1347, + "name": "FunctionDefinition", + "src": "23603:416:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1348, + "name": "StructuredDocumentation", + "src": "24025:168:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1364, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1349, + "name": "ElementaryTypeName", + "src": "24228:7:1" + } + ], + "id": 1350, + "name": "VariableDeclaration", + "src": "24228:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1351, + "name": "ElementaryTypeName", + "src": "24244:5:1" + } + ], + "id": 1352, + "name": "VariableDeclaration", + "src": "24244:17:1" + } + ], + "id": 1353, + "name": "ParameterList", + "src": "24227:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1354, + "name": "ElementaryTypeName", + "src": "24281:5:1" + } + ], + "id": 1355, + "name": "VariableDeclaration", + "src": "24281:12:1" + } + ], + "id": 1356, + "name": "ParameterList", + "src": "24280:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1356 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionDelegateCall" + }, + "id": 1357, + "name": "Identifier", + "src": "24312:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1350, + "type": "address", + "value": "target" + }, + "id": 1358, + "name": "Identifier", + "src": "24333:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1352, + "type": "bytes memory", + "value": "data" + }, + "id": 1359, + "name": "Identifier", + "src": "24341:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level delegate call failed\"", + "value": "Address: low-level delegate call failed" + }, + "id": 1360, + "name": "Literal", + "src": "24347:41:1" + } + ], + "id": 1361, + "name": "FunctionCall", + "src": "24312:77:1" + } + ], + "id": 1362, + "name": "Return", + "src": "24305:84:1" + } + ], + "id": 1363, + "name": "Block", + "src": "24295:101:1" + } + ], + "id": 1364, + "name": "FunctionDefinition", + "src": "24198:198:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1365, + "name": "StructuredDocumentation", + "src": "24402:175:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1399, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1366, + "name": "ElementaryTypeName", + "src": "24612:7:1" + } + ], + "id": 1367, + "name": "VariableDeclaration", + "src": "24612:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1368, + "name": "ElementaryTypeName", + "src": "24628:5:1" + } + ], + "id": 1369, + "name": "VariableDeclaration", + "src": "24628:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1370, + "name": "ElementaryTypeName", + "src": "24647:6:1" + } + ], + "id": 1371, + "name": "VariableDeclaration", + "src": "24647:26:1" + } + ], + "id": 1372, + "name": "ParameterList", + "src": "24611:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1373, + "name": "ElementaryTypeName", + "src": "24693:5:1" + } + ], + "id": 1374, + "name": "VariableDeclaration", + "src": "24693:12:1" + } + ], + "id": 1375, + "name": "ParameterList", + "src": "24692:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1376, + "name": "Identifier", + "src": "24717:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1377, + "name": "Identifier", + "src": "24725:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1378, + "name": "Identifier", + "src": "24736:6:1" + } + ], + "id": 1379, + "name": "FunctionCall", + "src": "24725:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: delegate call to non-contract\"", + "value": "Address: delegate call to non-contract" + }, + "id": 1380, + "name": "Literal", + "src": "24745:40:1" + } + ], + "id": 1381, + "name": "FunctionCall", + "src": "24717:69:1" + } + ], + "id": 1382, + "name": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "attributes": { + "assignments": [ + 1384, + 1386 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1398, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1383, + "name": "ElementaryTypeName", + "src": "24857:4:1" + } + ], + "id": 1384, + "name": "VariableDeclaration", + "src": "24857:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1398, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1385, + "name": "ElementaryTypeName", + "src": "24871:5:1" + } + ], + "id": 1386, + "name": "VariableDeclaration", + "src": "24871:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "delegatecall", + "type": "function (bytes memory) returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1387, + "name": "Identifier", + "src": "24898:6:1" + } + ], + "id": 1388, + "name": "MemberAccess", + "src": "24898:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1369, + "type": "bytes memory", + "value": "data" + }, + "id": 1389, + "name": "Identifier", + "src": "24918:4:1" + } + ], + "id": 1390, + "name": "FunctionCall", + "src": "24898:25:1" + } + ], + "id": 1391, + "name": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "attributes": { + "functionReturnParameters": 1375 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1392, + "name": "Identifier", + "src": "24940:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1384, + "type": "bool", + "value": "success" + }, + "id": 1393, + "name": "Identifier", + "src": "24958:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1386, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1394, + "name": "Identifier", + "src": "24967:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1371, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1395, + "name": "Identifier", + "src": "24979:12:1" + } + ], + "id": 1396, + "name": "FunctionCall", + "src": "24940:52:1" + } + ], + "id": 1397, + "name": "Return", + "src": "24933:59:1" + } + ], + "id": 1398, + "name": "Block", + "src": "24707:292:1" + } + ], + "id": 1399, + "name": "FunctionDefinition", + "src": "24582:417:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_verifyCallResult", + "scope": 1430, + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1429, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1400, + "name": "ElementaryTypeName", + "src": "25032:4:1" + } + ], + "id": 1401, + "name": "VariableDeclaration", + "src": "25032:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1402, + "name": "ElementaryTypeName", + "src": "25046:5:1" + } + ], + "id": 1403, + "name": "VariableDeclaration", + "src": "25046:23:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1404, + "name": "ElementaryTypeName", + "src": "25071:6:1" + } + ], + "id": 1405, + "name": "VariableDeclaration", + "src": "25071:26:1" + } + ], + "id": 1406, + "name": "ParameterList", + "src": "25031:67:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1407, + "name": "ElementaryTypeName", + "src": "25120:5:1" + } + ], + "id": 1408, + "name": "VariableDeclaration", + "src": "25120:12:1" + } + ], + "id": 1409, + "name": "ParameterList", + "src": "25119:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1401, + "type": "bool", + "value": "success" + }, + "id": 1410, + "name": "Identifier", + "src": "25148:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1409 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1411, + "name": "Identifier", + "src": "25178:10:1" + } + ], + "id": 1412, + "name": "Return", + "src": "25171:17:1" + } + ], + "id": 1413, + "name": "Block", + "src": "25157:42:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1414, + "name": "Identifier", + "src": "25289:10:1" + } + ], + "id": 1415, + "name": "MemberAccess", + "src": "25289:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1416, + "name": "Literal", + "src": "25309:1:1" + } + ], + "id": 1417, + "name": "BinaryOperation", + "src": "25289:21:1" + }, + { + "children": [ + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "operations": "{\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n}" + }, + "children": [], + "id": 1418, + "name": "InlineAssembly", + "src": "25487:154:1" + } + ], + "id": 1419, + "name": "Block", + "src": "25312:343:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "type": "function (string memory) pure", + "value": "revert" + }, + "id": 1420, + "name": "Identifier", + "src": "25679:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1405, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1421, + "name": "Identifier", + "src": "25686:12:1" + } + ], + "id": 1422, + "name": "FunctionCall", + "src": "25679:20:1" + } + ], + "id": 1423, + "name": "ExpressionStatement", + "src": "25679:20:1" + } + ], + "id": 1424, + "name": "Block", + "src": "25661:53:1" + } + ], + "id": 1425, + "name": "IfStatement", + "src": "25285:429:1" + } + ], + "id": 1426, + "name": "Block", + "src": "25205:519:1" + } + ], + "id": 1427, + "name": "IfStatement", + "src": "25144:580:1" + } + ], + "id": 1428, + "name": "Block", + "src": "25134:596:1" + } + ], + "id": 1429, + "name": "FunctionDefinition", + "src": "25005:725:1" + } + ], + "id": 1430, + "name": "ContractDefinition", + "src": "18048:7684:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1431, + "name": "PragmaDirective", + "src": "25791:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "id": 1432, + "name": "StructuredDocumentation", + "src": "25824:686:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Set", + "name": "Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_values", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "bytes32[]" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1433, + "name": "ElementaryTypeName", + "src": "27033:7:1" + } + ], + "id": 1434, + "name": "ArrayTypeName", + "src": "27033:9:1" + } + ], + "id": 1435, + "name": "VariableDeclaration", + "src": "27033:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1436, + "name": "ElementaryTypeName", + "src": "27193:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1437, + "name": "ElementaryTypeName", + "src": "27204:7:1" + } + ], + "id": 1438, + "name": "Mapping", + "src": "27184:28:1" + } + ], + "id": 1439, + "name": "VariableDeclaration", + "src": "27184:37:1" + } + ], + "id": 1440, + "name": "StructDefinition", + "src": "26979:249:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1441, + "name": "StructuredDocumentation", + "src": "27234:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1481, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1442, + "name": "UserDefinedTypeName", + "src": "27412:3:1" + } + ], + "id": 1443, + "name": "VariableDeclaration", + "src": "27412:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1444, + "name": "ElementaryTypeName", + "src": "27429:7:1" + } + ], + "id": 1445, + "name": "VariableDeclaration", + "src": "27429:13:1" + } + ], + "id": 1446, + "name": "ParameterList", + "src": "27411:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1447, + "name": "ElementaryTypeName", + "src": "27461:4:1" + } + ], + "id": 1448, + "name": "VariableDeclaration", + "src": "27461:4:1" + } + ], + "id": 1449, + "name": "ParameterList", + "src": "27460:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1450, + "name": "Identifier", + "src": "27482:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1451, + "name": "Identifier", + "src": "27492:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1452, + "name": "Identifier", + "src": "27497:5:1" + } + ], + "id": 1453, + "name": "FunctionCall", + "src": "27482:21:1" + } + ], + "id": 1454, + "name": "UnaryOperation", + "src": "27481:22:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1455, + "name": "Identifier", + "src": "27519:3:1" + } + ], + "id": 1458, + "name": "MemberAccess", + "src": "27519:11:1" + } + ], + "id": 1459, + "name": "MemberAccess", + "src": "27519:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1460, + "name": "Identifier", + "src": "27536:5:1" + } + ], + "id": 1461, + "name": "FunctionCall", + "src": "27519:23:1" + } + ], + "id": 1462, + "name": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1463, + "name": "Identifier", + "src": "27677:3:1" + } + ], + "id": 1466, + "name": "MemberAccess", + "src": "27677:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1465, + "name": "Identifier", + "src": "27690:5:1" + } + ], + "id": 1467, + "name": "IndexAccess", + "src": "27677:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1468, + "name": "Identifier", + "src": "27699:3:1" + } + ], + "id": 1469, + "name": "MemberAccess", + "src": "27699:11:1" + } + ], + "id": 1470, + "name": "MemberAccess", + "src": "27699:18:1" + } + ], + "id": 1471, + "name": "Assignment", + "src": "27677:40:1" + } + ], + "id": 1472, + "name": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1473, + "name": "Literal", + "src": "27738:4:1" + } + ], + "id": 1474, + "name": "Return", + "src": "27731:11:1" + } + ], + "id": 1475, + "name": "Block", + "src": "27505:248:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1476, + "name": "Literal", + "src": "27780:5:1" + } + ], + "id": 1477, + "name": "Return", + "src": "27773:12:1" + } + ], + "id": 1478, + "name": "Block", + "src": "27759:37:1" + } + ], + "id": 1479, + "name": "IfStatement", + "src": "27477:319:1" + } + ], + "id": 1480, + "name": "Block", + "src": "27467:335:1" + } + ], + "id": 1481, + "name": "FunctionDefinition", + "src": "27398:404:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1482, + "name": "StructuredDocumentation", + "src": "27808:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1561, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1483, + "name": "UserDefinedTypeName", + "src": "27987:3:1" + } + ], + "id": 1484, + "name": "VariableDeclaration", + "src": "27987:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1485, + "name": "ElementaryTypeName", + "src": "28004:7:1" + } + ], + "id": 1486, + "name": "VariableDeclaration", + "src": "28004:13:1" + } + ], + "id": 1487, + "name": "ParameterList", + "src": "27986:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1488, + "name": "ElementaryTypeName", + "src": "28036:4:1" + } + ], + "id": 1489, + "name": "VariableDeclaration", + "src": "28036:4:1" + } + ], + "id": 1490, + "name": "ParameterList", + "src": "28035:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1492 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "valueIndex", + "scope": 1560, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1491, + "name": "ElementaryTypeName", + "src": "28152:7:1" + } + ], + "id": 1492, + "name": "VariableDeclaration", + "src": "28152:18:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1493, + "name": "Identifier", + "src": "28173:3:1" + } + ], + "id": 1494, + "name": "MemberAccess", + "src": "28173:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1495, + "name": "Identifier", + "src": "28186:5:1" + } + ], + "id": 1496, + "name": "IndexAccess", + "src": "28173:19:1" + } + ], + "id": 1497, + "name": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1498, + "name": "Identifier", + "src": "28207:10:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1499, + "name": "Literal", + "src": "28221:1:1" + } + ], + "id": 1500, + "name": "BinaryOperation", + "src": "28207:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1501, + "name": "ElementaryTypeName", + "src": "28564:7:1" + } + ], + "id": 1502, + "name": "VariableDeclaration", + "src": "28564:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1503, + "name": "Identifier", + "src": "28588:10:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1504, + "name": "Literal", + "src": "28601:1:1" + } + ], + "id": 1505, + "name": "BinaryOperation", + "src": "28588:14:1" + } + ], + "id": 1506, + "name": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "attributes": { + "assignments": [ + 1508 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1507, + "name": "ElementaryTypeName", + "src": "28616:7:1" + } + ], + "id": 1508, + "name": "VariableDeclaration", + "src": "28616:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1509, + "name": "Identifier", + "src": "28636:3:1" + } + ], + "id": 1510, + "name": "MemberAccess", + "src": "28636:11:1" + } + ], + "id": 1511, + "name": "MemberAccess", + "src": "28636:18:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1512, + "name": "Literal", + "src": "28657:1:1" + } + ], + "id": 1513, + "name": "BinaryOperation", + "src": "28636:22:1" + } + ], + "id": 1514, + "name": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "attributes": { + "assignments": [ + 1516 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastvalue", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1515, + "name": "ElementaryTypeName", + "src": "28898:7:1" + } + ], + "id": 1516, + "name": "VariableDeclaration", + "src": "28898:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1517, + "name": "Identifier", + "src": "28918:3:1" + } + ], + "id": 1518, + "name": "MemberAccess", + "src": "28918:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1508, + "type": "uint256", + "value": "lastIndex" + }, + "id": 1519, + "name": "Identifier", + "src": "28930:9:1" + } + ], + "id": 1520, + "name": "IndexAccess", + "src": "28918:22:1" + } + ], + "id": 1521, + "name": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1522, + "name": "Identifier", + "src": "29032:3:1" + } + ], + "id": 1525, + "name": "MemberAccess", + "src": "29032:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1524, + "name": "Identifier", + "src": "29044:13:1" + } + ], + "id": 1526, + "name": "IndexAccess", + "src": "29032:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1527, + "name": "Identifier", + "src": "29061:9:1" + } + ], + "id": 1528, + "name": "Assignment", + "src": "29032:38:1" + } + ], + "id": 1529, + "name": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1530, + "name": "Identifier", + "src": "29136:3:1" + } + ], + "id": 1533, + "name": "MemberAccess", + "src": "29136:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1532, + "name": "Identifier", + "src": "29149:9:1" + } + ], + "id": 1534, + "name": "IndexAccess", + "src": "29136:23:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1535, + "name": "Identifier", + "src": "29162:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1536, + "name": "Literal", + "src": "29178:1:1" + } + ], + "id": 1537, + "name": "BinaryOperation", + "src": "29162:17:1" + } + ], + "id": 1538, + "name": "Assignment", + "src": "29136:43:1" + } + ], + "id": 1539, + "name": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1540, + "name": "Identifier", + "src": "29285:3:1" + } + ], + "id": 1543, + "name": "MemberAccess", + "src": "29285:11:1" + } + ], + "id": 1544, + "name": "MemberAccess", + "src": "29285:15:1" + } + ], + "id": 1545, + "name": "FunctionCall", + "src": "29285:17:1" + } + ], + "id": 1546, + "name": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1547, + "name": "Identifier", + "src": "29377:3:1" + } + ], + "id": 1548, + "name": "MemberAccess", + "src": "29377:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1549, + "name": "Identifier", + "src": "29390:5:1" + } + ], + "id": 1550, + "name": "IndexAccess", + "src": "29377:19:1" + } + ], + "id": 1551, + "name": "UnaryOperation", + "src": "29370:26:1" + } + ], + "id": 1552, + "name": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1553, + "name": "Literal", + "src": "29418:4:1" + } + ], + "id": 1554, + "name": "Return", + "src": "29411:11:1" + } + ], + "id": 1555, + "name": "Block", + "src": "28224:1209:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1556, + "name": "Literal", + "src": "29460:5:1" + } + ], + "id": 1557, + "name": "Return", + "src": "29453:12:1" + } + ], + "id": 1558, + "name": "Block", + "src": "29439:37:1" + } + ], + "id": 1559, + "name": "IfStatement", + "src": "28203:1273:1" + } + ], + "id": 1560, + "name": "Block", + "src": "28042:1440:1" + } + ], + "id": 1561, + "name": "FunctionDefinition", + "src": "27970:1512:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1562, + "name": "StructuredDocumentation", + "src": "29488:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1579, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1563, + "name": "UserDefinedTypeName", + "src": "29582:3:1" + } + ], + "id": 1564, + "name": "VariableDeclaration", + "src": "29582:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1565, + "name": "ElementaryTypeName", + "src": "29599:7:1" + } + ], + "id": 1566, + "name": "VariableDeclaration", + "src": "29599:13:1" + } + ], + "id": 1567, + "name": "ParameterList", + "src": "29581:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1568, + "name": "ElementaryTypeName", + "src": "29636:4:1" + } + ], + "id": 1569, + "name": "VariableDeclaration", + "src": "29636:4:1" + } + ], + "id": 1570, + "name": "ParameterList", + "src": "29635:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1570 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1564, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1571, + "name": "Identifier", + "src": "29659:3:1" + } + ], + "id": 1572, + "name": "MemberAccess", + "src": "29659:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1566, + "type": "bytes32", + "value": "value" + }, + "id": 1573, + "name": "Identifier", + "src": "29672:5:1" + } + ], + "id": 1574, + "name": "IndexAccess", + "src": "29659:19:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1575, + "name": "Literal", + "src": "29682:1:1" + } + ], + "id": 1576, + "name": "BinaryOperation", + "src": "29659:24:1" + } + ], + "id": 1577, + "name": "Return", + "src": "29652:31:1" + } + ], + "id": 1578, + "name": "Block", + "src": "29642:48:1" + } + ], + "id": 1579, + "name": "FunctionDefinition", + "src": "29563:127:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1580, + "name": "StructuredDocumentation", + "src": "29696:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1592, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1581, + "name": "UserDefinedTypeName", + "src": "29788:3:1" + } + ], + "id": 1582, + "name": "VariableDeclaration", + "src": "29788:15:1" + } + ], + "id": 1583, + "name": "ParameterList", + "src": "29787:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1592, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1584, + "name": "ElementaryTypeName", + "src": "29827:7:1" + } + ], + "id": 1585, + "name": "VariableDeclaration", + "src": "29827:7:1" + } + ], + "id": 1586, + "name": "ParameterList", + "src": "29826:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1586 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1582, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1587, + "name": "Identifier", + "src": "29853:3:1" + } + ], + "id": 1588, + "name": "MemberAccess", + "src": "29853:11:1" + } + ], + "id": 1589, + "name": "MemberAccess", + "src": "29853:18:1" + } + ], + "id": 1590, + "name": "Return", + "src": "29846:25:1" + } + ], + "id": 1591, + "name": "Block", + "src": "29836:42:1" + } + ], + "id": 1592, + "name": "FunctionDefinition", + "src": "29771:107:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1593, + "name": "StructuredDocumentation", + "src": "29883:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1617, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1594, + "name": "UserDefinedTypeName", + "src": "30223:3:1" + } + ], + "id": 1595, + "name": "VariableDeclaration", + "src": "30223:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1596, + "name": "ElementaryTypeName", + "src": "30240:7:1" + } + ], + "id": 1597, + "name": "VariableDeclaration", + "src": "30240:13:1" + } + ], + "id": 1598, + "name": "ParameterList", + "src": "30222:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1599, + "name": "ElementaryTypeName", + "src": "30277:7:1" + } + ], + "id": 1600, + "name": "VariableDeclaration", + "src": "30277:7:1" + } + ], + "id": 1601, + "name": "ParameterList", + "src": "30276:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1602, + "name": "Identifier", + "src": "30296:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1603, + "name": "Identifier", + "src": "30304:3:1" + } + ], + "id": 1604, + "name": "MemberAccess", + "src": "30304:11:1" + } + ], + "id": 1605, + "name": "MemberAccess", + "src": "30304:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1606, + "name": "Identifier", + "src": "30325:5:1" + } + ], + "id": 1607, + "name": "BinaryOperation", + "src": "30304:26:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableSet: index out of bounds\"", + "value": "EnumerableSet: index out of bounds" + }, + "id": 1608, + "name": "Literal", + "src": "30332:36:1" + } + ], + "id": 1609, + "name": "FunctionCall", + "src": "30296:73:1" + } + ], + "id": 1610, + "name": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "attributes": { + "functionReturnParameters": 1601 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1611, + "name": "Identifier", + "src": "30386:3:1" + } + ], + "id": 1612, + "name": "MemberAccess", + "src": "30386:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1613, + "name": "Identifier", + "src": "30398:5:1" + } + ], + "id": 1614, + "name": "IndexAccess", + "src": "30386:18:1" + } + ], + "id": 1615, + "name": "Return", + "src": "30379:25:1" + } + ], + "id": 1616, + "name": "Block", + "src": "30286:125:1" + } + ], + "id": 1617, + "name": "FunctionDefinition", + "src": "30210:201:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Bytes32Set", + "name": "Bytes32Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1620, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1618, + "name": "UserDefinedTypeName", + "src": "30464:3:1" + } + ], + "id": 1619, + "name": "VariableDeclaration", + "src": "30464:10:1" + } + ], + "id": 1620, + "name": "StructDefinition", + "src": "30436:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1621, + "name": "StructuredDocumentation", + "src": "30487:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1637, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1622, + "name": "UserDefinedTypeName", + "src": "30664:10:1" + } + ], + "id": 1623, + "name": "VariableDeclaration", + "src": "30664:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1624, + "name": "ElementaryTypeName", + "src": "30688:7:1" + } + ], + "id": 1625, + "name": "VariableDeclaration", + "src": "30688:13:1" + } + ], + "id": 1626, + "name": "ParameterList", + "src": "30663:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1627, + "name": "ElementaryTypeName", + "src": "30721:4:1" + } + ], + "id": 1628, + "name": "VariableDeclaration", + "src": "30721:4:1" + } + ], + "id": 1629, + "name": "ParameterList", + "src": "30720:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1629 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1630, + "name": "Identifier", + "src": "30744:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1623, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1631, + "name": "Identifier", + "src": "30749:3:1" + } + ], + "id": 1632, + "name": "MemberAccess", + "src": "30749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1625, + "type": "bytes32", + "value": "value" + }, + "id": 1633, + "name": "Identifier", + "src": "30761:5:1" + } + ], + "id": 1634, + "name": "FunctionCall", + "src": "30744:23:1" + } + ], + "id": 1635, + "name": "Return", + "src": "30737:30:1" + } + ], + "id": 1636, + "name": "Block", + "src": "30727:47:1" + } + ], + "id": 1637, + "name": "FunctionDefinition", + "src": "30651:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1638, + "name": "StructuredDocumentation", + "src": "30780:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1654, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1639, + "name": "UserDefinedTypeName", + "src": "30958:10:1" + } + ], + "id": 1640, + "name": "VariableDeclaration", + "src": "30958:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1641, + "name": "ElementaryTypeName", + "src": "30982:7:1" + } + ], + "id": 1642, + "name": "VariableDeclaration", + "src": "30982:13:1" + } + ], + "id": 1643, + "name": "ParameterList", + "src": "30957:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1644, + "name": "ElementaryTypeName", + "src": "31015:4:1" + } + ], + "id": 1645, + "name": "VariableDeclaration", + "src": "31015:4:1" + } + ], + "id": 1646, + "name": "ParameterList", + "src": "31014:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1646 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1647, + "name": "Identifier", + "src": "31038:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1640, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1648, + "name": "Identifier", + "src": "31046:3:1" + } + ], + "id": 1649, + "name": "MemberAccess", + "src": "31046:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1642, + "type": "bytes32", + "value": "value" + }, + "id": 1650, + "name": "Identifier", + "src": "31058:5:1" + } + ], + "id": 1651, + "name": "FunctionCall", + "src": "31038:26:1" + } + ], + "id": 1652, + "name": "Return", + "src": "31031:33:1" + } + ], + "id": 1653, + "name": "Block", + "src": "31021:50:1" + } + ], + "id": 1654, + "name": "FunctionDefinition", + "src": "30942:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1655, + "name": "StructuredDocumentation", + "src": "31077:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1671, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1656, + "name": "UserDefinedTypeName", + "src": "31170:10:1" + } + ], + "id": 1657, + "name": "VariableDeclaration", + "src": "31170:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1658, + "name": "ElementaryTypeName", + "src": "31194:7:1" + } + ], + "id": 1659, + "name": "VariableDeclaration", + "src": "31194:13:1" + } + ], + "id": 1660, + "name": "ParameterList", + "src": "31169:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1661, + "name": "ElementaryTypeName", + "src": "31232:4:1" + } + ], + "id": 1662, + "name": "VariableDeclaration", + "src": "31232:4:1" + } + ], + "id": 1663, + "name": "ParameterList", + "src": "31231:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1663 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1664, + "name": "Identifier", + "src": "31255:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1657, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1665, + "name": "Identifier", + "src": "31265:3:1" + } + ], + "id": 1666, + "name": "MemberAccess", + "src": "31265:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1659, + "type": "bytes32", + "value": "value" + }, + "id": 1667, + "name": "Identifier", + "src": "31277:5:1" + } + ], + "id": 1668, + "name": "FunctionCall", + "src": "31255:28:1" + } + ], + "id": 1669, + "name": "Return", + "src": "31248:35:1" + } + ], + "id": 1670, + "name": "Block", + "src": "31238:52:1" + } + ], + "id": 1671, + "name": "FunctionDefinition", + "src": "31152:138:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1672, + "name": "StructuredDocumentation", + "src": "31296:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1685, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1673, + "name": "UserDefinedTypeName", + "src": "31387:10:1" + } + ], + "id": 1674, + "name": "VariableDeclaration", + "src": "31387:22:1" + } + ], + "id": 1675, + "name": "ParameterList", + "src": "31386:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1685, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1676, + "name": "ElementaryTypeName", + "src": "31434:7:1" + } + ], + "id": 1677, + "name": "VariableDeclaration", + "src": "31434:7:1" + } + ], + "id": 1678, + "name": "ParameterList", + "src": "31433:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1678 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1679, + "name": "Identifier", + "src": "31460:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1674, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1680, + "name": "Identifier", + "src": "31468:3:1" + } + ], + "id": 1681, + "name": "MemberAccess", + "src": "31468:10:1" + } + ], + "id": 1682, + "name": "FunctionCall", + "src": "31460:19:1" + } + ], + "id": 1683, + "name": "Return", + "src": "31453:26:1" + } + ], + "id": 1684, + "name": "Block", + "src": "31443:43:1" + } + ], + "id": 1685, + "name": "FunctionDefinition", + "src": "31371:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1686, + "name": "StructuredDocumentation", + "src": "31491:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1702, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1687, + "name": "UserDefinedTypeName", + "src": "31830:10:1" + } + ], + "id": 1688, + "name": "VariableDeclaration", + "src": "31830:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1689, + "name": "ElementaryTypeName", + "src": "31854:7:1" + } + ], + "id": 1690, + "name": "VariableDeclaration", + "src": "31854:13:1" + } + ], + "id": 1691, + "name": "ParameterList", + "src": "31829:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1692, + "name": "ElementaryTypeName", + "src": "31892:7:1" + } + ], + "id": 1693, + "name": "VariableDeclaration", + "src": "31892:7:1" + } + ], + "id": 1694, + "name": "ParameterList", + "src": "31891:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1695, + "name": "Identifier", + "src": "31918:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1688, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1696, + "name": "Identifier", + "src": "31922:3:1" + } + ], + "id": 1697, + "name": "MemberAccess", + "src": "31922:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1690, + "type": "uint256", + "value": "index" + }, + "id": 1698, + "name": "Identifier", + "src": "31934:5:1" + } + ], + "id": 1699, + "name": "FunctionCall", + "src": "31918:22:1" + } + ], + "id": 1700, + "name": "Return", + "src": "31911:29:1" + } + ], + "id": 1701, + "name": "Block", + "src": "31901:46:1" + } + ], + "id": 1702, + "name": "FunctionDefinition", + "src": "31818:129:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.AddressSet", + "name": "AddressSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1705, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1703, + "name": "UserDefinedTypeName", + "src": "32000:3:1" + } + ], + "id": 1704, + "name": "VariableDeclaration", + "src": "32000:10:1" + } + ], + "id": 1705, + "name": "StructDefinition", + "src": "31972:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1706, + "name": "StructuredDocumentation", + "src": "32023:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1731, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1707, + "name": "UserDefinedTypeName", + "src": "32200:10:1" + } + ], + "id": 1708, + "name": "VariableDeclaration", + "src": "32200:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1709, + "name": "ElementaryTypeName", + "src": "32224:7:1" + } + ], + "id": 1710, + "name": "VariableDeclaration", + "src": "32224:13:1" + } + ], + "id": 1711, + "name": "ParameterList", + "src": "32199:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1712, + "name": "ElementaryTypeName", + "src": "32257:4:1" + } + ], + "id": 1713, + "name": "VariableDeclaration", + "src": "32257:4:1" + } + ], + "id": 1714, + "name": "ParameterList", + "src": "32256:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1714 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1715, + "name": "Identifier", + "src": "32280:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1708, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1716, + "name": "Identifier", + "src": "32285:3:1" + } + ], + "id": 1717, + "name": "MemberAccess", + "src": "32285:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1718, + "name": "ElementaryTypeName", + "src": "32297:7:1" + } + ], + "id": 1719, + "name": "ElementaryTypeNameExpression", + "src": "32297:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1720, + "name": "ElementaryTypeName", + "src": "32305:7:1" + } + ], + "id": 1721, + "name": "ElementaryTypeNameExpression", + "src": "32305:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1722, + "name": "ElementaryTypeName", + "src": "32313:7:1" + } + ], + "id": 1723, + "name": "ElementaryTypeNameExpression", + "src": "32313:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1710, + "type": "address", + "value": "value" + }, + "id": 1724, + "name": "Identifier", + "src": "32321:5:1" + } + ], + "id": 1725, + "name": "FunctionCall", + "src": "32313:14:1" + } + ], + "id": 1726, + "name": "FunctionCall", + "src": "32305:23:1" + } + ], + "id": 1727, + "name": "FunctionCall", + "src": "32297:32:1" + } + ], + "id": 1728, + "name": "FunctionCall", + "src": "32280:50:1" + } + ], + "id": 1729, + "name": "Return", + "src": "32273:57:1" + } + ], + "id": 1730, + "name": "Block", + "src": "32263:74:1" + } + ], + "id": 1731, + "name": "FunctionDefinition", + "src": "32187:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1732, + "name": "StructuredDocumentation", + "src": "32343:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1757, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1733, + "name": "UserDefinedTypeName", + "src": "32521:10:1" + } + ], + "id": 1734, + "name": "VariableDeclaration", + "src": "32521:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1735, + "name": "ElementaryTypeName", + "src": "32545:7:1" + } + ], + "id": 1736, + "name": "VariableDeclaration", + "src": "32545:13:1" + } + ], + "id": 1737, + "name": "ParameterList", + "src": "32520:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1738, + "name": "ElementaryTypeName", + "src": "32578:4:1" + } + ], + "id": 1739, + "name": "VariableDeclaration", + "src": "32578:4:1" + } + ], + "id": 1740, + "name": "ParameterList", + "src": "32577:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1740 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1741, + "name": "Identifier", + "src": "32601:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1734, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1742, + "name": "Identifier", + "src": "32609:3:1" + } + ], + "id": 1743, + "name": "MemberAccess", + "src": "32609:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1744, + "name": "ElementaryTypeName", + "src": "32621:7:1" + } + ], + "id": 1745, + "name": "ElementaryTypeNameExpression", + "src": "32621:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1746, + "name": "ElementaryTypeName", + "src": "32629:7:1" + } + ], + "id": 1747, + "name": "ElementaryTypeNameExpression", + "src": "32629:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1748, + "name": "ElementaryTypeName", + "src": "32637:7:1" + } + ], + "id": 1749, + "name": "ElementaryTypeNameExpression", + "src": "32637:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1736, + "type": "address", + "value": "value" + }, + "id": 1750, + "name": "Identifier", + "src": "32645:5:1" + } + ], + "id": 1751, + "name": "FunctionCall", + "src": "32637:14:1" + } + ], + "id": 1752, + "name": "FunctionCall", + "src": "32629:23:1" + } + ], + "id": 1753, + "name": "FunctionCall", + "src": "32621:32:1" + } + ], + "id": 1754, + "name": "FunctionCall", + "src": "32601:53:1" + } + ], + "id": 1755, + "name": "Return", + "src": "32594:60:1" + } + ], + "id": 1756, + "name": "Block", + "src": "32584:77:1" + } + ], + "id": 1757, + "name": "FunctionDefinition", + "src": "32505:156:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1758, + "name": "StructuredDocumentation", + "src": "32667:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1783, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1759, + "name": "UserDefinedTypeName", + "src": "32760:10:1" + } + ], + "id": 1760, + "name": "VariableDeclaration", + "src": "32760:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1761, + "name": "ElementaryTypeName", + "src": "32784:7:1" + } + ], + "id": 1762, + "name": "VariableDeclaration", + "src": "32784:13:1" + } + ], + "id": 1763, + "name": "ParameterList", + "src": "32759:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1764, + "name": "ElementaryTypeName", + "src": "32822:4:1" + } + ], + "id": 1765, + "name": "VariableDeclaration", + "src": "32822:4:1" + } + ], + "id": 1766, + "name": "ParameterList", + "src": "32821:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1766 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1767, + "name": "Identifier", + "src": "32845:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1760, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1768, + "name": "Identifier", + "src": "32855:3:1" + } + ], + "id": 1769, + "name": "MemberAccess", + "src": "32855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1770, + "name": "ElementaryTypeName", + "src": "32867:7:1" + } + ], + "id": 1771, + "name": "ElementaryTypeNameExpression", + "src": "32867:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1772, + "name": "ElementaryTypeName", + "src": "32875:7:1" + } + ], + "id": 1773, + "name": "ElementaryTypeNameExpression", + "src": "32875:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1774, + "name": "ElementaryTypeName", + "src": "32883:7:1" + } + ], + "id": 1775, + "name": "ElementaryTypeNameExpression", + "src": "32883:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1762, + "type": "address", + "value": "value" + }, + "id": 1776, + "name": "Identifier", + "src": "32891:5:1" + } + ], + "id": 1777, + "name": "FunctionCall", + "src": "32883:14:1" + } + ], + "id": 1778, + "name": "FunctionCall", + "src": "32875:23:1" + } + ], + "id": 1779, + "name": "FunctionCall", + "src": "32867:32:1" + } + ], + "id": 1780, + "name": "FunctionCall", + "src": "32845:55:1" + } + ], + "id": 1781, + "name": "Return", + "src": "32838:62:1" + } + ], + "id": 1782, + "name": "Block", + "src": "32828:79:1" + } + ], + "id": 1783, + "name": "FunctionDefinition", + "src": "32742:165:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1784, + "name": "StructuredDocumentation", + "src": "32913:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1797, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1785, + "name": "UserDefinedTypeName", + "src": "33004:10:1" + } + ], + "id": 1786, + "name": "VariableDeclaration", + "src": "33004:22:1" + } + ], + "id": 1787, + "name": "ParameterList", + "src": "33003:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1797, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1788, + "name": "ElementaryTypeName", + "src": "33051:7:1" + } + ], + "id": 1789, + "name": "VariableDeclaration", + "src": "33051:7:1" + } + ], + "id": 1790, + "name": "ParameterList", + "src": "33050:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1790 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1791, + "name": "Identifier", + "src": "33077:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1786, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1792, + "name": "Identifier", + "src": "33085:3:1" + } + ], + "id": 1793, + "name": "MemberAccess", + "src": "33085:10:1" + } + ], + "id": 1794, + "name": "FunctionCall", + "src": "33077:19:1" + } + ], + "id": 1795, + "name": "Return", + "src": "33070:26:1" + } + ], + "id": 1796, + "name": "Block", + "src": "33060:43:1" + } + ], + "id": 1797, + "name": "FunctionDefinition", + "src": "32988:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1798, + "name": "StructuredDocumentation", + "src": "33108:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1823, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1799, + "name": "UserDefinedTypeName", + "src": "33447:10:1" + } + ], + "id": 1800, + "name": "VariableDeclaration", + "src": "33447:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1801, + "name": "ElementaryTypeName", + "src": "33471:7:1" + } + ], + "id": 1802, + "name": "VariableDeclaration", + "src": "33471:13:1" + } + ], + "id": 1803, + "name": "ParameterList", + "src": "33446:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1804, + "name": "ElementaryTypeName", + "src": "33509:7:1" + } + ], + "id": 1805, + "name": "VariableDeclaration", + "src": "33509:7:1" + } + ], + "id": 1806, + "name": "ParameterList", + "src": "33508:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1806 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1807, + "name": "ElementaryTypeName", + "src": "33535:7:1" + } + ], + "id": 1808, + "name": "ElementaryTypeNameExpression", + "src": "33535:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1809, + "name": "ElementaryTypeName", + "src": "33543:7:1" + } + ], + "id": 1810, + "name": "ElementaryTypeNameExpression", + "src": "33543:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1811, + "name": "ElementaryTypeName", + "src": "33551:7:1" + } + ], + "id": 1812, + "name": "ElementaryTypeNameExpression", + "src": "33551:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1813, + "name": "Identifier", + "src": "33559:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1800, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1814, + "name": "Identifier", + "src": "33563:3:1" + } + ], + "id": 1815, + "name": "MemberAccess", + "src": "33563:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1802, + "type": "uint256", + "value": "index" + }, + "id": 1816, + "name": "Identifier", + "src": "33575:5:1" + } + ], + "id": 1817, + "name": "FunctionCall", + "src": "33559:22:1" + } + ], + "id": 1818, + "name": "FunctionCall", + "src": "33551:31:1" + } + ], + "id": 1819, + "name": "FunctionCall", + "src": "33543:40:1" + } + ], + "id": 1820, + "name": "FunctionCall", + "src": "33535:49:1" + } + ], + "id": 1821, + "name": "Return", + "src": "33528:56:1" + } + ], + "id": 1822, + "name": "Block", + "src": "33518:73:1" + } + ], + "id": 1823, + "name": "FunctionDefinition", + "src": "33435:156:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.UintSet", + "name": "UintSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1826, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1824, + "name": "UserDefinedTypeName", + "src": "33639:3:1" + } + ], + "id": 1825, + "name": "VariableDeclaration", + "src": "33639:10:1" + } + ], + "id": 1826, + "name": "StructDefinition", + "src": "33614:42:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1827, + "name": "StructuredDocumentation", + "src": "33662:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1846, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1828, + "name": "UserDefinedTypeName", + "src": "33839:7:1" + } + ], + "id": 1829, + "name": "VariableDeclaration", + "src": "33839:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1830, + "name": "ElementaryTypeName", + "src": "33860:7:1" + } + ], + "id": 1831, + "name": "VariableDeclaration", + "src": "33860:13:1" + } + ], + "id": 1832, + "name": "ParameterList", + "src": "33838:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1833, + "name": "ElementaryTypeName", + "src": "33893:4:1" + } + ], + "id": 1834, + "name": "VariableDeclaration", + "src": "33893:4:1" + } + ], + "id": 1835, + "name": "ParameterList", + "src": "33892:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1835 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1836, + "name": "Identifier", + "src": "33916:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1829, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1837, + "name": "Identifier", + "src": "33921:3:1" + } + ], + "id": 1838, + "name": "MemberAccess", + "src": "33921:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1839, + "name": "ElementaryTypeName", + "src": "33933:7:1" + } + ], + "id": 1840, + "name": "ElementaryTypeNameExpression", + "src": "33933:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1831, + "type": "uint256", + "value": "value" + }, + "id": 1841, + "name": "Identifier", + "src": "33941:5:1" + } + ], + "id": 1842, + "name": "FunctionCall", + "src": "33933:14:1" + } + ], + "id": 1843, + "name": "FunctionCall", + "src": "33916:32:1" + } + ], + "id": 1844, + "name": "Return", + "src": "33909:39:1" + } + ], + "id": 1845, + "name": "Block", + "src": "33899:56:1" + } + ], + "id": 1846, + "name": "FunctionDefinition", + "src": "33826:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1847, + "name": "StructuredDocumentation", + "src": "33961:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1866, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1848, + "name": "UserDefinedTypeName", + "src": "34139:7:1" + } + ], + "id": 1849, + "name": "VariableDeclaration", + "src": "34139:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1850, + "name": "ElementaryTypeName", + "src": "34160:7:1" + } + ], + "id": 1851, + "name": "VariableDeclaration", + "src": "34160:13:1" + } + ], + "id": 1852, + "name": "ParameterList", + "src": "34138:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1853, + "name": "ElementaryTypeName", + "src": "34193:4:1" + } + ], + "id": 1854, + "name": "VariableDeclaration", + "src": "34193:4:1" + } + ], + "id": 1855, + "name": "ParameterList", + "src": "34192:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1855 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1856, + "name": "Identifier", + "src": "34216:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1849, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1857, + "name": "Identifier", + "src": "34224:3:1" + } + ], + "id": 1858, + "name": "MemberAccess", + "src": "34224:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1859, + "name": "ElementaryTypeName", + "src": "34236:7:1" + } + ], + "id": 1860, + "name": "ElementaryTypeNameExpression", + "src": "34236:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1851, + "type": "uint256", + "value": "value" + }, + "id": 1861, + "name": "Identifier", + "src": "34244:5:1" + } + ], + "id": 1862, + "name": "FunctionCall", + "src": "34236:14:1" + } + ], + "id": 1863, + "name": "FunctionCall", + "src": "34216:35:1" + } + ], + "id": 1864, + "name": "Return", + "src": "34209:42:1" + } + ], + "id": 1865, + "name": "Block", + "src": "34199:59:1" + } + ], + "id": 1866, + "name": "FunctionDefinition", + "src": "34123:135:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1867, + "name": "StructuredDocumentation", + "src": "34264:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1886, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1868, + "name": "UserDefinedTypeName", + "src": "34357:7:1" + } + ], + "id": 1869, + "name": "VariableDeclaration", + "src": "34357:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1870, + "name": "ElementaryTypeName", + "src": "34378:7:1" + } + ], + "id": 1871, + "name": "VariableDeclaration", + "src": "34378:13:1" + } + ], + "id": 1872, + "name": "ParameterList", + "src": "34356:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1873, + "name": "ElementaryTypeName", + "src": "34416:4:1" + } + ], + "id": 1874, + "name": "VariableDeclaration", + "src": "34416:4:1" + } + ], + "id": 1875, + "name": "ParameterList", + "src": "34415:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1875 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1876, + "name": "Identifier", + "src": "34439:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1869, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1877, + "name": "Identifier", + "src": "34449:3:1" + } + ], + "id": 1878, + "name": "MemberAccess", + "src": "34449:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1879, + "name": "ElementaryTypeName", + "src": "34461:7:1" + } + ], + "id": 1880, + "name": "ElementaryTypeNameExpression", + "src": "34461:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1871, + "type": "uint256", + "value": "value" + }, + "id": 1881, + "name": "Identifier", + "src": "34469:5:1" + } + ], + "id": 1882, + "name": "FunctionCall", + "src": "34461:14:1" + } + ], + "id": 1883, + "name": "FunctionCall", + "src": "34439:37:1" + } + ], + "id": 1884, + "name": "Return", + "src": "34432:44:1" + } + ], + "id": 1885, + "name": "Block", + "src": "34422:61:1" + } + ], + "id": 1886, + "name": "FunctionDefinition", + "src": "34339:144:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1887, + "name": "StructuredDocumentation", + "src": "34489:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1900, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1888, + "name": "UserDefinedTypeName", + "src": "34580:7:1" + } + ], + "id": 1889, + "name": "VariableDeclaration", + "src": "34580:19:1" + } + ], + "id": 1890, + "name": "ParameterList", + "src": "34579:21:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1900, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1891, + "name": "ElementaryTypeName", + "src": "34624:7:1" + } + ], + "id": 1892, + "name": "VariableDeclaration", + "src": "34624:7:1" + } + ], + "id": 1893, + "name": "ParameterList", + "src": "34623:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1894, + "name": "Identifier", + "src": "34650:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1889, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1895, + "name": "Identifier", + "src": "34658:3:1" + } + ], + "id": 1896, + "name": "MemberAccess", + "src": "34658:10:1" + } + ], + "id": 1897, + "name": "FunctionCall", + "src": "34650:19:1" + } + ], + "id": 1898, + "name": "Return", + "src": "34643:26:1" + } + ], + "id": 1899, + "name": "Block", + "src": "34633:43:1" + } + ], + "id": 1900, + "name": "FunctionDefinition", + "src": "34564:112:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1901, + "name": "StructuredDocumentation", + "src": "34681:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1920, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1902, + "name": "UserDefinedTypeName", + "src": "35020:7:1" + } + ], + "id": 1903, + "name": "VariableDeclaration", + "src": "35020:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1904, + "name": "ElementaryTypeName", + "src": "35041:7:1" + } + ], + "id": 1905, + "name": "VariableDeclaration", + "src": "35041:13:1" + } + ], + "id": 1906, + "name": "ParameterList", + "src": "35019:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1907, + "name": "ElementaryTypeName", + "src": "35079:7:1" + } + ], + "id": 1908, + "name": "VariableDeclaration", + "src": "35079:7:1" + } + ], + "id": 1909, + "name": "ParameterList", + "src": "35078:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1909 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1910, + "name": "ElementaryTypeName", + "src": "35105:7:1" + } + ], + "id": 1911, + "name": "ElementaryTypeNameExpression", + "src": "35105:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1912, + "name": "Identifier", + "src": "35113:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1903, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1913, + "name": "Identifier", + "src": "35117:3:1" + } + ], + "id": 1914, + "name": "MemberAccess", + "src": "35117:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1905, + "type": "uint256", + "value": "index" + }, + "id": 1915, + "name": "Identifier", + "src": "35129:5:1" + } + ], + "id": 1916, + "name": "FunctionCall", + "src": "35113:22:1" + } + ], + "id": 1917, + "name": "FunctionCall", + "src": "35105:31:1" + } + ], + "id": 1918, + "name": "Return", + "src": "35098:38:1" + } + ], + "id": 1919, + "name": "Block", + "src": "35088:55:1" + } + ], + "id": 1920, + "name": "FunctionDefinition", + "src": "35008:135:1" + } + ], + "id": 1921, + "name": "ContractDefinition", + "src": "26511:8634:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1922, + "name": "PragmaDirective", + "src": "35204:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "id": 1923, + "name": "StructuredDocumentation", + "src": "35237:705:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.MapEntry", + "name": "MapEntry", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_key", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1924, + "name": "ElementaryTypeName", + "src": "36455:7:1" + } + ], + "id": 1925, + "name": "VariableDeclaration", + "src": "36455:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_value", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1926, + "name": "ElementaryTypeName", + "src": "36477:7:1" + } + ], + "id": 1927, + "name": "VariableDeclaration", + "src": "36477:14:1" + } + ], + "id": 1928, + "name": "StructDefinition", + "src": "36429:69:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.Map", + "name": "Map", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_entries", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.MapEntry[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "struct EnumerableMap.MapEntry[]" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 1929, + "name": "UserDefinedTypeName", + "src": "36567:8:1" + } + ], + "id": 1930, + "name": "ArrayTypeName", + "src": "36567:10:1" + } + ], + "id": 1931, + "name": "VariableDeclaration", + "src": "36567:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1932, + "name": "ElementaryTypeName", + "src": "36745:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1933, + "name": "ElementaryTypeName", + "src": "36756:7:1" + } + ], + "id": 1934, + "name": "Mapping", + "src": "36736:28:1" + } + ], + "id": 1935, + "name": "VariableDeclaration", + "src": "36736:37:1" + } + ], + "id": 1936, + "name": "StructDefinition", + "src": "36504:276:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1937, + "name": "StructuredDocumentation", + "src": "36786:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 1998, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 1938, + "name": "UserDefinedTypeName", + "src": "37021:3:1" + } + ], + "id": 1939, + "name": "VariableDeclaration", + "src": "37021:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1940, + "name": "ElementaryTypeName", + "src": "37038:7:1" + } + ], + "id": 1941, + "name": "VariableDeclaration", + "src": "37038:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1942, + "name": "ElementaryTypeName", + "src": "37051:7:1" + } + ], + "id": 1943, + "name": "VariableDeclaration", + "src": "37051:13:1" + } + ], + "id": 1944, + "name": "ParameterList", + "src": "37020:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1945, + "name": "ElementaryTypeName", + "src": "37083:4:1" + } + ], + "id": 1946, + "name": "VariableDeclaration", + "src": "37083:4:1" + } + ], + "id": 1947, + "name": "ParameterList", + "src": "37082:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1949 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 1997, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1948, + "name": "ElementaryTypeName", + "src": "37197:7:1" + } + ], + "id": 1949, + "name": "VariableDeclaration", + "src": "37197:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1950, + "name": "Identifier", + "src": "37216:3:1" + } + ], + "id": 1951, + "name": "MemberAccess", + "src": "37216:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1952, + "name": "Identifier", + "src": "37229:3:1" + } + ], + "id": 1953, + "name": "IndexAccess", + "src": "37216:17:1" + } + ], + "id": 1954, + "name": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1955, + "name": "Identifier", + "src": "37248:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1956, + "name": "Literal", + "src": "37260:1:1" + } + ], + "id": 1957, + "name": "BinaryOperation", + "src": "37248:13:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (struct EnumerableMap.MapEntry storage ref)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1958, + "name": "Identifier", + "src": "37314:3:1" + } + ], + "id": 1961, + "name": "MemberAccess", + "src": "37314:12:1" + } + ], + "id": 1962, + "name": "MemberAccess", + "src": "37314:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": true, + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "tryCall": false, + "type": "struct EnumerableMap.MapEntry memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1928, + "type": "type(struct EnumerableMap.MapEntry storage pointer)", + "value": "MapEntry" + }, + "id": 1963, + "name": "Identifier", + "src": "37332:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1964, + "name": "Identifier", + "src": "37349:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1965, + "name": "Identifier", + "src": "37362:5:1" + } + ], + "id": 1966, + "name": "FunctionCall", + "src": "37332:38:1" + } + ], + "id": 1967, + "name": "FunctionCall", + "src": "37314:57:1" + } + ], + "id": 1968, + "name": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1969, + "name": "Identifier", + "src": "37506:3:1" + } + ], + "id": 1972, + "name": "MemberAccess", + "src": "37506:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1971, + "name": "Identifier", + "src": "37519:3:1" + } + ], + "id": 1973, + "name": "IndexAccess", + "src": "37506:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1974, + "name": "Identifier", + "src": "37526:3:1" + } + ], + "id": 1975, + "name": "MemberAccess", + "src": "37526:12:1" + } + ], + "id": 1976, + "name": "MemberAccess", + "src": "37526:19:1" + } + ], + "id": 1977, + "name": "Assignment", + "src": "37506:39:1" + } + ], + "id": 1978, + "name": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1979, + "name": "Literal", + "src": "37566:4:1" + } + ], + "id": 1980, + "name": "Return", + "src": "37559:11:1" + } + ], + "id": 1981, + "name": "Block", + "src": "37263:318:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1982, + "name": "Identifier", + "src": "37601:3:1" + } + ], + "id": 1987, + "name": "MemberAccess", + "src": "37601:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1984, + "name": "Identifier", + "src": "37614:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1985, + "name": "Literal", + "src": "37625:1:1" + } + ], + "id": 1986, + "name": "BinaryOperation", + "src": "37614:12:1" + } + ], + "id": 1988, + "name": "IndexAccess", + "src": "37601:26:1" + } + ], + "id": 1989, + "name": "MemberAccess", + "src": "37601:33:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1990, + "name": "Identifier", + "src": "37637:5:1" + } + ], + "id": 1991, + "name": "Assignment", + "src": "37601:41:1" + } + ], + "id": 1992, + "name": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1993, + "name": "Literal", + "src": "37663:5:1" + } + ], + "id": 1994, + "name": "Return", + "src": "37656:12:1" + } + ], + "id": 1995, + "name": "Block", + "src": "37587:92:1" + } + ], + "id": 1996, + "name": "IfStatement", + "src": "37244:435:1" + } + ], + "id": 1997, + "name": "Block", + "src": "37089:596:1" + } + ], + "id": 1998, + "name": "FunctionDefinition", + "src": "37007:678:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 1999, + "name": "StructuredDocumentation", + "src": "37691:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2079, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2000, + "name": "UserDefinedTypeName", + "src": "37870:3:1" + } + ], + "id": 2001, + "name": "VariableDeclaration", + "src": "37870:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2002, + "name": "ElementaryTypeName", + "src": "37887:7:1" + } + ], + "id": 2003, + "name": "VariableDeclaration", + "src": "37887:11:1" + } + ], + "id": 2004, + "name": "ParameterList", + "src": "37869:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2005, + "name": "ElementaryTypeName", + "src": "37917:4:1" + } + ], + "id": 2006, + "name": "VariableDeclaration", + "src": "37917:4:1" + } + ], + "id": 2007, + "name": "ParameterList", + "src": "37916:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2009 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2078, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2008, + "name": "ElementaryTypeName", + "src": "38031:7:1" + } + ], + "id": 2009, + "name": "VariableDeclaration", + "src": "38031:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2010, + "name": "Identifier", + "src": "38050:3:1" + } + ], + "id": 2011, + "name": "MemberAccess", + "src": "38050:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2012, + "name": "Identifier", + "src": "38063:3:1" + } + ], + "id": 2013, + "name": "IndexAccess", + "src": "38050:17:1" + } + ], + "id": 2014, + "name": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2015, + "name": "Identifier", + "src": "38082:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2016, + "name": "Literal", + "src": "38094:1:1" + } + ], + "id": 2017, + "name": "BinaryOperation", + "src": "38082:13:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2019 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2018, + "name": "ElementaryTypeName", + "src": "38438:7:1" + } + ], + "id": 2019, + "name": "VariableDeclaration", + "src": "38438:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2020, + "name": "Identifier", + "src": "38462:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2021, + "name": "Literal", + "src": "38473:1:1" + } + ], + "id": 2022, + "name": "BinaryOperation", + "src": "38462:12:1" + } + ], + "id": 2023, + "name": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "attributes": { + "assignments": [ + 2025 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2024, + "name": "ElementaryTypeName", + "src": "38488:7:1" + } + ], + "id": 2025, + "name": "VariableDeclaration", + "src": "38488:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2026, + "name": "Identifier", + "src": "38508:3:1" + } + ], + "id": 2027, + "name": "MemberAccess", + "src": "38508:12:1" + } + ], + "id": 2028, + "name": "MemberAccess", + "src": "38508:19:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2029, + "name": "Literal", + "src": "38530:1:1" + } + ], + "id": 2030, + "name": "BinaryOperation", + "src": "38508:23:1" + } + ], + "id": 2031, + "name": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "attributes": { + "assignments": [ + 2033 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastEntry", + "scope": 2073, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2032, + "name": "UserDefinedTypeName", + "src": "38771:8:1" + } + ], + "id": 2033, + "name": "VariableDeclaration", + "src": "38771:26:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2034, + "name": "Identifier", + "src": "38800:3:1" + } + ], + "id": 2035, + "name": "MemberAccess", + "src": "38800:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2025, + "type": "uint256", + "value": "lastIndex" + }, + "id": 2036, + "name": "Identifier", + "src": "38813:9:1" + } + ], + "id": 2037, + "name": "IndexAccess", + "src": "38800:23:1" + } + ], + "id": 2038, + "name": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2039, + "name": "Identifier", + "src": "38915:3:1" + } + ], + "id": 2042, + "name": "MemberAccess", + "src": "38915:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2041, + "name": "Identifier", + "src": "38928:13:1" + } + ], + "id": 2043, + "name": "IndexAccess", + "src": "38915:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2044, + "name": "Identifier", + "src": "38945:9:1" + } + ], + "id": 2045, + "name": "Assignment", + "src": "38915:39:1" + } + ], + "id": 2046, + "name": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2047, + "name": "Identifier", + "src": "39020:3:1" + } + ], + "id": 2051, + "name": "MemberAccess", + "src": "39020:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2049, + "name": "Identifier", + "src": "39033:9:1" + } + ], + "id": 2050, + "name": "MemberAccess", + "src": "39033:14:1" + } + ], + "id": 2052, + "name": "IndexAccess", + "src": "39020:28:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2053, + "name": "Identifier", + "src": "39051:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2054, + "name": "Literal", + "src": "39067:1:1" + } + ], + "id": 2055, + "name": "BinaryOperation", + "src": "39051:17:1" + } + ], + "id": 2056, + "name": "Assignment", + "src": "39020:48:1" + } + ], + "id": 2057, + "name": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2058, + "name": "Identifier", + "src": "39174:3:1" + } + ], + "id": 2061, + "name": "MemberAccess", + "src": "39174:12:1" + } + ], + "id": 2062, + "name": "MemberAccess", + "src": "39174:16:1" + } + ], + "id": 2063, + "name": "FunctionCall", + "src": "39174:18:1" + } + ], + "id": 2064, + "name": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2065, + "name": "Identifier", + "src": "39267:3:1" + } + ], + "id": 2066, + "name": "MemberAccess", + "src": "39267:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2067, + "name": "Identifier", + "src": "39280:3:1" + } + ], + "id": 2068, + "name": "IndexAccess", + "src": "39267:17:1" + } + ], + "id": 2069, + "name": "UnaryOperation", + "src": "39260:24:1" + } + ], + "id": 2070, + "name": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2071, + "name": "Literal", + "src": "39306:4:1" + } + ], + "id": 2072, + "name": "Return", + "src": "39299:11:1" + } + ], + "id": 2073, + "name": "Block", + "src": "38097:1224:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2074, + "name": "Literal", + "src": "39348:5:1" + } + ], + "id": 2075, + "name": "Return", + "src": "39341:12:1" + } + ], + "id": 2076, + "name": "Block", + "src": "39327:37:1" + } + ], + "id": 2077, + "name": "IfStatement", + "src": "38078:1286:1" + } + ], + "id": 2078, + "name": "Block", + "src": "37923:1447:1" + } + ], + "id": 2079, + "name": "FunctionDefinition", + "src": "37853:1517:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2080, + "name": "StructuredDocumentation", + "src": "39376:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2097, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2081, + "name": "UserDefinedTypeName", + "src": "39468:3:1" + } + ], + "id": 2082, + "name": "VariableDeclaration", + "src": "39468:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2083, + "name": "ElementaryTypeName", + "src": "39485:7:1" + } + ], + "id": 2084, + "name": "VariableDeclaration", + "src": "39485:11:1" + } + ], + "id": 2085, + "name": "ParameterList", + "src": "39467:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2086, + "name": "ElementaryTypeName", + "src": "39520:4:1" + } + ], + "id": 2087, + "name": "VariableDeclaration", + "src": "39520:4:1" + } + ], + "id": 2088, + "name": "ParameterList", + "src": "39519:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2088 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2082, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2089, + "name": "Identifier", + "src": "39543:3:1" + } + ], + "id": 2090, + "name": "MemberAccess", + "src": "39543:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2084, + "type": "bytes32", + "value": "key" + }, + "id": 2091, + "name": "Identifier", + "src": "39556:3:1" + } + ], + "id": 2092, + "name": "IndexAccess", + "src": "39543:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2093, + "name": "Literal", + "src": "39564:1:1" + } + ], + "id": 2094, + "name": "BinaryOperation", + "src": "39543:22:1" + } + ], + "id": 2095, + "name": "Return", + "src": "39536:29:1" + } + ], + "id": 2096, + "name": "Block", + "src": "39526:46:1" + } + ], + "id": 2097, + "name": "FunctionDefinition", + "src": "39449:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2098, + "name": "StructuredDocumentation", + "src": "39578:79:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2110, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2099, + "name": "UserDefinedTypeName", + "src": "39679:3:1" + } + ], + "id": 2100, + "name": "VariableDeclaration", + "src": "39679:15:1" + } + ], + "id": 2101, + "name": "ParameterList", + "src": "39678:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2102, + "name": "ElementaryTypeName", + "src": "39718:7:1" + } + ], + "id": 2103, + "name": "VariableDeclaration", + "src": "39718:7:1" + } + ], + "id": 2104, + "name": "ParameterList", + "src": "39717:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2104 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2100, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2105, + "name": "Identifier", + "src": "39744:3:1" + } + ], + "id": 2106, + "name": "MemberAccess", + "src": "39744:12:1" + } + ], + "id": 2107, + "name": "MemberAccess", + "src": "39744:19:1" + } + ], + "id": 2108, + "name": "Return", + "src": "39737:26:1" + } + ], + "id": 2109, + "name": "Block", + "src": "39727:43:1" + } + ], + "id": 2110, + "name": "FunctionDefinition", + "src": "39662:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2111, + "name": "StructuredDocumentation", + "src": "39775:333:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2145, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2112, + "name": "UserDefinedTypeName", + "src": "40126:3:1" + } + ], + "id": 2113, + "name": "VariableDeclaration", + "src": "40126:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2114, + "name": "ElementaryTypeName", + "src": "40143:7:1" + } + ], + "id": 2115, + "name": "VariableDeclaration", + "src": "40143:13:1" + } + ], + "id": 2116, + "name": "ParameterList", + "src": "40125:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2117, + "name": "ElementaryTypeName", + "src": "40180:7:1" + } + ], + "id": 2118, + "name": "VariableDeclaration", + "src": "40180:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2119, + "name": "ElementaryTypeName", + "src": "40189:7:1" + } + ], + "id": 2120, + "name": "VariableDeclaration", + "src": "40189:7:1" + } + ], + "id": 2121, + "name": "ParameterList", + "src": "40179:18:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2122, + "name": "Identifier", + "src": "40208:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2123, + "name": "Identifier", + "src": "40216:3:1" + } + ], + "id": 2124, + "name": "MemberAccess", + "src": "40216:12:1" + } + ], + "id": 2125, + "name": "MemberAccess", + "src": "40216:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2126, + "name": "Identifier", + "src": "40238:5:1" + } + ], + "id": 2127, + "name": "BinaryOperation", + "src": "40216:27:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: index out of bounds\"", + "value": "EnumerableMap: index out of bounds" + }, + "id": 2128, + "name": "Literal", + "src": "40245:36:1" + } + ], + "id": 2129, + "name": "FunctionCall", + "src": "40208:74:1" + } + ], + "id": 2130, + "name": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "attributes": { + "assignments": [ + 2132 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "entry", + "scope": 2144, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2131, + "name": "UserDefinedTypeName", + "src": "40293:8:1" + } + ], + "id": 2132, + "name": "VariableDeclaration", + "src": "40293:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2133, + "name": "Identifier", + "src": "40318:3:1" + } + ], + "id": 2134, + "name": "MemberAccess", + "src": "40318:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2135, + "name": "Identifier", + "src": "40331:5:1" + } + ], + "id": 2136, + "name": "IndexAccess", + "src": "40318:19:1" + } + ], + "id": 2137, + "name": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2121 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bytes32,bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2138, + "name": "Identifier", + "src": "40355:5:1" + } + ], + "id": 2139, + "name": "MemberAccess", + "src": "40355:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2140, + "name": "Identifier", + "src": "40367:5:1" + } + ], + "id": 2141, + "name": "MemberAccess", + "src": "40367:12:1" + } + ], + "id": 2142, + "name": "TupleExpression", + "src": "40354:26:1" + } + ], + "id": 2143, + "name": "Return", + "src": "40347:33:1" + } + ], + "id": 2144, + "name": "Block", + "src": "40198:189:1" + } + ], + "id": 2145, + "name": "FunctionDefinition", + "src": "40113:274:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2146, + "name": "StructuredDocumentation", + "src": "40393:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2183, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2147, + "name": "UserDefinedTypeName", + "src": "40546:3:1" + } + ], + "id": 2148, + "name": "VariableDeclaration", + "src": "40546:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2149, + "name": "ElementaryTypeName", + "src": "40563:7:1" + } + ], + "id": 2150, + "name": "VariableDeclaration", + "src": "40563:11:1" + } + ], + "id": 2151, + "name": "ParameterList", + "src": "40545:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2152, + "name": "ElementaryTypeName", + "src": "40598:4:1" + } + ], + "id": 2153, + "name": "VariableDeclaration", + "src": "40598:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2154, + "name": "ElementaryTypeName", + "src": "40604:7:1" + } + ], + "id": 2155, + "name": "VariableDeclaration", + "src": "40604:7:1" + } + ], + "id": 2156, + "name": "ParameterList", + "src": "40597:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2158 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2182, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2157, + "name": "ElementaryTypeName", + "src": "40623:7:1" + } + ], + "id": 2158, + "name": "VariableDeclaration", + "src": "40623:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2159, + "name": "Identifier", + "src": "40642:3:1" + } + ], + "id": 2160, + "name": "MemberAccess", + "src": "40642:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2150, + "type": "bytes32", + "value": "key" + }, + "id": 2161, + "name": "Identifier", + "src": "40655:3:1" + } + ], + "id": 2162, + "name": "IndexAccess", + "src": "40642:17:1" + } + ], + "id": 2163, + "name": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2164, + "name": "Identifier", + "src": "40673:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2165, + "name": "Literal", + "src": "40685:1:1" + } + ], + "id": 2166, + "name": "BinaryOperation", + "src": "40673:13:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2167, + "name": "Literal", + "src": "40696:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2168, + "name": "Literal", + "src": "40703:1:1" + } + ], + "id": 2169, + "name": "TupleExpression", + "src": "40695:10:1" + } + ], + "id": 2170, + "name": "Return", + "src": "40688:17:1" + } + ], + "id": 2171, + "name": "IfStatement", + "src": "40669:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,bytes32)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2172, + "name": "Literal", + "src": "40759:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2173, + "name": "Identifier", + "src": "40765:3:1" + } + ], + "id": 2174, + "name": "MemberAccess", + "src": "40765:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2175, + "name": "Identifier", + "src": "40778:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2176, + "name": "Literal", + "src": "40789:1:1" + } + ], + "id": 2177, + "name": "BinaryOperation", + "src": "40778:12:1" + } + ], + "id": 2178, + "name": "IndexAccess", + "src": "40765:26:1" + } + ], + "id": 2179, + "name": "MemberAccess", + "src": "40765:33:1" + } + ], + "id": 2180, + "name": "TupleExpression", + "src": "40758:41:1" + } + ], + "id": 2181, + "name": "Return", + "src": "40751:48:1" + } + ], + "id": 2182, + "name": "Block", + "src": "40613:220:1" + } + ], + "id": 2183, + "name": "FunctionDefinition", + "src": "40529:304:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2184, + "name": "StructuredDocumentation", + "src": "40839:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2216, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2185, + "name": "UserDefinedTypeName", + "src": "40999:3:1" + } + ], + "id": 2186, + "name": "VariableDeclaration", + "src": "40999:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2187, + "name": "ElementaryTypeName", + "src": "41016:7:1" + } + ], + "id": 2188, + "name": "VariableDeclaration", + "src": "41016:11:1" + } + ], + "id": 2189, + "name": "ParameterList", + "src": "40998:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2190, + "name": "ElementaryTypeName", + "src": "41051:7:1" + } + ], + "id": 2191, + "name": "VariableDeclaration", + "src": "41051:7:1" + } + ], + "id": 2192, + "name": "ParameterList", + "src": "41050:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2194 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2215, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2193, + "name": "ElementaryTypeName", + "src": "41070:7:1" + } + ], + "id": 2194, + "name": "VariableDeclaration", + "src": "41070:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2195, + "name": "Identifier", + "src": "41089:3:1" + } + ], + "id": 2196, + "name": "MemberAccess", + "src": "41089:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2188, + "type": "bytes32", + "value": "key" + }, + "id": 2197, + "name": "Identifier", + "src": "41102:3:1" + } + ], + "id": 2198, + "name": "IndexAccess", + "src": "41089:17:1" + } + ], + "id": 2199, + "name": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2200, + "name": "Identifier", + "src": "41116:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2201, + "name": "Identifier", + "src": "41124:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2202, + "name": "Literal", + "src": "41136:1:1" + } + ], + "id": 2203, + "name": "BinaryOperation", + "src": "41124:13:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: nonexistent key\"", + "value": "EnumerableMap: nonexistent key" + }, + "id": 2204, + "name": "Literal", + "src": "41139:32:1" + } + ], + "id": 2205, + "name": "FunctionCall", + "src": "41116:56:1" + } + ], + "id": 2206, + "name": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "attributes": { + "functionReturnParameters": 2192 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2207, + "name": "Identifier", + "src": "41225:3:1" + } + ], + "id": 2208, + "name": "MemberAccess", + "src": "41225:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2209, + "name": "Identifier", + "src": "41238:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2210, + "name": "Literal", + "src": "41249:1:1" + } + ], + "id": 2211, + "name": "BinaryOperation", + "src": "41238:12:1" + } + ], + "id": 2212, + "name": "IndexAccess", + "src": "41225:26:1" + } + ], + "id": 2213, + "name": "MemberAccess", + "src": "41225:33:1" + } + ], + "id": 2214, + "name": "Return", + "src": "41218:40:1" + } + ], + "id": 2215, + "name": "Block", + "src": "41060:232:1" + } + ], + "id": 2216, + "name": "FunctionDefinition", + "src": "40985:307:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2217, + "name": "StructuredDocumentation", + "src": "41298:271:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2251, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2218, + "name": "UserDefinedTypeName", + "src": "41588:3:1" + } + ], + "id": 2219, + "name": "VariableDeclaration", + "src": "41588:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2220, + "name": "ElementaryTypeName", + "src": "41605:7:1" + } + ], + "id": 2221, + "name": "VariableDeclaration", + "src": "41605:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2251, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2222, + "name": "ElementaryTypeName", + "src": "41618:6:1" + } + ], + "id": 2223, + "name": "VariableDeclaration", + "src": "41618:26:1" + } + ], + "id": 2224, + "name": "ParameterList", + "src": "41587:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2225, + "name": "ElementaryTypeName", + "src": "41668:7:1" + } + ], + "id": 2226, + "name": "VariableDeclaration", + "src": "41668:7:1" + } + ], + "id": 2227, + "name": "ParameterList", + "src": "41667:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2229 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2250, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2228, + "name": "ElementaryTypeName", + "src": "41687:7:1" + } + ], + "id": 2229, + "name": "VariableDeclaration", + "src": "41687:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2230, + "name": "Identifier", + "src": "41706:3:1" + } + ], + "id": 2231, + "name": "MemberAccess", + "src": "41706:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2221, + "type": "bytes32", + "value": "key" + }, + "id": 2232, + "name": "Identifier", + "src": "41719:3:1" + } + ], + "id": 2233, + "name": "IndexAccess", + "src": "41706:17:1" + } + ], + "id": 2234, + "name": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2235, + "name": "Identifier", + "src": "41733:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2236, + "name": "Identifier", + "src": "41741:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2237, + "name": "Literal", + "src": "41753:1:1" + } + ], + "id": 2238, + "name": "BinaryOperation", + "src": "41741:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2223, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2239, + "name": "Identifier", + "src": "41756:12:1" + } + ], + "id": 2240, + "name": "FunctionCall", + "src": "41733:36:1" + } + ], + "id": 2241, + "name": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2227 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2242, + "name": "Identifier", + "src": "41822:3:1" + } + ], + "id": 2243, + "name": "MemberAccess", + "src": "41822:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2244, + "name": "Identifier", + "src": "41835:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2245, + "name": "Literal", + "src": "41846:1:1" + } + ], + "id": 2246, + "name": "BinaryOperation", + "src": "41835:12:1" + } + ], + "id": 2247, + "name": "IndexAccess", + "src": "41822:26:1" + } + ], + "id": 2248, + "name": "MemberAccess", + "src": "41822:33:1" + } + ], + "id": 2249, + "name": "Return", + "src": "41815:40:1" + } + ], + "id": 2250, + "name": "Block", + "src": "41677:212:1" + } + ], + "id": 2251, + "name": "FunctionDefinition", + "src": "41574:315:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.UintToAddressMap", + "name": "UintToAddressMap", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 2254, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2252, + "name": "UserDefinedTypeName", + "src": "41954:3:1" + } + ], + "id": 2253, + "name": "VariableDeclaration", + "src": "41954:10:1" + } + ], + "id": 2254, + "name": "StructDefinition", + "src": "41920:51:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2255, + "name": "StructuredDocumentation", + "src": "41977:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2286, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2256, + "name": "UserDefinedTypeName", + "src": "42211:16:1" + } + ], + "id": 2257, + "name": "VariableDeclaration", + "src": "42211:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2258, + "name": "ElementaryTypeName", + "src": "42241:7:1" + } + ], + "id": 2259, + "name": "VariableDeclaration", + "src": "42241:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2260, + "name": "ElementaryTypeName", + "src": "42254:7:1" + } + ], + "id": 2261, + "name": "VariableDeclaration", + "src": "42254:13:1" + } + ], + "id": 2262, + "name": "ParameterList", + "src": "42210:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2263, + "name": "ElementaryTypeName", + "src": "42287:4:1" + } + ], + "id": 2264, + "name": "VariableDeclaration", + "src": "42287:4:1" + } + ], + "id": 2265, + "name": "ParameterList", + "src": "42286:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2265 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1998, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)", + "value": "_set" + }, + "id": 2266, + "name": "Identifier", + "src": "42310:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2257, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2267, + "name": "Identifier", + "src": "42315:3:1" + } + ], + "id": 2268, + "name": "MemberAccess", + "src": "42315:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2269, + "name": "ElementaryTypeName", + "src": "42327:7:1" + } + ], + "id": 2270, + "name": "ElementaryTypeNameExpression", + "src": "42327:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2259, + "type": "uint256", + "value": "key" + }, + "id": 2271, + "name": "Identifier", + "src": "42335:3:1" + } + ], + "id": 2272, + "name": "FunctionCall", + "src": "42327:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2273, + "name": "ElementaryTypeName", + "src": "42341:7:1" + } + ], + "id": 2274, + "name": "ElementaryTypeNameExpression", + "src": "42341:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2275, + "name": "ElementaryTypeName", + "src": "42349:7:1" + } + ], + "id": 2276, + "name": "ElementaryTypeNameExpression", + "src": "42349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2277, + "name": "ElementaryTypeName", + "src": "42357:7:1" + } + ], + "id": 2278, + "name": "ElementaryTypeNameExpression", + "src": "42357:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2261, + "type": "address", + "value": "value" + }, + "id": 2279, + "name": "Identifier", + "src": "42365:5:1" + } + ], + "id": 2280, + "name": "FunctionCall", + "src": "42357:14:1" + } + ], + "id": 2281, + "name": "FunctionCall", + "src": "42349:23:1" + } + ], + "id": 2282, + "name": "FunctionCall", + "src": "42341:32:1" + } + ], + "id": 2283, + "name": "FunctionCall", + "src": "42310:64:1" + } + ], + "id": 2284, + "name": "Return", + "src": "42303:71:1" + } + ], + "id": 2285, + "name": "Block", + "src": "42293:88:1" + } + ], + "id": 2286, + "name": "FunctionDefinition", + "src": "42198:183:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2287, + "name": "StructuredDocumentation", + "src": "42387:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2306, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2288, + "name": "UserDefinedTypeName", + "src": "42556:16:1" + } + ], + "id": 2289, + "name": "VariableDeclaration", + "src": "42556:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2290, + "name": "ElementaryTypeName", + "src": "42586:7:1" + } + ], + "id": 2291, + "name": "VariableDeclaration", + "src": "42586:11:1" + } + ], + "id": 2292, + "name": "ParameterList", + "src": "42555:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2293, + "name": "ElementaryTypeName", + "src": "42617:4:1" + } + ], + "id": 2294, + "name": "VariableDeclaration", + "src": "42617:4:1" + } + ], + "id": 2295, + "name": "ParameterList", + "src": "42616:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2295 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2079, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 2296, + "name": "Identifier", + "src": "42640:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2289, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2297, + "name": "Identifier", + "src": "42648:3:1" + } + ], + "id": 2298, + "name": "MemberAccess", + "src": "42648:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2299, + "name": "ElementaryTypeName", + "src": "42660:7:1" + } + ], + "id": 2300, + "name": "ElementaryTypeNameExpression", + "src": "42660:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2291, + "type": "uint256", + "value": "key" + }, + "id": 2301, + "name": "Identifier", + "src": "42668:3:1" + } + ], + "id": 2302, + "name": "FunctionCall", + "src": "42660:12:1" + } + ], + "id": 2303, + "name": "FunctionCall", + "src": "42640:33:1" + } + ], + "id": 2304, + "name": "Return", + "src": "42633:40:1" + } + ], + "id": 2305, + "name": "Block", + "src": "42623:57:1" + } + ], + "id": 2306, + "name": "FunctionDefinition", + "src": "42540:140:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2307, + "name": "StructuredDocumentation", + "src": "42686:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2326, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2308, + "name": "UserDefinedTypeName", + "src": "42777:16:1" + } + ], + "id": 2309, + "name": "VariableDeclaration", + "src": "42777:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2310, + "name": "ElementaryTypeName", + "src": "42807:7:1" + } + ], + "id": 2311, + "name": "VariableDeclaration", + "src": "42807:11:1" + } + ], + "id": 2312, + "name": "ParameterList", + "src": "42776:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2313, + "name": "ElementaryTypeName", + "src": "42843:4:1" + } + ], + "id": 2314, + "name": "VariableDeclaration", + "src": "42843:4:1" + } + ], + "id": 2315, + "name": "ParameterList", + "src": "42842:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2315 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2097, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 2316, + "name": "Identifier", + "src": "42866:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2309, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2317, + "name": "Identifier", + "src": "42876:3:1" + } + ], + "id": 2318, + "name": "MemberAccess", + "src": "42876:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2319, + "name": "ElementaryTypeName", + "src": "42888:7:1" + } + ], + "id": 2320, + "name": "ElementaryTypeNameExpression", + "src": "42888:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2311, + "type": "uint256", + "value": "key" + }, + "id": 2321, + "name": "Identifier", + "src": "42896:3:1" + } + ], + "id": 2322, + "name": "FunctionCall", + "src": "42888:12:1" + } + ], + "id": 2323, + "name": "FunctionCall", + "src": "42866:35:1" + } + ], + "id": 2324, + "name": "Return", + "src": "42859:42:1" + } + ], + "id": 2325, + "name": "Block", + "src": "42849:59:1" + } + ], + "id": 2326, + "name": "FunctionDefinition", + "src": "42759:149:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2327, + "name": "StructuredDocumentation", + "src": "42914:72:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2340, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2328, + "name": "UserDefinedTypeName", + "src": "43007:16:1" + } + ], + "id": 2329, + "name": "VariableDeclaration", + "src": "43007:28:1" + } + ], + "id": 2330, + "name": "ParameterList", + "src": "43006:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2340, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2331, + "name": "ElementaryTypeName", + "src": "43060:7:1" + } + ], + "id": 2332, + "name": "VariableDeclaration", + "src": "43060:7:1" + } + ], + "id": 2333, + "name": "ParameterList", + "src": "43059:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2333 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2110, + "type": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 2334, + "name": "Identifier", + "src": "43086:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2329, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2335, + "name": "Identifier", + "src": "43094:3:1" + } + ], + "id": 2336, + "name": "MemberAccess", + "src": "43094:10:1" + } + ], + "id": 2337, + "name": "FunctionCall", + "src": "43086:19:1" + } + ], + "id": 2338, + "name": "Return", + "src": "43079:26:1" + } + ], + "id": 2339, + "name": "Block", + "src": "43069:43:1" + } + ], + "id": 2340, + "name": "FunctionDefinition", + "src": "42991:121:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2341, + "name": "StructuredDocumentation", + "src": "43117:318:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2379, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2342, + "name": "UserDefinedTypeName", + "src": "43452:16:1" + } + ], + "id": 2343, + "name": "VariableDeclaration", + "src": "43452:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2344, + "name": "ElementaryTypeName", + "src": "43482:7:1" + } + ], + "id": 2345, + "name": "VariableDeclaration", + "src": "43482:13:1" + } + ], + "id": 2346, + "name": "ParameterList", + "src": "43451:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2347, + "name": "ElementaryTypeName", + "src": "43520:7:1" + } + ], + "id": 2348, + "name": "VariableDeclaration", + "src": "43520:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2349, + "name": "ElementaryTypeName", + "src": "43529:7:1" + } + ], + "id": 2350, + "name": "VariableDeclaration", + "src": "43529:7:1" + } + ], + "id": 2351, + "name": "ParameterList", + "src": "43519:18:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2353, + 2355 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2352, + "name": "ElementaryTypeName", + "src": "43549:7:1" + } + ], + "id": 2353, + "name": "VariableDeclaration", + "src": "43549:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2354, + "name": "ElementaryTypeName", + "src": "43562:7:1" + } + ], + "id": 2355, + "name": "VariableDeclaration", + "src": "43562:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bytes32,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2145, + "type": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)", + "value": "_at" + }, + "id": 2356, + "name": "Identifier", + "src": "43579:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2343, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2357, + "name": "Identifier", + "src": "43583:3:1" + } + ], + "id": 2358, + "name": "MemberAccess", + "src": "43583:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2345, + "type": "uint256", + "value": "index" + }, + "id": 2359, + "name": "Identifier", + "src": "43595:5:1" + } + ], + "id": 2360, + "name": "FunctionCall", + "src": "43579:22:1" + } + ], + "id": 2361, + "name": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "attributes": { + "functionReturnParameters": 2351 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(uint256,address payable)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2362, + "name": "ElementaryTypeName", + "src": "43619:7:1" + } + ], + "id": 2363, + "name": "ElementaryTypeNameExpression", + "src": "43619:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2353, + "type": "bytes32", + "value": "key" + }, + "id": 2364, + "name": "Identifier", + "src": "43627:3:1" + } + ], + "id": 2365, + "name": "FunctionCall", + "src": "43619:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2366, + "name": "ElementaryTypeName", + "src": "43633:7:1" + } + ], + "id": 2367, + "name": "ElementaryTypeNameExpression", + "src": "43633:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2368, + "name": "ElementaryTypeName", + "src": "43641:7:1" + } + ], + "id": 2369, + "name": "ElementaryTypeNameExpression", + "src": "43641:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2370, + "name": "ElementaryTypeName", + "src": "43649:7:1" + } + ], + "id": 2371, + "name": "ElementaryTypeNameExpression", + "src": "43649:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2355, + "type": "bytes32", + "value": "value" + }, + "id": 2372, + "name": "Identifier", + "src": "43657:5:1" + } + ], + "id": 2373, + "name": "FunctionCall", + "src": "43649:14:1" + } + ], + "id": 2374, + "name": "FunctionCall", + "src": "43641:23:1" + } + ], + "id": 2375, + "name": "FunctionCall", + "src": "43633:32:1" + } + ], + "id": 2376, + "name": "TupleExpression", + "src": "43618:48:1" + } + ], + "id": 2377, + "name": "Return", + "src": "43611:55:1" + } + ], + "id": 2378, + "name": "Block", + "src": "43538:135:1" + } + ], + "id": 2379, + "name": "FunctionDefinition", + "src": "43440:233:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2380, + "name": "StructuredDocumentation", + "src": "43679:169:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2418, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2381, + "name": "UserDefinedTypeName", + "src": "43869:16:1" + } + ], + "id": 2382, + "name": "VariableDeclaration", + "src": "43869:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2383, + "name": "ElementaryTypeName", + "src": "43899:7:1" + } + ], + "id": 2384, + "name": "VariableDeclaration", + "src": "43899:11:1" + } + ], + "id": 2385, + "name": "ParameterList", + "src": "43868:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2386, + "name": "ElementaryTypeName", + "src": "43935:4:1" + } + ], + "id": 2387, + "name": "VariableDeclaration", + "src": "43935:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2388, + "name": "ElementaryTypeName", + "src": "43941:7:1" + } + ], + "id": 2389, + "name": "VariableDeclaration", + "src": "43941:7:1" + } + ], + "id": 2390, + "name": "ParameterList", + "src": "43934:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2392, + 2394 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "43961:4:1" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "43961:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "43975:7:1" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "43975:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2183, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)", + "value": "_tryGet" + }, + "id": 2395, + "name": "Identifier", + "src": "43992:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2382, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2396, + "name": "Identifier", + "src": "44000:3:1" + } + ], + "id": 2397, + "name": "MemberAccess", + "src": "44000:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "44012:7:1" + } + ], + "id": 2399, + "name": "ElementaryTypeNameExpression", + "src": "44012:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2384, + "type": "uint256", + "value": "key" + }, + "id": 2400, + "name": "Identifier", + "src": "44020:3:1" + } + ], + "id": 2401, + "name": "FunctionCall", + "src": "44012:12:1" + } + ], + "id": 2402, + "name": "FunctionCall", + "src": "43992:33:1" + } + ], + "id": 2403, + "name": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "attributes": { + "functionReturnParameters": 2390 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,address payable)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2392, + "type": "bool", + "value": "success" + }, + "id": 2404, + "name": "Identifier", + "src": "44043:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2405, + "name": "ElementaryTypeName", + "src": "44052:7:1" + } + ], + "id": 2406, + "name": "ElementaryTypeNameExpression", + "src": "44052:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "44060:7:1" + } + ], + "id": 2408, + "name": "ElementaryTypeNameExpression", + "src": "44060:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "44068:7:1" + } + ], + "id": 2410, + "name": "ElementaryTypeNameExpression", + "src": "44068:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2394, + "type": "bytes32", + "value": "value" + }, + "id": 2411, + "name": "Identifier", + "src": "44076:5:1" + } + ], + "id": 2412, + "name": "FunctionCall", + "src": "44068:14:1" + } + ], + "id": 2413, + "name": "FunctionCall", + "src": "44060:23:1" + } + ], + "id": 2414, + "name": "FunctionCall", + "src": "44052:32:1" + } + ], + "id": 2415, + "name": "TupleExpression", + "src": "44042:43:1" + } + ], + "id": 2416, + "name": "Return", + "src": "44035:50:1" + } + ], + "id": 2417, + "name": "Block", + "src": "43950:142:1" + } + ], + "id": 2418, + "name": "FunctionDefinition", + "src": "43853:239:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2419, + "name": "StructuredDocumentation", + "src": "44098:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2447, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2420, + "name": "UserDefinedTypeName", + "src": "44257:16:1" + } + ], + "id": 2421, + "name": "VariableDeclaration", + "src": "44257:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2422, + "name": "ElementaryTypeName", + "src": "44287:7:1" + } + ], + "id": 2423, + "name": "VariableDeclaration", + "src": "44287:11:1" + } + ], + "id": 2424, + "name": "ParameterList", + "src": "44256:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2425, + "name": "ElementaryTypeName", + "src": "44323:7:1" + } + ], + "id": 2426, + "name": "VariableDeclaration", + "src": "44323:7:1" + } + ], + "id": 2427, + "name": "ParameterList", + "src": "44322:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2427 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2428, + "name": "ElementaryTypeName", + "src": "44349:7:1" + } + ], + "id": 2429, + "name": "ElementaryTypeNameExpression", + "src": "44349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2430, + "name": "ElementaryTypeName", + "src": "44357:7:1" + } + ], + "id": 2431, + "name": "ElementaryTypeNameExpression", + "src": "44357:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2432, + "name": "ElementaryTypeName", + "src": "44365:7:1" + } + ], + "id": 2433, + "name": "ElementaryTypeNameExpression", + "src": "44365:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)", + "value": "_get" + }, + "id": 2434, + "name": "Identifier", + "src": "44373:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2421, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2435, + "name": "Identifier", + "src": "44378:3:1" + } + ], + "id": 2436, + "name": "MemberAccess", + "src": "44378:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "44390:7:1" + } + ], + "id": 2438, + "name": "ElementaryTypeNameExpression", + "src": "44390:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2423, + "type": "uint256", + "value": "key" + }, + "id": 2439, + "name": "Identifier", + "src": "44398:3:1" + } + ], + "id": 2440, + "name": "FunctionCall", + "src": "44390:12:1" + } + ], + "id": 2441, + "name": "FunctionCall", + "src": "44373:30:1" + } + ], + "id": 2442, + "name": "FunctionCall", + "src": "44365:39:1" + } + ], + "id": 2443, + "name": "FunctionCall", + "src": "44357:48:1" + } + ], + "id": 2444, + "name": "FunctionCall", + "src": "44349:57:1" + } + ], + "id": 2445, + "name": "Return", + "src": "44342:64:1" + } + ], + "id": 2446, + "name": "Block", + "src": "44332:81:1" + } + ], + "id": 2447, + "name": "FunctionDefinition", + "src": "44244:169:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2448, + "name": "StructuredDocumentation", + "src": "44419:269:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2479, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2449, + "name": "UserDefinedTypeName", + "src": "44706:16:1" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "44706:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2451, + "name": "ElementaryTypeName", + "src": "44736:7:1" + } + ], + "id": 2452, + "name": "VariableDeclaration", + "src": "44736:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2479, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "44749:6:1" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "44749:26:1" + } + ], + "id": 2455, + "name": "ParameterList", + "src": "44705:71:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2456, + "name": "ElementaryTypeName", + "src": "44800:7:1" + } + ], + "id": 2457, + "name": "VariableDeclaration", + "src": "44800:7:1" + } + ], + "id": 2458, + "name": "ParameterList", + "src": "44799:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2458 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "44826:7:1" + } + ], + "id": 2460, + "name": "ElementaryTypeNameExpression", + "src": "44826:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "44834:7:1" + } + ], + "id": 2462, + "name": "ElementaryTypeNameExpression", + "src": "44834:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2463, + "name": "ElementaryTypeName", + "src": "44842:7:1" + } + ], + "id": 2464, + "name": "ElementaryTypeNameExpression", + "src": "44842:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)", + "value": "_get" + }, + "id": 2465, + "name": "Identifier", + "src": "44850:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2450, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2466, + "name": "Identifier", + "src": "44855:3:1" + } + ], + "id": 2467, + "name": "MemberAccess", + "src": "44855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2468, + "name": "ElementaryTypeName", + "src": "44867:7:1" + } + ], + "id": 2469, + "name": "ElementaryTypeNameExpression", + "src": "44867:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2452, + "type": "uint256", + "value": "key" + }, + "id": 2470, + "name": "Identifier", + "src": "44875:3:1" + } + ], + "id": 2471, + "name": "FunctionCall", + "src": "44867:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2454, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2472, + "name": "Identifier", + "src": "44881:12:1" + } + ], + "id": 2473, + "name": "FunctionCall", + "src": "44850:44:1" + } + ], + "id": 2474, + "name": "FunctionCall", + "src": "44842:53:1" + } + ], + "id": 2475, + "name": "FunctionCall", + "src": "44834:62:1" + } + ], + "id": 2476, + "name": "FunctionCall", + "src": "44826:71:1" + } + ], + "id": 2477, + "name": "Return", + "src": "44819:78:1" + } + ], + "id": 2478, + "name": "Block", + "src": "44809:95:1" + } + ], + "id": 2479, + "name": "FunctionDefinition", + "src": "44693:211:1" + } + ], + "id": 2480, + "name": "ContractDefinition", + "src": "35943:8963:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2481, + "name": "PragmaDirective", + "src": "44959:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev String operations." + }, + "id": 2482, + "name": "StructuredDocumentation", + "src": "44992:34:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toString", + "scope": 2566, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2483, + "name": "StructuredDocumentation", + "src": "45049:82:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2565, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2484, + "name": "ElementaryTypeName", + "src": "45154:7:1" + } + ], + "id": 2485, + "name": "VariableDeclaration", + "src": "45154:13:1" + } + ], + "id": 2486, + "name": "ParameterList", + "src": "45153:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2565, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "45192:6:1" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "45192:13:1" + } + ], + "id": 2489, + "name": "ParameterList", + "src": "45191:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2490, + "name": "Identifier", + "src": "45409:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2491, + "name": "Literal", + "src": "45418:1:1" + } + ], + "id": 2492, + "name": "BinaryOperation", + "src": "45409:10:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"0\"", + "value": "0" + }, + "id": 2493, + "name": "Literal", + "src": "45442:3:1" + } + ], + "id": 2494, + "name": "Return", + "src": "45435:10:1" + } + ], + "id": 2495, + "name": "Block", + "src": "45421:35:1" + } + ], + "id": 2496, + "name": "IfStatement", + "src": "45405:51:1" + }, + { + "attributes": { + "assignments": [ + 2498 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "temp", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2497, + "name": "ElementaryTypeName", + "src": "45465:7:1" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "45465:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2499, + "name": "Identifier", + "src": "45480:5:1" + } + ], + "id": 2500, + "name": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "attributes": { + "assignments": [ + 2502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "digits", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "45495:7:1" + } + ], + "id": 2502, + "name": "VariableDeclaration", + "src": "45495:14:1" + } + ], + "id": 2503, + "name": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2504, + "name": "Identifier", + "src": "45526:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2505, + "name": "Literal", + "src": "45534:1:1" + } + ], + "id": 2506, + "name": "BinaryOperation", + "src": "45526:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2507, + "name": "Identifier", + "src": "45551:6:1" + } + ], + "id": 2508, + "name": "UnaryOperation", + "src": "45551:8:1" + } + ], + "id": 2509, + "name": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2510, + "name": "Identifier", + "src": "45573:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2511, + "name": "Literal", + "src": "45581:2:1" + } + ], + "id": 2512, + "name": "Assignment", + "src": "45573:10:1" + } + ], + "id": 2513, + "name": "ExpressionStatement", + "src": "45573:10:1" + } + ], + "id": 2514, + "name": "Block", + "src": "45537:57:1" + } + ], + "id": 2515, + "name": "WhileStatement", + "src": "45519:75:1" + }, + { + "attributes": { + "assignments": [ + 2517 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "buffer", + "scope": 2564, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2516, + "name": "ElementaryTypeName", + "src": "45603:5:1" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "45603:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "function (uint256) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "45629:5:1" + } + ], + "id": 2519, + "name": "NewExpression", + "src": "45625:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2520, + "name": "Identifier", + "src": "45635:6:1" + } + ], + "id": 2521, + "name": "FunctionCall", + "src": "45625:17:1" + } + ], + "id": 2522, + "name": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "attributes": { + "assignments": [ + 2524 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2523, + "name": "ElementaryTypeName", + "src": "45652:7:1" + } + ], + "id": 2524, + "name": "VariableDeclaration", + "src": "45652:13:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2525, + "name": "Identifier", + "src": "45668:6:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2526, + "name": "Literal", + "src": "45677:1:1" + } + ], + "id": 2527, + "name": "BinaryOperation", + "src": "45668:10:1" + } + ], + "id": 2528, + "name": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2529, + "name": "Identifier", + "src": "45688:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2530, + "name": "Identifier", + "src": "45695:5:1" + } + ], + "id": 2531, + "name": "Assignment", + "src": "45688:12:1" + } + ], + "id": 2532, + "name": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2533, + "name": "Identifier", + "src": "45717:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2534, + "name": "Literal", + "src": "45725:1:1" + } + ], + "id": 2535, + "name": "BinaryOperation", + "src": "45717:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2536, + "name": "Identifier", + "src": "45742:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "--", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2524, + "type": "uint256", + "value": "index" + }, + "id": 2537, + "name": "Identifier", + "src": "45749:5:1" + } + ], + "id": 2538, + "name": "UnaryOperation", + "src": "45749:7:1" + } + ], + "id": 2539, + "name": "IndexAccess", + "src": "45742:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes1", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes1)" + }, + "children": [ + { + "attributes": { + "name": "bytes1" + }, + "id": 2540, + "name": "ElementaryTypeName", + "src": "45760:6:1" + } + ], + "id": 2541, + "name": "ElementaryTypeNameExpression", + "src": "45760:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 2542, + "name": "ElementaryTypeName", + "src": "45767:5:1" + } + ], + "id": 2543, + "name": "ElementaryTypeNameExpression", + "src": "45767:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "hexvalue": "3438", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 48", + "value": "48" + }, + "id": 2544, + "name": "Literal", + "src": "45773:2:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2545, + "name": "Identifier", + "src": "45778:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2546, + "name": "Literal", + "src": "45785:2:1" + } + ], + "id": 2547, + "name": "BinaryOperation", + "src": "45778:9:1" + } + ], + "id": 2548, + "name": "BinaryOperation", + "src": "45773:14:1" + } + ], + "id": 2549, + "name": "FunctionCall", + "src": "45767:21:1" + } + ], + "id": 2550, + "name": "FunctionCall", + "src": "45760:29:1" + } + ], + "id": 2551, + "name": "Assignment", + "src": "45742:47:1" + } + ], + "id": 2552, + "name": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2553, + "name": "Identifier", + "src": "45803:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2554, + "name": "Literal", + "src": "45811:2:1" + } + ], + "id": 2555, + "name": "Assignment", + "src": "45803:10:1" + } + ], + "id": 2556, + "name": "ExpressionStatement", + "src": "45803:10:1" + } + ], + "id": 2557, + "name": "Block", + "src": "45728:96:1" + } + ], + "id": 2558, + "name": "WhileStatement", + "src": "45710:114:1" + }, + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2559, + "name": "ElementaryTypeName", + "src": "45840:6:1" + } + ], + "id": 2560, + "name": "ElementaryTypeNameExpression", + "src": "45840:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2561, + "name": "Identifier", + "src": "45847:6:1" + } + ], + "id": 2562, + "name": "FunctionCall", + "src": "45840:14:1" + } + ], + "id": 2563, + "name": "Return", + "src": "45833:21:1" + } + ], + "id": 2564, + "name": "Block", + "src": "45207:654:1" + } + ], + "id": 2565, + "name": "FunctionDefinition", + "src": "45136:725:1" + } + ], + "id": 2566, + "name": "ContractDefinition", + "src": "45027:836:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2567, + "name": "PragmaDirective", + "src": "45922:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 2568, + "name": "StructuredDocumentation", + "src": "45955:124:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "Context", + "referencedDeclaration": 530, + "type": "contract Context" + }, + "id": 2569, + "name": "UserDefinedTypeName", + "src": "46099:7:1" + } + ], + "id": 2570, + "name": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "ERC165", + "referencedDeclaration": 781, + "type": "contract ERC165" + }, + "id": 2571, + "name": "UserDefinedTypeName", + "src": "46108:6:1" + } + ], + "id": 2572, + "name": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 2573, + "name": "UserDefinedTypeName", + "src": "46116:7:1" + } + ], + "id": 2574, + "name": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Metadata", + "referencedDeclaration": 680, + "type": "contract IERC721Metadata" + }, + "id": 2575, + "name": "UserDefinedTypeName", + "src": "46125:15:1" + } + ], + "id": 2576, + "name": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Enumerable", + "referencedDeclaration": 709, + "type": "contract IERC721Enumerable" + }, + "id": 2577, + "name": "UserDefinedTypeName", + "src": "46142:17:1" + } + ], + "id": 2578, + "name": "InheritanceSpecifier", + "src": "46142:17:1" + }, + { + "children": [ + { + "attributes": { + "name": "SafeMath", + "referencedDeclaration": 1135, + "type": "library SafeMath" + }, + "id": 2579, + "name": "UserDefinedTypeName", + "src": "46172:8:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2580, + "name": "ElementaryTypeName", + "src": "46185:7:1" + } + ], + "id": 2581, + "name": "UsingForDirective", + "src": "46166:27:1" + }, + { + "children": [ + { + "attributes": { + "name": "Address", + "referencedDeclaration": 1430, + "type": "library Address" + }, + "id": 2582, + "name": "UserDefinedTypeName", + "src": "46204:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "46216:7:1" + } + ], + "id": 2584, + "name": "UsingForDirective", + "src": "46198:26:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableSet", + "referencedDeclaration": 1921, + "type": "library EnumerableSet" + }, + "id": 2585, + "name": "UserDefinedTypeName", + "src": "46235:13:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2586, + "name": "UserDefinedTypeName", + "src": "46253:21:1" + } + ], + "id": 2587, + "name": "UsingForDirective", + "src": "46229:46:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableMap", + "referencedDeclaration": 2480, + "type": "library EnumerableMap" + }, + "id": 2588, + "name": "UserDefinedTypeName", + "src": "46286:13:1" + }, + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2589, + "name": "UserDefinedTypeName", + "src": "46304:30:1" + } + ], + "id": 2590, + "name": "UsingForDirective", + "src": "46280:55:1" + }, + { + "children": [ + { + "attributes": { + "name": "Strings", + "referencedDeclaration": 2566, + "type": "library Strings" + }, + "id": 2591, + "name": "UserDefinedTypeName", + "src": "46346:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2592, + "name": "ElementaryTypeName", + "src": "46358:7:1" + } + ], + "id": 2593, + "name": "UsingForDirective", + "src": "46340:26:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "46544:6:1" + }, + { + "attributes": { + "hexvalue": "30783135306237613032", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 353073666", + "value": "0x150b7a02" + }, + "id": 2595, + "name": "Literal", + "src": "46587:10:1" + } + ], + "id": 2596, + "name": "VariableDeclaration", + "src": "46544:53:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_holderTokens", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => struct EnumerableSet.UintSet)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct EnumerableSet.UintSet)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2597, + "name": "ElementaryTypeName", + "src": "46690:7:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2598, + "name": "UserDefinedTypeName", + "src": "46701:21:1" + } + ], + "id": 2599, + "name": "Mapping", + "src": "46681:42:1" + } + ], + "id": 2600, + "name": "VariableDeclaration", + "src": "46681:64:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenOwners", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2601, + "name": "UserDefinedTypeName", + "src": "46809:30:1" + } + ], + "id": 2602, + "name": "VariableDeclaration", + "src": "46809:51:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => address)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => address)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2603, + "name": "ElementaryTypeName", + "src": "46925:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "46936:7:1" + } + ], + "id": 2605, + "name": "Mapping", + "src": "46916:28:1" + } + ], + "id": 2606, + "name": "VariableDeclaration", + "src": "46916:52:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_operatorApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => mapping(address => bool))", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => mapping(address => bool))" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2607, + "name": "ElementaryTypeName", + "src": "47032:7:1" + }, + { + "attributes": { + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2608, + "name": "ElementaryTypeName", + "src": "47052:7:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2609, + "name": "ElementaryTypeName", + "src": "47063:4:1" + } + ], + "id": 2610, + "name": "Mapping", + "src": "47043:25:1" + } + ], + "id": 2611, + "name": "Mapping", + "src": "47023:46:1" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "47023:73:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_name", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "47121:6:1" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "47121:20:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_symbol", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "47168:6:1" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "47168:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURIs", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => string)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => string)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "47245:7:1" + }, + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2618, + "name": "ElementaryTypeName", + "src": "47256:6:1" + } + ], + "id": 2619, + "name": "Mapping", + "src": "47236:27:1" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "47236:46:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_baseURI", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2621, + "name": "ElementaryTypeName", + "src": "47305:6:1" + } + ], + "id": 2622, + "name": "VariableDeclaration", + "src": "47305:23:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2623, + "name": "ElementaryTypeName", + "src": "48204:6:1" + }, + { + "attributes": { + "hexvalue": "30783830616335386364", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2158778573", + "value": "0x80ac58cd" + }, + "id": 2624, + "name": "Literal", + "src": "48251:10:1" + } + ], + "id": 2625, + "name": "VariableDeclaration", + "src": "48204:57:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2626, + "name": "ElementaryTypeName", + "src": "48527:6:1" + }, + { + "attributes": { + "hexvalue": "30783562356531333966", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1532892063", + "value": "0x5b5e139f" + }, + "id": 2627, + "name": "Literal", + "src": "48583:10:1" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "48527:66:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "48898:6:1" + }, + { + "attributes": { + "hexvalue": "30783738306539643633", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2014223715", + "value": "0x780e9d63" + }, + "id": 2630, + "name": "Literal", + "src": "48956:10:1" + } + ], + "id": 2631, + "name": "VariableDeclaration", + "src": "48898:68:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2632, + "name": "StructuredDocumentation", + "src": "48973:108:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "name_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2633, + "name": "ElementaryTypeName", + "src": "49099:6:1" + } + ], + "id": 2634, + "name": "VariableDeclaration", + "src": "49099:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "symbol_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2635, + "name": "ElementaryTypeName", + "src": "49120:6:1" + } + ], + "id": 2636, + "name": "VariableDeclaration", + "src": "49120:21:1" + } + ], + "id": 2637, + "name": "ParameterList", + "src": "49098:44:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2638, + "name": "ParameterList", + "src": "49143:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2639, + "name": "Identifier", + "src": "49153:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2634, + "type": "string memory", + "value": "name_" + }, + "id": 2640, + "name": "Identifier", + "src": "49161:5:1" + } + ], + "id": 2641, + "name": "Assignment", + "src": "49153:13:1" + } + ], + "id": 2642, + "name": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2643, + "name": "Identifier", + "src": "49176:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2636, + "type": "string memory", + "value": "symbol_" + }, + "id": 2644, + "name": "Identifier", + "src": "49186:7:1" + } + ], + "id": 2645, + "name": "Assignment", + "src": "49176:17:1" + } + ], + "id": 2646, + "name": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2647, + "name": "Identifier", + "src": "49281:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2625, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721" + }, + "id": 2648, + "name": "Identifier", + "src": "49300:20:1" + } + ], + "id": 2649, + "name": "FunctionCall", + "src": "49281:40:1" + } + ], + "id": 2650, + "name": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2651, + "name": "Identifier", + "src": "49331:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2628, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_METADATA" + }, + "id": 2652, + "name": "Identifier", + "src": "49350:29:1" + } + ], + "id": 2653, + "name": "FunctionCall", + "src": "49331:49:1" + } + ], + "id": 2654, + "name": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2655, + "name": "Identifier", + "src": "49390:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2631, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_ENUMERABLE" + }, + "id": 2656, + "name": "Identifier", + "src": "49409:31:1" + } + ], + "id": 2657, + "name": "FunctionCall", + "src": "49390:51:1" + } + ], + "id": 2658, + "name": "ExpressionStatement", + "src": "49390:51:1" + } + ], + "id": 2659, + "name": "Block", + "src": "49143:305:1" + } + ], + "id": 2660, + "name": "FunctionDefinition", + "src": "49086:362:1" + }, + { + "attributes": { + "baseFunctions": [ + 580 + ], + "functionSelector": "70a08231", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-balanceOf}." + }, + "id": 2661, + "name": "StructuredDocumentation", + "src": "49454:48:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2665, + "name": "OverrideSpecifier", + "src": "49561:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2662, + "name": "ElementaryTypeName", + "src": "49526:7:1" + } + ], + "id": 2663, + "name": "VariableDeclaration", + "src": "49526:13:1" + } + ], + "id": 2664, + "name": "ParameterList", + "src": "49525:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2666, + "name": "ElementaryTypeName", + "src": "49579:7:1" + } + ], + "id": 2667, + "name": "VariableDeclaration", + "src": "49579:7:1" + } + ], + "id": 2668, + "name": "ParameterList", + "src": "49578:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2669, + "name": "Identifier", + "src": "49598:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2670, + "name": "Identifier", + "src": "49606:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2671, + "name": "ElementaryTypeName", + "src": "49615:7:1" + } + ], + "id": 2672, + "name": "ElementaryTypeNameExpression", + "src": "49615:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2673, + "name": "Literal", + "src": "49623:1:1" + } + ], + "id": 2674, + "name": "FunctionCall", + "src": "49615:10:1" + } + ], + "id": 2675, + "name": "BinaryOperation", + "src": "49606:19:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: balance query for the zero address\"", + "value": "ERC721: balance query for the zero address" + }, + "id": 2676, + "name": "Literal", + "src": "49627:44:1" + } + ], + "id": 2677, + "name": "FunctionCall", + "src": "49598:74:1" + } + ], + "id": 2678, + "name": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "attributes": { + "functionReturnParameters": 2668 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 1900, + "type": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2679, + "name": "Identifier", + "src": "49689:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2680, + "name": "Identifier", + "src": "49703:5:1" + } + ], + "id": 2681, + "name": "IndexAccess", + "src": "49689:20:1" + } + ], + "id": 2682, + "name": "MemberAccess", + "src": "49689:27:1" + } + ], + "id": 2683, + "name": "FunctionCall", + "src": "49689:29:1" + } + ], + "id": 2684, + "name": "Return", + "src": "49682:36:1" + } + ], + "id": 2685, + "name": "Block", + "src": "49588:137:1" + } + ], + "id": 2686, + "name": "FunctionDefinition", + "src": "49507:218:1" + }, + { + "attributes": { + "baseFunctions": [ + 588 + ], + "functionSelector": "6352211e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-ownerOf}." + }, + "id": 2687, + "name": "StructuredDocumentation", + "src": "49731:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2691, + "name": "OverrideSpecifier", + "src": "49836:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2688, + "name": "ElementaryTypeName", + "src": "49799:7:1" + } + ], + "id": 2689, + "name": "VariableDeclaration", + "src": "49799:15:1" + } + ], + "id": 2690, + "name": "ParameterList", + "src": "49798:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2692, + "name": "ElementaryTypeName", + "src": "49854:7:1" + } + ], + "id": 2693, + "name": "VariableDeclaration", + "src": "49854:7:1" + } + ], + "id": 2694, + "name": "ParameterList", + "src": "49853:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "get", + "referencedDeclaration": 2479, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2695, + "name": "Identifier", + "src": "49880:12:1" + } + ], + "id": 2696, + "name": "MemberAccess", + "src": "49880:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2689, + "type": "uint256", + "value": "tokenId" + }, + "id": 2697, + "name": "Identifier", + "src": "49897:7:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: owner query for nonexistent token\"", + "value": "ERC721: owner query for nonexistent token" + }, + "id": 2698, + "name": "Literal", + "src": "49906:43:1" + } + ], + "id": 2699, + "name": "FunctionCall", + "src": "49880:70:1" + } + ], + "id": 2700, + "name": "Return", + "src": "49873:77:1" + } + ], + "id": 2701, + "name": "Block", + "src": "49863:94:1" + } + ], + "id": 2702, + "name": "FunctionDefinition", + "src": "49782:175:1" + }, + { + "attributes": { + "baseFunctions": [ + 665 + ], + "functionSelector": "06fdde03", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-name}." + }, + "id": 2703, + "name": "StructuredDocumentation", + "src": "49963:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2705, + "name": "OverrideSpecifier", + "src": "50055:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2704, + "name": "ParameterList", + "src": "50032:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2712, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2706, + "name": "ElementaryTypeName", + "src": "50073:6:1" + } + ], + "id": 2707, + "name": "VariableDeclaration", + "src": "50073:13:1" + } + ], + "id": 2708, + "name": "ParameterList", + "src": "50072:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2708 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2709, + "name": "Identifier", + "src": "50105:5:1" + } + ], + "id": 2710, + "name": "Return", + "src": "50098:12:1" + } + ], + "id": 2711, + "name": "Block", + "src": "50088:29:1" + } + ], + "id": 2712, + "name": "FunctionDefinition", + "src": "50019:98:1" + }, + { + "attributes": { + "baseFunctions": [ + 671 + ], + "functionSelector": "95d89b41", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-symbol}." + }, + "id": 2713, + "name": "StructuredDocumentation", + "src": "50123:53:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2715, + "name": "OverrideSpecifier", + "src": "50219:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2714, + "name": "ParameterList", + "src": "50196:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2722, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2716, + "name": "ElementaryTypeName", + "src": "50237:6:1" + } + ], + "id": 2717, + "name": "VariableDeclaration", + "src": "50237:13:1" + } + ], + "id": 2718, + "name": "ParameterList", + "src": "50236:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2718 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2719, + "name": "Identifier", + "src": "50269:7:1" + } + ], + "id": 2720, + "name": "Return", + "src": "50262:14:1" + } + ], + "id": 2721, + "name": "Block", + "src": "50252:31:1" + } + ], + "id": 2722, + "name": "FunctionDefinition", + "src": "50181:102:1" + }, + { + "attributes": { + "baseFunctions": [ + 679 + ], + "functionSelector": "c87b56dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "id": 2723, + "name": "StructuredDocumentation", + "src": "50289:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2727, + "name": "OverrideSpecifier", + "src": "50404:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2790, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2724, + "name": "ElementaryTypeName", + "src": "50367:7:1" + } + ], + "id": 2725, + "name": "VariableDeclaration", + "src": "50367:15:1" + } + ], + "id": 2726, + "name": "ParameterList", + "src": "50366:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2790, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2728, + "name": "ElementaryTypeName", + "src": "50422:6:1" + } + ], + "id": 2729, + "name": "VariableDeclaration", + "src": "50422:13:1" + } + ], + "id": 2730, + "name": "ParameterList", + "src": "50421:15:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2731, + "name": "Identifier", + "src": "50447:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2732, + "name": "Identifier", + "src": "50455:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2733, + "name": "Identifier", + "src": "50463:7:1" + } + ], + "id": 2734, + "name": "FunctionCall", + "src": "50455:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI query for nonexistent token\"", + "value": "ERC721Metadata: URI query for nonexistent token" + }, + "id": 2735, + "name": "Literal", + "src": "50473:49:1" + } + ], + "id": 2736, + "name": "FunctionCall", + "src": "50447:76:1" + } + ], + "id": 2737, + "name": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "attributes": { + "assignments": [ + 2739 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2738, + "name": "ElementaryTypeName", + "src": "50534:6:1" + } + ], + "id": 2739, + "name": "VariableDeclaration", + "src": "50534:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 2740, + "name": "Identifier", + "src": "50560:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2741, + "name": "Identifier", + "src": "50571:7:1" + } + ], + "id": 2742, + "name": "IndexAccess", + "src": "50560:19:1" + } + ], + "id": 2743, + "name": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "attributes": { + "assignments": [ + 2745 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "base", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2744, + "name": "ElementaryTypeName", + "src": "50589:6:1" + } + ], + "id": 2745, + "name": "VariableDeclaration", + "src": "50589:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2799, + "type": "function () view returns (string memory)", + "value": "baseURI" + }, + "id": 2746, + "name": "Identifier", + "src": "50610:7:1" + } + ], + "id": 2747, + "name": "FunctionCall", + "src": "50610:9:1" + } + ], + "id": 2748, + "name": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2749, + "name": "ElementaryTypeName", + "src": "50692:5:1" + } + ], + "id": 2750, + "name": "ElementaryTypeNameExpression", + "src": "50692:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2751, + "name": "Identifier", + "src": "50698:4:1" + } + ], + "id": 2752, + "name": "FunctionCall", + "src": "50692:11:1" + } + ], + "id": 2753, + "name": "MemberAccess", + "src": "50692:18:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2754, + "name": "Literal", + "src": "50714:1:1" + } + ], + "id": 2755, + "name": "BinaryOperation", + "src": "50692:23:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2756, + "name": "Identifier", + "src": "50738:9:1" + } + ], + "id": 2757, + "name": "Return", + "src": "50731:16:1" + } + ], + "id": 2758, + "name": "Block", + "src": "50717:41:1" + } + ], + "id": 2759, + "name": "IfStatement", + "src": "50688:70:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2760, + "name": "ElementaryTypeName", + "src": "50860:5:1" + } + ], + "id": 2761, + "name": "ElementaryTypeNameExpression", + "src": "50860:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2762, + "name": "Identifier", + "src": "50866:9:1" + } + ], + "id": 2763, + "name": "FunctionCall", + "src": "50860:16:1" + } + ], + "id": 2764, + "name": "MemberAccess", + "src": "50860:23:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2765, + "name": "Literal", + "src": "50886:1:1" + } + ], + "id": 2766, + "name": "BinaryOperation", + "src": "50860:27:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2767, + "name": "ElementaryTypeName", + "src": "50910:6:1" + } + ], + "id": 2768, + "name": "ElementaryTypeNameExpression", + "src": "50910:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2769, + "name": "Identifier", + "src": "50917:3:1" + } + ], + "id": 2770, + "name": "MemberAccess", + "src": "50917:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2771, + "name": "Identifier", + "src": "50934:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2772, + "name": "Identifier", + "src": "50940:9:1" + } + ], + "id": 2773, + "name": "FunctionCall", + "src": "50917:33:1" + } + ], + "id": 2774, + "name": "FunctionCall", + "src": "50910:41:1" + } + ], + "id": 2775, + "name": "Return", + "src": "50903:48:1" + } + ], + "id": 2776, + "name": "Block", + "src": "50889:73:1" + } + ], + "id": 2777, + "name": "IfStatement", + "src": "50856:106:1" + }, + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2778, + "name": "ElementaryTypeName", + "src": "51068:6:1" + } + ], + "id": 2779, + "name": "ElementaryTypeNameExpression", + "src": "51068:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2780, + "name": "Identifier", + "src": "51075:3:1" + } + ], + "id": 2781, + "name": "MemberAccess", + "src": "51075:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2782, + "name": "Identifier", + "src": "51092:4:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "toString", + "referencedDeclaration": 2565, + "type": "function (uint256) pure returns (string memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2783, + "name": "Identifier", + "src": "51098:7:1" + } + ], + "id": 2784, + "name": "MemberAccess", + "src": "51098:16:1" + } + ], + "id": 2785, + "name": "FunctionCall", + "src": "51098:18:1" + } + ], + "id": 2786, + "name": "FunctionCall", + "src": "51075:42:1" + } + ], + "id": 2787, + "name": "FunctionCall", + "src": "51068:50:1" + } + ], + "id": 2788, + "name": "Return", + "src": "51061:57:1" + } + ], + "id": 2789, + "name": "Block", + "src": "50437:688:1" + } + ], + "id": 2790, + "name": "FunctionDefinition", + "src": "50349:776:1" + }, + { + "attributes": { + "functionSelector": "6c0360eb", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "baseURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "id": 2791, + "name": "StructuredDocumentation", + "src": "51131:221:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2792, + "name": "ParameterList", + "src": "51373:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2799, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2793, + "name": "ElementaryTypeName", + "src": "51405:6:1" + } + ], + "id": 2794, + "name": "VariableDeclaration", + "src": "51405:13:1" + } + ], + "id": 2795, + "name": "ParameterList", + "src": "51404:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2795 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 2796, + "name": "Identifier", + "src": "51437:8:1" + } + ], + "id": 2797, + "name": "Return", + "src": "51430:15:1" + } + ], + "id": 2798, + "name": "Block", + "src": "51420:32:1" + } + ], + "id": 2799, + "name": "FunctionDefinition", + "src": "51357:95:1" + }, + { + "attributes": { + "baseFunctions": [ + 700 + ], + "functionSelector": "2f745c59", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "id": 2800, + "name": "StructuredDocumentation", + "src": "51458:68:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2806, + "name": "OverrideSpecifier", + "src": "51610:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2801, + "name": "ElementaryTypeName", + "src": "51560:7:1" + } + ], + "id": 2802, + "name": "VariableDeclaration", + "src": "51560:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2803, + "name": "ElementaryTypeName", + "src": "51575:7:1" + } + ], + "id": 2804, + "name": "VariableDeclaration", + "src": "51575:13:1" + } + ], + "id": 2805, + "name": "ParameterList", + "src": "51559:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2807, + "name": "ElementaryTypeName", + "src": "51628:7:1" + } + ], + "id": 2808, + "name": "VariableDeclaration", + "src": "51628:7:1" + } + ], + "id": 2809, + "name": "ParameterList", + "src": "51627:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2809 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 1920, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2810, + "name": "Identifier", + "src": "51654:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2802, + "type": "address", + "value": "owner" + }, + "id": 2811, + "name": "Identifier", + "src": "51668:5:1" + } + ], + "id": 2812, + "name": "IndexAccess", + "src": "51654:20:1" + } + ], + "id": 2813, + "name": "MemberAccess", + "src": "51654:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2804, + "type": "uint256", + "value": "index" + }, + "id": 2814, + "name": "Identifier", + "src": "51678:5:1" + } + ], + "id": 2815, + "name": "FunctionCall", + "src": "51654:30:1" + } + ], + "id": 2816, + "name": "Return", + "src": "51647:37:1" + } + ], + "id": 2817, + "name": "Block", + "src": "51637:54:1" + } + ], + "id": 2818, + "name": "FunctionDefinition", + "src": "51531:160:1" + }, + { + "attributes": { + "baseFunctions": [ + 690 + ], + "functionSelector": "18160ddd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "id": 2819, + "name": "StructuredDocumentation", + "src": "51697:60:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2821, + "name": "OverrideSpecifier", + "src": "51805:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2820, + "name": "ParameterList", + "src": "51782:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2830, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2822, + "name": "ElementaryTypeName", + "src": "51823:7:1" + } + ], + "id": 2823, + "name": "VariableDeclaration", + "src": "51823:7:1" + } + ], + "id": 2824, + "name": "ParameterList", + "src": "51822:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2824 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 2340, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2825, + "name": "Identifier", + "src": "51942:12:1" + } + ], + "id": 2826, + "name": "MemberAccess", + "src": "51942:19:1" + } + ], + "id": 2827, + "name": "FunctionCall", + "src": "51942:21:1" + } + ], + "id": 2828, + "name": "Return", + "src": "51935:28:1" + } + ], + "id": 2829, + "name": "Block", + "src": "51832:138:1" + } + ], + "id": 2830, + "name": "FunctionDefinition", + "src": "51762:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 708 + ], + "functionSelector": "4f6ccce7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "id": 2831, + "name": "StructuredDocumentation", + "src": "51976:61:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2835, + "name": "OverrideSpecifier", + "src": "52099:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2832, + "name": "ElementaryTypeName", + "src": "52064:7:1" + } + ], + "id": 2833, + "name": "VariableDeclaration", + "src": "52064:13:1" + } + ], + "id": 2834, + "name": "ParameterList", + "src": "52063:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2836, + "name": "ElementaryTypeName", + "src": "52117:7:1" + } + ], + "id": 2837, + "name": "VariableDeclaration", + "src": "52117:7:1" + } + ], + "id": 2838, + "name": "ParameterList", + "src": "52116:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2840, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2848, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2839, + "name": "ElementaryTypeName", + "src": "52137:7:1" + } + ], + "id": 2840, + "name": "VariableDeclaration", + "src": "52137:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(uint256,address)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 2379, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2841, + "name": "Identifier", + "src": "52158:12:1" + } + ], + "id": 2842, + "name": "MemberAccess", + "src": "52158:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2833, + "type": "uint256", + "value": "index" + }, + "id": 2843, + "name": "Identifier", + "src": "52174:5:1" + } + ], + "id": 2844, + "name": "FunctionCall", + "src": "52158:22:1" + } + ], + "id": 2845, + "name": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2838 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2840, + "type": "uint256", + "value": "tokenId" + }, + "id": 2846, + "name": "Identifier", + "src": "52197:7:1" + } + ], + "id": 2847, + "name": "Return", + "src": "52190:14:1" + } + ], + "id": 2848, + "name": "Block", + "src": "52126:85:1" + } + ], + "id": 2849, + "name": "FunctionDefinition", + "src": "52042:169:1" + }, + { + "attributes": { + "baseFunctions": [ + 616 + ], + "functionSelector": "095ea7b3", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-approve}." + }, + "id": 2850, + "name": "StructuredDocumentation", + "src": "52217:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2856, + "name": "OverrideSpecifier", + "src": "52329:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2851, + "name": "ElementaryTypeName", + "src": "52285:7:1" + } + ], + "id": 2852, + "name": "VariableDeclaration", + "src": "52285:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2853, + "name": "ElementaryTypeName", + "src": "52297:7:1" + } + ], + "id": 2854, + "name": "VariableDeclaration", + "src": "52297:15:1" + } + ], + "id": 2855, + "name": "ParameterList", + "src": "52284:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2857, + "name": "ParameterList", + "src": "52338:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2859 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2892, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2858, + "name": "ElementaryTypeName", + "src": "52348:7:1" + } + ], + "id": 2859, + "name": "VariableDeclaration", + "src": "52348:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2860, + "name": "Identifier", + "src": "52364:6:1" + } + ], + "id": 2861, + "name": "MemberAccess", + "src": "52364:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2862, + "name": "Identifier", + "src": "52379:7:1" + } + ], + "id": 2863, + "name": "FunctionCall", + "src": "52364:23:1" + } + ], + "id": 2864, + "name": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2865, + "name": "Identifier", + "src": "52397:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2866, + "name": "Identifier", + "src": "52405:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2867, + "name": "Identifier", + "src": "52411:5:1" + } + ], + "id": 2868, + "name": "BinaryOperation", + "src": "52405:11:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approval to current owner\"", + "value": "ERC721: approval to current owner" + }, + "id": 2869, + "name": "Literal", + "src": "52418:35:1" + } + ], + "id": 2870, + "name": "FunctionCall", + "src": "52397:57:1" + } + ], + "id": 2871, + "name": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2872, + "name": "Identifier", + "src": "52465:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2873, + "name": "Identifier", + "src": "52473:10:1" + } + ], + "id": 2874, + "name": "FunctionCall", + "src": "52473:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2875, + "name": "Identifier", + "src": "52489:5:1" + } + ], + "id": 2876, + "name": "BinaryOperation", + "src": "52473:21:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2877, + "name": "Identifier", + "src": "52498:6:1" + } + ], + "id": 2878, + "name": "MemberAccess", + "src": "52498:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2879, + "name": "Identifier", + "src": "52522:5:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2880, + "name": "Identifier", + "src": "52529:10:1" + } + ], + "id": 2881, + "name": "FunctionCall", + "src": "52529:12:1" + } + ], + "id": 2882, + "name": "FunctionCall", + "src": "52498:44:1" + } + ], + "id": 2883, + "name": "BinaryOperation", + "src": "52473:69:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve caller is not owner nor approved for all\"", + "value": "ERC721: approve caller is not owner nor approved for all" + }, + "id": 2884, + "name": "Literal", + "src": "52556:58:1" + } + ], + "id": 2885, + "name": "FunctionCall", + "src": "52465:159:1" + } + ], + "id": 2886, + "name": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 2887, + "name": "Identifier", + "src": "52635:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2888, + "name": "Identifier", + "src": "52644:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2889, + "name": "Identifier", + "src": "52648:7:1" + } + ], + "id": 2890, + "name": "FunctionCall", + "src": "52635:21:1" + } + ], + "id": 2891, + "name": "ExpressionStatement", + "src": "52635:21:1" + } + ], + "id": 2892, + "name": "Block", + "src": "52338:325:1" + } + ], + "id": 2893, + "name": "FunctionDefinition", + "src": "52268:395:1" + }, + { + "attributes": { + "baseFunctions": [ + 624 + ], + "functionSelector": "081812fc", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-getApproved}." + }, + "id": 2894, + "name": "StructuredDocumentation", + "src": "52669:50:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2898, + "name": "OverrideSpecifier", + "src": "52782:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2895, + "name": "ElementaryTypeName", + "src": "52745:7:1" + } + ], + "id": 2896, + "name": "VariableDeclaration", + "src": "52745:15:1" + } + ], + "id": 2897, + "name": "ParameterList", + "src": "52744:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2899, + "name": "ElementaryTypeName", + "src": "52800:7:1" + } + ], + "id": 2900, + "name": "VariableDeclaration", + "src": "52800:7:1" + } + ], + "id": 2901, + "name": "ParameterList", + "src": "52799:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2902, + "name": "Identifier", + "src": "52819:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2903, + "name": "Identifier", + "src": "52827:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2904, + "name": "Identifier", + "src": "52835:7:1" + } + ], + "id": 2905, + "name": "FunctionCall", + "src": "52827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approved query for nonexistent token\"", + "value": "ERC721: approved query for nonexistent token" + }, + "id": 2906, + "name": "Literal", + "src": "52845:46:1" + } + ], + "id": 2907, + "name": "FunctionCall", + "src": "52819:73:1" + } + ], + "id": 2908, + "name": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "attributes": { + "functionReturnParameters": 2901 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 2909, + "name": "Identifier", + "src": "52910:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2910, + "name": "Identifier", + "src": "52926:7:1" + } + ], + "id": 2911, + "name": "IndexAccess", + "src": "52910:24:1" + } + ], + "id": 2912, + "name": "Return", + "src": "52903:31:1" + } + ], + "id": 2913, + "name": "Block", + "src": "52809:132:1" + } + ], + "id": 2914, + "name": "FunctionDefinition", + "src": "52724:217:1" + }, + { + "attributes": { + "baseFunctions": [ + 632 + ], + "functionSelector": "a22cb465", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "id": 2915, + "name": "StructuredDocumentation", + "src": "52947:56:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2921, + "name": "OverrideSpecifier", + "src": "53083:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2916, + "name": "ElementaryTypeName", + "src": "53035:7:1" + } + ], + "id": 2917, + "name": "VariableDeclaration", + "src": "53035:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "approved", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2918, + "name": "ElementaryTypeName", + "src": "53053:4:1" + } + ], + "id": 2919, + "name": "VariableDeclaration", + "src": "53053:13:1" + } + ], + "id": 2920, + "name": "ParameterList", + "src": "53034:33:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2922, + "name": "ParameterList", + "src": "53092:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2923, + "name": "Identifier", + "src": "53102:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2924, + "name": "Identifier", + "src": "53110:8:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2925, + "name": "Identifier", + "src": "53122:10:1" + } + ], + "id": 2926, + "name": "FunctionCall", + "src": "53122:12:1" + } + ], + "id": 2927, + "name": "BinaryOperation", + "src": "53110:24:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f766520746f2063616c6c6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve to caller\"", + "value": "ERC721: approve to caller" + }, + "id": 2928, + "name": "Literal", + "src": "53136:27:1" + } + ], + "id": 2929, + "name": "FunctionCall", + "src": "53102:62:1" + } + ], + "id": 2930, + "name": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2931, + "name": "Identifier", + "src": "53175:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2932, + "name": "Identifier", + "src": "53194:10:1" + } + ], + "id": 2933, + "name": "FunctionCall", + "src": "53194:12:1" + } + ], + "id": 2935, + "name": "IndexAccess", + "src": "53175:32:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2934, + "name": "Identifier", + "src": "53208:8:1" + } + ], + "id": 2936, + "name": "IndexAccess", + "src": "53175:42:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2937, + "name": "Identifier", + "src": "53220:8:1" + } + ], + "id": 2938, + "name": "Assignment", + "src": "53175:53:1" + } + ], + "id": 2939, + "name": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 572, + "type": "function (address,address,bool)", + "value": "ApprovalForAll" + }, + "id": 2940, + "name": "Identifier", + "src": "53243:14:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2941, + "name": "Identifier", + "src": "53258:10:1" + } + ], + "id": 2942, + "name": "FunctionCall", + "src": "53258:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2943, + "name": "Identifier", + "src": "53272:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2944, + "name": "Identifier", + "src": "53282:8:1" + } + ], + "id": 2945, + "name": "FunctionCall", + "src": "53243:48:1" + } + ], + "id": 2946, + "name": "EmitStatement", + "src": "53238:53:1" + } + ], + "id": 2947, + "name": "Block", + "src": "53092:206:1" + } + ], + "id": 2948, + "name": "FunctionDefinition", + "src": "53008:290:1" + }, + { + "attributes": { + "baseFunctions": [ + 642 + ], + "functionSelector": "e985e9c5", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "id": 2949, + "name": "StructuredDocumentation", + "src": "53304:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2955, + "name": "OverrideSpecifier", + "src": "53443:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2950, + "name": "ElementaryTypeName", + "src": "53390:7:1" + } + ], + "id": 2951, + "name": "VariableDeclaration", + "src": "53390:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2952, + "name": "ElementaryTypeName", + "src": "53405:7:1" + } + ], + "id": 2953, + "name": "VariableDeclaration", + "src": "53405:16:1" + } + ], + "id": 2954, + "name": "ParameterList", + "src": "53389:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2956, + "name": "ElementaryTypeName", + "src": "53461:4:1" + } + ], + "id": 2957, + "name": "VariableDeclaration", + "src": "53461:4:1" + } + ], + "id": 2958, + "name": "ParameterList", + "src": "53460:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2958 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2959, + "name": "Identifier", + "src": "53484:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2951, + "type": "address", + "value": "owner" + }, + "id": 2960, + "name": "Identifier", + "src": "53503:5:1" + } + ], + "id": 2961, + "name": "IndexAccess", + "src": "53484:25:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2953, + "type": "address", + "value": "operator" + }, + "id": 2962, + "name": "Identifier", + "src": "53510:8:1" + } + ], + "id": 2963, + "name": "IndexAccess", + "src": "53484:35:1" + } + ], + "id": 2964, + "name": "Return", + "src": "53477:42:1" + } + ], + "id": 2965, + "name": "Block", + "src": "53467:59:1" + } + ], + "id": 2966, + "name": "FunctionDefinition", + "src": "53364:162:1" + }, + { + "attributes": { + "baseFunctions": [ + 608 + ], + "functionSelector": "23b872dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-transferFrom}." + }, + "id": 2967, + "name": "StructuredDocumentation", + "src": "53532:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2975, + "name": "OverrideSpecifier", + "src": "53668:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2968, + "name": "ElementaryTypeName", + "src": "53610:7:1" + } + ], + "id": 2969, + "name": "VariableDeclaration", + "src": "53610:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2970, + "name": "ElementaryTypeName", + "src": "53624:7:1" + } + ], + "id": 2971, + "name": "VariableDeclaration", + "src": "53624:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2972, + "name": "ElementaryTypeName", + "src": "53636:7:1" + } + ], + "id": 2973, + "name": "VariableDeclaration", + "src": "53636:15:1" + } + ], + "id": 2974, + "name": "ParameterList", + "src": "53609:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2976, + "name": "ParameterList", + "src": "53677:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2977, + "name": "Identifier", + "src": "53739:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 2978, + "name": "Identifier", + "src": "53747:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2979, + "name": "Identifier", + "src": "53766:10:1" + } + ], + "id": 2980, + "name": "FunctionCall", + "src": "53766:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2981, + "name": "Identifier", + "src": "53780:7:1" + } + ], + "id": 2982, + "name": "FunctionCall", + "src": "53747:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 2983, + "name": "Literal", + "src": "53790:51:1" + } + ], + "id": 2984, + "name": "FunctionCall", + "src": "53739:103:1" + } + ], + "id": 2985, + "name": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 2986, + "name": "Identifier", + "src": "53853:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2969, + "type": "address", + "value": "from" + }, + "id": 2987, + "name": "Identifier", + "src": "53863:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2971, + "type": "address", + "value": "to" + }, + "id": 2988, + "name": "Identifier", + "src": "53869:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2989, + "name": "Identifier", + "src": "53873:7:1" + } + ], + "id": 2990, + "name": "FunctionCall", + "src": "53853:28:1" + } + ], + "id": 2991, + "name": "ExpressionStatement", + "src": "53853:28:1" + } + ], + "id": 2992, + "name": "Block", + "src": "53677:211:1" + } + ], + "id": 2993, + "name": "FunctionDefinition", + "src": "53588:300:1" + }, + { + "attributes": { + "baseFunctions": [ + 598 + ], + "functionSelector": "42842e0e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 2994, + "name": "StructuredDocumentation", + "src": "53894:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3002, + "name": "OverrideSpecifier", + "src": "54038:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2995, + "name": "ElementaryTypeName", + "src": "53980:7:1" + } + ], + "id": 2996, + "name": "VariableDeclaration", + "src": "53980:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2997, + "name": "ElementaryTypeName", + "src": "53994:7:1" + } + ], + "id": 2998, + "name": "VariableDeclaration", + "src": "53994:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2999, + "name": "ElementaryTypeName", + "src": "54006:7:1" + } + ], + "id": 3000, + "name": "VariableDeclaration", + "src": "54006:15:1" + } + ], + "id": 3001, + "name": "ParameterList", + "src": "53979:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3003, + "name": "ParameterList", + "src": "54047:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "type": "function (address,address,uint256,bytes memory)", + "value": "safeTransferFrom" + }, + "id": 3004, + "name": "Identifier", + "src": "54057:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2996, + "type": "address", + "value": "from" + }, + "id": 3005, + "name": "Identifier", + "src": "54074:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2998, + "type": "address", + "value": "to" + }, + "id": 3006, + "name": "Identifier", + "src": "54080:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3000, + "type": "uint256", + "value": "tokenId" + }, + "id": 3007, + "name": "Identifier", + "src": "54084:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3008, + "name": "Literal", + "src": "54093:2:1" + } + ], + "id": 3009, + "name": "FunctionCall", + "src": "54057:39:1" + } + ], + "id": 3010, + "name": "ExpressionStatement", + "src": "54057:39:1" + } + ], + "id": 3011, + "name": "Block", + "src": "54047:56:1" + } + ], + "id": 3012, + "name": "FunctionDefinition", + "src": "53954:149:1" + }, + { + "attributes": { + "baseFunctions": [ + 654 + ], + "functionSelector": "b88d4fde", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 3013, + "name": "StructuredDocumentation", + "src": "54109:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3023, + "name": "OverrideSpecifier", + "src": "54273:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3014, + "name": "ElementaryTypeName", + "src": "54195:7:1" + } + ], + "id": 3015, + "name": "VariableDeclaration", + "src": "54195:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3016, + "name": "ElementaryTypeName", + "src": "54209:7:1" + } + ], + "id": 3017, + "name": "VariableDeclaration", + "src": "54209:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3018, + "name": "ElementaryTypeName", + "src": "54221:7:1" + } + ], + "id": 3019, + "name": "VariableDeclaration", + "src": "54221:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3042, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3020, + "name": "ElementaryTypeName", + "src": "54238:5:1" + } + ], + "id": 3021, + "name": "VariableDeclaration", + "src": "54238:18:1" + } + ], + "id": 3022, + "name": "ParameterList", + "src": "54194:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3024, + "name": "ParameterList", + "src": "54282:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3025, + "name": "Identifier", + "src": "54292:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 3026, + "name": "Identifier", + "src": "54300:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3027, + "name": "Identifier", + "src": "54319:10:1" + } + ], + "id": 3028, + "name": "FunctionCall", + "src": "54319:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3029, + "name": "Identifier", + "src": "54333:7:1" + } + ], + "id": 3030, + "name": "FunctionCall", + "src": "54300:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 3031, + "name": "Literal", + "src": "54343:51:1" + } + ], + "id": 3032, + "name": "FunctionCall", + "src": "54292:103:1" + } + ], + "id": 3033, + "name": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3071, + "type": "function (address,address,uint256,bytes memory)", + "value": "_safeTransfer" + }, + "id": 3034, + "name": "Identifier", + "src": "54405:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3015, + "type": "address", + "value": "from" + }, + "id": 3035, + "name": "Identifier", + "src": "54419:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3017, + "type": "address", + "value": "to" + }, + "id": 3036, + "name": "Identifier", + "src": "54425:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3037, + "name": "Identifier", + "src": "54429:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3021, + "type": "bytes memory", + "value": "_data" + }, + "id": 3038, + "name": "Identifier", + "src": "54438:5:1" + } + ], + "id": 3039, + "name": "FunctionCall", + "src": "54405:39:1" + } + ], + "id": 3040, + "name": "ExpressionStatement", + "src": "54405:39:1" + } + ], + "id": 3041, + "name": "Block", + "src": "54282:169:1" + } + ], + "id": 3042, + "name": "FunctionDefinition", + "src": "54169:282:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3043, + "name": "StructuredDocumentation", + "src": "54457:851:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3044, + "name": "ElementaryTypeName", + "src": "55336:7:1" + } + ], + "id": 3045, + "name": "VariableDeclaration", + "src": "55336:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3046, + "name": "ElementaryTypeName", + "src": "55350:7:1" + } + ], + "id": 3047, + "name": "VariableDeclaration", + "src": "55350:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3048, + "name": "ElementaryTypeName", + "src": "55362:7:1" + } + ], + "id": 3049, + "name": "VariableDeclaration", + "src": "55362:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3071, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3050, + "name": "ElementaryTypeName", + "src": "55379:5:1" + } + ], + "id": 3051, + "name": "VariableDeclaration", + "src": "55379:18:1" + } + ], + "id": 3052, + "name": "ParameterList", + "src": "55335:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3053, + "name": "ParameterList", + "src": "55416:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 3054, + "name": "Identifier", + "src": "55426:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3055, + "name": "Identifier", + "src": "55436:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3056, + "name": "Identifier", + "src": "55442:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3057, + "name": "Identifier", + "src": "55446:7:1" + } + ], + "id": 3058, + "name": "FunctionCall", + "src": "55426:28:1" + } + ], + "id": 3059, + "name": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3060, + "name": "Identifier", + "src": "55464:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3061, + "name": "Identifier", + "src": "55472:22:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3062, + "name": "Identifier", + "src": "55495:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3063, + "name": "Identifier", + "src": "55501:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3064, + "name": "Identifier", + "src": "55505:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3051, + "type": "bytes memory", + "value": "_data" + }, + "id": 3065, + "name": "Identifier", + "src": "55514:5:1" + } + ], + "id": 3066, + "name": "FunctionCall", + "src": "55472:48:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3067, + "name": "Literal", + "src": "55522:52:1" + } + ], + "id": 3068, + "name": "FunctionCall", + "src": "55464:111:1" + } + ], + "id": 3069, + "name": "ExpressionStatement", + "src": "55464:111:1" + } + ], + "id": 3070, + "name": "Block", + "src": "55416:166:1" + } + ], + "id": 3071, + "name": "FunctionDefinition", + "src": "55313:269:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_exists", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3072, + "name": "StructuredDocumentation", + "src": "55588:292:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3073, + "name": "ElementaryTypeName", + "src": "55902:7:1" + } + ], + "id": 3074, + "name": "VariableDeclaration", + "src": "55902:15:1" + } + ], + "id": 3075, + "name": "ParameterList", + "src": "55901:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3076, + "name": "ElementaryTypeName", + "src": "55950:4:1" + } + ], + "id": 3077, + "name": "VariableDeclaration", + "src": "55950:4:1" + } + ], + "id": 3078, + "name": "ParameterList", + "src": "55949:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3078 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "contains", + "referencedDeclaration": 2326, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3079, + "name": "Identifier", + "src": "55973:12:1" + } + ], + "id": 3080, + "name": "MemberAccess", + "src": "55973:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3074, + "type": "uint256", + "value": "tokenId" + }, + "id": 3081, + "name": "Identifier", + "src": "55995:7:1" + } + ], + "id": 3082, + "name": "FunctionCall", + "src": "55973:30:1" + } + ], + "id": 3083, + "name": "Return", + "src": "55966:37:1" + } + ], + "id": 3084, + "name": "Block", + "src": "55956:54:1" + } + ], + "id": 3085, + "name": "FunctionDefinition", + "src": "55885:125:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_isApprovedOrOwner", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3086, + "name": "StructuredDocumentation", + "src": "56016:147:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "spender", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3087, + "name": "ElementaryTypeName", + "src": "56196:7:1" + } + ], + "id": 3088, + "name": "VariableDeclaration", + "src": "56196:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3089, + "name": "ElementaryTypeName", + "src": "56213:7:1" + } + ], + "id": 3090, + "name": "VariableDeclaration", + "src": "56213:15:1" + } + ], + "id": 3091, + "name": "ParameterList", + "src": "56195:34:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3092, + "name": "ElementaryTypeName", + "src": "56261:4:1" + } + ], + "id": 3093, + "name": "VariableDeclaration", + "src": "56261:4:1" + } + ], + "id": 3094, + "name": "ParameterList", + "src": "56260:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3095, + "name": "Identifier", + "src": "56277:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3096, + "name": "Identifier", + "src": "56285:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3097, + "name": "Identifier", + "src": "56293:7:1" + } + ], + "id": 3098, + "name": "FunctionCall", + "src": "56285:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: operator query for nonexistent token\"", + "value": "ERC721: operator query for nonexistent token" + }, + "id": 3099, + "name": "Literal", + "src": "56303:46:1" + } + ], + "id": 3100, + "name": "FunctionCall", + "src": "56277:73:1" + } + ], + "id": 3101, + "name": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "attributes": { + "assignments": [ + 3103 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3126, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3102, + "name": "ElementaryTypeName", + "src": "56360:7:1" + } + ], + "id": 3103, + "name": "VariableDeclaration", + "src": "56360:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3104, + "name": "Identifier", + "src": "56376:6:1" + } + ], + "id": 3105, + "name": "MemberAccess", + "src": "56376:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3106, + "name": "Identifier", + "src": "56391:7:1" + } + ], + "id": 3107, + "name": "FunctionCall", + "src": "56376:23:1" + } + ], + "id": 3108, + "name": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "attributes": { + "functionReturnParameters": 3094 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3109, + "name": "Identifier", + "src": "56417:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3110, + "name": "Identifier", + "src": "56428:5:1" + } + ], + "id": 3111, + "name": "BinaryOperation", + "src": "56417:16:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2914, + "type": "function (uint256) view returns (address)", + "value": "getApproved" + }, + "id": 3112, + "name": "Identifier", + "src": "56437:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3113, + "name": "Identifier", + "src": "56449:7:1" + } + ], + "id": 3114, + "name": "FunctionCall", + "src": "56437:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3115, + "name": "Identifier", + "src": "56461:7:1" + } + ], + "id": 3116, + "name": "BinaryOperation", + "src": "56437:31:1" + } + ], + "id": 3117, + "name": "BinaryOperation", + "src": "56417:51:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3118, + "name": "Identifier", + "src": "56472:6:1" + } + ], + "id": 3119, + "name": "MemberAccess", + "src": "56472:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3120, + "name": "Identifier", + "src": "56496:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3121, + "name": "Identifier", + "src": "56503:7:1" + } + ], + "id": 3122, + "name": "FunctionCall", + "src": "56472:39:1" + } + ], + "id": 3123, + "name": "BinaryOperation", + "src": "56417:94:1" + } + ], + "id": 3124, + "name": "TupleExpression", + "src": "56416:96:1" + } + ], + "id": 3125, + "name": "Return", + "src": "56409:103:1" + } + ], + "id": 3126, + "name": "Block", + "src": "56267:252:1" + } + ], + "id": 3127, + "name": "FunctionDefinition", + "src": "56168:351:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3128, + "name": "StructuredDocumentation", + "src": "56525:320:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3129, + "name": "ElementaryTypeName", + "src": "56869:7:1" + } + ], + "id": 3130, + "name": "VariableDeclaration", + "src": "56869:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3131, + "name": "ElementaryTypeName", + "src": "56881:7:1" + } + ], + "id": 3132, + "name": "VariableDeclaration", + "src": "56881:15:1" + } + ], + "id": 3133, + "name": "ParameterList", + "src": "56868:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3134, + "name": "ParameterList", + "src": "56915:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "type": "function (address,uint256,bytes memory)", + "value": "_safeMint" + }, + "id": 3135, + "name": "Identifier", + "src": "56925:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3130, + "type": "address", + "value": "to" + }, + "id": 3136, + "name": "Identifier", + "src": "56935:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3132, + "type": "uint256", + "value": "tokenId" + }, + "id": 3137, + "name": "Identifier", + "src": "56939:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3138, + "name": "Literal", + "src": "56948:2:1" + } + ], + "id": 3139, + "name": "FunctionCall", + "src": "56925:26:1" + } + ], + "id": 3140, + "name": "ExpressionStatement", + "src": "56925:26:1" + } + ], + "id": 3141, + "name": "Block", + "src": "56915:43:1" + } + ], + "id": 3142, + "name": "FunctionDefinition", + "src": "56850:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3143, + "name": "StructuredDocumentation", + "src": "56964:210:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3144, + "name": "ElementaryTypeName", + "src": "57198:7:1" + } + ], + "id": 3145, + "name": "VariableDeclaration", + "src": "57198:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3146, + "name": "ElementaryTypeName", + "src": "57210:7:1" + } + ], + "id": 3147, + "name": "VariableDeclaration", + "src": "57210:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3171, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3148, + "name": "ElementaryTypeName", + "src": "57227:5:1" + } + ], + "id": 3149, + "name": "VariableDeclaration", + "src": "57227:18:1" + } + ], + "id": 3150, + "name": "ParameterList", + "src": "57197:49:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3151, + "name": "ParameterList", + "src": "57264:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3230, + "type": "function (address,uint256)", + "value": "_mint" + }, + "id": 3152, + "name": "Identifier", + "src": "57274:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3153, + "name": "Identifier", + "src": "57280:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3154, + "name": "Identifier", + "src": "57284:7:1" + } + ], + "id": 3155, + "name": "FunctionCall", + "src": "57274:18:1" + } + ], + "id": 3156, + "name": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3157, + "name": "Identifier", + "src": "57302:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3158, + "name": "Identifier", + "src": "57310:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3159, + "name": "ElementaryTypeName", + "src": "57333:7:1" + } + ], + "id": 3160, + "name": "ElementaryTypeNameExpression", + "src": "57333:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3161, + "name": "Literal", + "src": "57341:1:1" + } + ], + "id": 3162, + "name": "FunctionCall", + "src": "57333:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3163, + "name": "Identifier", + "src": "57345:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3164, + "name": "Identifier", + "src": "57349:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3149, + "type": "bytes memory", + "value": "_data" + }, + "id": 3165, + "name": "Identifier", + "src": "57358:5:1" + } + ], + "id": 3166, + "name": "FunctionCall", + "src": "57310:54:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3167, + "name": "Literal", + "src": "57366:52:1" + } + ], + "id": 3168, + "name": "FunctionCall", + "src": "57302:117:1" + } + ], + "id": 3169, + "name": "ExpressionStatement", + "src": "57302:117:1" + } + ], + "id": 3170, + "name": "Block", + "src": "57264:162:1" + } + ], + "id": 3171, + "name": "FunctionDefinition", + "src": "57179:247:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_mint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3172, + "name": "StructuredDocumentation", + "src": "57432:311:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3173, + "name": "ElementaryTypeName", + "src": "57763:7:1" + } + ], + "id": 3174, + "name": "VariableDeclaration", + "src": "57763:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3175, + "name": "ElementaryTypeName", + "src": "57775:7:1" + } + ], + "id": 3176, + "name": "VariableDeclaration", + "src": "57775:15:1" + } + ], + "id": 3177, + "name": "ParameterList", + "src": "57762:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3178, + "name": "ParameterList", + "src": "57809:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3179, + "name": "Identifier", + "src": "57819:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3180, + "name": "Identifier", + "src": "57827:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3181, + "name": "ElementaryTypeName", + "src": "57833:7:1" + } + ], + "id": 3182, + "name": "ElementaryTypeNameExpression", + "src": "57833:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3183, + "name": "Literal", + "src": "57841:1:1" + } + ], + "id": 3184, + "name": "FunctionCall", + "src": "57833:10:1" + } + ], + "id": 3185, + "name": "BinaryOperation", + "src": "57827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: mint to the zero address\"", + "value": "ERC721: mint to the zero address" + }, + "id": 3186, + "name": "Literal", + "src": "57845:34:1" + } + ], + "id": 3187, + "name": "FunctionCall", + "src": "57819:61:1" + } + ], + "id": 3188, + "name": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3189, + "name": "Identifier", + "src": "57890:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3190, + "name": "Identifier", + "src": "57899:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3191, + "name": "Identifier", + "src": "57907:7:1" + } + ], + "id": 3192, + "name": "FunctionCall", + "src": "57899:16:1" + } + ], + "id": 3193, + "name": "UnaryOperation", + "src": "57898:17:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: token already minted\"", + "value": "ERC721: token already minted" + }, + "id": 3194, + "name": "Literal", + "src": "57917:30:1" + } + ], + "id": 3195, + "name": "FunctionCall", + "src": "57890:58:1" + } + ], + "id": 3196, + "name": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3197, + "name": "Identifier", + "src": "57959:20:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3198, + "name": "ElementaryTypeName", + "src": "57980:7:1" + } + ], + "id": 3199, + "name": "ElementaryTypeNameExpression", + "src": "57980:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3200, + "name": "Literal", + "src": "57988:1:1" + } + ], + "id": 3201, + "name": "FunctionCall", + "src": "57980:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3202, + "name": "Identifier", + "src": "57992:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3203, + "name": "Identifier", + "src": "57996:7:1" + } + ], + "id": 3204, + "name": "FunctionCall", + "src": "57959:45:1" + } + ], + "id": 3205, + "name": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3206, + "name": "Identifier", + "src": "58015:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3207, + "name": "Identifier", + "src": "58029:2:1" + } + ], + "id": 3208, + "name": "IndexAccess", + "src": "58015:17:1" + } + ], + "id": 3209, + "name": "MemberAccess", + "src": "58015:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3210, + "name": "Identifier", + "src": "58037:7:1" + } + ], + "id": 3211, + "name": "FunctionCall", + "src": "58015:30:1" + } + ], + "id": 3212, + "name": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3213, + "name": "Identifier", + "src": "58056:12:1" + } + ], + "id": 3215, + "name": "MemberAccess", + "src": "58056:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3216, + "name": "Identifier", + "src": "58073:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3217, + "name": "Identifier", + "src": "58082:2:1" + } + ], + "id": 3218, + "name": "FunctionCall", + "src": "58056:29:1" + } + ], + "id": 3219, + "name": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3220, + "name": "Identifier", + "src": "58101:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3221, + "name": "ElementaryTypeName", + "src": "58110:7:1" + } + ], + "id": 3222, + "name": "ElementaryTypeNameExpression", + "src": "58110:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3223, + "name": "Literal", + "src": "58118:1:1" + } + ], + "id": 3224, + "name": "FunctionCall", + "src": "58110:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3225, + "name": "Identifier", + "src": "58122:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3226, + "name": "Identifier", + "src": "58126:7:1" + } + ], + "id": 3227, + "name": "FunctionCall", + "src": "58101:33:1" + } + ], + "id": 3228, + "name": "EmitStatement", + "src": "58096:38:1" + } + ], + "id": 3229, + "name": "Block", + "src": "57809:332:1" + } + ], + "id": 3230, + "name": "FunctionDefinition", + "src": "57748:393:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_burn", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3231, + "name": "StructuredDocumentation", + "src": "58147:206:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3299, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3232, + "name": "ElementaryTypeName", + "src": "58373:7:1" + } + ], + "id": 3233, + "name": "VariableDeclaration", + "src": "58373:15:1" + } + ], + "id": 3234, + "name": "ParameterList", + "src": "58372:17:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3235, + "name": "ParameterList", + "src": "58407:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 3237 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3298, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3236, + "name": "ElementaryTypeName", + "src": "58417:7:1" + } + ], + "id": 3237, + "name": "VariableDeclaration", + "src": "58417:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3238, + "name": "Identifier", + "src": "58433:6:1" + } + ], + "id": 3239, + "name": "MemberAccess", + "src": "58433:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3240, + "name": "Identifier", + "src": "58448:7:1" + } + ], + "id": 3241, + "name": "FunctionCall", + "src": "58433:23:1" + } + ], + "id": 3242, + "name": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3243, + "name": "Identifier", + "src": "58485:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3244, + "name": "Identifier", + "src": "58506:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3245, + "name": "ElementaryTypeName", + "src": "58513:7:1" + } + ], + "id": 3246, + "name": "ElementaryTypeNameExpression", + "src": "58513:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3247, + "name": "Literal", + "src": "58521:1:1" + } + ], + "id": 3248, + "name": "FunctionCall", + "src": "58513:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3249, + "name": "Identifier", + "src": "58525:7:1" + } + ], + "id": 3250, + "name": "FunctionCall", + "src": "58485:48:1" + } + ], + "id": 3251, + "name": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3252, + "name": "Identifier", + "src": "58571:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3253, + "name": "ElementaryTypeName", + "src": "58580:7:1" + } + ], + "id": 3254, + "name": "ElementaryTypeNameExpression", + "src": "58580:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3255, + "name": "Literal", + "src": "58588:1:1" + } + ], + "id": 3256, + "name": "FunctionCall", + "src": "58580:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3257, + "name": "Identifier", + "src": "58592:7:1" + } + ], + "id": 3258, + "name": "FunctionCall", + "src": "58571:29:1" + } + ], + "id": 3259, + "name": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes storage pointer", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 3260, + "name": "ElementaryTypeName", + "src": "58650:5:1" + } + ], + "id": 3261, + "name": "ElementaryTypeNameExpression", + "src": "58650:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3262, + "name": "Identifier", + "src": "58656:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3263, + "name": "Identifier", + "src": "58667:7:1" + } + ], + "id": 3264, + "name": "IndexAccess", + "src": "58656:19:1" + } + ], + "id": 3265, + "name": "FunctionCall", + "src": "58650:26:1" + } + ], + "id": 3266, + "name": "MemberAccess", + "src": "58650:33:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3267, + "name": "Literal", + "src": "58687:1:1" + } + ], + "id": 3268, + "name": "BinaryOperation", + "src": "58650:38:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3269, + "name": "Identifier", + "src": "58711:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3270, + "name": "Identifier", + "src": "58722:7:1" + } + ], + "id": 3271, + "name": "IndexAccess", + "src": "58711:19:1" + } + ], + "id": 3272, + "name": "UnaryOperation", + "src": "58704:26:1" + } + ], + "id": 3273, + "name": "ExpressionStatement", + "src": "58704:26:1" + } + ], + "id": 3274, + "name": "Block", + "src": "58690:51:1" + } + ], + "id": 3275, + "name": "IfStatement", + "src": "58646:95:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3276, + "name": "Identifier", + "src": "58751:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3277, + "name": "Identifier", + "src": "58765:5:1" + } + ], + "id": 3278, + "name": "IndexAccess", + "src": "58751:20:1" + } + ], + "id": 3279, + "name": "MemberAccess", + "src": "58751:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3280, + "name": "Identifier", + "src": "58779:7:1" + } + ], + "id": 3281, + "name": "FunctionCall", + "src": "58751:36:1" + } + ], + "id": 3282, + "name": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 2306, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3283, + "name": "Identifier", + "src": "58798:12:1" + } + ], + "id": 3285, + "name": "MemberAccess", + "src": "58798:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3286, + "name": "Identifier", + "src": "58818:7:1" + } + ], + "id": 3287, + "name": "FunctionCall", + "src": "58798:28:1" + } + ], + "id": 3288, + "name": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3289, + "name": "Identifier", + "src": "58842:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3290, + "name": "Identifier", + "src": "58851:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3291, + "name": "ElementaryTypeName", + "src": "58858:7:1" + } + ], + "id": 3292, + "name": "ElementaryTypeNameExpression", + "src": "58858:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3293, + "name": "Literal", + "src": "58866:1:1" + } + ], + "id": 3294, + "name": "FunctionCall", + "src": "58858:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3295, + "name": "Identifier", + "src": "58870:7:1" + } + ], + "id": 3296, + "name": "FunctionCall", + "src": "58842:36:1" + } + ], + "id": 3297, + "name": "EmitStatement", + "src": "58837:41:1" + } + ], + "id": 3298, + "name": "Block", + "src": "58407:478:1" + } + ], + "id": 3299, + "name": "FunctionDefinition", + "src": "58358:527:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_transfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3300, + "name": "StructuredDocumentation", + "src": "58891:313:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3301, + "name": "ElementaryTypeName", + "src": "59228:7:1" + } + ], + "id": 3302, + "name": "VariableDeclaration", + "src": "59228:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3303, + "name": "ElementaryTypeName", + "src": "59242:7:1" + } + ], + "id": 3304, + "name": "VariableDeclaration", + "src": "59242:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3305, + "name": "ElementaryTypeName", + "src": "59254:7:1" + } + ], + "id": 3306, + "name": "VariableDeclaration", + "src": "59254:15:1" + } + ], + "id": 3307, + "name": "ParameterList", + "src": "59227:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3308, + "name": "ParameterList", + "src": "59288:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3309, + "name": "Identifier", + "src": "59298:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3310, + "name": "Identifier", + "src": "59306:6:1" + } + ], + "id": 3311, + "name": "MemberAccess", + "src": "59306:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3312, + "name": "Identifier", + "src": "59321:7:1" + } + ], + "id": 3313, + "name": "FunctionCall", + "src": "59306:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3314, + "name": "Identifier", + "src": "59333:4:1" + } + ], + "id": 3315, + "name": "BinaryOperation", + "src": "59306:31:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer of token that is not own\"", + "value": "ERC721: transfer of token that is not own" + }, + "id": 3316, + "name": "Literal", + "src": "59339:43:1" + } + ], + "id": 3317, + "name": "FunctionCall", + "src": "59298:85:1" + } + ], + "id": 3318, + "name": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3319, + "name": "Identifier", + "src": "59411:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3320, + "name": "Identifier", + "src": "59419:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3321, + "name": "ElementaryTypeName", + "src": "59425:7:1" + } + ], + "id": 3322, + "name": "ElementaryTypeNameExpression", + "src": "59425:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3323, + "name": "Literal", + "src": "59433:1:1" + } + ], + "id": 3324, + "name": "FunctionCall", + "src": "59425:10:1" + } + ], + "id": 3325, + "name": "BinaryOperation", + "src": "59419:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to the zero address\"", + "value": "ERC721: transfer to the zero address" + }, + "id": 3326, + "name": "Literal", + "src": "59437:38:1" + } + ], + "id": 3327, + "name": "FunctionCall", + "src": "59411:65:1" + } + ], + "id": 3328, + "name": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3329, + "name": "Identifier", + "src": "59487:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3330, + "name": "Identifier", + "src": "59508:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3331, + "name": "Identifier", + "src": "59514:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3332, + "name": "Identifier", + "src": "59518:7:1" + } + ], + "id": 3333, + "name": "FunctionCall", + "src": "59487:39:1" + } + ], + "id": 3334, + "name": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3335, + "name": "Identifier", + "src": "59588:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3336, + "name": "ElementaryTypeName", + "src": "59597:7:1" + } + ], + "id": 3337, + "name": "ElementaryTypeNameExpression", + "src": "59597:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3338, + "name": "Literal", + "src": "59605:1:1" + } + ], + "id": 3339, + "name": "FunctionCall", + "src": "59597:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3340, + "name": "Identifier", + "src": "59609:7:1" + } + ], + "id": 3341, + "name": "FunctionCall", + "src": "59588:29:1" + } + ], + "id": 3342, + "name": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3343, + "name": "Identifier", + "src": "59628:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3344, + "name": "Identifier", + "src": "59642:4:1" + } + ], + "id": 3345, + "name": "IndexAccess", + "src": "59628:19:1" + } + ], + "id": 3346, + "name": "MemberAccess", + "src": "59628:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3347, + "name": "Identifier", + "src": "59655:7:1" + } + ], + "id": 3348, + "name": "FunctionCall", + "src": "59628:35:1" + } + ], + "id": 3349, + "name": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3350, + "name": "Identifier", + "src": "59673:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3351, + "name": "Identifier", + "src": "59687:2:1" + } + ], + "id": 3352, + "name": "IndexAccess", + "src": "59673:17:1" + } + ], + "id": 3353, + "name": "MemberAccess", + "src": "59673:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3354, + "name": "Identifier", + "src": "59695:7:1" + } + ], + "id": 3355, + "name": "FunctionCall", + "src": "59673:30:1" + } + ], + "id": 3356, + "name": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3357, + "name": "Identifier", + "src": "59714:12:1" + } + ], + "id": 3359, + "name": "MemberAccess", + "src": "59714:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3360, + "name": "Identifier", + "src": "59731:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3361, + "name": "Identifier", + "src": "59740:2:1" + } + ], + "id": 3362, + "name": "FunctionCall", + "src": "59714:29:1" + } + ], + "id": 3363, + "name": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3364, + "name": "Identifier", + "src": "59759:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3365, + "name": "Identifier", + "src": "59768:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3366, + "name": "Identifier", + "src": "59774:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3367, + "name": "Identifier", + "src": "59778:7:1" + } + ], + "id": 3368, + "name": "FunctionCall", + "src": "59759:27:1" + } + ], + "id": 3369, + "name": "EmitStatement", + "src": "59754:32:1" + } + ], + "id": 3370, + "name": "Block", + "src": "59288:505:1" + } + ], + "id": 3371, + "name": "FunctionDefinition", + "src": "59209:584:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setTokenURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3372, + "name": "StructuredDocumentation", + "src": "59799:136:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3393, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3373, + "name": "ElementaryTypeName", + "src": "59962:7:1" + } + ], + "id": 3374, + "name": "VariableDeclaration", + "src": "59962:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 3393, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3375, + "name": "ElementaryTypeName", + "src": "59979:6:1" + } + ], + "id": 3376, + "name": "VariableDeclaration", + "src": "59979:23:1" + } + ], + "id": 3377, + "name": "ParameterList", + "src": "59961:42:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3378, + "name": "ParameterList", + "src": "60021:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3379, + "name": "Identifier", + "src": "60031:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3380, + "name": "Identifier", + "src": "60039:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3381, + "name": "Identifier", + "src": "60047:7:1" + } + ], + "id": 3382, + "name": "FunctionCall", + "src": "60039:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI set of nonexistent token\"", + "value": "ERC721Metadata: URI set of nonexistent token" + }, + "id": 3383, + "name": "Literal", + "src": "60057:46:1" + } + ], + "id": 3384, + "name": "FunctionCall", + "src": "60031:73:1" + } + ], + "id": 3385, + "name": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3386, + "name": "Identifier", + "src": "60114:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3387, + "name": "Identifier", + "src": "60125:7:1" + } + ], + "id": 3388, + "name": "IndexAccess", + "src": "60114:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3376, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 3389, + "name": "Identifier", + "src": "60136:9:1" + } + ], + "id": 3390, + "name": "Assignment", + "src": "60114:31:1" + } + ], + "id": 3391, + "name": "ExpressionStatement", + "src": "60114:31:1" + } + ], + "id": 3392, + "name": "Block", + "src": "60021:131:1" + } + ], + "id": 3393, + "name": "FunctionDefinition", + "src": "59940:212:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setBaseURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3394, + "name": "StructuredDocumentation", + "src": "60158:212:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "baseURI_", + "scope": 3404, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3395, + "name": "ElementaryTypeName", + "src": "60396:6:1" + } + ], + "id": 3396, + "name": "VariableDeclaration", + "src": "60396:22:1" + } + ], + "id": 3397, + "name": "ParameterList", + "src": "60395:24:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3398, + "name": "ParameterList", + "src": "60437:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 3399, + "name": "Identifier", + "src": "60447:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3396, + "type": "string memory", + "value": "baseURI_" + }, + "id": 3400, + "name": "Identifier", + "src": "60458:8:1" + } + ], + "id": 3401, + "name": "Assignment", + "src": "60447:19:1" + } + ], + "id": 3402, + "name": "ExpressionStatement", + "src": "60447:19:1" + } + ], + "id": 3403, + "name": "Block", + "src": "60437:36:1" + } + ], + "id": 3404, + "name": "FunctionDefinition", + "src": "60375:98:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_checkOnERC721Received", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3405, + "name": "StructuredDocumentation", + "src": "60479:542:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3406, + "name": "ElementaryTypeName", + "src": "61058:7:1" + } + ], + "id": 3407, + "name": "VariableDeclaration", + "src": "61058:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3408, + "name": "ElementaryTypeName", + "src": "61072:7:1" + } + ], + "id": 3409, + "name": "VariableDeclaration", + "src": "61072:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3410, + "name": "ElementaryTypeName", + "src": "61084:7:1" + } + ], + "id": 3411, + "name": "VariableDeclaration", + "src": "61084:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3462, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3412, + "name": "ElementaryTypeName", + "src": "61101:5:1" + } + ], + "id": 3413, + "name": "VariableDeclaration", + "src": "61101:18:1" + } + ], + "id": 3414, + "name": "ParameterList", + "src": "61057:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3415, + "name": "ElementaryTypeName", + "src": "61146:4:1" + } + ], + "id": 3416, + "name": "VariableDeclaration", + "src": "61146:4:1" + } + ], + "id": 3417, + "name": "ParameterList", + "src": "61145:6:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isContract", + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3418, + "name": "Identifier", + "src": "61171:2:1" + } + ], + "id": 3419, + "name": "MemberAccess", + "src": "61171:13:1" + } + ], + "id": 3420, + "name": "FunctionCall", + "src": "61171:15:1" + } + ], + "id": 3421, + "name": "UnaryOperation", + "src": "61170:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 3422, + "name": "Literal", + "src": "61209:4:1" + } + ], + "id": 3423, + "name": "Return", + "src": "61202:11:1" + } + ], + "id": 3424, + "name": "Block", + "src": "61188:36:1" + } + ], + "id": 3425, + "name": "IfStatement", + "src": "61166:58:1" + }, + { + "attributes": { + "assignments": [ + 3427 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 3461, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3426, + "name": "ElementaryTypeName", + "src": "61233:5:1" + } + ], + "id": 3427, + "name": "VariableDeclaration", + "src": "61233:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "functionCall", + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3428, + "name": "Identifier", + "src": "61259:2:1" + } + ], + "id": 3429, + "name": "MemberAccess", + "src": "61259:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodeWithSelector", + "type": "function (bytes4) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3430, + "name": "Identifier", + "src": "61275:3:1" + } + ], + "id": 3431, + "name": "MemberAccess", + "src": "61275:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "selector", + "type": "bytes4" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "onERC721Received", + "referencedDeclaration": 725, + "type": "function (address,address,uint256,bytes memory) external returns (bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "contract IERC721Receiver", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 726, + "type": "type(contract IERC721Receiver)", + "value": "IERC721Receiver" + }, + "id": 3432, + "name": "Identifier", + "src": "61311:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3433, + "name": "Identifier", + "src": "61327:2:1" + } + ], + "id": 3434, + "name": "FunctionCall", + "src": "61311:19:1" + } + ], + "id": 3435, + "name": "MemberAccess", + "src": "61311:36:1" + } + ], + "id": 3436, + "name": "MemberAccess", + "src": "61311:45:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3437, + "name": "Identifier", + "src": "61370:10:1" + } + ], + "id": 3438, + "name": "FunctionCall", + "src": "61370:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3407, + "type": "address", + "value": "from" + }, + "id": 3439, + "name": "Identifier", + "src": "61396:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3411, + "type": "uint256", + "value": "tokenId" + }, + "id": 3440, + "name": "Identifier", + "src": "61414:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3413, + "type": "bytes memory", + "value": "_data" + }, + "id": 3441, + "name": "Identifier", + "src": "61435:5:1" + } + ], + "id": 3442, + "name": "FunctionCall", + "src": "61275:175:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3443, + "name": "Literal", + "src": "61452:52:1" + } + ], + "id": 3444, + "name": "FunctionCall", + "src": "61259:246:1" + } + ], + "id": 3445, + "name": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "attributes": { + "assignments": [ + 3447 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "retval", + "scope": 3461, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 3446, + "name": "ElementaryTypeName", + "src": "61515:6:1" + } + ], + "id": 3447, + "name": "VariableDeclaration", + "src": "61515:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes4", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "decode", + "type": "function () pure" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3448, + "name": "Identifier", + "src": "61531:3:1" + } + ], + "id": 3449, + "name": "MemberAccess", + "src": "61531:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3427, + "type": "bytes memory", + "value": "returndata" + }, + "id": 3450, + "name": "Identifier", + "src": "61542:10:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "name": "bytes4" + }, + "id": 3451, + "name": "ElementaryTypeName", + "src": "61555:6:1" + } + ], + "id": 3452, + "name": "ElementaryTypeNameExpression", + "src": "61555:6:1" + } + ], + "id": 3453, + "name": "TupleExpression", + "src": "61554:8:1" + } + ], + "id": 3454, + "name": "FunctionCall", + "src": "61531:32:1" + } + ], + "id": 3455, + "name": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3447, + "type": "bytes4", + "value": "retval" + }, + "id": 3456, + "name": "Identifier", + "src": "61581:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2596, + "type": "bytes4", + "value": "_ERC721_RECEIVED" + }, + "id": 3457, + "name": "Identifier", + "src": "61591:16:1" + } + ], + "id": 3458, + "name": "BinaryOperation", + "src": "61581:26:1" + } + ], + "id": 3459, + "name": "TupleExpression", + "src": "61580:28:1" + } + ], + "id": 3460, + "name": "Return", + "src": "61573:35:1" + } + ], + "id": 3461, + "name": "Block", + "src": "61156:459:1" + } + ], + "id": 3462, + "name": "FunctionDefinition", + "src": "61026:589:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3463, + "name": "StructuredDocumentation", + "src": "61621:101:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3464, + "name": "ElementaryTypeName", + "src": "61745:7:1" + } + ], + "id": 3465, + "name": "VariableDeclaration", + "src": "61745:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3466, + "name": "ElementaryTypeName", + "src": "61757:7:1" + } + ], + "id": 3467, + "name": "VariableDeclaration", + "src": "61757:15:1" + } + ], + "id": 3468, + "name": "ParameterList", + "src": "61744:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3469, + "name": "ParameterList", + "src": "61791:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 3470, + "name": "Identifier", + "src": "61801:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3471, + "name": "Identifier", + "src": "61817:7:1" + } + ], + "id": 3472, + "name": "IndexAccess", + "src": "61801:24:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3473, + "name": "Identifier", + "src": "61828:2:1" + } + ], + "id": 3474, + "name": "Assignment", + "src": "61801:29:1" + } + ], + "id": 3475, + "name": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 563, + "type": "function (address,address,uint256)", + "value": "Approval" + }, + "id": 3476, + "name": "Identifier", + "src": "61845:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3477, + "name": "Identifier", + "src": "61854:6:1" + } + ], + "id": 3478, + "name": "MemberAccess", + "src": "61854:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3479, + "name": "Identifier", + "src": "61869:7:1" + } + ], + "id": 3480, + "name": "FunctionCall", + "src": "61854:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3481, + "name": "Identifier", + "src": "61879:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3482, + "name": "Identifier", + "src": "61883:7:1" + } + ], + "id": 3483, + "name": "FunctionCall", + "src": "61845:46:1" + } + ], + "id": 3484, + "name": "EmitStatement", + "src": "61840:51:1" + } + ], + "id": 3485, + "name": "Block", + "src": "61791:125:1" + } + ], + "id": 3486, + "name": "FunctionDefinition", + "src": "61727:189:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_beforeTokenTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3487, + "name": "StructuredDocumentation", + "src": "61922:585:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3488, + "name": "ElementaryTypeName", + "src": "62542:7:1" + } + ], + "id": 3489, + "name": "VariableDeclaration", + "src": "62542:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3490, + "name": "ElementaryTypeName", + "src": "62556:7:1" + } + ], + "id": 3491, + "name": "VariableDeclaration", + "src": "62556:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3492, + "name": "ElementaryTypeName", + "src": "62568:7:1" + } + ], + "id": 3493, + "name": "VariableDeclaration", + "src": "62568:15:1" + } + ], + "id": 3494, + "name": "ParameterList", + "src": "62541:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3495, + "name": "ParameterList", + "src": "62602:0:1" + }, + { + "attributes": { + "statements": [ + null + ] + }, + "children": [], + "id": 3496, + "name": "Block", + "src": "62602:3:1" + } + ], + "id": 3497, + "name": "FunctionDefinition", + "src": "62512:93:1" + } + ], + "id": 3498, + "name": "ContractDefinition", + "src": "46080:16527:1" + } + ], + "id": 3499, + "name": "SourceUnit", + "src": "84:62524:1" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-13T11:18:07.325Z", + "devdoc": { + "details": "see https://eips.ethereum.org/EIPS/eip-721", + "kind": "dev", + "methods": { + "approve(address,uint256)": { + "details": "See {IERC721-approve}." + }, + "balanceOf(address)": { + "details": "See {IERC721-balanceOf}." + }, + "baseURI()": { + "details": "Returns the base URI set via {_setBaseURI}. This will be automatically added as a prefix in {tokenURI} to each token's URI, or to the token ID if no specific URI is set for that token ID." + }, + "constructor": { + "details": "Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "getApproved(uint256)": { + "details": "See {IERC721-getApproved}." + }, + "isApprovedForAll(address,address)": { + "details": "See {IERC721-isApprovedForAll}." + }, + "name()": { + "details": "See {IERC721Metadata-name}." + }, + "ownerOf(uint256)": { + "details": "See {IERC721-ownerOf}." + }, + "safeTransferFrom(address,address,uint256)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "See {IERC721-safeTransferFrom}." + }, + "setApprovalForAll(address,bool)": { + "details": "See {IERC721-setApprovalForAll}." + }, + "supportsInterface(bytes4)": { + "details": "See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "symbol()": { + "details": "See {IERC721Metadata-symbol}." + }, + "tokenByIndex(uint256)": { + "details": "See {IERC721Enumerable-tokenByIndex}." + }, + "tokenOfOwnerByIndex(address,uint256)": { + "details": "See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "tokenURI(uint256)": { + "details": "See {IERC721Metadata-tokenURI}." + }, + "totalSupply()": { + "details": "See {IERC721Enumerable-totalSupply}." + }, + "transferFrom(address,address,uint256)": { + "details": "See {IERC721-transferFrom}." + } + }, + "title": "ERC721 Non-Fungible Token Standard basic implementation", + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/abis/EnumerableMap.json b/src/abis/EnumerableMap.json new file mode 100644 index 0000000..0d8438b --- /dev/null +++ b/src/abis/EnumerableMap.json @@ -0,0 +1,77558 @@ +{ + "contractName": "EnumerableMap", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing an enumerable variant of Solidity's https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`] type. Maps have the following properties: - Entries are added, removed, and checked for existence in constant time (O(1)). - Entries are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example { // Add the library methods using EnumerableMap for EnumerableMap.UintToAddressMap; // Declare a set state variable EnumerableMap.UintToAddressMap private myMap; } ``` As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are supported.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":\"EnumerableMap\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":{\"keccak256\":\"0xac9220652f9879c5fb3116025d59e8fbf6c2c3d149aed9f617b88edd31402044\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48de100723de94a6590c6db5bae5098a93445194389c3f3eeb104c7239ef3044\",\"dweb:/ipfs/QmVHLEtfLqBqX7XQRHfLuuwtufRBFJFHfgY4zbFRpaZwXC\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200d4b49b02d32e8a038359523216d2d71fecc6c02dcf083695fcf753713bac4ef64736f6c63430007060033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200d4b49b02d32e8a038359523216d2d71fecc6c02dcf083695fcf753713bac4ef64736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "35943:8963:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "35943:8963:1:-:0;;;;;;;;", + "source": "// SPDX-License-Identifier: MIT\n\n// File: @openzeppelin/contracts/utils/Context.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\n\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Enumerable is IERC721 {\n\n /**\n * @dev Returns the total amount of tokens stored by the contract.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);\n\n /**\n * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n * Use along with {totalSupply} to enumerate all tokens.\n */\n function tokenByIndex(uint256 index) external view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\npragma solidity >=0.6.0 <0.8.0;\n\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts may inherit from this and call {_registerInterface} to declare\n * their support of an interface.\n */\nabstract contract ERC165 is IERC165 {\n /*\n * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7\n */\n bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;\n\n /**\n * @dev Mapping of interface ids to whether or not it's supported.\n */\n mapping(bytes4 => bool) private _supportedInterfaces;\n\n constructor () {\n // Derived contracts need only register support for their own interfaces,\n // we register support for ERC165 itself here\n _registerInterface(_INTERFACE_ID_ERC165);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n *\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return _supportedInterfaces[interfaceId];\n }\n\n /**\n * @dev Registers the contract as an implementer of the interface defined by\n * `interfaceId`. Support of the actual ERC165 interface is automatic and\n * registering its interface id is not required.\n *\n * See {IERC165-supportsInterface}.\n *\n * Requirements:\n *\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).\n */\n function _registerInterface(bytes4 interfaceId) internal virtual {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the substraction of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n return a - b;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) return 0;\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: division by zero\");\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: modulo by zero\");\n return a % b;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {trySub}.\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryDiv}.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting with custom message when dividing by zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryMod}.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a % b;\n }\n}\n\n// File: @openzeppelin/contracts/utils/Address.sol\npragma solidity >=0.6.2 <0.8.0;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n // solhint-disable-next-line no-inline-assembly\n assembly { size := extcodesize(account) }\n return size > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: value }(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.staticcall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableSet.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) { // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n bytes32 lastvalue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastvalue;\n // Update the index for the moved value\n set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n require(set._values.length > index, \"EnumerableSet: index out of bounds\");\n return set._values[index];\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableMap.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing an enumerable variant of Solidity's\n * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n * type.\n *\n * Maps have the following properties:\n *\n * - Entries are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Entries are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableMap for EnumerableMap.UintToAddressMap;\n *\n * // Declare a set state variable\n * EnumerableMap.UintToAddressMap private myMap;\n * }\n * ```\n *\n * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n * supported.\n */\nlibrary EnumerableMap {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Map type with\n // bytes32 keys and values.\n // The Map implementation uses private functions, and user-facing\n // implementations (such as Uint256ToAddressMap) are just wrappers around\n // the underlying Map.\n // This means that we can only create new EnumerableMaps for types that fit\n // in bytes32.\n\n struct MapEntry {\n bytes32 _key;\n bytes32 _value;\n }\n\n struct Map {\n // Storage of map keys and values\n MapEntry[] _entries;\n\n // Position of the entry defined by a key in the `entries` array, plus 1\n // because index 0 means a key is not in the map.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex == 0) { // Equivalent to !contains(map, key)\n map._entries.push(MapEntry({ _key: key, _value: value }));\n // The entry is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n map._indexes[key] = map._entries.length;\n return true;\n } else {\n map._entries[keyIndex - 1]._value = value;\n return false;\n }\n }\n\n /**\n * @dev Removes a key-value pair from a map. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function _remove(Map storage map, bytes32 key) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex != 0) { // Equivalent to contains(map, key)\n // To delete a key-value pair from the _entries array in O(1), we swap the entry to delete with the last one\n // in the array, and then remove the last entry (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = keyIndex - 1;\n uint256 lastIndex = map._entries.length - 1;\n\n // When the entry to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n MapEntry storage lastEntry = map._entries[lastIndex];\n\n // Move the last entry to the index where the entry to delete is\n map._entries[toDeleteIndex] = lastEntry;\n // Update the index for the moved entry\n map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved entry was stored\n map._entries.pop();\n\n // Delete the index for the deleted slot\n delete map._indexes[key];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function _contains(Map storage map, bytes32 key) private view returns (bool) {\n return map._indexes[key] != 0;\n }\n\n /**\n * @dev Returns the number of key-value pairs in the map. O(1).\n */\n function _length(Map storage map) private view returns (uint256) {\n return map._entries.length;\n }\n\n /**\n * @dev Returns the key-value pair stored at position `index` in the map. O(1).\n *\n * Note that there are no guarantees on the ordering of entries inside the\n * array, and it may change when more entries are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) {\n require(map._entries.length > index, \"EnumerableMap: index out of bounds\");\n\n MapEntry storage entry = map._entries[index];\n return (entry._key, entry._value);\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n */\n function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) {\n uint256 keyIndex = map._indexes[key];\n if (keyIndex == 0) return (false, 0); // Equivalent to contains(map, key)\n return (true, map._entries[keyIndex - 1]._value); // All indexes are 1-based\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function _get(Map storage map, bytes32 key) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, \"EnumerableMap: nonexistent key\"); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n /**\n * @dev Same as {_get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {_tryGet}.\n */\n function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n // UintToAddressMap\n\n struct UintToAddressMap {\n Map _inner;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) {\n return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {\n return _remove(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {\n return _contains(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns the number of elements in the map. O(1).\n */\n function length(UintToAddressMap storage map) internal view returns (uint256) {\n return _length(map._inner);\n }\n\n /**\n * @dev Returns the element stored at position `index` in the set. O(1).\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {\n (bytes32 key, bytes32 value) = _at(map._inner, index);\n return (uint256(key), address(uint160(uint256(value))));\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n *\n * _Available since v3.4._\n */\n function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) {\n (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key));\n return (success, address(uint160(uint256(value))));\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key)))));\n }\n\n /**\n * @dev Same as {get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryGet}.\n */\n function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage))));\n }\n}\n\n// File: @openzeppelin/contracts/utils/Strings.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n /**\n * @dev Converts a `uint256` to its ASCII `string` representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n uint256 index = digits - 1;\n temp = value;\n while (temp != 0) {\n buffer[index--] = bytes1(uint8(48 + temp % 10));\n temp /= 10;\n }\n return string(buffer);\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 Non-Fungible Token Standard basic implementation\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable {\n using SafeMath for uint256;\n using Address for address;\n using EnumerableSet for EnumerableSet.UintSet;\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n using Strings for uint256;\n\n // Equals to `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n // which can be also obtained as `IERC721Receiver(0).onERC721Received.selector`\n bytes4 private constant _ERC721_RECEIVED = 0x150b7a02;\n\n // Mapping from holder address to their (enumerable) set of owned tokens\n mapping (address => EnumerableSet.UintSet) private _holderTokens;\n\n // Enumerable mapping from token ids to their owners\n EnumerableMap.UintToAddressMap private _tokenOwners;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Optional mapping for token URIs\n mapping (uint256 => string) private _tokenURIs;\n\n // Base URI\n string private _baseURI;\n\n /*\n * bytes4(keccak256('balanceOf(address)')) == 0x70a08231\n * bytes4(keccak256('ownerOf(uint256)')) == 0x6352211e\n * bytes4(keccak256('approve(address,uint256)')) == 0x095ea7b3\n * bytes4(keccak256('getApproved(uint256)')) == 0x081812fc\n * bytes4(keccak256('setApprovalForAll(address,bool)')) == 0xa22cb465\n * bytes4(keccak256('isApprovedForAll(address,address)')) == 0xe985e9c5\n * bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde\n *\n * => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^\n * 0xa22cb465 ^ 0xe985e9c5 ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n /*\n * bytes4(keccak256('name()')) == 0x06fdde03\n * bytes4(keccak256('symbol()')) == 0x95d89b41\n * bytes4(keccak256('tokenURI(uint256)')) == 0xc87b56dd\n *\n * => 0x06fdde03 ^ 0x95d89b41 ^ 0xc87b56dd == 0x5b5e139f\n */\n bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f;\n\n /*\n * bytes4(keccak256('totalSupply()')) == 0x18160ddd\n * bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) == 0x2f745c59\n * bytes4(keccak256('tokenByIndex(uint256)')) == 0x4f6ccce7\n *\n * => 0x18160ddd ^ 0x2f745c59 ^ 0x4f6ccce7 == 0x780e9d63\n */\n bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor (string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n return _holderTokens[owner].length();\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n return _tokenOwners.get(tokenId, \"ERC721: owner query for nonexistent token\");\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).\n if (bytes(_tokenURI).length > 0) {\n return string(abi.encodePacked(base, _tokenURI));\n }\n // If there is a baseURI but no tokenURI, concatenate the tokenID to the baseURI.\n return string(abi.encodePacked(base, tokenId.toString()));\n }\n\n /**\n * @dev Returns the base URI set via {_setBaseURI}. This will be\n * automatically added as a prefix in {tokenURI} to each token's URI, or\n * to the token ID if no specific URI is set for that token ID.\n */\n function baseURI() public view virtual returns (string memory) {\n return _baseURI;\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\n return _holderTokens[owner].at(index);\n }\n\n /**\n * @dev See {IERC721Enumerable-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n // _tokenOwners are indexed by tokenIds, so .length() returns the number of tokenIds\n return _tokenOwners.length();\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenByIndex}.\n */\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\n (uint256 tokenId, ) = _tokenOwners.at(index);\n return tokenId;\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(_msgSender() == owner || ERC721.isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n require(operator != _msgSender(), \"ERC721: approve to caller\");\n\n _operatorApprovals[_msgSender()][operator] = approved;\n emit ApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n _safeTransfer(from, to, tokenId, _data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `_data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _tokenOwners.contains(tokenId);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || ERC721.isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n d*\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory _data) internal virtual {\n _mint(to, tokenId);\n require(_checkOnERC721Received(address(0), to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId);\n\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId); // internal owner\n\n _beforeTokenTransfer(owner, address(0), tokenId);\n\n // Clear approvals\n _approve(address(0), tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n\n _holderTokens[owner].remove(tokenId);\n\n _tokenOwners.remove(tokenId);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\"); // internal owner\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId);\n\n // Clear approvals from the previous owner\n _approve(address(0), tokenId);\n\n _holderTokens[from].remove(tokenId);\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = _tokenURI;\n }\n\n /**\n * @dev Internal function to set the base URI for all token IDs. It is\n * automatically added as a prefix to the value returned in {tokenURI},\n * or to the token ID if {tokenURI} is empty.\n */\n function _setBaseURI(string memory baseURI_) internal virtual {\n _baseURI = baseURI_;\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data)\n private returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n bytes memory returndata = to.functionCall(abi.encodeWithSelector(\n IERC721Receiver(to).onERC721Received.selector,\n _msgSender(),\n from,\n tokenId,\n _data\n ), \"ERC721: transfer to non ERC721Receiver implementer\");\n bytes4 retval = abi.decode(returndata, (bytes4));\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits an {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId); // internal owner\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n * transferred to `to`.\n * - When `from` is zero, `tokenId` will be minted for `to`.\n * - When `to` is zero, ``from``'s `tokenId` will be burned.\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual { }\n}\n", + "sourcePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "ast": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "id": 3499, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 509, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "84:31:1" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 530, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 517, + "nodeType": "Block", + "src": "719:34:1", + "statements": [ + { + "expression": { + "expression": { + "id": 514, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "736:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "736:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 513, + "id": 516, + "nodeType": "Return", + "src": "729:17:1" + } + ] + }, + "id": 518, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 510, + "nodeType": "ParameterList", + "parameters": [], + "src": "668:2:1" + }, + "returnParameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 518, + "src": "702:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "702:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "701:17:1" + }, + "scope": 530, + "src": "649:104:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 528, + "nodeType": "Block", + "src": "824:165:1", + "statements": [ + { + "expression": { + "id": 523, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "834:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 524, + "nodeType": "ExpressionStatement", + "src": "834:4:1" + }, + { + "expression": { + "expression": { + "id": 525, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "974:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "src": "974:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 522, + "id": 527, + "nodeType": "Return", + "src": "967:15:1" + } + ] + }, + "id": 529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 519, + "nodeType": "ParameterList", + "parameters": [], + "src": "776:2:1" + }, + "returnParameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "810:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 520, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "810:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "809:14:1" + }, + "scope": 530, + "src": "759:230:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "617:374:1" + }, + { + "id": 531, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1053:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 532, + "nodeType": "StructuredDocumentation", + "src": "1086:279:1", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 541, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 533, + "nodeType": "StructuredDocumentation", + "src": "1390:340:1", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 540, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1762:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 534, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1762:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1761:20:1" + }, + "returnParameters": { + "id": 539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1805:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1805:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1804:6:1" + }, + "scope": 541, + "src": "1735:76:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1366:447:1" + }, + { + "id": 542, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1873:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 544, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "1996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 545, + "nodeType": "InheritanceSpecifier", + "src": "1996:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "1907:67:1", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 655, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 546, + "nodeType": "StructuredDocumentation", + "src": "2010:88:1", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 554, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 548, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2118:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 550, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2140:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2140:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 552, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2160:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2117:67:1" + }, + "src": "2103:82:1" + }, + { + "anonymous": false, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "2191:94:1", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 563, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 557, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2305:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2305:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 559, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2328:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 561, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2354:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2354:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2304:74:1" + }, + "src": "2290:89:1" + }, + { + "anonymous": false, + "documentation": { + "id": 564, + "nodeType": "StructuredDocumentation", + "src": "2385:117:1", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 572, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 566, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2528:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2528:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2551:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2551:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 570, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2577:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 569, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2577:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2527:64:1" + }, + "src": "2507:85:1" + }, + { + "documentation": { + "id": 573, + "nodeType": "StructuredDocumentation", + "src": "2598:76:1", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2698:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 574, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2698:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2697:15:1" + }, + "returnParameters": { + "id": 579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2736:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2735:17:1" + }, + "scope": 655, + "src": "2679:74:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 581, + "nodeType": "StructuredDocumentation", + "src": "2759:131:1", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 588, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 583, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2912:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2912:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2911:17:1" + }, + "returnParameters": { + "id": 587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2952:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2951:15:1" + }, + "scope": 655, + "src": "2895:72:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 589, + "nodeType": "StructuredDocumentation", + "src": "2973:690:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 598, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 591, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3694:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3694:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3708:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3708:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3720:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3720:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3693:43:1" + }, + "returnParameters": { + "id": 597, + "nodeType": "ParameterList", + "parameters": [], + "src": "3745:0:1" + }, + "scope": 655, + "src": "3668:78:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 599, + "nodeType": "StructuredDocumentation", + "src": "3752:504:1", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 608, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 601, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4283:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4283:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 603, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4297:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 602, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4297:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4309:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4309:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4282:43:1" + }, + "returnParameters": { + "id": 607, + "nodeType": "ParameterList", + "parameters": [], + "src": "4334:0:1" + }, + "scope": 655, + "src": "4261:74:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 609, + "nodeType": "StructuredDocumentation", + "src": "4341:452:1", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 616, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 611, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4815:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4815:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4827:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4814:29:1" + }, + "returnParameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [], + "src": "4852:0:1" + }, + "scope": 655, + "src": "4798:55:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 617, + "nodeType": "StructuredDocumentation", + "src": "4859:139:1", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 619, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5024:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5024:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5023:17:1" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5064:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5064:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5063:18:1" + }, + "scope": 655, + "src": "5003:79:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 625, + "nodeType": "StructuredDocumentation", + "src": "5088:309:1", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 632, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5429:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5429:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5447:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 628, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5447:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5428:34:1" + }, + "returnParameters": { + "id": 631, + "nodeType": "ParameterList", + "parameters": [], + "src": "5471:0:1" + }, + "scope": 655, + "src": "5402:70:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 633, + "nodeType": "StructuredDocumentation", + "src": "5478:138:1", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 642, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5647:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5647:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5662:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5662:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5646:33:1" + }, + "returnParameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5703:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 639, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5703:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5702:6:1" + }, + "scope": 655, + "src": "5621:88:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 643, + "nodeType": "StructuredDocumentation", + "src": "5715:568:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 654, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6314:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6314:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6328:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6340:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6340:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6357:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 650, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6357:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6313:64:1" + }, + "returnParameters": { + "id": 653, + "nodeType": "ParameterList", + "parameters": [], + "src": "6386:0:1" + }, + "scope": 655, + "src": "6288:99:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1975:4414:1" + }, + { + "id": 656, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "6457:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 658, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "6654:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 659, + "nodeType": "InheritanceSpecifier", + "src": "6654:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 657, + "nodeType": "StructuredDocumentation", + "src": "6491:133:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 680, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 660, + "nodeType": "StructuredDocumentation", + "src": "6669:58:1", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 665, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [], + "src": "6745:2:1" + }, + "returnParameters": { + "id": 664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 663, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 665, + "src": "6771:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 662, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6771:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6770:15:1" + }, + "scope": 680, + "src": "6732:54:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 666, + "nodeType": "StructuredDocumentation", + "src": "6792:60:1", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 671, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 667, + "nodeType": "ParameterList", + "parameters": [], + "src": "6872:2:1" + }, + "returnParameters": { + "id": 670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 669, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "6898:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 668, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6897:15:1" + }, + "scope": 680, + "src": "6857:56:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 672, + "nodeType": "StructuredDocumentation", + "src": "6919:90:1", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 679, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7032:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7031:17:1" + }, + "returnParameters": { + "id": 678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7072:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 676, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7072:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7071:15:1" + }, + "scope": 680, + "src": "7014:73:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "6625:464:1" + }, + { + "id": 681, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "7161:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 683, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "7363:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 684, + "nodeType": "InheritanceSpecifier", + "src": "7363:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 682, + "nodeType": "StructuredDocumentation", + "src": "7195:136:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 709, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 685, + "nodeType": "StructuredDocumentation", + "src": "7378:82:1", + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "functionSelector": "18160ddd", + "id": 690, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 686, + "nodeType": "ParameterList", + "parameters": [], + "src": "7485:2:1" + }, + "returnParameters": { + "id": 689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 688, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "7511:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 687, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7511:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7510:9:1" + }, + "scope": 709, + "src": "7465:55:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "7526:171:1", + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "functionSelector": "2f745c59", + "id": 700, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7731:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7731:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7746:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7746:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7730:30:1" + }, + "returnParameters": { + "id": 699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 698, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7784:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7784:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7783:17:1" + }, + "scope": 709, + "src": "7702:99:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 701, + "nodeType": "StructuredDocumentation", + "src": "7807:164:1", + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "functionSelector": "4f6ccce7", + "id": 708, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 703, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "7998:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7998:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7997:15:1" + }, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "8036:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8036:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8035:9:1" + }, + "scope": 709, + "src": "7976:69:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "7332:715:1" + }, + { + "id": 710, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "8117:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 711, + "nodeType": "StructuredDocumentation", + "src": "8150:152:1", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 726, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 712, + "nodeType": "StructuredDocumentation", + "src": "8335:485:1", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 725, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8851:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8851:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8869:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8883:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8900:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 719, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8900:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8850:70:1" + }, + "returnParameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8939:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 722, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8939:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "8938:8:1" + }, + "scope": 726, + "src": "8825:122:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "8303:646:1" + }, + { + "id": 727, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9009:31:1" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 729, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "9243:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 730, + "nodeType": "InheritanceSpecifier", + "src": "9243:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "documentation": { + "id": 728, + "nodeType": "StructuredDocumentation", + "src": "9043:171:1", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "fullyImplemented": true, + "id": 781, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 733, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9340:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 731, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9340:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783031666663396137", + "id": 732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "9404:82:1", + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 738, + "mutability": "mutable", + "name": "_supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9491:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 737, + "keyType": { + "id": 735, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9499:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "9491:23:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 736, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9509:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 745, + "nodeType": "Block", + "src": "9565:193:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 742, + "name": "_INTERFACE_ID_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "9730:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 741, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "9711:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9711:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 744, + "nodeType": "ExpressionStatement", + "src": "9711:40:1" + } + ] + }, + "id": 746, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 739, + "nodeType": "ParameterList", + "parameters": [], + "src": "9562:2:1" + }, + "returnParameters": { + "id": 740, + "nodeType": "ParameterList", + "parameters": [], + "src": "9565:0:1" + }, + "scope": 781, + "src": "9550:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 540 + ], + "body": { + "id": 759, + "nodeType": "Block", + "src": "9999:57:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 755, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10016:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 757, + "indexExpression": { + "id": 756, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "10037:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10016:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 754, + "id": 758, + "nodeType": "Return", + "src": "10009:40:1" + } + ] + }, + "documentation": { + "id": 747, + "nodeType": "StructuredDocumentation", + "src": "9764:139:1", + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 760, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 751, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9975:8:1" + }, + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9935:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 748, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9935:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "9934:20:1" + }, + "returnParameters": { + "id": 754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 753, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9993:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9993:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9992:6:1" + }, + "scope": 781, + "src": "9908:148:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 779, + "nodeType": "Block", + "src": "10515:133:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 767, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10533:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10548:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "10533:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10560:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + }, + "value": "ERC165: invalid interface id" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "id": 766, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "10525:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10525:66:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 772, + "nodeType": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "expression": { + "id": 777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 773, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10601:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 775, + "indexExpression": { + "id": 774, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10622:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10637:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10601:40:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 778, + "nodeType": "ExpressionStatement", + "src": "10601:40:1" + } + ] + }, + "documentation": { + "id": 761, + "nodeType": "StructuredDocumentation", + "src": "10062:383:1", + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 780, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 763, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 780, + "src": "10478:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 762, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "10478:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "10477:20:1" + }, + "returnParameters": { + "id": 765, + "nodeType": "ParameterList", + "parameters": [], + "src": "10515:0:1" + }, + "scope": 781, + "src": "10450:198:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "9215:1435:1" + }, + { + "id": 782, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10703:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 783, + "nodeType": "StructuredDocumentation", + "src": "10736:563:1", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 1135, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 813, + "nodeType": "Block", + "src": "11535:98:1", + "statements": [ + { + "assignments": [ + 796 + ], + "declarations": [ + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 813, + "src": "11545:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 795, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 800, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 797, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11557:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "11561:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11557:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 801, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11576:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 802, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11580:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11576:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 808, + "nodeType": "IfStatement", + "src": "11572:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11591:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11598:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 806, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11590:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 794, + "id": 807, + "nodeType": "Return", + "src": "11583:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11618:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 810, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11624:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 811, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11617:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 794, + "id": 812, + "nodeType": "Return", + "src": "11610:16:1" + } + ] + }, + "documentation": { + "id": 784, + "nodeType": "StructuredDocumentation", + "src": "11323:131:1", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 814, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11475:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11475:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11486:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11486:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11474:22:1" + }, + "returnParameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 791, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11526:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 792, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11526:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11519:15:1" + }, + "scope": 1135, + "src": "11459:174:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 840, + "nodeType": "Block", + "src": "11855:75:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 826, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11869:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 827, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11873:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11869:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 833, + "nodeType": "IfStatement", + "src": "11865:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11884:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 831, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11883:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 825, + "id": 832, + "nodeType": "Return", + "src": "11876:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11911:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 835, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11917:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 836, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11921:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11917:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 838, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11910:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 825, + "id": 839, + "nodeType": "Return", + "src": "11903:20:1" + } + ] + }, + "documentation": { + "id": 815, + "nodeType": "StructuredDocumentation", + "src": "11639:135:1", + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 841, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 817, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11795:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11795:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 819, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11806:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11806:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11794:22:1" + }, + "returnParameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11840:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 821, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11840:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 824, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11846:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11846:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11839:15:1" + }, + "scope": 1135, + "src": "11779:151:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 881, + "nodeType": "Block", + "src": "12154:359:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 853, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12386:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12391:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12386:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 860, + "nodeType": "IfStatement", + "src": "12382:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12402:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12408:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 858, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12401:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 859, + "nodeType": "Return", + "src": "12394:16:1" + } + }, + { + "assignments": [ + 862 + ], + "declarations": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "12420:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12420:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 866, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12432:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 864, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12436:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12432:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 867, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12451:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 868, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12455:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 870, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12460:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 876, + "nodeType": "IfStatement", + "src": "12447:33:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12471:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12478:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 874, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12470:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 875, + "nodeType": "Return", + "src": "12463:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12498:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 878, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12504:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12497:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 852, + "id": 880, + "nodeType": "Return", + "src": "12490:16:1" + } + ] + }, + "documentation": { + "id": 842, + "nodeType": "StructuredDocumentation", + "src": "11936:137:1", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 844, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12094:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12094:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 846, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12105:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12093:22:1" + }, + "returnParameters": { + "id": 852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12139:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 848, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12139:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12145:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12145:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12138:15:1" + }, + "scope": 1135, + "src": "12078:435:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 908, + "nodeType": "Block", + "src": "12738:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 894, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12752:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12757:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12752:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 901, + "nodeType": "IfStatement", + "src": "12748:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12768:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12775:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 899, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12767:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 893, + "id": 900, + "nodeType": "Return", + "src": "12760:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12795:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 903, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "12801:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 904, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12805:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12801:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 906, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12794:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 893, + "id": 907, + "nodeType": "Return", + "src": "12787:20:1" + } + ] + }, + "documentation": { + "id": 883, + "nodeType": "StructuredDocumentation", + "src": "12519:138:1", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 909, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12678:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12678:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12689:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12689:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12677:22:1" + }, + "returnParameters": { + "id": 893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12723:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 889, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12723:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12729:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12729:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12722:15:1" + }, + "scope": 1135, + "src": "12662:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 935, + "nodeType": "Block", + "src": "13049:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 921, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13063:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13068:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13063:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 928, + "nodeType": "IfStatement", + "src": "13059:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13079:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13086:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 926, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13078:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 920, + "id": 927, + "nodeType": "Return", + "src": "13071:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13106:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 930, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "13112:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 931, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13116:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13112:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13105:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 920, + "id": 934, + "nodeType": "Return", + "src": "13098:20:1" + } + ] + }, + "documentation": { + "id": 910, + "nodeType": "StructuredDocumentation", + "src": "12820:148:1", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 912, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "12989:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12989:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 914, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13000:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 913, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13000:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12988:22:1" + }, + "returnParameters": { + "id": 920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 917, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13034:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 916, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13034:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 919, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13040:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13040:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13033:15:1" + }, + "scope": 1135, + "src": "12973:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 961, + "nodeType": "Block", + "src": "13427:108:1", + "statements": [ + { + "assignments": [ + 947 + ], + "declarations": [ + { + "constant": false, + "id": 947, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "13437:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13437:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 951, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13449:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 949, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 941, + "src": "13453:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13449:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 953, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13472:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 954, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13477:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13480:29:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 952, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13464:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 958, + "nodeType": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "expression": { + "id": 959, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13527:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 945, + "id": 960, + "nodeType": "Return", + "src": "13520:8:1" + } + ] + }, + "documentation": { + "id": 937, + "nodeType": "StructuredDocumentation", + "src": "13131:224:1", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13373:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13384:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13384:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13372:22:1" + }, + "returnParameters": { + "id": 945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13418:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13418:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13417:9:1" + }, + "scope": 1135, + "src": "13360:175:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 983, + "nodeType": "Block", + "src": "13873:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 973, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13896:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13891:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13883:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 979, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13949:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 980, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13953:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13949:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 971, + "id": 982, + "nodeType": "Return", + "src": "13942:12:1" + } + ] + }, + "documentation": { + "id": 963, + "nodeType": "StructuredDocumentation", + "src": "13541:260:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 984, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13819:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 964, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 967, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13830:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13830:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13818:22:1" + }, + "returnParameters": { + "id": 971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 970, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13864:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13864:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13863:9:1" + }, + "scope": 1135, + "src": "13806:155:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "14275:148:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 994, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14289:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14294:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14289:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "IfStatement", + "src": "14285:20:1", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14304:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 993, + "id": 998, + "nodeType": "Return", + "src": "14297:8:1" + } + }, + { + "assignments": [ + 1001 + ], + "declarations": [ + { + "constant": false, + "id": 1001, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "14315:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14315:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1005, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1002, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14327:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1003, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14331:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14327:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1007, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14350:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1008, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14354:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1010, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14359:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14362:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1006, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14342:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14342:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "expression": { + "id": 1015, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14415:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 993, + "id": 1016, + "nodeType": "Return", + "src": "14408:8:1" + } + ] + }, + "documentation": { + "id": 985, + "nodeType": "StructuredDocumentation", + "src": "13967:236:1", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14221:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 989, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14232:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 988, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14232:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14220:22:1" + }, + "returnParameters": { + "id": 993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 992, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14266:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14266:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14265:9:1" + }, + "scope": 1135, + "src": "14208:215:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1039, + "nodeType": "Block", + "src": "14954:83:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1029, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "14972:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14976:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14972:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14979:28:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14964:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14964:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1034, + "nodeType": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1035, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1021, + "src": "15025:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1036, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "15029:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15025:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1027, + "id": 1038, + "nodeType": "Return", + "src": "15018:12:1" + } + ] + }, + "documentation": { + "id": 1019, + "nodeType": "StructuredDocumentation", + "src": "14429:453:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1040, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1021, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14900:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14900:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1023, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14911:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14899:22:1" + }, + "returnParameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1026, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14945:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14945:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14944:9:1" + }, + "scope": 1135, + "src": "14887:150:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1061, + "nodeType": "Block", + "src": "15557:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1051, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15575:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15579:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15582:26:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 1050, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "15567:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15567:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1056, + "nodeType": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1057, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1043, + "src": "15626:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1058, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15630:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15626:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1049, + "id": 1060, + "nodeType": "Return", + "src": "15619:12:1" + } + ] + }, + "documentation": { + "id": 1041, + "nodeType": "StructuredDocumentation", + "src": "15043:442:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1062, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1043, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15503:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1045, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15514:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15502:22:1" + }, + "returnParameters": { + "id": 1049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1048, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15548:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15548:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15547:9:1" + }, + "scope": 1135, + "src": "15490:148:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1085, + "nodeType": "Block", + "src": "16197:68:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16215:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1076, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16220:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16215:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1078, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "16223:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1074, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "16207:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16207:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1080, + "nodeType": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16253:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1082, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16257:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16253:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1073, + "id": 1084, + "nodeType": "Return", + "src": "16246:12:1" + } + ] + }, + "documentation": { + "id": 1063, + "nodeType": "StructuredDocumentation", + "src": "15644:453:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1086, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16115:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16115:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16126:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16137:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1068, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16137:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16114:50:1" + }, + "returnParameters": { + "id": 1073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16188:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16188:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16187:9:1" + }, + "scope": 1135, + "src": "16102:163:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1109, + "nodeType": "Block", + "src": "17017:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1099, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17035:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17039:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17035:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1102, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1093, + "src": "17042:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17027:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17027:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1105, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "17072:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1106, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17076:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17072:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1097, + "id": 1108, + "nodeType": "Return", + "src": "17065:12:1" + } + ] + }, + "documentation": { + "id": 1087, + "nodeType": "StructuredDocumentation", + "src": "16271:646:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16935:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16935:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16946:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16946:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1093, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16957:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1092, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16957:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16934:50:1" + }, + "returnParameters": { + "id": 1097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1096, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "17008:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17008:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17007:9:1" + }, + "scope": 1135, + "src": "16922:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1133, + "nodeType": "Block", + "src": "17825:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1123, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17843:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17847:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17843:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1126, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "17850:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17835:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1128, + "nodeType": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1129, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "17880:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1130, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17880:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1121, + "id": 1132, + "nodeType": "Return", + "src": "17873:12:1" + } + ] + }, + "documentation": { + "id": 1111, + "nodeType": "StructuredDocumentation", + "src": "17090:635:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17743:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17743:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17754:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17754:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17765:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1116, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17765:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17742:50:1" + }, + "returnParameters": { + "id": 1121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17816:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17816:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17815:9:1" + }, + "scope": 1135, + "src": "17730:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "11300:6594:1" + }, + { + "id": 1136, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "17947:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1137, + "nodeType": "StructuredDocumentation", + "src": "17980:67:1", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 1430, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1153, + "nodeType": "Block", + "src": "18706:347:1", + "statements": [ + { + "assignments": [ + 1146 + ], + "declarations": [ + { + "constant": false, + "id": 1146, + "mutability": "mutable", + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 1153, + "src": "18903:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18903:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1147, + "nodeType": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "18990:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18992:28:1", + "value": { + "arguments": [ + { + "name": "account", + "nodeType": "YulIdentifier", + "src": "19012:7:1" + } + ], + "functionName": { + "name": "extcodesize", + "nodeType": "YulIdentifier", + "src": "19000:11:1" + }, + "nodeType": "YulFunctionCall", + "src": "19000:20:1" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "18992:4:1" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "id": 1148, + "nodeType": "InlineAssembly", + "src": "18981:41:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1149, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "19038:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19045:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19038:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1144, + "id": 1152, + "nodeType": "Return", + "src": "19031:15:1" + } + ] + }, + "documentation": { + "id": 1138, + "nodeType": "StructuredDocumentation", + "src": "18070:565:1", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1154, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1140, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18660:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18660:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18659:17:1" + }, + "returnParameters": { + "id": 1144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1143, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18700:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1142, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18700:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "18699:6:1" + }, + "scope": 1430, + "src": "18640:413:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1187, + "nodeType": "Block", + "src": "20041:320:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1165, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "20067:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20059:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1163, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20059:7:1", + "typeDescriptions": {} + } + }, + "id": 1166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20059:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "20059:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1168, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20084:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20059:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20092:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 1162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20051:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1172, + "nodeType": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "assignments": [ + 1174, + null + ], + "declarations": [ + { + "constant": false, + "id": 1174, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1187, + "src": "20213:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1173, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20213:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1181, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20263:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 1175, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1157, + "src": "20231:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "20231:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1177, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20254:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "20231:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20231:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1183, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "20284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20293:60:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 1182, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20276:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20276:78:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1186, + "nodeType": "ExpressionStatement", + "src": "20276:78:1" + } + ] + }, + "documentation": { + "id": 1155, + "nodeType": "StructuredDocumentation", + "src": "19059:906:1", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1188, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1157, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "19989:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19989:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1159, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "20016:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19988:43:1" + }, + "returnParameters": { + "id": 1161, + "nodeType": "ParameterList", + "parameters": [], + "src": "20041:0:1" + }, + "scope": 1430, + "src": "19970:391:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1204, + "nodeType": "Block", + "src": "21191:82:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1199, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "21219:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1200, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "21227:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21233:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 1198, + "name": "functionCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "src": "21206:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21206:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1197, + "id": 1203, + "nodeType": "Return", + "src": "21199:67:1" + } + ] + }, + "documentation": { + "id": 1189, + "nodeType": "StructuredDocumentation", + "src": "20367:730:1", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1205, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21124:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21124:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21140:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1192, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21140:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21123:35:1" + }, + "returnParameters": { + "id": 1197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1196, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21177:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1195, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21176:14:1" + }, + "scope": 1430, + "src": "21102:171:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1224, + "nodeType": "Block", + "src": "21612:76:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1218, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "21651:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1219, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "21659:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21665:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 1221, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "21668:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1217, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "21629:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21629:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1216, + "id": 1223, + "nodeType": "Return", + "src": "21622:59:1" + } + ] + }, + "documentation": { + "id": 1206, + "nodeType": "StructuredDocumentation", + "src": "21279:211:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1208, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21517:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21517:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21533:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1209, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21533:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1212, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21552:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1211, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "21552:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "21516:63:1" + }, + "returnParameters": { + "id": 1216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1215, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21598:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1214, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21598:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21597:14:1" + }, + "scope": 1430, + "src": "21495:193:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1244, + "nodeType": "Block", + "src": "22163:111:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1238, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "22202:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1239, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "22210:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1240, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1232, + "src": "22216:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22223:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 1237, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "22180:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22180:87:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1236, + "id": 1243, + "nodeType": "Return", + "src": "22173:94:1" + } + ] + }, + "documentation": { + "id": 1226, + "nodeType": "StructuredDocumentation", + "src": "21694:351:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1245, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1228, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22081:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22081:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1230, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22097:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1229, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22097:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1232, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22116:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "22080:50:1" + }, + "returnParameters": { + "id": 1236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1235, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22149:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1234, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22149:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22148:14:1" + }, + "scope": 1430, + "src": "22050:224:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1294, + "nodeType": "Block", + "src": "22663:382:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1262, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "22689:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22681:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22681:7:1", + "typeDescriptions": {} + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22681:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "22681:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1265, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22706:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22681:30:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 1267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22713:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 1259, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22673:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22673:81:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1269, + "nodeType": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1272, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22783:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1271, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "22772:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22772:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22792:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 1270, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22764:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22764:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1276, + "nodeType": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "assignments": [ + 1278, + 1280 + ], + "declarations": [ + { + "constant": false, + "id": 1278, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22895:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1277, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22895:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1280, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22909:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1279, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22909:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1287, + "initialValue": { + "arguments": [ + { + "id": 1285, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1250, + "src": "22964:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1281, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22936:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "22936:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1283, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22956:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "22936:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22936:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1289, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "23004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1290, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1280, + "src": "23013:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1291, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "23025:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1288, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "22986:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22986:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1258, + "id": 1293, + "nodeType": "Return", + "src": "22979:59:1" + } + ] + }, + "documentation": { + "id": 1246, + "nodeType": "StructuredDocumentation", + "src": "22280:237:1", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1295, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1248, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22553:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22553:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1250, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22569:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1249, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22569:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1252, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22588:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22588:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1254, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22603:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1253, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "22603:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "22552:78:1" + }, + "returnParameters": { + "id": 1258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1257, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22649:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1256, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22649:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22648:14:1" + }, + "scope": 1430, + "src": "22522:523:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1311, + "nodeType": "Block", + "src": "23322:97:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1306, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1298, + "src": "23358:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1307, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "23366:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23372:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 1305, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "src": "23339:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23339:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1304, + "id": 1310, + "nodeType": "Return", + "src": "23332:80:1" + } + ] + }, + "documentation": { + "id": 1296, + "nodeType": "StructuredDocumentation", + "src": "23051:166:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1298, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23250:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23250:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23266:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1299, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23266:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23249:35:1" + }, + "returnParameters": { + "id": 1304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1303, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23308:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23308:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23307:14:1" + }, + "scope": 1430, + "src": "23222:197:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1346, + "nodeType": "Block", + "src": "23731:288:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1326, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1325, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "23749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23749:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23769:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + }, + "value": "Address: static call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "id": 1324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "23741:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23741:67:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1330, + "nodeType": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "assignments": [ + 1332, + 1334 + ], + "declarations": [ + { + "constant": false, + "id": 1332, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23879:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1331, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23879:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1334, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23893:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1333, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23893:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1339, + "initialValue": { + "arguments": [ + { + "id": 1337, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "23938:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1335, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23920:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "23920:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23920:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1341, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "23978:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1342, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1334, + "src": "23987:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1343, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "23999:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1340, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "23960:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23960:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1323, + "id": 1345, + "nodeType": "Return", + "src": "23953:59:1" + } + ] + }, + "documentation": { + "id": 1313, + "nodeType": "StructuredDocumentation", + "src": "23425:173:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1315, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23631:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23631:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1317, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23647:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1316, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23647:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1319, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23666:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1318, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "23666:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "23630:63:1" + }, + "returnParameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1322, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23717:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1321, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23717:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23716:14:1" + }, + "scope": 1430, + "src": "23603:416:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1363, + "nodeType": "Block", + "src": "24295:101:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1358, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "24333:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1359, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "24341:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24347:41:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 1357, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "src": "24312:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24312:77:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1356, + "id": 1362, + "nodeType": "Return", + "src": "24305:84:1" + } + ] + }, + "documentation": { + "id": 1348, + "nodeType": "StructuredDocumentation", + "src": "24025:168:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1364, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1350, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24228:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24244:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1351, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24227:35:1" + }, + "returnParameters": { + "id": 1356, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1355, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24281:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1354, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24281:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24280:14:1" + }, + "scope": 1430, + "src": "24198:198:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1398, + "nodeType": "Block", + "src": "24707:292:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1378, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24736:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1377, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "24725:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24725:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24745:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + }, + "value": "Address: delegate call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "id": 1376, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "24717:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24717:69:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1382, + "nodeType": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "assignments": [ + 1384, + 1386 + ], + "declarations": [ + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24857:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1383, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "24857:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24871:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1385, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24871:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1391, + "initialValue": { + "arguments": [ + { + "id": 1389, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1369, + "src": "24918:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1387, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "24898:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24898:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1393, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1384, + "src": "24958:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1394, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1386, + "src": "24967:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1395, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1371, + "src": "24979:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1392, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "24940:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24940:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1375, + "id": 1397, + "nodeType": "Return", + "src": "24933:59:1" + } + ] + }, + "documentation": { + "id": 1365, + "nodeType": "StructuredDocumentation", + "src": "24402:175:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1399, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1367, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24612:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24612:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1369, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24628:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1368, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24628:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1371, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24647:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1370, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "24647:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "24611:63:1" + }, + "returnParameters": { + "id": 1375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1374, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24693:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1373, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24693:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24692:14:1" + }, + "scope": 1430, + "src": "24582:417:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1428, + "nodeType": "Block", + "src": "25134:596:1", + "statements": [ + { + "condition": { + "id": 1410, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "25148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1426, + "nodeType": "Block", + "src": "25205:519:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1414, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25289:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "25289:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25309:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25289:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1424, + "nodeType": "Block", + "src": "25661:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1421, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1405, + "src": "25686:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1420, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "25679:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25679:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1423, + "nodeType": "ExpressionStatement", + "src": "25679:20:1" + } + ] + }, + "id": 1425, + "nodeType": "IfStatement", + "src": "25285:429:1", + "trueBody": { + "id": 1419, + "nodeType": "Block", + "src": "25312:343:1", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "25496:145:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "25518:40:1", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25547:10:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "25541:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "25541:17:1" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "25522:15:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25590:2:1", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25594:10:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25586:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "25586:19:1" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "25607:15:1" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "25579:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "25579:44:1" + }, + "nodeType": "YulExpressionStatement", + "src": "25579:44:1" + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "id": 1418, + "nodeType": "InlineAssembly", + "src": "25487:154:1" + } + ] + } + } + ] + }, + "id": 1427, + "nodeType": "IfStatement", + "src": "25144:580:1", + "trueBody": { + "id": 1413, + "nodeType": "Block", + "src": "25157:42:1", + "statements": [ + { + "expression": { + "id": 1411, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25178:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1409, + "id": 1412, + "nodeType": "Return", + "src": "25171:17:1" + } + ] + } + } + ] + }, + "id": 1429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1401, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25032:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1400, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "25032:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1403, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25046:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1402, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25046:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1405, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25071:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1404, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "25071:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "25031:67:1" + }, + "returnParameters": { + "id": 1409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1408, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25120:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1407, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25120:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "25119:14:1" + }, + "scope": 1430, + "src": "25005:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3499, + "src": "18048:7684:1" + }, + { + "id": 1431, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "25791:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1432, + "nodeType": "StructuredDocumentation", + "src": "25824:686:1", + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "fullyImplemented": true, + "id": 1921, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableSet.Set", + "id": 1440, + "members": [ + { + "constant": false, + "id": 1435, + "mutability": "mutable", + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27033:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1433, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27033:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1434, + "nodeType": "ArrayTypeName", + "src": "27033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1439, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27184:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1438, + "keyType": { + "id": 1436, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "27184:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "26979:249:1", + "visibility": "public" + }, + { + "body": { + "id": 1480, + "nodeType": "Block", + "src": "27467:335:1", + "statements": [ + { + "condition": { + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "27481:22:1", + "subExpression": { + "arguments": [ + { + "id": 1451, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27492:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + { + "id": 1452, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27497:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1450, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "27482:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27482:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1478, + "nodeType": "Block", + "src": "27759:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27780:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1449, + "id": 1477, + "nodeType": "Return", + "src": "27773:12:1" + } + ] + }, + "id": 1479, + "nodeType": "IfStatement", + "src": "27477:319:1", + "trueBody": { + "id": 1475, + "nodeType": "Block", + "src": "27505:248:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1460, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27536:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "expression": { + "id": 1455, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1458, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27519:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "27519:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 1461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27519:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1462, + "nodeType": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "expression": { + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1463, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27677:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "27677:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1467, + "indexExpression": { + "id": 1465, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27690:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "27677:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1468, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27699:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1469, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27699:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "27699:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27677:40:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1472, + "nodeType": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27738:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1449, + "id": 1474, + "nodeType": "Return", + "src": "27731:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1441, + "nodeType": "StructuredDocumentation", + "src": "27234:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1481, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27412:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1442, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27412:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1445, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27429:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1444, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27411:32:1" + }, + "returnParameters": { + "id": 1449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1447, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "27461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "27460:6:1" + }, + "scope": 1921, + "src": "27398:404:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1560, + "nodeType": "Block", + "src": "28042:1440:1", + "statements": [ + { + "assignments": [ + 1492 + ], + "declarations": [ + { + "constant": false, + "id": 1492, + "mutability": "mutable", + "name": "valueIndex", + "nodeType": "VariableDeclaration", + "scope": 1560, + "src": "28152:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28152:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1497, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1493, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28173:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1494, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "28173:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1496, + "indexExpression": { + "id": 1495, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "28186:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28173:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1498, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28207:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28221:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28207:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1558, + "nodeType": "Block", + "src": "29439:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29460:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1490, + "id": 1557, + "nodeType": "Return", + "src": "29453:12:1" + } + ] + }, + "id": 1559, + "nodeType": "IfStatement", + "src": "28203:1273:1", + "trueBody": { + "id": 1555, + "nodeType": "Block", + "src": "28224:1209:1", + "statements": [ + { + "assignments": [ + 1502 + ], + "declarations": [ + { + "constant": false, + "id": 1502, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28564:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28564:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1506, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1503, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28588:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28588:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "assignments": [ + 1508 + ], + "declarations": [ + { + "constant": false, + "id": 1508, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28616:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28616:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1514, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1509, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28636:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28636:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "28636:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28657:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28636:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "assignments": [ + 1516 + ], + "declarations": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "lastvalue", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28898:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1515, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28898:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1521, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1517, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28918:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1520, + "indexExpression": { + "id": 1519, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "28930:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28918:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "expression": { + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1522, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29032:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1525, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29032:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1526, + "indexExpression": { + "id": 1524, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29044:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29032:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1527, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29061:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "29032:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1529, + "nodeType": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "expression": { + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1530, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29136:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1533, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29136:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1534, + "indexExpression": { + "id": 1532, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29149:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29136:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1535, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29162:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29178:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "29162:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29136:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1539, + "nodeType": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 1540, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29285:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "29285:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29285:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1546, + "nodeType": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "expression": { + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "29370:26:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 1547, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29377:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29377:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1550, + "indexExpression": { + "id": 1549, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "29390:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29377:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1552, + "nodeType": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29418:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1490, + "id": 1554, + "nodeType": "Return", + "src": "29411:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1482, + "nodeType": "StructuredDocumentation", + "src": "27808:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1561, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "27987:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1483, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27987:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1486, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28004:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1485, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27986:32:1" + }, + "returnParameters": { + "id": 1490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28036:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1488, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "28036:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "28035:6:1" + }, + "scope": 1921, + "src": "27970:1512:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1578, + "nodeType": "Block", + "src": "29642:48:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 1571, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "29659:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29659:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1574, + "indexExpression": { + "id": 1573, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "29672:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29659:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29682:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "29659:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1570, + "id": 1577, + "nodeType": "Return", + "src": "29652:31:1" + } + ] + }, + "documentation": { + "id": 1562, + "nodeType": "StructuredDocumentation", + "src": "29488:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1579, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1564, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29582:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1563, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29582:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29599:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1565, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "29599:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "29581:32:1" + }, + "returnParameters": { + "id": 1570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29636:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "29636:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "29635:6:1" + }, + "scope": 1921, + "src": "29563:127:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1591, + "nodeType": "Block", + "src": "29836:42:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 1587, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1582, + "src": "29853:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1588, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29853:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "29853:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1586, + "id": 1590, + "nodeType": "Return", + "src": "29846:25:1" + } + ] + }, + "documentation": { + "id": 1580, + "nodeType": "StructuredDocumentation", + "src": "29696:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1582, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29788:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1581, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29788:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "src": "29787:17:1" + }, + "returnParameters": { + "id": 1586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1585, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29827:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29826:9:1" + }, + "scope": 1921, + "src": "29771:107:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1616, + "nodeType": "Block", + "src": "30286:125:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1603, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30304:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30304:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "30304:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1606, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30325:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30304:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30332:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + }, + "value": "EnumerableSet: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "id": 1602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "30296:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30296:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1610, + "nodeType": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 1611, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30386:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30386:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1614, + "indexExpression": { + "id": 1613, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30398:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30386:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1601, + "id": 1615, + "nodeType": "Return", + "src": "30379:25:1" + } + ] + }, + "documentation": { + "id": 1593, + "nodeType": "StructuredDocumentation", + "src": "29883:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1617, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1595, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30223:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1594, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30223:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30240:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30240:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30222:32:1" + }, + "returnParameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1600, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30277:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1599, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30276:9:1" + }, + "scope": 1921, + "src": "30210:201:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableSet.Bytes32Set", + "id": 1620, + "members": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "30464:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1618, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30464:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "30436:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1636, + "nodeType": "Block", + "src": "30727:47:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1631, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "30749:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "30749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1625, + "src": "30761:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1630, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "30744:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30744:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1629, + "id": 1635, + "nodeType": "Return", + "src": "30737:30:1" + } + ] + }, + "documentation": { + "id": 1621, + "nodeType": "StructuredDocumentation", + "src": "30487:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30664:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1622, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30664:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30688:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1624, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30688:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30663:39:1" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30721:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "30721:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "30720:6:1" + }, + "scope": 1921, + "src": "30651:123:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1653, + "nodeType": "Block", + "src": "31021:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1648, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "31046:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31046:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1650, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "31058:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1647, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "31038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31038:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1646, + "id": 1652, + "nodeType": "Return", + "src": "31031:33:1" + } + ] + }, + "documentation": { + "id": 1638, + "nodeType": "StructuredDocumentation", + "src": "30780:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1654, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30958:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1639, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30958:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30982:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1641, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30982:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30957:39:1" + }, + "returnParameters": { + "id": 1646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1645, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "31015:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31015:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31014:6:1" + }, + "scope": 1921, + "src": "30942:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1670, + "nodeType": "Block", + "src": "31238:52:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1665, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1657, + "src": "31265:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31265:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1667, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1659, + "src": "31277:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1664, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "31255:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31255:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1663, + "id": 1669, + "nodeType": "Return", + "src": "31248:35:1" + } + ] + }, + "documentation": { + "id": 1655, + "nodeType": "StructuredDocumentation", + "src": "31077:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1671, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1657, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31170:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1656, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31170:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31194:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1658, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31194:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31169:39:1" + }, + "returnParameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1662, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31232:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1661, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31232:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31231:6:1" + }, + "scope": 1921, + "src": "31152:138:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "31443:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1680, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1674, + "src": "31468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1681, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31468:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1679, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "31460:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31460:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1678, + "id": 1683, + "nodeType": "Return", + "src": "31453:26:1" + } + ] + }, + "documentation": { + "id": 1672, + "nodeType": "StructuredDocumentation", + "src": "31296:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1685, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1674, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31387:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1673, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + } + ], + "src": "31386:24:1" + }, + "returnParameters": { + "id": 1678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31434:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31434:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31433:9:1" + }, + "scope": 1921, + "src": "31371:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1701, + "nodeType": "Block", + "src": "31901:46:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1696, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1688, + "src": "31922:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1697, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31922:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1698, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "31934:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1695, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "31918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31918:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1694, + "id": 1700, + "nodeType": "Return", + "src": "31911:29:1" + } + ] + }, + "documentation": { + "id": 1686, + "nodeType": "StructuredDocumentation", + "src": "31491:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1688, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31830:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1687, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31830:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1690, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31854:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31854:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31829:39:1" + }, + "returnParameters": { + "id": 1694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31892:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1692, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31892:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31891:9:1" + }, + "scope": 1921, + "src": "31818:129:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.AddressSet", + "id": 1705, + "members": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1705, + "src": "32000:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1703, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "32000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "31972:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1730, + "nodeType": "Block", + "src": "32263:74:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1716, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1708, + "src": "32285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32285:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "32321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32313:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1722, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32313:7:1", + "typeDescriptions": {} + } + }, + "id": 1725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32313:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32305:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1720, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32305:7:1", + "typeDescriptions": {} + } + }, + "id": 1726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32305:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1718, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32297:7:1", + "typeDescriptions": {} + } + }, + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32297:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1715, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "32280:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32280:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1714, + "id": 1729, + "nodeType": "Return", + "src": "32273:57:1" + } + ] + }, + "documentation": { + "id": 1706, + "nodeType": "StructuredDocumentation", + "src": "32023:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1731, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1708, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32200:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1707, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32200:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32224:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32224:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32199:39:1" + }, + "returnParameters": { + "id": 1714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1713, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32257:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1712, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32257:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32256:6:1" + }, + "scope": 1921, + "src": "32187:150:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1756, + "nodeType": "Block", + "src": "32584:77:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1742, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "32609:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1743, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32609:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1750, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "32645:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32637:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1748, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32637:7:1", + "typeDescriptions": {} + } + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32637:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32629:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32629:7:1", + "typeDescriptions": {} + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32629:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32621:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1744, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32621:7:1", + "typeDescriptions": {} + } + }, + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32621:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1741, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "32601:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32601:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1740, + "id": 1755, + "nodeType": "Return", + "src": "32594:60:1" + } + ] + }, + "documentation": { + "id": 1732, + "nodeType": "StructuredDocumentation", + "src": "32343:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1757, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1734, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32521:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1733, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32521:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1736, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32545:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32545:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32520:39:1" + }, + "returnParameters": { + "id": 1740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1739, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32578:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1738, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32578:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32577:6:1" + }, + "scope": 1921, + "src": "32505:156:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1782, + "nodeType": "Block", + "src": "32828:79:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1768, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1760, + "src": "32855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1776, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1762, + "src": "32891:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1774, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32883:7:1", + "typeDescriptions": {} + } + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32883:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32875:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32875:7:1", + "typeDescriptions": {} + } + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32875:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1770, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32867:7:1", + "typeDescriptions": {} + } + }, + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32867:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1767, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "32845:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32845:55:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1766, + "id": 1781, + "nodeType": "Return", + "src": "32838:62:1" + } + ] + }, + "documentation": { + "id": 1758, + "nodeType": "StructuredDocumentation", + "src": "32667:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1783, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1760, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32760:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1759, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32760:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1762, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32784:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32784:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32759:39:1" + }, + "returnParameters": { + "id": 1766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1765, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32822:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1764, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32822:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32821:6:1" + }, + "scope": 1921, + "src": "32742:165:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1796, + "nodeType": "Block", + "src": "33060:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1792, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1786, + "src": "33085:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33085:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1791, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "33077:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33077:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1790, + "id": 1795, + "nodeType": "Return", + "src": "33070:26:1" + } + ] + }, + "documentation": { + "id": 1784, + "nodeType": "StructuredDocumentation", + "src": "32913:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1797, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1786, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33004:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1785, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33004:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + } + ], + "src": "33003:24:1" + }, + "returnParameters": { + "id": 1790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1789, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33050:9:1" + }, + "scope": 1921, + "src": "32988:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1822, + "nodeType": "Block", + "src": "33518:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1814, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "33563:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33563:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1816, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "33575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1813, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "33559:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33559:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33551:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33551:7:1", + "typeDescriptions": {} + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33551:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33543:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1809, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "33543:7:1", + "typeDescriptions": {} + } + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33543:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33535:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33535:7:1", + "typeDescriptions": {} + } + }, + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33535:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 1806, + "id": 1821, + "nodeType": "Return", + "src": "33528:56:1" + } + ] + }, + "documentation": { + "id": 1798, + "nodeType": "StructuredDocumentation", + "src": "33108:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1823, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1800, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33447:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1799, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33447:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1802, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33471:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33471:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33446:39:1" + }, + "returnParameters": { + "id": 1806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33509:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33509:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "33508:9:1" + }, + "scope": 1921, + "src": "33435:156:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.UintSet", + "id": 1826, + "members": [ + { + "constant": false, + "id": 1825, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1826, + "src": "33639:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1824, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "33639:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "UintSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "33614:42:1", + "visibility": "public" + }, + { + "body": { + "id": 1845, + "nodeType": "Block", + "src": "33899:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1837, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1829, + "src": "33921:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "33921:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1841, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "33941:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33933:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1839, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "33933:7:1", + "typeDescriptions": {} + } + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33933:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1836, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "33916:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33916:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1835, + "id": 1844, + "nodeType": "Return", + "src": "33909:39:1" + } + ] + }, + "documentation": { + "id": 1827, + "nodeType": "StructuredDocumentation", + "src": "33662:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1846, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1829, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33839:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1828, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "33839:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1831, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33860:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33860:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33838:36:1" + }, + "returnParameters": { + "id": 1835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1834, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33893:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1833, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "33893:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "33892:6:1" + }, + "scope": 1921, + "src": "33826:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1865, + "nodeType": "Block", + "src": "34199:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1857, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1849, + "src": "34224:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34224:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1861, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "34244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34236:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1859, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34236:7:1", + "typeDescriptions": {} + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34236:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1856, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "34216:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34216:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1855, + "id": 1864, + "nodeType": "Return", + "src": "34209:42:1" + } + ] + }, + "documentation": { + "id": 1847, + "nodeType": "StructuredDocumentation", + "src": "33961:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1849, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34139:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1848, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34139:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1851, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34160:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34138:36:1" + }, + "returnParameters": { + "id": 1855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1854, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34193:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1853, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34193:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34192:6:1" + }, + "scope": 1921, + "src": "34123:135:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1885, + "nodeType": "Block", + "src": "34422:61:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1877, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1869, + "src": "34449:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34449:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1881, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "34469:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1879, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34461:7:1", + "typeDescriptions": {} + } + }, + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34461:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1876, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "34439:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34439:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1875, + "id": 1884, + "nodeType": "Return", + "src": "34432:44:1" + } + ] + }, + "documentation": { + "id": 1867, + "nodeType": "StructuredDocumentation", + "src": "34264:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1886, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1869, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34357:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1868, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34378:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34378:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34356:36:1" + }, + "returnParameters": { + "id": 1875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1874, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34416:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1873, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34416:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34415:6:1" + }, + "scope": 1921, + "src": "34339:144:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1899, + "nodeType": "Block", + "src": "34633:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1895, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1889, + "src": "34658:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34658:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1894, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "34650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34650:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1893, + "id": 1898, + "nodeType": "Return", + "src": "34643:26:1" + } + ] + }, + "documentation": { + "id": 1887, + "nodeType": "StructuredDocumentation", + "src": "34489:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1900, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1889, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34580:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1888, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + } + ], + "src": "34579:21:1" + }, + "returnParameters": { + "id": 1893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34624:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34623:9:1" + }, + "scope": 1921, + "src": "34564:112:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1919, + "nodeType": "Block", + "src": "35088:55:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1913, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "35117:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "35117:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1915, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1905, + "src": "35129:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1912, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "35113:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35113:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "35105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35105:7:1", + "typeDescriptions": {} + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35105:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1909, + "id": 1918, + "nodeType": "Return", + "src": "35098:38:1" + } + ] + }, + "documentation": { + "id": 1901, + "nodeType": "StructuredDocumentation", + "src": "34681:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1920, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35020:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1902, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "35020:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1905, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35041:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35041:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35019:36:1" + }, + "returnParameters": { + "id": 1909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1908, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35079:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1907, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35079:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35078:9:1" + }, + "scope": 1921, + "src": "35008:135:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "26511:8634:1" + }, + { + "id": 1922, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "35204:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1923, + "nodeType": "StructuredDocumentation", + "src": "35237:705:1", + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "fullyImplemented": true, + "id": 2480, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableMap.MapEntry", + "id": 1928, + "members": [ + { + "constant": false, + "id": 1925, + "mutability": "mutable", + "name": "_key", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36455:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1924, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1927, + "mutability": "mutable", + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36477:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1926, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36477:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "MapEntry", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36429:69:1", + "visibility": "public" + }, + { + "canonicalName": "EnumerableMap.Map", + "id": 1936, + "members": [ + { + "constant": false, + "id": 1931, + "mutability": "mutable", + "name": "_entries", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36567:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + }, + "typeName": { + "baseType": { + "id": 1929, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "36567:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "id": 1930, + "nodeType": "ArrayTypeName", + "src": "36567:10:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1935, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36736:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1934, + "keyType": { + "id": 1932, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "36736:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "36756:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Map", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36504:276:1", + "visibility": "public" + }, + { + "body": { + "id": 1997, + "nodeType": "Block", + "src": "37089:596:1", + "statements": [ + { + "assignments": [ + 1949 + ], + "declarations": [ + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 1997, + "src": "37197:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "37197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1954, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1950, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1953, + "indexExpression": { + "id": 1952, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37229:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37216:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1955, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37248:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37260:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "37248:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1995, + "nodeType": "Block", + "src": "37587:92:1", + "statements": [ + { + "expression": { + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 1982, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37601:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1987, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37601:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1988, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1984, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37614:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37625:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "37614:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37601:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 1989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "37601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1990, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37637:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "37601:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1992, + "nodeType": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37663:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1947, + "id": 1994, + "nodeType": "Return", + "src": "37656:12:1" + } + ] + }, + "id": 1996, + "nodeType": "IfStatement", + "src": "37244:435:1", + "trueBody": { + "id": 1981, + "nodeType": "Block", + "src": "37263:318:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1964, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37349:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1965, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37362:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1963, + "name": "MapEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1928, + "src": "37332:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_MapEntry_$1928_storage_ptr_$", + "typeString": "type(struct EnumerableMap.MapEntry storage pointer)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "nodeType": "FunctionCall", + "src": "37332:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "expression": { + "expression": { + "id": 1958, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37314:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37314:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "37314:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$1928_storage_$returns$__$", + "typeString": "function (struct EnumerableMap.MapEntry storage ref)" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37314:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1968, + "nodeType": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "expression": { + "id": 1977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1969, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37506:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37506:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1973, + "indexExpression": { + "id": 1971, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "37506:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1974, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37526:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37526:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "37526:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37506:39:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1978, + "nodeType": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37566:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1947, + "id": 1980, + "nodeType": "Return", + "src": "37559:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1937, + "nodeType": "StructuredDocumentation", + "src": "36786:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1998, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37021:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 1938, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37021:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37038:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1940, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1943, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1942, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37020:45:1" + }, + "returnParameters": { + "id": 1947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1946, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37083:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1945, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37083:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37082:6:1" + }, + "scope": 2480, + "src": "37007:678:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2078, + "nodeType": "Block", + "src": "37923:1447:1", + "statements": [ + { + "assignments": [ + 2009 + ], + "declarations": [ + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2078, + "src": "38031:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2014, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2010, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38050:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2011, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "38050:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2013, + "indexExpression": { + "id": 2012, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "38063:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38050:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2015, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38082:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38094:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "38082:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2076, + "nodeType": "Block", + "src": "39327:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39348:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2007, + "id": 2075, + "nodeType": "Return", + "src": "39341:12:1" + } + ] + }, + "id": 2077, + "nodeType": "IfStatement", + "src": "38078:1286:1", + "trueBody": { + "id": 2073, + "nodeType": "Block", + "src": "38097:1224:1", + "statements": [ + { + "assignments": [ + 2019 + ], + "declarations": [ + { + "constant": false, + "id": 2019, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38438:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2023, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2020, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38462:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38473:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38462:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "assignments": [ + 2025 + ], + "declarations": [ + { + "constant": false, + "id": 2025, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38488:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38488:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2031, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2026, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38508:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38508:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "38508:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38530:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38508:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "assignments": [ + 2033 + ], + "declarations": [ + { + "constant": false, + "id": 2033, + "mutability": "mutable", + "name": "lastEntry", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38771:26:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2032, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "38771:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2038, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2034, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38800:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38800:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2037, + "indexExpression": { + "id": 2036, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2025, + "src": "38813:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38800:23:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "expression": { + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2039, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38915:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38915:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2043, + "indexExpression": { + "id": 2041, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "38928:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "38915:27:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2044, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "38945:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "src": "38915:39:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2046, + "nodeType": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2047, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2051, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39020:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2052, + "indexExpression": { + "expression": { + "id": 2049, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "39033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "39033:14:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39020:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2053, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "39051:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39067:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "39051:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39020:48:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 2058, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39174:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2061, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39174:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "39174:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "39174:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2064, + "nodeType": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "expression": { + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "39260:24:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 2065, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39267:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2066, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39267:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2068, + "indexExpression": { + "id": 2067, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "39280:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39267:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2070, + "nodeType": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39306:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2007, + "id": 2072, + "nodeType": "Return", + "src": "39299:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1999, + "nodeType": "StructuredDocumentation", + "src": "37691:157:1", + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2079, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2001, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37870:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2000, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37870:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37887:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2002, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37887:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37869:30:1" + }, + "returnParameters": { + "id": 2007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2006, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37917:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2005, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37917:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37916:6:1" + }, + "scope": 2480, + "src": "37853:1517:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2096, + "nodeType": "Block", + "src": "39526:46:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 2089, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2082, + "src": "39543:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2090, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39543:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2092, + "indexExpression": { + "id": 2091, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2084, + "src": "39556:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "39543:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39564:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "39543:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2088, + "id": 2095, + "nodeType": "Return", + "src": "39536:29:1" + } + ] + }, + "documentation": { + "id": 2080, + "nodeType": "StructuredDocumentation", + "src": "39376:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2082, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39468:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2081, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2084, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39485:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2083, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "39485:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "39467:30:1" + }, + "returnParameters": { + "id": 2088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2087, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2086, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "39520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "39519:6:1" + }, + "scope": 2480, + "src": "39449:123:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2109, + "nodeType": "Block", + "src": "39727:43:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 2105, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "39744:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39744:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "39744:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2104, + "id": 2108, + "nodeType": "Return", + "src": "39737:26:1" + } + ] + }, + "documentation": { + "id": 2098, + "nodeType": "StructuredDocumentation", + "src": "39578:79:1", + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2100, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39679:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2099, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39679:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "src": "39678:17:1" + }, + "returnParameters": { + "id": 2104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2103, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39718:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "39718:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "39717:9:1" + }, + "scope": 2480, + "src": "39662:108:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2144, + "nodeType": "Block", + "src": "40198:189:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2123, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "40216:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2126, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40216:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40245:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + }, + "value": "EnumerableMap: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "id": 2122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "40208:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "40208:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2130, + "nodeType": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "assignments": [ + 2132 + ], + "declarations": [ + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "entry", + "nodeType": "VariableDeclaration", + "scope": 2144, + "src": "40293:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2131, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "40293:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2137, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2133, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40318:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40318:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2136, + "indexExpression": { + "id": 2135, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40331:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40318:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "expression": { + "components": [ + { + "expression": { + "id": 2138, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40355:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2139, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "40355:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 2140, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40367:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40367:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40354:26:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "functionReturnParameters": 2121, + "id": 2143, + "nodeType": "Return", + "src": "40347:33:1" + } + ] + }, + "documentation": { + "id": 2111, + "nodeType": "StructuredDocumentation", + "src": "39775:333:1", + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2145, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2113, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40126:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2112, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40126:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2115, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40143:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40143:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "40125:32:1" + }, + "returnParameters": { + "id": 2121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40180:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40180:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40189:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2119, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40189:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40179:18:1" + }, + "scope": 2480, + "src": "40113:274:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2182, + "nodeType": "Block", + "src": "40613:220:1", + "statements": [ + { + "assignments": [ + 2158 + ], + "declarations": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2182, + "src": "40623:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40623:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2163, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2159, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40642:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "40642:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2162, + "indexExpression": { + "id": 2161, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2150, + "src": "40655:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40642:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2164, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40673:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40685:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "40673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2171, + "nodeType": "IfStatement", + "src": "40669:36:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40696:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40703:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2169, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40695:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2156, + "id": 2170, + "nodeType": "Return", + "src": "40688:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40759:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 2173, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40765:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2174, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40765:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2178, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2175, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40778:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40789:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "40778:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40765:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40765:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2180, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40758:41:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "functionReturnParameters": 2156, + "id": 2181, + "nodeType": "Return", + "src": "40751:48:1" + } + ] + }, + "documentation": { + "id": 2146, + "nodeType": "StructuredDocumentation", + "src": "40393:131:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2183, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2151, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40546:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2147, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40546:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2150, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40563:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2149, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40563:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40545:30:1" + }, + "returnParameters": { + "id": 2156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2153, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40598:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2152, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "40598:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2155, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40604:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2154, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40604:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40597:15:1" + }, + "scope": 2480, + "src": "40529:304:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2215, + "nodeType": "Block", + "src": "41060:232:1", + "statements": [ + { + "assignments": [ + 2194 + ], + "declarations": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2215, + "src": "41070:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41070:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2199, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2195, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41089:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2196, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41089:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2198, + "indexExpression": { + "id": 2197, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2188, + "src": "41102:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41089:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2201, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41124:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41136:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41124:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "id": 2204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41139:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + }, + "value": "EnumerableMap: nonexistent key" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "id": 2200, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41116:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2206, + "nodeType": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2207, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41225:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2208, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41225:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2212, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2209, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41238:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41249:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41238:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41225:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2213, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41225:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2192, + "id": 2214, + "nodeType": "Return", + "src": "41218:40:1" + } + ] + }, + "documentation": { + "id": 2184, + "nodeType": "StructuredDocumentation", + "src": "40839:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2186, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "40999:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2185, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40999:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2188, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41016:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2187, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40998:30:1" + }, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2190, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41050:9:1" + }, + "scope": 2480, + "src": "40985:307:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2250, + "nodeType": "Block", + "src": "41677:212:1", + "statements": [ + { + "assignments": [ + 2229 + ], + "declarations": [ + { + "constant": false, + "id": 2229, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2250, + "src": "41687:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41687:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2234, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2230, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41706:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2231, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41706:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2233, + "indexExpression": { + "id": 2232, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "41719:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41706:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2236, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41741:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41753:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41741:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2239, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2223, + "src": "41756:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2235, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41733:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41733:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2241, + "nodeType": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2242, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41822:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41822:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2247, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2244, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41835:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41846:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41835:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41822:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41822:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2227, + "id": 2249, + "nodeType": "Return", + "src": "41815:40:1" + } + ] + }, + "documentation": { + "id": 2217, + "nodeType": "StructuredDocumentation", + "src": "41298:271:1", + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2251, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2219, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41588:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2218, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41588:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2221, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41605:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2220, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2223, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41618:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2222, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "41618:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "41587:58:1" + }, + "returnParameters": { + "id": 2227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2226, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41668:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2225, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41668:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41667:9:1" + }, + "scope": 2480, + "src": "41574:315:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableMap.UintToAddressMap", + "id": 2254, + "members": [ + { + "constant": false, + "id": 2253, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 2254, + "src": "41954:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2252, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41954:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "name": "UintToAddressMap", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "41920:51:1", + "visibility": "public" + }, + { + "body": { + "id": 2285, + "nodeType": "Block", + "src": "42293:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2267, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "42315:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42315:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2271, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2259, + "src": "42335:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42327:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2269, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42327:7:1", + "typeDescriptions": {} + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42327:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2279, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2261, + "src": "42365:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2277, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "42357:7:1", + "typeDescriptions": {} + } + }, + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42357:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42349:7:1", + "typeDescriptions": {} + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42349:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42341:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42341:7:1", + "typeDescriptions": {} + } + }, + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42341:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2266, + "name": "_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1998, + "src": "42310:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42310:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2265, + "id": 2284, + "nodeType": "Return", + "src": "42303:71:1" + } + ] + }, + "documentation": { + "id": 2255, + "nodeType": "StructuredDocumentation", + "src": "41977:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2286, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2257, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42211:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2256, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42211:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2259, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42241:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2258, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42241:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2261, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42254:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "42254:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "42210:58:1" + }, + "returnParameters": { + "id": 2265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2264, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42287:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2263, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42287:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42286:6:1" + }, + "scope": 2480, + "src": "42198:183:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2305, + "nodeType": "Block", + "src": "42623:57:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2297, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2289, + "src": "42648:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2298, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42648:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2301, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2291, + "src": "42668:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42660:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2299, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42660:7:1", + "typeDescriptions": {} + } + }, + "id": 2302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42660:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2296, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2079, + "src": "42640:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)" + } + }, + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42640:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2295, + "id": 2304, + "nodeType": "Return", + "src": "42633:40:1" + } + ] + }, + "documentation": { + "id": 2287, + "nodeType": "StructuredDocumentation", + "src": "42387:148:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2289, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42556:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2288, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42556:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2291, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42586:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42586:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42555:43:1" + }, + "returnParameters": { + "id": 2295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2294, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42617:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2293, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42617:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42616:6:1" + }, + "scope": 2480, + "src": "42540:140:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2325, + "nodeType": "Block", + "src": "42849:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2317, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2309, + "src": "42876:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42876:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2321, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "42896:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42888:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2319, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42888:7:1", + "typeDescriptions": {} + } + }, + "id": 2322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42888:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2316, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2097, + "src": "42866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42866:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2315, + "id": 2324, + "nodeType": "Return", + "src": "42859:42:1" + } + ] + }, + "documentation": { + "id": 2307, + "nodeType": "StructuredDocumentation", + "src": "42686:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2326, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2309, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42777:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2308, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42777:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2311, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42807:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42807:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42776:43:1" + }, + "returnParameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2314, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42843:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42843:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42842:6:1" + }, + "scope": 2480, + "src": "42759:149:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2339, + "nodeType": "Block", + "src": "43069:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2335, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2329, + "src": "43094:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43094:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "id": 2334, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2110, + "src": "43086:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)" + } + }, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43086:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2333, + "id": 2338, + "nodeType": "Return", + "src": "43079:26:1" + } + ] + }, + "documentation": { + "id": 2327, + "nodeType": "StructuredDocumentation", + "src": "42914:72:1", + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2340, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2329, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43007:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2328, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43007:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + } + ], + "src": "43006:30:1" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43060:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43059:9:1" + }, + "scope": 2480, + "src": "42991:121:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2378, + "nodeType": "Block", + "src": "43538:135:1", + "statements": [ + { + "assignments": [ + 2353, + 2355 + ], + "declarations": [ + { + "constant": false, + "id": 2353, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43549:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2352, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43549:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2355, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43562:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2354, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43562:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2361, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2357, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "43583:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2358, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "id": 2359, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "43595:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2356, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "43579:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)" + } + }, + "id": 2360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43579:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "expression": { + "components": [ + { + "arguments": [ + { + "id": 2364, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "43627:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43619:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43619:7:1", + "typeDescriptions": {} + } + }, + "id": 2365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43619:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2372, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2355, + "src": "43657:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43649:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43649:7:1", + "typeDescriptions": {} + } + }, + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43649:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43641:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2368, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "43641:7:1", + "typeDescriptions": {} + } + }, + "id": 2374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43641:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43633:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43633:7:1", + "typeDescriptions": {} + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43633:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2376, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43618:48:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$", + "typeString": "tuple(uint256,address payable)" + } + }, + "functionReturnParameters": 2351, + "id": 2377, + "nodeType": "Return", + "src": "43611:55:1" + } + ] + }, + "documentation": { + "id": 2341, + "nodeType": "StructuredDocumentation", + "src": "43117:318:1", + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2379, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43452:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2342, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43452:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2345, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43482:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43482:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43451:45:1" + }, + "returnParameters": { + "id": 2351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2348, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43520:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43520:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2350, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43529:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43529:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43519:18:1" + }, + "scope": 2480, + "src": "43440:233:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2417, + "nodeType": "Block", + "src": "43950:142:1", + "statements": [ + { + "assignments": [ + 2392, + 2394 + ], + "declarations": [ + { + "constant": false, + "id": 2392, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43961:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43961:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43975:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2393, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2403, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2396, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "44000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44000:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2400, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2384, + "src": "44020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44012:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2398, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44012:7:1", + "typeDescriptions": {} + } + }, + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44012:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2395, + "name": "_tryGet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2183, + "src": "43992:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)" + } + }, + "id": 2402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43992:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "expression": { + "components": [ + { + "id": 2404, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2392, + "src": "44043:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2411, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "44076:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44068:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44068:7:1", + "typeDescriptions": {} + } + }, + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44068:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2407, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44060:7:1", + "typeDescriptions": {} + } + }, + "id": 2413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44060:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44052:7:1", + "typeDescriptions": {} + } + }, + "id": 2414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44052:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2415, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44042:43:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_payable_$", + "typeString": "tuple(bool,address payable)" + } + }, + "functionReturnParameters": 2390, + "id": 2416, + "nodeType": "Return", + "src": "44035:50:1" + } + ] + }, + "documentation": { + "id": 2380, + "nodeType": "StructuredDocumentation", + "src": "43679:169:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2418, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2382, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43869:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2381, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43869:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2384, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43899:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43868:43:1" + }, + "returnParameters": { + "id": 2390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2387, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43935:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2386, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2389, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43941:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43941:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43934:15:1" + }, + "scope": 2480, + "src": "43853:239:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2446, + "nodeType": "Block", + "src": "44332:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2435, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "44378:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44378:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2439, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2423, + "src": "44398:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44390:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2437, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44390:7:1", + "typeDescriptions": {} + } + }, + "id": 2440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44390:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2434, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "src": "44373:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)" + } + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44373:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44365:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44365:7:1", + "typeDescriptions": {} + } + }, + "id": 2442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44365:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2430, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44357:7:1", + "typeDescriptions": {} + } + }, + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44357:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44349:7:1", + "typeDescriptions": {} + } + }, + "id": 2444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44349:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2427, + "id": 2445, + "nodeType": "Return", + "src": "44342:64:1" + } + ] + }, + "documentation": { + "id": 2419, + "nodeType": "StructuredDocumentation", + "src": "44098:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2447, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2421, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44257:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2420, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44257:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2423, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44287:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44287:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "44256:43:1" + }, + "returnParameters": { + "id": 2427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2426, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44323:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44323:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44322:9:1" + }, + "scope": 2480, + "src": "44244:169:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2478, + "nodeType": "Block", + "src": "44809:95:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2466, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2450, + "src": "44855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2467, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2470, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2452, + "src": "44875:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2468, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44867:7:1", + "typeDescriptions": {} + } + }, + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44867:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 2472, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "44881:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2465, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "src": "44850:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)" + } + }, + "id": 2473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44850:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44842:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44842:7:1", + "typeDescriptions": {} + } + }, + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44842:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44834:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2461, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44834:7:1", + "typeDescriptions": {} + } + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44834:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44826:7:1", + "typeDescriptions": {} + } + }, + "id": 2476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44826:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2458, + "id": 2477, + "nodeType": "Return", + "src": "44819:78:1" + } + ] + }, + "documentation": { + "id": 2448, + "nodeType": "StructuredDocumentation", + "src": "44419:269:1", + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2450, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44706:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2449, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44706:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2452, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44736:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2454, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44749:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2453, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "44749:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "44705:71:1" + }, + "returnParameters": { + "id": 2458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2457, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44799:9:1" + }, + "scope": 2480, + "src": "44693:211:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "35943:8963:1" + }, + { + "id": 2481, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "44959:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2482, + "nodeType": "StructuredDocumentation", + "src": "44992:34:1", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2566, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2564, + "nodeType": "Block", + "src": "45207:654:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2490, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45409:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45418:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45409:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2496, + "nodeType": "IfStatement", + "src": "45405:51:1", + "trueBody": { + "id": 2495, + "nodeType": "Block", + "src": "45421:35:1", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45442:3:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "functionReturnParameters": 2489, + "id": 2494, + "nodeType": "Return", + "src": "45435:10:1" + } + ] + } + }, + { + "assignments": [ + 2498 + ], + "declarations": [ + { + "constant": false, + "id": 2498, + "mutability": "mutable", + "name": "temp", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45465:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2500, + "initialValue": { + "id": 2499, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45480:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "assignments": [ + 2502 + ], + "declarations": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "digits", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45495:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45495:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2503, + "nodeType": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "body": { + "id": 2514, + "nodeType": "Block", + "src": "45537:57:1", + "statements": [ + { + "expression": { + "id": 2508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "45551:8:1", + "subExpression": { + "id": 2507, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45551:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2509, + "nodeType": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "expression": { + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2510, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45581:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45573:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2513, + "nodeType": "ExpressionStatement", + "src": "45573:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2504, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45526:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45534:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45526:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2515, + "nodeType": "WhileStatement", + "src": "45519:75:1" + }, + { + "assignments": [ + 2517 + ], + "declarations": [ + { + "constant": false, + "id": 2517, + "mutability": "mutable", + "name": "buffer", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45603:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2516, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2522, + "initialValue": { + "arguments": [ + { + "id": 2520, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45635:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "45625:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2518, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45629:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45625:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "assignments": [ + 2524 + ], + "declarations": [ + { + "constant": false, + "id": 2524, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45652:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45652:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2528, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2525, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45668:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45677:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "45668:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "expression": { + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2529, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45688:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2530, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45695:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45688:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2532, + "nodeType": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "body": { + "id": 2557, + "nodeType": "Block", + "src": "45728:96:1", + "statements": [ + { + "expression": { + "id": 2551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2536, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45742:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2539, + "indexExpression": { + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "45749:7:1", + "subExpression": { + "id": 2537, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2524, + "src": "45749:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "45742:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3438", + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45773:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2545, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45778:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3130", + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45785:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45778:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45773:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45767:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2542, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "45767:5:1", + "typeDescriptions": {} + } + }, + "id": 2549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45767:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 2540, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "45760:6:1", + "typeDescriptions": {} + } + }, + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45760:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "45742:47:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2552, + "nodeType": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "expression": { + "id": 2555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2553, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45803:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45811:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45803:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2556, + "nodeType": "ExpressionStatement", + "src": "45803:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2533, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45717:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45725:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45717:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2558, + "nodeType": "WhileStatement", + "src": "45710:114:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2561, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45847:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45840:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2559, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45840:6:1", + "typeDescriptions": {} + } + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45840:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2489, + "id": 2563, + "nodeType": "Return", + "src": "45833:21:1" + } + ] + }, + "documentation": { + "id": 2483, + "nodeType": "StructuredDocumentation", + "src": "45049:82:1", + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2485, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45154:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45154:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "45153:15:1" + }, + "returnParameters": { + "id": 2489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2488, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45192:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2487, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45192:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "45191:15:1" + }, + "scope": 2566, + "src": "45136:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "45027:836:1" + }, + { + "id": 2567, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "45922:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2569, + "name": "Context", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 530, + "src": "46099:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 2570, + "nodeType": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "baseName": { + "id": 2571, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 781, + "src": "46108:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$781", + "typeString": "contract ERC165" + } + }, + "id": 2572, + "nodeType": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "baseName": { + "id": 2573, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "46116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 2574, + "nodeType": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "baseName": { + "id": 2575, + "name": "IERC721Metadata", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 680, + "src": "46125:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Metadata_$680", + "typeString": "contract IERC721Metadata" + } + }, + "id": 2576, + "nodeType": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "baseName": { + "id": 2577, + "name": "IERC721Enumerable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 709, + "src": "46142:17:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Enumerable_$709", + "typeString": "contract IERC721Enumerable" + } + }, + "id": 2578, + "nodeType": "InheritanceSpecifier", + "src": "46142:17:1" + } + ], + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "documentation": { + "id": 2568, + "nodeType": "StructuredDocumentation", + "src": "45955:124:1", + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": true, + "id": 3498, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2581, + "libraryName": { + "id": 2579, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1135, + "src": "46172:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$1135", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "46166:27:1", + "typeName": { + "id": 2580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46185:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 2584, + "libraryName": { + "id": 2582, + "name": "Address", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1430, + "src": "46204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + }, + "nodeType": "UsingForDirective", + "src": "46198:26:1", + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46216:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 2587, + "libraryName": { + "id": 2585, + "name": "EnumerableSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1921, + "src": "46235:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableSet_$1921", + "typeString": "library EnumerableSet" + } + }, + "nodeType": "UsingForDirective", + "src": "46229:46:1", + "typeName": { + "id": 2586, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46253:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + { + "id": 2590, + "libraryName": { + "id": 2588, + "name": "EnumerableMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2480, + "src": "46286:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableMap_$2480", + "typeString": "library EnumerableMap" + } + }, + "nodeType": "UsingForDirective", + "src": "46280:55:1", + "typeName": { + "id": 2589, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46304:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + } + }, + { + "id": 2593, + "libraryName": { + "id": 2591, + "name": "Strings", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2566, + "src": "46346:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Strings_$2566", + "typeString": "library Strings" + } + }, + "nodeType": "UsingForDirective", + "src": "46340:26:1", + "typeName": { + "id": 2592, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46358:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 2596, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46544:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2594, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "46544:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783135306237613032", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46587:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_353073666_by_1", + "typeString": "int_const 353073666" + }, + "value": "0x150b7a02" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2600, + "mutability": "mutable", + "name": "_holderTokens", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46681:64:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "typeName": { + "id": 2599, + "keyType": { + "id": 2597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "46681:42:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "valueType": { + "id": 2598, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46701:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2602, + "mutability": "mutable", + "name": "_tokenOwners", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46809:51:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2601, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46809:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2606, + "mutability": "mutable", + "name": "_tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46916:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 2605, + "keyType": { + "id": 2603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46925:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "46916:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 2604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46936:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2612, + "mutability": "mutable", + "name": "_operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47023:73:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 2611, + "keyType": { + "id": 2607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47023:46:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 2610, + "keyType": { + "id": 2608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47043:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2609, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "47063:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2614, + "mutability": "mutable", + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47121:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2613, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47121:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2616, + "mutability": "mutable", + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47168:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47168:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2620, + "mutability": "mutable", + "name": "_tokenURIs", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47236:46:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 2619, + "keyType": { + "id": 2617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "47245:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "47236:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 2618, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47256:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2622, + "mutability": "mutable", + "name": "_baseURI", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47305:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2621, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47305:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2625, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48204:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2623, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48204:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783830616335386364", + "id": 2624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48251:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2628, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48527:66:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2626, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48527:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783562356531333966", + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1532892063_by_1", + "typeString": "int_const 1532892063" + }, + "value": "0x5b5e139f" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2631, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48898:68:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2629, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783738306539643633", + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48956:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2014223715_by_1", + "typeString": "int_const 2014223715" + }, + "value": "0x780e9d63" + }, + "visibility": "private" + }, + { + "body": { + "id": 2659, + "nodeType": "Block", + "src": "49143:305:1", + "statements": [ + { + "expression": { + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2639, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "49153:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2640, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "49161:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49153:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2642, + "nodeType": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "expression": { + "id": 2645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2643, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "49176:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2644, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2636, + "src": "49186:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49176:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2646, + "nodeType": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2648, + "name": "_INTERFACE_ID_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "49300:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2647, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49281:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49281:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2650, + "nodeType": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2652, + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "49350:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2651, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49331:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49331:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2654, + "nodeType": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2656, + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2631, + "src": "49409:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2655, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49390:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49390:51:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2658, + "nodeType": "ExpressionStatement", + "src": "49390:51:1" + } + ] + }, + "documentation": { + "id": 2632, + "nodeType": "StructuredDocumentation", + "src": "48973:108:1", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2660, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2634, + "mutability": "mutable", + "name": "name_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49099:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2633, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49099:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2636, + "mutability": "mutable", + "name": "symbol_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49120:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2635, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49120:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "49098:44:1" + }, + "returnParameters": { + "id": 2638, + "nodeType": "ParameterList", + "parameters": [], + "src": "49143:0:1" + }, + "scope": 3498, + "src": "49086:362:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 580 + ], + "body": { + "id": 2685, + "nodeType": "Block", + "src": "49588:137:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2670, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49606:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49623:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "49615:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49615:7:1", + "typeDescriptions": {} + } + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49615:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "49606:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49627:44:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + }, + "value": "ERC721: balance query for the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "id": 2669, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "49598:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49598:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2678, + "nodeType": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 2679, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "49689:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2681, + "indexExpression": { + "id": 2680, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49703:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "49689:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2682, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "49689:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + } + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49689:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2668, + "id": 2684, + "nodeType": "Return", + "src": "49682:36:1" + } + ] + }, + "documentation": { + "id": 2661, + "nodeType": "StructuredDocumentation", + "src": "49454:48:1", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 2686, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2665, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49561:8:1" + }, + "parameters": { + "id": 2664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2663, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49526:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49526:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49525:15:1" + }, + "returnParameters": { + "id": 2668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2667, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49579:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49579:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49578:9:1" + }, + "scope": 3498, + "src": "49507:218:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 588 + ], + "body": { + "id": 2701, + "nodeType": "Block", + "src": "49863:94:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2697, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "49897:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49906:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + }, + "value": "ERC721: owner query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "expression": { + "id": 2695, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "49880:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2696, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 2479, + "src": "49880:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + } + }, + "id": 2699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49880:70:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2694, + "id": 2700, + "nodeType": "Return", + "src": "49873:77:1" + } + ] + }, + "documentation": { + "id": 2687, + "nodeType": "StructuredDocumentation", + "src": "49731:46:1", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 2702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2691, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49836:8:1" + }, + "parameters": { + "id": 2690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2689, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49799:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49799:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49798:17:1" + }, + "returnParameters": { + "id": 2694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49854:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49854:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49853:9:1" + }, + "scope": 3498, + "src": "49782:175:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 665 + ], + "body": { + "id": 2711, + "nodeType": "Block", + "src": "50088:29:1", + "statements": [ + { + "expression": { + "id": 2709, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "50105:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2708, + "id": 2710, + "nodeType": "Return", + "src": "50098:12:1" + } + ] + }, + "documentation": { + "id": 2703, + "nodeType": "StructuredDocumentation", + "src": "49963:51:1", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 2712, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2705, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50055:8:1" + }, + "parameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [], + "src": "50032:2:1" + }, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2707, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2712, + "src": "50073:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2706, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50073:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50072:15:1" + }, + "scope": 3498, + "src": "50019:98:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 671 + ], + "body": { + "id": 2721, + "nodeType": "Block", + "src": "50252:31:1", + "statements": [ + { + "expression": { + "id": 2719, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "50269:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2718, + "id": 2720, + "nodeType": "Return", + "src": "50262:14:1" + } + ] + }, + "documentation": { + "id": 2713, + "nodeType": "StructuredDocumentation", + "src": "50123:53:1", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 2722, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2715, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50219:8:1" + }, + "parameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [], + "src": "50196:2:1" + }, + "returnParameters": { + "id": 2718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2717, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2722, + "src": "50237:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2716, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50237:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50236:15:1" + }, + "scope": 3498, + "src": "50181:102:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 679 + ], + "body": { + "id": 2789, + "nodeType": "Block", + "src": "50437:688:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2733, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50463:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2732, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "50455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50455:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50473:49:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + }, + "value": "ERC721Metadata: URI query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "id": 2731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "50447:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50447:76:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "assignments": [ + 2739 + ], + "declarations": [ + { + "constant": false, + "id": 2739, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50534:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50534:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2743, + "initialValue": { + "baseExpression": { + "id": 2740, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "50560:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 2742, + "indexExpression": { + "id": 2741, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50571:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "50560:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "assignments": [ + 2745 + ], + "declarations": [ + { + "constant": false, + "id": 2745, + "mutability": "mutable", + "name": "base", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50589:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50589:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2748, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2746, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2799, + "src": "50610:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 2747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50610:9:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2751, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50698:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50692:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50692:5:1", + "typeDescriptions": {} + } + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50692:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50692:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50714:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50692:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2759, + "nodeType": "IfStatement", + "src": "50688:70:1", + "trueBody": { + "id": 2758, + "nodeType": "Block", + "src": "50717:41:1", + "statements": [ + { + "expression": { + "id": 2756, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50738:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2757, + "nodeType": "Return", + "src": "50731:16:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2762, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50860:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2760, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50860:5:1", + "typeDescriptions": {} + } + }, + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50860:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50860:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50886:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50860:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2777, + "nodeType": "IfStatement", + "src": "50856:106:1", + "trueBody": { + "id": 2776, + "nodeType": "Block", + "src": "50889:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2771, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50934:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 2772, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50940:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2769, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "50917:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "50917:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50917:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50910:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2767, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50910:6:1", + "typeDescriptions": {} + } + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50910:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2775, + "nodeType": "Return", + "src": "50903:48:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2782, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "51092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2783, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "51098:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2565, + "src": "51098:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 2785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51098:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2780, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "51075:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "51075:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51075:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "51068:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2778, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51068:6:1", + "typeDescriptions": {} + } + }, + "id": 2787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51068:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2788, + "nodeType": "Return", + "src": "51061:57:1" + } + ] + }, + "documentation": { + "id": 2723, + "nodeType": "StructuredDocumentation", + "src": "50289:55:1", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 2790, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50404:8:1" + }, + "parameters": { + "id": 2726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2725, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50367:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50367:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "50366:17:1" + }, + "returnParameters": { + "id": 2730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50422:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2728, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50422:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50421:15:1" + }, + "scope": 3498, + "src": "50349:776:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2798, + "nodeType": "Block", + "src": "51420:32:1", + "statements": [ + { + "expression": { + "id": 2796, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "51437:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2795, + "id": 2797, + "nodeType": "Return", + "src": "51430:15:1" + } + ] + }, + "documentation": { + "id": 2791, + "nodeType": "StructuredDocumentation", + "src": "51131:221:1", + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "functionSelector": "6c0360eb", + "id": 2799, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "baseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2792, + "nodeType": "ParameterList", + "parameters": [], + "src": "51373:2:1" + }, + "returnParameters": { + "id": 2795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2799, + "src": "51405:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2793, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51405:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "51404:15:1" + }, + "scope": 3498, + "src": "51357:95:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 700 + ], + "body": { + "id": 2817, + "nodeType": "Block", + "src": "51637:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2814, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "51678:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 2810, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "51654:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2812, + "indexExpression": { + "id": 2811, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2802, + "src": "51668:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "51654:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2813, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 1920, + "src": "51654:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51654:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2809, + "id": 2816, + "nodeType": "Return", + "src": "51647:37:1" + } + ] + }, + "documentation": { + "id": 2800, + "nodeType": "StructuredDocumentation", + "src": "51458:68:1", + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "functionSelector": "2f745c59", + "id": 2818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2806, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51610:8:1" + }, + "parameters": { + "id": 2805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2802, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51560:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "51560:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2804, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51575:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2803, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51575:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51559:30:1" + }, + "returnParameters": { + "id": 2809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2808, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51628:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51628:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51627:9:1" + }, + "scope": 3498, + "src": "51531:160:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 690 + ], + "body": { + "id": 2829, + "nodeType": "Block", + "src": "51832:138:1", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2825, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "51942:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 2340, + "src": "51942:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51942:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2824, + "id": 2828, + "nodeType": "Return", + "src": "51935:28:1" + } + ] + }, + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "51697:60:1", + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 2830, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2821, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51805:8:1" + }, + "parameters": { + "id": 2820, + "nodeType": "ParameterList", + "parameters": [], + "src": "51782:2:1" + }, + "returnParameters": { + "id": 2824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2823, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2830, + "src": "51823:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51823:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51822:9:1" + }, + "scope": 3498, + "src": "51762:208:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 708 + ], + "body": { + "id": 2848, + "nodeType": "Block", + "src": "52126:85:1", + "statements": [ + { + "assignments": [ + 2840, + null + ], + "declarations": [ + { + "constant": false, + "id": 2840, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2848, + "src": "52137:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2839, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52137:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2845, + "initialValue": { + "arguments": [ + { + "id": 2843, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2833, + "src": "52174:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2841, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "52158:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 2379, + "src": "52158:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + } + }, + "id": 2844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52158:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$", + "typeString": "tuple(uint256,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "expression": { + "id": 2846, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2840, + "src": "52197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2838, + "id": 2847, + "nodeType": "Return", + "src": "52190:14:1" + } + ] + }, + "documentation": { + "id": 2831, + "nodeType": "StructuredDocumentation", + "src": "51976:61:1", + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "functionSelector": "4f6ccce7", + "id": 2849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2835, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52099:8:1" + }, + "parameters": { + "id": 2834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2833, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52064:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52064:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52063:15:1" + }, + "returnParameters": { + "id": 2838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2837, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52117:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52116:9:1" + }, + "scope": 3498, + "src": "52042:169:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 616 + ], + "body": { + "id": 2892, + "nodeType": "Block", + "src": "52338:325:1", + "statements": [ + { + "assignments": [ + 2859 + ], + "declarations": [ + { + "constant": false, + "id": 2859, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2892, + "src": "52348:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52348:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2864, + "initialValue": { + "arguments": [ + { + "id": 2862, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52379:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2860, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52364:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "52364:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52364:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2866, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52405:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2867, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52411:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52405:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "id": 2869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52418:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + }, + "value": "ERC721: approval to current owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "id": 2865, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52397:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52397:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2871, + "nodeType": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2873, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52473:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52473:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2875, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52489:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52473:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 2879, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52522:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2880, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52529:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52529:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 2877, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52498:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "52498:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52498:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "52473:69:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52556:58:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + }, + "value": "ERC721: approve caller is not owner nor approved for all" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "id": 2872, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52465:159:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2886, + "nodeType": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2888, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52644:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2889, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52648:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2887, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "52635:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52635:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2891, + "nodeType": "ExpressionStatement", + "src": "52635:21:1" + } + ] + }, + "documentation": { + "id": 2850, + "nodeType": "StructuredDocumentation", + "src": "52217:46:1", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 2893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2856, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52329:8:1" + }, + "parameters": { + "id": 2855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2852, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52285:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52285:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2854, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52297:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52284:29:1" + }, + "returnParameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [], + "src": "52338:0:1" + }, + "scope": 3498, + "src": "52268:395:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 624 + ], + "body": { + "id": 2913, + "nodeType": "Block", + "src": "52809:132:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2904, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2903, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "52827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52827:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52845:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + }, + "value": "ERC721: approved query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "id": 2902, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52819:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2908, + "nodeType": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "expression": { + "baseExpression": { + "id": 2909, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "52910:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 2911, + "indexExpression": { + "id": 2910, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52926:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "52910:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2901, + "id": 2912, + "nodeType": "Return", + "src": "52903:31:1" + } + ] + }, + "documentation": { + "id": 2894, + "nodeType": "StructuredDocumentation", + "src": "52669:50:1", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 2914, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2898, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52782:8:1" + }, + "parameters": { + "id": 2897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2896, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52745:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52744:17:1" + }, + "returnParameters": { + "id": 2901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2900, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2899, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "52799:9:1" + }, + "scope": 3498, + "src": "52724:217:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 632 + ], + "body": { + "id": 2947, + "nodeType": "Block", + "src": "53092:206:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2924, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53110:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2925, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53122:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53122:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "53110:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "id": 2928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53136:27:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + }, + "value": "ERC721: approve to caller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "id": 2923, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53102:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53102:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2930, + "nodeType": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "expression": { + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 2931, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53175:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2935, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2932, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53194:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53194:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53175:32:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2936, + "indexExpression": { + "id": 2934, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53208:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "53175:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2937, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53220:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "53175:53:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2941, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53258:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53258:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2943, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53272:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2944, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53282:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2940, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "53243:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 2945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53243:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2946, + "nodeType": "EmitStatement", + "src": "53238:53:1" + } + ] + }, + "documentation": { + "id": 2915, + "nodeType": "StructuredDocumentation", + "src": "52947:56:1", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 2948, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2921, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53083:8:1" + }, + "parameters": { + "id": 2920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2917, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53035:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53035:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2919, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53053:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2918, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53053:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53034:33:1" + }, + "returnParameters": { + "id": 2922, + "nodeType": "ParameterList", + "parameters": [], + "src": "53092:0:1" + }, + "scope": 3498, + "src": "53008:290:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 642 + ], + "body": { + "id": 2965, + "nodeType": "Block", + "src": "53467:59:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 2959, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53484:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2961, + "indexExpression": { + "id": 2960, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "53503:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2963, + "indexExpression": { + "id": 2962, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "53510:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2958, + "id": 2964, + "nodeType": "Return", + "src": "53477:42:1" + } + ] + }, + "documentation": { + "id": 2949, + "nodeType": "StructuredDocumentation", + "src": "53304:55:1", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 2966, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2955, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53443:8:1" + }, + "parameters": { + "id": 2954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53390:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53390:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2953, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53405:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53405:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "53389:33:1" + }, + "returnParameters": { + "id": 2958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2957, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2956, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53460:6:1" + }, + "scope": 3498, + "src": "53364:162:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 608 + ], + "body": { + "id": 2992, + "nodeType": "Block", + "src": "53677:211:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2979, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53766:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53766:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2981, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53780:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2978, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "53747:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53747:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53790:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 2977, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53739:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53739:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2985, + "nodeType": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2987, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2969, + "src": "53863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2988, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2971, + "src": "53869:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2989, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53873:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2986, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "53853:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53853:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2991, + "nodeType": "ExpressionStatement", + "src": "53853:28:1" + } + ] + }, + "documentation": { + "id": 2967, + "nodeType": "StructuredDocumentation", + "src": "53532:51:1", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 2993, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2975, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53668:8:1" + }, + "parameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2969, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53610:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53610:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2971, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53624:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53624:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2973, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53636:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "53636:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53609:43:1" + }, + "returnParameters": { + "id": 2976, + "nodeType": "ParameterList", + "parameters": [], + "src": "53677:0:1" + }, + "scope": 3498, + "src": "53588:300:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 598 + ], + "body": { + "id": 3011, + "nodeType": "Block", + "src": "54047:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3005, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2996, + "src": "54074:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3006, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2998, + "src": "54080:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3007, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3000, + "src": "54084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54093:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3004, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "src": "54057:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54057:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3010, + "nodeType": "ExpressionStatement", + "src": "54057:39:1" + } + ] + }, + "documentation": { + "id": 2994, + "nodeType": "StructuredDocumentation", + "src": "53894:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 3012, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3002, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54038:8:1" + }, + "parameters": { + "id": 3001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2996, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53980:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53980:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2998, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53994:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2997, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53994:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3000, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "54006:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54006:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53979:43:1" + }, + "returnParameters": { + "id": 3003, + "nodeType": "ParameterList", + "parameters": [], + "src": "54047:0:1" + }, + "scope": 3498, + "src": "53954:149:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 654 + ], + "body": { + "id": 3041, + "nodeType": "Block", + "src": "54282:169:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3027, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "54319:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54319:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3029, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3026, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "54300:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 3030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54300:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 3031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54343:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 3025, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "54292:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54292:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3033, + "nodeType": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3035, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3015, + "src": "54419:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3036, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3017, + "src": "54425:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3037, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3038, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3021, + "src": "54438:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3034, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3071, + "src": "54405:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54405:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3040, + "nodeType": "ExpressionStatement", + "src": "54405:39:1" + } + ] + }, + "documentation": { + "id": 3013, + "nodeType": "StructuredDocumentation", + "src": "54109:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 3042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3023, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54273:8:1" + }, + "parameters": { + "id": 3022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3015, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54195:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54195:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3017, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54209:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3016, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54209:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3019, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54221:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3021, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54238:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3020, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "54238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "54194:63:1" + }, + "returnParameters": { + "id": 3024, + "nodeType": "ParameterList", + "parameters": [], + "src": "54282:0:1" + }, + "scope": 3498, + "src": "54169:282:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 3070, + "nodeType": "Block", + "src": "55416:166:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3055, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55436:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55442:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3057, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55446:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3054, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "55426:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55426:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3059, + "nodeType": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3062, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55495:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3063, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55501:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3064, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55505:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3065, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3051, + "src": "55514:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3061, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "55472:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55472:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55522:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3060, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "55464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55464:111:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3069, + "nodeType": "ExpressionStatement", + "src": "55464:111:1" + } + ] + }, + "documentation": { + "id": 3043, + "nodeType": "StructuredDocumentation", + "src": "54457:851:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3071, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3045, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55336:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55336:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3047, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55350:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55350:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3049, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55362:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55362:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3051, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55379:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3050, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "55379:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "55335:63:1" + }, + "returnParameters": { + "id": 3053, + "nodeType": "ParameterList", + "parameters": [], + "src": "55416:0:1" + }, + "scope": 3498, + "src": "55313:269:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3084, + "nodeType": "Block", + "src": "55956:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3081, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "55995:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3079, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "55973:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3080, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 2326, + "src": "55973:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + } + }, + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55973:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3078, + "id": 3083, + "nodeType": "Return", + "src": "55966:37:1" + } + ] + }, + "documentation": { + "id": 3072, + "nodeType": "StructuredDocumentation", + "src": "55588:292:1", + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3085, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3074, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55902:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3073, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55902:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "55901:17:1" + }, + "returnParameters": { + "id": 3078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3077, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55950:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3076, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "55950:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "55949:6:1" + }, + "scope": 3498, + "src": "55885:125:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3126, + "nodeType": "Block", + "src": "56267:252:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3097, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56293:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3096, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "56285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56285:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 3099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56303:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + }, + "value": "ERC721: operator query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "id": 3095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "56277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56277:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3101, + "nodeType": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "assignments": [ + 3103 + ], + "declarations": [ + { + "constant": false, + "id": 3103, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3126, + "src": "56360:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56360:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3108, + "initialValue": { + "arguments": [ + { + "id": 3106, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56391:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3104, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56376:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "56376:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56376:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3109, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56417:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3110, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56428:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56417:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3113, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56449:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3112, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "56437:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56437:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3115, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56437:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:51:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 3120, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56496:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3121, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3118, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "56472:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56472:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:94:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3124, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56416:96:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3094, + "id": 3125, + "nodeType": "Return", + "src": "56409:103:1" + } + ] + }, + "documentation": { + "id": 3086, + "nodeType": "StructuredDocumentation", + "src": "56016:147:1", + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3088, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56196:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56196:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3090, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56213:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56213:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56195:34:1" + }, + "returnParameters": { + "id": 3094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3093, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56261:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3092, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "56261:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "56260:6:1" + }, + "scope": 3498, + "src": "56168:351:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3141, + "nodeType": "Block", + "src": "56915:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3136, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3130, + "src": "56935:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3137, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3132, + "src": "56939:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56948:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3135, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "src": "56925:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 3139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56925:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3140, + "nodeType": "ExpressionStatement", + "src": "56925:26:1" + } + ] + }, + "documentation": { + "id": 3128, + "nodeType": "StructuredDocumentation", + "src": "56525:320:1", + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3142, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3130, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56869:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3132, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56881:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56881:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56868:29:1" + }, + "returnParameters": { + "id": 3134, + "nodeType": "ParameterList", + "parameters": [], + "src": "56915:0:1" + }, + "scope": 3498, + "src": "56850:108:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3170, + "nodeType": "Block", + "src": "57264:162:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3153, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57280:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3154, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3152, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "57274:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57274:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3156, + "nodeType": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57341:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57333:7:1", + "typeDescriptions": {} + } + }, + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57333:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3163, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57345:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3164, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3165, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "57358:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3158, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "57310:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57310:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57366:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3157, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57302:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57302:117:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3169, + "nodeType": "ExpressionStatement", + "src": "57302:117:1" + } + ] + }, + "documentation": { + "id": 3143, + "nodeType": "StructuredDocumentation", + "src": "56964:210:1", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3171, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3145, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57198:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3144, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57198:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3147, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57210:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57210:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3149, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57227:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3148, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "57227:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "57197:49:1" + }, + "returnParameters": { + "id": 3151, + "nodeType": "ParameterList", + "parameters": [], + "src": "57264:0:1" + }, + "scope": 3498, + "src": "57179:247:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3229, + "nodeType": "Block", + "src": "57809:332:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3180, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57827:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57841:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57833:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57833:7:1", + "typeDescriptions": {} + } + }, + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57833:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "57827:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57845:34:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + }, + "value": "ERC721: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "id": 3179, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57819:61:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "57898:17:1", + "subExpression": { + "arguments": [ + { + "id": 3191, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57907:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3190, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "57899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57899:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57917:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + }, + "value": "ERC721: token already minted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "id": 3189, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57890:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57890:58:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3196, + "nodeType": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57988:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57980:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57980:7:1", + "typeDescriptions": {} + } + }, + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57980:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3202, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57992:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3203, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3197, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "57959:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57959:45:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3205, + "nodeType": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3210, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58037:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3206, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58015:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3208, + "indexExpression": { + "id": 3207, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58029:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58015:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3209, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "58015:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58015:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3212, + "nodeType": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3216, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58073:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3217, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58082:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3213, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58056:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3215, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "58056:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58056:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3219, + "nodeType": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58118:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58110:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58110:7:1", + "typeDescriptions": {} + } + }, + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58110:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3225, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58122:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3226, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3220, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58101:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58101:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3228, + "nodeType": "EmitStatement", + "src": "58096:38:1" + } + ] + }, + "documentation": { + "id": 3172, + "nodeType": "StructuredDocumentation", + "src": "57432:311:1", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3174, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57763:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57763:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3176, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57775:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57775:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "57762:29:1" + }, + "returnParameters": { + "id": 3178, + "nodeType": "ParameterList", + "parameters": [], + "src": "57809:0:1" + }, + "scope": 3498, + "src": "57748:393:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3298, + "nodeType": "Block", + "src": "58407:478:1", + "statements": [ + { + "assignments": [ + 3237 + ], + "declarations": [ + { + "constant": false, + "id": 3237, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "58417:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58417:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3242, + "initialValue": { + "arguments": [ + { + "id": 3240, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58448:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3238, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "58433:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "58433:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58433:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3244, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58506:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58521:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58513:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58513:7:1", + "typeDescriptions": {} + } + }, + "id": 3248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58513:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3249, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58525:7:1", + "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": 3243, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "58485:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58485:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3251, + "nodeType": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58588:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58580:7:1", + "typeDescriptions": {} + } + }, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58580:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3257, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58592:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3252, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "58571:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58571:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3259, + "nodeType": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 3262, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58656:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3264, + "indexExpression": { + "id": 3263, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58667:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58656:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 3261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58650:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3260, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "58650:5:1", + "typeDescriptions": {} + } + }, + "id": 3265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58650:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes storage pointer" + } + }, + "id": 3266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "58650:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 3267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58687:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "58650:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3275, + "nodeType": "IfStatement", + "src": "58646:95:1", + "trueBody": { + "id": 3274, + "nodeType": "Block", + "src": "58690:51:1", + "statements": [ + { + "expression": { + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "58704:26:1", + "subExpression": { + "baseExpression": { + "id": 3269, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58711:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3271, + "indexExpression": { + "id": 3270, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58722:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "58711:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3273, + "nodeType": "ExpressionStatement", + "src": "58704:26:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 3280, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58779:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3276, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58751:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3278, + "indexExpression": { + "id": 3277, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58765:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58751:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3279, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "58751:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58751:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3282, + "nodeType": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3286, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58818:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3283, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58798:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 2306, + "src": "58798:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + } + }, + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58798:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3288, + "nodeType": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3290, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58851:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58866:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58858:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58858:7:1", + "typeDescriptions": {} + } + }, + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58858:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3295, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58870:7:1", + "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": 3289, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58842:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58842:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3297, + "nodeType": "EmitStatement", + "src": "58837:41:1" + } + ] + }, + "documentation": { + "id": 3231, + "nodeType": "StructuredDocumentation", + "src": "58147:206:1", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3299, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3233, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3299, + "src": "58373:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "58372:17:1" + }, + "returnParameters": { + "id": 3235, + "nodeType": "ParameterList", + "parameters": [], + "src": "58407:0:1" + }, + "scope": 3498, + "src": "58358:527:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3370, + "nodeType": "Block", + "src": "59288:505:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3312, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59321:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3310, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "59306:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "59306:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59306:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3314, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59333:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "59306:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59339:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + }, + "value": "ERC721: transfer of token that is not own" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "id": 3309, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59298:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59298:85:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3318, + "nodeType": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3320, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59419:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59433:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59425:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59425:7:1", + "typeDescriptions": {} + } + }, + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59425:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "59419:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59437:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + }, + "value": "ERC721: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "id": 3319, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59411:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59411:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3328, + "nodeType": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3330, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59508:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3331, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59514:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3332, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59518:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3329, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "59487:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59487:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3334, + "nodeType": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59605:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59597:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59597:7:1", + "typeDescriptions": {} + } + }, + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59597:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3340, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59609:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3335, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "59588:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59588:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3342, + "nodeType": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3347, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59655:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3343, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59628:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3345, + "indexExpression": { + "id": 3344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59642:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59628:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3346, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "59628:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59628:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3354, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59695:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3350, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3352, + "indexExpression": { + "id": 3351, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59687:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59673:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3353, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "59673:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59673:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3356, + "nodeType": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3360, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59731:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3361, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59740:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3357, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "59714:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "59714:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59714:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3363, + "nodeType": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3365, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59768:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3366, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59774:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3367, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59778:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3364, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "59759:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59759:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3369, + "nodeType": "EmitStatement", + "src": "59754:32:1" + } + ] + }, + "documentation": { + "id": 3300, + "nodeType": "StructuredDocumentation", + "src": "58891:313:1", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3302, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59228:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3304, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59242:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59242:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3306, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59254:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3305, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59254:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "59227:43:1" + }, + "returnParameters": { + "id": 3308, + "nodeType": "ParameterList", + "parameters": [], + "src": "59288:0:1" + }, + "scope": 3498, + "src": "59209:584:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3392, + "nodeType": "Block", + "src": "60021:131:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3381, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60047:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3380, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "60039:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60039:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "id": 3383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "60057:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + }, + "value": "ERC721Metadata: URI set of nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "id": 3379, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "60031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60031:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3385, + "nodeType": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "expression": { + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3386, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "60114:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3388, + "indexExpression": { + "id": 3387, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60125:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "60114:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3389, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "60136:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60114:31:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3391, + "nodeType": "ExpressionStatement", + "src": "60114:31:1" + } + ] + }, + "documentation": { + "id": 3372, + "nodeType": "StructuredDocumentation", + "src": "59799:136:1", + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setTokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3374, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59962:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59962:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3376, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59979:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3375, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "59979:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "59961:42:1" + }, + "returnParameters": { + "id": 3378, + "nodeType": "ParameterList", + "parameters": [], + "src": "60021:0:1" + }, + "scope": 3498, + "src": "59940:212:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3403, + "nodeType": "Block", + "src": "60437:36:1", + "statements": [ + { + "expression": { + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3399, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "60447:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3400, + "name": "baseURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "60458:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60447:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3402, + "nodeType": "ExpressionStatement", + "src": "60447:19:1" + } + ] + }, + "documentation": { + "id": 3394, + "nodeType": "StructuredDocumentation", + "src": "60158:212:1", + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3404, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setBaseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3396, + "mutability": "mutable", + "name": "baseURI_", + "nodeType": "VariableDeclaration", + "scope": 3404, + "src": "60396:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3395, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "60396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "60395:24:1" + }, + "returnParameters": { + "id": 3398, + "nodeType": "ParameterList", + "parameters": [], + "src": "60437:0:1" + }, + "scope": 3498, + "src": "60375:98:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3461, + "nodeType": "Block", + "src": "61156:459:1", + "statements": [ + { + "condition": { + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "61170:16:1", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3418, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61171:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 1154, + "src": "61171:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61171:15:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3425, + "nodeType": "IfStatement", + "src": "61166:58:1", + "trueBody": { + "id": 3424, + "nodeType": "Block", + "src": "61188:36:1", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 3422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61209:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3417, + "id": 3423, + "nodeType": "Return", + "src": "61202:11:1" + } + ] + } + }, + { + "assignments": [ + 3427 + ], + "declarations": [ + { + "constant": false, + "id": 3427, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61233:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3426, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61233:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3445, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 3433, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61327:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3432, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "61311:15:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$726_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 3434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61311:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$726", + "typeString": "contract IERC721Receiver" + } + }, + "id": 3435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 725, + "src": "61311:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "61311:45:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3437, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "61370:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61370:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3439, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "61396:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3440, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "61414:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3441, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3413, + "src": "61435:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3430, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61275:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "61275:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 3442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61275:175:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61452:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "expression": { + "id": 3428, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61259:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 1225, + "src": "61259:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 3444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61259:246:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "assignments": [ + 3447 + ], + "declarations": [ + { + "constant": false, + "id": 3447, + "mutability": "mutable", + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61515:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3446, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61515:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "id": 3455, + "initialValue": { + "arguments": [ + { + "id": 3450, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3427, + "src": "61542:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 3452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "61555:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 3451, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61555:6:1", + "typeDescriptions": {} + } + } + ], + "id": 3453, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61554:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "expression": { + "id": 3448, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61531:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "61531:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61531:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3456, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "61581:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3457, + "name": "_ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "61591:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "61581:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3459, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61580:28:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3417, + "id": 3460, + "nodeType": "Return", + "src": "61573:35:1" + } + ] + }, + "documentation": { + "id": 3405, + "nodeType": "StructuredDocumentation", + "src": "60479:542:1", + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3462, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3407, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61058:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61058:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3409, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61072:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61072:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3411, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61084:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3410, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3413, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61101:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3412, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61101:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "61057:63:1" + }, + "returnParameters": { + "id": 3417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3416, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61146:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3415, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "61146:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "61145:6:1" + }, + "scope": 3498, + "src": "61026:589:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3485, + "nodeType": "Block", + "src": "61791:125:1", + "statements": [ + { + "expression": { + "id": 3474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3470, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "61801:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 3472, + "indexExpression": { + "id": 3471, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61817:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "61801:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3473, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61828:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "61801:29:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3475, + "nodeType": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 3479, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61869:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3477, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "61854:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "61854:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61854:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3481, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61879:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3482, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3476, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "61845:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61845:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3484, + "nodeType": "EmitStatement", + "src": "61840:51:1" + } + ] + }, + "documentation": { + "id": 3463, + "nodeType": "StructuredDocumentation", + "src": "61621:101:1", + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3486, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3465, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61745:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61745:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3467, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61757:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61757:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "61744:29:1" + }, + "returnParameters": { + "id": 3469, + "nodeType": "ParameterList", + "parameters": [], + "src": "61791:0:1" + }, + "scope": 3498, + "src": "61727:189:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3496, + "nodeType": "Block", + "src": "62602:3:1", + "statements": [] + }, + "documentation": { + "id": 3487, + "nodeType": "StructuredDocumentation", + "src": "61922:585:1", + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3497, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3489, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62542:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62542:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3491, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62556:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62556:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3493, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62568:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "62568:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "62541:43:1" + }, + "returnParameters": { + "id": 3495, + "nodeType": "ParameterList", + "parameters": [], + "src": "62602:0:1" + }, + "scope": 3498, + "src": "62512:93:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "46080:16527:1" + } + ], + "src": "84:62524:1" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "license": "MIT" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 509, + "name": "PragmaDirective", + "src": "84:31:1" + }, + { + "attributes": { + "abstract": true, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgSender", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 510, + "name": "ParameterList", + "src": "668:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 518, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 511, + "name": "ElementaryTypeName", + "src": "702:15:1" + } + ], + "id": 512, + "name": "VariableDeclaration", + "src": "702:15:1" + } + ], + "id": 513, + "name": "ParameterList", + "src": "701:17:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 513 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 514, + "name": "Identifier", + "src": "736:3:1" + } + ], + "id": 515, + "name": "MemberAccess", + "src": "736:10:1" + } + ], + "id": 516, + "name": "Return", + "src": "729:17:1" + } + ], + "id": 517, + "name": "Block", + "src": "719:34:1" + } + ], + "id": 518, + "name": "FunctionDefinition", + "src": "649:104:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgData", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 519, + "name": "ParameterList", + "src": "776:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 529, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 520, + "name": "ElementaryTypeName", + "src": "810:5:1" + } + ], + "id": 521, + "name": "VariableDeclaration", + "src": "810:12:1" + } + ], + "id": 522, + "name": "ParameterList", + "src": "809:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "contract Context", + "value": "this" + }, + "id": 523, + "name": "Identifier", + "src": "834:4:1" + } + ], + "id": 524, + "name": "ExpressionStatement", + "src": "834:4:1" + }, + { + "attributes": { + "functionReturnParameters": 522 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "data", + "type": "bytes calldata" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 525, + "name": "Identifier", + "src": "974:3:1" + } + ], + "id": 526, + "name": "MemberAccess", + "src": "974:8:1" + } + ], + "id": 527, + "name": "Return", + "src": "967:15:1" + } + ], + "id": 528, + "name": "Block", + "src": "824:165:1" + } + ], + "id": 529, + "name": "FunctionDefinition", + "src": "759:230:1" + } + ], + "id": 530, + "name": "ContractDefinition", + "src": "617:374:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 531, + "name": "PragmaDirective", + "src": "1053:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "id": 532, + "name": "StructuredDocumentation", + "src": "1086:279:1" + }, + { + "attributes": { + "functionSelector": "01ffc9a7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 541, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "id": 533, + "name": "StructuredDocumentation", + "src": "1390:340:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 534, + "name": "ElementaryTypeName", + "src": "1762:6:1" + } + ], + "id": 535, + "name": "VariableDeclaration", + "src": "1762:18:1" + } + ], + "id": 536, + "name": "ParameterList", + "src": "1761:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 537, + "name": "ElementaryTypeName", + "src": "1805:4:1" + } + ], + "id": 538, + "name": "VariableDeclaration", + "src": "1805:4:1" + } + ], + "id": 539, + "name": "ParameterList", + "src": "1804:6:1" + } + ], + "id": 540, + "name": "FunctionDefinition", + "src": "1735:76:1" + } + ], + "id": 541, + "name": "ContractDefinition", + "src": "1366:447:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 542, + "name": "PragmaDirective", + "src": "1873:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "id": 543, + "name": "StructuredDocumentation", + "src": "1907:67:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 544, + "name": "UserDefinedTypeName", + "src": "1996:7:1" + } + ], + "id": 545, + "name": "InheritanceSpecifier", + "src": "1996:7:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Transfer" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 546, + "name": "StructuredDocumentation", + "src": "2010:88:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "from", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 547, + "name": "ElementaryTypeName", + "src": "2118:7:1" + } + ], + "id": 548, + "name": "VariableDeclaration", + "src": "2118:20:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "to", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 549, + "name": "ElementaryTypeName", + "src": "2140:7:1" + } + ], + "id": 550, + "name": "VariableDeclaration", + "src": "2140:18:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 551, + "name": "ElementaryTypeName", + "src": "2160:7:1" + } + ], + "id": 552, + "name": "VariableDeclaration", + "src": "2160:23:1" + } + ], + "id": 553, + "name": "ParameterList", + "src": "2117:67:1" + } + ], + "id": 554, + "name": "EventDefinition", + "src": "2103:82:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Approval" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 555, + "name": "StructuredDocumentation", + "src": "2191:94:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 556, + "name": "ElementaryTypeName", + "src": "2305:7:1" + } + ], + "id": 557, + "name": "VariableDeclaration", + "src": "2305:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 558, + "name": "ElementaryTypeName", + "src": "2328:7:1" + } + ], + "id": 559, + "name": "VariableDeclaration", + "src": "2328:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 560, + "name": "ElementaryTypeName", + "src": "2354:7:1" + } + ], + "id": 561, + "name": "VariableDeclaration", + "src": "2354:23:1" + } + ], + "id": 562, + "name": "ParameterList", + "src": "2304:74:1" + } + ], + "id": 563, + "name": "EventDefinition", + "src": "2290:89:1" + }, + { + "attributes": { + "anonymous": false, + "name": "ApprovalForAll" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 564, + "name": "StructuredDocumentation", + "src": "2385:117:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 565, + "name": "ElementaryTypeName", + "src": "2528:7:1" + } + ], + "id": 566, + "name": "VariableDeclaration", + "src": "2528:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 567, + "name": "ElementaryTypeName", + "src": "2551:7:1" + } + ], + "id": 568, + "name": "VariableDeclaration", + "src": "2551:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 569, + "name": "ElementaryTypeName", + "src": "2577:4:1" + } + ], + "id": 570, + "name": "VariableDeclaration", + "src": "2577:13:1" + } + ], + "id": 571, + "name": "ParameterList", + "src": "2527:64:1" + } + ], + "id": 572, + "name": "EventDefinition", + "src": "2507:85:1" + }, + { + "attributes": { + "functionSelector": "70a08231", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "id": 573, + "name": "StructuredDocumentation", + "src": "2598:76:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 574, + "name": "ElementaryTypeName", + "src": "2698:7:1" + } + ], + "id": 575, + "name": "VariableDeclaration", + "src": "2698:13:1" + } + ], + "id": 576, + "name": "ParameterList", + "src": "2697:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "balance", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 577, + "name": "ElementaryTypeName", + "src": "2736:7:1" + } + ], + "id": 578, + "name": "VariableDeclaration", + "src": "2736:15:1" + } + ], + "id": 579, + "name": "ParameterList", + "src": "2735:17:1" + } + ], + "id": 580, + "name": "FunctionDefinition", + "src": "2679:74:1" + }, + { + "attributes": { + "functionSelector": "6352211e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 581, + "name": "StructuredDocumentation", + "src": "2759:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 582, + "name": "ElementaryTypeName", + "src": "2912:7:1" + } + ], + "id": 583, + "name": "VariableDeclaration", + "src": "2912:15:1" + } + ], + "id": 584, + "name": "ParameterList", + "src": "2911:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 585, + "name": "ElementaryTypeName", + "src": "2952:7:1" + } + ], + "id": 586, + "name": "VariableDeclaration", + "src": "2952:13:1" + } + ], + "id": 587, + "name": "ParameterList", + "src": "2951:15:1" + } + ], + "id": 588, + "name": "FunctionDefinition", + "src": "2895:72:1" + }, + { + "attributes": { + "functionSelector": "42842e0e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 589, + "name": "StructuredDocumentation", + "src": "2973:690:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 590, + "name": "ElementaryTypeName", + "src": "3694:7:1" + } + ], + "id": 591, + "name": "VariableDeclaration", + "src": "3694:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 592, + "name": "ElementaryTypeName", + "src": "3708:7:1" + } + ], + "id": 593, + "name": "VariableDeclaration", + "src": "3708:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 594, + "name": "ElementaryTypeName", + "src": "3720:7:1" + } + ], + "id": 595, + "name": "VariableDeclaration", + "src": "3720:15:1" + } + ], + "id": 596, + "name": "ParameterList", + "src": "3693:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 597, + "name": "ParameterList", + "src": "3745:0:1" + } + ], + "id": 598, + "name": "FunctionDefinition", + "src": "3668:78:1" + }, + { + "attributes": { + "functionSelector": "23b872dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "id": 599, + "name": "StructuredDocumentation", + "src": "3752:504:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 600, + "name": "ElementaryTypeName", + "src": "4283:7:1" + } + ], + "id": 601, + "name": "VariableDeclaration", + "src": "4283:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 602, + "name": "ElementaryTypeName", + "src": "4297:7:1" + } + ], + "id": 603, + "name": "VariableDeclaration", + "src": "4297:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 604, + "name": "ElementaryTypeName", + "src": "4309:7:1" + } + ], + "id": 605, + "name": "VariableDeclaration", + "src": "4309:15:1" + } + ], + "id": 606, + "name": "ParameterList", + "src": "4282:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 607, + "name": "ParameterList", + "src": "4334:0:1" + } + ], + "id": 608, + "name": "FunctionDefinition", + "src": "4261:74:1" + }, + { + "attributes": { + "functionSelector": "095ea7b3", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "id": 609, + "name": "StructuredDocumentation", + "src": "4341:452:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 610, + "name": "ElementaryTypeName", + "src": "4815:7:1" + } + ], + "id": 611, + "name": "VariableDeclaration", + "src": "4815:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 612, + "name": "ElementaryTypeName", + "src": "4827:7:1" + } + ], + "id": 613, + "name": "VariableDeclaration", + "src": "4827:15:1" + } + ], + "id": 614, + "name": "ParameterList", + "src": "4814:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 615, + "name": "ParameterList", + "src": "4852:0:1" + } + ], + "id": 616, + "name": "FunctionDefinition", + "src": "4798:55:1" + }, + { + "attributes": { + "functionSelector": "081812fc", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 617, + "name": "StructuredDocumentation", + "src": "4859:139:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 618, + "name": "ElementaryTypeName", + "src": "5024:7:1" + } + ], + "id": 619, + "name": "VariableDeclaration", + "src": "5024:15:1" + } + ], + "id": 620, + "name": "ParameterList", + "src": "5023:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 621, + "name": "ElementaryTypeName", + "src": "5064:7:1" + } + ], + "id": 622, + "name": "VariableDeclaration", + "src": "5064:16:1" + } + ], + "id": 623, + "name": "ParameterList", + "src": "5063:18:1" + } + ], + "id": 624, + "name": "FunctionDefinition", + "src": "5003:79:1" + }, + { + "attributes": { + "functionSelector": "a22cb465", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "id": 625, + "name": "StructuredDocumentation", + "src": "5088:309:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 626, + "name": "ElementaryTypeName", + "src": "5429:7:1" + } + ], + "id": 627, + "name": "VariableDeclaration", + "src": "5429:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_approved", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 628, + "name": "ElementaryTypeName", + "src": "5447:4:1" + } + ], + "id": 629, + "name": "VariableDeclaration", + "src": "5447:14:1" + } + ], + "id": 630, + "name": "ParameterList", + "src": "5428:34:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 631, + "name": "ParameterList", + "src": "5471:0:1" + } + ], + "id": 632, + "name": "FunctionDefinition", + "src": "5402:70:1" + }, + { + "attributes": { + "functionSelector": "e985e9c5", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "id": 633, + "name": "StructuredDocumentation", + "src": "5478:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 634, + "name": "ElementaryTypeName", + "src": "5647:7:1" + } + ], + "id": 635, + "name": "VariableDeclaration", + "src": "5647:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 636, + "name": "ElementaryTypeName", + "src": "5662:7:1" + } + ], + "id": 637, + "name": "VariableDeclaration", + "src": "5662:16:1" + } + ], + "id": 638, + "name": "ParameterList", + "src": "5646:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 639, + "name": "ElementaryTypeName", + "src": "5703:4:1" + } + ], + "id": 640, + "name": "VariableDeclaration", + "src": "5703:4:1" + } + ], + "id": 641, + "name": "ParameterList", + "src": "5702:6:1" + } + ], + "id": 642, + "name": "FunctionDefinition", + "src": "5621:88:1" + }, + { + "attributes": { + "functionSelector": "b88d4fde", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 643, + "name": "StructuredDocumentation", + "src": "5715:568:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 644, + "name": "ElementaryTypeName", + "src": "6314:7:1" + } + ], + "id": 645, + "name": "VariableDeclaration", + "src": "6314:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 646, + "name": "ElementaryTypeName", + "src": "6328:7:1" + } + ], + "id": 647, + "name": "VariableDeclaration", + "src": "6328:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 648, + "name": "ElementaryTypeName", + "src": "6340:7:1" + } + ], + "id": 649, + "name": "VariableDeclaration", + "src": "6340:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 654, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 650, + "name": "ElementaryTypeName", + "src": "6357:5:1" + } + ], + "id": 651, + "name": "VariableDeclaration", + "src": "6357:19:1" + } + ], + "id": 652, + "name": "ParameterList", + "src": "6313:64:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 653, + "name": "ParameterList", + "src": "6386:0:1" + } + ], + "id": 654, + "name": "FunctionDefinition", + "src": "6288:99:1" + } + ], + "id": 655, + "name": "ContractDefinition", + "src": "1975:4414:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 656, + "name": "PragmaDirective", + "src": "6457:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 657, + "name": "StructuredDocumentation", + "src": "6491:133:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 658, + "name": "UserDefinedTypeName", + "src": "6654:7:1" + } + ], + "id": 659, + "name": "InheritanceSpecifier", + "src": "6654:7:1" + }, + { + "attributes": { + "functionSelector": "06fdde03", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection name." + }, + "id": 660, + "name": "StructuredDocumentation", + "src": "6669:58:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 661, + "name": "ParameterList", + "src": "6745:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 665, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 662, + "name": "ElementaryTypeName", + "src": "6771:6:1" + } + ], + "id": 663, + "name": "VariableDeclaration", + "src": "6771:13:1" + } + ], + "id": 664, + "name": "ParameterList", + "src": "6770:15:1" + } + ], + "id": 665, + "name": "FunctionDefinition", + "src": "6732:54:1" + }, + { + "attributes": { + "functionSelector": "95d89b41", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection symbol." + }, + "id": 666, + "name": "StructuredDocumentation", + "src": "6792:60:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 667, + "name": "ParameterList", + "src": "6872:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 671, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 668, + "name": "ElementaryTypeName", + "src": "6898:6:1" + } + ], + "id": 669, + "name": "VariableDeclaration", + "src": "6898:13:1" + } + ], + "id": 670, + "name": "ParameterList", + "src": "6897:15:1" + } + ], + "id": 671, + "name": "FunctionDefinition", + "src": "6857:56:1" + }, + { + "attributes": { + "functionSelector": "c87b56dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "id": 672, + "name": "StructuredDocumentation", + "src": "6919:90:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 679, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 673, + "name": "ElementaryTypeName", + "src": "7032:7:1" + } + ], + "id": 674, + "name": "VariableDeclaration", + "src": "7032:15:1" + } + ], + "id": 675, + "name": "ParameterList", + "src": "7031:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 679, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 676, + "name": "ElementaryTypeName", + "src": "7072:6:1" + } + ], + "id": 677, + "name": "VariableDeclaration", + "src": "7072:13:1" + } + ], + "id": 678, + "name": "ParameterList", + "src": "7071:15:1" + } + ], + "id": 679, + "name": "FunctionDefinition", + "src": "7014:73:1" + } + ], + "id": 680, + "name": "ContractDefinition", + "src": "6625:464:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 681, + "name": "PragmaDirective", + "src": "7161:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 682, + "name": "StructuredDocumentation", + "src": "7195:136:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 683, + "name": "UserDefinedTypeName", + "src": "7363:7:1" + } + ], + "id": 684, + "name": "InheritanceSpecifier", + "src": "7363:7:1" + }, + { + "attributes": { + "functionSelector": "18160ddd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "id": 685, + "name": "StructuredDocumentation", + "src": "7378:82:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 686, + "name": "ParameterList", + "src": "7485:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 690, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 687, + "name": "ElementaryTypeName", + "src": "7511:7:1" + } + ], + "id": 688, + "name": "VariableDeclaration", + "src": "7511:7:1" + } + ], + "id": 689, + "name": "ParameterList", + "src": "7510:9:1" + } + ], + "id": 690, + "name": "FunctionDefinition", + "src": "7465:55:1" + }, + { + "attributes": { + "functionSelector": "2f745c59", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "id": 691, + "name": "StructuredDocumentation", + "src": "7526:171:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 692, + "name": "ElementaryTypeName", + "src": "7731:7:1" + } + ], + "id": 693, + "name": "VariableDeclaration", + "src": "7731:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 694, + "name": "ElementaryTypeName", + "src": "7746:7:1" + } + ], + "id": 695, + "name": "VariableDeclaration", + "src": "7746:13:1" + } + ], + "id": 696, + "name": "ParameterList", + "src": "7730:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 697, + "name": "ElementaryTypeName", + "src": "7784:7:1" + } + ], + "id": 698, + "name": "VariableDeclaration", + "src": "7784:15:1" + } + ], + "id": 699, + "name": "ParameterList", + "src": "7783:17:1" + } + ], + "id": 700, + "name": "FunctionDefinition", + "src": "7702:99:1" + }, + { + "attributes": { + "functionSelector": "4f6ccce7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "id": 701, + "name": "StructuredDocumentation", + "src": "7807:164:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 702, + "name": "ElementaryTypeName", + "src": "7998:7:1" + } + ], + "id": 703, + "name": "VariableDeclaration", + "src": "7998:13:1" + } + ], + "id": 704, + "name": "ParameterList", + "src": "7997:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 705, + "name": "ElementaryTypeName", + "src": "8036:7:1" + } + ], + "id": 706, + "name": "VariableDeclaration", + "src": "8036:7:1" + } + ], + "id": 707, + "name": "ParameterList", + "src": "8035:9:1" + } + ], + "id": 708, + "name": "FunctionDefinition", + "src": "7976:69:1" + } + ], + "id": 709, + "name": "ContractDefinition", + "src": "7332:715:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 710, + "name": "PragmaDirective", + "src": "8117:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "id": 711, + "name": "StructuredDocumentation", + "src": "8150:152:1" + }, + { + "attributes": { + "functionSelector": "150b7a02", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "onERC721Received", + "scope": 726, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "id": 712, + "name": "StructuredDocumentation", + "src": "8335:485:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 713, + "name": "ElementaryTypeName", + "src": "8851:7:1" + } + ], + "id": 714, + "name": "VariableDeclaration", + "src": "8851:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 715, + "name": "ElementaryTypeName", + "src": "8869:7:1" + } + ], + "id": 716, + "name": "VariableDeclaration", + "src": "8869:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 717, + "name": "ElementaryTypeName", + "src": "8883:7:1" + } + ], + "id": 718, + "name": "VariableDeclaration", + "src": "8883:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 725, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 719, + "name": "ElementaryTypeName", + "src": "8900:5:1" + } + ], + "id": 720, + "name": "VariableDeclaration", + "src": "8900:19:1" + } + ], + "id": 721, + "name": "ParameterList", + "src": "8850:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 722, + "name": "ElementaryTypeName", + "src": "8939:6:1" + } + ], + "id": 723, + "name": "VariableDeclaration", + "src": "8939:6:1" + } + ], + "id": 724, + "name": "ParameterList", + "src": "8938:8:1" + } + ], + "id": 725, + "name": "FunctionDefinition", + "src": "8825:122:1" + } + ], + "id": 726, + "name": "ContractDefinition", + "src": "8303:646:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 727, + "name": "PragmaDirective", + "src": "9009:31:1" + }, + { + "attributes": { + "abstract": true, + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "id": 728, + "name": "StructuredDocumentation", + "src": "9043:171:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 729, + "name": "UserDefinedTypeName", + "src": "9243:7:1" + } + ], + "id": 730, + "name": "InheritanceSpecifier", + "src": "9243:7:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 731, + "name": "ElementaryTypeName", + "src": "9340:6:1" + }, + { + "attributes": { + "hexvalue": "30783031666663396137", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 33540519", + "value": "0x01ffc9a7" + }, + "id": 732, + "name": "Literal", + "src": "9387:10:1" + } + ], + "id": 733, + "name": "VariableDeclaration", + "src": "9340:57:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_supportedInterfaces", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes4 => bool)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes4 => bool)" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 735, + "name": "ElementaryTypeName", + "src": "9499:6:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 736, + "name": "ElementaryTypeName", + "src": "9509:4:1" + } + ], + "id": 737, + "name": "Mapping", + "src": "9491:23:1" + }, + { + "attributes": { + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 734, + "name": "StructuredDocumentation", + "src": "9404:82:1" + } + ], + "id": 738, + "name": "VariableDeclaration", + "src": "9491:52:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 739, + "name": "ParameterList", + "src": "9562:2:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 740, + "name": "ParameterList", + "src": "9565:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 741, + "name": "Identifier", + "src": "9711:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 733, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC165" + }, + "id": 742, + "name": "Identifier", + "src": "9730:20:1" + } + ], + "id": 743, + "name": "FunctionCall", + "src": "9711:40:1" + } + ], + "id": 744, + "name": "ExpressionStatement", + "src": "9711:40:1" + } + ], + "id": 745, + "name": "Block", + "src": "9565:193:1" + } + ], + "id": 746, + "name": "FunctionDefinition", + "src": "9550:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 540 + ], + "functionSelector": "01ffc9a7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 781, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "id": 747, + "name": "StructuredDocumentation", + "src": "9764:139:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 751, + "name": "OverrideSpecifier", + "src": "9975:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 748, + "name": "ElementaryTypeName", + "src": "9935:6:1" + } + ], + "id": 749, + "name": "VariableDeclaration", + "src": "9935:18:1" + } + ], + "id": 750, + "name": "ParameterList", + "src": "9934:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 752, + "name": "ElementaryTypeName", + "src": "9993:4:1" + } + ], + "id": 753, + "name": "VariableDeclaration", + "src": "9993:4:1" + } + ], + "id": 754, + "name": "ParameterList", + "src": "9992:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 754 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 755, + "name": "Identifier", + "src": "10016:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 749, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 756, + "name": "Identifier", + "src": "10037:11:1" + } + ], + "id": 757, + "name": "IndexAccess", + "src": "10016:33:1" + } + ], + "id": 758, + "name": "Return", + "src": "10009:40:1" + } + ], + "id": 759, + "name": "Block", + "src": "9999:57:1" + } + ], + "id": 760, + "name": "FunctionDefinition", + "src": "9908:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_registerInterface", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 761, + "name": "StructuredDocumentation", + "src": "10062:383:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 780, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 762, + "name": "ElementaryTypeName", + "src": "10478:6:1" + } + ], + "id": 763, + "name": "VariableDeclaration", + "src": "10478:18:1" + } + ], + "id": 764, + "name": "ParameterList", + "src": "10477:20:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 765, + "name": "ParameterList", + "src": "10515:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 766, + "name": "Identifier", + "src": "10525:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 767, + "name": "Identifier", + "src": "10533:11:1" + }, + { + "attributes": { + "hexvalue": "30786666666666666666", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4294967295", + "value": "0xffffffff" + }, + "id": 768, + "name": "Literal", + "src": "10548:10:1" + } + ], + "id": 769, + "name": "BinaryOperation", + "src": "10533:25:1" + }, + { + "attributes": { + "hexvalue": "4552433136353a20696e76616c696420696e74657266616365206964", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC165: invalid interface id\"", + "value": "ERC165: invalid interface id" + }, + "id": 770, + "name": "Literal", + "src": "10560:30:1" + } + ], + "id": 771, + "name": "FunctionCall", + "src": "10525:66:1" + } + ], + "id": 772, + "name": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 773, + "name": "Identifier", + "src": "10601:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 774, + "name": "Identifier", + "src": "10622:11:1" + } + ], + "id": 775, + "name": "IndexAccess", + "src": "10601:33:1" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 776, + "name": "Literal", + "src": "10637:4:1" + } + ], + "id": 777, + "name": "Assignment", + "src": "10601:40:1" + } + ], + "id": 778, + "name": "ExpressionStatement", + "src": "10601:40:1" + } + ], + "id": 779, + "name": "Block", + "src": "10515:133:1" + } + ], + "id": 780, + "name": "FunctionDefinition", + "src": "10450:198:1" + } + ], + "id": 781, + "name": "ContractDefinition", + "src": "9215:1435:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 782, + "name": "PragmaDirective", + "src": "10703:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "id": 783, + "name": "StructuredDocumentation", + "src": "10736:563:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryAdd", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 784, + "name": "StructuredDocumentation", + "src": "11323:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 785, + "name": "ElementaryTypeName", + "src": "11475:7:1" + } + ], + "id": 786, + "name": "VariableDeclaration", + "src": "11475:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 787, + "name": "ElementaryTypeName", + "src": "11486:7:1" + } + ], + "id": 788, + "name": "VariableDeclaration", + "src": "11486:9:1" + } + ], + "id": 789, + "name": "ParameterList", + "src": "11474:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 790, + "name": "ElementaryTypeName", + "src": "11520:4:1" + } + ], + "id": 791, + "name": "VariableDeclaration", + "src": "11520:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 792, + "name": "ElementaryTypeName", + "src": "11526:7:1" + } + ], + "id": 793, + "name": "VariableDeclaration", + "src": "11526:7:1" + } + ], + "id": 794, + "name": "ParameterList", + "src": "11519:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 796 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 813, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 795, + "name": "ElementaryTypeName", + "src": "11545:7:1" + } + ], + "id": 796, + "name": "VariableDeclaration", + "src": "11545:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 797, + "name": "Identifier", + "src": "11557:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 788, + "type": "uint256", + "value": "b" + }, + "id": 798, + "name": "Identifier", + "src": "11561:1:1" + } + ], + "id": 799, + "name": "BinaryOperation", + "src": "11557:5:1" + } + ], + "id": 800, + "name": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 801, + "name": "Identifier", + "src": "11576:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 802, + "name": "Identifier", + "src": "11580:1:1" + } + ], + "id": 803, + "name": "BinaryOperation", + "src": "11576:5:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 804, + "name": "Literal", + "src": "11591:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 805, + "name": "Literal", + "src": "11598:1:1" + } + ], + "id": 806, + "name": "TupleExpression", + "src": "11590:10:1" + } + ], + "id": 807, + "name": "Return", + "src": "11583:17:1" + } + ], + "id": 808, + "name": "IfStatement", + "src": "11572:28:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 809, + "name": "Literal", + "src": "11618:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 810, + "name": "Identifier", + "src": "11624:1:1" + } + ], + "id": 811, + "name": "TupleExpression", + "src": "11617:9:1" + } + ], + "id": 812, + "name": "Return", + "src": "11610:16:1" + } + ], + "id": 813, + "name": "Block", + "src": "11535:98:1" + } + ], + "id": 814, + "name": "FunctionDefinition", + "src": "11459:174:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "trySub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 815, + "name": "StructuredDocumentation", + "src": "11639:135:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 816, + "name": "ElementaryTypeName", + "src": "11795:7:1" + } + ], + "id": 817, + "name": "VariableDeclaration", + "src": "11795:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 818, + "name": "ElementaryTypeName", + "src": "11806:7:1" + } + ], + "id": 819, + "name": "VariableDeclaration", + "src": "11806:9:1" + } + ], + "id": 820, + "name": "ParameterList", + "src": "11794:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 821, + "name": "ElementaryTypeName", + "src": "11840:4:1" + } + ], + "id": 822, + "name": "VariableDeclaration", + "src": "11840:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 823, + "name": "ElementaryTypeName", + "src": "11846:7:1" + } + ], + "id": 824, + "name": "VariableDeclaration", + "src": "11846:7:1" + } + ], + "id": 825, + "name": "ParameterList", + "src": "11839:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 826, + "name": "Identifier", + "src": "11869:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 827, + "name": "Identifier", + "src": "11873:1:1" + } + ], + "id": 828, + "name": "BinaryOperation", + "src": "11869:5:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 829, + "name": "Literal", + "src": "11884:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 830, + "name": "Literal", + "src": "11891:1:1" + } + ], + "id": 831, + "name": "TupleExpression", + "src": "11883:10:1" + } + ], + "id": 832, + "name": "Return", + "src": "11876:17:1" + } + ], + "id": 833, + "name": "IfStatement", + "src": "11865:28:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 834, + "name": "Literal", + "src": "11911:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 835, + "name": "Identifier", + "src": "11917:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 836, + "name": "Identifier", + "src": "11921:1:1" + } + ], + "id": 837, + "name": "BinaryOperation", + "src": "11917:5:1" + } + ], + "id": 838, + "name": "TupleExpression", + "src": "11910:13:1" + } + ], + "id": 839, + "name": "Return", + "src": "11903:20:1" + } + ], + "id": 840, + "name": "Block", + "src": "11855:75:1" + } + ], + "id": 841, + "name": "FunctionDefinition", + "src": "11779:151:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 842, + "name": "StructuredDocumentation", + "src": "11936:137:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 843, + "name": "ElementaryTypeName", + "src": "12094:7:1" + } + ], + "id": 844, + "name": "VariableDeclaration", + "src": "12094:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 845, + "name": "ElementaryTypeName", + "src": "12105:7:1" + } + ], + "id": 846, + "name": "VariableDeclaration", + "src": "12105:9:1" + } + ], + "id": 847, + "name": "ParameterList", + "src": "12093:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 848, + "name": "ElementaryTypeName", + "src": "12139:4:1" + } + ], + "id": 849, + "name": "VariableDeclaration", + "src": "12139:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 850, + "name": "ElementaryTypeName", + "src": "12145:7:1" + } + ], + "id": 851, + "name": "VariableDeclaration", + "src": "12145:7:1" + } + ], + "id": 852, + "name": "ParameterList", + "src": "12138:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 853, + "name": "Identifier", + "src": "12386:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 854, + "name": "Literal", + "src": "12391:1:1" + } + ], + "id": 855, + "name": "BinaryOperation", + "src": "12386:6:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 856, + "name": "Literal", + "src": "12402:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 857, + "name": "Literal", + "src": "12408:1:1" + } + ], + "id": 858, + "name": "TupleExpression", + "src": "12401:9:1" + } + ], + "id": 859, + "name": "Return", + "src": "12394:16:1" + } + ], + "id": 860, + "name": "IfStatement", + "src": "12382:28:1" + }, + { + "attributes": { + "assignments": [ + 862 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 881, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 861, + "name": "ElementaryTypeName", + "src": "12420:7:1" + } + ], + "id": 862, + "name": "VariableDeclaration", + "src": "12420:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 863, + "name": "Identifier", + "src": "12432:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 864, + "name": "Identifier", + "src": "12436:1:1" + } + ], + "id": 865, + "name": "BinaryOperation", + "src": "12432:5:1" + } + ], + "id": 866, + "name": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 867, + "name": "Identifier", + "src": "12451:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 868, + "name": "Identifier", + "src": "12455:1:1" + } + ], + "id": 869, + "name": "BinaryOperation", + "src": "12451:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 870, + "name": "Identifier", + "src": "12460:1:1" + } + ], + "id": 871, + "name": "BinaryOperation", + "src": "12451:10:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 872, + "name": "Literal", + "src": "12471:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 873, + "name": "Literal", + "src": "12478:1:1" + } + ], + "id": 874, + "name": "TupleExpression", + "src": "12470:10:1" + } + ], + "id": 875, + "name": "Return", + "src": "12463:17:1" + } + ], + "id": 876, + "name": "IfStatement", + "src": "12447:33:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 877, + "name": "Literal", + "src": "12498:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 878, + "name": "Identifier", + "src": "12504:1:1" + } + ], + "id": 879, + "name": "TupleExpression", + "src": "12497:9:1" + } + ], + "id": 880, + "name": "Return", + "src": "12490:16:1" + } + ], + "id": 881, + "name": "Block", + "src": "12154:359:1" + } + ], + "id": 882, + "name": "FunctionDefinition", + "src": "12078:435:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryDiv", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 883, + "name": "StructuredDocumentation", + "src": "12519:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 884, + "name": "ElementaryTypeName", + "src": "12678:7:1" + } + ], + "id": 885, + "name": "VariableDeclaration", + "src": "12678:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 886, + "name": "ElementaryTypeName", + "src": "12689:7:1" + } + ], + "id": 887, + "name": "VariableDeclaration", + "src": "12689:9:1" + } + ], + "id": 888, + "name": "ParameterList", + "src": "12677:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 889, + "name": "ElementaryTypeName", + "src": "12723:4:1" + } + ], + "id": 890, + "name": "VariableDeclaration", + "src": "12723:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 891, + "name": "ElementaryTypeName", + "src": "12729:7:1" + } + ], + "id": 892, + "name": "VariableDeclaration", + "src": "12729:7:1" + } + ], + "id": 893, + "name": "ParameterList", + "src": "12722:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 894, + "name": "Identifier", + "src": "12752:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 895, + "name": "Literal", + "src": "12757:1:1" + } + ], + "id": 896, + "name": "BinaryOperation", + "src": "12752:6:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 897, + "name": "Literal", + "src": "12768:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 898, + "name": "Literal", + "src": "12775:1:1" + } + ], + "id": 899, + "name": "TupleExpression", + "src": "12767:10:1" + } + ], + "id": 900, + "name": "Return", + "src": "12760:17:1" + } + ], + "id": 901, + "name": "IfStatement", + "src": "12748:29:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 902, + "name": "Literal", + "src": "12795:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 885, + "type": "uint256", + "value": "a" + }, + "id": 903, + "name": "Identifier", + "src": "12801:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 904, + "name": "Identifier", + "src": "12805:1:1" + } + ], + "id": 905, + "name": "BinaryOperation", + "src": "12801:5:1" + } + ], + "id": 906, + "name": "TupleExpression", + "src": "12794:13:1" + } + ], + "id": 907, + "name": "Return", + "src": "12787:20:1" + } + ], + "id": 908, + "name": "Block", + "src": "12738:76:1" + } + ], + "id": 909, + "name": "FunctionDefinition", + "src": "12662:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 910, + "name": "StructuredDocumentation", + "src": "12820:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 911, + "name": "ElementaryTypeName", + "src": "12989:7:1" + } + ], + "id": 912, + "name": "VariableDeclaration", + "src": "12989:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 913, + "name": "ElementaryTypeName", + "src": "13000:7:1" + } + ], + "id": 914, + "name": "VariableDeclaration", + "src": "13000:9:1" + } + ], + "id": 915, + "name": "ParameterList", + "src": "12988:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 916, + "name": "ElementaryTypeName", + "src": "13034:4:1" + } + ], + "id": 917, + "name": "VariableDeclaration", + "src": "13034:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 918, + "name": "ElementaryTypeName", + "src": "13040:7:1" + } + ], + "id": 919, + "name": "VariableDeclaration", + "src": "13040:7:1" + } + ], + "id": 920, + "name": "ParameterList", + "src": "13033:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 921, + "name": "Identifier", + "src": "13063:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 922, + "name": "Literal", + "src": "13068:1:1" + } + ], + "id": 923, + "name": "BinaryOperation", + "src": "13063:6:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 924, + "name": "Literal", + "src": "13079:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 925, + "name": "Literal", + "src": "13086:1:1" + } + ], + "id": 926, + "name": "TupleExpression", + "src": "13078:10:1" + } + ], + "id": 927, + "name": "Return", + "src": "13071:17:1" + } + ], + "id": 928, + "name": "IfStatement", + "src": "13059:29:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 929, + "name": "Literal", + "src": "13106:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 912, + "type": "uint256", + "value": "a" + }, + "id": 930, + "name": "Identifier", + "src": "13112:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 931, + "name": "Identifier", + "src": "13116:1:1" + } + ], + "id": 932, + "name": "BinaryOperation", + "src": "13112:5:1" + } + ], + "id": 933, + "name": "TupleExpression", + "src": "13105:13:1" + } + ], + "id": 934, + "name": "Return", + "src": "13098:20:1" + } + ], + "id": 935, + "name": "Block", + "src": "13049:76:1" + } + ], + "id": 936, + "name": "FunctionDefinition", + "src": "12973:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 937, + "name": "StructuredDocumentation", + "src": "13131:224:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 938, + "name": "ElementaryTypeName", + "src": "13373:7:1" + } + ], + "id": 939, + "name": "VariableDeclaration", + "src": "13373:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 940, + "name": "ElementaryTypeName", + "src": "13384:7:1" + } + ], + "id": 941, + "name": "VariableDeclaration", + "src": "13384:9:1" + } + ], + "id": 942, + "name": "ParameterList", + "src": "13372:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 943, + "name": "ElementaryTypeName", + "src": "13418:7:1" + } + ], + "id": 944, + "name": "VariableDeclaration", + "src": "13418:7:1" + } + ], + "id": 945, + "name": "ParameterList", + "src": "13417:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 947 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 961, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 946, + "name": "ElementaryTypeName", + "src": "13437:7:1" + } + ], + "id": 947, + "name": "VariableDeclaration", + "src": "13437:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 948, + "name": "Identifier", + "src": "13449:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 941, + "type": "uint256", + "value": "b" + }, + "id": 949, + "name": "Identifier", + "src": "13453:1:1" + } + ], + "id": 950, + "name": "BinaryOperation", + "src": "13449:5:1" + } + ], + "id": 951, + "name": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 952, + "name": "Identifier", + "src": "13464:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 953, + "name": "Identifier", + "src": "13472:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 954, + "name": "Identifier", + "src": "13477:1:1" + } + ], + "id": 955, + "name": "BinaryOperation", + "src": "13472:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: addition overflow\"", + "value": "SafeMath: addition overflow" + }, + "id": 956, + "name": "Literal", + "src": "13480:29:1" + } + ], + "id": 957, + "name": "FunctionCall", + "src": "13464:46:1" + } + ], + "id": 958, + "name": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "attributes": { + "functionReturnParameters": 945 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 959, + "name": "Identifier", + "src": "13527:1:1" + } + ], + "id": 960, + "name": "Return", + "src": "13520:8:1" + } + ], + "id": 961, + "name": "Block", + "src": "13427:108:1" + } + ], + "id": 962, + "name": "FunctionDefinition", + "src": "13360:175:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 963, + "name": "StructuredDocumentation", + "src": "13541:260:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 964, + "name": "ElementaryTypeName", + "src": "13819:7:1" + } + ], + "id": 965, + "name": "VariableDeclaration", + "src": "13819:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 966, + "name": "ElementaryTypeName", + "src": "13830:7:1" + } + ], + "id": 967, + "name": "VariableDeclaration", + "src": "13830:9:1" + } + ], + "id": 968, + "name": "ParameterList", + "src": "13818:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 969, + "name": "ElementaryTypeName", + "src": "13864:7:1" + } + ], + "id": 970, + "name": "VariableDeclaration", + "src": "13864:7:1" + } + ], + "id": 971, + "name": "ParameterList", + "src": "13863:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 972, + "name": "Identifier", + "src": "13883:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 973, + "name": "Identifier", + "src": "13891:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 974, + "name": "Identifier", + "src": "13896:1:1" + } + ], + "id": 975, + "name": "BinaryOperation", + "src": "13891:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: subtraction overflow\"", + "value": "SafeMath: subtraction overflow" + }, + "id": 976, + "name": "Literal", + "src": "13899:32:1" + } + ], + "id": 977, + "name": "FunctionCall", + "src": "13883:49:1" + } + ], + "id": 978, + "name": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "attributes": { + "functionReturnParameters": 971 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 979, + "name": "Identifier", + "src": "13949:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 980, + "name": "Identifier", + "src": "13953:1:1" + } + ], + "id": 981, + "name": "BinaryOperation", + "src": "13949:5:1" + } + ], + "id": 982, + "name": "Return", + "src": "13942:12:1" + } + ], + "id": 983, + "name": "Block", + "src": "13873:88:1" + } + ], + "id": 984, + "name": "FunctionDefinition", + "src": "13806:155:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 985, + "name": "StructuredDocumentation", + "src": "13967:236:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 986, + "name": "ElementaryTypeName", + "src": "14221:7:1" + } + ], + "id": 987, + "name": "VariableDeclaration", + "src": "14221:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 988, + "name": "ElementaryTypeName", + "src": "14232:7:1" + } + ], + "id": 989, + "name": "VariableDeclaration", + "src": "14232:9:1" + } + ], + "id": 990, + "name": "ParameterList", + "src": "14220:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 991, + "name": "ElementaryTypeName", + "src": "14266:7:1" + } + ], + "id": 992, + "name": "VariableDeclaration", + "src": "14266:7:1" + } + ], + "id": 993, + "name": "ParameterList", + "src": "14265:9:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 994, + "name": "Identifier", + "src": "14289:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 995, + "name": "Literal", + "src": "14294:1:1" + } + ], + "id": 996, + "name": "BinaryOperation", + "src": "14289:6:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 997, + "name": "Literal", + "src": "14304:1:1" + } + ], + "id": 998, + "name": "Return", + "src": "14297:8:1" + } + ], + "id": 999, + "name": "IfStatement", + "src": "14285:20:1" + }, + { + "attributes": { + "assignments": [ + 1001 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 1017, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1000, + "name": "ElementaryTypeName", + "src": "14315:7:1" + } + ], + "id": 1001, + "name": "VariableDeclaration", + "src": "14315:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1002, + "name": "Identifier", + "src": "14327:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1003, + "name": "Identifier", + "src": "14331:1:1" + } + ], + "id": 1004, + "name": "BinaryOperation", + "src": "14327:5:1" + } + ], + "id": 1005, + "name": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1006, + "name": "Identifier", + "src": "14342:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1007, + "name": "Identifier", + "src": "14350:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1008, + "name": "Identifier", + "src": "14354:1:1" + } + ], + "id": 1009, + "name": "BinaryOperation", + "src": "14350:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1010, + "name": "Identifier", + "src": "14359:1:1" + } + ], + "id": 1011, + "name": "BinaryOperation", + "src": "14350:10:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: multiplication overflow\"", + "value": "SafeMath: multiplication overflow" + }, + "id": 1012, + "name": "Literal", + "src": "14362:35:1" + } + ], + "id": 1013, + "name": "FunctionCall", + "src": "14342:56:1" + } + ], + "id": 1014, + "name": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1015, + "name": "Identifier", + "src": "14415:1:1" + } + ], + "id": 1016, + "name": "Return", + "src": "14408:8:1" + } + ], + "id": 1017, + "name": "Block", + "src": "14275:148:1" + } + ], + "id": 1018, + "name": "FunctionDefinition", + "src": "14208:215:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1019, + "name": "StructuredDocumentation", + "src": "14429:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1020, + "name": "ElementaryTypeName", + "src": "14900:7:1" + } + ], + "id": 1021, + "name": "VariableDeclaration", + "src": "14900:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1022, + "name": "ElementaryTypeName", + "src": "14911:7:1" + } + ], + "id": 1023, + "name": "VariableDeclaration", + "src": "14911:9:1" + } + ], + "id": 1024, + "name": "ParameterList", + "src": "14899:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1025, + "name": "ElementaryTypeName", + "src": "14945:7:1" + } + ], + "id": 1026, + "name": "VariableDeclaration", + "src": "14945:7:1" + } + ], + "id": 1027, + "name": "ParameterList", + "src": "14944:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1028, + "name": "Identifier", + "src": "14964:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1029, + "name": "Identifier", + "src": "14972:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1030, + "name": "Literal", + "src": "14976:1:1" + } + ], + "id": 1031, + "name": "BinaryOperation", + "src": "14972:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206469766973696f6e206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: division by zero\"", + "value": "SafeMath: division by zero" + }, + "id": 1032, + "name": "Literal", + "src": "14979:28:1" + } + ], + "id": 1033, + "name": "FunctionCall", + "src": "14964:44:1" + } + ], + "id": 1034, + "name": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "attributes": { + "functionReturnParameters": 1027 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1021, + "type": "uint256", + "value": "a" + }, + "id": 1035, + "name": "Identifier", + "src": "15025:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1036, + "name": "Identifier", + "src": "15029:1:1" + } + ], + "id": 1037, + "name": "BinaryOperation", + "src": "15025:5:1" + } + ], + "id": 1038, + "name": "Return", + "src": "15018:12:1" + } + ], + "id": 1039, + "name": "Block", + "src": "14954:83:1" + } + ], + "id": 1040, + "name": "FunctionDefinition", + "src": "14887:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1041, + "name": "StructuredDocumentation", + "src": "15043:442:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1042, + "name": "ElementaryTypeName", + "src": "15503:7:1" + } + ], + "id": 1043, + "name": "VariableDeclaration", + "src": "15503:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1044, + "name": "ElementaryTypeName", + "src": "15514:7:1" + } + ], + "id": 1045, + "name": "VariableDeclaration", + "src": "15514:9:1" + } + ], + "id": 1046, + "name": "ParameterList", + "src": "15502:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1047, + "name": "ElementaryTypeName", + "src": "15548:7:1" + } + ], + "id": 1048, + "name": "VariableDeclaration", + "src": "15548:7:1" + } + ], + "id": 1049, + "name": "ParameterList", + "src": "15547:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1050, + "name": "Identifier", + "src": "15567:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1051, + "name": "Identifier", + "src": "15575:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1052, + "name": "Literal", + "src": "15579:1:1" + } + ], + "id": 1053, + "name": "BinaryOperation", + "src": "15575:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: modulo by zero\"", + "value": "SafeMath: modulo by zero" + }, + "id": 1054, + "name": "Literal", + "src": "15582:26:1" + } + ], + "id": 1055, + "name": "FunctionCall", + "src": "15567:42:1" + } + ], + "id": 1056, + "name": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "attributes": { + "functionReturnParameters": 1049 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1043, + "type": "uint256", + "value": "a" + }, + "id": 1057, + "name": "Identifier", + "src": "15626:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1058, + "name": "Identifier", + "src": "15630:1:1" + } + ], + "id": 1059, + "name": "BinaryOperation", + "src": "15626:5:1" + } + ], + "id": 1060, + "name": "Return", + "src": "15619:12:1" + } + ], + "id": 1061, + "name": "Block", + "src": "15557:81:1" + } + ], + "id": 1062, + "name": "FunctionDefinition", + "src": "15490:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1063, + "name": "StructuredDocumentation", + "src": "15644:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1064, + "name": "ElementaryTypeName", + "src": "16115:7:1" + } + ], + "id": 1065, + "name": "VariableDeclaration", + "src": "16115:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1066, + "name": "ElementaryTypeName", + "src": "16126:7:1" + } + ], + "id": 1067, + "name": "VariableDeclaration", + "src": "16126:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1086, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1068, + "name": "ElementaryTypeName", + "src": "16137:6:1" + } + ], + "id": 1069, + "name": "VariableDeclaration", + "src": "16137:26:1" + } + ], + "id": 1070, + "name": "ParameterList", + "src": "16114:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1071, + "name": "ElementaryTypeName", + "src": "16188:7:1" + } + ], + "id": 1072, + "name": "VariableDeclaration", + "src": "16188:7:1" + } + ], + "id": 1073, + "name": "ParameterList", + "src": "16187:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1074, + "name": "Identifier", + "src": "16207:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1075, + "name": "Identifier", + "src": "16215:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1076, + "name": "Identifier", + "src": "16220:1:1" + } + ], + "id": 1077, + "name": "BinaryOperation", + "src": "16215:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1069, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1078, + "name": "Identifier", + "src": "16223:12:1" + } + ], + "id": 1079, + "name": "FunctionCall", + "src": "16207:29:1" + } + ], + "id": 1080, + "name": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "attributes": { + "functionReturnParameters": 1073 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1081, + "name": "Identifier", + "src": "16253:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1082, + "name": "Identifier", + "src": "16257:1:1" + } + ], + "id": 1083, + "name": "BinaryOperation", + "src": "16253:5:1" + } + ], + "id": 1084, + "name": "Return", + "src": "16246:12:1" + } + ], + "id": 1085, + "name": "Block", + "src": "16197:68:1" + } + ], + "id": 1086, + "name": "FunctionDefinition", + "src": "16102:163:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1087, + "name": "StructuredDocumentation", + "src": "16271:646:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1088, + "name": "ElementaryTypeName", + "src": "16935:7:1" + } + ], + "id": 1089, + "name": "VariableDeclaration", + "src": "16935:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1090, + "name": "ElementaryTypeName", + "src": "16946:7:1" + } + ], + "id": 1091, + "name": "VariableDeclaration", + "src": "16946:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1110, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1092, + "name": "ElementaryTypeName", + "src": "16957:6:1" + } + ], + "id": 1093, + "name": "VariableDeclaration", + "src": "16957:26:1" + } + ], + "id": 1094, + "name": "ParameterList", + "src": "16934:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1095, + "name": "ElementaryTypeName", + "src": "17008:7:1" + } + ], + "id": 1096, + "name": "VariableDeclaration", + "src": "17008:7:1" + } + ], + "id": 1097, + "name": "ParameterList", + "src": "17007:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1098, + "name": "Identifier", + "src": "17027:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1099, + "name": "Identifier", + "src": "17035:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1100, + "name": "Literal", + "src": "17039:1:1" + } + ], + "id": 1101, + "name": "BinaryOperation", + "src": "17035:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1093, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1102, + "name": "Identifier", + "src": "17042:12:1" + } + ], + "id": 1103, + "name": "FunctionCall", + "src": "17027:28:1" + } + ], + "id": 1104, + "name": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1097 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1089, + "type": "uint256", + "value": "a" + }, + "id": 1105, + "name": "Identifier", + "src": "17072:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1106, + "name": "Identifier", + "src": "17076:1:1" + } + ], + "id": 1107, + "name": "BinaryOperation", + "src": "17072:5:1" + } + ], + "id": 1108, + "name": "Return", + "src": "17065:12:1" + } + ], + "id": 1109, + "name": "Block", + "src": "17017:67:1" + } + ], + "id": 1110, + "name": "FunctionDefinition", + "src": "16922:162:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1111, + "name": "StructuredDocumentation", + "src": "17090:635:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1112, + "name": "ElementaryTypeName", + "src": "17743:7:1" + } + ], + "id": 1113, + "name": "VariableDeclaration", + "src": "17743:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1114, + "name": "ElementaryTypeName", + "src": "17754:7:1" + } + ], + "id": 1115, + "name": "VariableDeclaration", + "src": "17754:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1134, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1116, + "name": "ElementaryTypeName", + "src": "17765:6:1" + } + ], + "id": 1117, + "name": "VariableDeclaration", + "src": "17765:26:1" + } + ], + "id": 1118, + "name": "ParameterList", + "src": "17742:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1119, + "name": "ElementaryTypeName", + "src": "17816:7:1" + } + ], + "id": 1120, + "name": "VariableDeclaration", + "src": "17816:7:1" + } + ], + "id": 1121, + "name": "ParameterList", + "src": "17815:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1122, + "name": "Identifier", + "src": "17835:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1123, + "name": "Identifier", + "src": "17843:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1124, + "name": "Literal", + "src": "17847:1:1" + } + ], + "id": 1125, + "name": "BinaryOperation", + "src": "17843:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1117, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1126, + "name": "Identifier", + "src": "17850:12:1" + } + ], + "id": 1127, + "name": "FunctionCall", + "src": "17835:28:1" + } + ], + "id": 1128, + "name": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1121 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "uint256", + "value": "a" + }, + "id": 1129, + "name": "Identifier", + "src": "17880:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1130, + "name": "Identifier", + "src": "17884:1:1" + } + ], + "id": 1131, + "name": "BinaryOperation", + "src": "17880:5:1" + } + ], + "id": 1132, + "name": "Return", + "src": "17873:12:1" + } + ], + "id": 1133, + "name": "Block", + "src": "17825:67:1" + } + ], + "id": 1134, + "name": "FunctionDefinition", + "src": "17730:162:1" + } + ], + "id": 1135, + "name": "ContractDefinition", + "src": "11300:6594:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 1136, + "name": "PragmaDirective", + "src": "17947:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Collection of functions related to the address type" + }, + "id": 1137, + "name": "StructuredDocumentation", + "src": "17980:67:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isContract", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1138, + "name": "StructuredDocumentation", + "src": "18070:565:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "account", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1139, + "name": "ElementaryTypeName", + "src": "18660:7:1" + } + ], + "id": 1140, + "name": "VariableDeclaration", + "src": "18660:15:1" + } + ], + "id": 1141, + "name": "ParameterList", + "src": "18659:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1142, + "name": "ElementaryTypeName", + "src": "18700:4:1" + } + ], + "id": 1143, + "name": "VariableDeclaration", + "src": "18700:4:1" + } + ], + "id": 1144, + "name": "ParameterList", + "src": "18699:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1146 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "size", + "scope": 1153, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1145, + "name": "ElementaryTypeName", + "src": "18903:7:1" + } + ], + "id": 1146, + "name": "VariableDeclaration", + "src": "18903:12:1" + } + ], + "id": 1147, + "name": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "operations": "{ size := extcodesize(account) }" + }, + "children": [], + "id": 1148, + "name": "InlineAssembly", + "src": "18981:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1144 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1146, + "type": "uint256", + "value": "size" + }, + "id": 1149, + "name": "Identifier", + "src": "19038:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1150, + "name": "Literal", + "src": "19045:1:1" + } + ], + "id": 1151, + "name": "BinaryOperation", + "src": "19038:8:1" + } + ], + "id": 1152, + "name": "Return", + "src": "19031:15:1" + } + ], + "id": 1153, + "name": "Block", + "src": "18706:347:1" + } + ], + "id": 1154, + "name": "FunctionDefinition", + "src": "18640:413:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sendValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1155, + "name": "StructuredDocumentation", + "src": "19059:906:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "recipient", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 1156, + "name": "ElementaryTypeName", + "src": "19989:15:1" + } + ], + "id": 1157, + "name": "VariableDeclaration", + "src": "19989:25:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "amount", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1158, + "name": "ElementaryTypeName", + "src": "20016:7:1" + } + ], + "id": 1159, + "name": "VariableDeclaration", + "src": "20016:14:1" + } + ], + "id": 1160, + "name": "ParameterList", + "src": "19988:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1161, + "name": "ParameterList", + "src": "20041:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1162, + "name": "Identifier", + "src": "20051:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1163, + "name": "ElementaryTypeName", + "src": "20059:7:1" + } + ], + "id": 1164, + "name": "ElementaryTypeNameExpression", + "src": "20059:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1165, + "name": "Identifier", + "src": "20067:4:1" + } + ], + "id": 1166, + "name": "FunctionCall", + "src": "20059:13:1" + } + ], + "id": 1167, + "name": "MemberAccess", + "src": "20059:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1168, + "name": "Identifier", + "src": "20084:6:1" + } + ], + "id": 1169, + "name": "BinaryOperation", + "src": "20059:31:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance\"", + "value": "Address: insufficient balance" + }, + "id": 1170, + "name": "Literal", + "src": "20092:31:1" + } + ], + "id": 1171, + "name": "FunctionCall", + "src": "20051:73:1" + } + ], + "id": 1172, + "name": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "attributes": { + "assignments": [ + 1174, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1187, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1173, + "name": "ElementaryTypeName", + "src": "20213:4:1" + } + ], + "id": 1174, + "name": "VariableDeclaration", + "src": "20213:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1157, + "type": "address payable", + "value": "recipient" + }, + "id": 1175, + "name": "Identifier", + "src": "20231:9:1" + } + ], + "id": 1176, + "name": "MemberAccess", + "src": "20231:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1177, + "name": "Identifier", + "src": "20254:6:1" + } + ], + "id": 1178, + "name": "FunctionCallOptions", + "src": "20231:31:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 1179, + "name": "Literal", + "src": "20263:2:1" + } + ], + "id": 1180, + "name": "FunctionCall", + "src": "20231:35:1" + } + ], + "id": 1181, + "name": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1182, + "name": "Identifier", + "src": "20276:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1174, + "type": "bool", + "value": "success" + }, + "id": 1183, + "name": "Identifier", + "src": "20284:7:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: unable to send value, recipient may have reverted\"", + "value": "Address: unable to send value, recipient may have reverted" + }, + "id": 1184, + "name": "Literal", + "src": "20293:60:1" + } + ], + "id": 1185, + "name": "FunctionCall", + "src": "20276:78:1" + } + ], + "id": 1186, + "name": "ExpressionStatement", + "src": "20276:78:1" + } + ], + "id": 1187, + "name": "Block", + "src": "20041:320:1" + } + ], + "id": 1188, + "name": "FunctionDefinition", + "src": "19970:391:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1189, + "name": "StructuredDocumentation", + "src": "20367:730:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1205, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1190, + "name": "ElementaryTypeName", + "src": "21124:7:1" + } + ], + "id": 1191, + "name": "VariableDeclaration", + "src": "21124:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1192, + "name": "ElementaryTypeName", + "src": "21140:5:1" + } + ], + "id": 1193, + "name": "VariableDeclaration", + "src": "21140:17:1" + } + ], + "id": 1194, + "name": "ParameterList", + "src": "21123:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1195, + "name": "ElementaryTypeName", + "src": "21177:5:1" + } + ], + "id": 1196, + "name": "VariableDeclaration", + "src": "21177:12:1" + } + ], + "id": 1197, + "name": "ParameterList", + "src": "21176:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1197 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionCall" + }, + "id": 1198, + "name": "Identifier", + "src": "21206:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1191, + "type": "address", + "value": "target" + }, + "id": 1199, + "name": "Identifier", + "src": "21219:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1193, + "type": "bytes memory", + "value": "data" + }, + "id": 1200, + "name": "Identifier", + "src": "21227:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call failed\"", + "value": "Address: low-level call failed" + }, + "id": 1201, + "name": "Literal", + "src": "21233:32:1" + } + ], + "id": 1202, + "name": "FunctionCall", + "src": "21206:60:1" + } + ], + "id": 1203, + "name": "Return", + "src": "21199:67:1" + } + ], + "id": 1204, + "name": "Block", + "src": "21191:82:1" + } + ], + "id": 1205, + "name": "FunctionDefinition", + "src": "21102:171:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1206, + "name": "StructuredDocumentation", + "src": "21279:211:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1225, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1207, + "name": "ElementaryTypeName", + "src": "21517:7:1" + } + ], + "id": 1208, + "name": "VariableDeclaration", + "src": "21517:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1209, + "name": "ElementaryTypeName", + "src": "21533:5:1" + } + ], + "id": 1210, + "name": "VariableDeclaration", + "src": "21533:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1211, + "name": "ElementaryTypeName", + "src": "21552:6:1" + } + ], + "id": 1212, + "name": "VariableDeclaration", + "src": "21552:26:1" + } + ], + "id": 1213, + "name": "ParameterList", + "src": "21516:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1214, + "name": "ElementaryTypeName", + "src": "21598:5:1" + } + ], + "id": 1215, + "name": "VariableDeclaration", + "src": "21598:12:1" + } + ], + "id": 1216, + "name": "ParameterList", + "src": "21597:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1216 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1217, + "name": "Identifier", + "src": "21629:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1208, + "type": "address", + "value": "target" + }, + "id": 1218, + "name": "Identifier", + "src": "21651:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1210, + "type": "bytes memory", + "value": "data" + }, + "id": 1219, + "name": "Identifier", + "src": "21659:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1220, + "name": "Literal", + "src": "21665:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1212, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1221, + "name": "Identifier", + "src": "21668:12:1" + } + ], + "id": 1222, + "name": "FunctionCall", + "src": "21629:52:1" + } + ], + "id": 1223, + "name": "Return", + "src": "21622:59:1" + } + ], + "id": 1224, + "name": "Block", + "src": "21612:76:1" + } + ], + "id": 1225, + "name": "FunctionDefinition", + "src": "21495:193:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1226, + "name": "StructuredDocumentation", + "src": "21694:351:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1227, + "name": "ElementaryTypeName", + "src": "22081:7:1" + } + ], + "id": 1228, + "name": "VariableDeclaration", + "src": "22081:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1229, + "name": "ElementaryTypeName", + "src": "22097:5:1" + } + ], + "id": 1230, + "name": "VariableDeclaration", + "src": "22097:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1231, + "name": "ElementaryTypeName", + "src": "22116:7:1" + } + ], + "id": 1232, + "name": "VariableDeclaration", + "src": "22116:13:1" + } + ], + "id": 1233, + "name": "ParameterList", + "src": "22080:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1234, + "name": "ElementaryTypeName", + "src": "22149:5:1" + } + ], + "id": 1235, + "name": "VariableDeclaration", + "src": "22149:12:1" + } + ], + "id": 1236, + "name": "ParameterList", + "src": "22148:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1236 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1237, + "name": "Identifier", + "src": "22180:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1228, + "type": "address", + "value": "target" + }, + "id": 1238, + "name": "Identifier", + "src": "22202:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1230, + "type": "bytes memory", + "value": "data" + }, + "id": 1239, + "name": "Identifier", + "src": "22210:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1232, + "type": "uint256", + "value": "value" + }, + "id": 1240, + "name": "Identifier", + "src": "22216:5:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call with value failed\"", + "value": "Address: low-level call with value failed" + }, + "id": 1241, + "name": "Literal", + "src": "22223:43:1" + } + ], + "id": 1242, + "name": "FunctionCall", + "src": "22180:87:1" + } + ], + "id": 1243, + "name": "Return", + "src": "22173:94:1" + } + ], + "id": 1244, + "name": "Block", + "src": "22163:111:1" + } + ], + "id": 1245, + "name": "FunctionDefinition", + "src": "22050:224:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1246, + "name": "StructuredDocumentation", + "src": "22280:237:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1247, + "name": "ElementaryTypeName", + "src": "22553:7:1" + } + ], + "id": 1248, + "name": "VariableDeclaration", + "src": "22553:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1249, + "name": "ElementaryTypeName", + "src": "22569:5:1" + } + ], + "id": 1250, + "name": "VariableDeclaration", + "src": "22569:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1251, + "name": "ElementaryTypeName", + "src": "22588:7:1" + } + ], + "id": 1252, + "name": "VariableDeclaration", + "src": "22588:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1253, + "name": "ElementaryTypeName", + "src": "22603:6:1" + } + ], + "id": 1254, + "name": "VariableDeclaration", + "src": "22603:26:1" + } + ], + "id": 1255, + "name": "ParameterList", + "src": "22552:78:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1256, + "name": "ElementaryTypeName", + "src": "22649:5:1" + } + ], + "id": 1257, + "name": "VariableDeclaration", + "src": "22649:12:1" + } + ], + "id": 1258, + "name": "ParameterList", + "src": "22648:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1259, + "name": "Identifier", + "src": "22673:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1260, + "name": "ElementaryTypeName", + "src": "22681:7:1" + } + ], + "id": 1261, + "name": "ElementaryTypeNameExpression", + "src": "22681:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1262, + "name": "Identifier", + "src": "22689:4:1" + } + ], + "id": 1263, + "name": "FunctionCall", + "src": "22681:13:1" + } + ], + "id": 1264, + "name": "MemberAccess", + "src": "22681:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1265, + "name": "Identifier", + "src": "22706:5:1" + } + ], + "id": 1266, + "name": "BinaryOperation", + "src": "22681:30:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance for call\"", + "value": "Address: insufficient balance for call" + }, + "id": 1267, + "name": "Literal", + "src": "22713:40:1" + } + ], + "id": 1268, + "name": "FunctionCall", + "src": "22673:81:1" + } + ], + "id": 1269, + "name": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1270, + "name": "Identifier", + "src": "22764:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1271, + "name": "Identifier", + "src": "22772:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1272, + "name": "Identifier", + "src": "22783:6:1" + } + ], + "id": 1273, + "name": "FunctionCall", + "src": "22772:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: call to non-contract\"", + "value": "Address: call to non-contract" + }, + "id": 1274, + "name": "Literal", + "src": "22792:31:1" + } + ], + "id": 1275, + "name": "FunctionCall", + "src": "22764:60:1" + } + ], + "id": 1276, + "name": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "attributes": { + "assignments": [ + 1278, + 1280 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1294, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1277, + "name": "ElementaryTypeName", + "src": "22895:4:1" + } + ], + "id": 1278, + "name": "VariableDeclaration", + "src": "22895:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1279, + "name": "ElementaryTypeName", + "src": "22909:5:1" + } + ], + "id": 1280, + "name": "VariableDeclaration", + "src": "22909:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1281, + "name": "Identifier", + "src": "22936:6:1" + } + ], + "id": 1282, + "name": "MemberAccess", + "src": "22936:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1283, + "name": "Identifier", + "src": "22956:5:1" + } + ], + "id": 1284, + "name": "FunctionCallOptions", + "src": "22936:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1250, + "type": "bytes memory", + "value": "data" + }, + "id": 1285, + "name": "Identifier", + "src": "22964:4:1" + } + ], + "id": 1286, + "name": "FunctionCall", + "src": "22936:33:1" + } + ], + "id": 1287, + "name": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "attributes": { + "functionReturnParameters": 1258 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1288, + "name": "Identifier", + "src": "22986:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1278, + "type": "bool", + "value": "success" + }, + "id": 1289, + "name": "Identifier", + "src": "23004:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1280, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1290, + "name": "Identifier", + "src": "23013:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1254, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1291, + "name": "Identifier", + "src": "23025:12:1" + } + ], + "id": 1292, + "name": "FunctionCall", + "src": "22986:52:1" + } + ], + "id": 1293, + "name": "Return", + "src": "22979:59:1" + } + ], + "id": 1294, + "name": "Block", + "src": "22663:382:1" + } + ], + "id": 1295, + "name": "FunctionDefinition", + "src": "22522:523:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1296, + "name": "StructuredDocumentation", + "src": "23051:166:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1312, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1297, + "name": "ElementaryTypeName", + "src": "23250:7:1" + } + ], + "id": 1298, + "name": "VariableDeclaration", + "src": "23250:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1299, + "name": "ElementaryTypeName", + "src": "23266:5:1" + } + ], + "id": 1300, + "name": "VariableDeclaration", + "src": "23266:17:1" + } + ], + "id": 1301, + "name": "ParameterList", + "src": "23249:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1302, + "name": "ElementaryTypeName", + "src": "23308:5:1" + } + ], + "id": 1303, + "name": "VariableDeclaration", + "src": "23308:12:1" + } + ], + "id": 1304, + "name": "ParameterList", + "src": "23307:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1304 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "type": "function (address,bytes memory,string memory) view returns (bytes memory)", + "value": "functionStaticCall" + }, + "id": 1305, + "name": "Identifier", + "src": "23339:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1298, + "type": "address", + "value": "target" + }, + "id": 1306, + "name": "Identifier", + "src": "23358:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1300, + "type": "bytes memory", + "value": "data" + }, + "id": 1307, + "name": "Identifier", + "src": "23366:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level static call failed\"", + "value": "Address: low-level static call failed" + }, + "id": 1308, + "name": "Literal", + "src": "23372:39:1" + } + ], + "id": 1309, + "name": "FunctionCall", + "src": "23339:73:1" + } + ], + "id": 1310, + "name": "Return", + "src": "23332:80:1" + } + ], + "id": 1311, + "name": "Block", + "src": "23322:97:1" + } + ], + "id": 1312, + "name": "FunctionDefinition", + "src": "23222:197:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1313, + "name": "StructuredDocumentation", + "src": "23425:173:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1347, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1314, + "name": "ElementaryTypeName", + "src": "23631:7:1" + } + ], + "id": 1315, + "name": "VariableDeclaration", + "src": "23631:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1316, + "name": "ElementaryTypeName", + "src": "23647:5:1" + } + ], + "id": 1317, + "name": "VariableDeclaration", + "src": "23647:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1318, + "name": "ElementaryTypeName", + "src": "23666:6:1" + } + ], + "id": 1319, + "name": "VariableDeclaration", + "src": "23666:26:1" + } + ], + "id": 1320, + "name": "ParameterList", + "src": "23630:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1321, + "name": "ElementaryTypeName", + "src": "23717:5:1" + } + ], + "id": 1322, + "name": "VariableDeclaration", + "src": "23717:12:1" + } + ], + "id": 1323, + "name": "ParameterList", + "src": "23716:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1324, + "name": "Identifier", + "src": "23741:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1325, + "name": "Identifier", + "src": "23749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1326, + "name": "Identifier", + "src": "23760:6:1" + } + ], + "id": 1327, + "name": "FunctionCall", + "src": "23749:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: static call to non-contract\"", + "value": "Address: static call to non-contract" + }, + "id": 1328, + "name": "Literal", + "src": "23769:38:1" + } + ], + "id": 1329, + "name": "FunctionCall", + "src": "23741:67:1" + } + ], + "id": 1330, + "name": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "attributes": { + "assignments": [ + 1332, + 1334 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1346, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1331, + "name": "ElementaryTypeName", + "src": "23879:4:1" + } + ], + "id": 1332, + "name": "VariableDeclaration", + "src": "23879:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1346, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1333, + "name": "ElementaryTypeName", + "src": "23893:5:1" + } + ], + "id": 1334, + "name": "VariableDeclaration", + "src": "23893:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "staticcall", + "type": "function (bytes memory) view returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1335, + "name": "Identifier", + "src": "23920:6:1" + } + ], + "id": 1336, + "name": "MemberAccess", + "src": "23920:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1317, + "type": "bytes memory", + "value": "data" + }, + "id": 1337, + "name": "Identifier", + "src": "23938:4:1" + } + ], + "id": 1338, + "name": "FunctionCall", + "src": "23920:23:1" + } + ], + "id": 1339, + "name": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "attributes": { + "functionReturnParameters": 1323 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1340, + "name": "Identifier", + "src": "23960:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1332, + "type": "bool", + "value": "success" + }, + "id": 1341, + "name": "Identifier", + "src": "23978:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1334, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1342, + "name": "Identifier", + "src": "23987:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1319, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1343, + "name": "Identifier", + "src": "23999:12:1" + } + ], + "id": 1344, + "name": "FunctionCall", + "src": "23960:52:1" + } + ], + "id": 1345, + "name": "Return", + "src": "23953:59:1" + } + ], + "id": 1346, + "name": "Block", + "src": "23731:288:1" + } + ], + "id": 1347, + "name": "FunctionDefinition", + "src": "23603:416:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1348, + "name": "StructuredDocumentation", + "src": "24025:168:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1364, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1349, + "name": "ElementaryTypeName", + "src": "24228:7:1" + } + ], + "id": 1350, + "name": "VariableDeclaration", + "src": "24228:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1351, + "name": "ElementaryTypeName", + "src": "24244:5:1" + } + ], + "id": 1352, + "name": "VariableDeclaration", + "src": "24244:17:1" + } + ], + "id": 1353, + "name": "ParameterList", + "src": "24227:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1354, + "name": "ElementaryTypeName", + "src": "24281:5:1" + } + ], + "id": 1355, + "name": "VariableDeclaration", + "src": "24281:12:1" + } + ], + "id": 1356, + "name": "ParameterList", + "src": "24280:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1356 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionDelegateCall" + }, + "id": 1357, + "name": "Identifier", + "src": "24312:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1350, + "type": "address", + "value": "target" + }, + "id": 1358, + "name": "Identifier", + "src": "24333:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1352, + "type": "bytes memory", + "value": "data" + }, + "id": 1359, + "name": "Identifier", + "src": "24341:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level delegate call failed\"", + "value": "Address: low-level delegate call failed" + }, + "id": 1360, + "name": "Literal", + "src": "24347:41:1" + } + ], + "id": 1361, + "name": "FunctionCall", + "src": "24312:77:1" + } + ], + "id": 1362, + "name": "Return", + "src": "24305:84:1" + } + ], + "id": 1363, + "name": "Block", + "src": "24295:101:1" + } + ], + "id": 1364, + "name": "FunctionDefinition", + "src": "24198:198:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1365, + "name": "StructuredDocumentation", + "src": "24402:175:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1399, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1366, + "name": "ElementaryTypeName", + "src": "24612:7:1" + } + ], + "id": 1367, + "name": "VariableDeclaration", + "src": "24612:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1368, + "name": "ElementaryTypeName", + "src": "24628:5:1" + } + ], + "id": 1369, + "name": "VariableDeclaration", + "src": "24628:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1370, + "name": "ElementaryTypeName", + "src": "24647:6:1" + } + ], + "id": 1371, + "name": "VariableDeclaration", + "src": "24647:26:1" + } + ], + "id": 1372, + "name": "ParameterList", + "src": "24611:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1373, + "name": "ElementaryTypeName", + "src": "24693:5:1" + } + ], + "id": 1374, + "name": "VariableDeclaration", + "src": "24693:12:1" + } + ], + "id": 1375, + "name": "ParameterList", + "src": "24692:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1376, + "name": "Identifier", + "src": "24717:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1377, + "name": "Identifier", + "src": "24725:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1378, + "name": "Identifier", + "src": "24736:6:1" + } + ], + "id": 1379, + "name": "FunctionCall", + "src": "24725:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: delegate call to non-contract\"", + "value": "Address: delegate call to non-contract" + }, + "id": 1380, + "name": "Literal", + "src": "24745:40:1" + } + ], + "id": 1381, + "name": "FunctionCall", + "src": "24717:69:1" + } + ], + "id": 1382, + "name": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "attributes": { + "assignments": [ + 1384, + 1386 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1398, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1383, + "name": "ElementaryTypeName", + "src": "24857:4:1" + } + ], + "id": 1384, + "name": "VariableDeclaration", + "src": "24857:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1398, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1385, + "name": "ElementaryTypeName", + "src": "24871:5:1" + } + ], + "id": 1386, + "name": "VariableDeclaration", + "src": "24871:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "delegatecall", + "type": "function (bytes memory) returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1387, + "name": "Identifier", + "src": "24898:6:1" + } + ], + "id": 1388, + "name": "MemberAccess", + "src": "24898:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1369, + "type": "bytes memory", + "value": "data" + }, + "id": 1389, + "name": "Identifier", + "src": "24918:4:1" + } + ], + "id": 1390, + "name": "FunctionCall", + "src": "24898:25:1" + } + ], + "id": 1391, + "name": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "attributes": { + "functionReturnParameters": 1375 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1392, + "name": "Identifier", + "src": "24940:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1384, + "type": "bool", + "value": "success" + }, + "id": 1393, + "name": "Identifier", + "src": "24958:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1386, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1394, + "name": "Identifier", + "src": "24967:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1371, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1395, + "name": "Identifier", + "src": "24979:12:1" + } + ], + "id": 1396, + "name": "FunctionCall", + "src": "24940:52:1" + } + ], + "id": 1397, + "name": "Return", + "src": "24933:59:1" + } + ], + "id": 1398, + "name": "Block", + "src": "24707:292:1" + } + ], + "id": 1399, + "name": "FunctionDefinition", + "src": "24582:417:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_verifyCallResult", + "scope": 1430, + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1429, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1400, + "name": "ElementaryTypeName", + "src": "25032:4:1" + } + ], + "id": 1401, + "name": "VariableDeclaration", + "src": "25032:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1402, + "name": "ElementaryTypeName", + "src": "25046:5:1" + } + ], + "id": 1403, + "name": "VariableDeclaration", + "src": "25046:23:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1404, + "name": "ElementaryTypeName", + "src": "25071:6:1" + } + ], + "id": 1405, + "name": "VariableDeclaration", + "src": "25071:26:1" + } + ], + "id": 1406, + "name": "ParameterList", + "src": "25031:67:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1407, + "name": "ElementaryTypeName", + "src": "25120:5:1" + } + ], + "id": 1408, + "name": "VariableDeclaration", + "src": "25120:12:1" + } + ], + "id": 1409, + "name": "ParameterList", + "src": "25119:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1401, + "type": "bool", + "value": "success" + }, + "id": 1410, + "name": "Identifier", + "src": "25148:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1409 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1411, + "name": "Identifier", + "src": "25178:10:1" + } + ], + "id": 1412, + "name": "Return", + "src": "25171:17:1" + } + ], + "id": 1413, + "name": "Block", + "src": "25157:42:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1414, + "name": "Identifier", + "src": "25289:10:1" + } + ], + "id": 1415, + "name": "MemberAccess", + "src": "25289:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1416, + "name": "Literal", + "src": "25309:1:1" + } + ], + "id": 1417, + "name": "BinaryOperation", + "src": "25289:21:1" + }, + { + "children": [ + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "operations": "{\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n}" + }, + "children": [], + "id": 1418, + "name": "InlineAssembly", + "src": "25487:154:1" + } + ], + "id": 1419, + "name": "Block", + "src": "25312:343:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "type": "function (string memory) pure", + "value": "revert" + }, + "id": 1420, + "name": "Identifier", + "src": "25679:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1405, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1421, + "name": "Identifier", + "src": "25686:12:1" + } + ], + "id": 1422, + "name": "FunctionCall", + "src": "25679:20:1" + } + ], + "id": 1423, + "name": "ExpressionStatement", + "src": "25679:20:1" + } + ], + "id": 1424, + "name": "Block", + "src": "25661:53:1" + } + ], + "id": 1425, + "name": "IfStatement", + "src": "25285:429:1" + } + ], + "id": 1426, + "name": "Block", + "src": "25205:519:1" + } + ], + "id": 1427, + "name": "IfStatement", + "src": "25144:580:1" + } + ], + "id": 1428, + "name": "Block", + "src": "25134:596:1" + } + ], + "id": 1429, + "name": "FunctionDefinition", + "src": "25005:725:1" + } + ], + "id": 1430, + "name": "ContractDefinition", + "src": "18048:7684:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1431, + "name": "PragmaDirective", + "src": "25791:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "id": 1432, + "name": "StructuredDocumentation", + "src": "25824:686:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Set", + "name": "Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_values", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "bytes32[]" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1433, + "name": "ElementaryTypeName", + "src": "27033:7:1" + } + ], + "id": 1434, + "name": "ArrayTypeName", + "src": "27033:9:1" + } + ], + "id": 1435, + "name": "VariableDeclaration", + "src": "27033:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1436, + "name": "ElementaryTypeName", + "src": "27193:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1437, + "name": "ElementaryTypeName", + "src": "27204:7:1" + } + ], + "id": 1438, + "name": "Mapping", + "src": "27184:28:1" + } + ], + "id": 1439, + "name": "VariableDeclaration", + "src": "27184:37:1" + } + ], + "id": 1440, + "name": "StructDefinition", + "src": "26979:249:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1441, + "name": "StructuredDocumentation", + "src": "27234:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1481, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1442, + "name": "UserDefinedTypeName", + "src": "27412:3:1" + } + ], + "id": 1443, + "name": "VariableDeclaration", + "src": "27412:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1444, + "name": "ElementaryTypeName", + "src": "27429:7:1" + } + ], + "id": 1445, + "name": "VariableDeclaration", + "src": "27429:13:1" + } + ], + "id": 1446, + "name": "ParameterList", + "src": "27411:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1447, + "name": "ElementaryTypeName", + "src": "27461:4:1" + } + ], + "id": 1448, + "name": "VariableDeclaration", + "src": "27461:4:1" + } + ], + "id": 1449, + "name": "ParameterList", + "src": "27460:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1450, + "name": "Identifier", + "src": "27482:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1451, + "name": "Identifier", + "src": "27492:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1452, + "name": "Identifier", + "src": "27497:5:1" + } + ], + "id": 1453, + "name": "FunctionCall", + "src": "27482:21:1" + } + ], + "id": 1454, + "name": "UnaryOperation", + "src": "27481:22:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1455, + "name": "Identifier", + "src": "27519:3:1" + } + ], + "id": 1458, + "name": "MemberAccess", + "src": "27519:11:1" + } + ], + "id": 1459, + "name": "MemberAccess", + "src": "27519:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1460, + "name": "Identifier", + "src": "27536:5:1" + } + ], + "id": 1461, + "name": "FunctionCall", + "src": "27519:23:1" + } + ], + "id": 1462, + "name": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1463, + "name": "Identifier", + "src": "27677:3:1" + } + ], + "id": 1466, + "name": "MemberAccess", + "src": "27677:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1465, + "name": "Identifier", + "src": "27690:5:1" + } + ], + "id": 1467, + "name": "IndexAccess", + "src": "27677:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1468, + "name": "Identifier", + "src": "27699:3:1" + } + ], + "id": 1469, + "name": "MemberAccess", + "src": "27699:11:1" + } + ], + "id": 1470, + "name": "MemberAccess", + "src": "27699:18:1" + } + ], + "id": 1471, + "name": "Assignment", + "src": "27677:40:1" + } + ], + "id": 1472, + "name": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1473, + "name": "Literal", + "src": "27738:4:1" + } + ], + "id": 1474, + "name": "Return", + "src": "27731:11:1" + } + ], + "id": 1475, + "name": "Block", + "src": "27505:248:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1476, + "name": "Literal", + "src": "27780:5:1" + } + ], + "id": 1477, + "name": "Return", + "src": "27773:12:1" + } + ], + "id": 1478, + "name": "Block", + "src": "27759:37:1" + } + ], + "id": 1479, + "name": "IfStatement", + "src": "27477:319:1" + } + ], + "id": 1480, + "name": "Block", + "src": "27467:335:1" + } + ], + "id": 1481, + "name": "FunctionDefinition", + "src": "27398:404:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1482, + "name": "StructuredDocumentation", + "src": "27808:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1561, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1483, + "name": "UserDefinedTypeName", + "src": "27987:3:1" + } + ], + "id": 1484, + "name": "VariableDeclaration", + "src": "27987:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1485, + "name": "ElementaryTypeName", + "src": "28004:7:1" + } + ], + "id": 1486, + "name": "VariableDeclaration", + "src": "28004:13:1" + } + ], + "id": 1487, + "name": "ParameterList", + "src": "27986:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1488, + "name": "ElementaryTypeName", + "src": "28036:4:1" + } + ], + "id": 1489, + "name": "VariableDeclaration", + "src": "28036:4:1" + } + ], + "id": 1490, + "name": "ParameterList", + "src": "28035:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1492 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "valueIndex", + "scope": 1560, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1491, + "name": "ElementaryTypeName", + "src": "28152:7:1" + } + ], + "id": 1492, + "name": "VariableDeclaration", + "src": "28152:18:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1493, + "name": "Identifier", + "src": "28173:3:1" + } + ], + "id": 1494, + "name": "MemberAccess", + "src": "28173:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1495, + "name": "Identifier", + "src": "28186:5:1" + } + ], + "id": 1496, + "name": "IndexAccess", + "src": "28173:19:1" + } + ], + "id": 1497, + "name": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1498, + "name": "Identifier", + "src": "28207:10:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1499, + "name": "Literal", + "src": "28221:1:1" + } + ], + "id": 1500, + "name": "BinaryOperation", + "src": "28207:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1501, + "name": "ElementaryTypeName", + "src": "28564:7:1" + } + ], + "id": 1502, + "name": "VariableDeclaration", + "src": "28564:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1503, + "name": "Identifier", + "src": "28588:10:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1504, + "name": "Literal", + "src": "28601:1:1" + } + ], + "id": 1505, + "name": "BinaryOperation", + "src": "28588:14:1" + } + ], + "id": 1506, + "name": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "attributes": { + "assignments": [ + 1508 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1507, + "name": "ElementaryTypeName", + "src": "28616:7:1" + } + ], + "id": 1508, + "name": "VariableDeclaration", + "src": "28616:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1509, + "name": "Identifier", + "src": "28636:3:1" + } + ], + "id": 1510, + "name": "MemberAccess", + "src": "28636:11:1" + } + ], + "id": 1511, + "name": "MemberAccess", + "src": "28636:18:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1512, + "name": "Literal", + "src": "28657:1:1" + } + ], + "id": 1513, + "name": "BinaryOperation", + "src": "28636:22:1" + } + ], + "id": 1514, + "name": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "attributes": { + "assignments": [ + 1516 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastvalue", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1515, + "name": "ElementaryTypeName", + "src": "28898:7:1" + } + ], + "id": 1516, + "name": "VariableDeclaration", + "src": "28898:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1517, + "name": "Identifier", + "src": "28918:3:1" + } + ], + "id": 1518, + "name": "MemberAccess", + "src": "28918:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1508, + "type": "uint256", + "value": "lastIndex" + }, + "id": 1519, + "name": "Identifier", + "src": "28930:9:1" + } + ], + "id": 1520, + "name": "IndexAccess", + "src": "28918:22:1" + } + ], + "id": 1521, + "name": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1522, + "name": "Identifier", + "src": "29032:3:1" + } + ], + "id": 1525, + "name": "MemberAccess", + "src": "29032:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1524, + "name": "Identifier", + "src": "29044:13:1" + } + ], + "id": 1526, + "name": "IndexAccess", + "src": "29032:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1527, + "name": "Identifier", + "src": "29061:9:1" + } + ], + "id": 1528, + "name": "Assignment", + "src": "29032:38:1" + } + ], + "id": 1529, + "name": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1530, + "name": "Identifier", + "src": "29136:3:1" + } + ], + "id": 1533, + "name": "MemberAccess", + "src": "29136:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1532, + "name": "Identifier", + "src": "29149:9:1" + } + ], + "id": 1534, + "name": "IndexAccess", + "src": "29136:23:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1535, + "name": "Identifier", + "src": "29162:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1536, + "name": "Literal", + "src": "29178:1:1" + } + ], + "id": 1537, + "name": "BinaryOperation", + "src": "29162:17:1" + } + ], + "id": 1538, + "name": "Assignment", + "src": "29136:43:1" + } + ], + "id": 1539, + "name": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1540, + "name": "Identifier", + "src": "29285:3:1" + } + ], + "id": 1543, + "name": "MemberAccess", + "src": "29285:11:1" + } + ], + "id": 1544, + "name": "MemberAccess", + "src": "29285:15:1" + } + ], + "id": 1545, + "name": "FunctionCall", + "src": "29285:17:1" + } + ], + "id": 1546, + "name": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1547, + "name": "Identifier", + "src": "29377:3:1" + } + ], + "id": 1548, + "name": "MemberAccess", + "src": "29377:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1549, + "name": "Identifier", + "src": "29390:5:1" + } + ], + "id": 1550, + "name": "IndexAccess", + "src": "29377:19:1" + } + ], + "id": 1551, + "name": "UnaryOperation", + "src": "29370:26:1" + } + ], + "id": 1552, + "name": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1553, + "name": "Literal", + "src": "29418:4:1" + } + ], + "id": 1554, + "name": "Return", + "src": "29411:11:1" + } + ], + "id": 1555, + "name": "Block", + "src": "28224:1209:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1556, + "name": "Literal", + "src": "29460:5:1" + } + ], + "id": 1557, + "name": "Return", + "src": "29453:12:1" + } + ], + "id": 1558, + "name": "Block", + "src": "29439:37:1" + } + ], + "id": 1559, + "name": "IfStatement", + "src": "28203:1273:1" + } + ], + "id": 1560, + "name": "Block", + "src": "28042:1440:1" + } + ], + "id": 1561, + "name": "FunctionDefinition", + "src": "27970:1512:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1562, + "name": "StructuredDocumentation", + "src": "29488:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1579, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1563, + "name": "UserDefinedTypeName", + "src": "29582:3:1" + } + ], + "id": 1564, + "name": "VariableDeclaration", + "src": "29582:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1565, + "name": "ElementaryTypeName", + "src": "29599:7:1" + } + ], + "id": 1566, + "name": "VariableDeclaration", + "src": "29599:13:1" + } + ], + "id": 1567, + "name": "ParameterList", + "src": "29581:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1568, + "name": "ElementaryTypeName", + "src": "29636:4:1" + } + ], + "id": 1569, + "name": "VariableDeclaration", + "src": "29636:4:1" + } + ], + "id": 1570, + "name": "ParameterList", + "src": "29635:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1570 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1564, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1571, + "name": "Identifier", + "src": "29659:3:1" + } + ], + "id": 1572, + "name": "MemberAccess", + "src": "29659:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1566, + "type": "bytes32", + "value": "value" + }, + "id": 1573, + "name": "Identifier", + "src": "29672:5:1" + } + ], + "id": 1574, + "name": "IndexAccess", + "src": "29659:19:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1575, + "name": "Literal", + "src": "29682:1:1" + } + ], + "id": 1576, + "name": "BinaryOperation", + "src": "29659:24:1" + } + ], + "id": 1577, + "name": "Return", + "src": "29652:31:1" + } + ], + "id": 1578, + "name": "Block", + "src": "29642:48:1" + } + ], + "id": 1579, + "name": "FunctionDefinition", + "src": "29563:127:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1580, + "name": "StructuredDocumentation", + "src": "29696:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1592, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1581, + "name": "UserDefinedTypeName", + "src": "29788:3:1" + } + ], + "id": 1582, + "name": "VariableDeclaration", + "src": "29788:15:1" + } + ], + "id": 1583, + "name": "ParameterList", + "src": "29787:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1592, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1584, + "name": "ElementaryTypeName", + "src": "29827:7:1" + } + ], + "id": 1585, + "name": "VariableDeclaration", + "src": "29827:7:1" + } + ], + "id": 1586, + "name": "ParameterList", + "src": "29826:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1586 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1582, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1587, + "name": "Identifier", + "src": "29853:3:1" + } + ], + "id": 1588, + "name": "MemberAccess", + "src": "29853:11:1" + } + ], + "id": 1589, + "name": "MemberAccess", + "src": "29853:18:1" + } + ], + "id": 1590, + "name": "Return", + "src": "29846:25:1" + } + ], + "id": 1591, + "name": "Block", + "src": "29836:42:1" + } + ], + "id": 1592, + "name": "FunctionDefinition", + "src": "29771:107:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1593, + "name": "StructuredDocumentation", + "src": "29883:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1617, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1594, + "name": "UserDefinedTypeName", + "src": "30223:3:1" + } + ], + "id": 1595, + "name": "VariableDeclaration", + "src": "30223:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1596, + "name": "ElementaryTypeName", + "src": "30240:7:1" + } + ], + "id": 1597, + "name": "VariableDeclaration", + "src": "30240:13:1" + } + ], + "id": 1598, + "name": "ParameterList", + "src": "30222:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1599, + "name": "ElementaryTypeName", + "src": "30277:7:1" + } + ], + "id": 1600, + "name": "VariableDeclaration", + "src": "30277:7:1" + } + ], + "id": 1601, + "name": "ParameterList", + "src": "30276:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1602, + "name": "Identifier", + "src": "30296:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1603, + "name": "Identifier", + "src": "30304:3:1" + } + ], + "id": 1604, + "name": "MemberAccess", + "src": "30304:11:1" + } + ], + "id": 1605, + "name": "MemberAccess", + "src": "30304:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1606, + "name": "Identifier", + "src": "30325:5:1" + } + ], + "id": 1607, + "name": "BinaryOperation", + "src": "30304:26:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableSet: index out of bounds\"", + "value": "EnumerableSet: index out of bounds" + }, + "id": 1608, + "name": "Literal", + "src": "30332:36:1" + } + ], + "id": 1609, + "name": "FunctionCall", + "src": "30296:73:1" + } + ], + "id": 1610, + "name": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "attributes": { + "functionReturnParameters": 1601 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1611, + "name": "Identifier", + "src": "30386:3:1" + } + ], + "id": 1612, + "name": "MemberAccess", + "src": "30386:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1613, + "name": "Identifier", + "src": "30398:5:1" + } + ], + "id": 1614, + "name": "IndexAccess", + "src": "30386:18:1" + } + ], + "id": 1615, + "name": "Return", + "src": "30379:25:1" + } + ], + "id": 1616, + "name": "Block", + "src": "30286:125:1" + } + ], + "id": 1617, + "name": "FunctionDefinition", + "src": "30210:201:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Bytes32Set", + "name": "Bytes32Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1620, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1618, + "name": "UserDefinedTypeName", + "src": "30464:3:1" + } + ], + "id": 1619, + "name": "VariableDeclaration", + "src": "30464:10:1" + } + ], + "id": 1620, + "name": "StructDefinition", + "src": "30436:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1621, + "name": "StructuredDocumentation", + "src": "30487:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1637, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1622, + "name": "UserDefinedTypeName", + "src": "30664:10:1" + } + ], + "id": 1623, + "name": "VariableDeclaration", + "src": "30664:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1624, + "name": "ElementaryTypeName", + "src": "30688:7:1" + } + ], + "id": 1625, + "name": "VariableDeclaration", + "src": "30688:13:1" + } + ], + "id": 1626, + "name": "ParameterList", + "src": "30663:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1627, + "name": "ElementaryTypeName", + "src": "30721:4:1" + } + ], + "id": 1628, + "name": "VariableDeclaration", + "src": "30721:4:1" + } + ], + "id": 1629, + "name": "ParameterList", + "src": "30720:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1629 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1630, + "name": "Identifier", + "src": "30744:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1623, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1631, + "name": "Identifier", + "src": "30749:3:1" + } + ], + "id": 1632, + "name": "MemberAccess", + "src": "30749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1625, + "type": "bytes32", + "value": "value" + }, + "id": 1633, + "name": "Identifier", + "src": "30761:5:1" + } + ], + "id": 1634, + "name": "FunctionCall", + "src": "30744:23:1" + } + ], + "id": 1635, + "name": "Return", + "src": "30737:30:1" + } + ], + "id": 1636, + "name": "Block", + "src": "30727:47:1" + } + ], + "id": 1637, + "name": "FunctionDefinition", + "src": "30651:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1638, + "name": "StructuredDocumentation", + "src": "30780:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1654, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1639, + "name": "UserDefinedTypeName", + "src": "30958:10:1" + } + ], + "id": 1640, + "name": "VariableDeclaration", + "src": "30958:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1641, + "name": "ElementaryTypeName", + "src": "30982:7:1" + } + ], + "id": 1642, + "name": "VariableDeclaration", + "src": "30982:13:1" + } + ], + "id": 1643, + "name": "ParameterList", + "src": "30957:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1644, + "name": "ElementaryTypeName", + "src": "31015:4:1" + } + ], + "id": 1645, + "name": "VariableDeclaration", + "src": "31015:4:1" + } + ], + "id": 1646, + "name": "ParameterList", + "src": "31014:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1646 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1647, + "name": "Identifier", + "src": "31038:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1640, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1648, + "name": "Identifier", + "src": "31046:3:1" + } + ], + "id": 1649, + "name": "MemberAccess", + "src": "31046:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1642, + "type": "bytes32", + "value": "value" + }, + "id": 1650, + "name": "Identifier", + "src": "31058:5:1" + } + ], + "id": 1651, + "name": "FunctionCall", + "src": "31038:26:1" + } + ], + "id": 1652, + "name": "Return", + "src": "31031:33:1" + } + ], + "id": 1653, + "name": "Block", + "src": "31021:50:1" + } + ], + "id": 1654, + "name": "FunctionDefinition", + "src": "30942:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1655, + "name": "StructuredDocumentation", + "src": "31077:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1671, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1656, + "name": "UserDefinedTypeName", + "src": "31170:10:1" + } + ], + "id": 1657, + "name": "VariableDeclaration", + "src": "31170:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1658, + "name": "ElementaryTypeName", + "src": "31194:7:1" + } + ], + "id": 1659, + "name": "VariableDeclaration", + "src": "31194:13:1" + } + ], + "id": 1660, + "name": "ParameterList", + "src": "31169:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1661, + "name": "ElementaryTypeName", + "src": "31232:4:1" + } + ], + "id": 1662, + "name": "VariableDeclaration", + "src": "31232:4:1" + } + ], + "id": 1663, + "name": "ParameterList", + "src": "31231:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1663 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1664, + "name": "Identifier", + "src": "31255:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1657, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1665, + "name": "Identifier", + "src": "31265:3:1" + } + ], + "id": 1666, + "name": "MemberAccess", + "src": "31265:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1659, + "type": "bytes32", + "value": "value" + }, + "id": 1667, + "name": "Identifier", + "src": "31277:5:1" + } + ], + "id": 1668, + "name": "FunctionCall", + "src": "31255:28:1" + } + ], + "id": 1669, + "name": "Return", + "src": "31248:35:1" + } + ], + "id": 1670, + "name": "Block", + "src": "31238:52:1" + } + ], + "id": 1671, + "name": "FunctionDefinition", + "src": "31152:138:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1672, + "name": "StructuredDocumentation", + "src": "31296:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1685, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1673, + "name": "UserDefinedTypeName", + "src": "31387:10:1" + } + ], + "id": 1674, + "name": "VariableDeclaration", + "src": "31387:22:1" + } + ], + "id": 1675, + "name": "ParameterList", + "src": "31386:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1685, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1676, + "name": "ElementaryTypeName", + "src": "31434:7:1" + } + ], + "id": 1677, + "name": "VariableDeclaration", + "src": "31434:7:1" + } + ], + "id": 1678, + "name": "ParameterList", + "src": "31433:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1678 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1679, + "name": "Identifier", + "src": "31460:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1674, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1680, + "name": "Identifier", + "src": "31468:3:1" + } + ], + "id": 1681, + "name": "MemberAccess", + "src": "31468:10:1" + } + ], + "id": 1682, + "name": "FunctionCall", + "src": "31460:19:1" + } + ], + "id": 1683, + "name": "Return", + "src": "31453:26:1" + } + ], + "id": 1684, + "name": "Block", + "src": "31443:43:1" + } + ], + "id": 1685, + "name": "FunctionDefinition", + "src": "31371:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1686, + "name": "StructuredDocumentation", + "src": "31491:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1702, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1687, + "name": "UserDefinedTypeName", + "src": "31830:10:1" + } + ], + "id": 1688, + "name": "VariableDeclaration", + "src": "31830:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1689, + "name": "ElementaryTypeName", + "src": "31854:7:1" + } + ], + "id": 1690, + "name": "VariableDeclaration", + "src": "31854:13:1" + } + ], + "id": 1691, + "name": "ParameterList", + "src": "31829:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1692, + "name": "ElementaryTypeName", + "src": "31892:7:1" + } + ], + "id": 1693, + "name": "VariableDeclaration", + "src": "31892:7:1" + } + ], + "id": 1694, + "name": "ParameterList", + "src": "31891:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1695, + "name": "Identifier", + "src": "31918:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1688, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1696, + "name": "Identifier", + "src": "31922:3:1" + } + ], + "id": 1697, + "name": "MemberAccess", + "src": "31922:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1690, + "type": "uint256", + "value": "index" + }, + "id": 1698, + "name": "Identifier", + "src": "31934:5:1" + } + ], + "id": 1699, + "name": "FunctionCall", + "src": "31918:22:1" + } + ], + "id": 1700, + "name": "Return", + "src": "31911:29:1" + } + ], + "id": 1701, + "name": "Block", + "src": "31901:46:1" + } + ], + "id": 1702, + "name": "FunctionDefinition", + "src": "31818:129:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.AddressSet", + "name": "AddressSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1705, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1703, + "name": "UserDefinedTypeName", + "src": "32000:3:1" + } + ], + "id": 1704, + "name": "VariableDeclaration", + "src": "32000:10:1" + } + ], + "id": 1705, + "name": "StructDefinition", + "src": "31972:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1706, + "name": "StructuredDocumentation", + "src": "32023:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1731, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1707, + "name": "UserDefinedTypeName", + "src": "32200:10:1" + } + ], + "id": 1708, + "name": "VariableDeclaration", + "src": "32200:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1709, + "name": "ElementaryTypeName", + "src": "32224:7:1" + } + ], + "id": 1710, + "name": "VariableDeclaration", + "src": "32224:13:1" + } + ], + "id": 1711, + "name": "ParameterList", + "src": "32199:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1712, + "name": "ElementaryTypeName", + "src": "32257:4:1" + } + ], + "id": 1713, + "name": "VariableDeclaration", + "src": "32257:4:1" + } + ], + "id": 1714, + "name": "ParameterList", + "src": "32256:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1714 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1715, + "name": "Identifier", + "src": "32280:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1708, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1716, + "name": "Identifier", + "src": "32285:3:1" + } + ], + "id": 1717, + "name": "MemberAccess", + "src": "32285:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1718, + "name": "ElementaryTypeName", + "src": "32297:7:1" + } + ], + "id": 1719, + "name": "ElementaryTypeNameExpression", + "src": "32297:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1720, + "name": "ElementaryTypeName", + "src": "32305:7:1" + } + ], + "id": 1721, + "name": "ElementaryTypeNameExpression", + "src": "32305:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1722, + "name": "ElementaryTypeName", + "src": "32313:7:1" + } + ], + "id": 1723, + "name": "ElementaryTypeNameExpression", + "src": "32313:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1710, + "type": "address", + "value": "value" + }, + "id": 1724, + "name": "Identifier", + "src": "32321:5:1" + } + ], + "id": 1725, + "name": "FunctionCall", + "src": "32313:14:1" + } + ], + "id": 1726, + "name": "FunctionCall", + "src": "32305:23:1" + } + ], + "id": 1727, + "name": "FunctionCall", + "src": "32297:32:1" + } + ], + "id": 1728, + "name": "FunctionCall", + "src": "32280:50:1" + } + ], + "id": 1729, + "name": "Return", + "src": "32273:57:1" + } + ], + "id": 1730, + "name": "Block", + "src": "32263:74:1" + } + ], + "id": 1731, + "name": "FunctionDefinition", + "src": "32187:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1732, + "name": "StructuredDocumentation", + "src": "32343:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1757, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1733, + "name": "UserDefinedTypeName", + "src": "32521:10:1" + } + ], + "id": 1734, + "name": "VariableDeclaration", + "src": "32521:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1735, + "name": "ElementaryTypeName", + "src": "32545:7:1" + } + ], + "id": 1736, + "name": "VariableDeclaration", + "src": "32545:13:1" + } + ], + "id": 1737, + "name": "ParameterList", + "src": "32520:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1738, + "name": "ElementaryTypeName", + "src": "32578:4:1" + } + ], + "id": 1739, + "name": "VariableDeclaration", + "src": "32578:4:1" + } + ], + "id": 1740, + "name": "ParameterList", + "src": "32577:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1740 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1741, + "name": "Identifier", + "src": "32601:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1734, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1742, + "name": "Identifier", + "src": "32609:3:1" + } + ], + "id": 1743, + "name": "MemberAccess", + "src": "32609:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1744, + "name": "ElementaryTypeName", + "src": "32621:7:1" + } + ], + "id": 1745, + "name": "ElementaryTypeNameExpression", + "src": "32621:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1746, + "name": "ElementaryTypeName", + "src": "32629:7:1" + } + ], + "id": 1747, + "name": "ElementaryTypeNameExpression", + "src": "32629:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1748, + "name": "ElementaryTypeName", + "src": "32637:7:1" + } + ], + "id": 1749, + "name": "ElementaryTypeNameExpression", + "src": "32637:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1736, + "type": "address", + "value": "value" + }, + "id": 1750, + "name": "Identifier", + "src": "32645:5:1" + } + ], + "id": 1751, + "name": "FunctionCall", + "src": "32637:14:1" + } + ], + "id": 1752, + "name": "FunctionCall", + "src": "32629:23:1" + } + ], + "id": 1753, + "name": "FunctionCall", + "src": "32621:32:1" + } + ], + "id": 1754, + "name": "FunctionCall", + "src": "32601:53:1" + } + ], + "id": 1755, + "name": "Return", + "src": "32594:60:1" + } + ], + "id": 1756, + "name": "Block", + "src": "32584:77:1" + } + ], + "id": 1757, + "name": "FunctionDefinition", + "src": "32505:156:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1758, + "name": "StructuredDocumentation", + "src": "32667:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1783, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1759, + "name": "UserDefinedTypeName", + "src": "32760:10:1" + } + ], + "id": 1760, + "name": "VariableDeclaration", + "src": "32760:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1761, + "name": "ElementaryTypeName", + "src": "32784:7:1" + } + ], + "id": 1762, + "name": "VariableDeclaration", + "src": "32784:13:1" + } + ], + "id": 1763, + "name": "ParameterList", + "src": "32759:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1764, + "name": "ElementaryTypeName", + "src": "32822:4:1" + } + ], + "id": 1765, + "name": "VariableDeclaration", + "src": "32822:4:1" + } + ], + "id": 1766, + "name": "ParameterList", + "src": "32821:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1766 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1767, + "name": "Identifier", + "src": "32845:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1760, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1768, + "name": "Identifier", + "src": "32855:3:1" + } + ], + "id": 1769, + "name": "MemberAccess", + "src": "32855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1770, + "name": "ElementaryTypeName", + "src": "32867:7:1" + } + ], + "id": 1771, + "name": "ElementaryTypeNameExpression", + "src": "32867:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1772, + "name": "ElementaryTypeName", + "src": "32875:7:1" + } + ], + "id": 1773, + "name": "ElementaryTypeNameExpression", + "src": "32875:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1774, + "name": "ElementaryTypeName", + "src": "32883:7:1" + } + ], + "id": 1775, + "name": "ElementaryTypeNameExpression", + "src": "32883:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1762, + "type": "address", + "value": "value" + }, + "id": 1776, + "name": "Identifier", + "src": "32891:5:1" + } + ], + "id": 1777, + "name": "FunctionCall", + "src": "32883:14:1" + } + ], + "id": 1778, + "name": "FunctionCall", + "src": "32875:23:1" + } + ], + "id": 1779, + "name": "FunctionCall", + "src": "32867:32:1" + } + ], + "id": 1780, + "name": "FunctionCall", + "src": "32845:55:1" + } + ], + "id": 1781, + "name": "Return", + "src": "32838:62:1" + } + ], + "id": 1782, + "name": "Block", + "src": "32828:79:1" + } + ], + "id": 1783, + "name": "FunctionDefinition", + "src": "32742:165:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1784, + "name": "StructuredDocumentation", + "src": "32913:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1797, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1785, + "name": "UserDefinedTypeName", + "src": "33004:10:1" + } + ], + "id": 1786, + "name": "VariableDeclaration", + "src": "33004:22:1" + } + ], + "id": 1787, + "name": "ParameterList", + "src": "33003:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1797, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1788, + "name": "ElementaryTypeName", + "src": "33051:7:1" + } + ], + "id": 1789, + "name": "VariableDeclaration", + "src": "33051:7:1" + } + ], + "id": 1790, + "name": "ParameterList", + "src": "33050:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1790 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1791, + "name": "Identifier", + "src": "33077:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1786, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1792, + "name": "Identifier", + "src": "33085:3:1" + } + ], + "id": 1793, + "name": "MemberAccess", + "src": "33085:10:1" + } + ], + "id": 1794, + "name": "FunctionCall", + "src": "33077:19:1" + } + ], + "id": 1795, + "name": "Return", + "src": "33070:26:1" + } + ], + "id": 1796, + "name": "Block", + "src": "33060:43:1" + } + ], + "id": 1797, + "name": "FunctionDefinition", + "src": "32988:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1798, + "name": "StructuredDocumentation", + "src": "33108:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1823, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1799, + "name": "UserDefinedTypeName", + "src": "33447:10:1" + } + ], + "id": 1800, + "name": "VariableDeclaration", + "src": "33447:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1801, + "name": "ElementaryTypeName", + "src": "33471:7:1" + } + ], + "id": 1802, + "name": "VariableDeclaration", + "src": "33471:13:1" + } + ], + "id": 1803, + "name": "ParameterList", + "src": "33446:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1804, + "name": "ElementaryTypeName", + "src": "33509:7:1" + } + ], + "id": 1805, + "name": "VariableDeclaration", + "src": "33509:7:1" + } + ], + "id": 1806, + "name": "ParameterList", + "src": "33508:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1806 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1807, + "name": "ElementaryTypeName", + "src": "33535:7:1" + } + ], + "id": 1808, + "name": "ElementaryTypeNameExpression", + "src": "33535:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1809, + "name": "ElementaryTypeName", + "src": "33543:7:1" + } + ], + "id": 1810, + "name": "ElementaryTypeNameExpression", + "src": "33543:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1811, + "name": "ElementaryTypeName", + "src": "33551:7:1" + } + ], + "id": 1812, + "name": "ElementaryTypeNameExpression", + "src": "33551:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1813, + "name": "Identifier", + "src": "33559:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1800, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1814, + "name": "Identifier", + "src": "33563:3:1" + } + ], + "id": 1815, + "name": "MemberAccess", + "src": "33563:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1802, + "type": "uint256", + "value": "index" + }, + "id": 1816, + "name": "Identifier", + "src": "33575:5:1" + } + ], + "id": 1817, + "name": "FunctionCall", + "src": "33559:22:1" + } + ], + "id": 1818, + "name": "FunctionCall", + "src": "33551:31:1" + } + ], + "id": 1819, + "name": "FunctionCall", + "src": "33543:40:1" + } + ], + "id": 1820, + "name": "FunctionCall", + "src": "33535:49:1" + } + ], + "id": 1821, + "name": "Return", + "src": "33528:56:1" + } + ], + "id": 1822, + "name": "Block", + "src": "33518:73:1" + } + ], + "id": 1823, + "name": "FunctionDefinition", + "src": "33435:156:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.UintSet", + "name": "UintSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1826, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1824, + "name": "UserDefinedTypeName", + "src": "33639:3:1" + } + ], + "id": 1825, + "name": "VariableDeclaration", + "src": "33639:10:1" + } + ], + "id": 1826, + "name": "StructDefinition", + "src": "33614:42:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1827, + "name": "StructuredDocumentation", + "src": "33662:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1846, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1828, + "name": "UserDefinedTypeName", + "src": "33839:7:1" + } + ], + "id": 1829, + "name": "VariableDeclaration", + "src": "33839:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1830, + "name": "ElementaryTypeName", + "src": "33860:7:1" + } + ], + "id": 1831, + "name": "VariableDeclaration", + "src": "33860:13:1" + } + ], + "id": 1832, + "name": "ParameterList", + "src": "33838:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1833, + "name": "ElementaryTypeName", + "src": "33893:4:1" + } + ], + "id": 1834, + "name": "VariableDeclaration", + "src": "33893:4:1" + } + ], + "id": 1835, + "name": "ParameterList", + "src": "33892:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1835 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1836, + "name": "Identifier", + "src": "33916:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1829, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1837, + "name": "Identifier", + "src": "33921:3:1" + } + ], + "id": 1838, + "name": "MemberAccess", + "src": "33921:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1839, + "name": "ElementaryTypeName", + "src": "33933:7:1" + } + ], + "id": 1840, + "name": "ElementaryTypeNameExpression", + "src": "33933:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1831, + "type": "uint256", + "value": "value" + }, + "id": 1841, + "name": "Identifier", + "src": "33941:5:1" + } + ], + "id": 1842, + "name": "FunctionCall", + "src": "33933:14:1" + } + ], + "id": 1843, + "name": "FunctionCall", + "src": "33916:32:1" + } + ], + "id": 1844, + "name": "Return", + "src": "33909:39:1" + } + ], + "id": 1845, + "name": "Block", + "src": "33899:56:1" + } + ], + "id": 1846, + "name": "FunctionDefinition", + "src": "33826:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1847, + "name": "StructuredDocumentation", + "src": "33961:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1866, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1848, + "name": "UserDefinedTypeName", + "src": "34139:7:1" + } + ], + "id": 1849, + "name": "VariableDeclaration", + "src": "34139:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1850, + "name": "ElementaryTypeName", + "src": "34160:7:1" + } + ], + "id": 1851, + "name": "VariableDeclaration", + "src": "34160:13:1" + } + ], + "id": 1852, + "name": "ParameterList", + "src": "34138:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1853, + "name": "ElementaryTypeName", + "src": "34193:4:1" + } + ], + "id": 1854, + "name": "VariableDeclaration", + "src": "34193:4:1" + } + ], + "id": 1855, + "name": "ParameterList", + "src": "34192:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1855 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1856, + "name": "Identifier", + "src": "34216:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1849, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1857, + "name": "Identifier", + "src": "34224:3:1" + } + ], + "id": 1858, + "name": "MemberAccess", + "src": "34224:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1859, + "name": "ElementaryTypeName", + "src": "34236:7:1" + } + ], + "id": 1860, + "name": "ElementaryTypeNameExpression", + "src": "34236:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1851, + "type": "uint256", + "value": "value" + }, + "id": 1861, + "name": "Identifier", + "src": "34244:5:1" + } + ], + "id": 1862, + "name": "FunctionCall", + "src": "34236:14:1" + } + ], + "id": 1863, + "name": "FunctionCall", + "src": "34216:35:1" + } + ], + "id": 1864, + "name": "Return", + "src": "34209:42:1" + } + ], + "id": 1865, + "name": "Block", + "src": "34199:59:1" + } + ], + "id": 1866, + "name": "FunctionDefinition", + "src": "34123:135:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1867, + "name": "StructuredDocumentation", + "src": "34264:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1886, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1868, + "name": "UserDefinedTypeName", + "src": "34357:7:1" + } + ], + "id": 1869, + "name": "VariableDeclaration", + "src": "34357:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1870, + "name": "ElementaryTypeName", + "src": "34378:7:1" + } + ], + "id": 1871, + "name": "VariableDeclaration", + "src": "34378:13:1" + } + ], + "id": 1872, + "name": "ParameterList", + "src": "34356:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1873, + "name": "ElementaryTypeName", + "src": "34416:4:1" + } + ], + "id": 1874, + "name": "VariableDeclaration", + "src": "34416:4:1" + } + ], + "id": 1875, + "name": "ParameterList", + "src": "34415:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1875 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1876, + "name": "Identifier", + "src": "34439:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1869, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1877, + "name": "Identifier", + "src": "34449:3:1" + } + ], + "id": 1878, + "name": "MemberAccess", + "src": "34449:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1879, + "name": "ElementaryTypeName", + "src": "34461:7:1" + } + ], + "id": 1880, + "name": "ElementaryTypeNameExpression", + "src": "34461:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1871, + "type": "uint256", + "value": "value" + }, + "id": 1881, + "name": "Identifier", + "src": "34469:5:1" + } + ], + "id": 1882, + "name": "FunctionCall", + "src": "34461:14:1" + } + ], + "id": 1883, + "name": "FunctionCall", + "src": "34439:37:1" + } + ], + "id": 1884, + "name": "Return", + "src": "34432:44:1" + } + ], + "id": 1885, + "name": "Block", + "src": "34422:61:1" + } + ], + "id": 1886, + "name": "FunctionDefinition", + "src": "34339:144:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1887, + "name": "StructuredDocumentation", + "src": "34489:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1900, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1888, + "name": "UserDefinedTypeName", + "src": "34580:7:1" + } + ], + "id": 1889, + "name": "VariableDeclaration", + "src": "34580:19:1" + } + ], + "id": 1890, + "name": "ParameterList", + "src": "34579:21:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1900, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1891, + "name": "ElementaryTypeName", + "src": "34624:7:1" + } + ], + "id": 1892, + "name": "VariableDeclaration", + "src": "34624:7:1" + } + ], + "id": 1893, + "name": "ParameterList", + "src": "34623:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1894, + "name": "Identifier", + "src": "34650:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1889, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1895, + "name": "Identifier", + "src": "34658:3:1" + } + ], + "id": 1896, + "name": "MemberAccess", + "src": "34658:10:1" + } + ], + "id": 1897, + "name": "FunctionCall", + "src": "34650:19:1" + } + ], + "id": 1898, + "name": "Return", + "src": "34643:26:1" + } + ], + "id": 1899, + "name": "Block", + "src": "34633:43:1" + } + ], + "id": 1900, + "name": "FunctionDefinition", + "src": "34564:112:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1901, + "name": "StructuredDocumentation", + "src": "34681:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1920, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1902, + "name": "UserDefinedTypeName", + "src": "35020:7:1" + } + ], + "id": 1903, + "name": "VariableDeclaration", + "src": "35020:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1904, + "name": "ElementaryTypeName", + "src": "35041:7:1" + } + ], + "id": 1905, + "name": "VariableDeclaration", + "src": "35041:13:1" + } + ], + "id": 1906, + "name": "ParameterList", + "src": "35019:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1907, + "name": "ElementaryTypeName", + "src": "35079:7:1" + } + ], + "id": 1908, + "name": "VariableDeclaration", + "src": "35079:7:1" + } + ], + "id": 1909, + "name": "ParameterList", + "src": "35078:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1909 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1910, + "name": "ElementaryTypeName", + "src": "35105:7:1" + } + ], + "id": 1911, + "name": "ElementaryTypeNameExpression", + "src": "35105:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1912, + "name": "Identifier", + "src": "35113:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1903, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1913, + "name": "Identifier", + "src": "35117:3:1" + } + ], + "id": 1914, + "name": "MemberAccess", + "src": "35117:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1905, + "type": "uint256", + "value": "index" + }, + "id": 1915, + "name": "Identifier", + "src": "35129:5:1" + } + ], + "id": 1916, + "name": "FunctionCall", + "src": "35113:22:1" + } + ], + "id": 1917, + "name": "FunctionCall", + "src": "35105:31:1" + } + ], + "id": 1918, + "name": "Return", + "src": "35098:38:1" + } + ], + "id": 1919, + "name": "Block", + "src": "35088:55:1" + } + ], + "id": 1920, + "name": "FunctionDefinition", + "src": "35008:135:1" + } + ], + "id": 1921, + "name": "ContractDefinition", + "src": "26511:8634:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1922, + "name": "PragmaDirective", + "src": "35204:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "id": 1923, + "name": "StructuredDocumentation", + "src": "35237:705:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.MapEntry", + "name": "MapEntry", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_key", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1924, + "name": "ElementaryTypeName", + "src": "36455:7:1" + } + ], + "id": 1925, + "name": "VariableDeclaration", + "src": "36455:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_value", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1926, + "name": "ElementaryTypeName", + "src": "36477:7:1" + } + ], + "id": 1927, + "name": "VariableDeclaration", + "src": "36477:14:1" + } + ], + "id": 1928, + "name": "StructDefinition", + "src": "36429:69:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.Map", + "name": "Map", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_entries", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.MapEntry[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "struct EnumerableMap.MapEntry[]" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 1929, + "name": "UserDefinedTypeName", + "src": "36567:8:1" + } + ], + "id": 1930, + "name": "ArrayTypeName", + "src": "36567:10:1" + } + ], + "id": 1931, + "name": "VariableDeclaration", + "src": "36567:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1932, + "name": "ElementaryTypeName", + "src": "36745:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1933, + "name": "ElementaryTypeName", + "src": "36756:7:1" + } + ], + "id": 1934, + "name": "Mapping", + "src": "36736:28:1" + } + ], + "id": 1935, + "name": "VariableDeclaration", + "src": "36736:37:1" + } + ], + "id": 1936, + "name": "StructDefinition", + "src": "36504:276:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1937, + "name": "StructuredDocumentation", + "src": "36786:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 1998, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 1938, + "name": "UserDefinedTypeName", + "src": "37021:3:1" + } + ], + "id": 1939, + "name": "VariableDeclaration", + "src": "37021:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1940, + "name": "ElementaryTypeName", + "src": "37038:7:1" + } + ], + "id": 1941, + "name": "VariableDeclaration", + "src": "37038:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1942, + "name": "ElementaryTypeName", + "src": "37051:7:1" + } + ], + "id": 1943, + "name": "VariableDeclaration", + "src": "37051:13:1" + } + ], + "id": 1944, + "name": "ParameterList", + "src": "37020:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1945, + "name": "ElementaryTypeName", + "src": "37083:4:1" + } + ], + "id": 1946, + "name": "VariableDeclaration", + "src": "37083:4:1" + } + ], + "id": 1947, + "name": "ParameterList", + "src": "37082:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1949 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 1997, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1948, + "name": "ElementaryTypeName", + "src": "37197:7:1" + } + ], + "id": 1949, + "name": "VariableDeclaration", + "src": "37197:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1950, + "name": "Identifier", + "src": "37216:3:1" + } + ], + "id": 1951, + "name": "MemberAccess", + "src": "37216:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1952, + "name": "Identifier", + "src": "37229:3:1" + } + ], + "id": 1953, + "name": "IndexAccess", + "src": "37216:17:1" + } + ], + "id": 1954, + "name": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1955, + "name": "Identifier", + "src": "37248:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1956, + "name": "Literal", + "src": "37260:1:1" + } + ], + "id": 1957, + "name": "BinaryOperation", + "src": "37248:13:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (struct EnumerableMap.MapEntry storage ref)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1958, + "name": "Identifier", + "src": "37314:3:1" + } + ], + "id": 1961, + "name": "MemberAccess", + "src": "37314:12:1" + } + ], + "id": 1962, + "name": "MemberAccess", + "src": "37314:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": true, + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "tryCall": false, + "type": "struct EnumerableMap.MapEntry memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1928, + "type": "type(struct EnumerableMap.MapEntry storage pointer)", + "value": "MapEntry" + }, + "id": 1963, + "name": "Identifier", + "src": "37332:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1964, + "name": "Identifier", + "src": "37349:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1965, + "name": "Identifier", + "src": "37362:5:1" + } + ], + "id": 1966, + "name": "FunctionCall", + "src": "37332:38:1" + } + ], + "id": 1967, + "name": "FunctionCall", + "src": "37314:57:1" + } + ], + "id": 1968, + "name": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1969, + "name": "Identifier", + "src": "37506:3:1" + } + ], + "id": 1972, + "name": "MemberAccess", + "src": "37506:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1971, + "name": "Identifier", + "src": "37519:3:1" + } + ], + "id": 1973, + "name": "IndexAccess", + "src": "37506:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1974, + "name": "Identifier", + "src": "37526:3:1" + } + ], + "id": 1975, + "name": "MemberAccess", + "src": "37526:12:1" + } + ], + "id": 1976, + "name": "MemberAccess", + "src": "37526:19:1" + } + ], + "id": 1977, + "name": "Assignment", + "src": "37506:39:1" + } + ], + "id": 1978, + "name": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1979, + "name": "Literal", + "src": "37566:4:1" + } + ], + "id": 1980, + "name": "Return", + "src": "37559:11:1" + } + ], + "id": 1981, + "name": "Block", + "src": "37263:318:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1982, + "name": "Identifier", + "src": "37601:3:1" + } + ], + "id": 1987, + "name": "MemberAccess", + "src": "37601:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1984, + "name": "Identifier", + "src": "37614:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1985, + "name": "Literal", + "src": "37625:1:1" + } + ], + "id": 1986, + "name": "BinaryOperation", + "src": "37614:12:1" + } + ], + "id": 1988, + "name": "IndexAccess", + "src": "37601:26:1" + } + ], + "id": 1989, + "name": "MemberAccess", + "src": "37601:33:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1990, + "name": "Identifier", + "src": "37637:5:1" + } + ], + "id": 1991, + "name": "Assignment", + "src": "37601:41:1" + } + ], + "id": 1992, + "name": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1993, + "name": "Literal", + "src": "37663:5:1" + } + ], + "id": 1994, + "name": "Return", + "src": "37656:12:1" + } + ], + "id": 1995, + "name": "Block", + "src": "37587:92:1" + } + ], + "id": 1996, + "name": "IfStatement", + "src": "37244:435:1" + } + ], + "id": 1997, + "name": "Block", + "src": "37089:596:1" + } + ], + "id": 1998, + "name": "FunctionDefinition", + "src": "37007:678:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 1999, + "name": "StructuredDocumentation", + "src": "37691:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2079, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2000, + "name": "UserDefinedTypeName", + "src": "37870:3:1" + } + ], + "id": 2001, + "name": "VariableDeclaration", + "src": "37870:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2002, + "name": "ElementaryTypeName", + "src": "37887:7:1" + } + ], + "id": 2003, + "name": "VariableDeclaration", + "src": "37887:11:1" + } + ], + "id": 2004, + "name": "ParameterList", + "src": "37869:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2005, + "name": "ElementaryTypeName", + "src": "37917:4:1" + } + ], + "id": 2006, + "name": "VariableDeclaration", + "src": "37917:4:1" + } + ], + "id": 2007, + "name": "ParameterList", + "src": "37916:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2009 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2078, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2008, + "name": "ElementaryTypeName", + "src": "38031:7:1" + } + ], + "id": 2009, + "name": "VariableDeclaration", + "src": "38031:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2010, + "name": "Identifier", + "src": "38050:3:1" + } + ], + "id": 2011, + "name": "MemberAccess", + "src": "38050:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2012, + "name": "Identifier", + "src": "38063:3:1" + } + ], + "id": 2013, + "name": "IndexAccess", + "src": "38050:17:1" + } + ], + "id": 2014, + "name": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2015, + "name": "Identifier", + "src": "38082:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2016, + "name": "Literal", + "src": "38094:1:1" + } + ], + "id": 2017, + "name": "BinaryOperation", + "src": "38082:13:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2019 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2018, + "name": "ElementaryTypeName", + "src": "38438:7:1" + } + ], + "id": 2019, + "name": "VariableDeclaration", + "src": "38438:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2020, + "name": "Identifier", + "src": "38462:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2021, + "name": "Literal", + "src": "38473:1:1" + } + ], + "id": 2022, + "name": "BinaryOperation", + "src": "38462:12:1" + } + ], + "id": 2023, + "name": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "attributes": { + "assignments": [ + 2025 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2024, + "name": "ElementaryTypeName", + "src": "38488:7:1" + } + ], + "id": 2025, + "name": "VariableDeclaration", + "src": "38488:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2026, + "name": "Identifier", + "src": "38508:3:1" + } + ], + "id": 2027, + "name": "MemberAccess", + "src": "38508:12:1" + } + ], + "id": 2028, + "name": "MemberAccess", + "src": "38508:19:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2029, + "name": "Literal", + "src": "38530:1:1" + } + ], + "id": 2030, + "name": "BinaryOperation", + "src": "38508:23:1" + } + ], + "id": 2031, + "name": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "attributes": { + "assignments": [ + 2033 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastEntry", + "scope": 2073, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2032, + "name": "UserDefinedTypeName", + "src": "38771:8:1" + } + ], + "id": 2033, + "name": "VariableDeclaration", + "src": "38771:26:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2034, + "name": "Identifier", + "src": "38800:3:1" + } + ], + "id": 2035, + "name": "MemberAccess", + "src": "38800:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2025, + "type": "uint256", + "value": "lastIndex" + }, + "id": 2036, + "name": "Identifier", + "src": "38813:9:1" + } + ], + "id": 2037, + "name": "IndexAccess", + "src": "38800:23:1" + } + ], + "id": 2038, + "name": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2039, + "name": "Identifier", + "src": "38915:3:1" + } + ], + "id": 2042, + "name": "MemberAccess", + "src": "38915:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2041, + "name": "Identifier", + "src": "38928:13:1" + } + ], + "id": 2043, + "name": "IndexAccess", + "src": "38915:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2044, + "name": "Identifier", + "src": "38945:9:1" + } + ], + "id": 2045, + "name": "Assignment", + "src": "38915:39:1" + } + ], + "id": 2046, + "name": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2047, + "name": "Identifier", + "src": "39020:3:1" + } + ], + "id": 2051, + "name": "MemberAccess", + "src": "39020:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2049, + "name": "Identifier", + "src": "39033:9:1" + } + ], + "id": 2050, + "name": "MemberAccess", + "src": "39033:14:1" + } + ], + "id": 2052, + "name": "IndexAccess", + "src": "39020:28:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2053, + "name": "Identifier", + "src": "39051:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2054, + "name": "Literal", + "src": "39067:1:1" + } + ], + "id": 2055, + "name": "BinaryOperation", + "src": "39051:17:1" + } + ], + "id": 2056, + "name": "Assignment", + "src": "39020:48:1" + } + ], + "id": 2057, + "name": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2058, + "name": "Identifier", + "src": "39174:3:1" + } + ], + "id": 2061, + "name": "MemberAccess", + "src": "39174:12:1" + } + ], + "id": 2062, + "name": "MemberAccess", + "src": "39174:16:1" + } + ], + "id": 2063, + "name": "FunctionCall", + "src": "39174:18:1" + } + ], + "id": 2064, + "name": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2065, + "name": "Identifier", + "src": "39267:3:1" + } + ], + "id": 2066, + "name": "MemberAccess", + "src": "39267:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2067, + "name": "Identifier", + "src": "39280:3:1" + } + ], + "id": 2068, + "name": "IndexAccess", + "src": "39267:17:1" + } + ], + "id": 2069, + "name": "UnaryOperation", + "src": "39260:24:1" + } + ], + "id": 2070, + "name": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2071, + "name": "Literal", + "src": "39306:4:1" + } + ], + "id": 2072, + "name": "Return", + "src": "39299:11:1" + } + ], + "id": 2073, + "name": "Block", + "src": "38097:1224:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2074, + "name": "Literal", + "src": "39348:5:1" + } + ], + "id": 2075, + "name": "Return", + "src": "39341:12:1" + } + ], + "id": 2076, + "name": "Block", + "src": "39327:37:1" + } + ], + "id": 2077, + "name": "IfStatement", + "src": "38078:1286:1" + } + ], + "id": 2078, + "name": "Block", + "src": "37923:1447:1" + } + ], + "id": 2079, + "name": "FunctionDefinition", + "src": "37853:1517:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2080, + "name": "StructuredDocumentation", + "src": "39376:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2097, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2081, + "name": "UserDefinedTypeName", + "src": "39468:3:1" + } + ], + "id": 2082, + "name": "VariableDeclaration", + "src": "39468:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2083, + "name": "ElementaryTypeName", + "src": "39485:7:1" + } + ], + "id": 2084, + "name": "VariableDeclaration", + "src": "39485:11:1" + } + ], + "id": 2085, + "name": "ParameterList", + "src": "39467:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2086, + "name": "ElementaryTypeName", + "src": "39520:4:1" + } + ], + "id": 2087, + "name": "VariableDeclaration", + "src": "39520:4:1" + } + ], + "id": 2088, + "name": "ParameterList", + "src": "39519:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2088 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2082, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2089, + "name": "Identifier", + "src": "39543:3:1" + } + ], + "id": 2090, + "name": "MemberAccess", + "src": "39543:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2084, + "type": "bytes32", + "value": "key" + }, + "id": 2091, + "name": "Identifier", + "src": "39556:3:1" + } + ], + "id": 2092, + "name": "IndexAccess", + "src": "39543:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2093, + "name": "Literal", + "src": "39564:1:1" + } + ], + "id": 2094, + "name": "BinaryOperation", + "src": "39543:22:1" + } + ], + "id": 2095, + "name": "Return", + "src": "39536:29:1" + } + ], + "id": 2096, + "name": "Block", + "src": "39526:46:1" + } + ], + "id": 2097, + "name": "FunctionDefinition", + "src": "39449:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2098, + "name": "StructuredDocumentation", + "src": "39578:79:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2110, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2099, + "name": "UserDefinedTypeName", + "src": "39679:3:1" + } + ], + "id": 2100, + "name": "VariableDeclaration", + "src": "39679:15:1" + } + ], + "id": 2101, + "name": "ParameterList", + "src": "39678:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2102, + "name": "ElementaryTypeName", + "src": "39718:7:1" + } + ], + "id": 2103, + "name": "VariableDeclaration", + "src": "39718:7:1" + } + ], + "id": 2104, + "name": "ParameterList", + "src": "39717:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2104 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2100, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2105, + "name": "Identifier", + "src": "39744:3:1" + } + ], + "id": 2106, + "name": "MemberAccess", + "src": "39744:12:1" + } + ], + "id": 2107, + "name": "MemberAccess", + "src": "39744:19:1" + } + ], + "id": 2108, + "name": "Return", + "src": "39737:26:1" + } + ], + "id": 2109, + "name": "Block", + "src": "39727:43:1" + } + ], + "id": 2110, + "name": "FunctionDefinition", + "src": "39662:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2111, + "name": "StructuredDocumentation", + "src": "39775:333:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2145, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2112, + "name": "UserDefinedTypeName", + "src": "40126:3:1" + } + ], + "id": 2113, + "name": "VariableDeclaration", + "src": "40126:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2114, + "name": "ElementaryTypeName", + "src": "40143:7:1" + } + ], + "id": 2115, + "name": "VariableDeclaration", + "src": "40143:13:1" + } + ], + "id": 2116, + "name": "ParameterList", + "src": "40125:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2117, + "name": "ElementaryTypeName", + "src": "40180:7:1" + } + ], + "id": 2118, + "name": "VariableDeclaration", + "src": "40180:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2119, + "name": "ElementaryTypeName", + "src": "40189:7:1" + } + ], + "id": 2120, + "name": "VariableDeclaration", + "src": "40189:7:1" + } + ], + "id": 2121, + "name": "ParameterList", + "src": "40179:18:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2122, + "name": "Identifier", + "src": "40208:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2123, + "name": "Identifier", + "src": "40216:3:1" + } + ], + "id": 2124, + "name": "MemberAccess", + "src": "40216:12:1" + } + ], + "id": 2125, + "name": "MemberAccess", + "src": "40216:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2126, + "name": "Identifier", + "src": "40238:5:1" + } + ], + "id": 2127, + "name": "BinaryOperation", + "src": "40216:27:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: index out of bounds\"", + "value": "EnumerableMap: index out of bounds" + }, + "id": 2128, + "name": "Literal", + "src": "40245:36:1" + } + ], + "id": 2129, + "name": "FunctionCall", + "src": "40208:74:1" + } + ], + "id": 2130, + "name": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "attributes": { + "assignments": [ + 2132 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "entry", + "scope": 2144, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2131, + "name": "UserDefinedTypeName", + "src": "40293:8:1" + } + ], + "id": 2132, + "name": "VariableDeclaration", + "src": "40293:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2133, + "name": "Identifier", + "src": "40318:3:1" + } + ], + "id": 2134, + "name": "MemberAccess", + "src": "40318:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2135, + "name": "Identifier", + "src": "40331:5:1" + } + ], + "id": 2136, + "name": "IndexAccess", + "src": "40318:19:1" + } + ], + "id": 2137, + "name": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2121 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bytes32,bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2138, + "name": "Identifier", + "src": "40355:5:1" + } + ], + "id": 2139, + "name": "MemberAccess", + "src": "40355:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2140, + "name": "Identifier", + "src": "40367:5:1" + } + ], + "id": 2141, + "name": "MemberAccess", + "src": "40367:12:1" + } + ], + "id": 2142, + "name": "TupleExpression", + "src": "40354:26:1" + } + ], + "id": 2143, + "name": "Return", + "src": "40347:33:1" + } + ], + "id": 2144, + "name": "Block", + "src": "40198:189:1" + } + ], + "id": 2145, + "name": "FunctionDefinition", + "src": "40113:274:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2146, + "name": "StructuredDocumentation", + "src": "40393:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2183, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2147, + "name": "UserDefinedTypeName", + "src": "40546:3:1" + } + ], + "id": 2148, + "name": "VariableDeclaration", + "src": "40546:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2149, + "name": "ElementaryTypeName", + "src": "40563:7:1" + } + ], + "id": 2150, + "name": "VariableDeclaration", + "src": "40563:11:1" + } + ], + "id": 2151, + "name": "ParameterList", + "src": "40545:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2152, + "name": "ElementaryTypeName", + "src": "40598:4:1" + } + ], + "id": 2153, + "name": "VariableDeclaration", + "src": "40598:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2154, + "name": "ElementaryTypeName", + "src": "40604:7:1" + } + ], + "id": 2155, + "name": "VariableDeclaration", + "src": "40604:7:1" + } + ], + "id": 2156, + "name": "ParameterList", + "src": "40597:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2158 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2182, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2157, + "name": "ElementaryTypeName", + "src": "40623:7:1" + } + ], + "id": 2158, + "name": "VariableDeclaration", + "src": "40623:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2159, + "name": "Identifier", + "src": "40642:3:1" + } + ], + "id": 2160, + "name": "MemberAccess", + "src": "40642:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2150, + "type": "bytes32", + "value": "key" + }, + "id": 2161, + "name": "Identifier", + "src": "40655:3:1" + } + ], + "id": 2162, + "name": "IndexAccess", + "src": "40642:17:1" + } + ], + "id": 2163, + "name": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2164, + "name": "Identifier", + "src": "40673:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2165, + "name": "Literal", + "src": "40685:1:1" + } + ], + "id": 2166, + "name": "BinaryOperation", + "src": "40673:13:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2167, + "name": "Literal", + "src": "40696:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2168, + "name": "Literal", + "src": "40703:1:1" + } + ], + "id": 2169, + "name": "TupleExpression", + "src": "40695:10:1" + } + ], + "id": 2170, + "name": "Return", + "src": "40688:17:1" + } + ], + "id": 2171, + "name": "IfStatement", + "src": "40669:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,bytes32)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2172, + "name": "Literal", + "src": "40759:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2173, + "name": "Identifier", + "src": "40765:3:1" + } + ], + "id": 2174, + "name": "MemberAccess", + "src": "40765:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2175, + "name": "Identifier", + "src": "40778:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2176, + "name": "Literal", + "src": "40789:1:1" + } + ], + "id": 2177, + "name": "BinaryOperation", + "src": "40778:12:1" + } + ], + "id": 2178, + "name": "IndexAccess", + "src": "40765:26:1" + } + ], + "id": 2179, + "name": "MemberAccess", + "src": "40765:33:1" + } + ], + "id": 2180, + "name": "TupleExpression", + "src": "40758:41:1" + } + ], + "id": 2181, + "name": "Return", + "src": "40751:48:1" + } + ], + "id": 2182, + "name": "Block", + "src": "40613:220:1" + } + ], + "id": 2183, + "name": "FunctionDefinition", + "src": "40529:304:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2184, + "name": "StructuredDocumentation", + "src": "40839:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2216, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2185, + "name": "UserDefinedTypeName", + "src": "40999:3:1" + } + ], + "id": 2186, + "name": "VariableDeclaration", + "src": "40999:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2187, + "name": "ElementaryTypeName", + "src": "41016:7:1" + } + ], + "id": 2188, + "name": "VariableDeclaration", + "src": "41016:11:1" + } + ], + "id": 2189, + "name": "ParameterList", + "src": "40998:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2190, + "name": "ElementaryTypeName", + "src": "41051:7:1" + } + ], + "id": 2191, + "name": "VariableDeclaration", + "src": "41051:7:1" + } + ], + "id": 2192, + "name": "ParameterList", + "src": "41050:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2194 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2215, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2193, + "name": "ElementaryTypeName", + "src": "41070:7:1" + } + ], + "id": 2194, + "name": "VariableDeclaration", + "src": "41070:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2195, + "name": "Identifier", + "src": "41089:3:1" + } + ], + "id": 2196, + "name": "MemberAccess", + "src": "41089:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2188, + "type": "bytes32", + "value": "key" + }, + "id": 2197, + "name": "Identifier", + "src": "41102:3:1" + } + ], + "id": 2198, + "name": "IndexAccess", + "src": "41089:17:1" + } + ], + "id": 2199, + "name": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2200, + "name": "Identifier", + "src": "41116:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2201, + "name": "Identifier", + "src": "41124:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2202, + "name": "Literal", + "src": "41136:1:1" + } + ], + "id": 2203, + "name": "BinaryOperation", + "src": "41124:13:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: nonexistent key\"", + "value": "EnumerableMap: nonexistent key" + }, + "id": 2204, + "name": "Literal", + "src": "41139:32:1" + } + ], + "id": 2205, + "name": "FunctionCall", + "src": "41116:56:1" + } + ], + "id": 2206, + "name": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "attributes": { + "functionReturnParameters": 2192 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2207, + "name": "Identifier", + "src": "41225:3:1" + } + ], + "id": 2208, + "name": "MemberAccess", + "src": "41225:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2209, + "name": "Identifier", + "src": "41238:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2210, + "name": "Literal", + "src": "41249:1:1" + } + ], + "id": 2211, + "name": "BinaryOperation", + "src": "41238:12:1" + } + ], + "id": 2212, + "name": "IndexAccess", + "src": "41225:26:1" + } + ], + "id": 2213, + "name": "MemberAccess", + "src": "41225:33:1" + } + ], + "id": 2214, + "name": "Return", + "src": "41218:40:1" + } + ], + "id": 2215, + "name": "Block", + "src": "41060:232:1" + } + ], + "id": 2216, + "name": "FunctionDefinition", + "src": "40985:307:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2217, + "name": "StructuredDocumentation", + "src": "41298:271:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2251, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2218, + "name": "UserDefinedTypeName", + "src": "41588:3:1" + } + ], + "id": 2219, + "name": "VariableDeclaration", + "src": "41588:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2220, + "name": "ElementaryTypeName", + "src": "41605:7:1" + } + ], + "id": 2221, + "name": "VariableDeclaration", + "src": "41605:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2251, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2222, + "name": "ElementaryTypeName", + "src": "41618:6:1" + } + ], + "id": 2223, + "name": "VariableDeclaration", + "src": "41618:26:1" + } + ], + "id": 2224, + "name": "ParameterList", + "src": "41587:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2225, + "name": "ElementaryTypeName", + "src": "41668:7:1" + } + ], + "id": 2226, + "name": "VariableDeclaration", + "src": "41668:7:1" + } + ], + "id": 2227, + "name": "ParameterList", + "src": "41667:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2229 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2250, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2228, + "name": "ElementaryTypeName", + "src": "41687:7:1" + } + ], + "id": 2229, + "name": "VariableDeclaration", + "src": "41687:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2230, + "name": "Identifier", + "src": "41706:3:1" + } + ], + "id": 2231, + "name": "MemberAccess", + "src": "41706:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2221, + "type": "bytes32", + "value": "key" + }, + "id": 2232, + "name": "Identifier", + "src": "41719:3:1" + } + ], + "id": 2233, + "name": "IndexAccess", + "src": "41706:17:1" + } + ], + "id": 2234, + "name": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2235, + "name": "Identifier", + "src": "41733:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2236, + "name": "Identifier", + "src": "41741:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2237, + "name": "Literal", + "src": "41753:1:1" + } + ], + "id": 2238, + "name": "BinaryOperation", + "src": "41741:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2223, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2239, + "name": "Identifier", + "src": "41756:12:1" + } + ], + "id": 2240, + "name": "FunctionCall", + "src": "41733:36:1" + } + ], + "id": 2241, + "name": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2227 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2242, + "name": "Identifier", + "src": "41822:3:1" + } + ], + "id": 2243, + "name": "MemberAccess", + "src": "41822:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2244, + "name": "Identifier", + "src": "41835:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2245, + "name": "Literal", + "src": "41846:1:1" + } + ], + "id": 2246, + "name": "BinaryOperation", + "src": "41835:12:1" + } + ], + "id": 2247, + "name": "IndexAccess", + "src": "41822:26:1" + } + ], + "id": 2248, + "name": "MemberAccess", + "src": "41822:33:1" + } + ], + "id": 2249, + "name": "Return", + "src": "41815:40:1" + } + ], + "id": 2250, + "name": "Block", + "src": "41677:212:1" + } + ], + "id": 2251, + "name": "FunctionDefinition", + "src": "41574:315:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.UintToAddressMap", + "name": "UintToAddressMap", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 2254, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2252, + "name": "UserDefinedTypeName", + "src": "41954:3:1" + } + ], + "id": 2253, + "name": "VariableDeclaration", + "src": "41954:10:1" + } + ], + "id": 2254, + "name": "StructDefinition", + "src": "41920:51:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2255, + "name": "StructuredDocumentation", + "src": "41977:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2286, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2256, + "name": "UserDefinedTypeName", + "src": "42211:16:1" + } + ], + "id": 2257, + "name": "VariableDeclaration", + "src": "42211:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2258, + "name": "ElementaryTypeName", + "src": "42241:7:1" + } + ], + "id": 2259, + "name": "VariableDeclaration", + "src": "42241:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2260, + "name": "ElementaryTypeName", + "src": "42254:7:1" + } + ], + "id": 2261, + "name": "VariableDeclaration", + "src": "42254:13:1" + } + ], + "id": 2262, + "name": "ParameterList", + "src": "42210:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2263, + "name": "ElementaryTypeName", + "src": "42287:4:1" + } + ], + "id": 2264, + "name": "VariableDeclaration", + "src": "42287:4:1" + } + ], + "id": 2265, + "name": "ParameterList", + "src": "42286:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2265 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1998, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)", + "value": "_set" + }, + "id": 2266, + "name": "Identifier", + "src": "42310:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2257, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2267, + "name": "Identifier", + "src": "42315:3:1" + } + ], + "id": 2268, + "name": "MemberAccess", + "src": "42315:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2269, + "name": "ElementaryTypeName", + "src": "42327:7:1" + } + ], + "id": 2270, + "name": "ElementaryTypeNameExpression", + "src": "42327:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2259, + "type": "uint256", + "value": "key" + }, + "id": 2271, + "name": "Identifier", + "src": "42335:3:1" + } + ], + "id": 2272, + "name": "FunctionCall", + "src": "42327:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2273, + "name": "ElementaryTypeName", + "src": "42341:7:1" + } + ], + "id": 2274, + "name": "ElementaryTypeNameExpression", + "src": "42341:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2275, + "name": "ElementaryTypeName", + "src": "42349:7:1" + } + ], + "id": 2276, + "name": "ElementaryTypeNameExpression", + "src": "42349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2277, + "name": "ElementaryTypeName", + "src": "42357:7:1" + } + ], + "id": 2278, + "name": "ElementaryTypeNameExpression", + "src": "42357:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2261, + "type": "address", + "value": "value" + }, + "id": 2279, + "name": "Identifier", + "src": "42365:5:1" + } + ], + "id": 2280, + "name": "FunctionCall", + "src": "42357:14:1" + } + ], + "id": 2281, + "name": "FunctionCall", + "src": "42349:23:1" + } + ], + "id": 2282, + "name": "FunctionCall", + "src": "42341:32:1" + } + ], + "id": 2283, + "name": "FunctionCall", + "src": "42310:64:1" + } + ], + "id": 2284, + "name": "Return", + "src": "42303:71:1" + } + ], + "id": 2285, + "name": "Block", + "src": "42293:88:1" + } + ], + "id": 2286, + "name": "FunctionDefinition", + "src": "42198:183:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2287, + "name": "StructuredDocumentation", + "src": "42387:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2306, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2288, + "name": "UserDefinedTypeName", + "src": "42556:16:1" + } + ], + "id": 2289, + "name": "VariableDeclaration", + "src": "42556:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2290, + "name": "ElementaryTypeName", + "src": "42586:7:1" + } + ], + "id": 2291, + "name": "VariableDeclaration", + "src": "42586:11:1" + } + ], + "id": 2292, + "name": "ParameterList", + "src": "42555:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2293, + "name": "ElementaryTypeName", + "src": "42617:4:1" + } + ], + "id": 2294, + "name": "VariableDeclaration", + "src": "42617:4:1" + } + ], + "id": 2295, + "name": "ParameterList", + "src": "42616:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2295 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2079, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 2296, + "name": "Identifier", + "src": "42640:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2289, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2297, + "name": "Identifier", + "src": "42648:3:1" + } + ], + "id": 2298, + "name": "MemberAccess", + "src": "42648:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2299, + "name": "ElementaryTypeName", + "src": "42660:7:1" + } + ], + "id": 2300, + "name": "ElementaryTypeNameExpression", + "src": "42660:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2291, + "type": "uint256", + "value": "key" + }, + "id": 2301, + "name": "Identifier", + "src": "42668:3:1" + } + ], + "id": 2302, + "name": "FunctionCall", + "src": "42660:12:1" + } + ], + "id": 2303, + "name": "FunctionCall", + "src": "42640:33:1" + } + ], + "id": 2304, + "name": "Return", + "src": "42633:40:1" + } + ], + "id": 2305, + "name": "Block", + "src": "42623:57:1" + } + ], + "id": 2306, + "name": "FunctionDefinition", + "src": "42540:140:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2307, + "name": "StructuredDocumentation", + "src": "42686:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2326, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2308, + "name": "UserDefinedTypeName", + "src": "42777:16:1" + } + ], + "id": 2309, + "name": "VariableDeclaration", + "src": "42777:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2310, + "name": "ElementaryTypeName", + "src": "42807:7:1" + } + ], + "id": 2311, + "name": "VariableDeclaration", + "src": "42807:11:1" + } + ], + "id": 2312, + "name": "ParameterList", + "src": "42776:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2313, + "name": "ElementaryTypeName", + "src": "42843:4:1" + } + ], + "id": 2314, + "name": "VariableDeclaration", + "src": "42843:4:1" + } + ], + "id": 2315, + "name": "ParameterList", + "src": "42842:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2315 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2097, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 2316, + "name": "Identifier", + "src": "42866:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2309, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2317, + "name": "Identifier", + "src": "42876:3:1" + } + ], + "id": 2318, + "name": "MemberAccess", + "src": "42876:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2319, + "name": "ElementaryTypeName", + "src": "42888:7:1" + } + ], + "id": 2320, + "name": "ElementaryTypeNameExpression", + "src": "42888:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2311, + "type": "uint256", + "value": "key" + }, + "id": 2321, + "name": "Identifier", + "src": "42896:3:1" + } + ], + "id": 2322, + "name": "FunctionCall", + "src": "42888:12:1" + } + ], + "id": 2323, + "name": "FunctionCall", + "src": "42866:35:1" + } + ], + "id": 2324, + "name": "Return", + "src": "42859:42:1" + } + ], + "id": 2325, + "name": "Block", + "src": "42849:59:1" + } + ], + "id": 2326, + "name": "FunctionDefinition", + "src": "42759:149:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2327, + "name": "StructuredDocumentation", + "src": "42914:72:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2340, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2328, + "name": "UserDefinedTypeName", + "src": "43007:16:1" + } + ], + "id": 2329, + "name": "VariableDeclaration", + "src": "43007:28:1" + } + ], + "id": 2330, + "name": "ParameterList", + "src": "43006:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2340, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2331, + "name": "ElementaryTypeName", + "src": "43060:7:1" + } + ], + "id": 2332, + "name": "VariableDeclaration", + "src": "43060:7:1" + } + ], + "id": 2333, + "name": "ParameterList", + "src": "43059:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2333 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2110, + "type": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 2334, + "name": "Identifier", + "src": "43086:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2329, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2335, + "name": "Identifier", + "src": "43094:3:1" + } + ], + "id": 2336, + "name": "MemberAccess", + "src": "43094:10:1" + } + ], + "id": 2337, + "name": "FunctionCall", + "src": "43086:19:1" + } + ], + "id": 2338, + "name": "Return", + "src": "43079:26:1" + } + ], + "id": 2339, + "name": "Block", + "src": "43069:43:1" + } + ], + "id": 2340, + "name": "FunctionDefinition", + "src": "42991:121:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2341, + "name": "StructuredDocumentation", + "src": "43117:318:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2379, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2342, + "name": "UserDefinedTypeName", + "src": "43452:16:1" + } + ], + "id": 2343, + "name": "VariableDeclaration", + "src": "43452:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2344, + "name": "ElementaryTypeName", + "src": "43482:7:1" + } + ], + "id": 2345, + "name": "VariableDeclaration", + "src": "43482:13:1" + } + ], + "id": 2346, + "name": "ParameterList", + "src": "43451:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2347, + "name": "ElementaryTypeName", + "src": "43520:7:1" + } + ], + "id": 2348, + "name": "VariableDeclaration", + "src": "43520:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2349, + "name": "ElementaryTypeName", + "src": "43529:7:1" + } + ], + "id": 2350, + "name": "VariableDeclaration", + "src": "43529:7:1" + } + ], + "id": 2351, + "name": "ParameterList", + "src": "43519:18:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2353, + 2355 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2352, + "name": "ElementaryTypeName", + "src": "43549:7:1" + } + ], + "id": 2353, + "name": "VariableDeclaration", + "src": "43549:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2354, + "name": "ElementaryTypeName", + "src": "43562:7:1" + } + ], + "id": 2355, + "name": "VariableDeclaration", + "src": "43562:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bytes32,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2145, + "type": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)", + "value": "_at" + }, + "id": 2356, + "name": "Identifier", + "src": "43579:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2343, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2357, + "name": "Identifier", + "src": "43583:3:1" + } + ], + "id": 2358, + "name": "MemberAccess", + "src": "43583:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2345, + "type": "uint256", + "value": "index" + }, + "id": 2359, + "name": "Identifier", + "src": "43595:5:1" + } + ], + "id": 2360, + "name": "FunctionCall", + "src": "43579:22:1" + } + ], + "id": 2361, + "name": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "attributes": { + "functionReturnParameters": 2351 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(uint256,address payable)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2362, + "name": "ElementaryTypeName", + "src": "43619:7:1" + } + ], + "id": 2363, + "name": "ElementaryTypeNameExpression", + "src": "43619:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2353, + "type": "bytes32", + "value": "key" + }, + "id": 2364, + "name": "Identifier", + "src": "43627:3:1" + } + ], + "id": 2365, + "name": "FunctionCall", + "src": "43619:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2366, + "name": "ElementaryTypeName", + "src": "43633:7:1" + } + ], + "id": 2367, + "name": "ElementaryTypeNameExpression", + "src": "43633:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2368, + "name": "ElementaryTypeName", + "src": "43641:7:1" + } + ], + "id": 2369, + "name": "ElementaryTypeNameExpression", + "src": "43641:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2370, + "name": "ElementaryTypeName", + "src": "43649:7:1" + } + ], + "id": 2371, + "name": "ElementaryTypeNameExpression", + "src": "43649:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2355, + "type": "bytes32", + "value": "value" + }, + "id": 2372, + "name": "Identifier", + "src": "43657:5:1" + } + ], + "id": 2373, + "name": "FunctionCall", + "src": "43649:14:1" + } + ], + "id": 2374, + "name": "FunctionCall", + "src": "43641:23:1" + } + ], + "id": 2375, + "name": "FunctionCall", + "src": "43633:32:1" + } + ], + "id": 2376, + "name": "TupleExpression", + "src": "43618:48:1" + } + ], + "id": 2377, + "name": "Return", + "src": "43611:55:1" + } + ], + "id": 2378, + "name": "Block", + "src": "43538:135:1" + } + ], + "id": 2379, + "name": "FunctionDefinition", + "src": "43440:233:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2380, + "name": "StructuredDocumentation", + "src": "43679:169:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2418, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2381, + "name": "UserDefinedTypeName", + "src": "43869:16:1" + } + ], + "id": 2382, + "name": "VariableDeclaration", + "src": "43869:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2383, + "name": "ElementaryTypeName", + "src": "43899:7:1" + } + ], + "id": 2384, + "name": "VariableDeclaration", + "src": "43899:11:1" + } + ], + "id": 2385, + "name": "ParameterList", + "src": "43868:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2386, + "name": "ElementaryTypeName", + "src": "43935:4:1" + } + ], + "id": 2387, + "name": "VariableDeclaration", + "src": "43935:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2388, + "name": "ElementaryTypeName", + "src": "43941:7:1" + } + ], + "id": 2389, + "name": "VariableDeclaration", + "src": "43941:7:1" + } + ], + "id": 2390, + "name": "ParameterList", + "src": "43934:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2392, + 2394 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "43961:4:1" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "43961:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "43975:7:1" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "43975:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2183, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)", + "value": "_tryGet" + }, + "id": 2395, + "name": "Identifier", + "src": "43992:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2382, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2396, + "name": "Identifier", + "src": "44000:3:1" + } + ], + "id": 2397, + "name": "MemberAccess", + "src": "44000:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "44012:7:1" + } + ], + "id": 2399, + "name": "ElementaryTypeNameExpression", + "src": "44012:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2384, + "type": "uint256", + "value": "key" + }, + "id": 2400, + "name": "Identifier", + "src": "44020:3:1" + } + ], + "id": 2401, + "name": "FunctionCall", + "src": "44012:12:1" + } + ], + "id": 2402, + "name": "FunctionCall", + "src": "43992:33:1" + } + ], + "id": 2403, + "name": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "attributes": { + "functionReturnParameters": 2390 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,address payable)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2392, + "type": "bool", + "value": "success" + }, + "id": 2404, + "name": "Identifier", + "src": "44043:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2405, + "name": "ElementaryTypeName", + "src": "44052:7:1" + } + ], + "id": 2406, + "name": "ElementaryTypeNameExpression", + "src": "44052:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "44060:7:1" + } + ], + "id": 2408, + "name": "ElementaryTypeNameExpression", + "src": "44060:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "44068:7:1" + } + ], + "id": 2410, + "name": "ElementaryTypeNameExpression", + "src": "44068:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2394, + "type": "bytes32", + "value": "value" + }, + "id": 2411, + "name": "Identifier", + "src": "44076:5:1" + } + ], + "id": 2412, + "name": "FunctionCall", + "src": "44068:14:1" + } + ], + "id": 2413, + "name": "FunctionCall", + "src": "44060:23:1" + } + ], + "id": 2414, + "name": "FunctionCall", + "src": "44052:32:1" + } + ], + "id": 2415, + "name": "TupleExpression", + "src": "44042:43:1" + } + ], + "id": 2416, + "name": "Return", + "src": "44035:50:1" + } + ], + "id": 2417, + "name": "Block", + "src": "43950:142:1" + } + ], + "id": 2418, + "name": "FunctionDefinition", + "src": "43853:239:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2419, + "name": "StructuredDocumentation", + "src": "44098:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2447, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2420, + "name": "UserDefinedTypeName", + "src": "44257:16:1" + } + ], + "id": 2421, + "name": "VariableDeclaration", + "src": "44257:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2422, + "name": "ElementaryTypeName", + "src": "44287:7:1" + } + ], + "id": 2423, + "name": "VariableDeclaration", + "src": "44287:11:1" + } + ], + "id": 2424, + "name": "ParameterList", + "src": "44256:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2425, + "name": "ElementaryTypeName", + "src": "44323:7:1" + } + ], + "id": 2426, + "name": "VariableDeclaration", + "src": "44323:7:1" + } + ], + "id": 2427, + "name": "ParameterList", + "src": "44322:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2427 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2428, + "name": "ElementaryTypeName", + "src": "44349:7:1" + } + ], + "id": 2429, + "name": "ElementaryTypeNameExpression", + "src": "44349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2430, + "name": "ElementaryTypeName", + "src": "44357:7:1" + } + ], + "id": 2431, + "name": "ElementaryTypeNameExpression", + "src": "44357:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2432, + "name": "ElementaryTypeName", + "src": "44365:7:1" + } + ], + "id": 2433, + "name": "ElementaryTypeNameExpression", + "src": "44365:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)", + "value": "_get" + }, + "id": 2434, + "name": "Identifier", + "src": "44373:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2421, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2435, + "name": "Identifier", + "src": "44378:3:1" + } + ], + "id": 2436, + "name": "MemberAccess", + "src": "44378:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "44390:7:1" + } + ], + "id": 2438, + "name": "ElementaryTypeNameExpression", + "src": "44390:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2423, + "type": "uint256", + "value": "key" + }, + "id": 2439, + "name": "Identifier", + "src": "44398:3:1" + } + ], + "id": 2440, + "name": "FunctionCall", + "src": "44390:12:1" + } + ], + "id": 2441, + "name": "FunctionCall", + "src": "44373:30:1" + } + ], + "id": 2442, + "name": "FunctionCall", + "src": "44365:39:1" + } + ], + "id": 2443, + "name": "FunctionCall", + "src": "44357:48:1" + } + ], + "id": 2444, + "name": "FunctionCall", + "src": "44349:57:1" + } + ], + "id": 2445, + "name": "Return", + "src": "44342:64:1" + } + ], + "id": 2446, + "name": "Block", + "src": "44332:81:1" + } + ], + "id": 2447, + "name": "FunctionDefinition", + "src": "44244:169:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2448, + "name": "StructuredDocumentation", + "src": "44419:269:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2479, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2449, + "name": "UserDefinedTypeName", + "src": "44706:16:1" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "44706:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2451, + "name": "ElementaryTypeName", + "src": "44736:7:1" + } + ], + "id": 2452, + "name": "VariableDeclaration", + "src": "44736:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2479, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "44749:6:1" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "44749:26:1" + } + ], + "id": 2455, + "name": "ParameterList", + "src": "44705:71:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2456, + "name": "ElementaryTypeName", + "src": "44800:7:1" + } + ], + "id": 2457, + "name": "VariableDeclaration", + "src": "44800:7:1" + } + ], + "id": 2458, + "name": "ParameterList", + "src": "44799:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2458 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "44826:7:1" + } + ], + "id": 2460, + "name": "ElementaryTypeNameExpression", + "src": "44826:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "44834:7:1" + } + ], + "id": 2462, + "name": "ElementaryTypeNameExpression", + "src": "44834:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2463, + "name": "ElementaryTypeName", + "src": "44842:7:1" + } + ], + "id": 2464, + "name": "ElementaryTypeNameExpression", + "src": "44842:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)", + "value": "_get" + }, + "id": 2465, + "name": "Identifier", + "src": "44850:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2450, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2466, + "name": "Identifier", + "src": "44855:3:1" + } + ], + "id": 2467, + "name": "MemberAccess", + "src": "44855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2468, + "name": "ElementaryTypeName", + "src": "44867:7:1" + } + ], + "id": 2469, + "name": "ElementaryTypeNameExpression", + "src": "44867:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2452, + "type": "uint256", + "value": "key" + }, + "id": 2470, + "name": "Identifier", + "src": "44875:3:1" + } + ], + "id": 2471, + "name": "FunctionCall", + "src": "44867:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2454, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2472, + "name": "Identifier", + "src": "44881:12:1" + } + ], + "id": 2473, + "name": "FunctionCall", + "src": "44850:44:1" + } + ], + "id": 2474, + "name": "FunctionCall", + "src": "44842:53:1" + } + ], + "id": 2475, + "name": "FunctionCall", + "src": "44834:62:1" + } + ], + "id": 2476, + "name": "FunctionCall", + "src": "44826:71:1" + } + ], + "id": 2477, + "name": "Return", + "src": "44819:78:1" + } + ], + "id": 2478, + "name": "Block", + "src": "44809:95:1" + } + ], + "id": 2479, + "name": "FunctionDefinition", + "src": "44693:211:1" + } + ], + "id": 2480, + "name": "ContractDefinition", + "src": "35943:8963:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2481, + "name": "PragmaDirective", + "src": "44959:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev String operations." + }, + "id": 2482, + "name": "StructuredDocumentation", + "src": "44992:34:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toString", + "scope": 2566, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2483, + "name": "StructuredDocumentation", + "src": "45049:82:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2565, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2484, + "name": "ElementaryTypeName", + "src": "45154:7:1" + } + ], + "id": 2485, + "name": "VariableDeclaration", + "src": "45154:13:1" + } + ], + "id": 2486, + "name": "ParameterList", + "src": "45153:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2565, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "45192:6:1" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "45192:13:1" + } + ], + "id": 2489, + "name": "ParameterList", + "src": "45191:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2490, + "name": "Identifier", + "src": "45409:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2491, + "name": "Literal", + "src": "45418:1:1" + } + ], + "id": 2492, + "name": "BinaryOperation", + "src": "45409:10:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"0\"", + "value": "0" + }, + "id": 2493, + "name": "Literal", + "src": "45442:3:1" + } + ], + "id": 2494, + "name": "Return", + "src": "45435:10:1" + } + ], + "id": 2495, + "name": "Block", + "src": "45421:35:1" + } + ], + "id": 2496, + "name": "IfStatement", + "src": "45405:51:1" + }, + { + "attributes": { + "assignments": [ + 2498 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "temp", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2497, + "name": "ElementaryTypeName", + "src": "45465:7:1" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "45465:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2499, + "name": "Identifier", + "src": "45480:5:1" + } + ], + "id": 2500, + "name": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "attributes": { + "assignments": [ + 2502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "digits", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "45495:7:1" + } + ], + "id": 2502, + "name": "VariableDeclaration", + "src": "45495:14:1" + } + ], + "id": 2503, + "name": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2504, + "name": "Identifier", + "src": "45526:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2505, + "name": "Literal", + "src": "45534:1:1" + } + ], + "id": 2506, + "name": "BinaryOperation", + "src": "45526:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2507, + "name": "Identifier", + "src": "45551:6:1" + } + ], + "id": 2508, + "name": "UnaryOperation", + "src": "45551:8:1" + } + ], + "id": 2509, + "name": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2510, + "name": "Identifier", + "src": "45573:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2511, + "name": "Literal", + "src": "45581:2:1" + } + ], + "id": 2512, + "name": "Assignment", + "src": "45573:10:1" + } + ], + "id": 2513, + "name": "ExpressionStatement", + "src": "45573:10:1" + } + ], + "id": 2514, + "name": "Block", + "src": "45537:57:1" + } + ], + "id": 2515, + "name": "WhileStatement", + "src": "45519:75:1" + }, + { + "attributes": { + "assignments": [ + 2517 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "buffer", + "scope": 2564, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2516, + "name": "ElementaryTypeName", + "src": "45603:5:1" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "45603:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "function (uint256) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "45629:5:1" + } + ], + "id": 2519, + "name": "NewExpression", + "src": "45625:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2520, + "name": "Identifier", + "src": "45635:6:1" + } + ], + "id": 2521, + "name": "FunctionCall", + "src": "45625:17:1" + } + ], + "id": 2522, + "name": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "attributes": { + "assignments": [ + 2524 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2523, + "name": "ElementaryTypeName", + "src": "45652:7:1" + } + ], + "id": 2524, + "name": "VariableDeclaration", + "src": "45652:13:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2525, + "name": "Identifier", + "src": "45668:6:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2526, + "name": "Literal", + "src": "45677:1:1" + } + ], + "id": 2527, + "name": "BinaryOperation", + "src": "45668:10:1" + } + ], + "id": 2528, + "name": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2529, + "name": "Identifier", + "src": "45688:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2530, + "name": "Identifier", + "src": "45695:5:1" + } + ], + "id": 2531, + "name": "Assignment", + "src": "45688:12:1" + } + ], + "id": 2532, + "name": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2533, + "name": "Identifier", + "src": "45717:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2534, + "name": "Literal", + "src": "45725:1:1" + } + ], + "id": 2535, + "name": "BinaryOperation", + "src": "45717:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2536, + "name": "Identifier", + "src": "45742:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "--", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2524, + "type": "uint256", + "value": "index" + }, + "id": 2537, + "name": "Identifier", + "src": "45749:5:1" + } + ], + "id": 2538, + "name": "UnaryOperation", + "src": "45749:7:1" + } + ], + "id": 2539, + "name": "IndexAccess", + "src": "45742:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes1", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes1)" + }, + "children": [ + { + "attributes": { + "name": "bytes1" + }, + "id": 2540, + "name": "ElementaryTypeName", + "src": "45760:6:1" + } + ], + "id": 2541, + "name": "ElementaryTypeNameExpression", + "src": "45760:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 2542, + "name": "ElementaryTypeName", + "src": "45767:5:1" + } + ], + "id": 2543, + "name": "ElementaryTypeNameExpression", + "src": "45767:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "hexvalue": "3438", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 48", + "value": "48" + }, + "id": 2544, + "name": "Literal", + "src": "45773:2:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2545, + "name": "Identifier", + "src": "45778:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2546, + "name": "Literal", + "src": "45785:2:1" + } + ], + "id": 2547, + "name": "BinaryOperation", + "src": "45778:9:1" + } + ], + "id": 2548, + "name": "BinaryOperation", + "src": "45773:14:1" + } + ], + "id": 2549, + "name": "FunctionCall", + "src": "45767:21:1" + } + ], + "id": 2550, + "name": "FunctionCall", + "src": "45760:29:1" + } + ], + "id": 2551, + "name": "Assignment", + "src": "45742:47:1" + } + ], + "id": 2552, + "name": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2553, + "name": "Identifier", + "src": "45803:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2554, + "name": "Literal", + "src": "45811:2:1" + } + ], + "id": 2555, + "name": "Assignment", + "src": "45803:10:1" + } + ], + "id": 2556, + "name": "ExpressionStatement", + "src": "45803:10:1" + } + ], + "id": 2557, + "name": "Block", + "src": "45728:96:1" + } + ], + "id": 2558, + "name": "WhileStatement", + "src": "45710:114:1" + }, + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2559, + "name": "ElementaryTypeName", + "src": "45840:6:1" + } + ], + "id": 2560, + "name": "ElementaryTypeNameExpression", + "src": "45840:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2561, + "name": "Identifier", + "src": "45847:6:1" + } + ], + "id": 2562, + "name": "FunctionCall", + "src": "45840:14:1" + } + ], + "id": 2563, + "name": "Return", + "src": "45833:21:1" + } + ], + "id": 2564, + "name": "Block", + "src": "45207:654:1" + } + ], + "id": 2565, + "name": "FunctionDefinition", + "src": "45136:725:1" + } + ], + "id": 2566, + "name": "ContractDefinition", + "src": "45027:836:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2567, + "name": "PragmaDirective", + "src": "45922:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 2568, + "name": "StructuredDocumentation", + "src": "45955:124:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "Context", + "referencedDeclaration": 530, + "type": "contract Context" + }, + "id": 2569, + "name": "UserDefinedTypeName", + "src": "46099:7:1" + } + ], + "id": 2570, + "name": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "ERC165", + "referencedDeclaration": 781, + "type": "contract ERC165" + }, + "id": 2571, + "name": "UserDefinedTypeName", + "src": "46108:6:1" + } + ], + "id": 2572, + "name": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 2573, + "name": "UserDefinedTypeName", + "src": "46116:7:1" + } + ], + "id": 2574, + "name": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Metadata", + "referencedDeclaration": 680, + "type": "contract IERC721Metadata" + }, + "id": 2575, + "name": "UserDefinedTypeName", + "src": "46125:15:1" + } + ], + "id": 2576, + "name": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Enumerable", + "referencedDeclaration": 709, + "type": "contract IERC721Enumerable" + }, + "id": 2577, + "name": "UserDefinedTypeName", + "src": "46142:17:1" + } + ], + "id": 2578, + "name": "InheritanceSpecifier", + "src": "46142:17:1" + }, + { + "children": [ + { + "attributes": { + "name": "SafeMath", + "referencedDeclaration": 1135, + "type": "library SafeMath" + }, + "id": 2579, + "name": "UserDefinedTypeName", + "src": "46172:8:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2580, + "name": "ElementaryTypeName", + "src": "46185:7:1" + } + ], + "id": 2581, + "name": "UsingForDirective", + "src": "46166:27:1" + }, + { + "children": [ + { + "attributes": { + "name": "Address", + "referencedDeclaration": 1430, + "type": "library Address" + }, + "id": 2582, + "name": "UserDefinedTypeName", + "src": "46204:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "46216:7:1" + } + ], + "id": 2584, + "name": "UsingForDirective", + "src": "46198:26:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableSet", + "referencedDeclaration": 1921, + "type": "library EnumerableSet" + }, + "id": 2585, + "name": "UserDefinedTypeName", + "src": "46235:13:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2586, + "name": "UserDefinedTypeName", + "src": "46253:21:1" + } + ], + "id": 2587, + "name": "UsingForDirective", + "src": "46229:46:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableMap", + "referencedDeclaration": 2480, + "type": "library EnumerableMap" + }, + "id": 2588, + "name": "UserDefinedTypeName", + "src": "46286:13:1" + }, + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2589, + "name": "UserDefinedTypeName", + "src": "46304:30:1" + } + ], + "id": 2590, + "name": "UsingForDirective", + "src": "46280:55:1" + }, + { + "children": [ + { + "attributes": { + "name": "Strings", + "referencedDeclaration": 2566, + "type": "library Strings" + }, + "id": 2591, + "name": "UserDefinedTypeName", + "src": "46346:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2592, + "name": "ElementaryTypeName", + "src": "46358:7:1" + } + ], + "id": 2593, + "name": "UsingForDirective", + "src": "46340:26:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "46544:6:1" + }, + { + "attributes": { + "hexvalue": "30783135306237613032", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 353073666", + "value": "0x150b7a02" + }, + "id": 2595, + "name": "Literal", + "src": "46587:10:1" + } + ], + "id": 2596, + "name": "VariableDeclaration", + "src": "46544:53:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_holderTokens", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => struct EnumerableSet.UintSet)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct EnumerableSet.UintSet)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2597, + "name": "ElementaryTypeName", + "src": "46690:7:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2598, + "name": "UserDefinedTypeName", + "src": "46701:21:1" + } + ], + "id": 2599, + "name": "Mapping", + "src": "46681:42:1" + } + ], + "id": 2600, + "name": "VariableDeclaration", + "src": "46681:64:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenOwners", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2601, + "name": "UserDefinedTypeName", + "src": "46809:30:1" + } + ], + "id": 2602, + "name": "VariableDeclaration", + "src": "46809:51:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => address)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => address)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2603, + "name": "ElementaryTypeName", + "src": "46925:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "46936:7:1" + } + ], + "id": 2605, + "name": "Mapping", + "src": "46916:28:1" + } + ], + "id": 2606, + "name": "VariableDeclaration", + "src": "46916:52:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_operatorApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => mapping(address => bool))", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => mapping(address => bool))" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2607, + "name": "ElementaryTypeName", + "src": "47032:7:1" + }, + { + "attributes": { + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2608, + "name": "ElementaryTypeName", + "src": "47052:7:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2609, + "name": "ElementaryTypeName", + "src": "47063:4:1" + } + ], + "id": 2610, + "name": "Mapping", + "src": "47043:25:1" + } + ], + "id": 2611, + "name": "Mapping", + "src": "47023:46:1" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "47023:73:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_name", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "47121:6:1" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "47121:20:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_symbol", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "47168:6:1" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "47168:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURIs", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => string)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => string)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "47245:7:1" + }, + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2618, + "name": "ElementaryTypeName", + "src": "47256:6:1" + } + ], + "id": 2619, + "name": "Mapping", + "src": "47236:27:1" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "47236:46:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_baseURI", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2621, + "name": "ElementaryTypeName", + "src": "47305:6:1" + } + ], + "id": 2622, + "name": "VariableDeclaration", + "src": "47305:23:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2623, + "name": "ElementaryTypeName", + "src": "48204:6:1" + }, + { + "attributes": { + "hexvalue": "30783830616335386364", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2158778573", + "value": "0x80ac58cd" + }, + "id": 2624, + "name": "Literal", + "src": "48251:10:1" + } + ], + "id": 2625, + "name": "VariableDeclaration", + "src": "48204:57:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2626, + "name": "ElementaryTypeName", + "src": "48527:6:1" + }, + { + "attributes": { + "hexvalue": "30783562356531333966", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1532892063", + "value": "0x5b5e139f" + }, + "id": 2627, + "name": "Literal", + "src": "48583:10:1" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "48527:66:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "48898:6:1" + }, + { + "attributes": { + "hexvalue": "30783738306539643633", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2014223715", + "value": "0x780e9d63" + }, + "id": 2630, + "name": "Literal", + "src": "48956:10:1" + } + ], + "id": 2631, + "name": "VariableDeclaration", + "src": "48898:68:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2632, + "name": "StructuredDocumentation", + "src": "48973:108:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "name_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2633, + "name": "ElementaryTypeName", + "src": "49099:6:1" + } + ], + "id": 2634, + "name": "VariableDeclaration", + "src": "49099:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "symbol_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2635, + "name": "ElementaryTypeName", + "src": "49120:6:1" + } + ], + "id": 2636, + "name": "VariableDeclaration", + "src": "49120:21:1" + } + ], + "id": 2637, + "name": "ParameterList", + "src": "49098:44:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2638, + "name": "ParameterList", + "src": "49143:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2639, + "name": "Identifier", + "src": "49153:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2634, + "type": "string memory", + "value": "name_" + }, + "id": 2640, + "name": "Identifier", + "src": "49161:5:1" + } + ], + "id": 2641, + "name": "Assignment", + "src": "49153:13:1" + } + ], + "id": 2642, + "name": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2643, + "name": "Identifier", + "src": "49176:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2636, + "type": "string memory", + "value": "symbol_" + }, + "id": 2644, + "name": "Identifier", + "src": "49186:7:1" + } + ], + "id": 2645, + "name": "Assignment", + "src": "49176:17:1" + } + ], + "id": 2646, + "name": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2647, + "name": "Identifier", + "src": "49281:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2625, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721" + }, + "id": 2648, + "name": "Identifier", + "src": "49300:20:1" + } + ], + "id": 2649, + "name": "FunctionCall", + "src": "49281:40:1" + } + ], + "id": 2650, + "name": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2651, + "name": "Identifier", + "src": "49331:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2628, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_METADATA" + }, + "id": 2652, + "name": "Identifier", + "src": "49350:29:1" + } + ], + "id": 2653, + "name": "FunctionCall", + "src": "49331:49:1" + } + ], + "id": 2654, + "name": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2655, + "name": "Identifier", + "src": "49390:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2631, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_ENUMERABLE" + }, + "id": 2656, + "name": "Identifier", + "src": "49409:31:1" + } + ], + "id": 2657, + "name": "FunctionCall", + "src": "49390:51:1" + } + ], + "id": 2658, + "name": "ExpressionStatement", + "src": "49390:51:1" + } + ], + "id": 2659, + "name": "Block", + "src": "49143:305:1" + } + ], + "id": 2660, + "name": "FunctionDefinition", + "src": "49086:362:1" + }, + { + "attributes": { + "baseFunctions": [ + 580 + ], + "functionSelector": "70a08231", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-balanceOf}." + }, + "id": 2661, + "name": "StructuredDocumentation", + "src": "49454:48:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2665, + "name": "OverrideSpecifier", + "src": "49561:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2662, + "name": "ElementaryTypeName", + "src": "49526:7:1" + } + ], + "id": 2663, + "name": "VariableDeclaration", + "src": "49526:13:1" + } + ], + "id": 2664, + "name": "ParameterList", + "src": "49525:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2666, + "name": "ElementaryTypeName", + "src": "49579:7:1" + } + ], + "id": 2667, + "name": "VariableDeclaration", + "src": "49579:7:1" + } + ], + "id": 2668, + "name": "ParameterList", + "src": "49578:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2669, + "name": "Identifier", + "src": "49598:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2670, + "name": "Identifier", + "src": "49606:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2671, + "name": "ElementaryTypeName", + "src": "49615:7:1" + } + ], + "id": 2672, + "name": "ElementaryTypeNameExpression", + "src": "49615:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2673, + "name": "Literal", + "src": "49623:1:1" + } + ], + "id": 2674, + "name": "FunctionCall", + "src": "49615:10:1" + } + ], + "id": 2675, + "name": "BinaryOperation", + "src": "49606:19:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: balance query for the zero address\"", + "value": "ERC721: balance query for the zero address" + }, + "id": 2676, + "name": "Literal", + "src": "49627:44:1" + } + ], + "id": 2677, + "name": "FunctionCall", + "src": "49598:74:1" + } + ], + "id": 2678, + "name": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "attributes": { + "functionReturnParameters": 2668 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 1900, + "type": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2679, + "name": "Identifier", + "src": "49689:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2680, + "name": "Identifier", + "src": "49703:5:1" + } + ], + "id": 2681, + "name": "IndexAccess", + "src": "49689:20:1" + } + ], + "id": 2682, + "name": "MemberAccess", + "src": "49689:27:1" + } + ], + "id": 2683, + "name": "FunctionCall", + "src": "49689:29:1" + } + ], + "id": 2684, + "name": "Return", + "src": "49682:36:1" + } + ], + "id": 2685, + "name": "Block", + "src": "49588:137:1" + } + ], + "id": 2686, + "name": "FunctionDefinition", + "src": "49507:218:1" + }, + { + "attributes": { + "baseFunctions": [ + 588 + ], + "functionSelector": "6352211e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-ownerOf}." + }, + "id": 2687, + "name": "StructuredDocumentation", + "src": "49731:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2691, + "name": "OverrideSpecifier", + "src": "49836:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2688, + "name": "ElementaryTypeName", + "src": "49799:7:1" + } + ], + "id": 2689, + "name": "VariableDeclaration", + "src": "49799:15:1" + } + ], + "id": 2690, + "name": "ParameterList", + "src": "49798:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2692, + "name": "ElementaryTypeName", + "src": "49854:7:1" + } + ], + "id": 2693, + "name": "VariableDeclaration", + "src": "49854:7:1" + } + ], + "id": 2694, + "name": "ParameterList", + "src": "49853:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "get", + "referencedDeclaration": 2479, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2695, + "name": "Identifier", + "src": "49880:12:1" + } + ], + "id": 2696, + "name": "MemberAccess", + "src": "49880:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2689, + "type": "uint256", + "value": "tokenId" + }, + "id": 2697, + "name": "Identifier", + "src": "49897:7:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: owner query for nonexistent token\"", + "value": "ERC721: owner query for nonexistent token" + }, + "id": 2698, + "name": "Literal", + "src": "49906:43:1" + } + ], + "id": 2699, + "name": "FunctionCall", + "src": "49880:70:1" + } + ], + "id": 2700, + "name": "Return", + "src": "49873:77:1" + } + ], + "id": 2701, + "name": "Block", + "src": "49863:94:1" + } + ], + "id": 2702, + "name": "FunctionDefinition", + "src": "49782:175:1" + }, + { + "attributes": { + "baseFunctions": [ + 665 + ], + "functionSelector": "06fdde03", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-name}." + }, + "id": 2703, + "name": "StructuredDocumentation", + "src": "49963:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2705, + "name": "OverrideSpecifier", + "src": "50055:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2704, + "name": "ParameterList", + "src": "50032:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2712, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2706, + "name": "ElementaryTypeName", + "src": "50073:6:1" + } + ], + "id": 2707, + "name": "VariableDeclaration", + "src": "50073:13:1" + } + ], + "id": 2708, + "name": "ParameterList", + "src": "50072:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2708 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2709, + "name": "Identifier", + "src": "50105:5:1" + } + ], + "id": 2710, + "name": "Return", + "src": "50098:12:1" + } + ], + "id": 2711, + "name": "Block", + "src": "50088:29:1" + } + ], + "id": 2712, + "name": "FunctionDefinition", + "src": "50019:98:1" + }, + { + "attributes": { + "baseFunctions": [ + 671 + ], + "functionSelector": "95d89b41", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-symbol}." + }, + "id": 2713, + "name": "StructuredDocumentation", + "src": "50123:53:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2715, + "name": "OverrideSpecifier", + "src": "50219:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2714, + "name": "ParameterList", + "src": "50196:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2722, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2716, + "name": "ElementaryTypeName", + "src": "50237:6:1" + } + ], + "id": 2717, + "name": "VariableDeclaration", + "src": "50237:13:1" + } + ], + "id": 2718, + "name": "ParameterList", + "src": "50236:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2718 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2719, + "name": "Identifier", + "src": "50269:7:1" + } + ], + "id": 2720, + "name": "Return", + "src": "50262:14:1" + } + ], + "id": 2721, + "name": "Block", + "src": "50252:31:1" + } + ], + "id": 2722, + "name": "FunctionDefinition", + "src": "50181:102:1" + }, + { + "attributes": { + "baseFunctions": [ + 679 + ], + "functionSelector": "c87b56dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "id": 2723, + "name": "StructuredDocumentation", + "src": "50289:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2727, + "name": "OverrideSpecifier", + "src": "50404:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2790, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2724, + "name": "ElementaryTypeName", + "src": "50367:7:1" + } + ], + "id": 2725, + "name": "VariableDeclaration", + "src": "50367:15:1" + } + ], + "id": 2726, + "name": "ParameterList", + "src": "50366:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2790, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2728, + "name": "ElementaryTypeName", + "src": "50422:6:1" + } + ], + "id": 2729, + "name": "VariableDeclaration", + "src": "50422:13:1" + } + ], + "id": 2730, + "name": "ParameterList", + "src": "50421:15:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2731, + "name": "Identifier", + "src": "50447:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2732, + "name": "Identifier", + "src": "50455:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2733, + "name": "Identifier", + "src": "50463:7:1" + } + ], + "id": 2734, + "name": "FunctionCall", + "src": "50455:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI query for nonexistent token\"", + "value": "ERC721Metadata: URI query for nonexistent token" + }, + "id": 2735, + "name": "Literal", + "src": "50473:49:1" + } + ], + "id": 2736, + "name": "FunctionCall", + "src": "50447:76:1" + } + ], + "id": 2737, + "name": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "attributes": { + "assignments": [ + 2739 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2738, + "name": "ElementaryTypeName", + "src": "50534:6:1" + } + ], + "id": 2739, + "name": "VariableDeclaration", + "src": "50534:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 2740, + "name": "Identifier", + "src": "50560:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2741, + "name": "Identifier", + "src": "50571:7:1" + } + ], + "id": 2742, + "name": "IndexAccess", + "src": "50560:19:1" + } + ], + "id": 2743, + "name": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "attributes": { + "assignments": [ + 2745 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "base", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2744, + "name": "ElementaryTypeName", + "src": "50589:6:1" + } + ], + "id": 2745, + "name": "VariableDeclaration", + "src": "50589:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2799, + "type": "function () view returns (string memory)", + "value": "baseURI" + }, + "id": 2746, + "name": "Identifier", + "src": "50610:7:1" + } + ], + "id": 2747, + "name": "FunctionCall", + "src": "50610:9:1" + } + ], + "id": 2748, + "name": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2749, + "name": "ElementaryTypeName", + "src": "50692:5:1" + } + ], + "id": 2750, + "name": "ElementaryTypeNameExpression", + "src": "50692:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2751, + "name": "Identifier", + "src": "50698:4:1" + } + ], + "id": 2752, + "name": "FunctionCall", + "src": "50692:11:1" + } + ], + "id": 2753, + "name": "MemberAccess", + "src": "50692:18:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2754, + "name": "Literal", + "src": "50714:1:1" + } + ], + "id": 2755, + "name": "BinaryOperation", + "src": "50692:23:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2756, + "name": "Identifier", + "src": "50738:9:1" + } + ], + "id": 2757, + "name": "Return", + "src": "50731:16:1" + } + ], + "id": 2758, + "name": "Block", + "src": "50717:41:1" + } + ], + "id": 2759, + "name": "IfStatement", + "src": "50688:70:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2760, + "name": "ElementaryTypeName", + "src": "50860:5:1" + } + ], + "id": 2761, + "name": "ElementaryTypeNameExpression", + "src": "50860:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2762, + "name": "Identifier", + "src": "50866:9:1" + } + ], + "id": 2763, + "name": "FunctionCall", + "src": "50860:16:1" + } + ], + "id": 2764, + "name": "MemberAccess", + "src": "50860:23:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2765, + "name": "Literal", + "src": "50886:1:1" + } + ], + "id": 2766, + "name": "BinaryOperation", + "src": "50860:27:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2767, + "name": "ElementaryTypeName", + "src": "50910:6:1" + } + ], + "id": 2768, + "name": "ElementaryTypeNameExpression", + "src": "50910:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2769, + "name": "Identifier", + "src": "50917:3:1" + } + ], + "id": 2770, + "name": "MemberAccess", + "src": "50917:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2771, + "name": "Identifier", + "src": "50934:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2772, + "name": "Identifier", + "src": "50940:9:1" + } + ], + "id": 2773, + "name": "FunctionCall", + "src": "50917:33:1" + } + ], + "id": 2774, + "name": "FunctionCall", + "src": "50910:41:1" + } + ], + "id": 2775, + "name": "Return", + "src": "50903:48:1" + } + ], + "id": 2776, + "name": "Block", + "src": "50889:73:1" + } + ], + "id": 2777, + "name": "IfStatement", + "src": "50856:106:1" + }, + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2778, + "name": "ElementaryTypeName", + "src": "51068:6:1" + } + ], + "id": 2779, + "name": "ElementaryTypeNameExpression", + "src": "51068:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2780, + "name": "Identifier", + "src": "51075:3:1" + } + ], + "id": 2781, + "name": "MemberAccess", + "src": "51075:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2782, + "name": "Identifier", + "src": "51092:4:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "toString", + "referencedDeclaration": 2565, + "type": "function (uint256) pure returns (string memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2783, + "name": "Identifier", + "src": "51098:7:1" + } + ], + "id": 2784, + "name": "MemberAccess", + "src": "51098:16:1" + } + ], + "id": 2785, + "name": "FunctionCall", + "src": "51098:18:1" + } + ], + "id": 2786, + "name": "FunctionCall", + "src": "51075:42:1" + } + ], + "id": 2787, + "name": "FunctionCall", + "src": "51068:50:1" + } + ], + "id": 2788, + "name": "Return", + "src": "51061:57:1" + } + ], + "id": 2789, + "name": "Block", + "src": "50437:688:1" + } + ], + "id": 2790, + "name": "FunctionDefinition", + "src": "50349:776:1" + }, + { + "attributes": { + "functionSelector": "6c0360eb", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "baseURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "id": 2791, + "name": "StructuredDocumentation", + "src": "51131:221:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2792, + "name": "ParameterList", + "src": "51373:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2799, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2793, + "name": "ElementaryTypeName", + "src": "51405:6:1" + } + ], + "id": 2794, + "name": "VariableDeclaration", + "src": "51405:13:1" + } + ], + "id": 2795, + "name": "ParameterList", + "src": "51404:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2795 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 2796, + "name": "Identifier", + "src": "51437:8:1" + } + ], + "id": 2797, + "name": "Return", + "src": "51430:15:1" + } + ], + "id": 2798, + "name": "Block", + "src": "51420:32:1" + } + ], + "id": 2799, + "name": "FunctionDefinition", + "src": "51357:95:1" + }, + { + "attributes": { + "baseFunctions": [ + 700 + ], + "functionSelector": "2f745c59", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "id": 2800, + "name": "StructuredDocumentation", + "src": "51458:68:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2806, + "name": "OverrideSpecifier", + "src": "51610:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2801, + "name": "ElementaryTypeName", + "src": "51560:7:1" + } + ], + "id": 2802, + "name": "VariableDeclaration", + "src": "51560:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2803, + "name": "ElementaryTypeName", + "src": "51575:7:1" + } + ], + "id": 2804, + "name": "VariableDeclaration", + "src": "51575:13:1" + } + ], + "id": 2805, + "name": "ParameterList", + "src": "51559:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2807, + "name": "ElementaryTypeName", + "src": "51628:7:1" + } + ], + "id": 2808, + "name": "VariableDeclaration", + "src": "51628:7:1" + } + ], + "id": 2809, + "name": "ParameterList", + "src": "51627:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2809 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 1920, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2810, + "name": "Identifier", + "src": "51654:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2802, + "type": "address", + "value": "owner" + }, + "id": 2811, + "name": "Identifier", + "src": "51668:5:1" + } + ], + "id": 2812, + "name": "IndexAccess", + "src": "51654:20:1" + } + ], + "id": 2813, + "name": "MemberAccess", + "src": "51654:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2804, + "type": "uint256", + "value": "index" + }, + "id": 2814, + "name": "Identifier", + "src": "51678:5:1" + } + ], + "id": 2815, + "name": "FunctionCall", + "src": "51654:30:1" + } + ], + "id": 2816, + "name": "Return", + "src": "51647:37:1" + } + ], + "id": 2817, + "name": "Block", + "src": "51637:54:1" + } + ], + "id": 2818, + "name": "FunctionDefinition", + "src": "51531:160:1" + }, + { + "attributes": { + "baseFunctions": [ + 690 + ], + "functionSelector": "18160ddd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "id": 2819, + "name": "StructuredDocumentation", + "src": "51697:60:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2821, + "name": "OverrideSpecifier", + "src": "51805:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2820, + "name": "ParameterList", + "src": "51782:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2830, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2822, + "name": "ElementaryTypeName", + "src": "51823:7:1" + } + ], + "id": 2823, + "name": "VariableDeclaration", + "src": "51823:7:1" + } + ], + "id": 2824, + "name": "ParameterList", + "src": "51822:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2824 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 2340, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2825, + "name": "Identifier", + "src": "51942:12:1" + } + ], + "id": 2826, + "name": "MemberAccess", + "src": "51942:19:1" + } + ], + "id": 2827, + "name": "FunctionCall", + "src": "51942:21:1" + } + ], + "id": 2828, + "name": "Return", + "src": "51935:28:1" + } + ], + "id": 2829, + "name": "Block", + "src": "51832:138:1" + } + ], + "id": 2830, + "name": "FunctionDefinition", + "src": "51762:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 708 + ], + "functionSelector": "4f6ccce7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "id": 2831, + "name": "StructuredDocumentation", + "src": "51976:61:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2835, + "name": "OverrideSpecifier", + "src": "52099:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2832, + "name": "ElementaryTypeName", + "src": "52064:7:1" + } + ], + "id": 2833, + "name": "VariableDeclaration", + "src": "52064:13:1" + } + ], + "id": 2834, + "name": "ParameterList", + "src": "52063:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2836, + "name": "ElementaryTypeName", + "src": "52117:7:1" + } + ], + "id": 2837, + "name": "VariableDeclaration", + "src": "52117:7:1" + } + ], + "id": 2838, + "name": "ParameterList", + "src": "52116:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2840, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2848, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2839, + "name": "ElementaryTypeName", + "src": "52137:7:1" + } + ], + "id": 2840, + "name": "VariableDeclaration", + "src": "52137:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(uint256,address)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 2379, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2841, + "name": "Identifier", + "src": "52158:12:1" + } + ], + "id": 2842, + "name": "MemberAccess", + "src": "52158:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2833, + "type": "uint256", + "value": "index" + }, + "id": 2843, + "name": "Identifier", + "src": "52174:5:1" + } + ], + "id": 2844, + "name": "FunctionCall", + "src": "52158:22:1" + } + ], + "id": 2845, + "name": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2838 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2840, + "type": "uint256", + "value": "tokenId" + }, + "id": 2846, + "name": "Identifier", + "src": "52197:7:1" + } + ], + "id": 2847, + "name": "Return", + "src": "52190:14:1" + } + ], + "id": 2848, + "name": "Block", + "src": "52126:85:1" + } + ], + "id": 2849, + "name": "FunctionDefinition", + "src": "52042:169:1" + }, + { + "attributes": { + "baseFunctions": [ + 616 + ], + "functionSelector": "095ea7b3", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-approve}." + }, + "id": 2850, + "name": "StructuredDocumentation", + "src": "52217:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2856, + "name": "OverrideSpecifier", + "src": "52329:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2851, + "name": "ElementaryTypeName", + "src": "52285:7:1" + } + ], + "id": 2852, + "name": "VariableDeclaration", + "src": "52285:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2853, + "name": "ElementaryTypeName", + "src": "52297:7:1" + } + ], + "id": 2854, + "name": "VariableDeclaration", + "src": "52297:15:1" + } + ], + "id": 2855, + "name": "ParameterList", + "src": "52284:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2857, + "name": "ParameterList", + "src": "52338:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2859 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2892, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2858, + "name": "ElementaryTypeName", + "src": "52348:7:1" + } + ], + "id": 2859, + "name": "VariableDeclaration", + "src": "52348:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2860, + "name": "Identifier", + "src": "52364:6:1" + } + ], + "id": 2861, + "name": "MemberAccess", + "src": "52364:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2862, + "name": "Identifier", + "src": "52379:7:1" + } + ], + "id": 2863, + "name": "FunctionCall", + "src": "52364:23:1" + } + ], + "id": 2864, + "name": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2865, + "name": "Identifier", + "src": "52397:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2866, + "name": "Identifier", + "src": "52405:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2867, + "name": "Identifier", + "src": "52411:5:1" + } + ], + "id": 2868, + "name": "BinaryOperation", + "src": "52405:11:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approval to current owner\"", + "value": "ERC721: approval to current owner" + }, + "id": 2869, + "name": "Literal", + "src": "52418:35:1" + } + ], + "id": 2870, + "name": "FunctionCall", + "src": "52397:57:1" + } + ], + "id": 2871, + "name": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2872, + "name": "Identifier", + "src": "52465:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2873, + "name": "Identifier", + "src": "52473:10:1" + } + ], + "id": 2874, + "name": "FunctionCall", + "src": "52473:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2875, + "name": "Identifier", + "src": "52489:5:1" + } + ], + "id": 2876, + "name": "BinaryOperation", + "src": "52473:21:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2877, + "name": "Identifier", + "src": "52498:6:1" + } + ], + "id": 2878, + "name": "MemberAccess", + "src": "52498:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2879, + "name": "Identifier", + "src": "52522:5:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2880, + "name": "Identifier", + "src": "52529:10:1" + } + ], + "id": 2881, + "name": "FunctionCall", + "src": "52529:12:1" + } + ], + "id": 2882, + "name": "FunctionCall", + "src": "52498:44:1" + } + ], + "id": 2883, + "name": "BinaryOperation", + "src": "52473:69:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve caller is not owner nor approved for all\"", + "value": "ERC721: approve caller is not owner nor approved for all" + }, + "id": 2884, + "name": "Literal", + "src": "52556:58:1" + } + ], + "id": 2885, + "name": "FunctionCall", + "src": "52465:159:1" + } + ], + "id": 2886, + "name": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 2887, + "name": "Identifier", + "src": "52635:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2888, + "name": "Identifier", + "src": "52644:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2889, + "name": "Identifier", + "src": "52648:7:1" + } + ], + "id": 2890, + "name": "FunctionCall", + "src": "52635:21:1" + } + ], + "id": 2891, + "name": "ExpressionStatement", + "src": "52635:21:1" + } + ], + "id": 2892, + "name": "Block", + "src": "52338:325:1" + } + ], + "id": 2893, + "name": "FunctionDefinition", + "src": "52268:395:1" + }, + { + "attributes": { + "baseFunctions": [ + 624 + ], + "functionSelector": "081812fc", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-getApproved}." + }, + "id": 2894, + "name": "StructuredDocumentation", + "src": "52669:50:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2898, + "name": "OverrideSpecifier", + "src": "52782:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2895, + "name": "ElementaryTypeName", + "src": "52745:7:1" + } + ], + "id": 2896, + "name": "VariableDeclaration", + "src": "52745:15:1" + } + ], + "id": 2897, + "name": "ParameterList", + "src": "52744:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2899, + "name": "ElementaryTypeName", + "src": "52800:7:1" + } + ], + "id": 2900, + "name": "VariableDeclaration", + "src": "52800:7:1" + } + ], + "id": 2901, + "name": "ParameterList", + "src": "52799:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2902, + "name": "Identifier", + "src": "52819:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2903, + "name": "Identifier", + "src": "52827:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2904, + "name": "Identifier", + "src": "52835:7:1" + } + ], + "id": 2905, + "name": "FunctionCall", + "src": "52827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approved query for nonexistent token\"", + "value": "ERC721: approved query for nonexistent token" + }, + "id": 2906, + "name": "Literal", + "src": "52845:46:1" + } + ], + "id": 2907, + "name": "FunctionCall", + "src": "52819:73:1" + } + ], + "id": 2908, + "name": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "attributes": { + "functionReturnParameters": 2901 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 2909, + "name": "Identifier", + "src": "52910:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2910, + "name": "Identifier", + "src": "52926:7:1" + } + ], + "id": 2911, + "name": "IndexAccess", + "src": "52910:24:1" + } + ], + "id": 2912, + "name": "Return", + "src": "52903:31:1" + } + ], + "id": 2913, + "name": "Block", + "src": "52809:132:1" + } + ], + "id": 2914, + "name": "FunctionDefinition", + "src": "52724:217:1" + }, + { + "attributes": { + "baseFunctions": [ + 632 + ], + "functionSelector": "a22cb465", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "id": 2915, + "name": "StructuredDocumentation", + "src": "52947:56:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2921, + "name": "OverrideSpecifier", + "src": "53083:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2916, + "name": "ElementaryTypeName", + "src": "53035:7:1" + } + ], + "id": 2917, + "name": "VariableDeclaration", + "src": "53035:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "approved", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2918, + "name": "ElementaryTypeName", + "src": "53053:4:1" + } + ], + "id": 2919, + "name": "VariableDeclaration", + "src": "53053:13:1" + } + ], + "id": 2920, + "name": "ParameterList", + "src": "53034:33:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2922, + "name": "ParameterList", + "src": "53092:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2923, + "name": "Identifier", + "src": "53102:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2924, + "name": "Identifier", + "src": "53110:8:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2925, + "name": "Identifier", + "src": "53122:10:1" + } + ], + "id": 2926, + "name": "FunctionCall", + "src": "53122:12:1" + } + ], + "id": 2927, + "name": "BinaryOperation", + "src": "53110:24:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f766520746f2063616c6c6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve to caller\"", + "value": "ERC721: approve to caller" + }, + "id": 2928, + "name": "Literal", + "src": "53136:27:1" + } + ], + "id": 2929, + "name": "FunctionCall", + "src": "53102:62:1" + } + ], + "id": 2930, + "name": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2931, + "name": "Identifier", + "src": "53175:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2932, + "name": "Identifier", + "src": "53194:10:1" + } + ], + "id": 2933, + "name": "FunctionCall", + "src": "53194:12:1" + } + ], + "id": 2935, + "name": "IndexAccess", + "src": "53175:32:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2934, + "name": "Identifier", + "src": "53208:8:1" + } + ], + "id": 2936, + "name": "IndexAccess", + "src": "53175:42:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2937, + "name": "Identifier", + "src": "53220:8:1" + } + ], + "id": 2938, + "name": "Assignment", + "src": "53175:53:1" + } + ], + "id": 2939, + "name": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 572, + "type": "function (address,address,bool)", + "value": "ApprovalForAll" + }, + "id": 2940, + "name": "Identifier", + "src": "53243:14:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2941, + "name": "Identifier", + "src": "53258:10:1" + } + ], + "id": 2942, + "name": "FunctionCall", + "src": "53258:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2943, + "name": "Identifier", + "src": "53272:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2944, + "name": "Identifier", + "src": "53282:8:1" + } + ], + "id": 2945, + "name": "FunctionCall", + "src": "53243:48:1" + } + ], + "id": 2946, + "name": "EmitStatement", + "src": "53238:53:1" + } + ], + "id": 2947, + "name": "Block", + "src": "53092:206:1" + } + ], + "id": 2948, + "name": "FunctionDefinition", + "src": "53008:290:1" + }, + { + "attributes": { + "baseFunctions": [ + 642 + ], + "functionSelector": "e985e9c5", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "id": 2949, + "name": "StructuredDocumentation", + "src": "53304:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2955, + "name": "OverrideSpecifier", + "src": "53443:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2950, + "name": "ElementaryTypeName", + "src": "53390:7:1" + } + ], + "id": 2951, + "name": "VariableDeclaration", + "src": "53390:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2952, + "name": "ElementaryTypeName", + "src": "53405:7:1" + } + ], + "id": 2953, + "name": "VariableDeclaration", + "src": "53405:16:1" + } + ], + "id": 2954, + "name": "ParameterList", + "src": "53389:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2956, + "name": "ElementaryTypeName", + "src": "53461:4:1" + } + ], + "id": 2957, + "name": "VariableDeclaration", + "src": "53461:4:1" + } + ], + "id": 2958, + "name": "ParameterList", + "src": "53460:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2958 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2959, + "name": "Identifier", + "src": "53484:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2951, + "type": "address", + "value": "owner" + }, + "id": 2960, + "name": "Identifier", + "src": "53503:5:1" + } + ], + "id": 2961, + "name": "IndexAccess", + "src": "53484:25:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2953, + "type": "address", + "value": "operator" + }, + "id": 2962, + "name": "Identifier", + "src": "53510:8:1" + } + ], + "id": 2963, + "name": "IndexAccess", + "src": "53484:35:1" + } + ], + "id": 2964, + "name": "Return", + "src": "53477:42:1" + } + ], + "id": 2965, + "name": "Block", + "src": "53467:59:1" + } + ], + "id": 2966, + "name": "FunctionDefinition", + "src": "53364:162:1" + }, + { + "attributes": { + "baseFunctions": [ + 608 + ], + "functionSelector": "23b872dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-transferFrom}." + }, + "id": 2967, + "name": "StructuredDocumentation", + "src": "53532:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2975, + "name": "OverrideSpecifier", + "src": "53668:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2968, + "name": "ElementaryTypeName", + "src": "53610:7:1" + } + ], + "id": 2969, + "name": "VariableDeclaration", + "src": "53610:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2970, + "name": "ElementaryTypeName", + "src": "53624:7:1" + } + ], + "id": 2971, + "name": "VariableDeclaration", + "src": "53624:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2972, + "name": "ElementaryTypeName", + "src": "53636:7:1" + } + ], + "id": 2973, + "name": "VariableDeclaration", + "src": "53636:15:1" + } + ], + "id": 2974, + "name": "ParameterList", + "src": "53609:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2976, + "name": "ParameterList", + "src": "53677:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2977, + "name": "Identifier", + "src": "53739:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 2978, + "name": "Identifier", + "src": "53747:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2979, + "name": "Identifier", + "src": "53766:10:1" + } + ], + "id": 2980, + "name": "FunctionCall", + "src": "53766:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2981, + "name": "Identifier", + "src": "53780:7:1" + } + ], + "id": 2982, + "name": "FunctionCall", + "src": "53747:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 2983, + "name": "Literal", + "src": "53790:51:1" + } + ], + "id": 2984, + "name": "FunctionCall", + "src": "53739:103:1" + } + ], + "id": 2985, + "name": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 2986, + "name": "Identifier", + "src": "53853:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2969, + "type": "address", + "value": "from" + }, + "id": 2987, + "name": "Identifier", + "src": "53863:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2971, + "type": "address", + "value": "to" + }, + "id": 2988, + "name": "Identifier", + "src": "53869:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2989, + "name": "Identifier", + "src": "53873:7:1" + } + ], + "id": 2990, + "name": "FunctionCall", + "src": "53853:28:1" + } + ], + "id": 2991, + "name": "ExpressionStatement", + "src": "53853:28:1" + } + ], + "id": 2992, + "name": "Block", + "src": "53677:211:1" + } + ], + "id": 2993, + "name": "FunctionDefinition", + "src": "53588:300:1" + }, + { + "attributes": { + "baseFunctions": [ + 598 + ], + "functionSelector": "42842e0e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 2994, + "name": "StructuredDocumentation", + "src": "53894:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3002, + "name": "OverrideSpecifier", + "src": "54038:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2995, + "name": "ElementaryTypeName", + "src": "53980:7:1" + } + ], + "id": 2996, + "name": "VariableDeclaration", + "src": "53980:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2997, + "name": "ElementaryTypeName", + "src": "53994:7:1" + } + ], + "id": 2998, + "name": "VariableDeclaration", + "src": "53994:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2999, + "name": "ElementaryTypeName", + "src": "54006:7:1" + } + ], + "id": 3000, + "name": "VariableDeclaration", + "src": "54006:15:1" + } + ], + "id": 3001, + "name": "ParameterList", + "src": "53979:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3003, + "name": "ParameterList", + "src": "54047:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "type": "function (address,address,uint256,bytes memory)", + "value": "safeTransferFrom" + }, + "id": 3004, + "name": "Identifier", + "src": "54057:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2996, + "type": "address", + "value": "from" + }, + "id": 3005, + "name": "Identifier", + "src": "54074:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2998, + "type": "address", + "value": "to" + }, + "id": 3006, + "name": "Identifier", + "src": "54080:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3000, + "type": "uint256", + "value": "tokenId" + }, + "id": 3007, + "name": "Identifier", + "src": "54084:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3008, + "name": "Literal", + "src": "54093:2:1" + } + ], + "id": 3009, + "name": "FunctionCall", + "src": "54057:39:1" + } + ], + "id": 3010, + "name": "ExpressionStatement", + "src": "54057:39:1" + } + ], + "id": 3011, + "name": "Block", + "src": "54047:56:1" + } + ], + "id": 3012, + "name": "FunctionDefinition", + "src": "53954:149:1" + }, + { + "attributes": { + "baseFunctions": [ + 654 + ], + "functionSelector": "b88d4fde", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 3013, + "name": "StructuredDocumentation", + "src": "54109:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3023, + "name": "OverrideSpecifier", + "src": "54273:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3014, + "name": "ElementaryTypeName", + "src": "54195:7:1" + } + ], + "id": 3015, + "name": "VariableDeclaration", + "src": "54195:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3016, + "name": "ElementaryTypeName", + "src": "54209:7:1" + } + ], + "id": 3017, + "name": "VariableDeclaration", + "src": "54209:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3018, + "name": "ElementaryTypeName", + "src": "54221:7:1" + } + ], + "id": 3019, + "name": "VariableDeclaration", + "src": "54221:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3042, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3020, + "name": "ElementaryTypeName", + "src": "54238:5:1" + } + ], + "id": 3021, + "name": "VariableDeclaration", + "src": "54238:18:1" + } + ], + "id": 3022, + "name": "ParameterList", + "src": "54194:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3024, + "name": "ParameterList", + "src": "54282:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3025, + "name": "Identifier", + "src": "54292:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 3026, + "name": "Identifier", + "src": "54300:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3027, + "name": "Identifier", + "src": "54319:10:1" + } + ], + "id": 3028, + "name": "FunctionCall", + "src": "54319:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3029, + "name": "Identifier", + "src": "54333:7:1" + } + ], + "id": 3030, + "name": "FunctionCall", + "src": "54300:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 3031, + "name": "Literal", + "src": "54343:51:1" + } + ], + "id": 3032, + "name": "FunctionCall", + "src": "54292:103:1" + } + ], + "id": 3033, + "name": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3071, + "type": "function (address,address,uint256,bytes memory)", + "value": "_safeTransfer" + }, + "id": 3034, + "name": "Identifier", + "src": "54405:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3015, + "type": "address", + "value": "from" + }, + "id": 3035, + "name": "Identifier", + "src": "54419:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3017, + "type": "address", + "value": "to" + }, + "id": 3036, + "name": "Identifier", + "src": "54425:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3037, + "name": "Identifier", + "src": "54429:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3021, + "type": "bytes memory", + "value": "_data" + }, + "id": 3038, + "name": "Identifier", + "src": "54438:5:1" + } + ], + "id": 3039, + "name": "FunctionCall", + "src": "54405:39:1" + } + ], + "id": 3040, + "name": "ExpressionStatement", + "src": "54405:39:1" + } + ], + "id": 3041, + "name": "Block", + "src": "54282:169:1" + } + ], + "id": 3042, + "name": "FunctionDefinition", + "src": "54169:282:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3043, + "name": "StructuredDocumentation", + "src": "54457:851:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3044, + "name": "ElementaryTypeName", + "src": "55336:7:1" + } + ], + "id": 3045, + "name": "VariableDeclaration", + "src": "55336:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3046, + "name": "ElementaryTypeName", + "src": "55350:7:1" + } + ], + "id": 3047, + "name": "VariableDeclaration", + "src": "55350:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3048, + "name": "ElementaryTypeName", + "src": "55362:7:1" + } + ], + "id": 3049, + "name": "VariableDeclaration", + "src": "55362:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3071, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3050, + "name": "ElementaryTypeName", + "src": "55379:5:1" + } + ], + "id": 3051, + "name": "VariableDeclaration", + "src": "55379:18:1" + } + ], + "id": 3052, + "name": "ParameterList", + "src": "55335:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3053, + "name": "ParameterList", + "src": "55416:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 3054, + "name": "Identifier", + "src": "55426:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3055, + "name": "Identifier", + "src": "55436:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3056, + "name": "Identifier", + "src": "55442:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3057, + "name": "Identifier", + "src": "55446:7:1" + } + ], + "id": 3058, + "name": "FunctionCall", + "src": "55426:28:1" + } + ], + "id": 3059, + "name": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3060, + "name": "Identifier", + "src": "55464:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3061, + "name": "Identifier", + "src": "55472:22:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3062, + "name": "Identifier", + "src": "55495:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3063, + "name": "Identifier", + "src": "55501:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3064, + "name": "Identifier", + "src": "55505:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3051, + "type": "bytes memory", + "value": "_data" + }, + "id": 3065, + "name": "Identifier", + "src": "55514:5:1" + } + ], + "id": 3066, + "name": "FunctionCall", + "src": "55472:48:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3067, + "name": "Literal", + "src": "55522:52:1" + } + ], + "id": 3068, + "name": "FunctionCall", + "src": "55464:111:1" + } + ], + "id": 3069, + "name": "ExpressionStatement", + "src": "55464:111:1" + } + ], + "id": 3070, + "name": "Block", + "src": "55416:166:1" + } + ], + "id": 3071, + "name": "FunctionDefinition", + "src": "55313:269:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_exists", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3072, + "name": "StructuredDocumentation", + "src": "55588:292:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3073, + "name": "ElementaryTypeName", + "src": "55902:7:1" + } + ], + "id": 3074, + "name": "VariableDeclaration", + "src": "55902:15:1" + } + ], + "id": 3075, + "name": "ParameterList", + "src": "55901:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3076, + "name": "ElementaryTypeName", + "src": "55950:4:1" + } + ], + "id": 3077, + "name": "VariableDeclaration", + "src": "55950:4:1" + } + ], + "id": 3078, + "name": "ParameterList", + "src": "55949:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3078 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "contains", + "referencedDeclaration": 2326, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3079, + "name": "Identifier", + "src": "55973:12:1" + } + ], + "id": 3080, + "name": "MemberAccess", + "src": "55973:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3074, + "type": "uint256", + "value": "tokenId" + }, + "id": 3081, + "name": "Identifier", + "src": "55995:7:1" + } + ], + "id": 3082, + "name": "FunctionCall", + "src": "55973:30:1" + } + ], + "id": 3083, + "name": "Return", + "src": "55966:37:1" + } + ], + "id": 3084, + "name": "Block", + "src": "55956:54:1" + } + ], + "id": 3085, + "name": "FunctionDefinition", + "src": "55885:125:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_isApprovedOrOwner", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3086, + "name": "StructuredDocumentation", + "src": "56016:147:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "spender", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3087, + "name": "ElementaryTypeName", + "src": "56196:7:1" + } + ], + "id": 3088, + "name": "VariableDeclaration", + "src": "56196:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3089, + "name": "ElementaryTypeName", + "src": "56213:7:1" + } + ], + "id": 3090, + "name": "VariableDeclaration", + "src": "56213:15:1" + } + ], + "id": 3091, + "name": "ParameterList", + "src": "56195:34:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3092, + "name": "ElementaryTypeName", + "src": "56261:4:1" + } + ], + "id": 3093, + "name": "VariableDeclaration", + "src": "56261:4:1" + } + ], + "id": 3094, + "name": "ParameterList", + "src": "56260:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3095, + "name": "Identifier", + "src": "56277:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3096, + "name": "Identifier", + "src": "56285:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3097, + "name": "Identifier", + "src": "56293:7:1" + } + ], + "id": 3098, + "name": "FunctionCall", + "src": "56285:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: operator query for nonexistent token\"", + "value": "ERC721: operator query for nonexistent token" + }, + "id": 3099, + "name": "Literal", + "src": "56303:46:1" + } + ], + "id": 3100, + "name": "FunctionCall", + "src": "56277:73:1" + } + ], + "id": 3101, + "name": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "attributes": { + "assignments": [ + 3103 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3126, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3102, + "name": "ElementaryTypeName", + "src": "56360:7:1" + } + ], + "id": 3103, + "name": "VariableDeclaration", + "src": "56360:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3104, + "name": "Identifier", + "src": "56376:6:1" + } + ], + "id": 3105, + "name": "MemberAccess", + "src": "56376:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3106, + "name": "Identifier", + "src": "56391:7:1" + } + ], + "id": 3107, + "name": "FunctionCall", + "src": "56376:23:1" + } + ], + "id": 3108, + "name": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "attributes": { + "functionReturnParameters": 3094 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3109, + "name": "Identifier", + "src": "56417:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3110, + "name": "Identifier", + "src": "56428:5:1" + } + ], + "id": 3111, + "name": "BinaryOperation", + "src": "56417:16:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2914, + "type": "function (uint256) view returns (address)", + "value": "getApproved" + }, + "id": 3112, + "name": "Identifier", + "src": "56437:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3113, + "name": "Identifier", + "src": "56449:7:1" + } + ], + "id": 3114, + "name": "FunctionCall", + "src": "56437:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3115, + "name": "Identifier", + "src": "56461:7:1" + } + ], + "id": 3116, + "name": "BinaryOperation", + "src": "56437:31:1" + } + ], + "id": 3117, + "name": "BinaryOperation", + "src": "56417:51:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3118, + "name": "Identifier", + "src": "56472:6:1" + } + ], + "id": 3119, + "name": "MemberAccess", + "src": "56472:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3120, + "name": "Identifier", + "src": "56496:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3121, + "name": "Identifier", + "src": "56503:7:1" + } + ], + "id": 3122, + "name": "FunctionCall", + "src": "56472:39:1" + } + ], + "id": 3123, + "name": "BinaryOperation", + "src": "56417:94:1" + } + ], + "id": 3124, + "name": "TupleExpression", + "src": "56416:96:1" + } + ], + "id": 3125, + "name": "Return", + "src": "56409:103:1" + } + ], + "id": 3126, + "name": "Block", + "src": "56267:252:1" + } + ], + "id": 3127, + "name": "FunctionDefinition", + "src": "56168:351:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3128, + "name": "StructuredDocumentation", + "src": "56525:320:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3129, + "name": "ElementaryTypeName", + "src": "56869:7:1" + } + ], + "id": 3130, + "name": "VariableDeclaration", + "src": "56869:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3131, + "name": "ElementaryTypeName", + "src": "56881:7:1" + } + ], + "id": 3132, + "name": "VariableDeclaration", + "src": "56881:15:1" + } + ], + "id": 3133, + "name": "ParameterList", + "src": "56868:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3134, + "name": "ParameterList", + "src": "56915:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "type": "function (address,uint256,bytes memory)", + "value": "_safeMint" + }, + "id": 3135, + "name": "Identifier", + "src": "56925:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3130, + "type": "address", + "value": "to" + }, + "id": 3136, + "name": "Identifier", + "src": "56935:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3132, + "type": "uint256", + "value": "tokenId" + }, + "id": 3137, + "name": "Identifier", + "src": "56939:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3138, + "name": "Literal", + "src": "56948:2:1" + } + ], + "id": 3139, + "name": "FunctionCall", + "src": "56925:26:1" + } + ], + "id": 3140, + "name": "ExpressionStatement", + "src": "56925:26:1" + } + ], + "id": 3141, + "name": "Block", + "src": "56915:43:1" + } + ], + "id": 3142, + "name": "FunctionDefinition", + "src": "56850:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3143, + "name": "StructuredDocumentation", + "src": "56964:210:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3144, + "name": "ElementaryTypeName", + "src": "57198:7:1" + } + ], + "id": 3145, + "name": "VariableDeclaration", + "src": "57198:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3146, + "name": "ElementaryTypeName", + "src": "57210:7:1" + } + ], + "id": 3147, + "name": "VariableDeclaration", + "src": "57210:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3171, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3148, + "name": "ElementaryTypeName", + "src": "57227:5:1" + } + ], + "id": 3149, + "name": "VariableDeclaration", + "src": "57227:18:1" + } + ], + "id": 3150, + "name": "ParameterList", + "src": "57197:49:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3151, + "name": "ParameterList", + "src": "57264:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3230, + "type": "function (address,uint256)", + "value": "_mint" + }, + "id": 3152, + "name": "Identifier", + "src": "57274:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3153, + "name": "Identifier", + "src": "57280:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3154, + "name": "Identifier", + "src": "57284:7:1" + } + ], + "id": 3155, + "name": "FunctionCall", + "src": "57274:18:1" + } + ], + "id": 3156, + "name": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3157, + "name": "Identifier", + "src": "57302:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3158, + "name": "Identifier", + "src": "57310:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3159, + "name": "ElementaryTypeName", + "src": "57333:7:1" + } + ], + "id": 3160, + "name": "ElementaryTypeNameExpression", + "src": "57333:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3161, + "name": "Literal", + "src": "57341:1:1" + } + ], + "id": 3162, + "name": "FunctionCall", + "src": "57333:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3163, + "name": "Identifier", + "src": "57345:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3164, + "name": "Identifier", + "src": "57349:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3149, + "type": "bytes memory", + "value": "_data" + }, + "id": 3165, + "name": "Identifier", + "src": "57358:5:1" + } + ], + "id": 3166, + "name": "FunctionCall", + "src": "57310:54:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3167, + "name": "Literal", + "src": "57366:52:1" + } + ], + "id": 3168, + "name": "FunctionCall", + "src": "57302:117:1" + } + ], + "id": 3169, + "name": "ExpressionStatement", + "src": "57302:117:1" + } + ], + "id": 3170, + "name": "Block", + "src": "57264:162:1" + } + ], + "id": 3171, + "name": "FunctionDefinition", + "src": "57179:247:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_mint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3172, + "name": "StructuredDocumentation", + "src": "57432:311:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3173, + "name": "ElementaryTypeName", + "src": "57763:7:1" + } + ], + "id": 3174, + "name": "VariableDeclaration", + "src": "57763:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3175, + "name": "ElementaryTypeName", + "src": "57775:7:1" + } + ], + "id": 3176, + "name": "VariableDeclaration", + "src": "57775:15:1" + } + ], + "id": 3177, + "name": "ParameterList", + "src": "57762:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3178, + "name": "ParameterList", + "src": "57809:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3179, + "name": "Identifier", + "src": "57819:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3180, + "name": "Identifier", + "src": "57827:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3181, + "name": "ElementaryTypeName", + "src": "57833:7:1" + } + ], + "id": 3182, + "name": "ElementaryTypeNameExpression", + "src": "57833:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3183, + "name": "Literal", + "src": "57841:1:1" + } + ], + "id": 3184, + "name": "FunctionCall", + "src": "57833:10:1" + } + ], + "id": 3185, + "name": "BinaryOperation", + "src": "57827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: mint to the zero address\"", + "value": "ERC721: mint to the zero address" + }, + "id": 3186, + "name": "Literal", + "src": "57845:34:1" + } + ], + "id": 3187, + "name": "FunctionCall", + "src": "57819:61:1" + } + ], + "id": 3188, + "name": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3189, + "name": "Identifier", + "src": "57890:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3190, + "name": "Identifier", + "src": "57899:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3191, + "name": "Identifier", + "src": "57907:7:1" + } + ], + "id": 3192, + "name": "FunctionCall", + "src": "57899:16:1" + } + ], + "id": 3193, + "name": "UnaryOperation", + "src": "57898:17:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: token already minted\"", + "value": "ERC721: token already minted" + }, + "id": 3194, + "name": "Literal", + "src": "57917:30:1" + } + ], + "id": 3195, + "name": "FunctionCall", + "src": "57890:58:1" + } + ], + "id": 3196, + "name": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3197, + "name": "Identifier", + "src": "57959:20:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3198, + "name": "ElementaryTypeName", + "src": "57980:7:1" + } + ], + "id": 3199, + "name": "ElementaryTypeNameExpression", + "src": "57980:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3200, + "name": "Literal", + "src": "57988:1:1" + } + ], + "id": 3201, + "name": "FunctionCall", + "src": "57980:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3202, + "name": "Identifier", + "src": "57992:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3203, + "name": "Identifier", + "src": "57996:7:1" + } + ], + "id": 3204, + "name": "FunctionCall", + "src": "57959:45:1" + } + ], + "id": 3205, + "name": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3206, + "name": "Identifier", + "src": "58015:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3207, + "name": "Identifier", + "src": "58029:2:1" + } + ], + "id": 3208, + "name": "IndexAccess", + "src": "58015:17:1" + } + ], + "id": 3209, + "name": "MemberAccess", + "src": "58015:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3210, + "name": "Identifier", + "src": "58037:7:1" + } + ], + "id": 3211, + "name": "FunctionCall", + "src": "58015:30:1" + } + ], + "id": 3212, + "name": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3213, + "name": "Identifier", + "src": "58056:12:1" + } + ], + "id": 3215, + "name": "MemberAccess", + "src": "58056:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3216, + "name": "Identifier", + "src": "58073:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3217, + "name": "Identifier", + "src": "58082:2:1" + } + ], + "id": 3218, + "name": "FunctionCall", + "src": "58056:29:1" + } + ], + "id": 3219, + "name": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3220, + "name": "Identifier", + "src": "58101:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3221, + "name": "ElementaryTypeName", + "src": "58110:7:1" + } + ], + "id": 3222, + "name": "ElementaryTypeNameExpression", + "src": "58110:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3223, + "name": "Literal", + "src": "58118:1:1" + } + ], + "id": 3224, + "name": "FunctionCall", + "src": "58110:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3225, + "name": "Identifier", + "src": "58122:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3226, + "name": "Identifier", + "src": "58126:7:1" + } + ], + "id": 3227, + "name": "FunctionCall", + "src": "58101:33:1" + } + ], + "id": 3228, + "name": "EmitStatement", + "src": "58096:38:1" + } + ], + "id": 3229, + "name": "Block", + "src": "57809:332:1" + } + ], + "id": 3230, + "name": "FunctionDefinition", + "src": "57748:393:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_burn", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3231, + "name": "StructuredDocumentation", + "src": "58147:206:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3299, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3232, + "name": "ElementaryTypeName", + "src": "58373:7:1" + } + ], + "id": 3233, + "name": "VariableDeclaration", + "src": "58373:15:1" + } + ], + "id": 3234, + "name": "ParameterList", + "src": "58372:17:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3235, + "name": "ParameterList", + "src": "58407:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 3237 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3298, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3236, + "name": "ElementaryTypeName", + "src": "58417:7:1" + } + ], + "id": 3237, + "name": "VariableDeclaration", + "src": "58417:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3238, + "name": "Identifier", + "src": "58433:6:1" + } + ], + "id": 3239, + "name": "MemberAccess", + "src": "58433:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3240, + "name": "Identifier", + "src": "58448:7:1" + } + ], + "id": 3241, + "name": "FunctionCall", + "src": "58433:23:1" + } + ], + "id": 3242, + "name": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3243, + "name": "Identifier", + "src": "58485:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3244, + "name": "Identifier", + "src": "58506:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3245, + "name": "ElementaryTypeName", + "src": "58513:7:1" + } + ], + "id": 3246, + "name": "ElementaryTypeNameExpression", + "src": "58513:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3247, + "name": "Literal", + "src": "58521:1:1" + } + ], + "id": 3248, + "name": "FunctionCall", + "src": "58513:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3249, + "name": "Identifier", + "src": "58525:7:1" + } + ], + "id": 3250, + "name": "FunctionCall", + "src": "58485:48:1" + } + ], + "id": 3251, + "name": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3252, + "name": "Identifier", + "src": "58571:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3253, + "name": "ElementaryTypeName", + "src": "58580:7:1" + } + ], + "id": 3254, + "name": "ElementaryTypeNameExpression", + "src": "58580:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3255, + "name": "Literal", + "src": "58588:1:1" + } + ], + "id": 3256, + "name": "FunctionCall", + "src": "58580:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3257, + "name": "Identifier", + "src": "58592:7:1" + } + ], + "id": 3258, + "name": "FunctionCall", + "src": "58571:29:1" + } + ], + "id": 3259, + "name": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes storage pointer", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 3260, + "name": "ElementaryTypeName", + "src": "58650:5:1" + } + ], + "id": 3261, + "name": "ElementaryTypeNameExpression", + "src": "58650:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3262, + "name": "Identifier", + "src": "58656:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3263, + "name": "Identifier", + "src": "58667:7:1" + } + ], + "id": 3264, + "name": "IndexAccess", + "src": "58656:19:1" + } + ], + "id": 3265, + "name": "FunctionCall", + "src": "58650:26:1" + } + ], + "id": 3266, + "name": "MemberAccess", + "src": "58650:33:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3267, + "name": "Literal", + "src": "58687:1:1" + } + ], + "id": 3268, + "name": "BinaryOperation", + "src": "58650:38:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3269, + "name": "Identifier", + "src": "58711:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3270, + "name": "Identifier", + "src": "58722:7:1" + } + ], + "id": 3271, + "name": "IndexAccess", + "src": "58711:19:1" + } + ], + "id": 3272, + "name": "UnaryOperation", + "src": "58704:26:1" + } + ], + "id": 3273, + "name": "ExpressionStatement", + "src": "58704:26:1" + } + ], + "id": 3274, + "name": "Block", + "src": "58690:51:1" + } + ], + "id": 3275, + "name": "IfStatement", + "src": "58646:95:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3276, + "name": "Identifier", + "src": "58751:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3277, + "name": "Identifier", + "src": "58765:5:1" + } + ], + "id": 3278, + "name": "IndexAccess", + "src": "58751:20:1" + } + ], + "id": 3279, + "name": "MemberAccess", + "src": "58751:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3280, + "name": "Identifier", + "src": "58779:7:1" + } + ], + "id": 3281, + "name": "FunctionCall", + "src": "58751:36:1" + } + ], + "id": 3282, + "name": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 2306, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3283, + "name": "Identifier", + "src": "58798:12:1" + } + ], + "id": 3285, + "name": "MemberAccess", + "src": "58798:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3286, + "name": "Identifier", + "src": "58818:7:1" + } + ], + "id": 3287, + "name": "FunctionCall", + "src": "58798:28:1" + } + ], + "id": 3288, + "name": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3289, + "name": "Identifier", + "src": "58842:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3290, + "name": "Identifier", + "src": "58851:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3291, + "name": "ElementaryTypeName", + "src": "58858:7:1" + } + ], + "id": 3292, + "name": "ElementaryTypeNameExpression", + "src": "58858:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3293, + "name": "Literal", + "src": "58866:1:1" + } + ], + "id": 3294, + "name": "FunctionCall", + "src": "58858:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3295, + "name": "Identifier", + "src": "58870:7:1" + } + ], + "id": 3296, + "name": "FunctionCall", + "src": "58842:36:1" + } + ], + "id": 3297, + "name": "EmitStatement", + "src": "58837:41:1" + } + ], + "id": 3298, + "name": "Block", + "src": "58407:478:1" + } + ], + "id": 3299, + "name": "FunctionDefinition", + "src": "58358:527:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_transfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3300, + "name": "StructuredDocumentation", + "src": "58891:313:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3301, + "name": "ElementaryTypeName", + "src": "59228:7:1" + } + ], + "id": 3302, + "name": "VariableDeclaration", + "src": "59228:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3303, + "name": "ElementaryTypeName", + "src": "59242:7:1" + } + ], + "id": 3304, + "name": "VariableDeclaration", + "src": "59242:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3305, + "name": "ElementaryTypeName", + "src": "59254:7:1" + } + ], + "id": 3306, + "name": "VariableDeclaration", + "src": "59254:15:1" + } + ], + "id": 3307, + "name": "ParameterList", + "src": "59227:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3308, + "name": "ParameterList", + "src": "59288:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3309, + "name": "Identifier", + "src": "59298:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3310, + "name": "Identifier", + "src": "59306:6:1" + } + ], + "id": 3311, + "name": "MemberAccess", + "src": "59306:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3312, + "name": "Identifier", + "src": "59321:7:1" + } + ], + "id": 3313, + "name": "FunctionCall", + "src": "59306:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3314, + "name": "Identifier", + "src": "59333:4:1" + } + ], + "id": 3315, + "name": "BinaryOperation", + "src": "59306:31:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer of token that is not own\"", + "value": "ERC721: transfer of token that is not own" + }, + "id": 3316, + "name": "Literal", + "src": "59339:43:1" + } + ], + "id": 3317, + "name": "FunctionCall", + "src": "59298:85:1" + } + ], + "id": 3318, + "name": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3319, + "name": "Identifier", + "src": "59411:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3320, + "name": "Identifier", + "src": "59419:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3321, + "name": "ElementaryTypeName", + "src": "59425:7:1" + } + ], + "id": 3322, + "name": "ElementaryTypeNameExpression", + "src": "59425:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3323, + "name": "Literal", + "src": "59433:1:1" + } + ], + "id": 3324, + "name": "FunctionCall", + "src": "59425:10:1" + } + ], + "id": 3325, + "name": "BinaryOperation", + "src": "59419:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to the zero address\"", + "value": "ERC721: transfer to the zero address" + }, + "id": 3326, + "name": "Literal", + "src": "59437:38:1" + } + ], + "id": 3327, + "name": "FunctionCall", + "src": "59411:65:1" + } + ], + "id": 3328, + "name": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3329, + "name": "Identifier", + "src": "59487:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3330, + "name": "Identifier", + "src": "59508:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3331, + "name": "Identifier", + "src": "59514:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3332, + "name": "Identifier", + "src": "59518:7:1" + } + ], + "id": 3333, + "name": "FunctionCall", + "src": "59487:39:1" + } + ], + "id": 3334, + "name": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3335, + "name": "Identifier", + "src": "59588:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3336, + "name": "ElementaryTypeName", + "src": "59597:7:1" + } + ], + "id": 3337, + "name": "ElementaryTypeNameExpression", + "src": "59597:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3338, + "name": "Literal", + "src": "59605:1:1" + } + ], + "id": 3339, + "name": "FunctionCall", + "src": "59597:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3340, + "name": "Identifier", + "src": "59609:7:1" + } + ], + "id": 3341, + "name": "FunctionCall", + "src": "59588:29:1" + } + ], + "id": 3342, + "name": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3343, + "name": "Identifier", + "src": "59628:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3344, + "name": "Identifier", + "src": "59642:4:1" + } + ], + "id": 3345, + "name": "IndexAccess", + "src": "59628:19:1" + } + ], + "id": 3346, + "name": "MemberAccess", + "src": "59628:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3347, + "name": "Identifier", + "src": "59655:7:1" + } + ], + "id": 3348, + "name": "FunctionCall", + "src": "59628:35:1" + } + ], + "id": 3349, + "name": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3350, + "name": "Identifier", + "src": "59673:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3351, + "name": "Identifier", + "src": "59687:2:1" + } + ], + "id": 3352, + "name": "IndexAccess", + "src": "59673:17:1" + } + ], + "id": 3353, + "name": "MemberAccess", + "src": "59673:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3354, + "name": "Identifier", + "src": "59695:7:1" + } + ], + "id": 3355, + "name": "FunctionCall", + "src": "59673:30:1" + } + ], + "id": 3356, + "name": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3357, + "name": "Identifier", + "src": "59714:12:1" + } + ], + "id": 3359, + "name": "MemberAccess", + "src": "59714:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3360, + "name": "Identifier", + "src": "59731:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3361, + "name": "Identifier", + "src": "59740:2:1" + } + ], + "id": 3362, + "name": "FunctionCall", + "src": "59714:29:1" + } + ], + "id": 3363, + "name": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3364, + "name": "Identifier", + "src": "59759:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3365, + "name": "Identifier", + "src": "59768:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3366, + "name": "Identifier", + "src": "59774:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3367, + "name": "Identifier", + "src": "59778:7:1" + } + ], + "id": 3368, + "name": "FunctionCall", + "src": "59759:27:1" + } + ], + "id": 3369, + "name": "EmitStatement", + "src": "59754:32:1" + } + ], + "id": 3370, + "name": "Block", + "src": "59288:505:1" + } + ], + "id": 3371, + "name": "FunctionDefinition", + "src": "59209:584:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setTokenURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3372, + "name": "StructuredDocumentation", + "src": "59799:136:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3393, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3373, + "name": "ElementaryTypeName", + "src": "59962:7:1" + } + ], + "id": 3374, + "name": "VariableDeclaration", + "src": "59962:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 3393, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3375, + "name": "ElementaryTypeName", + "src": "59979:6:1" + } + ], + "id": 3376, + "name": "VariableDeclaration", + "src": "59979:23:1" + } + ], + "id": 3377, + "name": "ParameterList", + "src": "59961:42:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3378, + "name": "ParameterList", + "src": "60021:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3379, + "name": "Identifier", + "src": "60031:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3380, + "name": "Identifier", + "src": "60039:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3381, + "name": "Identifier", + "src": "60047:7:1" + } + ], + "id": 3382, + "name": "FunctionCall", + "src": "60039:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI set of nonexistent token\"", + "value": "ERC721Metadata: URI set of nonexistent token" + }, + "id": 3383, + "name": "Literal", + "src": "60057:46:1" + } + ], + "id": 3384, + "name": "FunctionCall", + "src": "60031:73:1" + } + ], + "id": 3385, + "name": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3386, + "name": "Identifier", + "src": "60114:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3387, + "name": "Identifier", + "src": "60125:7:1" + } + ], + "id": 3388, + "name": "IndexAccess", + "src": "60114:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3376, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 3389, + "name": "Identifier", + "src": "60136:9:1" + } + ], + "id": 3390, + "name": "Assignment", + "src": "60114:31:1" + } + ], + "id": 3391, + "name": "ExpressionStatement", + "src": "60114:31:1" + } + ], + "id": 3392, + "name": "Block", + "src": "60021:131:1" + } + ], + "id": 3393, + "name": "FunctionDefinition", + "src": "59940:212:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setBaseURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3394, + "name": "StructuredDocumentation", + "src": "60158:212:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "baseURI_", + "scope": 3404, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3395, + "name": "ElementaryTypeName", + "src": "60396:6:1" + } + ], + "id": 3396, + "name": "VariableDeclaration", + "src": "60396:22:1" + } + ], + "id": 3397, + "name": "ParameterList", + "src": "60395:24:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3398, + "name": "ParameterList", + "src": "60437:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 3399, + "name": "Identifier", + "src": "60447:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3396, + "type": "string memory", + "value": "baseURI_" + }, + "id": 3400, + "name": "Identifier", + "src": "60458:8:1" + } + ], + "id": 3401, + "name": "Assignment", + "src": "60447:19:1" + } + ], + "id": 3402, + "name": "ExpressionStatement", + "src": "60447:19:1" + } + ], + "id": 3403, + "name": "Block", + "src": "60437:36:1" + } + ], + "id": 3404, + "name": "FunctionDefinition", + "src": "60375:98:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_checkOnERC721Received", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3405, + "name": "StructuredDocumentation", + "src": "60479:542:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3406, + "name": "ElementaryTypeName", + "src": "61058:7:1" + } + ], + "id": 3407, + "name": "VariableDeclaration", + "src": "61058:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3408, + "name": "ElementaryTypeName", + "src": "61072:7:1" + } + ], + "id": 3409, + "name": "VariableDeclaration", + "src": "61072:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3410, + "name": "ElementaryTypeName", + "src": "61084:7:1" + } + ], + "id": 3411, + "name": "VariableDeclaration", + "src": "61084:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3462, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3412, + "name": "ElementaryTypeName", + "src": "61101:5:1" + } + ], + "id": 3413, + "name": "VariableDeclaration", + "src": "61101:18:1" + } + ], + "id": 3414, + "name": "ParameterList", + "src": "61057:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3415, + "name": "ElementaryTypeName", + "src": "61146:4:1" + } + ], + "id": 3416, + "name": "VariableDeclaration", + "src": "61146:4:1" + } + ], + "id": 3417, + "name": "ParameterList", + "src": "61145:6:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isContract", + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3418, + "name": "Identifier", + "src": "61171:2:1" + } + ], + "id": 3419, + "name": "MemberAccess", + "src": "61171:13:1" + } + ], + "id": 3420, + "name": "FunctionCall", + "src": "61171:15:1" + } + ], + "id": 3421, + "name": "UnaryOperation", + "src": "61170:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 3422, + "name": "Literal", + "src": "61209:4:1" + } + ], + "id": 3423, + "name": "Return", + "src": "61202:11:1" + } + ], + "id": 3424, + "name": "Block", + "src": "61188:36:1" + } + ], + "id": 3425, + "name": "IfStatement", + "src": "61166:58:1" + }, + { + "attributes": { + "assignments": [ + 3427 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 3461, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3426, + "name": "ElementaryTypeName", + "src": "61233:5:1" + } + ], + "id": 3427, + "name": "VariableDeclaration", + "src": "61233:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "functionCall", + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3428, + "name": "Identifier", + "src": "61259:2:1" + } + ], + "id": 3429, + "name": "MemberAccess", + "src": "61259:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodeWithSelector", + "type": "function (bytes4) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3430, + "name": "Identifier", + "src": "61275:3:1" + } + ], + "id": 3431, + "name": "MemberAccess", + "src": "61275:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "selector", + "type": "bytes4" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "onERC721Received", + "referencedDeclaration": 725, + "type": "function (address,address,uint256,bytes memory) external returns (bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "contract IERC721Receiver", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 726, + "type": "type(contract IERC721Receiver)", + "value": "IERC721Receiver" + }, + "id": 3432, + "name": "Identifier", + "src": "61311:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3433, + "name": "Identifier", + "src": "61327:2:1" + } + ], + "id": 3434, + "name": "FunctionCall", + "src": "61311:19:1" + } + ], + "id": 3435, + "name": "MemberAccess", + "src": "61311:36:1" + } + ], + "id": 3436, + "name": "MemberAccess", + "src": "61311:45:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3437, + "name": "Identifier", + "src": "61370:10:1" + } + ], + "id": 3438, + "name": "FunctionCall", + "src": "61370:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3407, + "type": "address", + "value": "from" + }, + "id": 3439, + "name": "Identifier", + "src": "61396:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3411, + "type": "uint256", + "value": "tokenId" + }, + "id": 3440, + "name": "Identifier", + "src": "61414:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3413, + "type": "bytes memory", + "value": "_data" + }, + "id": 3441, + "name": "Identifier", + "src": "61435:5:1" + } + ], + "id": 3442, + "name": "FunctionCall", + "src": "61275:175:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3443, + "name": "Literal", + "src": "61452:52:1" + } + ], + "id": 3444, + "name": "FunctionCall", + "src": "61259:246:1" + } + ], + "id": 3445, + "name": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "attributes": { + "assignments": [ + 3447 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "retval", + "scope": 3461, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 3446, + "name": "ElementaryTypeName", + "src": "61515:6:1" + } + ], + "id": 3447, + "name": "VariableDeclaration", + "src": "61515:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes4", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "decode", + "type": "function () pure" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3448, + "name": "Identifier", + "src": "61531:3:1" + } + ], + "id": 3449, + "name": "MemberAccess", + "src": "61531:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3427, + "type": "bytes memory", + "value": "returndata" + }, + "id": 3450, + "name": "Identifier", + "src": "61542:10:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "name": "bytes4" + }, + "id": 3451, + "name": "ElementaryTypeName", + "src": "61555:6:1" + } + ], + "id": 3452, + "name": "ElementaryTypeNameExpression", + "src": "61555:6:1" + } + ], + "id": 3453, + "name": "TupleExpression", + "src": "61554:8:1" + } + ], + "id": 3454, + "name": "FunctionCall", + "src": "61531:32:1" + } + ], + "id": 3455, + "name": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3447, + "type": "bytes4", + "value": "retval" + }, + "id": 3456, + "name": "Identifier", + "src": "61581:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2596, + "type": "bytes4", + "value": "_ERC721_RECEIVED" + }, + "id": 3457, + "name": "Identifier", + "src": "61591:16:1" + } + ], + "id": 3458, + "name": "BinaryOperation", + "src": "61581:26:1" + } + ], + "id": 3459, + "name": "TupleExpression", + "src": "61580:28:1" + } + ], + "id": 3460, + "name": "Return", + "src": "61573:35:1" + } + ], + "id": 3461, + "name": "Block", + "src": "61156:459:1" + } + ], + "id": 3462, + "name": "FunctionDefinition", + "src": "61026:589:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3463, + "name": "StructuredDocumentation", + "src": "61621:101:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3464, + "name": "ElementaryTypeName", + "src": "61745:7:1" + } + ], + "id": 3465, + "name": "VariableDeclaration", + "src": "61745:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3466, + "name": "ElementaryTypeName", + "src": "61757:7:1" + } + ], + "id": 3467, + "name": "VariableDeclaration", + "src": "61757:15:1" + } + ], + "id": 3468, + "name": "ParameterList", + "src": "61744:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3469, + "name": "ParameterList", + "src": "61791:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 3470, + "name": "Identifier", + "src": "61801:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3471, + "name": "Identifier", + "src": "61817:7:1" + } + ], + "id": 3472, + "name": "IndexAccess", + "src": "61801:24:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3473, + "name": "Identifier", + "src": "61828:2:1" + } + ], + "id": 3474, + "name": "Assignment", + "src": "61801:29:1" + } + ], + "id": 3475, + "name": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 563, + "type": "function (address,address,uint256)", + "value": "Approval" + }, + "id": 3476, + "name": "Identifier", + "src": "61845:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3477, + "name": "Identifier", + "src": "61854:6:1" + } + ], + "id": 3478, + "name": "MemberAccess", + "src": "61854:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3479, + "name": "Identifier", + "src": "61869:7:1" + } + ], + "id": 3480, + "name": "FunctionCall", + "src": "61854:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3481, + "name": "Identifier", + "src": "61879:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3482, + "name": "Identifier", + "src": "61883:7:1" + } + ], + "id": 3483, + "name": "FunctionCall", + "src": "61845:46:1" + } + ], + "id": 3484, + "name": "EmitStatement", + "src": "61840:51:1" + } + ], + "id": 3485, + "name": "Block", + "src": "61791:125:1" + } + ], + "id": 3486, + "name": "FunctionDefinition", + "src": "61727:189:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_beforeTokenTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3487, + "name": "StructuredDocumentation", + "src": "61922:585:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3488, + "name": "ElementaryTypeName", + "src": "62542:7:1" + } + ], + "id": 3489, + "name": "VariableDeclaration", + "src": "62542:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3490, + "name": "ElementaryTypeName", + "src": "62556:7:1" + } + ], + "id": 3491, + "name": "VariableDeclaration", + "src": "62556:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3492, + "name": "ElementaryTypeName", + "src": "62568:7:1" + } + ], + "id": 3493, + "name": "VariableDeclaration", + "src": "62568:15:1" + } + ], + "id": 3494, + "name": "ParameterList", + "src": "62541:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3495, + "name": "ParameterList", + "src": "62602:0:1" + }, + { + "attributes": { + "statements": [ + null + ] + }, + "children": [], + "id": 3496, + "name": "Block", + "src": "62602:3:1" + } + ], + "id": 3497, + "name": "FunctionDefinition", + "src": "62512:93:1" + } + ], + "id": 3498, + "name": "ContractDefinition", + "src": "46080:16527:1" + } + ], + "id": 3499, + "name": "SourceUnit", + "src": "84:62524:1" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-13T11:18:07.458Z", + "devdoc": { + "details": "Library for managing an enumerable variant of Solidity's https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`] type. Maps have the following properties: - Entries are added, removed, and checked for existence in constant time (O(1)). - Entries are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example { // Add the library methods using EnumerableMap for EnumerableMap.UintToAddressMap; // Declare a set state variable EnumerableMap.UintToAddressMap private myMap; } ``` As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are supported.", + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/abis/EnumerableSet.json b/src/abis/EnumerableSet.json new file mode 100644 index 0000000..64f4bf6 --- /dev/null +++ b/src/abis/EnumerableSet.json @@ -0,0 +1,77558 @@ +{ + "contractName": "EnumerableSet", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example { // Add the library methods using EnumerableSet for EnumerableSet.AddressSet; // Declare a set state variable EnumerableSet.AddressSet private mySet; } ``` As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) and `uint256` (`UintSet`) are supported.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":\"EnumerableSet\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":{\"keccak256\":\"0xac9220652f9879c5fb3116025d59e8fbf6c2c3d149aed9f617b88edd31402044\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48de100723de94a6590c6db5bae5098a93445194389c3f3eeb104c7239ef3044\",\"dweb:/ipfs/QmVHLEtfLqBqX7XQRHfLuuwtufRBFJFHfgY4zbFRpaZwXC\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200c94239323e429fc23696fbe3007fc80afae86638981544a880aa26104513a8c64736f6c63430007060033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200c94239323e429fc23696fbe3007fc80afae86638981544a880aa26104513a8c64736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "26511:8634:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "26511:8634:1:-:0;;;;;;;;", + "source": "// SPDX-License-Identifier: MIT\n\n// File: @openzeppelin/contracts/utils/Context.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\n\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Enumerable is IERC721 {\n\n /**\n * @dev Returns the total amount of tokens stored by the contract.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);\n\n /**\n * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n * Use along with {totalSupply} to enumerate all tokens.\n */\n function tokenByIndex(uint256 index) external view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\npragma solidity >=0.6.0 <0.8.0;\n\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts may inherit from this and call {_registerInterface} to declare\n * their support of an interface.\n */\nabstract contract ERC165 is IERC165 {\n /*\n * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7\n */\n bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;\n\n /**\n * @dev Mapping of interface ids to whether or not it's supported.\n */\n mapping(bytes4 => bool) private _supportedInterfaces;\n\n constructor () {\n // Derived contracts need only register support for their own interfaces,\n // we register support for ERC165 itself here\n _registerInterface(_INTERFACE_ID_ERC165);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n *\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return _supportedInterfaces[interfaceId];\n }\n\n /**\n * @dev Registers the contract as an implementer of the interface defined by\n * `interfaceId`. Support of the actual ERC165 interface is automatic and\n * registering its interface id is not required.\n *\n * See {IERC165-supportsInterface}.\n *\n * Requirements:\n *\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).\n */\n function _registerInterface(bytes4 interfaceId) internal virtual {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the substraction of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n return a - b;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) return 0;\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: division by zero\");\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: modulo by zero\");\n return a % b;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {trySub}.\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryDiv}.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting with custom message when dividing by zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryMod}.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a % b;\n }\n}\n\n// File: @openzeppelin/contracts/utils/Address.sol\npragma solidity >=0.6.2 <0.8.0;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n // solhint-disable-next-line no-inline-assembly\n assembly { size := extcodesize(account) }\n return size > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: value }(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.staticcall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableSet.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) { // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n bytes32 lastvalue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastvalue;\n // Update the index for the moved value\n set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n require(set._values.length > index, \"EnumerableSet: index out of bounds\");\n return set._values[index];\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableMap.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing an enumerable variant of Solidity's\n * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n * type.\n *\n * Maps have the following properties:\n *\n * - Entries are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Entries are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableMap for EnumerableMap.UintToAddressMap;\n *\n * // Declare a set state variable\n * EnumerableMap.UintToAddressMap private myMap;\n * }\n * ```\n *\n * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n * supported.\n */\nlibrary EnumerableMap {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Map type with\n // bytes32 keys and values.\n // The Map implementation uses private functions, and user-facing\n // implementations (such as Uint256ToAddressMap) are just wrappers around\n // the underlying Map.\n // This means that we can only create new EnumerableMaps for types that fit\n // in bytes32.\n\n struct MapEntry {\n bytes32 _key;\n bytes32 _value;\n }\n\n struct Map {\n // Storage of map keys and values\n MapEntry[] _entries;\n\n // Position of the entry defined by a key in the `entries` array, plus 1\n // because index 0 means a key is not in the map.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex == 0) { // Equivalent to !contains(map, key)\n map._entries.push(MapEntry({ _key: key, _value: value }));\n // The entry is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n map._indexes[key] = map._entries.length;\n return true;\n } else {\n map._entries[keyIndex - 1]._value = value;\n return false;\n }\n }\n\n /**\n * @dev Removes a key-value pair from a map. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function _remove(Map storage map, bytes32 key) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex != 0) { // Equivalent to contains(map, key)\n // To delete a key-value pair from the _entries array in O(1), we swap the entry to delete with the last one\n // in the array, and then remove the last entry (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = keyIndex - 1;\n uint256 lastIndex = map._entries.length - 1;\n\n // When the entry to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n MapEntry storage lastEntry = map._entries[lastIndex];\n\n // Move the last entry to the index where the entry to delete is\n map._entries[toDeleteIndex] = lastEntry;\n // Update the index for the moved entry\n map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved entry was stored\n map._entries.pop();\n\n // Delete the index for the deleted slot\n delete map._indexes[key];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function _contains(Map storage map, bytes32 key) private view returns (bool) {\n return map._indexes[key] != 0;\n }\n\n /**\n * @dev Returns the number of key-value pairs in the map. O(1).\n */\n function _length(Map storage map) private view returns (uint256) {\n return map._entries.length;\n }\n\n /**\n * @dev Returns the key-value pair stored at position `index` in the map. O(1).\n *\n * Note that there are no guarantees on the ordering of entries inside the\n * array, and it may change when more entries are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) {\n require(map._entries.length > index, \"EnumerableMap: index out of bounds\");\n\n MapEntry storage entry = map._entries[index];\n return (entry._key, entry._value);\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n */\n function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) {\n uint256 keyIndex = map._indexes[key];\n if (keyIndex == 0) return (false, 0); // Equivalent to contains(map, key)\n return (true, map._entries[keyIndex - 1]._value); // All indexes are 1-based\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function _get(Map storage map, bytes32 key) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, \"EnumerableMap: nonexistent key\"); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n /**\n * @dev Same as {_get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {_tryGet}.\n */\n function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n // UintToAddressMap\n\n struct UintToAddressMap {\n Map _inner;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) {\n return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {\n return _remove(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {\n return _contains(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns the number of elements in the map. O(1).\n */\n function length(UintToAddressMap storage map) internal view returns (uint256) {\n return _length(map._inner);\n }\n\n /**\n * @dev Returns the element stored at position `index` in the set. O(1).\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {\n (bytes32 key, bytes32 value) = _at(map._inner, index);\n return (uint256(key), address(uint160(uint256(value))));\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n *\n * _Available since v3.4._\n */\n function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) {\n (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key));\n return (success, address(uint160(uint256(value))));\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key)))));\n }\n\n /**\n * @dev Same as {get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryGet}.\n */\n function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage))));\n }\n}\n\n// File: @openzeppelin/contracts/utils/Strings.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n /**\n * @dev Converts a `uint256` to its ASCII `string` representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n uint256 index = digits - 1;\n temp = value;\n while (temp != 0) {\n buffer[index--] = bytes1(uint8(48 + temp % 10));\n temp /= 10;\n }\n return string(buffer);\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 Non-Fungible Token Standard basic implementation\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable {\n using SafeMath for uint256;\n using Address for address;\n using EnumerableSet for EnumerableSet.UintSet;\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n using Strings for uint256;\n\n // Equals to `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n // which can be also obtained as `IERC721Receiver(0).onERC721Received.selector`\n bytes4 private constant _ERC721_RECEIVED = 0x150b7a02;\n\n // Mapping from holder address to their (enumerable) set of owned tokens\n mapping (address => EnumerableSet.UintSet) private _holderTokens;\n\n // Enumerable mapping from token ids to their owners\n EnumerableMap.UintToAddressMap private _tokenOwners;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Optional mapping for token URIs\n mapping (uint256 => string) private _tokenURIs;\n\n // Base URI\n string private _baseURI;\n\n /*\n * bytes4(keccak256('balanceOf(address)')) == 0x70a08231\n * bytes4(keccak256('ownerOf(uint256)')) == 0x6352211e\n * bytes4(keccak256('approve(address,uint256)')) == 0x095ea7b3\n * bytes4(keccak256('getApproved(uint256)')) == 0x081812fc\n * bytes4(keccak256('setApprovalForAll(address,bool)')) == 0xa22cb465\n * bytes4(keccak256('isApprovedForAll(address,address)')) == 0xe985e9c5\n * bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde\n *\n * => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^\n * 0xa22cb465 ^ 0xe985e9c5 ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n /*\n * bytes4(keccak256('name()')) == 0x06fdde03\n * bytes4(keccak256('symbol()')) == 0x95d89b41\n * bytes4(keccak256('tokenURI(uint256)')) == 0xc87b56dd\n *\n * => 0x06fdde03 ^ 0x95d89b41 ^ 0xc87b56dd == 0x5b5e139f\n */\n bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f;\n\n /*\n * bytes4(keccak256('totalSupply()')) == 0x18160ddd\n * bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) == 0x2f745c59\n * bytes4(keccak256('tokenByIndex(uint256)')) == 0x4f6ccce7\n *\n * => 0x18160ddd ^ 0x2f745c59 ^ 0x4f6ccce7 == 0x780e9d63\n */\n bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor (string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n return _holderTokens[owner].length();\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n return _tokenOwners.get(tokenId, \"ERC721: owner query for nonexistent token\");\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).\n if (bytes(_tokenURI).length > 0) {\n return string(abi.encodePacked(base, _tokenURI));\n }\n // If there is a baseURI but no tokenURI, concatenate the tokenID to the baseURI.\n return string(abi.encodePacked(base, tokenId.toString()));\n }\n\n /**\n * @dev Returns the base URI set via {_setBaseURI}. This will be\n * automatically added as a prefix in {tokenURI} to each token's URI, or\n * to the token ID if no specific URI is set for that token ID.\n */\n function baseURI() public view virtual returns (string memory) {\n return _baseURI;\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\n return _holderTokens[owner].at(index);\n }\n\n /**\n * @dev See {IERC721Enumerable-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n // _tokenOwners are indexed by tokenIds, so .length() returns the number of tokenIds\n return _tokenOwners.length();\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenByIndex}.\n */\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\n (uint256 tokenId, ) = _tokenOwners.at(index);\n return tokenId;\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(_msgSender() == owner || ERC721.isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n require(operator != _msgSender(), \"ERC721: approve to caller\");\n\n _operatorApprovals[_msgSender()][operator] = approved;\n emit ApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n _safeTransfer(from, to, tokenId, _data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `_data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _tokenOwners.contains(tokenId);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || ERC721.isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n d*\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory _data) internal virtual {\n _mint(to, tokenId);\n require(_checkOnERC721Received(address(0), to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId);\n\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId); // internal owner\n\n _beforeTokenTransfer(owner, address(0), tokenId);\n\n // Clear approvals\n _approve(address(0), tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n\n _holderTokens[owner].remove(tokenId);\n\n _tokenOwners.remove(tokenId);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\"); // internal owner\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId);\n\n // Clear approvals from the previous owner\n _approve(address(0), tokenId);\n\n _holderTokens[from].remove(tokenId);\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = _tokenURI;\n }\n\n /**\n * @dev Internal function to set the base URI for all token IDs. It is\n * automatically added as a prefix to the value returned in {tokenURI},\n * or to the token ID if {tokenURI} is empty.\n */\n function _setBaseURI(string memory baseURI_) internal virtual {\n _baseURI = baseURI_;\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data)\n private returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n bytes memory returndata = to.functionCall(abi.encodeWithSelector(\n IERC721Receiver(to).onERC721Received.selector,\n _msgSender(),\n from,\n tokenId,\n _data\n ), \"ERC721: transfer to non ERC721Receiver implementer\");\n bytes4 retval = abi.decode(returndata, (bytes4));\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits an {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId); // internal owner\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n * transferred to `to`.\n * - When `from` is zero, `tokenId` will be minted for `to`.\n * - When `to` is zero, ``from``'s `tokenId` will be burned.\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual { }\n}\n", + "sourcePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "ast": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "id": 3499, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 509, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "84:31:1" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 530, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 517, + "nodeType": "Block", + "src": "719:34:1", + "statements": [ + { + "expression": { + "expression": { + "id": 514, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "736:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "736:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 513, + "id": 516, + "nodeType": "Return", + "src": "729:17:1" + } + ] + }, + "id": 518, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 510, + "nodeType": "ParameterList", + "parameters": [], + "src": "668:2:1" + }, + "returnParameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 518, + "src": "702:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "702:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "701:17:1" + }, + "scope": 530, + "src": "649:104:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 528, + "nodeType": "Block", + "src": "824:165:1", + "statements": [ + { + "expression": { + "id": 523, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "834:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 524, + "nodeType": "ExpressionStatement", + "src": "834:4:1" + }, + { + "expression": { + "expression": { + "id": 525, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "974:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "src": "974:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 522, + "id": 527, + "nodeType": "Return", + "src": "967:15:1" + } + ] + }, + "id": 529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 519, + "nodeType": "ParameterList", + "parameters": [], + "src": "776:2:1" + }, + "returnParameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "810:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 520, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "810:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "809:14:1" + }, + "scope": 530, + "src": "759:230:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "617:374:1" + }, + { + "id": 531, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1053:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 532, + "nodeType": "StructuredDocumentation", + "src": "1086:279:1", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 541, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 533, + "nodeType": "StructuredDocumentation", + "src": "1390:340:1", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 540, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1762:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 534, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1762:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1761:20:1" + }, + "returnParameters": { + "id": 539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1805:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1805:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1804:6:1" + }, + "scope": 541, + "src": "1735:76:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1366:447:1" + }, + { + "id": 542, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1873:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 544, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "1996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 545, + "nodeType": "InheritanceSpecifier", + "src": "1996:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "1907:67:1", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 655, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 546, + "nodeType": "StructuredDocumentation", + "src": "2010:88:1", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 554, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 548, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2118:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 550, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2140:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2140:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 552, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2160:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2117:67:1" + }, + "src": "2103:82:1" + }, + { + "anonymous": false, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "2191:94:1", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 563, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 557, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2305:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2305:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 559, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2328:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 561, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2354:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2354:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2304:74:1" + }, + "src": "2290:89:1" + }, + { + "anonymous": false, + "documentation": { + "id": 564, + "nodeType": "StructuredDocumentation", + "src": "2385:117:1", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 572, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 566, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2528:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2528:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2551:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2551:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 570, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2577:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 569, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2577:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2527:64:1" + }, + "src": "2507:85:1" + }, + { + "documentation": { + "id": 573, + "nodeType": "StructuredDocumentation", + "src": "2598:76:1", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2698:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 574, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2698:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2697:15:1" + }, + "returnParameters": { + "id": 579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2736:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2735:17:1" + }, + "scope": 655, + "src": "2679:74:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 581, + "nodeType": "StructuredDocumentation", + "src": "2759:131:1", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 588, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 583, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2912:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2912:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2911:17:1" + }, + "returnParameters": { + "id": 587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2952:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2951:15:1" + }, + "scope": 655, + "src": "2895:72:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 589, + "nodeType": "StructuredDocumentation", + "src": "2973:690:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 598, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 591, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3694:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3694:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3708:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3708:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3720:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3720:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3693:43:1" + }, + "returnParameters": { + "id": 597, + "nodeType": "ParameterList", + "parameters": [], + "src": "3745:0:1" + }, + "scope": 655, + "src": "3668:78:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 599, + "nodeType": "StructuredDocumentation", + "src": "3752:504:1", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 608, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 601, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4283:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4283:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 603, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4297:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 602, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4297:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4309:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4309:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4282:43:1" + }, + "returnParameters": { + "id": 607, + "nodeType": "ParameterList", + "parameters": [], + "src": "4334:0:1" + }, + "scope": 655, + "src": "4261:74:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 609, + "nodeType": "StructuredDocumentation", + "src": "4341:452:1", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 616, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 611, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4815:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4815:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4827:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4814:29:1" + }, + "returnParameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [], + "src": "4852:0:1" + }, + "scope": 655, + "src": "4798:55:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 617, + "nodeType": "StructuredDocumentation", + "src": "4859:139:1", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 619, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5024:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5024:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5023:17:1" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5064:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5064:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5063:18:1" + }, + "scope": 655, + "src": "5003:79:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 625, + "nodeType": "StructuredDocumentation", + "src": "5088:309:1", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 632, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5429:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5429:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5447:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 628, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5447:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5428:34:1" + }, + "returnParameters": { + "id": 631, + "nodeType": "ParameterList", + "parameters": [], + "src": "5471:0:1" + }, + "scope": 655, + "src": "5402:70:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 633, + "nodeType": "StructuredDocumentation", + "src": "5478:138:1", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 642, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5647:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5647:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5662:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5662:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5646:33:1" + }, + "returnParameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5703:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 639, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5703:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5702:6:1" + }, + "scope": 655, + "src": "5621:88:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 643, + "nodeType": "StructuredDocumentation", + "src": "5715:568:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 654, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6314:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6314:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6328:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6340:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6340:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6357:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 650, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6357:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6313:64:1" + }, + "returnParameters": { + "id": 653, + "nodeType": "ParameterList", + "parameters": [], + "src": "6386:0:1" + }, + "scope": 655, + "src": "6288:99:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1975:4414:1" + }, + { + "id": 656, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "6457:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 658, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "6654:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 659, + "nodeType": "InheritanceSpecifier", + "src": "6654:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 657, + "nodeType": "StructuredDocumentation", + "src": "6491:133:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 680, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 660, + "nodeType": "StructuredDocumentation", + "src": "6669:58:1", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 665, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [], + "src": "6745:2:1" + }, + "returnParameters": { + "id": 664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 663, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 665, + "src": "6771:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 662, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6771:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6770:15:1" + }, + "scope": 680, + "src": "6732:54:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 666, + "nodeType": "StructuredDocumentation", + "src": "6792:60:1", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 671, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 667, + "nodeType": "ParameterList", + "parameters": [], + "src": "6872:2:1" + }, + "returnParameters": { + "id": 670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 669, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "6898:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 668, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6897:15:1" + }, + "scope": 680, + "src": "6857:56:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 672, + "nodeType": "StructuredDocumentation", + "src": "6919:90:1", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 679, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7032:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7031:17:1" + }, + "returnParameters": { + "id": 678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7072:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 676, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7072:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7071:15:1" + }, + "scope": 680, + "src": "7014:73:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "6625:464:1" + }, + { + "id": 681, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "7161:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 683, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "7363:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 684, + "nodeType": "InheritanceSpecifier", + "src": "7363:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 682, + "nodeType": "StructuredDocumentation", + "src": "7195:136:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 709, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 685, + "nodeType": "StructuredDocumentation", + "src": "7378:82:1", + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "functionSelector": "18160ddd", + "id": 690, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 686, + "nodeType": "ParameterList", + "parameters": [], + "src": "7485:2:1" + }, + "returnParameters": { + "id": 689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 688, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "7511:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 687, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7511:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7510:9:1" + }, + "scope": 709, + "src": "7465:55:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "7526:171:1", + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "functionSelector": "2f745c59", + "id": 700, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7731:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7731:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7746:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7746:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7730:30:1" + }, + "returnParameters": { + "id": 699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 698, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7784:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7784:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7783:17:1" + }, + "scope": 709, + "src": "7702:99:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 701, + "nodeType": "StructuredDocumentation", + "src": "7807:164:1", + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "functionSelector": "4f6ccce7", + "id": 708, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 703, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "7998:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7998:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7997:15:1" + }, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "8036:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8036:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8035:9:1" + }, + "scope": 709, + "src": "7976:69:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "7332:715:1" + }, + { + "id": 710, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "8117:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 711, + "nodeType": "StructuredDocumentation", + "src": "8150:152:1", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 726, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 712, + "nodeType": "StructuredDocumentation", + "src": "8335:485:1", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 725, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8851:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8851:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8869:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8883:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8900:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 719, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8900:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8850:70:1" + }, + "returnParameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8939:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 722, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8939:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "8938:8:1" + }, + "scope": 726, + "src": "8825:122:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "8303:646:1" + }, + { + "id": 727, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9009:31:1" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 729, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "9243:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 730, + "nodeType": "InheritanceSpecifier", + "src": "9243:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "documentation": { + "id": 728, + "nodeType": "StructuredDocumentation", + "src": "9043:171:1", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "fullyImplemented": true, + "id": 781, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 733, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9340:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 731, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9340:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783031666663396137", + "id": 732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "9404:82:1", + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 738, + "mutability": "mutable", + "name": "_supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9491:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 737, + "keyType": { + "id": 735, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9499:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "9491:23:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 736, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9509:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 745, + "nodeType": "Block", + "src": "9565:193:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 742, + "name": "_INTERFACE_ID_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "9730:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 741, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "9711:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9711:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 744, + "nodeType": "ExpressionStatement", + "src": "9711:40:1" + } + ] + }, + "id": 746, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 739, + "nodeType": "ParameterList", + "parameters": [], + "src": "9562:2:1" + }, + "returnParameters": { + "id": 740, + "nodeType": "ParameterList", + "parameters": [], + "src": "9565:0:1" + }, + "scope": 781, + "src": "9550:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 540 + ], + "body": { + "id": 759, + "nodeType": "Block", + "src": "9999:57:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 755, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10016:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 757, + "indexExpression": { + "id": 756, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "10037:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10016:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 754, + "id": 758, + "nodeType": "Return", + "src": "10009:40:1" + } + ] + }, + "documentation": { + "id": 747, + "nodeType": "StructuredDocumentation", + "src": "9764:139:1", + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 760, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 751, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9975:8:1" + }, + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9935:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 748, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9935:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "9934:20:1" + }, + "returnParameters": { + "id": 754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 753, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9993:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9993:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9992:6:1" + }, + "scope": 781, + "src": "9908:148:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 779, + "nodeType": "Block", + "src": "10515:133:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 767, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10533:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10548:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "10533:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10560:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + }, + "value": "ERC165: invalid interface id" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "id": 766, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "10525:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10525:66:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 772, + "nodeType": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "expression": { + "id": 777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 773, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10601:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 775, + "indexExpression": { + "id": 774, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10622:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10637:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10601:40:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 778, + "nodeType": "ExpressionStatement", + "src": "10601:40:1" + } + ] + }, + "documentation": { + "id": 761, + "nodeType": "StructuredDocumentation", + "src": "10062:383:1", + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 780, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 763, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 780, + "src": "10478:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 762, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "10478:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "10477:20:1" + }, + "returnParameters": { + "id": 765, + "nodeType": "ParameterList", + "parameters": [], + "src": "10515:0:1" + }, + "scope": 781, + "src": "10450:198:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "9215:1435:1" + }, + { + "id": 782, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10703:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 783, + "nodeType": "StructuredDocumentation", + "src": "10736:563:1", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 1135, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 813, + "nodeType": "Block", + "src": "11535:98:1", + "statements": [ + { + "assignments": [ + 796 + ], + "declarations": [ + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 813, + "src": "11545:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 795, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 800, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 797, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11557:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "11561:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11557:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 801, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11576:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 802, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11580:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11576:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 808, + "nodeType": "IfStatement", + "src": "11572:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11591:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11598:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 806, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11590:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 794, + "id": 807, + "nodeType": "Return", + "src": "11583:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11618:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 810, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11624:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 811, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11617:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 794, + "id": 812, + "nodeType": "Return", + "src": "11610:16:1" + } + ] + }, + "documentation": { + "id": 784, + "nodeType": "StructuredDocumentation", + "src": "11323:131:1", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 814, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11475:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11475:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11486:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11486:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11474:22:1" + }, + "returnParameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 791, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11526:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 792, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11526:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11519:15:1" + }, + "scope": 1135, + "src": "11459:174:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 840, + "nodeType": "Block", + "src": "11855:75:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 826, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11869:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 827, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11873:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11869:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 833, + "nodeType": "IfStatement", + "src": "11865:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11884:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 831, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11883:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 825, + "id": 832, + "nodeType": "Return", + "src": "11876:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11911:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 835, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11917:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 836, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11921:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11917:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 838, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11910:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 825, + "id": 839, + "nodeType": "Return", + "src": "11903:20:1" + } + ] + }, + "documentation": { + "id": 815, + "nodeType": "StructuredDocumentation", + "src": "11639:135:1", + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 841, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 817, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11795:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11795:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 819, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11806:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11806:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11794:22:1" + }, + "returnParameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11840:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 821, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11840:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 824, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11846:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11846:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11839:15:1" + }, + "scope": 1135, + "src": "11779:151:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 881, + "nodeType": "Block", + "src": "12154:359:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 853, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12386:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12391:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12386:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 860, + "nodeType": "IfStatement", + "src": "12382:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12402:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12408:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 858, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12401:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 859, + "nodeType": "Return", + "src": "12394:16:1" + } + }, + { + "assignments": [ + 862 + ], + "declarations": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "12420:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12420:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 866, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12432:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 864, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12436:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12432:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 867, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12451:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 868, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12455:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 870, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12460:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 876, + "nodeType": "IfStatement", + "src": "12447:33:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12471:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12478:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 874, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12470:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 875, + "nodeType": "Return", + "src": "12463:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12498:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 878, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12504:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12497:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 852, + "id": 880, + "nodeType": "Return", + "src": "12490:16:1" + } + ] + }, + "documentation": { + "id": 842, + "nodeType": "StructuredDocumentation", + "src": "11936:137:1", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 844, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12094:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12094:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 846, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12105:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12093:22:1" + }, + "returnParameters": { + "id": 852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12139:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 848, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12139:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12145:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12145:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12138:15:1" + }, + "scope": 1135, + "src": "12078:435:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 908, + "nodeType": "Block", + "src": "12738:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 894, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12752:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12757:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12752:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 901, + "nodeType": "IfStatement", + "src": "12748:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12768:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12775:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 899, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12767:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 893, + "id": 900, + "nodeType": "Return", + "src": "12760:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12795:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 903, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "12801:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 904, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12805:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12801:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 906, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12794:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 893, + "id": 907, + "nodeType": "Return", + "src": "12787:20:1" + } + ] + }, + "documentation": { + "id": 883, + "nodeType": "StructuredDocumentation", + "src": "12519:138:1", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 909, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12678:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12678:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12689:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12689:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12677:22:1" + }, + "returnParameters": { + "id": 893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12723:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 889, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12723:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12729:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12729:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12722:15:1" + }, + "scope": 1135, + "src": "12662:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 935, + "nodeType": "Block", + "src": "13049:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 921, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13063:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13068:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13063:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 928, + "nodeType": "IfStatement", + "src": "13059:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13079:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13086:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 926, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13078:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 920, + "id": 927, + "nodeType": "Return", + "src": "13071:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13106:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 930, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "13112:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 931, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13116:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13112:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13105:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 920, + "id": 934, + "nodeType": "Return", + "src": "13098:20:1" + } + ] + }, + "documentation": { + "id": 910, + "nodeType": "StructuredDocumentation", + "src": "12820:148:1", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 912, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "12989:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12989:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 914, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13000:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 913, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13000:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12988:22:1" + }, + "returnParameters": { + "id": 920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 917, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13034:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 916, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13034:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 919, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13040:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13040:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13033:15:1" + }, + "scope": 1135, + "src": "12973:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 961, + "nodeType": "Block", + "src": "13427:108:1", + "statements": [ + { + "assignments": [ + 947 + ], + "declarations": [ + { + "constant": false, + "id": 947, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "13437:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13437:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 951, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13449:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 949, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 941, + "src": "13453:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13449:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 953, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13472:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 954, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13477:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13480:29:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 952, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13464:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 958, + "nodeType": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "expression": { + "id": 959, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13527:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 945, + "id": 960, + "nodeType": "Return", + "src": "13520:8:1" + } + ] + }, + "documentation": { + "id": 937, + "nodeType": "StructuredDocumentation", + "src": "13131:224:1", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13373:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13384:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13384:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13372:22:1" + }, + "returnParameters": { + "id": 945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13418:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13418:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13417:9:1" + }, + "scope": 1135, + "src": "13360:175:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 983, + "nodeType": "Block", + "src": "13873:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 973, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13896:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13891:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13883:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 979, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13949:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 980, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13953:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13949:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 971, + "id": 982, + "nodeType": "Return", + "src": "13942:12:1" + } + ] + }, + "documentation": { + "id": 963, + "nodeType": "StructuredDocumentation", + "src": "13541:260:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 984, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13819:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 964, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 967, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13830:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13830:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13818:22:1" + }, + "returnParameters": { + "id": 971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 970, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13864:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13864:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13863:9:1" + }, + "scope": 1135, + "src": "13806:155:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "14275:148:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 994, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14289:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14294:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14289:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "IfStatement", + "src": "14285:20:1", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14304:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 993, + "id": 998, + "nodeType": "Return", + "src": "14297:8:1" + } + }, + { + "assignments": [ + 1001 + ], + "declarations": [ + { + "constant": false, + "id": 1001, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "14315:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14315:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1005, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1002, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14327:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1003, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14331:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14327:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1007, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14350:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1008, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14354:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1010, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14359:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14362:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1006, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14342:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14342:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "expression": { + "id": 1015, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14415:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 993, + "id": 1016, + "nodeType": "Return", + "src": "14408:8:1" + } + ] + }, + "documentation": { + "id": 985, + "nodeType": "StructuredDocumentation", + "src": "13967:236:1", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14221:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 989, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14232:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 988, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14232:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14220:22:1" + }, + "returnParameters": { + "id": 993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 992, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14266:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14266:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14265:9:1" + }, + "scope": 1135, + "src": "14208:215:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1039, + "nodeType": "Block", + "src": "14954:83:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1029, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "14972:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14976:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14972:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14979:28:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14964:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14964:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1034, + "nodeType": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1035, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1021, + "src": "15025:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1036, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "15029:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15025:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1027, + "id": 1038, + "nodeType": "Return", + "src": "15018:12:1" + } + ] + }, + "documentation": { + "id": 1019, + "nodeType": "StructuredDocumentation", + "src": "14429:453:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1040, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1021, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14900:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14900:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1023, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14911:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14899:22:1" + }, + "returnParameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1026, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14945:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14945:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14944:9:1" + }, + "scope": 1135, + "src": "14887:150:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1061, + "nodeType": "Block", + "src": "15557:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1051, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15575:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15579:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15582:26:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 1050, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "15567:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15567:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1056, + "nodeType": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1057, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1043, + "src": "15626:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1058, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15630:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15626:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1049, + "id": 1060, + "nodeType": "Return", + "src": "15619:12:1" + } + ] + }, + "documentation": { + "id": 1041, + "nodeType": "StructuredDocumentation", + "src": "15043:442:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1062, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1043, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15503:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1045, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15514:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15502:22:1" + }, + "returnParameters": { + "id": 1049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1048, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15548:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15548:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15547:9:1" + }, + "scope": 1135, + "src": "15490:148:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1085, + "nodeType": "Block", + "src": "16197:68:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16215:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1076, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16220:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16215:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1078, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "16223:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1074, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "16207:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16207:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1080, + "nodeType": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16253:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1082, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16257:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16253:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1073, + "id": 1084, + "nodeType": "Return", + "src": "16246:12:1" + } + ] + }, + "documentation": { + "id": 1063, + "nodeType": "StructuredDocumentation", + "src": "15644:453:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1086, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16115:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16115:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16126:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16137:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1068, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16137:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16114:50:1" + }, + "returnParameters": { + "id": 1073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16188:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16188:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16187:9:1" + }, + "scope": 1135, + "src": "16102:163:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1109, + "nodeType": "Block", + "src": "17017:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1099, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17035:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17039:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17035:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1102, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1093, + "src": "17042:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17027:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17027:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1105, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "17072:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1106, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17076:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17072:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1097, + "id": 1108, + "nodeType": "Return", + "src": "17065:12:1" + } + ] + }, + "documentation": { + "id": 1087, + "nodeType": "StructuredDocumentation", + "src": "16271:646:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16935:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16935:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16946:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16946:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1093, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16957:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1092, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16957:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16934:50:1" + }, + "returnParameters": { + "id": 1097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1096, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "17008:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17008:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17007:9:1" + }, + "scope": 1135, + "src": "16922:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1133, + "nodeType": "Block", + "src": "17825:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1123, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17843:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17847:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17843:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1126, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "17850:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17835:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1128, + "nodeType": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1129, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "17880:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1130, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17880:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1121, + "id": 1132, + "nodeType": "Return", + "src": "17873:12:1" + } + ] + }, + "documentation": { + "id": 1111, + "nodeType": "StructuredDocumentation", + "src": "17090:635:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17743:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17743:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17754:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17754:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17765:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1116, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17765:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17742:50:1" + }, + "returnParameters": { + "id": 1121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17816:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17816:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17815:9:1" + }, + "scope": 1135, + "src": "17730:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "11300:6594:1" + }, + { + "id": 1136, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "17947:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1137, + "nodeType": "StructuredDocumentation", + "src": "17980:67:1", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 1430, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1153, + "nodeType": "Block", + "src": "18706:347:1", + "statements": [ + { + "assignments": [ + 1146 + ], + "declarations": [ + { + "constant": false, + "id": 1146, + "mutability": "mutable", + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 1153, + "src": "18903:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18903:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1147, + "nodeType": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "18990:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18992:28:1", + "value": { + "arguments": [ + { + "name": "account", + "nodeType": "YulIdentifier", + "src": "19012:7:1" + } + ], + "functionName": { + "name": "extcodesize", + "nodeType": "YulIdentifier", + "src": "19000:11:1" + }, + "nodeType": "YulFunctionCall", + "src": "19000:20:1" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "18992:4:1" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "id": 1148, + "nodeType": "InlineAssembly", + "src": "18981:41:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1149, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "19038:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19045:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19038:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1144, + "id": 1152, + "nodeType": "Return", + "src": "19031:15:1" + } + ] + }, + "documentation": { + "id": 1138, + "nodeType": "StructuredDocumentation", + "src": "18070:565:1", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1154, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1140, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18660:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18660:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18659:17:1" + }, + "returnParameters": { + "id": 1144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1143, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18700:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1142, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18700:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "18699:6:1" + }, + "scope": 1430, + "src": "18640:413:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1187, + "nodeType": "Block", + "src": "20041:320:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1165, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "20067:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20059:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1163, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20059:7:1", + "typeDescriptions": {} + } + }, + "id": 1166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20059:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "20059:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1168, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20084:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20059:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20092:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 1162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20051:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1172, + "nodeType": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "assignments": [ + 1174, + null + ], + "declarations": [ + { + "constant": false, + "id": 1174, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1187, + "src": "20213:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1173, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20213:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1181, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20263:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 1175, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1157, + "src": "20231:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "20231:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1177, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20254:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "20231:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20231:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1183, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "20284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20293:60:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 1182, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20276:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20276:78:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1186, + "nodeType": "ExpressionStatement", + "src": "20276:78:1" + } + ] + }, + "documentation": { + "id": 1155, + "nodeType": "StructuredDocumentation", + "src": "19059:906:1", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1188, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1157, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "19989:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19989:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1159, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "20016:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19988:43:1" + }, + "returnParameters": { + "id": 1161, + "nodeType": "ParameterList", + "parameters": [], + "src": "20041:0:1" + }, + "scope": 1430, + "src": "19970:391:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1204, + "nodeType": "Block", + "src": "21191:82:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1199, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "21219:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1200, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "21227:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21233:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 1198, + "name": "functionCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "src": "21206:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21206:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1197, + "id": 1203, + "nodeType": "Return", + "src": "21199:67:1" + } + ] + }, + "documentation": { + "id": 1189, + "nodeType": "StructuredDocumentation", + "src": "20367:730:1", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1205, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21124:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21124:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21140:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1192, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21140:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21123:35:1" + }, + "returnParameters": { + "id": 1197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1196, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21177:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1195, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21176:14:1" + }, + "scope": 1430, + "src": "21102:171:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1224, + "nodeType": "Block", + "src": "21612:76:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1218, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "21651:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1219, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "21659:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21665:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 1221, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "21668:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1217, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "21629:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21629:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1216, + "id": 1223, + "nodeType": "Return", + "src": "21622:59:1" + } + ] + }, + "documentation": { + "id": 1206, + "nodeType": "StructuredDocumentation", + "src": "21279:211:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1208, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21517:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21517:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21533:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1209, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21533:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1212, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21552:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1211, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "21552:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "21516:63:1" + }, + "returnParameters": { + "id": 1216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1215, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21598:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1214, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21598:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21597:14:1" + }, + "scope": 1430, + "src": "21495:193:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1244, + "nodeType": "Block", + "src": "22163:111:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1238, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "22202:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1239, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "22210:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1240, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1232, + "src": "22216:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22223:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 1237, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "22180:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22180:87:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1236, + "id": 1243, + "nodeType": "Return", + "src": "22173:94:1" + } + ] + }, + "documentation": { + "id": 1226, + "nodeType": "StructuredDocumentation", + "src": "21694:351:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1245, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1228, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22081:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22081:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1230, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22097:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1229, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22097:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1232, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22116:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "22080:50:1" + }, + "returnParameters": { + "id": 1236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1235, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22149:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1234, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22149:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22148:14:1" + }, + "scope": 1430, + "src": "22050:224:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1294, + "nodeType": "Block", + "src": "22663:382:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1262, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "22689:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22681:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22681:7:1", + "typeDescriptions": {} + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22681:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "22681:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1265, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22706:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22681:30:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 1267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22713:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 1259, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22673:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22673:81:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1269, + "nodeType": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1272, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22783:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1271, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "22772:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22772:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22792:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 1270, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22764:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22764:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1276, + "nodeType": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "assignments": [ + 1278, + 1280 + ], + "declarations": [ + { + "constant": false, + "id": 1278, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22895:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1277, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22895:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1280, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22909:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1279, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22909:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1287, + "initialValue": { + "arguments": [ + { + "id": 1285, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1250, + "src": "22964:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1281, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22936:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "22936:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1283, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22956:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "22936:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22936:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1289, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "23004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1290, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1280, + "src": "23013:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1291, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "23025:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1288, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "22986:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22986:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1258, + "id": 1293, + "nodeType": "Return", + "src": "22979:59:1" + } + ] + }, + "documentation": { + "id": 1246, + "nodeType": "StructuredDocumentation", + "src": "22280:237:1", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1295, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1248, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22553:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22553:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1250, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22569:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1249, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22569:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1252, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22588:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22588:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1254, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22603:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1253, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "22603:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "22552:78:1" + }, + "returnParameters": { + "id": 1258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1257, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22649:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1256, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22649:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22648:14:1" + }, + "scope": 1430, + "src": "22522:523:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1311, + "nodeType": "Block", + "src": "23322:97:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1306, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1298, + "src": "23358:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1307, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "23366:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23372:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 1305, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "src": "23339:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23339:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1304, + "id": 1310, + "nodeType": "Return", + "src": "23332:80:1" + } + ] + }, + "documentation": { + "id": 1296, + "nodeType": "StructuredDocumentation", + "src": "23051:166:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1298, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23250:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23250:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23266:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1299, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23266:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23249:35:1" + }, + "returnParameters": { + "id": 1304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1303, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23308:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23308:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23307:14:1" + }, + "scope": 1430, + "src": "23222:197:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1346, + "nodeType": "Block", + "src": "23731:288:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1326, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1325, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "23749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23749:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23769:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + }, + "value": "Address: static call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "id": 1324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "23741:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23741:67:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1330, + "nodeType": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "assignments": [ + 1332, + 1334 + ], + "declarations": [ + { + "constant": false, + "id": 1332, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23879:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1331, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23879:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1334, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23893:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1333, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23893:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1339, + "initialValue": { + "arguments": [ + { + "id": 1337, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "23938:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1335, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23920:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "23920:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23920:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1341, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "23978:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1342, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1334, + "src": "23987:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1343, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "23999:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1340, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "23960:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23960:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1323, + "id": 1345, + "nodeType": "Return", + "src": "23953:59:1" + } + ] + }, + "documentation": { + "id": 1313, + "nodeType": "StructuredDocumentation", + "src": "23425:173:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1315, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23631:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23631:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1317, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23647:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1316, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23647:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1319, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23666:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1318, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "23666:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "23630:63:1" + }, + "returnParameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1322, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23717:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1321, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23717:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23716:14:1" + }, + "scope": 1430, + "src": "23603:416:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1363, + "nodeType": "Block", + "src": "24295:101:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1358, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "24333:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1359, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "24341:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24347:41:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 1357, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "src": "24312:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24312:77:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1356, + "id": 1362, + "nodeType": "Return", + "src": "24305:84:1" + } + ] + }, + "documentation": { + "id": 1348, + "nodeType": "StructuredDocumentation", + "src": "24025:168:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1364, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1350, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24228:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24244:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1351, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24227:35:1" + }, + "returnParameters": { + "id": 1356, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1355, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24281:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1354, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24281:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24280:14:1" + }, + "scope": 1430, + "src": "24198:198:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1398, + "nodeType": "Block", + "src": "24707:292:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1378, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24736:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1377, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "24725:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24725:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24745:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + }, + "value": "Address: delegate call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "id": 1376, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "24717:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24717:69:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1382, + "nodeType": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "assignments": [ + 1384, + 1386 + ], + "declarations": [ + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24857:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1383, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "24857:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24871:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1385, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24871:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1391, + "initialValue": { + "arguments": [ + { + "id": 1389, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1369, + "src": "24918:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1387, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "24898:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24898:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1393, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1384, + "src": "24958:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1394, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1386, + "src": "24967:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1395, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1371, + "src": "24979:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1392, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "24940:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24940:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1375, + "id": 1397, + "nodeType": "Return", + "src": "24933:59:1" + } + ] + }, + "documentation": { + "id": 1365, + "nodeType": "StructuredDocumentation", + "src": "24402:175:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1399, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1367, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24612:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24612:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1369, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24628:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1368, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24628:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1371, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24647:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1370, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "24647:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "24611:63:1" + }, + "returnParameters": { + "id": 1375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1374, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24693:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1373, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24693:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24692:14:1" + }, + "scope": 1430, + "src": "24582:417:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1428, + "nodeType": "Block", + "src": "25134:596:1", + "statements": [ + { + "condition": { + "id": 1410, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "25148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1426, + "nodeType": "Block", + "src": "25205:519:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1414, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25289:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "25289:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25309:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25289:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1424, + "nodeType": "Block", + "src": "25661:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1421, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1405, + "src": "25686:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1420, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "25679:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25679:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1423, + "nodeType": "ExpressionStatement", + "src": "25679:20:1" + } + ] + }, + "id": 1425, + "nodeType": "IfStatement", + "src": "25285:429:1", + "trueBody": { + "id": 1419, + "nodeType": "Block", + "src": "25312:343:1", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "25496:145:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "25518:40:1", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25547:10:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "25541:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "25541:17:1" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "25522:15:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25590:2:1", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25594:10:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25586:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "25586:19:1" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "25607:15:1" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "25579:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "25579:44:1" + }, + "nodeType": "YulExpressionStatement", + "src": "25579:44:1" + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "id": 1418, + "nodeType": "InlineAssembly", + "src": "25487:154:1" + } + ] + } + } + ] + }, + "id": 1427, + "nodeType": "IfStatement", + "src": "25144:580:1", + "trueBody": { + "id": 1413, + "nodeType": "Block", + "src": "25157:42:1", + "statements": [ + { + "expression": { + "id": 1411, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25178:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1409, + "id": 1412, + "nodeType": "Return", + "src": "25171:17:1" + } + ] + } + } + ] + }, + "id": 1429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1401, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25032:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1400, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "25032:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1403, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25046:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1402, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25046:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1405, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25071:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1404, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "25071:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "25031:67:1" + }, + "returnParameters": { + "id": 1409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1408, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25120:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1407, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25120:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "25119:14:1" + }, + "scope": 1430, + "src": "25005:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3499, + "src": "18048:7684:1" + }, + { + "id": 1431, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "25791:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1432, + "nodeType": "StructuredDocumentation", + "src": "25824:686:1", + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "fullyImplemented": true, + "id": 1921, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableSet.Set", + "id": 1440, + "members": [ + { + "constant": false, + "id": 1435, + "mutability": "mutable", + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27033:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1433, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27033:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1434, + "nodeType": "ArrayTypeName", + "src": "27033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1439, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27184:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1438, + "keyType": { + "id": 1436, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "27184:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "26979:249:1", + "visibility": "public" + }, + { + "body": { + "id": 1480, + "nodeType": "Block", + "src": "27467:335:1", + "statements": [ + { + "condition": { + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "27481:22:1", + "subExpression": { + "arguments": [ + { + "id": 1451, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27492:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + { + "id": 1452, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27497:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1450, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "27482:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27482:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1478, + "nodeType": "Block", + "src": "27759:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27780:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1449, + "id": 1477, + "nodeType": "Return", + "src": "27773:12:1" + } + ] + }, + "id": 1479, + "nodeType": "IfStatement", + "src": "27477:319:1", + "trueBody": { + "id": 1475, + "nodeType": "Block", + "src": "27505:248:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1460, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27536:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "expression": { + "id": 1455, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1458, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27519:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "27519:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 1461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27519:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1462, + "nodeType": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "expression": { + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1463, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27677:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "27677:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1467, + "indexExpression": { + "id": 1465, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27690:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "27677:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1468, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27699:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1469, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27699:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "27699:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27677:40:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1472, + "nodeType": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27738:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1449, + "id": 1474, + "nodeType": "Return", + "src": "27731:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1441, + "nodeType": "StructuredDocumentation", + "src": "27234:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1481, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27412:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1442, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27412:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1445, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27429:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1444, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27411:32:1" + }, + "returnParameters": { + "id": 1449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1447, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "27461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "27460:6:1" + }, + "scope": 1921, + "src": "27398:404:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1560, + "nodeType": "Block", + "src": "28042:1440:1", + "statements": [ + { + "assignments": [ + 1492 + ], + "declarations": [ + { + "constant": false, + "id": 1492, + "mutability": "mutable", + "name": "valueIndex", + "nodeType": "VariableDeclaration", + "scope": 1560, + "src": "28152:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28152:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1497, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1493, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28173:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1494, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "28173:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1496, + "indexExpression": { + "id": 1495, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "28186:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28173:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1498, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28207:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28221:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28207:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1558, + "nodeType": "Block", + "src": "29439:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29460:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1490, + "id": 1557, + "nodeType": "Return", + "src": "29453:12:1" + } + ] + }, + "id": 1559, + "nodeType": "IfStatement", + "src": "28203:1273:1", + "trueBody": { + "id": 1555, + "nodeType": "Block", + "src": "28224:1209:1", + "statements": [ + { + "assignments": [ + 1502 + ], + "declarations": [ + { + "constant": false, + "id": 1502, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28564:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28564:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1506, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1503, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28588:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28588:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "assignments": [ + 1508 + ], + "declarations": [ + { + "constant": false, + "id": 1508, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28616:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28616:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1514, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1509, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28636:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28636:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "28636:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28657:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28636:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "assignments": [ + 1516 + ], + "declarations": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "lastvalue", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28898:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1515, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28898:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1521, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1517, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28918:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1520, + "indexExpression": { + "id": 1519, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "28930:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28918:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "expression": { + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1522, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29032:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1525, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29032:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1526, + "indexExpression": { + "id": 1524, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29044:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29032:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1527, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29061:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "29032:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1529, + "nodeType": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "expression": { + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1530, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29136:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1533, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29136:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1534, + "indexExpression": { + "id": 1532, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29149:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29136:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1535, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29162:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29178:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "29162:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29136:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1539, + "nodeType": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 1540, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29285:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "29285:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29285:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1546, + "nodeType": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "expression": { + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "29370:26:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 1547, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29377:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29377:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1550, + "indexExpression": { + "id": 1549, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "29390:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29377:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1552, + "nodeType": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29418:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1490, + "id": 1554, + "nodeType": "Return", + "src": "29411:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1482, + "nodeType": "StructuredDocumentation", + "src": "27808:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1561, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "27987:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1483, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27987:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1486, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28004:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1485, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27986:32:1" + }, + "returnParameters": { + "id": 1490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28036:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1488, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "28036:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "28035:6:1" + }, + "scope": 1921, + "src": "27970:1512:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1578, + "nodeType": "Block", + "src": "29642:48:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 1571, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "29659:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29659:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1574, + "indexExpression": { + "id": 1573, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "29672:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29659:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29682:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "29659:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1570, + "id": 1577, + "nodeType": "Return", + "src": "29652:31:1" + } + ] + }, + "documentation": { + "id": 1562, + "nodeType": "StructuredDocumentation", + "src": "29488:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1579, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1564, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29582:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1563, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29582:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29599:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1565, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "29599:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "29581:32:1" + }, + "returnParameters": { + "id": 1570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29636:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "29636:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "29635:6:1" + }, + "scope": 1921, + "src": "29563:127:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1591, + "nodeType": "Block", + "src": "29836:42:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 1587, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1582, + "src": "29853:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1588, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29853:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "29853:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1586, + "id": 1590, + "nodeType": "Return", + "src": "29846:25:1" + } + ] + }, + "documentation": { + "id": 1580, + "nodeType": "StructuredDocumentation", + "src": "29696:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1582, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29788:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1581, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29788:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "src": "29787:17:1" + }, + "returnParameters": { + "id": 1586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1585, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29827:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29826:9:1" + }, + "scope": 1921, + "src": "29771:107:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1616, + "nodeType": "Block", + "src": "30286:125:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1603, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30304:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30304:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "30304:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1606, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30325:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30304:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30332:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + }, + "value": "EnumerableSet: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "id": 1602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "30296:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30296:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1610, + "nodeType": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 1611, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30386:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30386:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1614, + "indexExpression": { + "id": 1613, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30398:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30386:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1601, + "id": 1615, + "nodeType": "Return", + "src": "30379:25:1" + } + ] + }, + "documentation": { + "id": 1593, + "nodeType": "StructuredDocumentation", + "src": "29883:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1617, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1595, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30223:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1594, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30223:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30240:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30240:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30222:32:1" + }, + "returnParameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1600, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30277:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1599, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30276:9:1" + }, + "scope": 1921, + "src": "30210:201:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableSet.Bytes32Set", + "id": 1620, + "members": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "30464:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1618, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30464:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "30436:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1636, + "nodeType": "Block", + "src": "30727:47:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1631, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "30749:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "30749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1625, + "src": "30761:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1630, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "30744:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30744:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1629, + "id": 1635, + "nodeType": "Return", + "src": "30737:30:1" + } + ] + }, + "documentation": { + "id": 1621, + "nodeType": "StructuredDocumentation", + "src": "30487:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30664:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1622, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30664:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30688:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1624, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30688:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30663:39:1" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30721:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "30721:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "30720:6:1" + }, + "scope": 1921, + "src": "30651:123:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1653, + "nodeType": "Block", + "src": "31021:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1648, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "31046:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31046:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1650, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "31058:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1647, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "31038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31038:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1646, + "id": 1652, + "nodeType": "Return", + "src": "31031:33:1" + } + ] + }, + "documentation": { + "id": 1638, + "nodeType": "StructuredDocumentation", + "src": "30780:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1654, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30958:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1639, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30958:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30982:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1641, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30982:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30957:39:1" + }, + "returnParameters": { + "id": 1646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1645, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "31015:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31015:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31014:6:1" + }, + "scope": 1921, + "src": "30942:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1670, + "nodeType": "Block", + "src": "31238:52:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1665, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1657, + "src": "31265:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31265:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1667, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1659, + "src": "31277:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1664, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "31255:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31255:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1663, + "id": 1669, + "nodeType": "Return", + "src": "31248:35:1" + } + ] + }, + "documentation": { + "id": 1655, + "nodeType": "StructuredDocumentation", + "src": "31077:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1671, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1657, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31170:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1656, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31170:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31194:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1658, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31194:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31169:39:1" + }, + "returnParameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1662, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31232:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1661, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31232:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31231:6:1" + }, + "scope": 1921, + "src": "31152:138:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "31443:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1680, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1674, + "src": "31468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1681, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31468:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1679, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "31460:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31460:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1678, + "id": 1683, + "nodeType": "Return", + "src": "31453:26:1" + } + ] + }, + "documentation": { + "id": 1672, + "nodeType": "StructuredDocumentation", + "src": "31296:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1685, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1674, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31387:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1673, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + } + ], + "src": "31386:24:1" + }, + "returnParameters": { + "id": 1678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31434:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31434:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31433:9:1" + }, + "scope": 1921, + "src": "31371:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1701, + "nodeType": "Block", + "src": "31901:46:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1696, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1688, + "src": "31922:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1697, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31922:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1698, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "31934:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1695, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "31918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31918:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1694, + "id": 1700, + "nodeType": "Return", + "src": "31911:29:1" + } + ] + }, + "documentation": { + "id": 1686, + "nodeType": "StructuredDocumentation", + "src": "31491:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1688, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31830:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1687, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31830:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1690, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31854:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31854:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31829:39:1" + }, + "returnParameters": { + "id": 1694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31892:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1692, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31892:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31891:9:1" + }, + "scope": 1921, + "src": "31818:129:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.AddressSet", + "id": 1705, + "members": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1705, + "src": "32000:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1703, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "32000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "31972:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1730, + "nodeType": "Block", + "src": "32263:74:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1716, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1708, + "src": "32285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32285:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "32321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32313:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1722, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32313:7:1", + "typeDescriptions": {} + } + }, + "id": 1725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32313:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32305:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1720, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32305:7:1", + "typeDescriptions": {} + } + }, + "id": 1726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32305:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1718, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32297:7:1", + "typeDescriptions": {} + } + }, + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32297:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1715, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "32280:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32280:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1714, + "id": 1729, + "nodeType": "Return", + "src": "32273:57:1" + } + ] + }, + "documentation": { + "id": 1706, + "nodeType": "StructuredDocumentation", + "src": "32023:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1731, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1708, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32200:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1707, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32200:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32224:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32224:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32199:39:1" + }, + "returnParameters": { + "id": 1714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1713, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32257:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1712, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32257:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32256:6:1" + }, + "scope": 1921, + "src": "32187:150:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1756, + "nodeType": "Block", + "src": "32584:77:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1742, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "32609:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1743, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32609:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1750, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "32645:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32637:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1748, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32637:7:1", + "typeDescriptions": {} + } + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32637:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32629:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32629:7:1", + "typeDescriptions": {} + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32629:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32621:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1744, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32621:7:1", + "typeDescriptions": {} + } + }, + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32621:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1741, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "32601:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32601:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1740, + "id": 1755, + "nodeType": "Return", + "src": "32594:60:1" + } + ] + }, + "documentation": { + "id": 1732, + "nodeType": "StructuredDocumentation", + "src": "32343:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1757, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1734, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32521:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1733, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32521:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1736, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32545:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32545:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32520:39:1" + }, + "returnParameters": { + "id": 1740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1739, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32578:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1738, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32578:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32577:6:1" + }, + "scope": 1921, + "src": "32505:156:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1782, + "nodeType": "Block", + "src": "32828:79:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1768, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1760, + "src": "32855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1776, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1762, + "src": "32891:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1774, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32883:7:1", + "typeDescriptions": {} + } + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32883:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32875:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32875:7:1", + "typeDescriptions": {} + } + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32875:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1770, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32867:7:1", + "typeDescriptions": {} + } + }, + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32867:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1767, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "32845:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32845:55:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1766, + "id": 1781, + "nodeType": "Return", + "src": "32838:62:1" + } + ] + }, + "documentation": { + "id": 1758, + "nodeType": "StructuredDocumentation", + "src": "32667:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1783, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1760, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32760:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1759, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32760:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1762, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32784:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32784:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32759:39:1" + }, + "returnParameters": { + "id": 1766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1765, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32822:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1764, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32822:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32821:6:1" + }, + "scope": 1921, + "src": "32742:165:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1796, + "nodeType": "Block", + "src": "33060:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1792, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1786, + "src": "33085:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33085:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1791, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "33077:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33077:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1790, + "id": 1795, + "nodeType": "Return", + "src": "33070:26:1" + } + ] + }, + "documentation": { + "id": 1784, + "nodeType": "StructuredDocumentation", + "src": "32913:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1797, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1786, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33004:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1785, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33004:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + } + ], + "src": "33003:24:1" + }, + "returnParameters": { + "id": 1790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1789, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33050:9:1" + }, + "scope": 1921, + "src": "32988:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1822, + "nodeType": "Block", + "src": "33518:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1814, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "33563:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33563:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1816, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "33575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1813, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "33559:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33559:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33551:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33551:7:1", + "typeDescriptions": {} + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33551:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33543:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1809, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "33543:7:1", + "typeDescriptions": {} + } + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33543:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33535:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33535:7:1", + "typeDescriptions": {} + } + }, + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33535:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 1806, + "id": 1821, + "nodeType": "Return", + "src": "33528:56:1" + } + ] + }, + "documentation": { + "id": 1798, + "nodeType": "StructuredDocumentation", + "src": "33108:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1823, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1800, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33447:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1799, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33447:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1802, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33471:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33471:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33446:39:1" + }, + "returnParameters": { + "id": 1806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33509:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33509:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "33508:9:1" + }, + "scope": 1921, + "src": "33435:156:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.UintSet", + "id": 1826, + "members": [ + { + "constant": false, + "id": 1825, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1826, + "src": "33639:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1824, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "33639:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "UintSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "33614:42:1", + "visibility": "public" + }, + { + "body": { + "id": 1845, + "nodeType": "Block", + "src": "33899:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1837, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1829, + "src": "33921:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "33921:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1841, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "33941:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33933:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1839, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "33933:7:1", + "typeDescriptions": {} + } + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33933:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1836, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "33916:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33916:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1835, + "id": 1844, + "nodeType": "Return", + "src": "33909:39:1" + } + ] + }, + "documentation": { + "id": 1827, + "nodeType": "StructuredDocumentation", + "src": "33662:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1846, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1829, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33839:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1828, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "33839:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1831, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33860:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33860:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33838:36:1" + }, + "returnParameters": { + "id": 1835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1834, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33893:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1833, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "33893:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "33892:6:1" + }, + "scope": 1921, + "src": "33826:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1865, + "nodeType": "Block", + "src": "34199:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1857, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1849, + "src": "34224:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34224:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1861, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "34244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34236:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1859, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34236:7:1", + "typeDescriptions": {} + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34236:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1856, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "34216:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34216:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1855, + "id": 1864, + "nodeType": "Return", + "src": "34209:42:1" + } + ] + }, + "documentation": { + "id": 1847, + "nodeType": "StructuredDocumentation", + "src": "33961:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1849, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34139:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1848, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34139:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1851, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34160:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34138:36:1" + }, + "returnParameters": { + "id": 1855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1854, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34193:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1853, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34193:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34192:6:1" + }, + "scope": 1921, + "src": "34123:135:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1885, + "nodeType": "Block", + "src": "34422:61:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1877, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1869, + "src": "34449:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34449:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1881, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "34469:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1879, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34461:7:1", + "typeDescriptions": {} + } + }, + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34461:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1876, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "34439:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34439:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1875, + "id": 1884, + "nodeType": "Return", + "src": "34432:44:1" + } + ] + }, + "documentation": { + "id": 1867, + "nodeType": "StructuredDocumentation", + "src": "34264:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1886, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1869, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34357:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1868, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34378:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34378:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34356:36:1" + }, + "returnParameters": { + "id": 1875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1874, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34416:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1873, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34416:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34415:6:1" + }, + "scope": 1921, + "src": "34339:144:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1899, + "nodeType": "Block", + "src": "34633:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1895, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1889, + "src": "34658:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34658:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1894, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "34650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34650:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1893, + "id": 1898, + "nodeType": "Return", + "src": "34643:26:1" + } + ] + }, + "documentation": { + "id": 1887, + "nodeType": "StructuredDocumentation", + "src": "34489:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1900, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1889, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34580:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1888, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + } + ], + "src": "34579:21:1" + }, + "returnParameters": { + "id": 1893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34624:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34623:9:1" + }, + "scope": 1921, + "src": "34564:112:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1919, + "nodeType": "Block", + "src": "35088:55:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1913, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "35117:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "35117:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1915, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1905, + "src": "35129:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1912, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "35113:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35113:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "35105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35105:7:1", + "typeDescriptions": {} + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35105:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1909, + "id": 1918, + "nodeType": "Return", + "src": "35098:38:1" + } + ] + }, + "documentation": { + "id": 1901, + "nodeType": "StructuredDocumentation", + "src": "34681:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1920, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35020:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1902, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "35020:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1905, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35041:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35041:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35019:36:1" + }, + "returnParameters": { + "id": 1909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1908, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35079:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1907, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35079:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35078:9:1" + }, + "scope": 1921, + "src": "35008:135:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "26511:8634:1" + }, + { + "id": 1922, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "35204:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1923, + "nodeType": "StructuredDocumentation", + "src": "35237:705:1", + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "fullyImplemented": true, + "id": 2480, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableMap.MapEntry", + "id": 1928, + "members": [ + { + "constant": false, + "id": 1925, + "mutability": "mutable", + "name": "_key", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36455:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1924, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1927, + "mutability": "mutable", + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36477:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1926, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36477:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "MapEntry", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36429:69:1", + "visibility": "public" + }, + { + "canonicalName": "EnumerableMap.Map", + "id": 1936, + "members": [ + { + "constant": false, + "id": 1931, + "mutability": "mutable", + "name": "_entries", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36567:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + }, + "typeName": { + "baseType": { + "id": 1929, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "36567:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "id": 1930, + "nodeType": "ArrayTypeName", + "src": "36567:10:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1935, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36736:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1934, + "keyType": { + "id": 1932, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "36736:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "36756:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Map", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36504:276:1", + "visibility": "public" + }, + { + "body": { + "id": 1997, + "nodeType": "Block", + "src": "37089:596:1", + "statements": [ + { + "assignments": [ + 1949 + ], + "declarations": [ + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 1997, + "src": "37197:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "37197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1954, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1950, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1953, + "indexExpression": { + "id": 1952, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37229:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37216:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1955, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37248:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37260:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "37248:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1995, + "nodeType": "Block", + "src": "37587:92:1", + "statements": [ + { + "expression": { + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 1982, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37601:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1987, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37601:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1988, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1984, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37614:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37625:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "37614:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37601:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 1989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "37601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1990, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37637:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "37601:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1992, + "nodeType": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37663:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1947, + "id": 1994, + "nodeType": "Return", + "src": "37656:12:1" + } + ] + }, + "id": 1996, + "nodeType": "IfStatement", + "src": "37244:435:1", + "trueBody": { + "id": 1981, + "nodeType": "Block", + "src": "37263:318:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1964, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37349:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1965, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37362:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1963, + "name": "MapEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1928, + "src": "37332:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_MapEntry_$1928_storage_ptr_$", + "typeString": "type(struct EnumerableMap.MapEntry storage pointer)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "nodeType": "FunctionCall", + "src": "37332:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "expression": { + "expression": { + "id": 1958, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37314:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37314:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "37314:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$1928_storage_$returns$__$", + "typeString": "function (struct EnumerableMap.MapEntry storage ref)" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37314:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1968, + "nodeType": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "expression": { + "id": 1977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1969, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37506:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37506:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1973, + "indexExpression": { + "id": 1971, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "37506:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1974, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37526:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37526:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "37526:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37506:39:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1978, + "nodeType": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37566:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1947, + "id": 1980, + "nodeType": "Return", + "src": "37559:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1937, + "nodeType": "StructuredDocumentation", + "src": "36786:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1998, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37021:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 1938, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37021:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37038:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1940, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1943, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1942, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37020:45:1" + }, + "returnParameters": { + "id": 1947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1946, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37083:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1945, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37083:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37082:6:1" + }, + "scope": 2480, + "src": "37007:678:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2078, + "nodeType": "Block", + "src": "37923:1447:1", + "statements": [ + { + "assignments": [ + 2009 + ], + "declarations": [ + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2078, + "src": "38031:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2014, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2010, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38050:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2011, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "38050:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2013, + "indexExpression": { + "id": 2012, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "38063:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38050:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2015, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38082:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38094:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "38082:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2076, + "nodeType": "Block", + "src": "39327:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39348:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2007, + "id": 2075, + "nodeType": "Return", + "src": "39341:12:1" + } + ] + }, + "id": 2077, + "nodeType": "IfStatement", + "src": "38078:1286:1", + "trueBody": { + "id": 2073, + "nodeType": "Block", + "src": "38097:1224:1", + "statements": [ + { + "assignments": [ + 2019 + ], + "declarations": [ + { + "constant": false, + "id": 2019, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38438:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2023, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2020, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38462:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38473:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38462:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "assignments": [ + 2025 + ], + "declarations": [ + { + "constant": false, + "id": 2025, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38488:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38488:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2031, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2026, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38508:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38508:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "38508:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38530:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38508:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "assignments": [ + 2033 + ], + "declarations": [ + { + "constant": false, + "id": 2033, + "mutability": "mutable", + "name": "lastEntry", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38771:26:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2032, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "38771:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2038, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2034, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38800:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38800:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2037, + "indexExpression": { + "id": 2036, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2025, + "src": "38813:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38800:23:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "expression": { + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2039, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38915:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38915:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2043, + "indexExpression": { + "id": 2041, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "38928:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "38915:27:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2044, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "38945:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "src": "38915:39:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2046, + "nodeType": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2047, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2051, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39020:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2052, + "indexExpression": { + "expression": { + "id": 2049, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "39033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "39033:14:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39020:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2053, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "39051:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39067:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "39051:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39020:48:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 2058, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39174:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2061, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39174:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "39174:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "39174:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2064, + "nodeType": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "expression": { + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "39260:24:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 2065, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39267:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2066, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39267:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2068, + "indexExpression": { + "id": 2067, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "39280:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39267:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2070, + "nodeType": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39306:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2007, + "id": 2072, + "nodeType": "Return", + "src": "39299:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1999, + "nodeType": "StructuredDocumentation", + "src": "37691:157:1", + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2079, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2001, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37870:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2000, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37870:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37887:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2002, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37887:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37869:30:1" + }, + "returnParameters": { + "id": 2007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2006, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37917:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2005, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37917:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37916:6:1" + }, + "scope": 2480, + "src": "37853:1517:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2096, + "nodeType": "Block", + "src": "39526:46:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 2089, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2082, + "src": "39543:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2090, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39543:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2092, + "indexExpression": { + "id": 2091, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2084, + "src": "39556:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "39543:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39564:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "39543:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2088, + "id": 2095, + "nodeType": "Return", + "src": "39536:29:1" + } + ] + }, + "documentation": { + "id": 2080, + "nodeType": "StructuredDocumentation", + "src": "39376:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2082, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39468:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2081, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2084, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39485:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2083, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "39485:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "39467:30:1" + }, + "returnParameters": { + "id": 2088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2087, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2086, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "39520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "39519:6:1" + }, + "scope": 2480, + "src": "39449:123:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2109, + "nodeType": "Block", + "src": "39727:43:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 2105, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "39744:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39744:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "39744:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2104, + "id": 2108, + "nodeType": "Return", + "src": "39737:26:1" + } + ] + }, + "documentation": { + "id": 2098, + "nodeType": "StructuredDocumentation", + "src": "39578:79:1", + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2100, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39679:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2099, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39679:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "src": "39678:17:1" + }, + "returnParameters": { + "id": 2104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2103, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39718:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "39718:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "39717:9:1" + }, + "scope": 2480, + "src": "39662:108:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2144, + "nodeType": "Block", + "src": "40198:189:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2123, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "40216:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2126, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40216:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40245:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + }, + "value": "EnumerableMap: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "id": 2122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "40208:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "40208:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2130, + "nodeType": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "assignments": [ + 2132 + ], + "declarations": [ + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "entry", + "nodeType": "VariableDeclaration", + "scope": 2144, + "src": "40293:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2131, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "40293:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2137, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2133, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40318:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40318:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2136, + "indexExpression": { + "id": 2135, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40331:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40318:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "expression": { + "components": [ + { + "expression": { + "id": 2138, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40355:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2139, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "40355:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 2140, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40367:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40367:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40354:26:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "functionReturnParameters": 2121, + "id": 2143, + "nodeType": "Return", + "src": "40347:33:1" + } + ] + }, + "documentation": { + "id": 2111, + "nodeType": "StructuredDocumentation", + "src": "39775:333:1", + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2145, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2113, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40126:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2112, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40126:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2115, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40143:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40143:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "40125:32:1" + }, + "returnParameters": { + "id": 2121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40180:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40180:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40189:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2119, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40189:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40179:18:1" + }, + "scope": 2480, + "src": "40113:274:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2182, + "nodeType": "Block", + "src": "40613:220:1", + "statements": [ + { + "assignments": [ + 2158 + ], + "declarations": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2182, + "src": "40623:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40623:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2163, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2159, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40642:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "40642:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2162, + "indexExpression": { + "id": 2161, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2150, + "src": "40655:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40642:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2164, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40673:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40685:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "40673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2171, + "nodeType": "IfStatement", + "src": "40669:36:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40696:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40703:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2169, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40695:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2156, + "id": 2170, + "nodeType": "Return", + "src": "40688:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40759:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 2173, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40765:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2174, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40765:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2178, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2175, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40778:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40789:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "40778:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40765:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40765:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2180, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40758:41:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "functionReturnParameters": 2156, + "id": 2181, + "nodeType": "Return", + "src": "40751:48:1" + } + ] + }, + "documentation": { + "id": 2146, + "nodeType": "StructuredDocumentation", + "src": "40393:131:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2183, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2151, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40546:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2147, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40546:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2150, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40563:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2149, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40563:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40545:30:1" + }, + "returnParameters": { + "id": 2156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2153, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40598:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2152, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "40598:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2155, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40604:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2154, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40604:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40597:15:1" + }, + "scope": 2480, + "src": "40529:304:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2215, + "nodeType": "Block", + "src": "41060:232:1", + "statements": [ + { + "assignments": [ + 2194 + ], + "declarations": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2215, + "src": "41070:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41070:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2199, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2195, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41089:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2196, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41089:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2198, + "indexExpression": { + "id": 2197, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2188, + "src": "41102:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41089:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2201, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41124:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41136:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41124:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "id": 2204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41139:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + }, + "value": "EnumerableMap: nonexistent key" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "id": 2200, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41116:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2206, + "nodeType": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2207, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41225:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2208, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41225:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2212, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2209, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41238:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41249:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41238:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41225:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2213, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41225:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2192, + "id": 2214, + "nodeType": "Return", + "src": "41218:40:1" + } + ] + }, + "documentation": { + "id": 2184, + "nodeType": "StructuredDocumentation", + "src": "40839:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2186, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "40999:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2185, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40999:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2188, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41016:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2187, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40998:30:1" + }, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2190, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41050:9:1" + }, + "scope": 2480, + "src": "40985:307:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2250, + "nodeType": "Block", + "src": "41677:212:1", + "statements": [ + { + "assignments": [ + 2229 + ], + "declarations": [ + { + "constant": false, + "id": 2229, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2250, + "src": "41687:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41687:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2234, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2230, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41706:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2231, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41706:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2233, + "indexExpression": { + "id": 2232, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "41719:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41706:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2236, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41741:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41753:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41741:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2239, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2223, + "src": "41756:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2235, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41733:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41733:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2241, + "nodeType": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2242, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41822:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41822:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2247, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2244, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41835:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41846:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41835:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41822:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41822:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2227, + "id": 2249, + "nodeType": "Return", + "src": "41815:40:1" + } + ] + }, + "documentation": { + "id": 2217, + "nodeType": "StructuredDocumentation", + "src": "41298:271:1", + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2251, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2219, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41588:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2218, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41588:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2221, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41605:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2220, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2223, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41618:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2222, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "41618:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "41587:58:1" + }, + "returnParameters": { + "id": 2227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2226, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41668:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2225, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41668:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41667:9:1" + }, + "scope": 2480, + "src": "41574:315:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableMap.UintToAddressMap", + "id": 2254, + "members": [ + { + "constant": false, + "id": 2253, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 2254, + "src": "41954:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2252, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41954:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "name": "UintToAddressMap", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "41920:51:1", + "visibility": "public" + }, + { + "body": { + "id": 2285, + "nodeType": "Block", + "src": "42293:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2267, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "42315:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42315:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2271, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2259, + "src": "42335:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42327:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2269, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42327:7:1", + "typeDescriptions": {} + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42327:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2279, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2261, + "src": "42365:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2277, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "42357:7:1", + "typeDescriptions": {} + } + }, + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42357:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42349:7:1", + "typeDescriptions": {} + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42349:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42341:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42341:7:1", + "typeDescriptions": {} + } + }, + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42341:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2266, + "name": "_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1998, + "src": "42310:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42310:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2265, + "id": 2284, + "nodeType": "Return", + "src": "42303:71:1" + } + ] + }, + "documentation": { + "id": 2255, + "nodeType": "StructuredDocumentation", + "src": "41977:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2286, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2257, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42211:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2256, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42211:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2259, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42241:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2258, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42241:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2261, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42254:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "42254:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "42210:58:1" + }, + "returnParameters": { + "id": 2265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2264, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42287:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2263, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42287:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42286:6:1" + }, + "scope": 2480, + "src": "42198:183:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2305, + "nodeType": "Block", + "src": "42623:57:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2297, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2289, + "src": "42648:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2298, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42648:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2301, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2291, + "src": "42668:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42660:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2299, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42660:7:1", + "typeDescriptions": {} + } + }, + "id": 2302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42660:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2296, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2079, + "src": "42640:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)" + } + }, + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42640:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2295, + "id": 2304, + "nodeType": "Return", + "src": "42633:40:1" + } + ] + }, + "documentation": { + "id": 2287, + "nodeType": "StructuredDocumentation", + "src": "42387:148:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2289, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42556:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2288, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42556:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2291, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42586:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42586:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42555:43:1" + }, + "returnParameters": { + "id": 2295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2294, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42617:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2293, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42617:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42616:6:1" + }, + "scope": 2480, + "src": "42540:140:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2325, + "nodeType": "Block", + "src": "42849:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2317, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2309, + "src": "42876:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42876:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2321, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "42896:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42888:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2319, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42888:7:1", + "typeDescriptions": {} + } + }, + "id": 2322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42888:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2316, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2097, + "src": "42866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42866:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2315, + "id": 2324, + "nodeType": "Return", + "src": "42859:42:1" + } + ] + }, + "documentation": { + "id": 2307, + "nodeType": "StructuredDocumentation", + "src": "42686:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2326, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2309, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42777:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2308, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42777:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2311, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42807:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42807:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42776:43:1" + }, + "returnParameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2314, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42843:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42843:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42842:6:1" + }, + "scope": 2480, + "src": "42759:149:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2339, + "nodeType": "Block", + "src": "43069:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2335, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2329, + "src": "43094:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43094:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "id": 2334, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2110, + "src": "43086:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)" + } + }, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43086:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2333, + "id": 2338, + "nodeType": "Return", + "src": "43079:26:1" + } + ] + }, + "documentation": { + "id": 2327, + "nodeType": "StructuredDocumentation", + "src": "42914:72:1", + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2340, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2329, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43007:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2328, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43007:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + } + ], + "src": "43006:30:1" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43060:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43059:9:1" + }, + "scope": 2480, + "src": "42991:121:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2378, + "nodeType": "Block", + "src": "43538:135:1", + "statements": [ + { + "assignments": [ + 2353, + 2355 + ], + "declarations": [ + { + "constant": false, + "id": 2353, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43549:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2352, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43549:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2355, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43562:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2354, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43562:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2361, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2357, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "43583:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2358, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "id": 2359, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "43595:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2356, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "43579:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)" + } + }, + "id": 2360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43579:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "expression": { + "components": [ + { + "arguments": [ + { + "id": 2364, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "43627:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43619:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43619:7:1", + "typeDescriptions": {} + } + }, + "id": 2365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43619:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2372, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2355, + "src": "43657:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43649:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43649:7:1", + "typeDescriptions": {} + } + }, + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43649:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43641:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2368, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "43641:7:1", + "typeDescriptions": {} + } + }, + "id": 2374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43641:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43633:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43633:7:1", + "typeDescriptions": {} + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43633:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2376, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43618:48:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$", + "typeString": "tuple(uint256,address payable)" + } + }, + "functionReturnParameters": 2351, + "id": 2377, + "nodeType": "Return", + "src": "43611:55:1" + } + ] + }, + "documentation": { + "id": 2341, + "nodeType": "StructuredDocumentation", + "src": "43117:318:1", + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2379, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43452:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2342, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43452:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2345, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43482:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43482:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43451:45:1" + }, + "returnParameters": { + "id": 2351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2348, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43520:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43520:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2350, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43529:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43529:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43519:18:1" + }, + "scope": 2480, + "src": "43440:233:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2417, + "nodeType": "Block", + "src": "43950:142:1", + "statements": [ + { + "assignments": [ + 2392, + 2394 + ], + "declarations": [ + { + "constant": false, + "id": 2392, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43961:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43961:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43975:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2393, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2403, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2396, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "44000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44000:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2400, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2384, + "src": "44020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44012:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2398, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44012:7:1", + "typeDescriptions": {} + } + }, + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44012:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2395, + "name": "_tryGet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2183, + "src": "43992:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)" + } + }, + "id": 2402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43992:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "expression": { + "components": [ + { + "id": 2404, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2392, + "src": "44043:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2411, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "44076:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44068:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44068:7:1", + "typeDescriptions": {} + } + }, + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44068:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2407, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44060:7:1", + "typeDescriptions": {} + } + }, + "id": 2413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44060:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44052:7:1", + "typeDescriptions": {} + } + }, + "id": 2414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44052:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2415, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44042:43:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_payable_$", + "typeString": "tuple(bool,address payable)" + } + }, + "functionReturnParameters": 2390, + "id": 2416, + "nodeType": "Return", + "src": "44035:50:1" + } + ] + }, + "documentation": { + "id": 2380, + "nodeType": "StructuredDocumentation", + "src": "43679:169:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2418, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2382, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43869:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2381, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43869:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2384, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43899:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43868:43:1" + }, + "returnParameters": { + "id": 2390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2387, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43935:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2386, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2389, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43941:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43941:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43934:15:1" + }, + "scope": 2480, + "src": "43853:239:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2446, + "nodeType": "Block", + "src": "44332:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2435, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "44378:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44378:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2439, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2423, + "src": "44398:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44390:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2437, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44390:7:1", + "typeDescriptions": {} + } + }, + "id": 2440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44390:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2434, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "src": "44373:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)" + } + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44373:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44365:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44365:7:1", + "typeDescriptions": {} + } + }, + "id": 2442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44365:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2430, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44357:7:1", + "typeDescriptions": {} + } + }, + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44357:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44349:7:1", + "typeDescriptions": {} + } + }, + "id": 2444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44349:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2427, + "id": 2445, + "nodeType": "Return", + "src": "44342:64:1" + } + ] + }, + "documentation": { + "id": 2419, + "nodeType": "StructuredDocumentation", + "src": "44098:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2447, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2421, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44257:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2420, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44257:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2423, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44287:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44287:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "44256:43:1" + }, + "returnParameters": { + "id": 2427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2426, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44323:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44323:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44322:9:1" + }, + "scope": 2480, + "src": "44244:169:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2478, + "nodeType": "Block", + "src": "44809:95:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2466, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2450, + "src": "44855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2467, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2470, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2452, + "src": "44875:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2468, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44867:7:1", + "typeDescriptions": {} + } + }, + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44867:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 2472, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "44881:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2465, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "src": "44850:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)" + } + }, + "id": 2473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44850:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44842:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44842:7:1", + "typeDescriptions": {} + } + }, + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44842:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44834:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2461, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44834:7:1", + "typeDescriptions": {} + } + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44834:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44826:7:1", + "typeDescriptions": {} + } + }, + "id": 2476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44826:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2458, + "id": 2477, + "nodeType": "Return", + "src": "44819:78:1" + } + ] + }, + "documentation": { + "id": 2448, + "nodeType": "StructuredDocumentation", + "src": "44419:269:1", + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2450, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44706:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2449, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44706:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2452, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44736:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2454, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44749:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2453, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "44749:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "44705:71:1" + }, + "returnParameters": { + "id": 2458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2457, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44799:9:1" + }, + "scope": 2480, + "src": "44693:211:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "35943:8963:1" + }, + { + "id": 2481, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "44959:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2482, + "nodeType": "StructuredDocumentation", + "src": "44992:34:1", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2566, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2564, + "nodeType": "Block", + "src": "45207:654:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2490, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45409:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45418:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45409:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2496, + "nodeType": "IfStatement", + "src": "45405:51:1", + "trueBody": { + "id": 2495, + "nodeType": "Block", + "src": "45421:35:1", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45442:3:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "functionReturnParameters": 2489, + "id": 2494, + "nodeType": "Return", + "src": "45435:10:1" + } + ] + } + }, + { + "assignments": [ + 2498 + ], + "declarations": [ + { + "constant": false, + "id": 2498, + "mutability": "mutable", + "name": "temp", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45465:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2500, + "initialValue": { + "id": 2499, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45480:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "assignments": [ + 2502 + ], + "declarations": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "digits", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45495:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45495:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2503, + "nodeType": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "body": { + "id": 2514, + "nodeType": "Block", + "src": "45537:57:1", + "statements": [ + { + "expression": { + "id": 2508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "45551:8:1", + "subExpression": { + "id": 2507, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45551:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2509, + "nodeType": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "expression": { + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2510, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45581:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45573:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2513, + "nodeType": "ExpressionStatement", + "src": "45573:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2504, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45526:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45534:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45526:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2515, + "nodeType": "WhileStatement", + "src": "45519:75:1" + }, + { + "assignments": [ + 2517 + ], + "declarations": [ + { + "constant": false, + "id": 2517, + "mutability": "mutable", + "name": "buffer", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45603:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2516, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2522, + "initialValue": { + "arguments": [ + { + "id": 2520, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45635:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "45625:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2518, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45629:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45625:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "assignments": [ + 2524 + ], + "declarations": [ + { + "constant": false, + "id": 2524, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45652:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45652:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2528, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2525, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45668:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45677:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "45668:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "expression": { + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2529, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45688:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2530, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45695:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45688:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2532, + "nodeType": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "body": { + "id": 2557, + "nodeType": "Block", + "src": "45728:96:1", + "statements": [ + { + "expression": { + "id": 2551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2536, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45742:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2539, + "indexExpression": { + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "45749:7:1", + "subExpression": { + "id": 2537, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2524, + "src": "45749:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "45742:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3438", + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45773:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2545, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45778:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3130", + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45785:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45778:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45773:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45767:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2542, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "45767:5:1", + "typeDescriptions": {} + } + }, + "id": 2549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45767:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 2540, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "45760:6:1", + "typeDescriptions": {} + } + }, + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45760:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "45742:47:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2552, + "nodeType": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "expression": { + "id": 2555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2553, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45803:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45811:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45803:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2556, + "nodeType": "ExpressionStatement", + "src": "45803:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2533, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45717:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45725:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45717:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2558, + "nodeType": "WhileStatement", + "src": "45710:114:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2561, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45847:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45840:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2559, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45840:6:1", + "typeDescriptions": {} + } + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45840:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2489, + "id": 2563, + "nodeType": "Return", + "src": "45833:21:1" + } + ] + }, + "documentation": { + "id": 2483, + "nodeType": "StructuredDocumentation", + "src": "45049:82:1", + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2485, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45154:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45154:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "45153:15:1" + }, + "returnParameters": { + "id": 2489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2488, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45192:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2487, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45192:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "45191:15:1" + }, + "scope": 2566, + "src": "45136:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "45027:836:1" + }, + { + "id": 2567, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "45922:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2569, + "name": "Context", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 530, + "src": "46099:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 2570, + "nodeType": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "baseName": { + "id": 2571, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 781, + "src": "46108:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$781", + "typeString": "contract ERC165" + } + }, + "id": 2572, + "nodeType": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "baseName": { + "id": 2573, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "46116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 2574, + "nodeType": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "baseName": { + "id": 2575, + "name": "IERC721Metadata", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 680, + "src": "46125:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Metadata_$680", + "typeString": "contract IERC721Metadata" + } + }, + "id": 2576, + "nodeType": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "baseName": { + "id": 2577, + "name": "IERC721Enumerable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 709, + "src": "46142:17:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Enumerable_$709", + "typeString": "contract IERC721Enumerable" + } + }, + "id": 2578, + "nodeType": "InheritanceSpecifier", + "src": "46142:17:1" + } + ], + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "documentation": { + "id": 2568, + "nodeType": "StructuredDocumentation", + "src": "45955:124:1", + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": true, + "id": 3498, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2581, + "libraryName": { + "id": 2579, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1135, + "src": "46172:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$1135", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "46166:27:1", + "typeName": { + "id": 2580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46185:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 2584, + "libraryName": { + "id": 2582, + "name": "Address", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1430, + "src": "46204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + }, + "nodeType": "UsingForDirective", + "src": "46198:26:1", + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46216:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 2587, + "libraryName": { + "id": 2585, + "name": "EnumerableSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1921, + "src": "46235:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableSet_$1921", + "typeString": "library EnumerableSet" + } + }, + "nodeType": "UsingForDirective", + "src": "46229:46:1", + "typeName": { + "id": 2586, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46253:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + { + "id": 2590, + "libraryName": { + "id": 2588, + "name": "EnumerableMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2480, + "src": "46286:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableMap_$2480", + "typeString": "library EnumerableMap" + } + }, + "nodeType": "UsingForDirective", + "src": "46280:55:1", + "typeName": { + "id": 2589, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46304:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + } + }, + { + "id": 2593, + "libraryName": { + "id": 2591, + "name": "Strings", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2566, + "src": "46346:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Strings_$2566", + "typeString": "library Strings" + } + }, + "nodeType": "UsingForDirective", + "src": "46340:26:1", + "typeName": { + "id": 2592, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46358:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 2596, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46544:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2594, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "46544:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783135306237613032", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46587:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_353073666_by_1", + "typeString": "int_const 353073666" + }, + "value": "0x150b7a02" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2600, + "mutability": "mutable", + "name": "_holderTokens", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46681:64:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "typeName": { + "id": 2599, + "keyType": { + "id": 2597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "46681:42:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "valueType": { + "id": 2598, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46701:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2602, + "mutability": "mutable", + "name": "_tokenOwners", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46809:51:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2601, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46809:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2606, + "mutability": "mutable", + "name": "_tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46916:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 2605, + "keyType": { + "id": 2603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46925:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "46916:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 2604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46936:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2612, + "mutability": "mutable", + "name": "_operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47023:73:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 2611, + "keyType": { + "id": 2607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47023:46:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 2610, + "keyType": { + "id": 2608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47043:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2609, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "47063:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2614, + "mutability": "mutable", + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47121:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2613, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47121:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2616, + "mutability": "mutable", + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47168:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47168:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2620, + "mutability": "mutable", + "name": "_tokenURIs", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47236:46:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 2619, + "keyType": { + "id": 2617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "47245:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "47236:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 2618, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47256:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2622, + "mutability": "mutable", + "name": "_baseURI", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47305:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2621, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47305:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2625, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48204:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2623, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48204:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783830616335386364", + "id": 2624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48251:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2628, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48527:66:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2626, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48527:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783562356531333966", + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1532892063_by_1", + "typeString": "int_const 1532892063" + }, + "value": "0x5b5e139f" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2631, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48898:68:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2629, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783738306539643633", + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48956:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2014223715_by_1", + "typeString": "int_const 2014223715" + }, + "value": "0x780e9d63" + }, + "visibility": "private" + }, + { + "body": { + "id": 2659, + "nodeType": "Block", + "src": "49143:305:1", + "statements": [ + { + "expression": { + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2639, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "49153:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2640, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "49161:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49153:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2642, + "nodeType": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "expression": { + "id": 2645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2643, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "49176:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2644, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2636, + "src": "49186:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49176:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2646, + "nodeType": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2648, + "name": "_INTERFACE_ID_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "49300:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2647, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49281:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49281:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2650, + "nodeType": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2652, + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "49350:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2651, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49331:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49331:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2654, + "nodeType": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2656, + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2631, + "src": "49409:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2655, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49390:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49390:51:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2658, + "nodeType": "ExpressionStatement", + "src": "49390:51:1" + } + ] + }, + "documentation": { + "id": 2632, + "nodeType": "StructuredDocumentation", + "src": "48973:108:1", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2660, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2634, + "mutability": "mutable", + "name": "name_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49099:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2633, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49099:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2636, + "mutability": "mutable", + "name": "symbol_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49120:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2635, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49120:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "49098:44:1" + }, + "returnParameters": { + "id": 2638, + "nodeType": "ParameterList", + "parameters": [], + "src": "49143:0:1" + }, + "scope": 3498, + "src": "49086:362:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 580 + ], + "body": { + "id": 2685, + "nodeType": "Block", + "src": "49588:137:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2670, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49606:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49623:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "49615:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49615:7:1", + "typeDescriptions": {} + } + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49615:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "49606:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49627:44:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + }, + "value": "ERC721: balance query for the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "id": 2669, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "49598:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49598:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2678, + "nodeType": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 2679, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "49689:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2681, + "indexExpression": { + "id": 2680, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49703:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "49689:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2682, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "49689:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + } + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49689:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2668, + "id": 2684, + "nodeType": "Return", + "src": "49682:36:1" + } + ] + }, + "documentation": { + "id": 2661, + "nodeType": "StructuredDocumentation", + "src": "49454:48:1", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 2686, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2665, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49561:8:1" + }, + "parameters": { + "id": 2664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2663, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49526:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49526:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49525:15:1" + }, + "returnParameters": { + "id": 2668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2667, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49579:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49579:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49578:9:1" + }, + "scope": 3498, + "src": "49507:218:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 588 + ], + "body": { + "id": 2701, + "nodeType": "Block", + "src": "49863:94:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2697, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "49897:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49906:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + }, + "value": "ERC721: owner query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "expression": { + "id": 2695, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "49880:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2696, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 2479, + "src": "49880:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + } + }, + "id": 2699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49880:70:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2694, + "id": 2700, + "nodeType": "Return", + "src": "49873:77:1" + } + ] + }, + "documentation": { + "id": 2687, + "nodeType": "StructuredDocumentation", + "src": "49731:46:1", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 2702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2691, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49836:8:1" + }, + "parameters": { + "id": 2690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2689, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49799:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49799:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49798:17:1" + }, + "returnParameters": { + "id": 2694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49854:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49854:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49853:9:1" + }, + "scope": 3498, + "src": "49782:175:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 665 + ], + "body": { + "id": 2711, + "nodeType": "Block", + "src": "50088:29:1", + "statements": [ + { + "expression": { + "id": 2709, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "50105:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2708, + "id": 2710, + "nodeType": "Return", + "src": "50098:12:1" + } + ] + }, + "documentation": { + "id": 2703, + "nodeType": "StructuredDocumentation", + "src": "49963:51:1", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 2712, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2705, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50055:8:1" + }, + "parameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [], + "src": "50032:2:1" + }, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2707, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2712, + "src": "50073:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2706, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50073:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50072:15:1" + }, + "scope": 3498, + "src": "50019:98:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 671 + ], + "body": { + "id": 2721, + "nodeType": "Block", + "src": "50252:31:1", + "statements": [ + { + "expression": { + "id": 2719, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "50269:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2718, + "id": 2720, + "nodeType": "Return", + "src": "50262:14:1" + } + ] + }, + "documentation": { + "id": 2713, + "nodeType": "StructuredDocumentation", + "src": "50123:53:1", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 2722, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2715, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50219:8:1" + }, + "parameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [], + "src": "50196:2:1" + }, + "returnParameters": { + "id": 2718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2717, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2722, + "src": "50237:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2716, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50237:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50236:15:1" + }, + "scope": 3498, + "src": "50181:102:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 679 + ], + "body": { + "id": 2789, + "nodeType": "Block", + "src": "50437:688:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2733, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50463:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2732, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "50455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50455:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50473:49:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + }, + "value": "ERC721Metadata: URI query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "id": 2731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "50447:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50447:76:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "assignments": [ + 2739 + ], + "declarations": [ + { + "constant": false, + "id": 2739, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50534:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50534:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2743, + "initialValue": { + "baseExpression": { + "id": 2740, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "50560:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 2742, + "indexExpression": { + "id": 2741, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50571:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "50560:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "assignments": [ + 2745 + ], + "declarations": [ + { + "constant": false, + "id": 2745, + "mutability": "mutable", + "name": "base", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50589:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50589:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2748, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2746, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2799, + "src": "50610:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 2747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50610:9:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2751, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50698:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50692:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50692:5:1", + "typeDescriptions": {} + } + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50692:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50692:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50714:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50692:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2759, + "nodeType": "IfStatement", + "src": "50688:70:1", + "trueBody": { + "id": 2758, + "nodeType": "Block", + "src": "50717:41:1", + "statements": [ + { + "expression": { + "id": 2756, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50738:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2757, + "nodeType": "Return", + "src": "50731:16:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2762, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50860:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2760, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50860:5:1", + "typeDescriptions": {} + } + }, + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50860:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50860:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50886:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50860:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2777, + "nodeType": "IfStatement", + "src": "50856:106:1", + "trueBody": { + "id": 2776, + "nodeType": "Block", + "src": "50889:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2771, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50934:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 2772, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50940:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2769, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "50917:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "50917:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50917:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50910:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2767, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50910:6:1", + "typeDescriptions": {} + } + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50910:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2775, + "nodeType": "Return", + "src": "50903:48:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2782, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "51092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2783, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "51098:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2565, + "src": "51098:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 2785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51098:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2780, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "51075:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "51075:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51075:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "51068:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2778, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51068:6:1", + "typeDescriptions": {} + } + }, + "id": 2787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51068:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2788, + "nodeType": "Return", + "src": "51061:57:1" + } + ] + }, + "documentation": { + "id": 2723, + "nodeType": "StructuredDocumentation", + "src": "50289:55:1", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 2790, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50404:8:1" + }, + "parameters": { + "id": 2726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2725, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50367:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50367:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "50366:17:1" + }, + "returnParameters": { + "id": 2730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50422:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2728, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50422:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50421:15:1" + }, + "scope": 3498, + "src": "50349:776:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2798, + "nodeType": "Block", + "src": "51420:32:1", + "statements": [ + { + "expression": { + "id": 2796, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "51437:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2795, + "id": 2797, + "nodeType": "Return", + "src": "51430:15:1" + } + ] + }, + "documentation": { + "id": 2791, + "nodeType": "StructuredDocumentation", + "src": "51131:221:1", + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "functionSelector": "6c0360eb", + "id": 2799, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "baseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2792, + "nodeType": "ParameterList", + "parameters": [], + "src": "51373:2:1" + }, + "returnParameters": { + "id": 2795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2799, + "src": "51405:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2793, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51405:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "51404:15:1" + }, + "scope": 3498, + "src": "51357:95:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 700 + ], + "body": { + "id": 2817, + "nodeType": "Block", + "src": "51637:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2814, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "51678:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 2810, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "51654:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2812, + "indexExpression": { + "id": 2811, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2802, + "src": "51668:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "51654:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2813, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 1920, + "src": "51654:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51654:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2809, + "id": 2816, + "nodeType": "Return", + "src": "51647:37:1" + } + ] + }, + "documentation": { + "id": 2800, + "nodeType": "StructuredDocumentation", + "src": "51458:68:1", + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "functionSelector": "2f745c59", + "id": 2818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2806, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51610:8:1" + }, + "parameters": { + "id": 2805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2802, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51560:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "51560:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2804, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51575:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2803, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51575:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51559:30:1" + }, + "returnParameters": { + "id": 2809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2808, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51628:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51628:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51627:9:1" + }, + "scope": 3498, + "src": "51531:160:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 690 + ], + "body": { + "id": 2829, + "nodeType": "Block", + "src": "51832:138:1", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2825, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "51942:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 2340, + "src": "51942:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51942:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2824, + "id": 2828, + "nodeType": "Return", + "src": "51935:28:1" + } + ] + }, + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "51697:60:1", + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 2830, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2821, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51805:8:1" + }, + "parameters": { + "id": 2820, + "nodeType": "ParameterList", + "parameters": [], + "src": "51782:2:1" + }, + "returnParameters": { + "id": 2824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2823, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2830, + "src": "51823:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51823:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51822:9:1" + }, + "scope": 3498, + "src": "51762:208:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 708 + ], + "body": { + "id": 2848, + "nodeType": "Block", + "src": "52126:85:1", + "statements": [ + { + "assignments": [ + 2840, + null + ], + "declarations": [ + { + "constant": false, + "id": 2840, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2848, + "src": "52137:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2839, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52137:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2845, + "initialValue": { + "arguments": [ + { + "id": 2843, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2833, + "src": "52174:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2841, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "52158:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 2379, + "src": "52158:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + } + }, + "id": 2844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52158:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$", + "typeString": "tuple(uint256,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "expression": { + "id": 2846, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2840, + "src": "52197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2838, + "id": 2847, + "nodeType": "Return", + "src": "52190:14:1" + } + ] + }, + "documentation": { + "id": 2831, + "nodeType": "StructuredDocumentation", + "src": "51976:61:1", + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "functionSelector": "4f6ccce7", + "id": 2849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2835, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52099:8:1" + }, + "parameters": { + "id": 2834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2833, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52064:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52064:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52063:15:1" + }, + "returnParameters": { + "id": 2838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2837, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52117:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52116:9:1" + }, + "scope": 3498, + "src": "52042:169:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 616 + ], + "body": { + "id": 2892, + "nodeType": "Block", + "src": "52338:325:1", + "statements": [ + { + "assignments": [ + 2859 + ], + "declarations": [ + { + "constant": false, + "id": 2859, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2892, + "src": "52348:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52348:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2864, + "initialValue": { + "arguments": [ + { + "id": 2862, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52379:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2860, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52364:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "52364:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52364:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2866, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52405:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2867, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52411:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52405:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "id": 2869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52418:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + }, + "value": "ERC721: approval to current owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "id": 2865, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52397:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52397:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2871, + "nodeType": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2873, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52473:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52473:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2875, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52489:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52473:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 2879, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52522:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2880, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52529:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52529:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 2877, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52498:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "52498:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52498:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "52473:69:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52556:58:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + }, + "value": "ERC721: approve caller is not owner nor approved for all" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "id": 2872, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52465:159:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2886, + "nodeType": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2888, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52644:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2889, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52648:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2887, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "52635:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52635:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2891, + "nodeType": "ExpressionStatement", + "src": "52635:21:1" + } + ] + }, + "documentation": { + "id": 2850, + "nodeType": "StructuredDocumentation", + "src": "52217:46:1", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 2893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2856, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52329:8:1" + }, + "parameters": { + "id": 2855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2852, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52285:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52285:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2854, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52297:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52284:29:1" + }, + "returnParameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [], + "src": "52338:0:1" + }, + "scope": 3498, + "src": "52268:395:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 624 + ], + "body": { + "id": 2913, + "nodeType": "Block", + "src": "52809:132:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2904, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2903, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "52827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52827:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52845:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + }, + "value": "ERC721: approved query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "id": 2902, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52819:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2908, + "nodeType": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "expression": { + "baseExpression": { + "id": 2909, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "52910:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 2911, + "indexExpression": { + "id": 2910, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52926:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "52910:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2901, + "id": 2912, + "nodeType": "Return", + "src": "52903:31:1" + } + ] + }, + "documentation": { + "id": 2894, + "nodeType": "StructuredDocumentation", + "src": "52669:50:1", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 2914, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2898, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52782:8:1" + }, + "parameters": { + "id": 2897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2896, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52745:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52744:17:1" + }, + "returnParameters": { + "id": 2901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2900, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2899, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "52799:9:1" + }, + "scope": 3498, + "src": "52724:217:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 632 + ], + "body": { + "id": 2947, + "nodeType": "Block", + "src": "53092:206:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2924, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53110:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2925, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53122:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53122:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "53110:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "id": 2928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53136:27:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + }, + "value": "ERC721: approve to caller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "id": 2923, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53102:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53102:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2930, + "nodeType": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "expression": { + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 2931, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53175:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2935, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2932, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53194:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53194:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53175:32:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2936, + "indexExpression": { + "id": 2934, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53208:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "53175:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2937, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53220:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "53175:53:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2941, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53258:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53258:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2943, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53272:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2944, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53282:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2940, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "53243:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 2945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53243:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2946, + "nodeType": "EmitStatement", + "src": "53238:53:1" + } + ] + }, + "documentation": { + "id": 2915, + "nodeType": "StructuredDocumentation", + "src": "52947:56:1", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 2948, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2921, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53083:8:1" + }, + "parameters": { + "id": 2920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2917, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53035:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53035:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2919, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53053:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2918, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53053:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53034:33:1" + }, + "returnParameters": { + "id": 2922, + "nodeType": "ParameterList", + "parameters": [], + "src": "53092:0:1" + }, + "scope": 3498, + "src": "53008:290:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 642 + ], + "body": { + "id": 2965, + "nodeType": "Block", + "src": "53467:59:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 2959, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53484:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2961, + "indexExpression": { + "id": 2960, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "53503:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2963, + "indexExpression": { + "id": 2962, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "53510:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2958, + "id": 2964, + "nodeType": "Return", + "src": "53477:42:1" + } + ] + }, + "documentation": { + "id": 2949, + "nodeType": "StructuredDocumentation", + "src": "53304:55:1", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 2966, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2955, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53443:8:1" + }, + "parameters": { + "id": 2954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53390:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53390:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2953, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53405:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53405:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "53389:33:1" + }, + "returnParameters": { + "id": 2958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2957, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2956, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53460:6:1" + }, + "scope": 3498, + "src": "53364:162:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 608 + ], + "body": { + "id": 2992, + "nodeType": "Block", + "src": "53677:211:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2979, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53766:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53766:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2981, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53780:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2978, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "53747:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53747:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53790:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 2977, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53739:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53739:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2985, + "nodeType": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2987, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2969, + "src": "53863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2988, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2971, + "src": "53869:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2989, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53873:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2986, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "53853:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53853:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2991, + "nodeType": "ExpressionStatement", + "src": "53853:28:1" + } + ] + }, + "documentation": { + "id": 2967, + "nodeType": "StructuredDocumentation", + "src": "53532:51:1", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 2993, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2975, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53668:8:1" + }, + "parameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2969, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53610:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53610:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2971, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53624:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53624:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2973, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53636:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "53636:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53609:43:1" + }, + "returnParameters": { + "id": 2976, + "nodeType": "ParameterList", + "parameters": [], + "src": "53677:0:1" + }, + "scope": 3498, + "src": "53588:300:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 598 + ], + "body": { + "id": 3011, + "nodeType": "Block", + "src": "54047:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3005, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2996, + "src": "54074:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3006, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2998, + "src": "54080:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3007, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3000, + "src": "54084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54093:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3004, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "src": "54057:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54057:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3010, + "nodeType": "ExpressionStatement", + "src": "54057:39:1" + } + ] + }, + "documentation": { + "id": 2994, + "nodeType": "StructuredDocumentation", + "src": "53894:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 3012, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3002, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54038:8:1" + }, + "parameters": { + "id": 3001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2996, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53980:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53980:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2998, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53994:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2997, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53994:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3000, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "54006:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54006:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53979:43:1" + }, + "returnParameters": { + "id": 3003, + "nodeType": "ParameterList", + "parameters": [], + "src": "54047:0:1" + }, + "scope": 3498, + "src": "53954:149:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 654 + ], + "body": { + "id": 3041, + "nodeType": "Block", + "src": "54282:169:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3027, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "54319:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54319:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3029, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3026, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "54300:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 3030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54300:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 3031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54343:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 3025, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "54292:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54292:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3033, + "nodeType": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3035, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3015, + "src": "54419:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3036, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3017, + "src": "54425:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3037, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3038, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3021, + "src": "54438:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3034, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3071, + "src": "54405:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54405:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3040, + "nodeType": "ExpressionStatement", + "src": "54405:39:1" + } + ] + }, + "documentation": { + "id": 3013, + "nodeType": "StructuredDocumentation", + "src": "54109:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 3042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3023, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54273:8:1" + }, + "parameters": { + "id": 3022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3015, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54195:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54195:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3017, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54209:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3016, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54209:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3019, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54221:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3021, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54238:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3020, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "54238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "54194:63:1" + }, + "returnParameters": { + "id": 3024, + "nodeType": "ParameterList", + "parameters": [], + "src": "54282:0:1" + }, + "scope": 3498, + "src": "54169:282:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 3070, + "nodeType": "Block", + "src": "55416:166:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3055, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55436:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55442:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3057, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55446:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3054, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "55426:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55426:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3059, + "nodeType": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3062, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55495:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3063, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55501:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3064, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55505:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3065, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3051, + "src": "55514:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3061, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "55472:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55472:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55522:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3060, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "55464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55464:111:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3069, + "nodeType": "ExpressionStatement", + "src": "55464:111:1" + } + ] + }, + "documentation": { + "id": 3043, + "nodeType": "StructuredDocumentation", + "src": "54457:851:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3071, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3045, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55336:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55336:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3047, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55350:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55350:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3049, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55362:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55362:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3051, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55379:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3050, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "55379:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "55335:63:1" + }, + "returnParameters": { + "id": 3053, + "nodeType": "ParameterList", + "parameters": [], + "src": "55416:0:1" + }, + "scope": 3498, + "src": "55313:269:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3084, + "nodeType": "Block", + "src": "55956:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3081, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "55995:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3079, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "55973:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3080, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 2326, + "src": "55973:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + } + }, + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55973:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3078, + "id": 3083, + "nodeType": "Return", + "src": "55966:37:1" + } + ] + }, + "documentation": { + "id": 3072, + "nodeType": "StructuredDocumentation", + "src": "55588:292:1", + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3085, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3074, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55902:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3073, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55902:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "55901:17:1" + }, + "returnParameters": { + "id": 3078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3077, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55950:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3076, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "55950:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "55949:6:1" + }, + "scope": 3498, + "src": "55885:125:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3126, + "nodeType": "Block", + "src": "56267:252:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3097, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56293:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3096, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "56285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56285:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 3099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56303:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + }, + "value": "ERC721: operator query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "id": 3095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "56277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56277:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3101, + "nodeType": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "assignments": [ + 3103 + ], + "declarations": [ + { + "constant": false, + "id": 3103, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3126, + "src": "56360:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56360:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3108, + "initialValue": { + "arguments": [ + { + "id": 3106, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56391:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3104, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56376:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "56376:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56376:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3109, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56417:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3110, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56428:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56417:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3113, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56449:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3112, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "56437:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56437:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3115, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56437:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:51:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 3120, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56496:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3121, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3118, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "56472:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56472:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:94:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3124, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56416:96:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3094, + "id": 3125, + "nodeType": "Return", + "src": "56409:103:1" + } + ] + }, + "documentation": { + "id": 3086, + "nodeType": "StructuredDocumentation", + "src": "56016:147:1", + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3088, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56196:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56196:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3090, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56213:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56213:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56195:34:1" + }, + "returnParameters": { + "id": 3094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3093, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56261:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3092, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "56261:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "56260:6:1" + }, + "scope": 3498, + "src": "56168:351:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3141, + "nodeType": "Block", + "src": "56915:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3136, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3130, + "src": "56935:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3137, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3132, + "src": "56939:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56948:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3135, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "src": "56925:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 3139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56925:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3140, + "nodeType": "ExpressionStatement", + "src": "56925:26:1" + } + ] + }, + "documentation": { + "id": 3128, + "nodeType": "StructuredDocumentation", + "src": "56525:320:1", + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3142, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3130, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56869:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3132, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56881:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56881:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56868:29:1" + }, + "returnParameters": { + "id": 3134, + "nodeType": "ParameterList", + "parameters": [], + "src": "56915:0:1" + }, + "scope": 3498, + "src": "56850:108:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3170, + "nodeType": "Block", + "src": "57264:162:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3153, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57280:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3154, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3152, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "57274:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57274:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3156, + "nodeType": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57341:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57333:7:1", + "typeDescriptions": {} + } + }, + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57333:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3163, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57345:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3164, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3165, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "57358:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3158, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "57310:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57310:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57366:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3157, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57302:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57302:117:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3169, + "nodeType": "ExpressionStatement", + "src": "57302:117:1" + } + ] + }, + "documentation": { + "id": 3143, + "nodeType": "StructuredDocumentation", + "src": "56964:210:1", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3171, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3145, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57198:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3144, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57198:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3147, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57210:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57210:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3149, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57227:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3148, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "57227:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "57197:49:1" + }, + "returnParameters": { + "id": 3151, + "nodeType": "ParameterList", + "parameters": [], + "src": "57264:0:1" + }, + "scope": 3498, + "src": "57179:247:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3229, + "nodeType": "Block", + "src": "57809:332:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3180, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57827:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57841:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57833:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57833:7:1", + "typeDescriptions": {} + } + }, + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57833:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "57827:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57845:34:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + }, + "value": "ERC721: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "id": 3179, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57819:61:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "57898:17:1", + "subExpression": { + "arguments": [ + { + "id": 3191, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57907:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3190, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "57899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57899:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57917:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + }, + "value": "ERC721: token already minted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "id": 3189, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57890:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57890:58:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3196, + "nodeType": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57988:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57980:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57980:7:1", + "typeDescriptions": {} + } + }, + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57980:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3202, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57992:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3203, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3197, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "57959:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57959:45:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3205, + "nodeType": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3210, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58037:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3206, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58015:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3208, + "indexExpression": { + "id": 3207, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58029:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58015:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3209, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "58015:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58015:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3212, + "nodeType": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3216, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58073:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3217, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58082:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3213, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58056:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3215, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "58056:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58056:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3219, + "nodeType": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58118:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58110:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58110:7:1", + "typeDescriptions": {} + } + }, + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58110:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3225, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58122:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3226, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3220, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58101:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58101:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3228, + "nodeType": "EmitStatement", + "src": "58096:38:1" + } + ] + }, + "documentation": { + "id": 3172, + "nodeType": "StructuredDocumentation", + "src": "57432:311:1", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3174, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57763:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57763:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3176, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57775:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57775:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "57762:29:1" + }, + "returnParameters": { + "id": 3178, + "nodeType": "ParameterList", + "parameters": [], + "src": "57809:0:1" + }, + "scope": 3498, + "src": "57748:393:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3298, + "nodeType": "Block", + "src": "58407:478:1", + "statements": [ + { + "assignments": [ + 3237 + ], + "declarations": [ + { + "constant": false, + "id": 3237, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "58417:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58417:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3242, + "initialValue": { + "arguments": [ + { + "id": 3240, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58448:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3238, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "58433:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "58433:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58433:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3244, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58506:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58521:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58513:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58513:7:1", + "typeDescriptions": {} + } + }, + "id": 3248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58513:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3249, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58525:7:1", + "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": 3243, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "58485:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58485:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3251, + "nodeType": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58588:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58580:7:1", + "typeDescriptions": {} + } + }, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58580:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3257, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58592:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3252, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "58571:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58571:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3259, + "nodeType": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 3262, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58656:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3264, + "indexExpression": { + "id": 3263, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58667:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58656:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 3261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58650:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3260, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "58650:5:1", + "typeDescriptions": {} + } + }, + "id": 3265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58650:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes storage pointer" + } + }, + "id": 3266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "58650:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 3267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58687:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "58650:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3275, + "nodeType": "IfStatement", + "src": "58646:95:1", + "trueBody": { + "id": 3274, + "nodeType": "Block", + "src": "58690:51:1", + "statements": [ + { + "expression": { + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "58704:26:1", + "subExpression": { + "baseExpression": { + "id": 3269, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58711:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3271, + "indexExpression": { + "id": 3270, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58722:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "58711:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3273, + "nodeType": "ExpressionStatement", + "src": "58704:26:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 3280, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58779:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3276, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58751:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3278, + "indexExpression": { + "id": 3277, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58765:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58751:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3279, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "58751:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58751:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3282, + "nodeType": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3286, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58818:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3283, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58798:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 2306, + "src": "58798:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + } + }, + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58798:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3288, + "nodeType": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3290, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58851:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58866:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58858:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58858:7:1", + "typeDescriptions": {} + } + }, + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58858:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3295, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58870:7:1", + "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": 3289, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58842:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58842:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3297, + "nodeType": "EmitStatement", + "src": "58837:41:1" + } + ] + }, + "documentation": { + "id": 3231, + "nodeType": "StructuredDocumentation", + "src": "58147:206:1", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3299, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3233, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3299, + "src": "58373:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "58372:17:1" + }, + "returnParameters": { + "id": 3235, + "nodeType": "ParameterList", + "parameters": [], + "src": "58407:0:1" + }, + "scope": 3498, + "src": "58358:527:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3370, + "nodeType": "Block", + "src": "59288:505:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3312, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59321:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3310, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "59306:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "59306:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59306:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3314, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59333:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "59306:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59339:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + }, + "value": "ERC721: transfer of token that is not own" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "id": 3309, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59298:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59298:85:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3318, + "nodeType": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3320, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59419:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59433:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59425:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59425:7:1", + "typeDescriptions": {} + } + }, + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59425:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "59419:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59437:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + }, + "value": "ERC721: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "id": 3319, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59411:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59411:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3328, + "nodeType": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3330, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59508:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3331, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59514:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3332, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59518:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3329, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "59487:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59487:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3334, + "nodeType": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59605:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59597:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59597:7:1", + "typeDescriptions": {} + } + }, + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59597:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3340, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59609:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3335, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "59588:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59588:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3342, + "nodeType": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3347, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59655:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3343, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59628:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3345, + "indexExpression": { + "id": 3344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59642:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59628:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3346, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "59628:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59628:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3354, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59695:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3350, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3352, + "indexExpression": { + "id": 3351, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59687:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59673:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3353, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "59673:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59673:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3356, + "nodeType": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3360, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59731:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3361, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59740:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3357, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "59714:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "59714:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59714:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3363, + "nodeType": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3365, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59768:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3366, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59774:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3367, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59778:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3364, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "59759:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59759:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3369, + "nodeType": "EmitStatement", + "src": "59754:32:1" + } + ] + }, + "documentation": { + "id": 3300, + "nodeType": "StructuredDocumentation", + "src": "58891:313:1", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3302, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59228:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3304, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59242:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59242:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3306, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59254:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3305, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59254:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "59227:43:1" + }, + "returnParameters": { + "id": 3308, + "nodeType": "ParameterList", + "parameters": [], + "src": "59288:0:1" + }, + "scope": 3498, + "src": "59209:584:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3392, + "nodeType": "Block", + "src": "60021:131:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3381, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60047:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3380, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "60039:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60039:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "id": 3383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "60057:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + }, + "value": "ERC721Metadata: URI set of nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "id": 3379, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "60031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60031:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3385, + "nodeType": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "expression": { + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3386, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "60114:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3388, + "indexExpression": { + "id": 3387, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60125:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "60114:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3389, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "60136:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60114:31:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3391, + "nodeType": "ExpressionStatement", + "src": "60114:31:1" + } + ] + }, + "documentation": { + "id": 3372, + "nodeType": "StructuredDocumentation", + "src": "59799:136:1", + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setTokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3374, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59962:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59962:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3376, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59979:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3375, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "59979:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "59961:42:1" + }, + "returnParameters": { + "id": 3378, + "nodeType": "ParameterList", + "parameters": [], + "src": "60021:0:1" + }, + "scope": 3498, + "src": "59940:212:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3403, + "nodeType": "Block", + "src": "60437:36:1", + "statements": [ + { + "expression": { + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3399, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "60447:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3400, + "name": "baseURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "60458:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60447:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3402, + "nodeType": "ExpressionStatement", + "src": "60447:19:1" + } + ] + }, + "documentation": { + "id": 3394, + "nodeType": "StructuredDocumentation", + "src": "60158:212:1", + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3404, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setBaseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3396, + "mutability": "mutable", + "name": "baseURI_", + "nodeType": "VariableDeclaration", + "scope": 3404, + "src": "60396:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3395, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "60396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "60395:24:1" + }, + "returnParameters": { + "id": 3398, + "nodeType": "ParameterList", + "parameters": [], + "src": "60437:0:1" + }, + "scope": 3498, + "src": "60375:98:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3461, + "nodeType": "Block", + "src": "61156:459:1", + "statements": [ + { + "condition": { + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "61170:16:1", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3418, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61171:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 1154, + "src": "61171:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61171:15:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3425, + "nodeType": "IfStatement", + "src": "61166:58:1", + "trueBody": { + "id": 3424, + "nodeType": "Block", + "src": "61188:36:1", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 3422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61209:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3417, + "id": 3423, + "nodeType": "Return", + "src": "61202:11:1" + } + ] + } + }, + { + "assignments": [ + 3427 + ], + "declarations": [ + { + "constant": false, + "id": 3427, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61233:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3426, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61233:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3445, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 3433, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61327:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3432, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "61311:15:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$726_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 3434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61311:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$726", + "typeString": "contract IERC721Receiver" + } + }, + "id": 3435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 725, + "src": "61311:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "61311:45:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3437, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "61370:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61370:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3439, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "61396:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3440, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "61414:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3441, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3413, + "src": "61435:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3430, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61275:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "61275:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 3442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61275:175:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61452:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "expression": { + "id": 3428, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61259:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 1225, + "src": "61259:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 3444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61259:246:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "assignments": [ + 3447 + ], + "declarations": [ + { + "constant": false, + "id": 3447, + "mutability": "mutable", + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61515:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3446, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61515:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "id": 3455, + "initialValue": { + "arguments": [ + { + "id": 3450, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3427, + "src": "61542:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 3452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "61555:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 3451, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61555:6:1", + "typeDescriptions": {} + } + } + ], + "id": 3453, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61554:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "expression": { + "id": 3448, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61531:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "61531:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61531:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3456, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "61581:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3457, + "name": "_ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "61591:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "61581:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3459, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61580:28:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3417, + "id": 3460, + "nodeType": "Return", + "src": "61573:35:1" + } + ] + }, + "documentation": { + "id": 3405, + "nodeType": "StructuredDocumentation", + "src": "60479:542:1", + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3462, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3407, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61058:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61058:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3409, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61072:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61072:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3411, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61084:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3410, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3413, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61101:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3412, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61101:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "61057:63:1" + }, + "returnParameters": { + "id": 3417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3416, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61146:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3415, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "61146:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "61145:6:1" + }, + "scope": 3498, + "src": "61026:589:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3485, + "nodeType": "Block", + "src": "61791:125:1", + "statements": [ + { + "expression": { + "id": 3474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3470, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "61801:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 3472, + "indexExpression": { + "id": 3471, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61817:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "61801:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3473, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61828:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "61801:29:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3475, + "nodeType": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 3479, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61869:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3477, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "61854:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "61854:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61854:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3481, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61879:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3482, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3476, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "61845:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61845:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3484, + "nodeType": "EmitStatement", + "src": "61840:51:1" + } + ] + }, + "documentation": { + "id": 3463, + "nodeType": "StructuredDocumentation", + "src": "61621:101:1", + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3486, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3465, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61745:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61745:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3467, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61757:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61757:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "61744:29:1" + }, + "returnParameters": { + "id": 3469, + "nodeType": "ParameterList", + "parameters": [], + "src": "61791:0:1" + }, + "scope": 3498, + "src": "61727:189:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3496, + "nodeType": "Block", + "src": "62602:3:1", + "statements": [] + }, + "documentation": { + "id": 3487, + "nodeType": "StructuredDocumentation", + "src": "61922:585:1", + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3497, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3489, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62542:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62542:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3491, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62556:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62556:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3493, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62568:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "62568:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "62541:43:1" + }, + "returnParameters": { + "id": 3495, + "nodeType": "ParameterList", + "parameters": [], + "src": "62602:0:1" + }, + "scope": 3498, + "src": "62512:93:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "46080:16527:1" + } + ], + "src": "84:62524:1" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "license": "MIT" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 509, + "name": "PragmaDirective", + "src": "84:31:1" + }, + { + "attributes": { + "abstract": true, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgSender", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 510, + "name": "ParameterList", + "src": "668:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 518, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 511, + "name": "ElementaryTypeName", + "src": "702:15:1" + } + ], + "id": 512, + "name": "VariableDeclaration", + "src": "702:15:1" + } + ], + "id": 513, + "name": "ParameterList", + "src": "701:17:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 513 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 514, + "name": "Identifier", + "src": "736:3:1" + } + ], + "id": 515, + "name": "MemberAccess", + "src": "736:10:1" + } + ], + "id": 516, + "name": "Return", + "src": "729:17:1" + } + ], + "id": 517, + "name": "Block", + "src": "719:34:1" + } + ], + "id": 518, + "name": "FunctionDefinition", + "src": "649:104:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgData", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 519, + "name": "ParameterList", + "src": "776:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 529, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 520, + "name": "ElementaryTypeName", + "src": "810:5:1" + } + ], + "id": 521, + "name": "VariableDeclaration", + "src": "810:12:1" + } + ], + "id": 522, + "name": "ParameterList", + "src": "809:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "contract Context", + "value": "this" + }, + "id": 523, + "name": "Identifier", + "src": "834:4:1" + } + ], + "id": 524, + "name": "ExpressionStatement", + "src": "834:4:1" + }, + { + "attributes": { + "functionReturnParameters": 522 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "data", + "type": "bytes calldata" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 525, + "name": "Identifier", + "src": "974:3:1" + } + ], + "id": 526, + "name": "MemberAccess", + "src": "974:8:1" + } + ], + "id": 527, + "name": "Return", + "src": "967:15:1" + } + ], + "id": 528, + "name": "Block", + "src": "824:165:1" + } + ], + "id": 529, + "name": "FunctionDefinition", + "src": "759:230:1" + } + ], + "id": 530, + "name": "ContractDefinition", + "src": "617:374:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 531, + "name": "PragmaDirective", + "src": "1053:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "id": 532, + "name": "StructuredDocumentation", + "src": "1086:279:1" + }, + { + "attributes": { + "functionSelector": "01ffc9a7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 541, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "id": 533, + "name": "StructuredDocumentation", + "src": "1390:340:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 534, + "name": "ElementaryTypeName", + "src": "1762:6:1" + } + ], + "id": 535, + "name": "VariableDeclaration", + "src": "1762:18:1" + } + ], + "id": 536, + "name": "ParameterList", + "src": "1761:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 537, + "name": "ElementaryTypeName", + "src": "1805:4:1" + } + ], + "id": 538, + "name": "VariableDeclaration", + "src": "1805:4:1" + } + ], + "id": 539, + "name": "ParameterList", + "src": "1804:6:1" + } + ], + "id": 540, + "name": "FunctionDefinition", + "src": "1735:76:1" + } + ], + "id": 541, + "name": "ContractDefinition", + "src": "1366:447:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 542, + "name": "PragmaDirective", + "src": "1873:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "id": 543, + "name": "StructuredDocumentation", + "src": "1907:67:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 544, + "name": "UserDefinedTypeName", + "src": "1996:7:1" + } + ], + "id": 545, + "name": "InheritanceSpecifier", + "src": "1996:7:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Transfer" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 546, + "name": "StructuredDocumentation", + "src": "2010:88:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "from", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 547, + "name": "ElementaryTypeName", + "src": "2118:7:1" + } + ], + "id": 548, + "name": "VariableDeclaration", + "src": "2118:20:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "to", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 549, + "name": "ElementaryTypeName", + "src": "2140:7:1" + } + ], + "id": 550, + "name": "VariableDeclaration", + "src": "2140:18:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 551, + "name": "ElementaryTypeName", + "src": "2160:7:1" + } + ], + "id": 552, + "name": "VariableDeclaration", + "src": "2160:23:1" + } + ], + "id": 553, + "name": "ParameterList", + "src": "2117:67:1" + } + ], + "id": 554, + "name": "EventDefinition", + "src": "2103:82:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Approval" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 555, + "name": "StructuredDocumentation", + "src": "2191:94:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 556, + "name": "ElementaryTypeName", + "src": "2305:7:1" + } + ], + "id": 557, + "name": "VariableDeclaration", + "src": "2305:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 558, + "name": "ElementaryTypeName", + "src": "2328:7:1" + } + ], + "id": 559, + "name": "VariableDeclaration", + "src": "2328:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 560, + "name": "ElementaryTypeName", + "src": "2354:7:1" + } + ], + "id": 561, + "name": "VariableDeclaration", + "src": "2354:23:1" + } + ], + "id": 562, + "name": "ParameterList", + "src": "2304:74:1" + } + ], + "id": 563, + "name": "EventDefinition", + "src": "2290:89:1" + }, + { + "attributes": { + "anonymous": false, + "name": "ApprovalForAll" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 564, + "name": "StructuredDocumentation", + "src": "2385:117:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 565, + "name": "ElementaryTypeName", + "src": "2528:7:1" + } + ], + "id": 566, + "name": "VariableDeclaration", + "src": "2528:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 567, + "name": "ElementaryTypeName", + "src": "2551:7:1" + } + ], + "id": 568, + "name": "VariableDeclaration", + "src": "2551:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 569, + "name": "ElementaryTypeName", + "src": "2577:4:1" + } + ], + "id": 570, + "name": "VariableDeclaration", + "src": "2577:13:1" + } + ], + "id": 571, + "name": "ParameterList", + "src": "2527:64:1" + } + ], + "id": 572, + "name": "EventDefinition", + "src": "2507:85:1" + }, + { + "attributes": { + "functionSelector": "70a08231", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "id": 573, + "name": "StructuredDocumentation", + "src": "2598:76:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 574, + "name": "ElementaryTypeName", + "src": "2698:7:1" + } + ], + "id": 575, + "name": "VariableDeclaration", + "src": "2698:13:1" + } + ], + "id": 576, + "name": "ParameterList", + "src": "2697:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "balance", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 577, + "name": "ElementaryTypeName", + "src": "2736:7:1" + } + ], + "id": 578, + "name": "VariableDeclaration", + "src": "2736:15:1" + } + ], + "id": 579, + "name": "ParameterList", + "src": "2735:17:1" + } + ], + "id": 580, + "name": "FunctionDefinition", + "src": "2679:74:1" + }, + { + "attributes": { + "functionSelector": "6352211e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 581, + "name": "StructuredDocumentation", + "src": "2759:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 582, + "name": "ElementaryTypeName", + "src": "2912:7:1" + } + ], + "id": 583, + "name": "VariableDeclaration", + "src": "2912:15:1" + } + ], + "id": 584, + "name": "ParameterList", + "src": "2911:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 585, + "name": "ElementaryTypeName", + "src": "2952:7:1" + } + ], + "id": 586, + "name": "VariableDeclaration", + "src": "2952:13:1" + } + ], + "id": 587, + "name": "ParameterList", + "src": "2951:15:1" + } + ], + "id": 588, + "name": "FunctionDefinition", + "src": "2895:72:1" + }, + { + "attributes": { + "functionSelector": "42842e0e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 589, + "name": "StructuredDocumentation", + "src": "2973:690:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 590, + "name": "ElementaryTypeName", + "src": "3694:7:1" + } + ], + "id": 591, + "name": "VariableDeclaration", + "src": "3694:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 592, + "name": "ElementaryTypeName", + "src": "3708:7:1" + } + ], + "id": 593, + "name": "VariableDeclaration", + "src": "3708:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 594, + "name": "ElementaryTypeName", + "src": "3720:7:1" + } + ], + "id": 595, + "name": "VariableDeclaration", + "src": "3720:15:1" + } + ], + "id": 596, + "name": "ParameterList", + "src": "3693:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 597, + "name": "ParameterList", + "src": "3745:0:1" + } + ], + "id": 598, + "name": "FunctionDefinition", + "src": "3668:78:1" + }, + { + "attributes": { + "functionSelector": "23b872dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "id": 599, + "name": "StructuredDocumentation", + "src": "3752:504:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 600, + "name": "ElementaryTypeName", + "src": "4283:7:1" + } + ], + "id": 601, + "name": "VariableDeclaration", + "src": "4283:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 602, + "name": "ElementaryTypeName", + "src": "4297:7:1" + } + ], + "id": 603, + "name": "VariableDeclaration", + "src": "4297:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 604, + "name": "ElementaryTypeName", + "src": "4309:7:1" + } + ], + "id": 605, + "name": "VariableDeclaration", + "src": "4309:15:1" + } + ], + "id": 606, + "name": "ParameterList", + "src": "4282:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 607, + "name": "ParameterList", + "src": "4334:0:1" + } + ], + "id": 608, + "name": "FunctionDefinition", + "src": "4261:74:1" + }, + { + "attributes": { + "functionSelector": "095ea7b3", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "id": 609, + "name": "StructuredDocumentation", + "src": "4341:452:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 610, + "name": "ElementaryTypeName", + "src": "4815:7:1" + } + ], + "id": 611, + "name": "VariableDeclaration", + "src": "4815:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 612, + "name": "ElementaryTypeName", + "src": "4827:7:1" + } + ], + "id": 613, + "name": "VariableDeclaration", + "src": "4827:15:1" + } + ], + "id": 614, + "name": "ParameterList", + "src": "4814:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 615, + "name": "ParameterList", + "src": "4852:0:1" + } + ], + "id": 616, + "name": "FunctionDefinition", + "src": "4798:55:1" + }, + { + "attributes": { + "functionSelector": "081812fc", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 617, + "name": "StructuredDocumentation", + "src": "4859:139:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 618, + "name": "ElementaryTypeName", + "src": "5024:7:1" + } + ], + "id": 619, + "name": "VariableDeclaration", + "src": "5024:15:1" + } + ], + "id": 620, + "name": "ParameterList", + "src": "5023:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 621, + "name": "ElementaryTypeName", + "src": "5064:7:1" + } + ], + "id": 622, + "name": "VariableDeclaration", + "src": "5064:16:1" + } + ], + "id": 623, + "name": "ParameterList", + "src": "5063:18:1" + } + ], + "id": 624, + "name": "FunctionDefinition", + "src": "5003:79:1" + }, + { + "attributes": { + "functionSelector": "a22cb465", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "id": 625, + "name": "StructuredDocumentation", + "src": "5088:309:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 626, + "name": "ElementaryTypeName", + "src": "5429:7:1" + } + ], + "id": 627, + "name": "VariableDeclaration", + "src": "5429:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_approved", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 628, + "name": "ElementaryTypeName", + "src": "5447:4:1" + } + ], + "id": 629, + "name": "VariableDeclaration", + "src": "5447:14:1" + } + ], + "id": 630, + "name": "ParameterList", + "src": "5428:34:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 631, + "name": "ParameterList", + "src": "5471:0:1" + } + ], + "id": 632, + "name": "FunctionDefinition", + "src": "5402:70:1" + }, + { + "attributes": { + "functionSelector": "e985e9c5", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "id": 633, + "name": "StructuredDocumentation", + "src": "5478:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 634, + "name": "ElementaryTypeName", + "src": "5647:7:1" + } + ], + "id": 635, + "name": "VariableDeclaration", + "src": "5647:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 636, + "name": "ElementaryTypeName", + "src": "5662:7:1" + } + ], + "id": 637, + "name": "VariableDeclaration", + "src": "5662:16:1" + } + ], + "id": 638, + "name": "ParameterList", + "src": "5646:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 639, + "name": "ElementaryTypeName", + "src": "5703:4:1" + } + ], + "id": 640, + "name": "VariableDeclaration", + "src": "5703:4:1" + } + ], + "id": 641, + "name": "ParameterList", + "src": "5702:6:1" + } + ], + "id": 642, + "name": "FunctionDefinition", + "src": "5621:88:1" + }, + { + "attributes": { + "functionSelector": "b88d4fde", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 643, + "name": "StructuredDocumentation", + "src": "5715:568:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 644, + "name": "ElementaryTypeName", + "src": "6314:7:1" + } + ], + "id": 645, + "name": "VariableDeclaration", + "src": "6314:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 646, + "name": "ElementaryTypeName", + "src": "6328:7:1" + } + ], + "id": 647, + "name": "VariableDeclaration", + "src": "6328:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 648, + "name": "ElementaryTypeName", + "src": "6340:7:1" + } + ], + "id": 649, + "name": "VariableDeclaration", + "src": "6340:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 654, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 650, + "name": "ElementaryTypeName", + "src": "6357:5:1" + } + ], + "id": 651, + "name": "VariableDeclaration", + "src": "6357:19:1" + } + ], + "id": 652, + "name": "ParameterList", + "src": "6313:64:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 653, + "name": "ParameterList", + "src": "6386:0:1" + } + ], + "id": 654, + "name": "FunctionDefinition", + "src": "6288:99:1" + } + ], + "id": 655, + "name": "ContractDefinition", + "src": "1975:4414:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 656, + "name": "PragmaDirective", + "src": "6457:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 657, + "name": "StructuredDocumentation", + "src": "6491:133:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 658, + "name": "UserDefinedTypeName", + "src": "6654:7:1" + } + ], + "id": 659, + "name": "InheritanceSpecifier", + "src": "6654:7:1" + }, + { + "attributes": { + "functionSelector": "06fdde03", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection name." + }, + "id": 660, + "name": "StructuredDocumentation", + "src": "6669:58:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 661, + "name": "ParameterList", + "src": "6745:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 665, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 662, + "name": "ElementaryTypeName", + "src": "6771:6:1" + } + ], + "id": 663, + "name": "VariableDeclaration", + "src": "6771:13:1" + } + ], + "id": 664, + "name": "ParameterList", + "src": "6770:15:1" + } + ], + "id": 665, + "name": "FunctionDefinition", + "src": "6732:54:1" + }, + { + "attributes": { + "functionSelector": "95d89b41", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection symbol." + }, + "id": 666, + "name": "StructuredDocumentation", + "src": "6792:60:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 667, + "name": "ParameterList", + "src": "6872:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 671, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 668, + "name": "ElementaryTypeName", + "src": "6898:6:1" + } + ], + "id": 669, + "name": "VariableDeclaration", + "src": "6898:13:1" + } + ], + "id": 670, + "name": "ParameterList", + "src": "6897:15:1" + } + ], + "id": 671, + "name": "FunctionDefinition", + "src": "6857:56:1" + }, + { + "attributes": { + "functionSelector": "c87b56dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "id": 672, + "name": "StructuredDocumentation", + "src": "6919:90:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 679, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 673, + "name": "ElementaryTypeName", + "src": "7032:7:1" + } + ], + "id": 674, + "name": "VariableDeclaration", + "src": "7032:15:1" + } + ], + "id": 675, + "name": "ParameterList", + "src": "7031:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 679, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 676, + "name": "ElementaryTypeName", + "src": "7072:6:1" + } + ], + "id": 677, + "name": "VariableDeclaration", + "src": "7072:13:1" + } + ], + "id": 678, + "name": "ParameterList", + "src": "7071:15:1" + } + ], + "id": 679, + "name": "FunctionDefinition", + "src": "7014:73:1" + } + ], + "id": 680, + "name": "ContractDefinition", + "src": "6625:464:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 681, + "name": "PragmaDirective", + "src": "7161:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 682, + "name": "StructuredDocumentation", + "src": "7195:136:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 683, + "name": "UserDefinedTypeName", + "src": "7363:7:1" + } + ], + "id": 684, + "name": "InheritanceSpecifier", + "src": "7363:7:1" + }, + { + "attributes": { + "functionSelector": "18160ddd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "id": 685, + "name": "StructuredDocumentation", + "src": "7378:82:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 686, + "name": "ParameterList", + "src": "7485:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 690, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 687, + "name": "ElementaryTypeName", + "src": "7511:7:1" + } + ], + "id": 688, + "name": "VariableDeclaration", + "src": "7511:7:1" + } + ], + "id": 689, + "name": "ParameterList", + "src": "7510:9:1" + } + ], + "id": 690, + "name": "FunctionDefinition", + "src": "7465:55:1" + }, + { + "attributes": { + "functionSelector": "2f745c59", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "id": 691, + "name": "StructuredDocumentation", + "src": "7526:171:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 692, + "name": "ElementaryTypeName", + "src": "7731:7:1" + } + ], + "id": 693, + "name": "VariableDeclaration", + "src": "7731:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 694, + "name": "ElementaryTypeName", + "src": "7746:7:1" + } + ], + "id": 695, + "name": "VariableDeclaration", + "src": "7746:13:1" + } + ], + "id": 696, + "name": "ParameterList", + "src": "7730:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 697, + "name": "ElementaryTypeName", + "src": "7784:7:1" + } + ], + "id": 698, + "name": "VariableDeclaration", + "src": "7784:15:1" + } + ], + "id": 699, + "name": "ParameterList", + "src": "7783:17:1" + } + ], + "id": 700, + "name": "FunctionDefinition", + "src": "7702:99:1" + }, + { + "attributes": { + "functionSelector": "4f6ccce7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "id": 701, + "name": "StructuredDocumentation", + "src": "7807:164:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 702, + "name": "ElementaryTypeName", + "src": "7998:7:1" + } + ], + "id": 703, + "name": "VariableDeclaration", + "src": "7998:13:1" + } + ], + "id": 704, + "name": "ParameterList", + "src": "7997:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 705, + "name": "ElementaryTypeName", + "src": "8036:7:1" + } + ], + "id": 706, + "name": "VariableDeclaration", + "src": "8036:7:1" + } + ], + "id": 707, + "name": "ParameterList", + "src": "8035:9:1" + } + ], + "id": 708, + "name": "FunctionDefinition", + "src": "7976:69:1" + } + ], + "id": 709, + "name": "ContractDefinition", + "src": "7332:715:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 710, + "name": "PragmaDirective", + "src": "8117:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "id": 711, + "name": "StructuredDocumentation", + "src": "8150:152:1" + }, + { + "attributes": { + "functionSelector": "150b7a02", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "onERC721Received", + "scope": 726, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "id": 712, + "name": "StructuredDocumentation", + "src": "8335:485:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 713, + "name": "ElementaryTypeName", + "src": "8851:7:1" + } + ], + "id": 714, + "name": "VariableDeclaration", + "src": "8851:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 715, + "name": "ElementaryTypeName", + "src": "8869:7:1" + } + ], + "id": 716, + "name": "VariableDeclaration", + "src": "8869:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 717, + "name": "ElementaryTypeName", + "src": "8883:7:1" + } + ], + "id": 718, + "name": "VariableDeclaration", + "src": "8883:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 725, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 719, + "name": "ElementaryTypeName", + "src": "8900:5:1" + } + ], + "id": 720, + "name": "VariableDeclaration", + "src": "8900:19:1" + } + ], + "id": 721, + "name": "ParameterList", + "src": "8850:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 722, + "name": "ElementaryTypeName", + "src": "8939:6:1" + } + ], + "id": 723, + "name": "VariableDeclaration", + "src": "8939:6:1" + } + ], + "id": 724, + "name": "ParameterList", + "src": "8938:8:1" + } + ], + "id": 725, + "name": "FunctionDefinition", + "src": "8825:122:1" + } + ], + "id": 726, + "name": "ContractDefinition", + "src": "8303:646:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 727, + "name": "PragmaDirective", + "src": "9009:31:1" + }, + { + "attributes": { + "abstract": true, + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "id": 728, + "name": "StructuredDocumentation", + "src": "9043:171:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 729, + "name": "UserDefinedTypeName", + "src": "9243:7:1" + } + ], + "id": 730, + "name": "InheritanceSpecifier", + "src": "9243:7:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 731, + "name": "ElementaryTypeName", + "src": "9340:6:1" + }, + { + "attributes": { + "hexvalue": "30783031666663396137", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 33540519", + "value": "0x01ffc9a7" + }, + "id": 732, + "name": "Literal", + "src": "9387:10:1" + } + ], + "id": 733, + "name": "VariableDeclaration", + "src": "9340:57:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_supportedInterfaces", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes4 => bool)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes4 => bool)" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 735, + "name": "ElementaryTypeName", + "src": "9499:6:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 736, + "name": "ElementaryTypeName", + "src": "9509:4:1" + } + ], + "id": 737, + "name": "Mapping", + "src": "9491:23:1" + }, + { + "attributes": { + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 734, + "name": "StructuredDocumentation", + "src": "9404:82:1" + } + ], + "id": 738, + "name": "VariableDeclaration", + "src": "9491:52:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 739, + "name": "ParameterList", + "src": "9562:2:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 740, + "name": "ParameterList", + "src": "9565:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 741, + "name": "Identifier", + "src": "9711:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 733, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC165" + }, + "id": 742, + "name": "Identifier", + "src": "9730:20:1" + } + ], + "id": 743, + "name": "FunctionCall", + "src": "9711:40:1" + } + ], + "id": 744, + "name": "ExpressionStatement", + "src": "9711:40:1" + } + ], + "id": 745, + "name": "Block", + "src": "9565:193:1" + } + ], + "id": 746, + "name": "FunctionDefinition", + "src": "9550:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 540 + ], + "functionSelector": "01ffc9a7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 781, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "id": 747, + "name": "StructuredDocumentation", + "src": "9764:139:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 751, + "name": "OverrideSpecifier", + "src": "9975:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 748, + "name": "ElementaryTypeName", + "src": "9935:6:1" + } + ], + "id": 749, + "name": "VariableDeclaration", + "src": "9935:18:1" + } + ], + "id": 750, + "name": "ParameterList", + "src": "9934:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 752, + "name": "ElementaryTypeName", + "src": "9993:4:1" + } + ], + "id": 753, + "name": "VariableDeclaration", + "src": "9993:4:1" + } + ], + "id": 754, + "name": "ParameterList", + "src": "9992:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 754 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 755, + "name": "Identifier", + "src": "10016:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 749, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 756, + "name": "Identifier", + "src": "10037:11:1" + } + ], + "id": 757, + "name": "IndexAccess", + "src": "10016:33:1" + } + ], + "id": 758, + "name": "Return", + "src": "10009:40:1" + } + ], + "id": 759, + "name": "Block", + "src": "9999:57:1" + } + ], + "id": 760, + "name": "FunctionDefinition", + "src": "9908:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_registerInterface", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 761, + "name": "StructuredDocumentation", + "src": "10062:383:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 780, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 762, + "name": "ElementaryTypeName", + "src": "10478:6:1" + } + ], + "id": 763, + "name": "VariableDeclaration", + "src": "10478:18:1" + } + ], + "id": 764, + "name": "ParameterList", + "src": "10477:20:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 765, + "name": "ParameterList", + "src": "10515:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 766, + "name": "Identifier", + "src": "10525:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 767, + "name": "Identifier", + "src": "10533:11:1" + }, + { + "attributes": { + "hexvalue": "30786666666666666666", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4294967295", + "value": "0xffffffff" + }, + "id": 768, + "name": "Literal", + "src": "10548:10:1" + } + ], + "id": 769, + "name": "BinaryOperation", + "src": "10533:25:1" + }, + { + "attributes": { + "hexvalue": "4552433136353a20696e76616c696420696e74657266616365206964", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC165: invalid interface id\"", + "value": "ERC165: invalid interface id" + }, + "id": 770, + "name": "Literal", + "src": "10560:30:1" + } + ], + "id": 771, + "name": "FunctionCall", + "src": "10525:66:1" + } + ], + "id": 772, + "name": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 773, + "name": "Identifier", + "src": "10601:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 774, + "name": "Identifier", + "src": "10622:11:1" + } + ], + "id": 775, + "name": "IndexAccess", + "src": "10601:33:1" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 776, + "name": "Literal", + "src": "10637:4:1" + } + ], + "id": 777, + "name": "Assignment", + "src": "10601:40:1" + } + ], + "id": 778, + "name": "ExpressionStatement", + "src": "10601:40:1" + } + ], + "id": 779, + "name": "Block", + "src": "10515:133:1" + } + ], + "id": 780, + "name": "FunctionDefinition", + "src": "10450:198:1" + } + ], + "id": 781, + "name": "ContractDefinition", + "src": "9215:1435:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 782, + "name": "PragmaDirective", + "src": "10703:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "id": 783, + "name": "StructuredDocumentation", + "src": "10736:563:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryAdd", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 784, + "name": "StructuredDocumentation", + "src": "11323:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 785, + "name": "ElementaryTypeName", + "src": "11475:7:1" + } + ], + "id": 786, + "name": "VariableDeclaration", + "src": "11475:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 787, + "name": "ElementaryTypeName", + "src": "11486:7:1" + } + ], + "id": 788, + "name": "VariableDeclaration", + "src": "11486:9:1" + } + ], + "id": 789, + "name": "ParameterList", + "src": "11474:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 790, + "name": "ElementaryTypeName", + "src": "11520:4:1" + } + ], + "id": 791, + "name": "VariableDeclaration", + "src": "11520:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 792, + "name": "ElementaryTypeName", + "src": "11526:7:1" + } + ], + "id": 793, + "name": "VariableDeclaration", + "src": "11526:7:1" + } + ], + "id": 794, + "name": "ParameterList", + "src": "11519:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 796 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 813, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 795, + "name": "ElementaryTypeName", + "src": "11545:7:1" + } + ], + "id": 796, + "name": "VariableDeclaration", + "src": "11545:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 797, + "name": "Identifier", + "src": "11557:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 788, + "type": "uint256", + "value": "b" + }, + "id": 798, + "name": "Identifier", + "src": "11561:1:1" + } + ], + "id": 799, + "name": "BinaryOperation", + "src": "11557:5:1" + } + ], + "id": 800, + "name": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 801, + "name": "Identifier", + "src": "11576:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 802, + "name": "Identifier", + "src": "11580:1:1" + } + ], + "id": 803, + "name": "BinaryOperation", + "src": "11576:5:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 804, + "name": "Literal", + "src": "11591:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 805, + "name": "Literal", + "src": "11598:1:1" + } + ], + "id": 806, + "name": "TupleExpression", + "src": "11590:10:1" + } + ], + "id": 807, + "name": "Return", + "src": "11583:17:1" + } + ], + "id": 808, + "name": "IfStatement", + "src": "11572:28:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 809, + "name": "Literal", + "src": "11618:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 810, + "name": "Identifier", + "src": "11624:1:1" + } + ], + "id": 811, + "name": "TupleExpression", + "src": "11617:9:1" + } + ], + "id": 812, + "name": "Return", + "src": "11610:16:1" + } + ], + "id": 813, + "name": "Block", + "src": "11535:98:1" + } + ], + "id": 814, + "name": "FunctionDefinition", + "src": "11459:174:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "trySub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 815, + "name": "StructuredDocumentation", + "src": "11639:135:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 816, + "name": "ElementaryTypeName", + "src": "11795:7:1" + } + ], + "id": 817, + "name": "VariableDeclaration", + "src": "11795:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 818, + "name": "ElementaryTypeName", + "src": "11806:7:1" + } + ], + "id": 819, + "name": "VariableDeclaration", + "src": "11806:9:1" + } + ], + "id": 820, + "name": "ParameterList", + "src": "11794:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 821, + "name": "ElementaryTypeName", + "src": "11840:4:1" + } + ], + "id": 822, + "name": "VariableDeclaration", + "src": "11840:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 823, + "name": "ElementaryTypeName", + "src": "11846:7:1" + } + ], + "id": 824, + "name": "VariableDeclaration", + "src": "11846:7:1" + } + ], + "id": 825, + "name": "ParameterList", + "src": "11839:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 826, + "name": "Identifier", + "src": "11869:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 827, + "name": "Identifier", + "src": "11873:1:1" + } + ], + "id": 828, + "name": "BinaryOperation", + "src": "11869:5:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 829, + "name": "Literal", + "src": "11884:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 830, + "name": "Literal", + "src": "11891:1:1" + } + ], + "id": 831, + "name": "TupleExpression", + "src": "11883:10:1" + } + ], + "id": 832, + "name": "Return", + "src": "11876:17:1" + } + ], + "id": 833, + "name": "IfStatement", + "src": "11865:28:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 834, + "name": "Literal", + "src": "11911:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 835, + "name": "Identifier", + "src": "11917:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 836, + "name": "Identifier", + "src": "11921:1:1" + } + ], + "id": 837, + "name": "BinaryOperation", + "src": "11917:5:1" + } + ], + "id": 838, + "name": "TupleExpression", + "src": "11910:13:1" + } + ], + "id": 839, + "name": "Return", + "src": "11903:20:1" + } + ], + "id": 840, + "name": "Block", + "src": "11855:75:1" + } + ], + "id": 841, + "name": "FunctionDefinition", + "src": "11779:151:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 842, + "name": "StructuredDocumentation", + "src": "11936:137:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 843, + "name": "ElementaryTypeName", + "src": "12094:7:1" + } + ], + "id": 844, + "name": "VariableDeclaration", + "src": "12094:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 845, + "name": "ElementaryTypeName", + "src": "12105:7:1" + } + ], + "id": 846, + "name": "VariableDeclaration", + "src": "12105:9:1" + } + ], + "id": 847, + "name": "ParameterList", + "src": "12093:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 848, + "name": "ElementaryTypeName", + "src": "12139:4:1" + } + ], + "id": 849, + "name": "VariableDeclaration", + "src": "12139:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 850, + "name": "ElementaryTypeName", + "src": "12145:7:1" + } + ], + "id": 851, + "name": "VariableDeclaration", + "src": "12145:7:1" + } + ], + "id": 852, + "name": "ParameterList", + "src": "12138:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 853, + "name": "Identifier", + "src": "12386:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 854, + "name": "Literal", + "src": "12391:1:1" + } + ], + "id": 855, + "name": "BinaryOperation", + "src": "12386:6:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 856, + "name": "Literal", + "src": "12402:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 857, + "name": "Literal", + "src": "12408:1:1" + } + ], + "id": 858, + "name": "TupleExpression", + "src": "12401:9:1" + } + ], + "id": 859, + "name": "Return", + "src": "12394:16:1" + } + ], + "id": 860, + "name": "IfStatement", + "src": "12382:28:1" + }, + { + "attributes": { + "assignments": [ + 862 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 881, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 861, + "name": "ElementaryTypeName", + "src": "12420:7:1" + } + ], + "id": 862, + "name": "VariableDeclaration", + "src": "12420:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 863, + "name": "Identifier", + "src": "12432:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 864, + "name": "Identifier", + "src": "12436:1:1" + } + ], + "id": 865, + "name": "BinaryOperation", + "src": "12432:5:1" + } + ], + "id": 866, + "name": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 867, + "name": "Identifier", + "src": "12451:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 868, + "name": "Identifier", + "src": "12455:1:1" + } + ], + "id": 869, + "name": "BinaryOperation", + "src": "12451:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 870, + "name": "Identifier", + "src": "12460:1:1" + } + ], + "id": 871, + "name": "BinaryOperation", + "src": "12451:10:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 872, + "name": "Literal", + "src": "12471:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 873, + "name": "Literal", + "src": "12478:1:1" + } + ], + "id": 874, + "name": "TupleExpression", + "src": "12470:10:1" + } + ], + "id": 875, + "name": "Return", + "src": "12463:17:1" + } + ], + "id": 876, + "name": "IfStatement", + "src": "12447:33:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 877, + "name": "Literal", + "src": "12498:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 878, + "name": "Identifier", + "src": "12504:1:1" + } + ], + "id": 879, + "name": "TupleExpression", + "src": "12497:9:1" + } + ], + "id": 880, + "name": "Return", + "src": "12490:16:1" + } + ], + "id": 881, + "name": "Block", + "src": "12154:359:1" + } + ], + "id": 882, + "name": "FunctionDefinition", + "src": "12078:435:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryDiv", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 883, + "name": "StructuredDocumentation", + "src": "12519:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 884, + "name": "ElementaryTypeName", + "src": "12678:7:1" + } + ], + "id": 885, + "name": "VariableDeclaration", + "src": "12678:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 886, + "name": "ElementaryTypeName", + "src": "12689:7:1" + } + ], + "id": 887, + "name": "VariableDeclaration", + "src": "12689:9:1" + } + ], + "id": 888, + "name": "ParameterList", + "src": "12677:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 889, + "name": "ElementaryTypeName", + "src": "12723:4:1" + } + ], + "id": 890, + "name": "VariableDeclaration", + "src": "12723:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 891, + "name": "ElementaryTypeName", + "src": "12729:7:1" + } + ], + "id": 892, + "name": "VariableDeclaration", + "src": "12729:7:1" + } + ], + "id": 893, + "name": "ParameterList", + "src": "12722:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 894, + "name": "Identifier", + "src": "12752:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 895, + "name": "Literal", + "src": "12757:1:1" + } + ], + "id": 896, + "name": "BinaryOperation", + "src": "12752:6:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 897, + "name": "Literal", + "src": "12768:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 898, + "name": "Literal", + "src": "12775:1:1" + } + ], + "id": 899, + "name": "TupleExpression", + "src": "12767:10:1" + } + ], + "id": 900, + "name": "Return", + "src": "12760:17:1" + } + ], + "id": 901, + "name": "IfStatement", + "src": "12748:29:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 902, + "name": "Literal", + "src": "12795:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 885, + "type": "uint256", + "value": "a" + }, + "id": 903, + "name": "Identifier", + "src": "12801:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 904, + "name": "Identifier", + "src": "12805:1:1" + } + ], + "id": 905, + "name": "BinaryOperation", + "src": "12801:5:1" + } + ], + "id": 906, + "name": "TupleExpression", + "src": "12794:13:1" + } + ], + "id": 907, + "name": "Return", + "src": "12787:20:1" + } + ], + "id": 908, + "name": "Block", + "src": "12738:76:1" + } + ], + "id": 909, + "name": "FunctionDefinition", + "src": "12662:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 910, + "name": "StructuredDocumentation", + "src": "12820:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 911, + "name": "ElementaryTypeName", + "src": "12989:7:1" + } + ], + "id": 912, + "name": "VariableDeclaration", + "src": "12989:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 913, + "name": "ElementaryTypeName", + "src": "13000:7:1" + } + ], + "id": 914, + "name": "VariableDeclaration", + "src": "13000:9:1" + } + ], + "id": 915, + "name": "ParameterList", + "src": "12988:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 916, + "name": "ElementaryTypeName", + "src": "13034:4:1" + } + ], + "id": 917, + "name": "VariableDeclaration", + "src": "13034:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 918, + "name": "ElementaryTypeName", + "src": "13040:7:1" + } + ], + "id": 919, + "name": "VariableDeclaration", + "src": "13040:7:1" + } + ], + "id": 920, + "name": "ParameterList", + "src": "13033:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 921, + "name": "Identifier", + "src": "13063:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 922, + "name": "Literal", + "src": "13068:1:1" + } + ], + "id": 923, + "name": "BinaryOperation", + "src": "13063:6:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 924, + "name": "Literal", + "src": "13079:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 925, + "name": "Literal", + "src": "13086:1:1" + } + ], + "id": 926, + "name": "TupleExpression", + "src": "13078:10:1" + } + ], + "id": 927, + "name": "Return", + "src": "13071:17:1" + } + ], + "id": 928, + "name": "IfStatement", + "src": "13059:29:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 929, + "name": "Literal", + "src": "13106:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 912, + "type": "uint256", + "value": "a" + }, + "id": 930, + "name": "Identifier", + "src": "13112:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 931, + "name": "Identifier", + "src": "13116:1:1" + } + ], + "id": 932, + "name": "BinaryOperation", + "src": "13112:5:1" + } + ], + "id": 933, + "name": "TupleExpression", + "src": "13105:13:1" + } + ], + "id": 934, + "name": "Return", + "src": "13098:20:1" + } + ], + "id": 935, + "name": "Block", + "src": "13049:76:1" + } + ], + "id": 936, + "name": "FunctionDefinition", + "src": "12973:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 937, + "name": "StructuredDocumentation", + "src": "13131:224:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 938, + "name": "ElementaryTypeName", + "src": "13373:7:1" + } + ], + "id": 939, + "name": "VariableDeclaration", + "src": "13373:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 940, + "name": "ElementaryTypeName", + "src": "13384:7:1" + } + ], + "id": 941, + "name": "VariableDeclaration", + "src": "13384:9:1" + } + ], + "id": 942, + "name": "ParameterList", + "src": "13372:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 943, + "name": "ElementaryTypeName", + "src": "13418:7:1" + } + ], + "id": 944, + "name": "VariableDeclaration", + "src": "13418:7:1" + } + ], + "id": 945, + "name": "ParameterList", + "src": "13417:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 947 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 961, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 946, + "name": "ElementaryTypeName", + "src": "13437:7:1" + } + ], + "id": 947, + "name": "VariableDeclaration", + "src": "13437:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 948, + "name": "Identifier", + "src": "13449:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 941, + "type": "uint256", + "value": "b" + }, + "id": 949, + "name": "Identifier", + "src": "13453:1:1" + } + ], + "id": 950, + "name": "BinaryOperation", + "src": "13449:5:1" + } + ], + "id": 951, + "name": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 952, + "name": "Identifier", + "src": "13464:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 953, + "name": "Identifier", + "src": "13472:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 954, + "name": "Identifier", + "src": "13477:1:1" + } + ], + "id": 955, + "name": "BinaryOperation", + "src": "13472:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: addition overflow\"", + "value": "SafeMath: addition overflow" + }, + "id": 956, + "name": "Literal", + "src": "13480:29:1" + } + ], + "id": 957, + "name": "FunctionCall", + "src": "13464:46:1" + } + ], + "id": 958, + "name": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "attributes": { + "functionReturnParameters": 945 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 959, + "name": "Identifier", + "src": "13527:1:1" + } + ], + "id": 960, + "name": "Return", + "src": "13520:8:1" + } + ], + "id": 961, + "name": "Block", + "src": "13427:108:1" + } + ], + "id": 962, + "name": "FunctionDefinition", + "src": "13360:175:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 963, + "name": "StructuredDocumentation", + "src": "13541:260:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 964, + "name": "ElementaryTypeName", + "src": "13819:7:1" + } + ], + "id": 965, + "name": "VariableDeclaration", + "src": "13819:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 966, + "name": "ElementaryTypeName", + "src": "13830:7:1" + } + ], + "id": 967, + "name": "VariableDeclaration", + "src": "13830:9:1" + } + ], + "id": 968, + "name": "ParameterList", + "src": "13818:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 969, + "name": "ElementaryTypeName", + "src": "13864:7:1" + } + ], + "id": 970, + "name": "VariableDeclaration", + "src": "13864:7:1" + } + ], + "id": 971, + "name": "ParameterList", + "src": "13863:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 972, + "name": "Identifier", + "src": "13883:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 973, + "name": "Identifier", + "src": "13891:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 974, + "name": "Identifier", + "src": "13896:1:1" + } + ], + "id": 975, + "name": "BinaryOperation", + "src": "13891:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: subtraction overflow\"", + "value": "SafeMath: subtraction overflow" + }, + "id": 976, + "name": "Literal", + "src": "13899:32:1" + } + ], + "id": 977, + "name": "FunctionCall", + "src": "13883:49:1" + } + ], + "id": 978, + "name": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "attributes": { + "functionReturnParameters": 971 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 979, + "name": "Identifier", + "src": "13949:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 980, + "name": "Identifier", + "src": "13953:1:1" + } + ], + "id": 981, + "name": "BinaryOperation", + "src": "13949:5:1" + } + ], + "id": 982, + "name": "Return", + "src": "13942:12:1" + } + ], + "id": 983, + "name": "Block", + "src": "13873:88:1" + } + ], + "id": 984, + "name": "FunctionDefinition", + "src": "13806:155:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 985, + "name": "StructuredDocumentation", + "src": "13967:236:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 986, + "name": "ElementaryTypeName", + "src": "14221:7:1" + } + ], + "id": 987, + "name": "VariableDeclaration", + "src": "14221:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 988, + "name": "ElementaryTypeName", + "src": "14232:7:1" + } + ], + "id": 989, + "name": "VariableDeclaration", + "src": "14232:9:1" + } + ], + "id": 990, + "name": "ParameterList", + "src": "14220:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 991, + "name": "ElementaryTypeName", + "src": "14266:7:1" + } + ], + "id": 992, + "name": "VariableDeclaration", + "src": "14266:7:1" + } + ], + "id": 993, + "name": "ParameterList", + "src": "14265:9:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 994, + "name": "Identifier", + "src": "14289:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 995, + "name": "Literal", + "src": "14294:1:1" + } + ], + "id": 996, + "name": "BinaryOperation", + "src": "14289:6:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 997, + "name": "Literal", + "src": "14304:1:1" + } + ], + "id": 998, + "name": "Return", + "src": "14297:8:1" + } + ], + "id": 999, + "name": "IfStatement", + "src": "14285:20:1" + }, + { + "attributes": { + "assignments": [ + 1001 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 1017, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1000, + "name": "ElementaryTypeName", + "src": "14315:7:1" + } + ], + "id": 1001, + "name": "VariableDeclaration", + "src": "14315:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1002, + "name": "Identifier", + "src": "14327:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1003, + "name": "Identifier", + "src": "14331:1:1" + } + ], + "id": 1004, + "name": "BinaryOperation", + "src": "14327:5:1" + } + ], + "id": 1005, + "name": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1006, + "name": "Identifier", + "src": "14342:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1007, + "name": "Identifier", + "src": "14350:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1008, + "name": "Identifier", + "src": "14354:1:1" + } + ], + "id": 1009, + "name": "BinaryOperation", + "src": "14350:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1010, + "name": "Identifier", + "src": "14359:1:1" + } + ], + "id": 1011, + "name": "BinaryOperation", + "src": "14350:10:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: multiplication overflow\"", + "value": "SafeMath: multiplication overflow" + }, + "id": 1012, + "name": "Literal", + "src": "14362:35:1" + } + ], + "id": 1013, + "name": "FunctionCall", + "src": "14342:56:1" + } + ], + "id": 1014, + "name": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1015, + "name": "Identifier", + "src": "14415:1:1" + } + ], + "id": 1016, + "name": "Return", + "src": "14408:8:1" + } + ], + "id": 1017, + "name": "Block", + "src": "14275:148:1" + } + ], + "id": 1018, + "name": "FunctionDefinition", + "src": "14208:215:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1019, + "name": "StructuredDocumentation", + "src": "14429:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1020, + "name": "ElementaryTypeName", + "src": "14900:7:1" + } + ], + "id": 1021, + "name": "VariableDeclaration", + "src": "14900:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1022, + "name": "ElementaryTypeName", + "src": "14911:7:1" + } + ], + "id": 1023, + "name": "VariableDeclaration", + "src": "14911:9:1" + } + ], + "id": 1024, + "name": "ParameterList", + "src": "14899:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1025, + "name": "ElementaryTypeName", + "src": "14945:7:1" + } + ], + "id": 1026, + "name": "VariableDeclaration", + "src": "14945:7:1" + } + ], + "id": 1027, + "name": "ParameterList", + "src": "14944:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1028, + "name": "Identifier", + "src": "14964:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1029, + "name": "Identifier", + "src": "14972:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1030, + "name": "Literal", + "src": "14976:1:1" + } + ], + "id": 1031, + "name": "BinaryOperation", + "src": "14972:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206469766973696f6e206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: division by zero\"", + "value": "SafeMath: division by zero" + }, + "id": 1032, + "name": "Literal", + "src": "14979:28:1" + } + ], + "id": 1033, + "name": "FunctionCall", + "src": "14964:44:1" + } + ], + "id": 1034, + "name": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "attributes": { + "functionReturnParameters": 1027 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1021, + "type": "uint256", + "value": "a" + }, + "id": 1035, + "name": "Identifier", + "src": "15025:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1036, + "name": "Identifier", + "src": "15029:1:1" + } + ], + "id": 1037, + "name": "BinaryOperation", + "src": "15025:5:1" + } + ], + "id": 1038, + "name": "Return", + "src": "15018:12:1" + } + ], + "id": 1039, + "name": "Block", + "src": "14954:83:1" + } + ], + "id": 1040, + "name": "FunctionDefinition", + "src": "14887:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1041, + "name": "StructuredDocumentation", + "src": "15043:442:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1042, + "name": "ElementaryTypeName", + "src": "15503:7:1" + } + ], + "id": 1043, + "name": "VariableDeclaration", + "src": "15503:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1044, + "name": "ElementaryTypeName", + "src": "15514:7:1" + } + ], + "id": 1045, + "name": "VariableDeclaration", + "src": "15514:9:1" + } + ], + "id": 1046, + "name": "ParameterList", + "src": "15502:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1047, + "name": "ElementaryTypeName", + "src": "15548:7:1" + } + ], + "id": 1048, + "name": "VariableDeclaration", + "src": "15548:7:1" + } + ], + "id": 1049, + "name": "ParameterList", + "src": "15547:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1050, + "name": "Identifier", + "src": "15567:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1051, + "name": "Identifier", + "src": "15575:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1052, + "name": "Literal", + "src": "15579:1:1" + } + ], + "id": 1053, + "name": "BinaryOperation", + "src": "15575:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: modulo by zero\"", + "value": "SafeMath: modulo by zero" + }, + "id": 1054, + "name": "Literal", + "src": "15582:26:1" + } + ], + "id": 1055, + "name": "FunctionCall", + "src": "15567:42:1" + } + ], + "id": 1056, + "name": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "attributes": { + "functionReturnParameters": 1049 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1043, + "type": "uint256", + "value": "a" + }, + "id": 1057, + "name": "Identifier", + "src": "15626:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1058, + "name": "Identifier", + "src": "15630:1:1" + } + ], + "id": 1059, + "name": "BinaryOperation", + "src": "15626:5:1" + } + ], + "id": 1060, + "name": "Return", + "src": "15619:12:1" + } + ], + "id": 1061, + "name": "Block", + "src": "15557:81:1" + } + ], + "id": 1062, + "name": "FunctionDefinition", + "src": "15490:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1063, + "name": "StructuredDocumentation", + "src": "15644:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1064, + "name": "ElementaryTypeName", + "src": "16115:7:1" + } + ], + "id": 1065, + "name": "VariableDeclaration", + "src": "16115:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1066, + "name": "ElementaryTypeName", + "src": "16126:7:1" + } + ], + "id": 1067, + "name": "VariableDeclaration", + "src": "16126:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1086, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1068, + "name": "ElementaryTypeName", + "src": "16137:6:1" + } + ], + "id": 1069, + "name": "VariableDeclaration", + "src": "16137:26:1" + } + ], + "id": 1070, + "name": "ParameterList", + "src": "16114:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1071, + "name": "ElementaryTypeName", + "src": "16188:7:1" + } + ], + "id": 1072, + "name": "VariableDeclaration", + "src": "16188:7:1" + } + ], + "id": 1073, + "name": "ParameterList", + "src": "16187:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1074, + "name": "Identifier", + "src": "16207:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1075, + "name": "Identifier", + "src": "16215:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1076, + "name": "Identifier", + "src": "16220:1:1" + } + ], + "id": 1077, + "name": "BinaryOperation", + "src": "16215:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1069, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1078, + "name": "Identifier", + "src": "16223:12:1" + } + ], + "id": 1079, + "name": "FunctionCall", + "src": "16207:29:1" + } + ], + "id": 1080, + "name": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "attributes": { + "functionReturnParameters": 1073 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1081, + "name": "Identifier", + "src": "16253:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1082, + "name": "Identifier", + "src": "16257:1:1" + } + ], + "id": 1083, + "name": "BinaryOperation", + "src": "16253:5:1" + } + ], + "id": 1084, + "name": "Return", + "src": "16246:12:1" + } + ], + "id": 1085, + "name": "Block", + "src": "16197:68:1" + } + ], + "id": 1086, + "name": "FunctionDefinition", + "src": "16102:163:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1087, + "name": "StructuredDocumentation", + "src": "16271:646:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1088, + "name": "ElementaryTypeName", + "src": "16935:7:1" + } + ], + "id": 1089, + "name": "VariableDeclaration", + "src": "16935:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1090, + "name": "ElementaryTypeName", + "src": "16946:7:1" + } + ], + "id": 1091, + "name": "VariableDeclaration", + "src": "16946:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1110, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1092, + "name": "ElementaryTypeName", + "src": "16957:6:1" + } + ], + "id": 1093, + "name": "VariableDeclaration", + "src": "16957:26:1" + } + ], + "id": 1094, + "name": "ParameterList", + "src": "16934:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1095, + "name": "ElementaryTypeName", + "src": "17008:7:1" + } + ], + "id": 1096, + "name": "VariableDeclaration", + "src": "17008:7:1" + } + ], + "id": 1097, + "name": "ParameterList", + "src": "17007:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1098, + "name": "Identifier", + "src": "17027:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1099, + "name": "Identifier", + "src": "17035:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1100, + "name": "Literal", + "src": "17039:1:1" + } + ], + "id": 1101, + "name": "BinaryOperation", + "src": "17035:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1093, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1102, + "name": "Identifier", + "src": "17042:12:1" + } + ], + "id": 1103, + "name": "FunctionCall", + "src": "17027:28:1" + } + ], + "id": 1104, + "name": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1097 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1089, + "type": "uint256", + "value": "a" + }, + "id": 1105, + "name": "Identifier", + "src": "17072:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1106, + "name": "Identifier", + "src": "17076:1:1" + } + ], + "id": 1107, + "name": "BinaryOperation", + "src": "17072:5:1" + } + ], + "id": 1108, + "name": "Return", + "src": "17065:12:1" + } + ], + "id": 1109, + "name": "Block", + "src": "17017:67:1" + } + ], + "id": 1110, + "name": "FunctionDefinition", + "src": "16922:162:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1111, + "name": "StructuredDocumentation", + "src": "17090:635:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1112, + "name": "ElementaryTypeName", + "src": "17743:7:1" + } + ], + "id": 1113, + "name": "VariableDeclaration", + "src": "17743:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1114, + "name": "ElementaryTypeName", + "src": "17754:7:1" + } + ], + "id": 1115, + "name": "VariableDeclaration", + "src": "17754:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1134, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1116, + "name": "ElementaryTypeName", + "src": "17765:6:1" + } + ], + "id": 1117, + "name": "VariableDeclaration", + "src": "17765:26:1" + } + ], + "id": 1118, + "name": "ParameterList", + "src": "17742:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1119, + "name": "ElementaryTypeName", + "src": "17816:7:1" + } + ], + "id": 1120, + "name": "VariableDeclaration", + "src": "17816:7:1" + } + ], + "id": 1121, + "name": "ParameterList", + "src": "17815:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1122, + "name": "Identifier", + "src": "17835:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1123, + "name": "Identifier", + "src": "17843:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1124, + "name": "Literal", + "src": "17847:1:1" + } + ], + "id": 1125, + "name": "BinaryOperation", + "src": "17843:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1117, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1126, + "name": "Identifier", + "src": "17850:12:1" + } + ], + "id": 1127, + "name": "FunctionCall", + "src": "17835:28:1" + } + ], + "id": 1128, + "name": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1121 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "uint256", + "value": "a" + }, + "id": 1129, + "name": "Identifier", + "src": "17880:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1130, + "name": "Identifier", + "src": "17884:1:1" + } + ], + "id": 1131, + "name": "BinaryOperation", + "src": "17880:5:1" + } + ], + "id": 1132, + "name": "Return", + "src": "17873:12:1" + } + ], + "id": 1133, + "name": "Block", + "src": "17825:67:1" + } + ], + "id": 1134, + "name": "FunctionDefinition", + "src": "17730:162:1" + } + ], + "id": 1135, + "name": "ContractDefinition", + "src": "11300:6594:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 1136, + "name": "PragmaDirective", + "src": "17947:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Collection of functions related to the address type" + }, + "id": 1137, + "name": "StructuredDocumentation", + "src": "17980:67:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isContract", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1138, + "name": "StructuredDocumentation", + "src": "18070:565:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "account", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1139, + "name": "ElementaryTypeName", + "src": "18660:7:1" + } + ], + "id": 1140, + "name": "VariableDeclaration", + "src": "18660:15:1" + } + ], + "id": 1141, + "name": "ParameterList", + "src": "18659:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1142, + "name": "ElementaryTypeName", + "src": "18700:4:1" + } + ], + "id": 1143, + "name": "VariableDeclaration", + "src": "18700:4:1" + } + ], + "id": 1144, + "name": "ParameterList", + "src": "18699:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1146 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "size", + "scope": 1153, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1145, + "name": "ElementaryTypeName", + "src": "18903:7:1" + } + ], + "id": 1146, + "name": "VariableDeclaration", + "src": "18903:12:1" + } + ], + "id": 1147, + "name": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "operations": "{ size := extcodesize(account) }" + }, + "children": [], + "id": 1148, + "name": "InlineAssembly", + "src": "18981:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1144 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1146, + "type": "uint256", + "value": "size" + }, + "id": 1149, + "name": "Identifier", + "src": "19038:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1150, + "name": "Literal", + "src": "19045:1:1" + } + ], + "id": 1151, + "name": "BinaryOperation", + "src": "19038:8:1" + } + ], + "id": 1152, + "name": "Return", + "src": "19031:15:1" + } + ], + "id": 1153, + "name": "Block", + "src": "18706:347:1" + } + ], + "id": 1154, + "name": "FunctionDefinition", + "src": "18640:413:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sendValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1155, + "name": "StructuredDocumentation", + "src": "19059:906:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "recipient", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 1156, + "name": "ElementaryTypeName", + "src": "19989:15:1" + } + ], + "id": 1157, + "name": "VariableDeclaration", + "src": "19989:25:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "amount", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1158, + "name": "ElementaryTypeName", + "src": "20016:7:1" + } + ], + "id": 1159, + "name": "VariableDeclaration", + "src": "20016:14:1" + } + ], + "id": 1160, + "name": "ParameterList", + "src": "19988:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1161, + "name": "ParameterList", + "src": "20041:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1162, + "name": "Identifier", + "src": "20051:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1163, + "name": "ElementaryTypeName", + "src": "20059:7:1" + } + ], + "id": 1164, + "name": "ElementaryTypeNameExpression", + "src": "20059:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1165, + "name": "Identifier", + "src": "20067:4:1" + } + ], + "id": 1166, + "name": "FunctionCall", + "src": "20059:13:1" + } + ], + "id": 1167, + "name": "MemberAccess", + "src": "20059:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1168, + "name": "Identifier", + "src": "20084:6:1" + } + ], + "id": 1169, + "name": "BinaryOperation", + "src": "20059:31:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance\"", + "value": "Address: insufficient balance" + }, + "id": 1170, + "name": "Literal", + "src": "20092:31:1" + } + ], + "id": 1171, + "name": "FunctionCall", + "src": "20051:73:1" + } + ], + "id": 1172, + "name": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "attributes": { + "assignments": [ + 1174, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1187, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1173, + "name": "ElementaryTypeName", + "src": "20213:4:1" + } + ], + "id": 1174, + "name": "VariableDeclaration", + "src": "20213:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1157, + "type": "address payable", + "value": "recipient" + }, + "id": 1175, + "name": "Identifier", + "src": "20231:9:1" + } + ], + "id": 1176, + "name": "MemberAccess", + "src": "20231:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1177, + "name": "Identifier", + "src": "20254:6:1" + } + ], + "id": 1178, + "name": "FunctionCallOptions", + "src": "20231:31:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 1179, + "name": "Literal", + "src": "20263:2:1" + } + ], + "id": 1180, + "name": "FunctionCall", + "src": "20231:35:1" + } + ], + "id": 1181, + "name": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1182, + "name": "Identifier", + "src": "20276:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1174, + "type": "bool", + "value": "success" + }, + "id": 1183, + "name": "Identifier", + "src": "20284:7:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: unable to send value, recipient may have reverted\"", + "value": "Address: unable to send value, recipient may have reverted" + }, + "id": 1184, + "name": "Literal", + "src": "20293:60:1" + } + ], + "id": 1185, + "name": "FunctionCall", + "src": "20276:78:1" + } + ], + "id": 1186, + "name": "ExpressionStatement", + "src": "20276:78:1" + } + ], + "id": 1187, + "name": "Block", + "src": "20041:320:1" + } + ], + "id": 1188, + "name": "FunctionDefinition", + "src": "19970:391:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1189, + "name": "StructuredDocumentation", + "src": "20367:730:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1205, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1190, + "name": "ElementaryTypeName", + "src": "21124:7:1" + } + ], + "id": 1191, + "name": "VariableDeclaration", + "src": "21124:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1192, + "name": "ElementaryTypeName", + "src": "21140:5:1" + } + ], + "id": 1193, + "name": "VariableDeclaration", + "src": "21140:17:1" + } + ], + "id": 1194, + "name": "ParameterList", + "src": "21123:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1195, + "name": "ElementaryTypeName", + "src": "21177:5:1" + } + ], + "id": 1196, + "name": "VariableDeclaration", + "src": "21177:12:1" + } + ], + "id": 1197, + "name": "ParameterList", + "src": "21176:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1197 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionCall" + }, + "id": 1198, + "name": "Identifier", + "src": "21206:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1191, + "type": "address", + "value": "target" + }, + "id": 1199, + "name": "Identifier", + "src": "21219:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1193, + "type": "bytes memory", + "value": "data" + }, + "id": 1200, + "name": "Identifier", + "src": "21227:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call failed\"", + "value": "Address: low-level call failed" + }, + "id": 1201, + "name": "Literal", + "src": "21233:32:1" + } + ], + "id": 1202, + "name": "FunctionCall", + "src": "21206:60:1" + } + ], + "id": 1203, + "name": "Return", + "src": "21199:67:1" + } + ], + "id": 1204, + "name": "Block", + "src": "21191:82:1" + } + ], + "id": 1205, + "name": "FunctionDefinition", + "src": "21102:171:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1206, + "name": "StructuredDocumentation", + "src": "21279:211:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1225, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1207, + "name": "ElementaryTypeName", + "src": "21517:7:1" + } + ], + "id": 1208, + "name": "VariableDeclaration", + "src": "21517:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1209, + "name": "ElementaryTypeName", + "src": "21533:5:1" + } + ], + "id": 1210, + "name": "VariableDeclaration", + "src": "21533:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1211, + "name": "ElementaryTypeName", + "src": "21552:6:1" + } + ], + "id": 1212, + "name": "VariableDeclaration", + "src": "21552:26:1" + } + ], + "id": 1213, + "name": "ParameterList", + "src": "21516:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1214, + "name": "ElementaryTypeName", + "src": "21598:5:1" + } + ], + "id": 1215, + "name": "VariableDeclaration", + "src": "21598:12:1" + } + ], + "id": 1216, + "name": "ParameterList", + "src": "21597:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1216 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1217, + "name": "Identifier", + "src": "21629:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1208, + "type": "address", + "value": "target" + }, + "id": 1218, + "name": "Identifier", + "src": "21651:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1210, + "type": "bytes memory", + "value": "data" + }, + "id": 1219, + "name": "Identifier", + "src": "21659:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1220, + "name": "Literal", + "src": "21665:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1212, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1221, + "name": "Identifier", + "src": "21668:12:1" + } + ], + "id": 1222, + "name": "FunctionCall", + "src": "21629:52:1" + } + ], + "id": 1223, + "name": "Return", + "src": "21622:59:1" + } + ], + "id": 1224, + "name": "Block", + "src": "21612:76:1" + } + ], + "id": 1225, + "name": "FunctionDefinition", + "src": "21495:193:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1226, + "name": "StructuredDocumentation", + "src": "21694:351:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1227, + "name": "ElementaryTypeName", + "src": "22081:7:1" + } + ], + "id": 1228, + "name": "VariableDeclaration", + "src": "22081:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1229, + "name": "ElementaryTypeName", + "src": "22097:5:1" + } + ], + "id": 1230, + "name": "VariableDeclaration", + "src": "22097:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1231, + "name": "ElementaryTypeName", + "src": "22116:7:1" + } + ], + "id": 1232, + "name": "VariableDeclaration", + "src": "22116:13:1" + } + ], + "id": 1233, + "name": "ParameterList", + "src": "22080:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1234, + "name": "ElementaryTypeName", + "src": "22149:5:1" + } + ], + "id": 1235, + "name": "VariableDeclaration", + "src": "22149:12:1" + } + ], + "id": 1236, + "name": "ParameterList", + "src": "22148:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1236 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1237, + "name": "Identifier", + "src": "22180:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1228, + "type": "address", + "value": "target" + }, + "id": 1238, + "name": "Identifier", + "src": "22202:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1230, + "type": "bytes memory", + "value": "data" + }, + "id": 1239, + "name": "Identifier", + "src": "22210:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1232, + "type": "uint256", + "value": "value" + }, + "id": 1240, + "name": "Identifier", + "src": "22216:5:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call with value failed\"", + "value": "Address: low-level call with value failed" + }, + "id": 1241, + "name": "Literal", + "src": "22223:43:1" + } + ], + "id": 1242, + "name": "FunctionCall", + "src": "22180:87:1" + } + ], + "id": 1243, + "name": "Return", + "src": "22173:94:1" + } + ], + "id": 1244, + "name": "Block", + "src": "22163:111:1" + } + ], + "id": 1245, + "name": "FunctionDefinition", + "src": "22050:224:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1246, + "name": "StructuredDocumentation", + "src": "22280:237:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1247, + "name": "ElementaryTypeName", + "src": "22553:7:1" + } + ], + "id": 1248, + "name": "VariableDeclaration", + "src": "22553:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1249, + "name": "ElementaryTypeName", + "src": "22569:5:1" + } + ], + "id": 1250, + "name": "VariableDeclaration", + "src": "22569:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1251, + "name": "ElementaryTypeName", + "src": "22588:7:1" + } + ], + "id": 1252, + "name": "VariableDeclaration", + "src": "22588:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1253, + "name": "ElementaryTypeName", + "src": "22603:6:1" + } + ], + "id": 1254, + "name": "VariableDeclaration", + "src": "22603:26:1" + } + ], + "id": 1255, + "name": "ParameterList", + "src": "22552:78:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1256, + "name": "ElementaryTypeName", + "src": "22649:5:1" + } + ], + "id": 1257, + "name": "VariableDeclaration", + "src": "22649:12:1" + } + ], + "id": 1258, + "name": "ParameterList", + "src": "22648:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1259, + "name": "Identifier", + "src": "22673:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1260, + "name": "ElementaryTypeName", + "src": "22681:7:1" + } + ], + "id": 1261, + "name": "ElementaryTypeNameExpression", + "src": "22681:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1262, + "name": "Identifier", + "src": "22689:4:1" + } + ], + "id": 1263, + "name": "FunctionCall", + "src": "22681:13:1" + } + ], + "id": 1264, + "name": "MemberAccess", + "src": "22681:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1265, + "name": "Identifier", + "src": "22706:5:1" + } + ], + "id": 1266, + "name": "BinaryOperation", + "src": "22681:30:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance for call\"", + "value": "Address: insufficient balance for call" + }, + "id": 1267, + "name": "Literal", + "src": "22713:40:1" + } + ], + "id": 1268, + "name": "FunctionCall", + "src": "22673:81:1" + } + ], + "id": 1269, + "name": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1270, + "name": "Identifier", + "src": "22764:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1271, + "name": "Identifier", + "src": "22772:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1272, + "name": "Identifier", + "src": "22783:6:1" + } + ], + "id": 1273, + "name": "FunctionCall", + "src": "22772:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: call to non-contract\"", + "value": "Address: call to non-contract" + }, + "id": 1274, + "name": "Literal", + "src": "22792:31:1" + } + ], + "id": 1275, + "name": "FunctionCall", + "src": "22764:60:1" + } + ], + "id": 1276, + "name": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "attributes": { + "assignments": [ + 1278, + 1280 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1294, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1277, + "name": "ElementaryTypeName", + "src": "22895:4:1" + } + ], + "id": 1278, + "name": "VariableDeclaration", + "src": "22895:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1279, + "name": "ElementaryTypeName", + "src": "22909:5:1" + } + ], + "id": 1280, + "name": "VariableDeclaration", + "src": "22909:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1281, + "name": "Identifier", + "src": "22936:6:1" + } + ], + "id": 1282, + "name": "MemberAccess", + "src": "22936:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1283, + "name": "Identifier", + "src": "22956:5:1" + } + ], + "id": 1284, + "name": "FunctionCallOptions", + "src": "22936:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1250, + "type": "bytes memory", + "value": "data" + }, + "id": 1285, + "name": "Identifier", + "src": "22964:4:1" + } + ], + "id": 1286, + "name": "FunctionCall", + "src": "22936:33:1" + } + ], + "id": 1287, + "name": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "attributes": { + "functionReturnParameters": 1258 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1288, + "name": "Identifier", + "src": "22986:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1278, + "type": "bool", + "value": "success" + }, + "id": 1289, + "name": "Identifier", + "src": "23004:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1280, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1290, + "name": "Identifier", + "src": "23013:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1254, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1291, + "name": "Identifier", + "src": "23025:12:1" + } + ], + "id": 1292, + "name": "FunctionCall", + "src": "22986:52:1" + } + ], + "id": 1293, + "name": "Return", + "src": "22979:59:1" + } + ], + "id": 1294, + "name": "Block", + "src": "22663:382:1" + } + ], + "id": 1295, + "name": "FunctionDefinition", + "src": "22522:523:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1296, + "name": "StructuredDocumentation", + "src": "23051:166:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1312, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1297, + "name": "ElementaryTypeName", + "src": "23250:7:1" + } + ], + "id": 1298, + "name": "VariableDeclaration", + "src": "23250:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1299, + "name": "ElementaryTypeName", + "src": "23266:5:1" + } + ], + "id": 1300, + "name": "VariableDeclaration", + "src": "23266:17:1" + } + ], + "id": 1301, + "name": "ParameterList", + "src": "23249:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1302, + "name": "ElementaryTypeName", + "src": "23308:5:1" + } + ], + "id": 1303, + "name": "VariableDeclaration", + "src": "23308:12:1" + } + ], + "id": 1304, + "name": "ParameterList", + "src": "23307:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1304 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "type": "function (address,bytes memory,string memory) view returns (bytes memory)", + "value": "functionStaticCall" + }, + "id": 1305, + "name": "Identifier", + "src": "23339:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1298, + "type": "address", + "value": "target" + }, + "id": 1306, + "name": "Identifier", + "src": "23358:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1300, + "type": "bytes memory", + "value": "data" + }, + "id": 1307, + "name": "Identifier", + "src": "23366:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level static call failed\"", + "value": "Address: low-level static call failed" + }, + "id": 1308, + "name": "Literal", + "src": "23372:39:1" + } + ], + "id": 1309, + "name": "FunctionCall", + "src": "23339:73:1" + } + ], + "id": 1310, + "name": "Return", + "src": "23332:80:1" + } + ], + "id": 1311, + "name": "Block", + "src": "23322:97:1" + } + ], + "id": 1312, + "name": "FunctionDefinition", + "src": "23222:197:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1313, + "name": "StructuredDocumentation", + "src": "23425:173:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1347, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1314, + "name": "ElementaryTypeName", + "src": "23631:7:1" + } + ], + "id": 1315, + "name": "VariableDeclaration", + "src": "23631:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1316, + "name": "ElementaryTypeName", + "src": "23647:5:1" + } + ], + "id": 1317, + "name": "VariableDeclaration", + "src": "23647:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1318, + "name": "ElementaryTypeName", + "src": "23666:6:1" + } + ], + "id": 1319, + "name": "VariableDeclaration", + "src": "23666:26:1" + } + ], + "id": 1320, + "name": "ParameterList", + "src": "23630:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1321, + "name": "ElementaryTypeName", + "src": "23717:5:1" + } + ], + "id": 1322, + "name": "VariableDeclaration", + "src": "23717:12:1" + } + ], + "id": 1323, + "name": "ParameterList", + "src": "23716:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1324, + "name": "Identifier", + "src": "23741:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1325, + "name": "Identifier", + "src": "23749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1326, + "name": "Identifier", + "src": "23760:6:1" + } + ], + "id": 1327, + "name": "FunctionCall", + "src": "23749:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: static call to non-contract\"", + "value": "Address: static call to non-contract" + }, + "id": 1328, + "name": "Literal", + "src": "23769:38:1" + } + ], + "id": 1329, + "name": "FunctionCall", + "src": "23741:67:1" + } + ], + "id": 1330, + "name": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "attributes": { + "assignments": [ + 1332, + 1334 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1346, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1331, + "name": "ElementaryTypeName", + "src": "23879:4:1" + } + ], + "id": 1332, + "name": "VariableDeclaration", + "src": "23879:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1346, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1333, + "name": "ElementaryTypeName", + "src": "23893:5:1" + } + ], + "id": 1334, + "name": "VariableDeclaration", + "src": "23893:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "staticcall", + "type": "function (bytes memory) view returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1335, + "name": "Identifier", + "src": "23920:6:1" + } + ], + "id": 1336, + "name": "MemberAccess", + "src": "23920:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1317, + "type": "bytes memory", + "value": "data" + }, + "id": 1337, + "name": "Identifier", + "src": "23938:4:1" + } + ], + "id": 1338, + "name": "FunctionCall", + "src": "23920:23:1" + } + ], + "id": 1339, + "name": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "attributes": { + "functionReturnParameters": 1323 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1340, + "name": "Identifier", + "src": "23960:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1332, + "type": "bool", + "value": "success" + }, + "id": 1341, + "name": "Identifier", + "src": "23978:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1334, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1342, + "name": "Identifier", + "src": "23987:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1319, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1343, + "name": "Identifier", + "src": "23999:12:1" + } + ], + "id": 1344, + "name": "FunctionCall", + "src": "23960:52:1" + } + ], + "id": 1345, + "name": "Return", + "src": "23953:59:1" + } + ], + "id": 1346, + "name": "Block", + "src": "23731:288:1" + } + ], + "id": 1347, + "name": "FunctionDefinition", + "src": "23603:416:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1348, + "name": "StructuredDocumentation", + "src": "24025:168:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1364, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1349, + "name": "ElementaryTypeName", + "src": "24228:7:1" + } + ], + "id": 1350, + "name": "VariableDeclaration", + "src": "24228:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1351, + "name": "ElementaryTypeName", + "src": "24244:5:1" + } + ], + "id": 1352, + "name": "VariableDeclaration", + "src": "24244:17:1" + } + ], + "id": 1353, + "name": "ParameterList", + "src": "24227:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1354, + "name": "ElementaryTypeName", + "src": "24281:5:1" + } + ], + "id": 1355, + "name": "VariableDeclaration", + "src": "24281:12:1" + } + ], + "id": 1356, + "name": "ParameterList", + "src": "24280:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1356 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionDelegateCall" + }, + "id": 1357, + "name": "Identifier", + "src": "24312:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1350, + "type": "address", + "value": "target" + }, + "id": 1358, + "name": "Identifier", + "src": "24333:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1352, + "type": "bytes memory", + "value": "data" + }, + "id": 1359, + "name": "Identifier", + "src": "24341:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level delegate call failed\"", + "value": "Address: low-level delegate call failed" + }, + "id": 1360, + "name": "Literal", + "src": "24347:41:1" + } + ], + "id": 1361, + "name": "FunctionCall", + "src": "24312:77:1" + } + ], + "id": 1362, + "name": "Return", + "src": "24305:84:1" + } + ], + "id": 1363, + "name": "Block", + "src": "24295:101:1" + } + ], + "id": 1364, + "name": "FunctionDefinition", + "src": "24198:198:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1365, + "name": "StructuredDocumentation", + "src": "24402:175:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1399, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1366, + "name": "ElementaryTypeName", + "src": "24612:7:1" + } + ], + "id": 1367, + "name": "VariableDeclaration", + "src": "24612:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1368, + "name": "ElementaryTypeName", + "src": "24628:5:1" + } + ], + "id": 1369, + "name": "VariableDeclaration", + "src": "24628:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1370, + "name": "ElementaryTypeName", + "src": "24647:6:1" + } + ], + "id": 1371, + "name": "VariableDeclaration", + "src": "24647:26:1" + } + ], + "id": 1372, + "name": "ParameterList", + "src": "24611:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1373, + "name": "ElementaryTypeName", + "src": "24693:5:1" + } + ], + "id": 1374, + "name": "VariableDeclaration", + "src": "24693:12:1" + } + ], + "id": 1375, + "name": "ParameterList", + "src": "24692:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1376, + "name": "Identifier", + "src": "24717:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1377, + "name": "Identifier", + "src": "24725:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1378, + "name": "Identifier", + "src": "24736:6:1" + } + ], + "id": 1379, + "name": "FunctionCall", + "src": "24725:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: delegate call to non-contract\"", + "value": "Address: delegate call to non-contract" + }, + "id": 1380, + "name": "Literal", + "src": "24745:40:1" + } + ], + "id": 1381, + "name": "FunctionCall", + "src": "24717:69:1" + } + ], + "id": 1382, + "name": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "attributes": { + "assignments": [ + 1384, + 1386 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1398, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1383, + "name": "ElementaryTypeName", + "src": "24857:4:1" + } + ], + "id": 1384, + "name": "VariableDeclaration", + "src": "24857:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1398, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1385, + "name": "ElementaryTypeName", + "src": "24871:5:1" + } + ], + "id": 1386, + "name": "VariableDeclaration", + "src": "24871:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "delegatecall", + "type": "function (bytes memory) returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1387, + "name": "Identifier", + "src": "24898:6:1" + } + ], + "id": 1388, + "name": "MemberAccess", + "src": "24898:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1369, + "type": "bytes memory", + "value": "data" + }, + "id": 1389, + "name": "Identifier", + "src": "24918:4:1" + } + ], + "id": 1390, + "name": "FunctionCall", + "src": "24898:25:1" + } + ], + "id": 1391, + "name": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "attributes": { + "functionReturnParameters": 1375 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1392, + "name": "Identifier", + "src": "24940:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1384, + "type": "bool", + "value": "success" + }, + "id": 1393, + "name": "Identifier", + "src": "24958:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1386, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1394, + "name": "Identifier", + "src": "24967:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1371, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1395, + "name": "Identifier", + "src": "24979:12:1" + } + ], + "id": 1396, + "name": "FunctionCall", + "src": "24940:52:1" + } + ], + "id": 1397, + "name": "Return", + "src": "24933:59:1" + } + ], + "id": 1398, + "name": "Block", + "src": "24707:292:1" + } + ], + "id": 1399, + "name": "FunctionDefinition", + "src": "24582:417:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_verifyCallResult", + "scope": 1430, + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1429, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1400, + "name": "ElementaryTypeName", + "src": "25032:4:1" + } + ], + "id": 1401, + "name": "VariableDeclaration", + "src": "25032:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1402, + "name": "ElementaryTypeName", + "src": "25046:5:1" + } + ], + "id": 1403, + "name": "VariableDeclaration", + "src": "25046:23:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1404, + "name": "ElementaryTypeName", + "src": "25071:6:1" + } + ], + "id": 1405, + "name": "VariableDeclaration", + "src": "25071:26:1" + } + ], + "id": 1406, + "name": "ParameterList", + "src": "25031:67:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1407, + "name": "ElementaryTypeName", + "src": "25120:5:1" + } + ], + "id": 1408, + "name": "VariableDeclaration", + "src": "25120:12:1" + } + ], + "id": 1409, + "name": "ParameterList", + "src": "25119:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1401, + "type": "bool", + "value": "success" + }, + "id": 1410, + "name": "Identifier", + "src": "25148:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1409 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1411, + "name": "Identifier", + "src": "25178:10:1" + } + ], + "id": 1412, + "name": "Return", + "src": "25171:17:1" + } + ], + "id": 1413, + "name": "Block", + "src": "25157:42:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1414, + "name": "Identifier", + "src": "25289:10:1" + } + ], + "id": 1415, + "name": "MemberAccess", + "src": "25289:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1416, + "name": "Literal", + "src": "25309:1:1" + } + ], + "id": 1417, + "name": "BinaryOperation", + "src": "25289:21:1" + }, + { + "children": [ + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "operations": "{\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n}" + }, + "children": [], + "id": 1418, + "name": "InlineAssembly", + "src": "25487:154:1" + } + ], + "id": 1419, + "name": "Block", + "src": "25312:343:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "type": "function (string memory) pure", + "value": "revert" + }, + "id": 1420, + "name": "Identifier", + "src": "25679:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1405, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1421, + "name": "Identifier", + "src": "25686:12:1" + } + ], + "id": 1422, + "name": "FunctionCall", + "src": "25679:20:1" + } + ], + "id": 1423, + "name": "ExpressionStatement", + "src": "25679:20:1" + } + ], + "id": 1424, + "name": "Block", + "src": "25661:53:1" + } + ], + "id": 1425, + "name": "IfStatement", + "src": "25285:429:1" + } + ], + "id": 1426, + "name": "Block", + "src": "25205:519:1" + } + ], + "id": 1427, + "name": "IfStatement", + "src": "25144:580:1" + } + ], + "id": 1428, + "name": "Block", + "src": "25134:596:1" + } + ], + "id": 1429, + "name": "FunctionDefinition", + "src": "25005:725:1" + } + ], + "id": 1430, + "name": "ContractDefinition", + "src": "18048:7684:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1431, + "name": "PragmaDirective", + "src": "25791:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "id": 1432, + "name": "StructuredDocumentation", + "src": "25824:686:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Set", + "name": "Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_values", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "bytes32[]" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1433, + "name": "ElementaryTypeName", + "src": "27033:7:1" + } + ], + "id": 1434, + "name": "ArrayTypeName", + "src": "27033:9:1" + } + ], + "id": 1435, + "name": "VariableDeclaration", + "src": "27033:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1436, + "name": "ElementaryTypeName", + "src": "27193:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1437, + "name": "ElementaryTypeName", + "src": "27204:7:1" + } + ], + "id": 1438, + "name": "Mapping", + "src": "27184:28:1" + } + ], + "id": 1439, + "name": "VariableDeclaration", + "src": "27184:37:1" + } + ], + "id": 1440, + "name": "StructDefinition", + "src": "26979:249:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1441, + "name": "StructuredDocumentation", + "src": "27234:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1481, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1442, + "name": "UserDefinedTypeName", + "src": "27412:3:1" + } + ], + "id": 1443, + "name": "VariableDeclaration", + "src": "27412:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1444, + "name": "ElementaryTypeName", + "src": "27429:7:1" + } + ], + "id": 1445, + "name": "VariableDeclaration", + "src": "27429:13:1" + } + ], + "id": 1446, + "name": "ParameterList", + "src": "27411:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1447, + "name": "ElementaryTypeName", + "src": "27461:4:1" + } + ], + "id": 1448, + "name": "VariableDeclaration", + "src": "27461:4:1" + } + ], + "id": 1449, + "name": "ParameterList", + "src": "27460:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1450, + "name": "Identifier", + "src": "27482:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1451, + "name": "Identifier", + "src": "27492:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1452, + "name": "Identifier", + "src": "27497:5:1" + } + ], + "id": 1453, + "name": "FunctionCall", + "src": "27482:21:1" + } + ], + "id": 1454, + "name": "UnaryOperation", + "src": "27481:22:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1455, + "name": "Identifier", + "src": "27519:3:1" + } + ], + "id": 1458, + "name": "MemberAccess", + "src": "27519:11:1" + } + ], + "id": 1459, + "name": "MemberAccess", + "src": "27519:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1460, + "name": "Identifier", + "src": "27536:5:1" + } + ], + "id": 1461, + "name": "FunctionCall", + "src": "27519:23:1" + } + ], + "id": 1462, + "name": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1463, + "name": "Identifier", + "src": "27677:3:1" + } + ], + "id": 1466, + "name": "MemberAccess", + "src": "27677:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1465, + "name": "Identifier", + "src": "27690:5:1" + } + ], + "id": 1467, + "name": "IndexAccess", + "src": "27677:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1468, + "name": "Identifier", + "src": "27699:3:1" + } + ], + "id": 1469, + "name": "MemberAccess", + "src": "27699:11:1" + } + ], + "id": 1470, + "name": "MemberAccess", + "src": "27699:18:1" + } + ], + "id": 1471, + "name": "Assignment", + "src": "27677:40:1" + } + ], + "id": 1472, + "name": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1473, + "name": "Literal", + "src": "27738:4:1" + } + ], + "id": 1474, + "name": "Return", + "src": "27731:11:1" + } + ], + "id": 1475, + "name": "Block", + "src": "27505:248:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1476, + "name": "Literal", + "src": "27780:5:1" + } + ], + "id": 1477, + "name": "Return", + "src": "27773:12:1" + } + ], + "id": 1478, + "name": "Block", + "src": "27759:37:1" + } + ], + "id": 1479, + "name": "IfStatement", + "src": "27477:319:1" + } + ], + "id": 1480, + "name": "Block", + "src": "27467:335:1" + } + ], + "id": 1481, + "name": "FunctionDefinition", + "src": "27398:404:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1482, + "name": "StructuredDocumentation", + "src": "27808:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1561, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1483, + "name": "UserDefinedTypeName", + "src": "27987:3:1" + } + ], + "id": 1484, + "name": "VariableDeclaration", + "src": "27987:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1485, + "name": "ElementaryTypeName", + "src": "28004:7:1" + } + ], + "id": 1486, + "name": "VariableDeclaration", + "src": "28004:13:1" + } + ], + "id": 1487, + "name": "ParameterList", + "src": "27986:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1488, + "name": "ElementaryTypeName", + "src": "28036:4:1" + } + ], + "id": 1489, + "name": "VariableDeclaration", + "src": "28036:4:1" + } + ], + "id": 1490, + "name": "ParameterList", + "src": "28035:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1492 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "valueIndex", + "scope": 1560, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1491, + "name": "ElementaryTypeName", + "src": "28152:7:1" + } + ], + "id": 1492, + "name": "VariableDeclaration", + "src": "28152:18:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1493, + "name": "Identifier", + "src": "28173:3:1" + } + ], + "id": 1494, + "name": "MemberAccess", + "src": "28173:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1495, + "name": "Identifier", + "src": "28186:5:1" + } + ], + "id": 1496, + "name": "IndexAccess", + "src": "28173:19:1" + } + ], + "id": 1497, + "name": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1498, + "name": "Identifier", + "src": "28207:10:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1499, + "name": "Literal", + "src": "28221:1:1" + } + ], + "id": 1500, + "name": "BinaryOperation", + "src": "28207:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1501, + "name": "ElementaryTypeName", + "src": "28564:7:1" + } + ], + "id": 1502, + "name": "VariableDeclaration", + "src": "28564:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1503, + "name": "Identifier", + "src": "28588:10:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1504, + "name": "Literal", + "src": "28601:1:1" + } + ], + "id": 1505, + "name": "BinaryOperation", + "src": "28588:14:1" + } + ], + "id": 1506, + "name": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "attributes": { + "assignments": [ + 1508 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1507, + "name": "ElementaryTypeName", + "src": "28616:7:1" + } + ], + "id": 1508, + "name": "VariableDeclaration", + "src": "28616:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1509, + "name": "Identifier", + "src": "28636:3:1" + } + ], + "id": 1510, + "name": "MemberAccess", + "src": "28636:11:1" + } + ], + "id": 1511, + "name": "MemberAccess", + "src": "28636:18:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1512, + "name": "Literal", + "src": "28657:1:1" + } + ], + "id": 1513, + "name": "BinaryOperation", + "src": "28636:22:1" + } + ], + "id": 1514, + "name": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "attributes": { + "assignments": [ + 1516 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastvalue", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1515, + "name": "ElementaryTypeName", + "src": "28898:7:1" + } + ], + "id": 1516, + "name": "VariableDeclaration", + "src": "28898:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1517, + "name": "Identifier", + "src": "28918:3:1" + } + ], + "id": 1518, + "name": "MemberAccess", + "src": "28918:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1508, + "type": "uint256", + "value": "lastIndex" + }, + "id": 1519, + "name": "Identifier", + "src": "28930:9:1" + } + ], + "id": 1520, + "name": "IndexAccess", + "src": "28918:22:1" + } + ], + "id": 1521, + "name": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1522, + "name": "Identifier", + "src": "29032:3:1" + } + ], + "id": 1525, + "name": "MemberAccess", + "src": "29032:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1524, + "name": "Identifier", + "src": "29044:13:1" + } + ], + "id": 1526, + "name": "IndexAccess", + "src": "29032:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1527, + "name": "Identifier", + "src": "29061:9:1" + } + ], + "id": 1528, + "name": "Assignment", + "src": "29032:38:1" + } + ], + "id": 1529, + "name": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1530, + "name": "Identifier", + "src": "29136:3:1" + } + ], + "id": 1533, + "name": "MemberAccess", + "src": "29136:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1532, + "name": "Identifier", + "src": "29149:9:1" + } + ], + "id": 1534, + "name": "IndexAccess", + "src": "29136:23:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1535, + "name": "Identifier", + "src": "29162:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1536, + "name": "Literal", + "src": "29178:1:1" + } + ], + "id": 1537, + "name": "BinaryOperation", + "src": "29162:17:1" + } + ], + "id": 1538, + "name": "Assignment", + "src": "29136:43:1" + } + ], + "id": 1539, + "name": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1540, + "name": "Identifier", + "src": "29285:3:1" + } + ], + "id": 1543, + "name": "MemberAccess", + "src": "29285:11:1" + } + ], + "id": 1544, + "name": "MemberAccess", + "src": "29285:15:1" + } + ], + "id": 1545, + "name": "FunctionCall", + "src": "29285:17:1" + } + ], + "id": 1546, + "name": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1547, + "name": "Identifier", + "src": "29377:3:1" + } + ], + "id": 1548, + "name": "MemberAccess", + "src": "29377:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1549, + "name": "Identifier", + "src": "29390:5:1" + } + ], + "id": 1550, + "name": "IndexAccess", + "src": "29377:19:1" + } + ], + "id": 1551, + "name": "UnaryOperation", + "src": "29370:26:1" + } + ], + "id": 1552, + "name": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1553, + "name": "Literal", + "src": "29418:4:1" + } + ], + "id": 1554, + "name": "Return", + "src": "29411:11:1" + } + ], + "id": 1555, + "name": "Block", + "src": "28224:1209:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1556, + "name": "Literal", + "src": "29460:5:1" + } + ], + "id": 1557, + "name": "Return", + "src": "29453:12:1" + } + ], + "id": 1558, + "name": "Block", + "src": "29439:37:1" + } + ], + "id": 1559, + "name": "IfStatement", + "src": "28203:1273:1" + } + ], + "id": 1560, + "name": "Block", + "src": "28042:1440:1" + } + ], + "id": 1561, + "name": "FunctionDefinition", + "src": "27970:1512:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1562, + "name": "StructuredDocumentation", + "src": "29488:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1579, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1563, + "name": "UserDefinedTypeName", + "src": "29582:3:1" + } + ], + "id": 1564, + "name": "VariableDeclaration", + "src": "29582:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1565, + "name": "ElementaryTypeName", + "src": "29599:7:1" + } + ], + "id": 1566, + "name": "VariableDeclaration", + "src": "29599:13:1" + } + ], + "id": 1567, + "name": "ParameterList", + "src": "29581:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1568, + "name": "ElementaryTypeName", + "src": "29636:4:1" + } + ], + "id": 1569, + "name": "VariableDeclaration", + "src": "29636:4:1" + } + ], + "id": 1570, + "name": "ParameterList", + "src": "29635:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1570 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1564, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1571, + "name": "Identifier", + "src": "29659:3:1" + } + ], + "id": 1572, + "name": "MemberAccess", + "src": "29659:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1566, + "type": "bytes32", + "value": "value" + }, + "id": 1573, + "name": "Identifier", + "src": "29672:5:1" + } + ], + "id": 1574, + "name": "IndexAccess", + "src": "29659:19:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1575, + "name": "Literal", + "src": "29682:1:1" + } + ], + "id": 1576, + "name": "BinaryOperation", + "src": "29659:24:1" + } + ], + "id": 1577, + "name": "Return", + "src": "29652:31:1" + } + ], + "id": 1578, + "name": "Block", + "src": "29642:48:1" + } + ], + "id": 1579, + "name": "FunctionDefinition", + "src": "29563:127:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1580, + "name": "StructuredDocumentation", + "src": "29696:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1592, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1581, + "name": "UserDefinedTypeName", + "src": "29788:3:1" + } + ], + "id": 1582, + "name": "VariableDeclaration", + "src": "29788:15:1" + } + ], + "id": 1583, + "name": "ParameterList", + "src": "29787:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1592, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1584, + "name": "ElementaryTypeName", + "src": "29827:7:1" + } + ], + "id": 1585, + "name": "VariableDeclaration", + "src": "29827:7:1" + } + ], + "id": 1586, + "name": "ParameterList", + "src": "29826:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1586 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1582, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1587, + "name": "Identifier", + "src": "29853:3:1" + } + ], + "id": 1588, + "name": "MemberAccess", + "src": "29853:11:1" + } + ], + "id": 1589, + "name": "MemberAccess", + "src": "29853:18:1" + } + ], + "id": 1590, + "name": "Return", + "src": "29846:25:1" + } + ], + "id": 1591, + "name": "Block", + "src": "29836:42:1" + } + ], + "id": 1592, + "name": "FunctionDefinition", + "src": "29771:107:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1593, + "name": "StructuredDocumentation", + "src": "29883:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1617, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1594, + "name": "UserDefinedTypeName", + "src": "30223:3:1" + } + ], + "id": 1595, + "name": "VariableDeclaration", + "src": "30223:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1596, + "name": "ElementaryTypeName", + "src": "30240:7:1" + } + ], + "id": 1597, + "name": "VariableDeclaration", + "src": "30240:13:1" + } + ], + "id": 1598, + "name": "ParameterList", + "src": "30222:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1599, + "name": "ElementaryTypeName", + "src": "30277:7:1" + } + ], + "id": 1600, + "name": "VariableDeclaration", + "src": "30277:7:1" + } + ], + "id": 1601, + "name": "ParameterList", + "src": "30276:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1602, + "name": "Identifier", + "src": "30296:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1603, + "name": "Identifier", + "src": "30304:3:1" + } + ], + "id": 1604, + "name": "MemberAccess", + "src": "30304:11:1" + } + ], + "id": 1605, + "name": "MemberAccess", + "src": "30304:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1606, + "name": "Identifier", + "src": "30325:5:1" + } + ], + "id": 1607, + "name": "BinaryOperation", + "src": "30304:26:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableSet: index out of bounds\"", + "value": "EnumerableSet: index out of bounds" + }, + "id": 1608, + "name": "Literal", + "src": "30332:36:1" + } + ], + "id": 1609, + "name": "FunctionCall", + "src": "30296:73:1" + } + ], + "id": 1610, + "name": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "attributes": { + "functionReturnParameters": 1601 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1611, + "name": "Identifier", + "src": "30386:3:1" + } + ], + "id": 1612, + "name": "MemberAccess", + "src": "30386:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1613, + "name": "Identifier", + "src": "30398:5:1" + } + ], + "id": 1614, + "name": "IndexAccess", + "src": "30386:18:1" + } + ], + "id": 1615, + "name": "Return", + "src": "30379:25:1" + } + ], + "id": 1616, + "name": "Block", + "src": "30286:125:1" + } + ], + "id": 1617, + "name": "FunctionDefinition", + "src": "30210:201:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Bytes32Set", + "name": "Bytes32Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1620, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1618, + "name": "UserDefinedTypeName", + "src": "30464:3:1" + } + ], + "id": 1619, + "name": "VariableDeclaration", + "src": "30464:10:1" + } + ], + "id": 1620, + "name": "StructDefinition", + "src": "30436:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1621, + "name": "StructuredDocumentation", + "src": "30487:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1637, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1622, + "name": "UserDefinedTypeName", + "src": "30664:10:1" + } + ], + "id": 1623, + "name": "VariableDeclaration", + "src": "30664:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1624, + "name": "ElementaryTypeName", + "src": "30688:7:1" + } + ], + "id": 1625, + "name": "VariableDeclaration", + "src": "30688:13:1" + } + ], + "id": 1626, + "name": "ParameterList", + "src": "30663:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1627, + "name": "ElementaryTypeName", + "src": "30721:4:1" + } + ], + "id": 1628, + "name": "VariableDeclaration", + "src": "30721:4:1" + } + ], + "id": 1629, + "name": "ParameterList", + "src": "30720:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1629 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1630, + "name": "Identifier", + "src": "30744:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1623, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1631, + "name": "Identifier", + "src": "30749:3:1" + } + ], + "id": 1632, + "name": "MemberAccess", + "src": "30749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1625, + "type": "bytes32", + "value": "value" + }, + "id": 1633, + "name": "Identifier", + "src": "30761:5:1" + } + ], + "id": 1634, + "name": "FunctionCall", + "src": "30744:23:1" + } + ], + "id": 1635, + "name": "Return", + "src": "30737:30:1" + } + ], + "id": 1636, + "name": "Block", + "src": "30727:47:1" + } + ], + "id": 1637, + "name": "FunctionDefinition", + "src": "30651:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1638, + "name": "StructuredDocumentation", + "src": "30780:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1654, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1639, + "name": "UserDefinedTypeName", + "src": "30958:10:1" + } + ], + "id": 1640, + "name": "VariableDeclaration", + "src": "30958:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1641, + "name": "ElementaryTypeName", + "src": "30982:7:1" + } + ], + "id": 1642, + "name": "VariableDeclaration", + "src": "30982:13:1" + } + ], + "id": 1643, + "name": "ParameterList", + "src": "30957:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1644, + "name": "ElementaryTypeName", + "src": "31015:4:1" + } + ], + "id": 1645, + "name": "VariableDeclaration", + "src": "31015:4:1" + } + ], + "id": 1646, + "name": "ParameterList", + "src": "31014:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1646 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1647, + "name": "Identifier", + "src": "31038:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1640, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1648, + "name": "Identifier", + "src": "31046:3:1" + } + ], + "id": 1649, + "name": "MemberAccess", + "src": "31046:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1642, + "type": "bytes32", + "value": "value" + }, + "id": 1650, + "name": "Identifier", + "src": "31058:5:1" + } + ], + "id": 1651, + "name": "FunctionCall", + "src": "31038:26:1" + } + ], + "id": 1652, + "name": "Return", + "src": "31031:33:1" + } + ], + "id": 1653, + "name": "Block", + "src": "31021:50:1" + } + ], + "id": 1654, + "name": "FunctionDefinition", + "src": "30942:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1655, + "name": "StructuredDocumentation", + "src": "31077:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1671, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1656, + "name": "UserDefinedTypeName", + "src": "31170:10:1" + } + ], + "id": 1657, + "name": "VariableDeclaration", + "src": "31170:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1658, + "name": "ElementaryTypeName", + "src": "31194:7:1" + } + ], + "id": 1659, + "name": "VariableDeclaration", + "src": "31194:13:1" + } + ], + "id": 1660, + "name": "ParameterList", + "src": "31169:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1661, + "name": "ElementaryTypeName", + "src": "31232:4:1" + } + ], + "id": 1662, + "name": "VariableDeclaration", + "src": "31232:4:1" + } + ], + "id": 1663, + "name": "ParameterList", + "src": "31231:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1663 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1664, + "name": "Identifier", + "src": "31255:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1657, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1665, + "name": "Identifier", + "src": "31265:3:1" + } + ], + "id": 1666, + "name": "MemberAccess", + "src": "31265:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1659, + "type": "bytes32", + "value": "value" + }, + "id": 1667, + "name": "Identifier", + "src": "31277:5:1" + } + ], + "id": 1668, + "name": "FunctionCall", + "src": "31255:28:1" + } + ], + "id": 1669, + "name": "Return", + "src": "31248:35:1" + } + ], + "id": 1670, + "name": "Block", + "src": "31238:52:1" + } + ], + "id": 1671, + "name": "FunctionDefinition", + "src": "31152:138:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1672, + "name": "StructuredDocumentation", + "src": "31296:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1685, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1673, + "name": "UserDefinedTypeName", + "src": "31387:10:1" + } + ], + "id": 1674, + "name": "VariableDeclaration", + "src": "31387:22:1" + } + ], + "id": 1675, + "name": "ParameterList", + "src": "31386:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1685, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1676, + "name": "ElementaryTypeName", + "src": "31434:7:1" + } + ], + "id": 1677, + "name": "VariableDeclaration", + "src": "31434:7:1" + } + ], + "id": 1678, + "name": "ParameterList", + "src": "31433:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1678 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1679, + "name": "Identifier", + "src": "31460:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1674, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1680, + "name": "Identifier", + "src": "31468:3:1" + } + ], + "id": 1681, + "name": "MemberAccess", + "src": "31468:10:1" + } + ], + "id": 1682, + "name": "FunctionCall", + "src": "31460:19:1" + } + ], + "id": 1683, + "name": "Return", + "src": "31453:26:1" + } + ], + "id": 1684, + "name": "Block", + "src": "31443:43:1" + } + ], + "id": 1685, + "name": "FunctionDefinition", + "src": "31371:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1686, + "name": "StructuredDocumentation", + "src": "31491:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1702, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1687, + "name": "UserDefinedTypeName", + "src": "31830:10:1" + } + ], + "id": 1688, + "name": "VariableDeclaration", + "src": "31830:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1689, + "name": "ElementaryTypeName", + "src": "31854:7:1" + } + ], + "id": 1690, + "name": "VariableDeclaration", + "src": "31854:13:1" + } + ], + "id": 1691, + "name": "ParameterList", + "src": "31829:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1692, + "name": "ElementaryTypeName", + "src": "31892:7:1" + } + ], + "id": 1693, + "name": "VariableDeclaration", + "src": "31892:7:1" + } + ], + "id": 1694, + "name": "ParameterList", + "src": "31891:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1695, + "name": "Identifier", + "src": "31918:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1688, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1696, + "name": "Identifier", + "src": "31922:3:1" + } + ], + "id": 1697, + "name": "MemberAccess", + "src": "31922:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1690, + "type": "uint256", + "value": "index" + }, + "id": 1698, + "name": "Identifier", + "src": "31934:5:1" + } + ], + "id": 1699, + "name": "FunctionCall", + "src": "31918:22:1" + } + ], + "id": 1700, + "name": "Return", + "src": "31911:29:1" + } + ], + "id": 1701, + "name": "Block", + "src": "31901:46:1" + } + ], + "id": 1702, + "name": "FunctionDefinition", + "src": "31818:129:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.AddressSet", + "name": "AddressSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1705, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1703, + "name": "UserDefinedTypeName", + "src": "32000:3:1" + } + ], + "id": 1704, + "name": "VariableDeclaration", + "src": "32000:10:1" + } + ], + "id": 1705, + "name": "StructDefinition", + "src": "31972:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1706, + "name": "StructuredDocumentation", + "src": "32023:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1731, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1707, + "name": "UserDefinedTypeName", + "src": "32200:10:1" + } + ], + "id": 1708, + "name": "VariableDeclaration", + "src": "32200:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1709, + "name": "ElementaryTypeName", + "src": "32224:7:1" + } + ], + "id": 1710, + "name": "VariableDeclaration", + "src": "32224:13:1" + } + ], + "id": 1711, + "name": "ParameterList", + "src": "32199:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1712, + "name": "ElementaryTypeName", + "src": "32257:4:1" + } + ], + "id": 1713, + "name": "VariableDeclaration", + "src": "32257:4:1" + } + ], + "id": 1714, + "name": "ParameterList", + "src": "32256:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1714 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1715, + "name": "Identifier", + "src": "32280:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1708, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1716, + "name": "Identifier", + "src": "32285:3:1" + } + ], + "id": 1717, + "name": "MemberAccess", + "src": "32285:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1718, + "name": "ElementaryTypeName", + "src": "32297:7:1" + } + ], + "id": 1719, + "name": "ElementaryTypeNameExpression", + "src": "32297:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1720, + "name": "ElementaryTypeName", + "src": "32305:7:1" + } + ], + "id": 1721, + "name": "ElementaryTypeNameExpression", + "src": "32305:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1722, + "name": "ElementaryTypeName", + "src": "32313:7:1" + } + ], + "id": 1723, + "name": "ElementaryTypeNameExpression", + "src": "32313:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1710, + "type": "address", + "value": "value" + }, + "id": 1724, + "name": "Identifier", + "src": "32321:5:1" + } + ], + "id": 1725, + "name": "FunctionCall", + "src": "32313:14:1" + } + ], + "id": 1726, + "name": "FunctionCall", + "src": "32305:23:1" + } + ], + "id": 1727, + "name": "FunctionCall", + "src": "32297:32:1" + } + ], + "id": 1728, + "name": "FunctionCall", + "src": "32280:50:1" + } + ], + "id": 1729, + "name": "Return", + "src": "32273:57:1" + } + ], + "id": 1730, + "name": "Block", + "src": "32263:74:1" + } + ], + "id": 1731, + "name": "FunctionDefinition", + "src": "32187:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1732, + "name": "StructuredDocumentation", + "src": "32343:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1757, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1733, + "name": "UserDefinedTypeName", + "src": "32521:10:1" + } + ], + "id": 1734, + "name": "VariableDeclaration", + "src": "32521:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1735, + "name": "ElementaryTypeName", + "src": "32545:7:1" + } + ], + "id": 1736, + "name": "VariableDeclaration", + "src": "32545:13:1" + } + ], + "id": 1737, + "name": "ParameterList", + "src": "32520:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1738, + "name": "ElementaryTypeName", + "src": "32578:4:1" + } + ], + "id": 1739, + "name": "VariableDeclaration", + "src": "32578:4:1" + } + ], + "id": 1740, + "name": "ParameterList", + "src": "32577:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1740 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1741, + "name": "Identifier", + "src": "32601:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1734, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1742, + "name": "Identifier", + "src": "32609:3:1" + } + ], + "id": 1743, + "name": "MemberAccess", + "src": "32609:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1744, + "name": "ElementaryTypeName", + "src": "32621:7:1" + } + ], + "id": 1745, + "name": "ElementaryTypeNameExpression", + "src": "32621:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1746, + "name": "ElementaryTypeName", + "src": "32629:7:1" + } + ], + "id": 1747, + "name": "ElementaryTypeNameExpression", + "src": "32629:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1748, + "name": "ElementaryTypeName", + "src": "32637:7:1" + } + ], + "id": 1749, + "name": "ElementaryTypeNameExpression", + "src": "32637:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1736, + "type": "address", + "value": "value" + }, + "id": 1750, + "name": "Identifier", + "src": "32645:5:1" + } + ], + "id": 1751, + "name": "FunctionCall", + "src": "32637:14:1" + } + ], + "id": 1752, + "name": "FunctionCall", + "src": "32629:23:1" + } + ], + "id": 1753, + "name": "FunctionCall", + "src": "32621:32:1" + } + ], + "id": 1754, + "name": "FunctionCall", + "src": "32601:53:1" + } + ], + "id": 1755, + "name": "Return", + "src": "32594:60:1" + } + ], + "id": 1756, + "name": "Block", + "src": "32584:77:1" + } + ], + "id": 1757, + "name": "FunctionDefinition", + "src": "32505:156:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1758, + "name": "StructuredDocumentation", + "src": "32667:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1783, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1759, + "name": "UserDefinedTypeName", + "src": "32760:10:1" + } + ], + "id": 1760, + "name": "VariableDeclaration", + "src": "32760:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1761, + "name": "ElementaryTypeName", + "src": "32784:7:1" + } + ], + "id": 1762, + "name": "VariableDeclaration", + "src": "32784:13:1" + } + ], + "id": 1763, + "name": "ParameterList", + "src": "32759:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1764, + "name": "ElementaryTypeName", + "src": "32822:4:1" + } + ], + "id": 1765, + "name": "VariableDeclaration", + "src": "32822:4:1" + } + ], + "id": 1766, + "name": "ParameterList", + "src": "32821:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1766 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1767, + "name": "Identifier", + "src": "32845:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1760, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1768, + "name": "Identifier", + "src": "32855:3:1" + } + ], + "id": 1769, + "name": "MemberAccess", + "src": "32855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1770, + "name": "ElementaryTypeName", + "src": "32867:7:1" + } + ], + "id": 1771, + "name": "ElementaryTypeNameExpression", + "src": "32867:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1772, + "name": "ElementaryTypeName", + "src": "32875:7:1" + } + ], + "id": 1773, + "name": "ElementaryTypeNameExpression", + "src": "32875:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1774, + "name": "ElementaryTypeName", + "src": "32883:7:1" + } + ], + "id": 1775, + "name": "ElementaryTypeNameExpression", + "src": "32883:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1762, + "type": "address", + "value": "value" + }, + "id": 1776, + "name": "Identifier", + "src": "32891:5:1" + } + ], + "id": 1777, + "name": "FunctionCall", + "src": "32883:14:1" + } + ], + "id": 1778, + "name": "FunctionCall", + "src": "32875:23:1" + } + ], + "id": 1779, + "name": "FunctionCall", + "src": "32867:32:1" + } + ], + "id": 1780, + "name": "FunctionCall", + "src": "32845:55:1" + } + ], + "id": 1781, + "name": "Return", + "src": "32838:62:1" + } + ], + "id": 1782, + "name": "Block", + "src": "32828:79:1" + } + ], + "id": 1783, + "name": "FunctionDefinition", + "src": "32742:165:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1784, + "name": "StructuredDocumentation", + "src": "32913:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1797, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1785, + "name": "UserDefinedTypeName", + "src": "33004:10:1" + } + ], + "id": 1786, + "name": "VariableDeclaration", + "src": "33004:22:1" + } + ], + "id": 1787, + "name": "ParameterList", + "src": "33003:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1797, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1788, + "name": "ElementaryTypeName", + "src": "33051:7:1" + } + ], + "id": 1789, + "name": "VariableDeclaration", + "src": "33051:7:1" + } + ], + "id": 1790, + "name": "ParameterList", + "src": "33050:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1790 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1791, + "name": "Identifier", + "src": "33077:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1786, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1792, + "name": "Identifier", + "src": "33085:3:1" + } + ], + "id": 1793, + "name": "MemberAccess", + "src": "33085:10:1" + } + ], + "id": 1794, + "name": "FunctionCall", + "src": "33077:19:1" + } + ], + "id": 1795, + "name": "Return", + "src": "33070:26:1" + } + ], + "id": 1796, + "name": "Block", + "src": "33060:43:1" + } + ], + "id": 1797, + "name": "FunctionDefinition", + "src": "32988:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1798, + "name": "StructuredDocumentation", + "src": "33108:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1823, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1799, + "name": "UserDefinedTypeName", + "src": "33447:10:1" + } + ], + "id": 1800, + "name": "VariableDeclaration", + "src": "33447:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1801, + "name": "ElementaryTypeName", + "src": "33471:7:1" + } + ], + "id": 1802, + "name": "VariableDeclaration", + "src": "33471:13:1" + } + ], + "id": 1803, + "name": "ParameterList", + "src": "33446:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1804, + "name": "ElementaryTypeName", + "src": "33509:7:1" + } + ], + "id": 1805, + "name": "VariableDeclaration", + "src": "33509:7:1" + } + ], + "id": 1806, + "name": "ParameterList", + "src": "33508:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1806 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1807, + "name": "ElementaryTypeName", + "src": "33535:7:1" + } + ], + "id": 1808, + "name": "ElementaryTypeNameExpression", + "src": "33535:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1809, + "name": "ElementaryTypeName", + "src": "33543:7:1" + } + ], + "id": 1810, + "name": "ElementaryTypeNameExpression", + "src": "33543:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1811, + "name": "ElementaryTypeName", + "src": "33551:7:1" + } + ], + "id": 1812, + "name": "ElementaryTypeNameExpression", + "src": "33551:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1813, + "name": "Identifier", + "src": "33559:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1800, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1814, + "name": "Identifier", + "src": "33563:3:1" + } + ], + "id": 1815, + "name": "MemberAccess", + "src": "33563:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1802, + "type": "uint256", + "value": "index" + }, + "id": 1816, + "name": "Identifier", + "src": "33575:5:1" + } + ], + "id": 1817, + "name": "FunctionCall", + "src": "33559:22:1" + } + ], + "id": 1818, + "name": "FunctionCall", + "src": "33551:31:1" + } + ], + "id": 1819, + "name": "FunctionCall", + "src": "33543:40:1" + } + ], + "id": 1820, + "name": "FunctionCall", + "src": "33535:49:1" + } + ], + "id": 1821, + "name": "Return", + "src": "33528:56:1" + } + ], + "id": 1822, + "name": "Block", + "src": "33518:73:1" + } + ], + "id": 1823, + "name": "FunctionDefinition", + "src": "33435:156:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.UintSet", + "name": "UintSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1826, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1824, + "name": "UserDefinedTypeName", + "src": "33639:3:1" + } + ], + "id": 1825, + "name": "VariableDeclaration", + "src": "33639:10:1" + } + ], + "id": 1826, + "name": "StructDefinition", + "src": "33614:42:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1827, + "name": "StructuredDocumentation", + "src": "33662:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1846, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1828, + "name": "UserDefinedTypeName", + "src": "33839:7:1" + } + ], + "id": 1829, + "name": "VariableDeclaration", + "src": "33839:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1830, + "name": "ElementaryTypeName", + "src": "33860:7:1" + } + ], + "id": 1831, + "name": "VariableDeclaration", + "src": "33860:13:1" + } + ], + "id": 1832, + "name": "ParameterList", + "src": "33838:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1833, + "name": "ElementaryTypeName", + "src": "33893:4:1" + } + ], + "id": 1834, + "name": "VariableDeclaration", + "src": "33893:4:1" + } + ], + "id": 1835, + "name": "ParameterList", + "src": "33892:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1835 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1836, + "name": "Identifier", + "src": "33916:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1829, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1837, + "name": "Identifier", + "src": "33921:3:1" + } + ], + "id": 1838, + "name": "MemberAccess", + "src": "33921:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1839, + "name": "ElementaryTypeName", + "src": "33933:7:1" + } + ], + "id": 1840, + "name": "ElementaryTypeNameExpression", + "src": "33933:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1831, + "type": "uint256", + "value": "value" + }, + "id": 1841, + "name": "Identifier", + "src": "33941:5:1" + } + ], + "id": 1842, + "name": "FunctionCall", + "src": "33933:14:1" + } + ], + "id": 1843, + "name": "FunctionCall", + "src": "33916:32:1" + } + ], + "id": 1844, + "name": "Return", + "src": "33909:39:1" + } + ], + "id": 1845, + "name": "Block", + "src": "33899:56:1" + } + ], + "id": 1846, + "name": "FunctionDefinition", + "src": "33826:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1847, + "name": "StructuredDocumentation", + "src": "33961:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1866, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1848, + "name": "UserDefinedTypeName", + "src": "34139:7:1" + } + ], + "id": 1849, + "name": "VariableDeclaration", + "src": "34139:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1850, + "name": "ElementaryTypeName", + "src": "34160:7:1" + } + ], + "id": 1851, + "name": "VariableDeclaration", + "src": "34160:13:1" + } + ], + "id": 1852, + "name": "ParameterList", + "src": "34138:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1853, + "name": "ElementaryTypeName", + "src": "34193:4:1" + } + ], + "id": 1854, + "name": "VariableDeclaration", + "src": "34193:4:1" + } + ], + "id": 1855, + "name": "ParameterList", + "src": "34192:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1855 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1856, + "name": "Identifier", + "src": "34216:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1849, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1857, + "name": "Identifier", + "src": "34224:3:1" + } + ], + "id": 1858, + "name": "MemberAccess", + "src": "34224:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1859, + "name": "ElementaryTypeName", + "src": "34236:7:1" + } + ], + "id": 1860, + "name": "ElementaryTypeNameExpression", + "src": "34236:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1851, + "type": "uint256", + "value": "value" + }, + "id": 1861, + "name": "Identifier", + "src": "34244:5:1" + } + ], + "id": 1862, + "name": "FunctionCall", + "src": "34236:14:1" + } + ], + "id": 1863, + "name": "FunctionCall", + "src": "34216:35:1" + } + ], + "id": 1864, + "name": "Return", + "src": "34209:42:1" + } + ], + "id": 1865, + "name": "Block", + "src": "34199:59:1" + } + ], + "id": 1866, + "name": "FunctionDefinition", + "src": "34123:135:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1867, + "name": "StructuredDocumentation", + "src": "34264:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1886, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1868, + "name": "UserDefinedTypeName", + "src": "34357:7:1" + } + ], + "id": 1869, + "name": "VariableDeclaration", + "src": "34357:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1870, + "name": "ElementaryTypeName", + "src": "34378:7:1" + } + ], + "id": 1871, + "name": "VariableDeclaration", + "src": "34378:13:1" + } + ], + "id": 1872, + "name": "ParameterList", + "src": "34356:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1873, + "name": "ElementaryTypeName", + "src": "34416:4:1" + } + ], + "id": 1874, + "name": "VariableDeclaration", + "src": "34416:4:1" + } + ], + "id": 1875, + "name": "ParameterList", + "src": "34415:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1875 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1876, + "name": "Identifier", + "src": "34439:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1869, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1877, + "name": "Identifier", + "src": "34449:3:1" + } + ], + "id": 1878, + "name": "MemberAccess", + "src": "34449:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1879, + "name": "ElementaryTypeName", + "src": "34461:7:1" + } + ], + "id": 1880, + "name": "ElementaryTypeNameExpression", + "src": "34461:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1871, + "type": "uint256", + "value": "value" + }, + "id": 1881, + "name": "Identifier", + "src": "34469:5:1" + } + ], + "id": 1882, + "name": "FunctionCall", + "src": "34461:14:1" + } + ], + "id": 1883, + "name": "FunctionCall", + "src": "34439:37:1" + } + ], + "id": 1884, + "name": "Return", + "src": "34432:44:1" + } + ], + "id": 1885, + "name": "Block", + "src": "34422:61:1" + } + ], + "id": 1886, + "name": "FunctionDefinition", + "src": "34339:144:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1887, + "name": "StructuredDocumentation", + "src": "34489:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1900, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1888, + "name": "UserDefinedTypeName", + "src": "34580:7:1" + } + ], + "id": 1889, + "name": "VariableDeclaration", + "src": "34580:19:1" + } + ], + "id": 1890, + "name": "ParameterList", + "src": "34579:21:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1900, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1891, + "name": "ElementaryTypeName", + "src": "34624:7:1" + } + ], + "id": 1892, + "name": "VariableDeclaration", + "src": "34624:7:1" + } + ], + "id": 1893, + "name": "ParameterList", + "src": "34623:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1894, + "name": "Identifier", + "src": "34650:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1889, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1895, + "name": "Identifier", + "src": "34658:3:1" + } + ], + "id": 1896, + "name": "MemberAccess", + "src": "34658:10:1" + } + ], + "id": 1897, + "name": "FunctionCall", + "src": "34650:19:1" + } + ], + "id": 1898, + "name": "Return", + "src": "34643:26:1" + } + ], + "id": 1899, + "name": "Block", + "src": "34633:43:1" + } + ], + "id": 1900, + "name": "FunctionDefinition", + "src": "34564:112:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1901, + "name": "StructuredDocumentation", + "src": "34681:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1920, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1902, + "name": "UserDefinedTypeName", + "src": "35020:7:1" + } + ], + "id": 1903, + "name": "VariableDeclaration", + "src": "35020:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1904, + "name": "ElementaryTypeName", + "src": "35041:7:1" + } + ], + "id": 1905, + "name": "VariableDeclaration", + "src": "35041:13:1" + } + ], + "id": 1906, + "name": "ParameterList", + "src": "35019:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1907, + "name": "ElementaryTypeName", + "src": "35079:7:1" + } + ], + "id": 1908, + "name": "VariableDeclaration", + "src": "35079:7:1" + } + ], + "id": 1909, + "name": "ParameterList", + "src": "35078:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1909 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1910, + "name": "ElementaryTypeName", + "src": "35105:7:1" + } + ], + "id": 1911, + "name": "ElementaryTypeNameExpression", + "src": "35105:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1912, + "name": "Identifier", + "src": "35113:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1903, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1913, + "name": "Identifier", + "src": "35117:3:1" + } + ], + "id": 1914, + "name": "MemberAccess", + "src": "35117:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1905, + "type": "uint256", + "value": "index" + }, + "id": 1915, + "name": "Identifier", + "src": "35129:5:1" + } + ], + "id": 1916, + "name": "FunctionCall", + "src": "35113:22:1" + } + ], + "id": 1917, + "name": "FunctionCall", + "src": "35105:31:1" + } + ], + "id": 1918, + "name": "Return", + "src": "35098:38:1" + } + ], + "id": 1919, + "name": "Block", + "src": "35088:55:1" + } + ], + "id": 1920, + "name": "FunctionDefinition", + "src": "35008:135:1" + } + ], + "id": 1921, + "name": "ContractDefinition", + "src": "26511:8634:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1922, + "name": "PragmaDirective", + "src": "35204:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "id": 1923, + "name": "StructuredDocumentation", + "src": "35237:705:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.MapEntry", + "name": "MapEntry", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_key", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1924, + "name": "ElementaryTypeName", + "src": "36455:7:1" + } + ], + "id": 1925, + "name": "VariableDeclaration", + "src": "36455:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_value", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1926, + "name": "ElementaryTypeName", + "src": "36477:7:1" + } + ], + "id": 1927, + "name": "VariableDeclaration", + "src": "36477:14:1" + } + ], + "id": 1928, + "name": "StructDefinition", + "src": "36429:69:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.Map", + "name": "Map", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_entries", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.MapEntry[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "struct EnumerableMap.MapEntry[]" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 1929, + "name": "UserDefinedTypeName", + "src": "36567:8:1" + } + ], + "id": 1930, + "name": "ArrayTypeName", + "src": "36567:10:1" + } + ], + "id": 1931, + "name": "VariableDeclaration", + "src": "36567:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1932, + "name": "ElementaryTypeName", + "src": "36745:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1933, + "name": "ElementaryTypeName", + "src": "36756:7:1" + } + ], + "id": 1934, + "name": "Mapping", + "src": "36736:28:1" + } + ], + "id": 1935, + "name": "VariableDeclaration", + "src": "36736:37:1" + } + ], + "id": 1936, + "name": "StructDefinition", + "src": "36504:276:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1937, + "name": "StructuredDocumentation", + "src": "36786:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 1998, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 1938, + "name": "UserDefinedTypeName", + "src": "37021:3:1" + } + ], + "id": 1939, + "name": "VariableDeclaration", + "src": "37021:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1940, + "name": "ElementaryTypeName", + "src": "37038:7:1" + } + ], + "id": 1941, + "name": "VariableDeclaration", + "src": "37038:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1942, + "name": "ElementaryTypeName", + "src": "37051:7:1" + } + ], + "id": 1943, + "name": "VariableDeclaration", + "src": "37051:13:1" + } + ], + "id": 1944, + "name": "ParameterList", + "src": "37020:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1945, + "name": "ElementaryTypeName", + "src": "37083:4:1" + } + ], + "id": 1946, + "name": "VariableDeclaration", + "src": "37083:4:1" + } + ], + "id": 1947, + "name": "ParameterList", + "src": "37082:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1949 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 1997, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1948, + "name": "ElementaryTypeName", + "src": "37197:7:1" + } + ], + "id": 1949, + "name": "VariableDeclaration", + "src": "37197:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1950, + "name": "Identifier", + "src": "37216:3:1" + } + ], + "id": 1951, + "name": "MemberAccess", + "src": "37216:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1952, + "name": "Identifier", + "src": "37229:3:1" + } + ], + "id": 1953, + "name": "IndexAccess", + "src": "37216:17:1" + } + ], + "id": 1954, + "name": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1955, + "name": "Identifier", + "src": "37248:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1956, + "name": "Literal", + "src": "37260:1:1" + } + ], + "id": 1957, + "name": "BinaryOperation", + "src": "37248:13:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (struct EnumerableMap.MapEntry storage ref)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1958, + "name": "Identifier", + "src": "37314:3:1" + } + ], + "id": 1961, + "name": "MemberAccess", + "src": "37314:12:1" + } + ], + "id": 1962, + "name": "MemberAccess", + "src": "37314:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": true, + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "tryCall": false, + "type": "struct EnumerableMap.MapEntry memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1928, + "type": "type(struct EnumerableMap.MapEntry storage pointer)", + "value": "MapEntry" + }, + "id": 1963, + "name": "Identifier", + "src": "37332:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1964, + "name": "Identifier", + "src": "37349:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1965, + "name": "Identifier", + "src": "37362:5:1" + } + ], + "id": 1966, + "name": "FunctionCall", + "src": "37332:38:1" + } + ], + "id": 1967, + "name": "FunctionCall", + "src": "37314:57:1" + } + ], + "id": 1968, + "name": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1969, + "name": "Identifier", + "src": "37506:3:1" + } + ], + "id": 1972, + "name": "MemberAccess", + "src": "37506:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1971, + "name": "Identifier", + "src": "37519:3:1" + } + ], + "id": 1973, + "name": "IndexAccess", + "src": "37506:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1974, + "name": "Identifier", + "src": "37526:3:1" + } + ], + "id": 1975, + "name": "MemberAccess", + "src": "37526:12:1" + } + ], + "id": 1976, + "name": "MemberAccess", + "src": "37526:19:1" + } + ], + "id": 1977, + "name": "Assignment", + "src": "37506:39:1" + } + ], + "id": 1978, + "name": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1979, + "name": "Literal", + "src": "37566:4:1" + } + ], + "id": 1980, + "name": "Return", + "src": "37559:11:1" + } + ], + "id": 1981, + "name": "Block", + "src": "37263:318:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1982, + "name": "Identifier", + "src": "37601:3:1" + } + ], + "id": 1987, + "name": "MemberAccess", + "src": "37601:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1984, + "name": "Identifier", + "src": "37614:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1985, + "name": "Literal", + "src": "37625:1:1" + } + ], + "id": 1986, + "name": "BinaryOperation", + "src": "37614:12:1" + } + ], + "id": 1988, + "name": "IndexAccess", + "src": "37601:26:1" + } + ], + "id": 1989, + "name": "MemberAccess", + "src": "37601:33:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1990, + "name": "Identifier", + "src": "37637:5:1" + } + ], + "id": 1991, + "name": "Assignment", + "src": "37601:41:1" + } + ], + "id": 1992, + "name": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1993, + "name": "Literal", + "src": "37663:5:1" + } + ], + "id": 1994, + "name": "Return", + "src": "37656:12:1" + } + ], + "id": 1995, + "name": "Block", + "src": "37587:92:1" + } + ], + "id": 1996, + "name": "IfStatement", + "src": "37244:435:1" + } + ], + "id": 1997, + "name": "Block", + "src": "37089:596:1" + } + ], + "id": 1998, + "name": "FunctionDefinition", + "src": "37007:678:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 1999, + "name": "StructuredDocumentation", + "src": "37691:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2079, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2000, + "name": "UserDefinedTypeName", + "src": "37870:3:1" + } + ], + "id": 2001, + "name": "VariableDeclaration", + "src": "37870:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2002, + "name": "ElementaryTypeName", + "src": "37887:7:1" + } + ], + "id": 2003, + "name": "VariableDeclaration", + "src": "37887:11:1" + } + ], + "id": 2004, + "name": "ParameterList", + "src": "37869:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2005, + "name": "ElementaryTypeName", + "src": "37917:4:1" + } + ], + "id": 2006, + "name": "VariableDeclaration", + "src": "37917:4:1" + } + ], + "id": 2007, + "name": "ParameterList", + "src": "37916:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2009 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2078, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2008, + "name": "ElementaryTypeName", + "src": "38031:7:1" + } + ], + "id": 2009, + "name": "VariableDeclaration", + "src": "38031:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2010, + "name": "Identifier", + "src": "38050:3:1" + } + ], + "id": 2011, + "name": "MemberAccess", + "src": "38050:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2012, + "name": "Identifier", + "src": "38063:3:1" + } + ], + "id": 2013, + "name": "IndexAccess", + "src": "38050:17:1" + } + ], + "id": 2014, + "name": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2015, + "name": "Identifier", + "src": "38082:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2016, + "name": "Literal", + "src": "38094:1:1" + } + ], + "id": 2017, + "name": "BinaryOperation", + "src": "38082:13:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2019 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2018, + "name": "ElementaryTypeName", + "src": "38438:7:1" + } + ], + "id": 2019, + "name": "VariableDeclaration", + "src": "38438:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2020, + "name": "Identifier", + "src": "38462:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2021, + "name": "Literal", + "src": "38473:1:1" + } + ], + "id": 2022, + "name": "BinaryOperation", + "src": "38462:12:1" + } + ], + "id": 2023, + "name": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "attributes": { + "assignments": [ + 2025 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2024, + "name": "ElementaryTypeName", + "src": "38488:7:1" + } + ], + "id": 2025, + "name": "VariableDeclaration", + "src": "38488:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2026, + "name": "Identifier", + "src": "38508:3:1" + } + ], + "id": 2027, + "name": "MemberAccess", + "src": "38508:12:1" + } + ], + "id": 2028, + "name": "MemberAccess", + "src": "38508:19:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2029, + "name": "Literal", + "src": "38530:1:1" + } + ], + "id": 2030, + "name": "BinaryOperation", + "src": "38508:23:1" + } + ], + "id": 2031, + "name": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "attributes": { + "assignments": [ + 2033 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastEntry", + "scope": 2073, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2032, + "name": "UserDefinedTypeName", + "src": "38771:8:1" + } + ], + "id": 2033, + "name": "VariableDeclaration", + "src": "38771:26:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2034, + "name": "Identifier", + "src": "38800:3:1" + } + ], + "id": 2035, + "name": "MemberAccess", + "src": "38800:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2025, + "type": "uint256", + "value": "lastIndex" + }, + "id": 2036, + "name": "Identifier", + "src": "38813:9:1" + } + ], + "id": 2037, + "name": "IndexAccess", + "src": "38800:23:1" + } + ], + "id": 2038, + "name": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2039, + "name": "Identifier", + "src": "38915:3:1" + } + ], + "id": 2042, + "name": "MemberAccess", + "src": "38915:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2041, + "name": "Identifier", + "src": "38928:13:1" + } + ], + "id": 2043, + "name": "IndexAccess", + "src": "38915:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2044, + "name": "Identifier", + "src": "38945:9:1" + } + ], + "id": 2045, + "name": "Assignment", + "src": "38915:39:1" + } + ], + "id": 2046, + "name": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2047, + "name": "Identifier", + "src": "39020:3:1" + } + ], + "id": 2051, + "name": "MemberAccess", + "src": "39020:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2049, + "name": "Identifier", + "src": "39033:9:1" + } + ], + "id": 2050, + "name": "MemberAccess", + "src": "39033:14:1" + } + ], + "id": 2052, + "name": "IndexAccess", + "src": "39020:28:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2053, + "name": "Identifier", + "src": "39051:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2054, + "name": "Literal", + "src": "39067:1:1" + } + ], + "id": 2055, + "name": "BinaryOperation", + "src": "39051:17:1" + } + ], + "id": 2056, + "name": "Assignment", + "src": "39020:48:1" + } + ], + "id": 2057, + "name": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2058, + "name": "Identifier", + "src": "39174:3:1" + } + ], + "id": 2061, + "name": "MemberAccess", + "src": "39174:12:1" + } + ], + "id": 2062, + "name": "MemberAccess", + "src": "39174:16:1" + } + ], + "id": 2063, + "name": "FunctionCall", + "src": "39174:18:1" + } + ], + "id": 2064, + "name": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2065, + "name": "Identifier", + "src": "39267:3:1" + } + ], + "id": 2066, + "name": "MemberAccess", + "src": "39267:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2067, + "name": "Identifier", + "src": "39280:3:1" + } + ], + "id": 2068, + "name": "IndexAccess", + "src": "39267:17:1" + } + ], + "id": 2069, + "name": "UnaryOperation", + "src": "39260:24:1" + } + ], + "id": 2070, + "name": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2071, + "name": "Literal", + "src": "39306:4:1" + } + ], + "id": 2072, + "name": "Return", + "src": "39299:11:1" + } + ], + "id": 2073, + "name": "Block", + "src": "38097:1224:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2074, + "name": "Literal", + "src": "39348:5:1" + } + ], + "id": 2075, + "name": "Return", + "src": "39341:12:1" + } + ], + "id": 2076, + "name": "Block", + "src": "39327:37:1" + } + ], + "id": 2077, + "name": "IfStatement", + "src": "38078:1286:1" + } + ], + "id": 2078, + "name": "Block", + "src": "37923:1447:1" + } + ], + "id": 2079, + "name": "FunctionDefinition", + "src": "37853:1517:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2080, + "name": "StructuredDocumentation", + "src": "39376:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2097, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2081, + "name": "UserDefinedTypeName", + "src": "39468:3:1" + } + ], + "id": 2082, + "name": "VariableDeclaration", + "src": "39468:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2083, + "name": "ElementaryTypeName", + "src": "39485:7:1" + } + ], + "id": 2084, + "name": "VariableDeclaration", + "src": "39485:11:1" + } + ], + "id": 2085, + "name": "ParameterList", + "src": "39467:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2086, + "name": "ElementaryTypeName", + "src": "39520:4:1" + } + ], + "id": 2087, + "name": "VariableDeclaration", + "src": "39520:4:1" + } + ], + "id": 2088, + "name": "ParameterList", + "src": "39519:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2088 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2082, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2089, + "name": "Identifier", + "src": "39543:3:1" + } + ], + "id": 2090, + "name": "MemberAccess", + "src": "39543:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2084, + "type": "bytes32", + "value": "key" + }, + "id": 2091, + "name": "Identifier", + "src": "39556:3:1" + } + ], + "id": 2092, + "name": "IndexAccess", + "src": "39543:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2093, + "name": "Literal", + "src": "39564:1:1" + } + ], + "id": 2094, + "name": "BinaryOperation", + "src": "39543:22:1" + } + ], + "id": 2095, + "name": "Return", + "src": "39536:29:1" + } + ], + "id": 2096, + "name": "Block", + "src": "39526:46:1" + } + ], + "id": 2097, + "name": "FunctionDefinition", + "src": "39449:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2098, + "name": "StructuredDocumentation", + "src": "39578:79:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2110, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2099, + "name": "UserDefinedTypeName", + "src": "39679:3:1" + } + ], + "id": 2100, + "name": "VariableDeclaration", + "src": "39679:15:1" + } + ], + "id": 2101, + "name": "ParameterList", + "src": "39678:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2102, + "name": "ElementaryTypeName", + "src": "39718:7:1" + } + ], + "id": 2103, + "name": "VariableDeclaration", + "src": "39718:7:1" + } + ], + "id": 2104, + "name": "ParameterList", + "src": "39717:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2104 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2100, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2105, + "name": "Identifier", + "src": "39744:3:1" + } + ], + "id": 2106, + "name": "MemberAccess", + "src": "39744:12:1" + } + ], + "id": 2107, + "name": "MemberAccess", + "src": "39744:19:1" + } + ], + "id": 2108, + "name": "Return", + "src": "39737:26:1" + } + ], + "id": 2109, + "name": "Block", + "src": "39727:43:1" + } + ], + "id": 2110, + "name": "FunctionDefinition", + "src": "39662:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2111, + "name": "StructuredDocumentation", + "src": "39775:333:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2145, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2112, + "name": "UserDefinedTypeName", + "src": "40126:3:1" + } + ], + "id": 2113, + "name": "VariableDeclaration", + "src": "40126:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2114, + "name": "ElementaryTypeName", + "src": "40143:7:1" + } + ], + "id": 2115, + "name": "VariableDeclaration", + "src": "40143:13:1" + } + ], + "id": 2116, + "name": "ParameterList", + "src": "40125:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2117, + "name": "ElementaryTypeName", + "src": "40180:7:1" + } + ], + "id": 2118, + "name": "VariableDeclaration", + "src": "40180:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2119, + "name": "ElementaryTypeName", + "src": "40189:7:1" + } + ], + "id": 2120, + "name": "VariableDeclaration", + "src": "40189:7:1" + } + ], + "id": 2121, + "name": "ParameterList", + "src": "40179:18:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2122, + "name": "Identifier", + "src": "40208:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2123, + "name": "Identifier", + "src": "40216:3:1" + } + ], + "id": 2124, + "name": "MemberAccess", + "src": "40216:12:1" + } + ], + "id": 2125, + "name": "MemberAccess", + "src": "40216:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2126, + "name": "Identifier", + "src": "40238:5:1" + } + ], + "id": 2127, + "name": "BinaryOperation", + "src": "40216:27:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: index out of bounds\"", + "value": "EnumerableMap: index out of bounds" + }, + "id": 2128, + "name": "Literal", + "src": "40245:36:1" + } + ], + "id": 2129, + "name": "FunctionCall", + "src": "40208:74:1" + } + ], + "id": 2130, + "name": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "attributes": { + "assignments": [ + 2132 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "entry", + "scope": 2144, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2131, + "name": "UserDefinedTypeName", + "src": "40293:8:1" + } + ], + "id": 2132, + "name": "VariableDeclaration", + "src": "40293:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2133, + "name": "Identifier", + "src": "40318:3:1" + } + ], + "id": 2134, + "name": "MemberAccess", + "src": "40318:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2135, + "name": "Identifier", + "src": "40331:5:1" + } + ], + "id": 2136, + "name": "IndexAccess", + "src": "40318:19:1" + } + ], + "id": 2137, + "name": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2121 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bytes32,bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2138, + "name": "Identifier", + "src": "40355:5:1" + } + ], + "id": 2139, + "name": "MemberAccess", + "src": "40355:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2140, + "name": "Identifier", + "src": "40367:5:1" + } + ], + "id": 2141, + "name": "MemberAccess", + "src": "40367:12:1" + } + ], + "id": 2142, + "name": "TupleExpression", + "src": "40354:26:1" + } + ], + "id": 2143, + "name": "Return", + "src": "40347:33:1" + } + ], + "id": 2144, + "name": "Block", + "src": "40198:189:1" + } + ], + "id": 2145, + "name": "FunctionDefinition", + "src": "40113:274:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2146, + "name": "StructuredDocumentation", + "src": "40393:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2183, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2147, + "name": "UserDefinedTypeName", + "src": "40546:3:1" + } + ], + "id": 2148, + "name": "VariableDeclaration", + "src": "40546:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2149, + "name": "ElementaryTypeName", + "src": "40563:7:1" + } + ], + "id": 2150, + "name": "VariableDeclaration", + "src": "40563:11:1" + } + ], + "id": 2151, + "name": "ParameterList", + "src": "40545:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2152, + "name": "ElementaryTypeName", + "src": "40598:4:1" + } + ], + "id": 2153, + "name": "VariableDeclaration", + "src": "40598:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2154, + "name": "ElementaryTypeName", + "src": "40604:7:1" + } + ], + "id": 2155, + "name": "VariableDeclaration", + "src": "40604:7:1" + } + ], + "id": 2156, + "name": "ParameterList", + "src": "40597:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2158 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2182, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2157, + "name": "ElementaryTypeName", + "src": "40623:7:1" + } + ], + "id": 2158, + "name": "VariableDeclaration", + "src": "40623:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2159, + "name": "Identifier", + "src": "40642:3:1" + } + ], + "id": 2160, + "name": "MemberAccess", + "src": "40642:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2150, + "type": "bytes32", + "value": "key" + }, + "id": 2161, + "name": "Identifier", + "src": "40655:3:1" + } + ], + "id": 2162, + "name": "IndexAccess", + "src": "40642:17:1" + } + ], + "id": 2163, + "name": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2164, + "name": "Identifier", + "src": "40673:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2165, + "name": "Literal", + "src": "40685:1:1" + } + ], + "id": 2166, + "name": "BinaryOperation", + "src": "40673:13:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2167, + "name": "Literal", + "src": "40696:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2168, + "name": "Literal", + "src": "40703:1:1" + } + ], + "id": 2169, + "name": "TupleExpression", + "src": "40695:10:1" + } + ], + "id": 2170, + "name": "Return", + "src": "40688:17:1" + } + ], + "id": 2171, + "name": "IfStatement", + "src": "40669:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,bytes32)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2172, + "name": "Literal", + "src": "40759:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2173, + "name": "Identifier", + "src": "40765:3:1" + } + ], + "id": 2174, + "name": "MemberAccess", + "src": "40765:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2175, + "name": "Identifier", + "src": "40778:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2176, + "name": "Literal", + "src": "40789:1:1" + } + ], + "id": 2177, + "name": "BinaryOperation", + "src": "40778:12:1" + } + ], + "id": 2178, + "name": "IndexAccess", + "src": "40765:26:1" + } + ], + "id": 2179, + "name": "MemberAccess", + "src": "40765:33:1" + } + ], + "id": 2180, + "name": "TupleExpression", + "src": "40758:41:1" + } + ], + "id": 2181, + "name": "Return", + "src": "40751:48:1" + } + ], + "id": 2182, + "name": "Block", + "src": "40613:220:1" + } + ], + "id": 2183, + "name": "FunctionDefinition", + "src": "40529:304:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2184, + "name": "StructuredDocumentation", + "src": "40839:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2216, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2185, + "name": "UserDefinedTypeName", + "src": "40999:3:1" + } + ], + "id": 2186, + "name": "VariableDeclaration", + "src": "40999:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2187, + "name": "ElementaryTypeName", + "src": "41016:7:1" + } + ], + "id": 2188, + "name": "VariableDeclaration", + "src": "41016:11:1" + } + ], + "id": 2189, + "name": "ParameterList", + "src": "40998:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2190, + "name": "ElementaryTypeName", + "src": "41051:7:1" + } + ], + "id": 2191, + "name": "VariableDeclaration", + "src": "41051:7:1" + } + ], + "id": 2192, + "name": "ParameterList", + "src": "41050:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2194 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2215, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2193, + "name": "ElementaryTypeName", + "src": "41070:7:1" + } + ], + "id": 2194, + "name": "VariableDeclaration", + "src": "41070:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2195, + "name": "Identifier", + "src": "41089:3:1" + } + ], + "id": 2196, + "name": "MemberAccess", + "src": "41089:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2188, + "type": "bytes32", + "value": "key" + }, + "id": 2197, + "name": "Identifier", + "src": "41102:3:1" + } + ], + "id": 2198, + "name": "IndexAccess", + "src": "41089:17:1" + } + ], + "id": 2199, + "name": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2200, + "name": "Identifier", + "src": "41116:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2201, + "name": "Identifier", + "src": "41124:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2202, + "name": "Literal", + "src": "41136:1:1" + } + ], + "id": 2203, + "name": "BinaryOperation", + "src": "41124:13:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: nonexistent key\"", + "value": "EnumerableMap: nonexistent key" + }, + "id": 2204, + "name": "Literal", + "src": "41139:32:1" + } + ], + "id": 2205, + "name": "FunctionCall", + "src": "41116:56:1" + } + ], + "id": 2206, + "name": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "attributes": { + "functionReturnParameters": 2192 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2207, + "name": "Identifier", + "src": "41225:3:1" + } + ], + "id": 2208, + "name": "MemberAccess", + "src": "41225:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2209, + "name": "Identifier", + "src": "41238:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2210, + "name": "Literal", + "src": "41249:1:1" + } + ], + "id": 2211, + "name": "BinaryOperation", + "src": "41238:12:1" + } + ], + "id": 2212, + "name": "IndexAccess", + "src": "41225:26:1" + } + ], + "id": 2213, + "name": "MemberAccess", + "src": "41225:33:1" + } + ], + "id": 2214, + "name": "Return", + "src": "41218:40:1" + } + ], + "id": 2215, + "name": "Block", + "src": "41060:232:1" + } + ], + "id": 2216, + "name": "FunctionDefinition", + "src": "40985:307:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2217, + "name": "StructuredDocumentation", + "src": "41298:271:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2251, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2218, + "name": "UserDefinedTypeName", + "src": "41588:3:1" + } + ], + "id": 2219, + "name": "VariableDeclaration", + "src": "41588:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2220, + "name": "ElementaryTypeName", + "src": "41605:7:1" + } + ], + "id": 2221, + "name": "VariableDeclaration", + "src": "41605:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2251, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2222, + "name": "ElementaryTypeName", + "src": "41618:6:1" + } + ], + "id": 2223, + "name": "VariableDeclaration", + "src": "41618:26:1" + } + ], + "id": 2224, + "name": "ParameterList", + "src": "41587:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2225, + "name": "ElementaryTypeName", + "src": "41668:7:1" + } + ], + "id": 2226, + "name": "VariableDeclaration", + "src": "41668:7:1" + } + ], + "id": 2227, + "name": "ParameterList", + "src": "41667:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2229 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2250, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2228, + "name": "ElementaryTypeName", + "src": "41687:7:1" + } + ], + "id": 2229, + "name": "VariableDeclaration", + "src": "41687:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2230, + "name": "Identifier", + "src": "41706:3:1" + } + ], + "id": 2231, + "name": "MemberAccess", + "src": "41706:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2221, + "type": "bytes32", + "value": "key" + }, + "id": 2232, + "name": "Identifier", + "src": "41719:3:1" + } + ], + "id": 2233, + "name": "IndexAccess", + "src": "41706:17:1" + } + ], + "id": 2234, + "name": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2235, + "name": "Identifier", + "src": "41733:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2236, + "name": "Identifier", + "src": "41741:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2237, + "name": "Literal", + "src": "41753:1:1" + } + ], + "id": 2238, + "name": "BinaryOperation", + "src": "41741:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2223, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2239, + "name": "Identifier", + "src": "41756:12:1" + } + ], + "id": 2240, + "name": "FunctionCall", + "src": "41733:36:1" + } + ], + "id": 2241, + "name": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2227 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2242, + "name": "Identifier", + "src": "41822:3:1" + } + ], + "id": 2243, + "name": "MemberAccess", + "src": "41822:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2244, + "name": "Identifier", + "src": "41835:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2245, + "name": "Literal", + "src": "41846:1:1" + } + ], + "id": 2246, + "name": "BinaryOperation", + "src": "41835:12:1" + } + ], + "id": 2247, + "name": "IndexAccess", + "src": "41822:26:1" + } + ], + "id": 2248, + "name": "MemberAccess", + "src": "41822:33:1" + } + ], + "id": 2249, + "name": "Return", + "src": "41815:40:1" + } + ], + "id": 2250, + "name": "Block", + "src": "41677:212:1" + } + ], + "id": 2251, + "name": "FunctionDefinition", + "src": "41574:315:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.UintToAddressMap", + "name": "UintToAddressMap", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 2254, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2252, + "name": "UserDefinedTypeName", + "src": "41954:3:1" + } + ], + "id": 2253, + "name": "VariableDeclaration", + "src": "41954:10:1" + } + ], + "id": 2254, + "name": "StructDefinition", + "src": "41920:51:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2255, + "name": "StructuredDocumentation", + "src": "41977:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2286, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2256, + "name": "UserDefinedTypeName", + "src": "42211:16:1" + } + ], + "id": 2257, + "name": "VariableDeclaration", + "src": "42211:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2258, + "name": "ElementaryTypeName", + "src": "42241:7:1" + } + ], + "id": 2259, + "name": "VariableDeclaration", + "src": "42241:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2260, + "name": "ElementaryTypeName", + "src": "42254:7:1" + } + ], + "id": 2261, + "name": "VariableDeclaration", + "src": "42254:13:1" + } + ], + "id": 2262, + "name": "ParameterList", + "src": "42210:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2263, + "name": "ElementaryTypeName", + "src": "42287:4:1" + } + ], + "id": 2264, + "name": "VariableDeclaration", + "src": "42287:4:1" + } + ], + "id": 2265, + "name": "ParameterList", + "src": "42286:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2265 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1998, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)", + "value": "_set" + }, + "id": 2266, + "name": "Identifier", + "src": "42310:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2257, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2267, + "name": "Identifier", + "src": "42315:3:1" + } + ], + "id": 2268, + "name": "MemberAccess", + "src": "42315:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2269, + "name": "ElementaryTypeName", + "src": "42327:7:1" + } + ], + "id": 2270, + "name": "ElementaryTypeNameExpression", + "src": "42327:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2259, + "type": "uint256", + "value": "key" + }, + "id": 2271, + "name": "Identifier", + "src": "42335:3:1" + } + ], + "id": 2272, + "name": "FunctionCall", + "src": "42327:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2273, + "name": "ElementaryTypeName", + "src": "42341:7:1" + } + ], + "id": 2274, + "name": "ElementaryTypeNameExpression", + "src": "42341:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2275, + "name": "ElementaryTypeName", + "src": "42349:7:1" + } + ], + "id": 2276, + "name": "ElementaryTypeNameExpression", + "src": "42349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2277, + "name": "ElementaryTypeName", + "src": "42357:7:1" + } + ], + "id": 2278, + "name": "ElementaryTypeNameExpression", + "src": "42357:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2261, + "type": "address", + "value": "value" + }, + "id": 2279, + "name": "Identifier", + "src": "42365:5:1" + } + ], + "id": 2280, + "name": "FunctionCall", + "src": "42357:14:1" + } + ], + "id": 2281, + "name": "FunctionCall", + "src": "42349:23:1" + } + ], + "id": 2282, + "name": "FunctionCall", + "src": "42341:32:1" + } + ], + "id": 2283, + "name": "FunctionCall", + "src": "42310:64:1" + } + ], + "id": 2284, + "name": "Return", + "src": "42303:71:1" + } + ], + "id": 2285, + "name": "Block", + "src": "42293:88:1" + } + ], + "id": 2286, + "name": "FunctionDefinition", + "src": "42198:183:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2287, + "name": "StructuredDocumentation", + "src": "42387:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2306, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2288, + "name": "UserDefinedTypeName", + "src": "42556:16:1" + } + ], + "id": 2289, + "name": "VariableDeclaration", + "src": "42556:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2290, + "name": "ElementaryTypeName", + "src": "42586:7:1" + } + ], + "id": 2291, + "name": "VariableDeclaration", + "src": "42586:11:1" + } + ], + "id": 2292, + "name": "ParameterList", + "src": "42555:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2293, + "name": "ElementaryTypeName", + "src": "42617:4:1" + } + ], + "id": 2294, + "name": "VariableDeclaration", + "src": "42617:4:1" + } + ], + "id": 2295, + "name": "ParameterList", + "src": "42616:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2295 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2079, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 2296, + "name": "Identifier", + "src": "42640:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2289, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2297, + "name": "Identifier", + "src": "42648:3:1" + } + ], + "id": 2298, + "name": "MemberAccess", + "src": "42648:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2299, + "name": "ElementaryTypeName", + "src": "42660:7:1" + } + ], + "id": 2300, + "name": "ElementaryTypeNameExpression", + "src": "42660:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2291, + "type": "uint256", + "value": "key" + }, + "id": 2301, + "name": "Identifier", + "src": "42668:3:1" + } + ], + "id": 2302, + "name": "FunctionCall", + "src": "42660:12:1" + } + ], + "id": 2303, + "name": "FunctionCall", + "src": "42640:33:1" + } + ], + "id": 2304, + "name": "Return", + "src": "42633:40:1" + } + ], + "id": 2305, + "name": "Block", + "src": "42623:57:1" + } + ], + "id": 2306, + "name": "FunctionDefinition", + "src": "42540:140:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2307, + "name": "StructuredDocumentation", + "src": "42686:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2326, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2308, + "name": "UserDefinedTypeName", + "src": "42777:16:1" + } + ], + "id": 2309, + "name": "VariableDeclaration", + "src": "42777:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2310, + "name": "ElementaryTypeName", + "src": "42807:7:1" + } + ], + "id": 2311, + "name": "VariableDeclaration", + "src": "42807:11:1" + } + ], + "id": 2312, + "name": "ParameterList", + "src": "42776:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2313, + "name": "ElementaryTypeName", + "src": "42843:4:1" + } + ], + "id": 2314, + "name": "VariableDeclaration", + "src": "42843:4:1" + } + ], + "id": 2315, + "name": "ParameterList", + "src": "42842:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2315 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2097, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 2316, + "name": "Identifier", + "src": "42866:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2309, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2317, + "name": "Identifier", + "src": "42876:3:1" + } + ], + "id": 2318, + "name": "MemberAccess", + "src": "42876:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2319, + "name": "ElementaryTypeName", + "src": "42888:7:1" + } + ], + "id": 2320, + "name": "ElementaryTypeNameExpression", + "src": "42888:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2311, + "type": "uint256", + "value": "key" + }, + "id": 2321, + "name": "Identifier", + "src": "42896:3:1" + } + ], + "id": 2322, + "name": "FunctionCall", + "src": "42888:12:1" + } + ], + "id": 2323, + "name": "FunctionCall", + "src": "42866:35:1" + } + ], + "id": 2324, + "name": "Return", + "src": "42859:42:1" + } + ], + "id": 2325, + "name": "Block", + "src": "42849:59:1" + } + ], + "id": 2326, + "name": "FunctionDefinition", + "src": "42759:149:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2327, + "name": "StructuredDocumentation", + "src": "42914:72:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2340, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2328, + "name": "UserDefinedTypeName", + "src": "43007:16:1" + } + ], + "id": 2329, + "name": "VariableDeclaration", + "src": "43007:28:1" + } + ], + "id": 2330, + "name": "ParameterList", + "src": "43006:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2340, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2331, + "name": "ElementaryTypeName", + "src": "43060:7:1" + } + ], + "id": 2332, + "name": "VariableDeclaration", + "src": "43060:7:1" + } + ], + "id": 2333, + "name": "ParameterList", + "src": "43059:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2333 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2110, + "type": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 2334, + "name": "Identifier", + "src": "43086:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2329, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2335, + "name": "Identifier", + "src": "43094:3:1" + } + ], + "id": 2336, + "name": "MemberAccess", + "src": "43094:10:1" + } + ], + "id": 2337, + "name": "FunctionCall", + "src": "43086:19:1" + } + ], + "id": 2338, + "name": "Return", + "src": "43079:26:1" + } + ], + "id": 2339, + "name": "Block", + "src": "43069:43:1" + } + ], + "id": 2340, + "name": "FunctionDefinition", + "src": "42991:121:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2341, + "name": "StructuredDocumentation", + "src": "43117:318:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2379, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2342, + "name": "UserDefinedTypeName", + "src": "43452:16:1" + } + ], + "id": 2343, + "name": "VariableDeclaration", + "src": "43452:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2344, + "name": "ElementaryTypeName", + "src": "43482:7:1" + } + ], + "id": 2345, + "name": "VariableDeclaration", + "src": "43482:13:1" + } + ], + "id": 2346, + "name": "ParameterList", + "src": "43451:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2347, + "name": "ElementaryTypeName", + "src": "43520:7:1" + } + ], + "id": 2348, + "name": "VariableDeclaration", + "src": "43520:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2349, + "name": "ElementaryTypeName", + "src": "43529:7:1" + } + ], + "id": 2350, + "name": "VariableDeclaration", + "src": "43529:7:1" + } + ], + "id": 2351, + "name": "ParameterList", + "src": "43519:18:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2353, + 2355 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2352, + "name": "ElementaryTypeName", + "src": "43549:7:1" + } + ], + "id": 2353, + "name": "VariableDeclaration", + "src": "43549:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2354, + "name": "ElementaryTypeName", + "src": "43562:7:1" + } + ], + "id": 2355, + "name": "VariableDeclaration", + "src": "43562:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bytes32,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2145, + "type": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)", + "value": "_at" + }, + "id": 2356, + "name": "Identifier", + "src": "43579:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2343, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2357, + "name": "Identifier", + "src": "43583:3:1" + } + ], + "id": 2358, + "name": "MemberAccess", + "src": "43583:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2345, + "type": "uint256", + "value": "index" + }, + "id": 2359, + "name": "Identifier", + "src": "43595:5:1" + } + ], + "id": 2360, + "name": "FunctionCall", + "src": "43579:22:1" + } + ], + "id": 2361, + "name": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "attributes": { + "functionReturnParameters": 2351 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(uint256,address payable)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2362, + "name": "ElementaryTypeName", + "src": "43619:7:1" + } + ], + "id": 2363, + "name": "ElementaryTypeNameExpression", + "src": "43619:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2353, + "type": "bytes32", + "value": "key" + }, + "id": 2364, + "name": "Identifier", + "src": "43627:3:1" + } + ], + "id": 2365, + "name": "FunctionCall", + "src": "43619:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2366, + "name": "ElementaryTypeName", + "src": "43633:7:1" + } + ], + "id": 2367, + "name": "ElementaryTypeNameExpression", + "src": "43633:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2368, + "name": "ElementaryTypeName", + "src": "43641:7:1" + } + ], + "id": 2369, + "name": "ElementaryTypeNameExpression", + "src": "43641:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2370, + "name": "ElementaryTypeName", + "src": "43649:7:1" + } + ], + "id": 2371, + "name": "ElementaryTypeNameExpression", + "src": "43649:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2355, + "type": "bytes32", + "value": "value" + }, + "id": 2372, + "name": "Identifier", + "src": "43657:5:1" + } + ], + "id": 2373, + "name": "FunctionCall", + "src": "43649:14:1" + } + ], + "id": 2374, + "name": "FunctionCall", + "src": "43641:23:1" + } + ], + "id": 2375, + "name": "FunctionCall", + "src": "43633:32:1" + } + ], + "id": 2376, + "name": "TupleExpression", + "src": "43618:48:1" + } + ], + "id": 2377, + "name": "Return", + "src": "43611:55:1" + } + ], + "id": 2378, + "name": "Block", + "src": "43538:135:1" + } + ], + "id": 2379, + "name": "FunctionDefinition", + "src": "43440:233:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2380, + "name": "StructuredDocumentation", + "src": "43679:169:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2418, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2381, + "name": "UserDefinedTypeName", + "src": "43869:16:1" + } + ], + "id": 2382, + "name": "VariableDeclaration", + "src": "43869:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2383, + "name": "ElementaryTypeName", + "src": "43899:7:1" + } + ], + "id": 2384, + "name": "VariableDeclaration", + "src": "43899:11:1" + } + ], + "id": 2385, + "name": "ParameterList", + "src": "43868:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2386, + "name": "ElementaryTypeName", + "src": "43935:4:1" + } + ], + "id": 2387, + "name": "VariableDeclaration", + "src": "43935:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2388, + "name": "ElementaryTypeName", + "src": "43941:7:1" + } + ], + "id": 2389, + "name": "VariableDeclaration", + "src": "43941:7:1" + } + ], + "id": 2390, + "name": "ParameterList", + "src": "43934:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2392, + 2394 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "43961:4:1" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "43961:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "43975:7:1" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "43975:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2183, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)", + "value": "_tryGet" + }, + "id": 2395, + "name": "Identifier", + "src": "43992:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2382, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2396, + "name": "Identifier", + "src": "44000:3:1" + } + ], + "id": 2397, + "name": "MemberAccess", + "src": "44000:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "44012:7:1" + } + ], + "id": 2399, + "name": "ElementaryTypeNameExpression", + "src": "44012:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2384, + "type": "uint256", + "value": "key" + }, + "id": 2400, + "name": "Identifier", + "src": "44020:3:1" + } + ], + "id": 2401, + "name": "FunctionCall", + "src": "44012:12:1" + } + ], + "id": 2402, + "name": "FunctionCall", + "src": "43992:33:1" + } + ], + "id": 2403, + "name": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "attributes": { + "functionReturnParameters": 2390 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,address payable)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2392, + "type": "bool", + "value": "success" + }, + "id": 2404, + "name": "Identifier", + "src": "44043:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2405, + "name": "ElementaryTypeName", + "src": "44052:7:1" + } + ], + "id": 2406, + "name": "ElementaryTypeNameExpression", + "src": "44052:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "44060:7:1" + } + ], + "id": 2408, + "name": "ElementaryTypeNameExpression", + "src": "44060:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "44068:7:1" + } + ], + "id": 2410, + "name": "ElementaryTypeNameExpression", + "src": "44068:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2394, + "type": "bytes32", + "value": "value" + }, + "id": 2411, + "name": "Identifier", + "src": "44076:5:1" + } + ], + "id": 2412, + "name": "FunctionCall", + "src": "44068:14:1" + } + ], + "id": 2413, + "name": "FunctionCall", + "src": "44060:23:1" + } + ], + "id": 2414, + "name": "FunctionCall", + "src": "44052:32:1" + } + ], + "id": 2415, + "name": "TupleExpression", + "src": "44042:43:1" + } + ], + "id": 2416, + "name": "Return", + "src": "44035:50:1" + } + ], + "id": 2417, + "name": "Block", + "src": "43950:142:1" + } + ], + "id": 2418, + "name": "FunctionDefinition", + "src": "43853:239:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2419, + "name": "StructuredDocumentation", + "src": "44098:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2447, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2420, + "name": "UserDefinedTypeName", + "src": "44257:16:1" + } + ], + "id": 2421, + "name": "VariableDeclaration", + "src": "44257:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2422, + "name": "ElementaryTypeName", + "src": "44287:7:1" + } + ], + "id": 2423, + "name": "VariableDeclaration", + "src": "44287:11:1" + } + ], + "id": 2424, + "name": "ParameterList", + "src": "44256:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2425, + "name": "ElementaryTypeName", + "src": "44323:7:1" + } + ], + "id": 2426, + "name": "VariableDeclaration", + "src": "44323:7:1" + } + ], + "id": 2427, + "name": "ParameterList", + "src": "44322:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2427 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2428, + "name": "ElementaryTypeName", + "src": "44349:7:1" + } + ], + "id": 2429, + "name": "ElementaryTypeNameExpression", + "src": "44349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2430, + "name": "ElementaryTypeName", + "src": "44357:7:1" + } + ], + "id": 2431, + "name": "ElementaryTypeNameExpression", + "src": "44357:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2432, + "name": "ElementaryTypeName", + "src": "44365:7:1" + } + ], + "id": 2433, + "name": "ElementaryTypeNameExpression", + "src": "44365:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)", + "value": "_get" + }, + "id": 2434, + "name": "Identifier", + "src": "44373:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2421, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2435, + "name": "Identifier", + "src": "44378:3:1" + } + ], + "id": 2436, + "name": "MemberAccess", + "src": "44378:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "44390:7:1" + } + ], + "id": 2438, + "name": "ElementaryTypeNameExpression", + "src": "44390:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2423, + "type": "uint256", + "value": "key" + }, + "id": 2439, + "name": "Identifier", + "src": "44398:3:1" + } + ], + "id": 2440, + "name": "FunctionCall", + "src": "44390:12:1" + } + ], + "id": 2441, + "name": "FunctionCall", + "src": "44373:30:1" + } + ], + "id": 2442, + "name": "FunctionCall", + "src": "44365:39:1" + } + ], + "id": 2443, + "name": "FunctionCall", + "src": "44357:48:1" + } + ], + "id": 2444, + "name": "FunctionCall", + "src": "44349:57:1" + } + ], + "id": 2445, + "name": "Return", + "src": "44342:64:1" + } + ], + "id": 2446, + "name": "Block", + "src": "44332:81:1" + } + ], + "id": 2447, + "name": "FunctionDefinition", + "src": "44244:169:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2448, + "name": "StructuredDocumentation", + "src": "44419:269:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2479, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2449, + "name": "UserDefinedTypeName", + "src": "44706:16:1" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "44706:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2451, + "name": "ElementaryTypeName", + "src": "44736:7:1" + } + ], + "id": 2452, + "name": "VariableDeclaration", + "src": "44736:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2479, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "44749:6:1" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "44749:26:1" + } + ], + "id": 2455, + "name": "ParameterList", + "src": "44705:71:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2456, + "name": "ElementaryTypeName", + "src": "44800:7:1" + } + ], + "id": 2457, + "name": "VariableDeclaration", + "src": "44800:7:1" + } + ], + "id": 2458, + "name": "ParameterList", + "src": "44799:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2458 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "44826:7:1" + } + ], + "id": 2460, + "name": "ElementaryTypeNameExpression", + "src": "44826:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "44834:7:1" + } + ], + "id": 2462, + "name": "ElementaryTypeNameExpression", + "src": "44834:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2463, + "name": "ElementaryTypeName", + "src": "44842:7:1" + } + ], + "id": 2464, + "name": "ElementaryTypeNameExpression", + "src": "44842:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)", + "value": "_get" + }, + "id": 2465, + "name": "Identifier", + "src": "44850:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2450, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2466, + "name": "Identifier", + "src": "44855:3:1" + } + ], + "id": 2467, + "name": "MemberAccess", + "src": "44855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2468, + "name": "ElementaryTypeName", + "src": "44867:7:1" + } + ], + "id": 2469, + "name": "ElementaryTypeNameExpression", + "src": "44867:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2452, + "type": "uint256", + "value": "key" + }, + "id": 2470, + "name": "Identifier", + "src": "44875:3:1" + } + ], + "id": 2471, + "name": "FunctionCall", + "src": "44867:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2454, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2472, + "name": "Identifier", + "src": "44881:12:1" + } + ], + "id": 2473, + "name": "FunctionCall", + "src": "44850:44:1" + } + ], + "id": 2474, + "name": "FunctionCall", + "src": "44842:53:1" + } + ], + "id": 2475, + "name": "FunctionCall", + "src": "44834:62:1" + } + ], + "id": 2476, + "name": "FunctionCall", + "src": "44826:71:1" + } + ], + "id": 2477, + "name": "Return", + "src": "44819:78:1" + } + ], + "id": 2478, + "name": "Block", + "src": "44809:95:1" + } + ], + "id": 2479, + "name": "FunctionDefinition", + "src": "44693:211:1" + } + ], + "id": 2480, + "name": "ContractDefinition", + "src": "35943:8963:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2481, + "name": "PragmaDirective", + "src": "44959:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev String operations." + }, + "id": 2482, + "name": "StructuredDocumentation", + "src": "44992:34:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toString", + "scope": 2566, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2483, + "name": "StructuredDocumentation", + "src": "45049:82:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2565, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2484, + "name": "ElementaryTypeName", + "src": "45154:7:1" + } + ], + "id": 2485, + "name": "VariableDeclaration", + "src": "45154:13:1" + } + ], + "id": 2486, + "name": "ParameterList", + "src": "45153:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2565, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "45192:6:1" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "45192:13:1" + } + ], + "id": 2489, + "name": "ParameterList", + "src": "45191:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2490, + "name": "Identifier", + "src": "45409:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2491, + "name": "Literal", + "src": "45418:1:1" + } + ], + "id": 2492, + "name": "BinaryOperation", + "src": "45409:10:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"0\"", + "value": "0" + }, + "id": 2493, + "name": "Literal", + "src": "45442:3:1" + } + ], + "id": 2494, + "name": "Return", + "src": "45435:10:1" + } + ], + "id": 2495, + "name": "Block", + "src": "45421:35:1" + } + ], + "id": 2496, + "name": "IfStatement", + "src": "45405:51:1" + }, + { + "attributes": { + "assignments": [ + 2498 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "temp", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2497, + "name": "ElementaryTypeName", + "src": "45465:7:1" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "45465:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2499, + "name": "Identifier", + "src": "45480:5:1" + } + ], + "id": 2500, + "name": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "attributes": { + "assignments": [ + 2502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "digits", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "45495:7:1" + } + ], + "id": 2502, + "name": "VariableDeclaration", + "src": "45495:14:1" + } + ], + "id": 2503, + "name": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2504, + "name": "Identifier", + "src": "45526:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2505, + "name": "Literal", + "src": "45534:1:1" + } + ], + "id": 2506, + "name": "BinaryOperation", + "src": "45526:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2507, + "name": "Identifier", + "src": "45551:6:1" + } + ], + "id": 2508, + "name": "UnaryOperation", + "src": "45551:8:1" + } + ], + "id": 2509, + "name": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2510, + "name": "Identifier", + "src": "45573:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2511, + "name": "Literal", + "src": "45581:2:1" + } + ], + "id": 2512, + "name": "Assignment", + "src": "45573:10:1" + } + ], + "id": 2513, + "name": "ExpressionStatement", + "src": "45573:10:1" + } + ], + "id": 2514, + "name": "Block", + "src": "45537:57:1" + } + ], + "id": 2515, + "name": "WhileStatement", + "src": "45519:75:1" + }, + { + "attributes": { + "assignments": [ + 2517 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "buffer", + "scope": 2564, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2516, + "name": "ElementaryTypeName", + "src": "45603:5:1" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "45603:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "function (uint256) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "45629:5:1" + } + ], + "id": 2519, + "name": "NewExpression", + "src": "45625:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2520, + "name": "Identifier", + "src": "45635:6:1" + } + ], + "id": 2521, + "name": "FunctionCall", + "src": "45625:17:1" + } + ], + "id": 2522, + "name": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "attributes": { + "assignments": [ + 2524 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2523, + "name": "ElementaryTypeName", + "src": "45652:7:1" + } + ], + "id": 2524, + "name": "VariableDeclaration", + "src": "45652:13:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2525, + "name": "Identifier", + "src": "45668:6:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2526, + "name": "Literal", + "src": "45677:1:1" + } + ], + "id": 2527, + "name": "BinaryOperation", + "src": "45668:10:1" + } + ], + "id": 2528, + "name": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2529, + "name": "Identifier", + "src": "45688:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2530, + "name": "Identifier", + "src": "45695:5:1" + } + ], + "id": 2531, + "name": "Assignment", + "src": "45688:12:1" + } + ], + "id": 2532, + "name": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2533, + "name": "Identifier", + "src": "45717:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2534, + "name": "Literal", + "src": "45725:1:1" + } + ], + "id": 2535, + "name": "BinaryOperation", + "src": "45717:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2536, + "name": "Identifier", + "src": "45742:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "--", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2524, + "type": "uint256", + "value": "index" + }, + "id": 2537, + "name": "Identifier", + "src": "45749:5:1" + } + ], + "id": 2538, + "name": "UnaryOperation", + "src": "45749:7:1" + } + ], + "id": 2539, + "name": "IndexAccess", + "src": "45742:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes1", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes1)" + }, + "children": [ + { + "attributes": { + "name": "bytes1" + }, + "id": 2540, + "name": "ElementaryTypeName", + "src": "45760:6:1" + } + ], + "id": 2541, + "name": "ElementaryTypeNameExpression", + "src": "45760:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 2542, + "name": "ElementaryTypeName", + "src": "45767:5:1" + } + ], + "id": 2543, + "name": "ElementaryTypeNameExpression", + "src": "45767:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "hexvalue": "3438", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 48", + "value": "48" + }, + "id": 2544, + "name": "Literal", + "src": "45773:2:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2545, + "name": "Identifier", + "src": "45778:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2546, + "name": "Literal", + "src": "45785:2:1" + } + ], + "id": 2547, + "name": "BinaryOperation", + "src": "45778:9:1" + } + ], + "id": 2548, + "name": "BinaryOperation", + "src": "45773:14:1" + } + ], + "id": 2549, + "name": "FunctionCall", + "src": "45767:21:1" + } + ], + "id": 2550, + "name": "FunctionCall", + "src": "45760:29:1" + } + ], + "id": 2551, + "name": "Assignment", + "src": "45742:47:1" + } + ], + "id": 2552, + "name": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2553, + "name": "Identifier", + "src": "45803:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2554, + "name": "Literal", + "src": "45811:2:1" + } + ], + "id": 2555, + "name": "Assignment", + "src": "45803:10:1" + } + ], + "id": 2556, + "name": "ExpressionStatement", + "src": "45803:10:1" + } + ], + "id": 2557, + "name": "Block", + "src": "45728:96:1" + } + ], + "id": 2558, + "name": "WhileStatement", + "src": "45710:114:1" + }, + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2559, + "name": "ElementaryTypeName", + "src": "45840:6:1" + } + ], + "id": 2560, + "name": "ElementaryTypeNameExpression", + "src": "45840:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2561, + "name": "Identifier", + "src": "45847:6:1" + } + ], + "id": 2562, + "name": "FunctionCall", + "src": "45840:14:1" + } + ], + "id": 2563, + "name": "Return", + "src": "45833:21:1" + } + ], + "id": 2564, + "name": "Block", + "src": "45207:654:1" + } + ], + "id": 2565, + "name": "FunctionDefinition", + "src": "45136:725:1" + } + ], + "id": 2566, + "name": "ContractDefinition", + "src": "45027:836:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2567, + "name": "PragmaDirective", + "src": "45922:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 2568, + "name": "StructuredDocumentation", + "src": "45955:124:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "Context", + "referencedDeclaration": 530, + "type": "contract Context" + }, + "id": 2569, + "name": "UserDefinedTypeName", + "src": "46099:7:1" + } + ], + "id": 2570, + "name": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "ERC165", + "referencedDeclaration": 781, + "type": "contract ERC165" + }, + "id": 2571, + "name": "UserDefinedTypeName", + "src": "46108:6:1" + } + ], + "id": 2572, + "name": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 2573, + "name": "UserDefinedTypeName", + "src": "46116:7:1" + } + ], + "id": 2574, + "name": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Metadata", + "referencedDeclaration": 680, + "type": "contract IERC721Metadata" + }, + "id": 2575, + "name": "UserDefinedTypeName", + "src": "46125:15:1" + } + ], + "id": 2576, + "name": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Enumerable", + "referencedDeclaration": 709, + "type": "contract IERC721Enumerable" + }, + "id": 2577, + "name": "UserDefinedTypeName", + "src": "46142:17:1" + } + ], + "id": 2578, + "name": "InheritanceSpecifier", + "src": "46142:17:1" + }, + { + "children": [ + { + "attributes": { + "name": "SafeMath", + "referencedDeclaration": 1135, + "type": "library SafeMath" + }, + "id": 2579, + "name": "UserDefinedTypeName", + "src": "46172:8:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2580, + "name": "ElementaryTypeName", + "src": "46185:7:1" + } + ], + "id": 2581, + "name": "UsingForDirective", + "src": "46166:27:1" + }, + { + "children": [ + { + "attributes": { + "name": "Address", + "referencedDeclaration": 1430, + "type": "library Address" + }, + "id": 2582, + "name": "UserDefinedTypeName", + "src": "46204:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "46216:7:1" + } + ], + "id": 2584, + "name": "UsingForDirective", + "src": "46198:26:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableSet", + "referencedDeclaration": 1921, + "type": "library EnumerableSet" + }, + "id": 2585, + "name": "UserDefinedTypeName", + "src": "46235:13:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2586, + "name": "UserDefinedTypeName", + "src": "46253:21:1" + } + ], + "id": 2587, + "name": "UsingForDirective", + "src": "46229:46:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableMap", + "referencedDeclaration": 2480, + "type": "library EnumerableMap" + }, + "id": 2588, + "name": "UserDefinedTypeName", + "src": "46286:13:1" + }, + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2589, + "name": "UserDefinedTypeName", + "src": "46304:30:1" + } + ], + "id": 2590, + "name": "UsingForDirective", + "src": "46280:55:1" + }, + { + "children": [ + { + "attributes": { + "name": "Strings", + "referencedDeclaration": 2566, + "type": "library Strings" + }, + "id": 2591, + "name": "UserDefinedTypeName", + "src": "46346:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2592, + "name": "ElementaryTypeName", + "src": "46358:7:1" + } + ], + "id": 2593, + "name": "UsingForDirective", + "src": "46340:26:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "46544:6:1" + }, + { + "attributes": { + "hexvalue": "30783135306237613032", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 353073666", + "value": "0x150b7a02" + }, + "id": 2595, + "name": "Literal", + "src": "46587:10:1" + } + ], + "id": 2596, + "name": "VariableDeclaration", + "src": "46544:53:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_holderTokens", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => struct EnumerableSet.UintSet)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct EnumerableSet.UintSet)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2597, + "name": "ElementaryTypeName", + "src": "46690:7:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2598, + "name": "UserDefinedTypeName", + "src": "46701:21:1" + } + ], + "id": 2599, + "name": "Mapping", + "src": "46681:42:1" + } + ], + "id": 2600, + "name": "VariableDeclaration", + "src": "46681:64:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenOwners", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2601, + "name": "UserDefinedTypeName", + "src": "46809:30:1" + } + ], + "id": 2602, + "name": "VariableDeclaration", + "src": "46809:51:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => address)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => address)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2603, + "name": "ElementaryTypeName", + "src": "46925:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "46936:7:1" + } + ], + "id": 2605, + "name": "Mapping", + "src": "46916:28:1" + } + ], + "id": 2606, + "name": "VariableDeclaration", + "src": "46916:52:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_operatorApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => mapping(address => bool))", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => mapping(address => bool))" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2607, + "name": "ElementaryTypeName", + "src": "47032:7:1" + }, + { + "attributes": { + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2608, + "name": "ElementaryTypeName", + "src": "47052:7:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2609, + "name": "ElementaryTypeName", + "src": "47063:4:1" + } + ], + "id": 2610, + "name": "Mapping", + "src": "47043:25:1" + } + ], + "id": 2611, + "name": "Mapping", + "src": "47023:46:1" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "47023:73:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_name", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "47121:6:1" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "47121:20:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_symbol", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "47168:6:1" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "47168:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURIs", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => string)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => string)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "47245:7:1" + }, + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2618, + "name": "ElementaryTypeName", + "src": "47256:6:1" + } + ], + "id": 2619, + "name": "Mapping", + "src": "47236:27:1" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "47236:46:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_baseURI", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2621, + "name": "ElementaryTypeName", + "src": "47305:6:1" + } + ], + "id": 2622, + "name": "VariableDeclaration", + "src": "47305:23:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2623, + "name": "ElementaryTypeName", + "src": "48204:6:1" + }, + { + "attributes": { + "hexvalue": "30783830616335386364", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2158778573", + "value": "0x80ac58cd" + }, + "id": 2624, + "name": "Literal", + "src": "48251:10:1" + } + ], + "id": 2625, + "name": "VariableDeclaration", + "src": "48204:57:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2626, + "name": "ElementaryTypeName", + "src": "48527:6:1" + }, + { + "attributes": { + "hexvalue": "30783562356531333966", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1532892063", + "value": "0x5b5e139f" + }, + "id": 2627, + "name": "Literal", + "src": "48583:10:1" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "48527:66:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "48898:6:1" + }, + { + "attributes": { + "hexvalue": "30783738306539643633", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2014223715", + "value": "0x780e9d63" + }, + "id": 2630, + "name": "Literal", + "src": "48956:10:1" + } + ], + "id": 2631, + "name": "VariableDeclaration", + "src": "48898:68:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2632, + "name": "StructuredDocumentation", + "src": "48973:108:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "name_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2633, + "name": "ElementaryTypeName", + "src": "49099:6:1" + } + ], + "id": 2634, + "name": "VariableDeclaration", + "src": "49099:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "symbol_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2635, + "name": "ElementaryTypeName", + "src": "49120:6:1" + } + ], + "id": 2636, + "name": "VariableDeclaration", + "src": "49120:21:1" + } + ], + "id": 2637, + "name": "ParameterList", + "src": "49098:44:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2638, + "name": "ParameterList", + "src": "49143:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2639, + "name": "Identifier", + "src": "49153:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2634, + "type": "string memory", + "value": "name_" + }, + "id": 2640, + "name": "Identifier", + "src": "49161:5:1" + } + ], + "id": 2641, + "name": "Assignment", + "src": "49153:13:1" + } + ], + "id": 2642, + "name": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2643, + "name": "Identifier", + "src": "49176:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2636, + "type": "string memory", + "value": "symbol_" + }, + "id": 2644, + "name": "Identifier", + "src": "49186:7:1" + } + ], + "id": 2645, + "name": "Assignment", + "src": "49176:17:1" + } + ], + "id": 2646, + "name": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2647, + "name": "Identifier", + "src": "49281:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2625, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721" + }, + "id": 2648, + "name": "Identifier", + "src": "49300:20:1" + } + ], + "id": 2649, + "name": "FunctionCall", + "src": "49281:40:1" + } + ], + "id": 2650, + "name": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2651, + "name": "Identifier", + "src": "49331:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2628, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_METADATA" + }, + "id": 2652, + "name": "Identifier", + "src": "49350:29:1" + } + ], + "id": 2653, + "name": "FunctionCall", + "src": "49331:49:1" + } + ], + "id": 2654, + "name": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2655, + "name": "Identifier", + "src": "49390:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2631, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_ENUMERABLE" + }, + "id": 2656, + "name": "Identifier", + "src": "49409:31:1" + } + ], + "id": 2657, + "name": "FunctionCall", + "src": "49390:51:1" + } + ], + "id": 2658, + "name": "ExpressionStatement", + "src": "49390:51:1" + } + ], + "id": 2659, + "name": "Block", + "src": "49143:305:1" + } + ], + "id": 2660, + "name": "FunctionDefinition", + "src": "49086:362:1" + }, + { + "attributes": { + "baseFunctions": [ + 580 + ], + "functionSelector": "70a08231", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-balanceOf}." + }, + "id": 2661, + "name": "StructuredDocumentation", + "src": "49454:48:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2665, + "name": "OverrideSpecifier", + "src": "49561:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2662, + "name": "ElementaryTypeName", + "src": "49526:7:1" + } + ], + "id": 2663, + "name": "VariableDeclaration", + "src": "49526:13:1" + } + ], + "id": 2664, + "name": "ParameterList", + "src": "49525:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2666, + "name": "ElementaryTypeName", + "src": "49579:7:1" + } + ], + "id": 2667, + "name": "VariableDeclaration", + "src": "49579:7:1" + } + ], + "id": 2668, + "name": "ParameterList", + "src": "49578:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2669, + "name": "Identifier", + "src": "49598:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2670, + "name": "Identifier", + "src": "49606:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2671, + "name": "ElementaryTypeName", + "src": "49615:7:1" + } + ], + "id": 2672, + "name": "ElementaryTypeNameExpression", + "src": "49615:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2673, + "name": "Literal", + "src": "49623:1:1" + } + ], + "id": 2674, + "name": "FunctionCall", + "src": "49615:10:1" + } + ], + "id": 2675, + "name": "BinaryOperation", + "src": "49606:19:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: balance query for the zero address\"", + "value": "ERC721: balance query for the zero address" + }, + "id": 2676, + "name": "Literal", + "src": "49627:44:1" + } + ], + "id": 2677, + "name": "FunctionCall", + "src": "49598:74:1" + } + ], + "id": 2678, + "name": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "attributes": { + "functionReturnParameters": 2668 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 1900, + "type": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2679, + "name": "Identifier", + "src": "49689:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2680, + "name": "Identifier", + "src": "49703:5:1" + } + ], + "id": 2681, + "name": "IndexAccess", + "src": "49689:20:1" + } + ], + "id": 2682, + "name": "MemberAccess", + "src": "49689:27:1" + } + ], + "id": 2683, + "name": "FunctionCall", + "src": "49689:29:1" + } + ], + "id": 2684, + "name": "Return", + "src": "49682:36:1" + } + ], + "id": 2685, + "name": "Block", + "src": "49588:137:1" + } + ], + "id": 2686, + "name": "FunctionDefinition", + "src": "49507:218:1" + }, + { + "attributes": { + "baseFunctions": [ + 588 + ], + "functionSelector": "6352211e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-ownerOf}." + }, + "id": 2687, + "name": "StructuredDocumentation", + "src": "49731:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2691, + "name": "OverrideSpecifier", + "src": "49836:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2688, + "name": "ElementaryTypeName", + "src": "49799:7:1" + } + ], + "id": 2689, + "name": "VariableDeclaration", + "src": "49799:15:1" + } + ], + "id": 2690, + "name": "ParameterList", + "src": "49798:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2692, + "name": "ElementaryTypeName", + "src": "49854:7:1" + } + ], + "id": 2693, + "name": "VariableDeclaration", + "src": "49854:7:1" + } + ], + "id": 2694, + "name": "ParameterList", + "src": "49853:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "get", + "referencedDeclaration": 2479, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2695, + "name": "Identifier", + "src": "49880:12:1" + } + ], + "id": 2696, + "name": "MemberAccess", + "src": "49880:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2689, + "type": "uint256", + "value": "tokenId" + }, + "id": 2697, + "name": "Identifier", + "src": "49897:7:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: owner query for nonexistent token\"", + "value": "ERC721: owner query for nonexistent token" + }, + "id": 2698, + "name": "Literal", + "src": "49906:43:1" + } + ], + "id": 2699, + "name": "FunctionCall", + "src": "49880:70:1" + } + ], + "id": 2700, + "name": "Return", + "src": "49873:77:1" + } + ], + "id": 2701, + "name": "Block", + "src": "49863:94:1" + } + ], + "id": 2702, + "name": "FunctionDefinition", + "src": "49782:175:1" + }, + { + "attributes": { + "baseFunctions": [ + 665 + ], + "functionSelector": "06fdde03", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-name}." + }, + "id": 2703, + "name": "StructuredDocumentation", + "src": "49963:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2705, + "name": "OverrideSpecifier", + "src": "50055:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2704, + "name": "ParameterList", + "src": "50032:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2712, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2706, + "name": "ElementaryTypeName", + "src": "50073:6:1" + } + ], + "id": 2707, + "name": "VariableDeclaration", + "src": "50073:13:1" + } + ], + "id": 2708, + "name": "ParameterList", + "src": "50072:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2708 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2709, + "name": "Identifier", + "src": "50105:5:1" + } + ], + "id": 2710, + "name": "Return", + "src": "50098:12:1" + } + ], + "id": 2711, + "name": "Block", + "src": "50088:29:1" + } + ], + "id": 2712, + "name": "FunctionDefinition", + "src": "50019:98:1" + }, + { + "attributes": { + "baseFunctions": [ + 671 + ], + "functionSelector": "95d89b41", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-symbol}." + }, + "id": 2713, + "name": "StructuredDocumentation", + "src": "50123:53:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2715, + "name": "OverrideSpecifier", + "src": "50219:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2714, + "name": "ParameterList", + "src": "50196:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2722, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2716, + "name": "ElementaryTypeName", + "src": "50237:6:1" + } + ], + "id": 2717, + "name": "VariableDeclaration", + "src": "50237:13:1" + } + ], + "id": 2718, + "name": "ParameterList", + "src": "50236:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2718 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2719, + "name": "Identifier", + "src": "50269:7:1" + } + ], + "id": 2720, + "name": "Return", + "src": "50262:14:1" + } + ], + "id": 2721, + "name": "Block", + "src": "50252:31:1" + } + ], + "id": 2722, + "name": "FunctionDefinition", + "src": "50181:102:1" + }, + { + "attributes": { + "baseFunctions": [ + 679 + ], + "functionSelector": "c87b56dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "id": 2723, + "name": "StructuredDocumentation", + "src": "50289:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2727, + "name": "OverrideSpecifier", + "src": "50404:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2790, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2724, + "name": "ElementaryTypeName", + "src": "50367:7:1" + } + ], + "id": 2725, + "name": "VariableDeclaration", + "src": "50367:15:1" + } + ], + "id": 2726, + "name": "ParameterList", + "src": "50366:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2790, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2728, + "name": "ElementaryTypeName", + "src": "50422:6:1" + } + ], + "id": 2729, + "name": "VariableDeclaration", + "src": "50422:13:1" + } + ], + "id": 2730, + "name": "ParameterList", + "src": "50421:15:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2731, + "name": "Identifier", + "src": "50447:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2732, + "name": "Identifier", + "src": "50455:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2733, + "name": "Identifier", + "src": "50463:7:1" + } + ], + "id": 2734, + "name": "FunctionCall", + "src": "50455:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI query for nonexistent token\"", + "value": "ERC721Metadata: URI query for nonexistent token" + }, + "id": 2735, + "name": "Literal", + "src": "50473:49:1" + } + ], + "id": 2736, + "name": "FunctionCall", + "src": "50447:76:1" + } + ], + "id": 2737, + "name": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "attributes": { + "assignments": [ + 2739 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2738, + "name": "ElementaryTypeName", + "src": "50534:6:1" + } + ], + "id": 2739, + "name": "VariableDeclaration", + "src": "50534:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 2740, + "name": "Identifier", + "src": "50560:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2741, + "name": "Identifier", + "src": "50571:7:1" + } + ], + "id": 2742, + "name": "IndexAccess", + "src": "50560:19:1" + } + ], + "id": 2743, + "name": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "attributes": { + "assignments": [ + 2745 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "base", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2744, + "name": "ElementaryTypeName", + "src": "50589:6:1" + } + ], + "id": 2745, + "name": "VariableDeclaration", + "src": "50589:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2799, + "type": "function () view returns (string memory)", + "value": "baseURI" + }, + "id": 2746, + "name": "Identifier", + "src": "50610:7:1" + } + ], + "id": 2747, + "name": "FunctionCall", + "src": "50610:9:1" + } + ], + "id": 2748, + "name": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2749, + "name": "ElementaryTypeName", + "src": "50692:5:1" + } + ], + "id": 2750, + "name": "ElementaryTypeNameExpression", + "src": "50692:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2751, + "name": "Identifier", + "src": "50698:4:1" + } + ], + "id": 2752, + "name": "FunctionCall", + "src": "50692:11:1" + } + ], + "id": 2753, + "name": "MemberAccess", + "src": "50692:18:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2754, + "name": "Literal", + "src": "50714:1:1" + } + ], + "id": 2755, + "name": "BinaryOperation", + "src": "50692:23:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2756, + "name": "Identifier", + "src": "50738:9:1" + } + ], + "id": 2757, + "name": "Return", + "src": "50731:16:1" + } + ], + "id": 2758, + "name": "Block", + "src": "50717:41:1" + } + ], + "id": 2759, + "name": "IfStatement", + "src": "50688:70:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2760, + "name": "ElementaryTypeName", + "src": "50860:5:1" + } + ], + "id": 2761, + "name": "ElementaryTypeNameExpression", + "src": "50860:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2762, + "name": "Identifier", + "src": "50866:9:1" + } + ], + "id": 2763, + "name": "FunctionCall", + "src": "50860:16:1" + } + ], + "id": 2764, + "name": "MemberAccess", + "src": "50860:23:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2765, + "name": "Literal", + "src": "50886:1:1" + } + ], + "id": 2766, + "name": "BinaryOperation", + "src": "50860:27:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2767, + "name": "ElementaryTypeName", + "src": "50910:6:1" + } + ], + "id": 2768, + "name": "ElementaryTypeNameExpression", + "src": "50910:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2769, + "name": "Identifier", + "src": "50917:3:1" + } + ], + "id": 2770, + "name": "MemberAccess", + "src": "50917:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2771, + "name": "Identifier", + "src": "50934:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2772, + "name": "Identifier", + "src": "50940:9:1" + } + ], + "id": 2773, + "name": "FunctionCall", + "src": "50917:33:1" + } + ], + "id": 2774, + "name": "FunctionCall", + "src": "50910:41:1" + } + ], + "id": 2775, + "name": "Return", + "src": "50903:48:1" + } + ], + "id": 2776, + "name": "Block", + "src": "50889:73:1" + } + ], + "id": 2777, + "name": "IfStatement", + "src": "50856:106:1" + }, + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2778, + "name": "ElementaryTypeName", + "src": "51068:6:1" + } + ], + "id": 2779, + "name": "ElementaryTypeNameExpression", + "src": "51068:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2780, + "name": "Identifier", + "src": "51075:3:1" + } + ], + "id": 2781, + "name": "MemberAccess", + "src": "51075:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2782, + "name": "Identifier", + "src": "51092:4:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "toString", + "referencedDeclaration": 2565, + "type": "function (uint256) pure returns (string memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2783, + "name": "Identifier", + "src": "51098:7:1" + } + ], + "id": 2784, + "name": "MemberAccess", + "src": "51098:16:1" + } + ], + "id": 2785, + "name": "FunctionCall", + "src": "51098:18:1" + } + ], + "id": 2786, + "name": "FunctionCall", + "src": "51075:42:1" + } + ], + "id": 2787, + "name": "FunctionCall", + "src": "51068:50:1" + } + ], + "id": 2788, + "name": "Return", + "src": "51061:57:1" + } + ], + "id": 2789, + "name": "Block", + "src": "50437:688:1" + } + ], + "id": 2790, + "name": "FunctionDefinition", + "src": "50349:776:1" + }, + { + "attributes": { + "functionSelector": "6c0360eb", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "baseURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "id": 2791, + "name": "StructuredDocumentation", + "src": "51131:221:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2792, + "name": "ParameterList", + "src": "51373:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2799, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2793, + "name": "ElementaryTypeName", + "src": "51405:6:1" + } + ], + "id": 2794, + "name": "VariableDeclaration", + "src": "51405:13:1" + } + ], + "id": 2795, + "name": "ParameterList", + "src": "51404:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2795 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 2796, + "name": "Identifier", + "src": "51437:8:1" + } + ], + "id": 2797, + "name": "Return", + "src": "51430:15:1" + } + ], + "id": 2798, + "name": "Block", + "src": "51420:32:1" + } + ], + "id": 2799, + "name": "FunctionDefinition", + "src": "51357:95:1" + }, + { + "attributes": { + "baseFunctions": [ + 700 + ], + "functionSelector": "2f745c59", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "id": 2800, + "name": "StructuredDocumentation", + "src": "51458:68:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2806, + "name": "OverrideSpecifier", + "src": "51610:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2801, + "name": "ElementaryTypeName", + "src": "51560:7:1" + } + ], + "id": 2802, + "name": "VariableDeclaration", + "src": "51560:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2803, + "name": "ElementaryTypeName", + "src": "51575:7:1" + } + ], + "id": 2804, + "name": "VariableDeclaration", + "src": "51575:13:1" + } + ], + "id": 2805, + "name": "ParameterList", + "src": "51559:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2807, + "name": "ElementaryTypeName", + "src": "51628:7:1" + } + ], + "id": 2808, + "name": "VariableDeclaration", + "src": "51628:7:1" + } + ], + "id": 2809, + "name": "ParameterList", + "src": "51627:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2809 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 1920, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2810, + "name": "Identifier", + "src": "51654:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2802, + "type": "address", + "value": "owner" + }, + "id": 2811, + "name": "Identifier", + "src": "51668:5:1" + } + ], + "id": 2812, + "name": "IndexAccess", + "src": "51654:20:1" + } + ], + "id": 2813, + "name": "MemberAccess", + "src": "51654:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2804, + "type": "uint256", + "value": "index" + }, + "id": 2814, + "name": "Identifier", + "src": "51678:5:1" + } + ], + "id": 2815, + "name": "FunctionCall", + "src": "51654:30:1" + } + ], + "id": 2816, + "name": "Return", + "src": "51647:37:1" + } + ], + "id": 2817, + "name": "Block", + "src": "51637:54:1" + } + ], + "id": 2818, + "name": "FunctionDefinition", + "src": "51531:160:1" + }, + { + "attributes": { + "baseFunctions": [ + 690 + ], + "functionSelector": "18160ddd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "id": 2819, + "name": "StructuredDocumentation", + "src": "51697:60:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2821, + "name": "OverrideSpecifier", + "src": "51805:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2820, + "name": "ParameterList", + "src": "51782:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2830, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2822, + "name": "ElementaryTypeName", + "src": "51823:7:1" + } + ], + "id": 2823, + "name": "VariableDeclaration", + "src": "51823:7:1" + } + ], + "id": 2824, + "name": "ParameterList", + "src": "51822:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2824 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 2340, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2825, + "name": "Identifier", + "src": "51942:12:1" + } + ], + "id": 2826, + "name": "MemberAccess", + "src": "51942:19:1" + } + ], + "id": 2827, + "name": "FunctionCall", + "src": "51942:21:1" + } + ], + "id": 2828, + "name": "Return", + "src": "51935:28:1" + } + ], + "id": 2829, + "name": "Block", + "src": "51832:138:1" + } + ], + "id": 2830, + "name": "FunctionDefinition", + "src": "51762:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 708 + ], + "functionSelector": "4f6ccce7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "id": 2831, + "name": "StructuredDocumentation", + "src": "51976:61:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2835, + "name": "OverrideSpecifier", + "src": "52099:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2832, + "name": "ElementaryTypeName", + "src": "52064:7:1" + } + ], + "id": 2833, + "name": "VariableDeclaration", + "src": "52064:13:1" + } + ], + "id": 2834, + "name": "ParameterList", + "src": "52063:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2836, + "name": "ElementaryTypeName", + "src": "52117:7:1" + } + ], + "id": 2837, + "name": "VariableDeclaration", + "src": "52117:7:1" + } + ], + "id": 2838, + "name": "ParameterList", + "src": "52116:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2840, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2848, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2839, + "name": "ElementaryTypeName", + "src": "52137:7:1" + } + ], + "id": 2840, + "name": "VariableDeclaration", + "src": "52137:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(uint256,address)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 2379, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2841, + "name": "Identifier", + "src": "52158:12:1" + } + ], + "id": 2842, + "name": "MemberAccess", + "src": "52158:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2833, + "type": "uint256", + "value": "index" + }, + "id": 2843, + "name": "Identifier", + "src": "52174:5:1" + } + ], + "id": 2844, + "name": "FunctionCall", + "src": "52158:22:1" + } + ], + "id": 2845, + "name": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2838 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2840, + "type": "uint256", + "value": "tokenId" + }, + "id": 2846, + "name": "Identifier", + "src": "52197:7:1" + } + ], + "id": 2847, + "name": "Return", + "src": "52190:14:1" + } + ], + "id": 2848, + "name": "Block", + "src": "52126:85:1" + } + ], + "id": 2849, + "name": "FunctionDefinition", + "src": "52042:169:1" + }, + { + "attributes": { + "baseFunctions": [ + 616 + ], + "functionSelector": "095ea7b3", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-approve}." + }, + "id": 2850, + "name": "StructuredDocumentation", + "src": "52217:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2856, + "name": "OverrideSpecifier", + "src": "52329:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2851, + "name": "ElementaryTypeName", + "src": "52285:7:1" + } + ], + "id": 2852, + "name": "VariableDeclaration", + "src": "52285:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2853, + "name": "ElementaryTypeName", + "src": "52297:7:1" + } + ], + "id": 2854, + "name": "VariableDeclaration", + "src": "52297:15:1" + } + ], + "id": 2855, + "name": "ParameterList", + "src": "52284:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2857, + "name": "ParameterList", + "src": "52338:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2859 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2892, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2858, + "name": "ElementaryTypeName", + "src": "52348:7:1" + } + ], + "id": 2859, + "name": "VariableDeclaration", + "src": "52348:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2860, + "name": "Identifier", + "src": "52364:6:1" + } + ], + "id": 2861, + "name": "MemberAccess", + "src": "52364:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2862, + "name": "Identifier", + "src": "52379:7:1" + } + ], + "id": 2863, + "name": "FunctionCall", + "src": "52364:23:1" + } + ], + "id": 2864, + "name": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2865, + "name": "Identifier", + "src": "52397:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2866, + "name": "Identifier", + "src": "52405:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2867, + "name": "Identifier", + "src": "52411:5:1" + } + ], + "id": 2868, + "name": "BinaryOperation", + "src": "52405:11:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approval to current owner\"", + "value": "ERC721: approval to current owner" + }, + "id": 2869, + "name": "Literal", + "src": "52418:35:1" + } + ], + "id": 2870, + "name": "FunctionCall", + "src": "52397:57:1" + } + ], + "id": 2871, + "name": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2872, + "name": "Identifier", + "src": "52465:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2873, + "name": "Identifier", + "src": "52473:10:1" + } + ], + "id": 2874, + "name": "FunctionCall", + "src": "52473:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2875, + "name": "Identifier", + "src": "52489:5:1" + } + ], + "id": 2876, + "name": "BinaryOperation", + "src": "52473:21:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2877, + "name": "Identifier", + "src": "52498:6:1" + } + ], + "id": 2878, + "name": "MemberAccess", + "src": "52498:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2879, + "name": "Identifier", + "src": "52522:5:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2880, + "name": "Identifier", + "src": "52529:10:1" + } + ], + "id": 2881, + "name": "FunctionCall", + "src": "52529:12:1" + } + ], + "id": 2882, + "name": "FunctionCall", + "src": "52498:44:1" + } + ], + "id": 2883, + "name": "BinaryOperation", + "src": "52473:69:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve caller is not owner nor approved for all\"", + "value": "ERC721: approve caller is not owner nor approved for all" + }, + "id": 2884, + "name": "Literal", + "src": "52556:58:1" + } + ], + "id": 2885, + "name": "FunctionCall", + "src": "52465:159:1" + } + ], + "id": 2886, + "name": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 2887, + "name": "Identifier", + "src": "52635:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2888, + "name": "Identifier", + "src": "52644:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2889, + "name": "Identifier", + "src": "52648:7:1" + } + ], + "id": 2890, + "name": "FunctionCall", + "src": "52635:21:1" + } + ], + "id": 2891, + "name": "ExpressionStatement", + "src": "52635:21:1" + } + ], + "id": 2892, + "name": "Block", + "src": "52338:325:1" + } + ], + "id": 2893, + "name": "FunctionDefinition", + "src": "52268:395:1" + }, + { + "attributes": { + "baseFunctions": [ + 624 + ], + "functionSelector": "081812fc", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-getApproved}." + }, + "id": 2894, + "name": "StructuredDocumentation", + "src": "52669:50:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2898, + "name": "OverrideSpecifier", + "src": "52782:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2895, + "name": "ElementaryTypeName", + "src": "52745:7:1" + } + ], + "id": 2896, + "name": "VariableDeclaration", + "src": "52745:15:1" + } + ], + "id": 2897, + "name": "ParameterList", + "src": "52744:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2899, + "name": "ElementaryTypeName", + "src": "52800:7:1" + } + ], + "id": 2900, + "name": "VariableDeclaration", + "src": "52800:7:1" + } + ], + "id": 2901, + "name": "ParameterList", + "src": "52799:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2902, + "name": "Identifier", + "src": "52819:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2903, + "name": "Identifier", + "src": "52827:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2904, + "name": "Identifier", + "src": "52835:7:1" + } + ], + "id": 2905, + "name": "FunctionCall", + "src": "52827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approved query for nonexistent token\"", + "value": "ERC721: approved query for nonexistent token" + }, + "id": 2906, + "name": "Literal", + "src": "52845:46:1" + } + ], + "id": 2907, + "name": "FunctionCall", + "src": "52819:73:1" + } + ], + "id": 2908, + "name": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "attributes": { + "functionReturnParameters": 2901 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 2909, + "name": "Identifier", + "src": "52910:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2910, + "name": "Identifier", + "src": "52926:7:1" + } + ], + "id": 2911, + "name": "IndexAccess", + "src": "52910:24:1" + } + ], + "id": 2912, + "name": "Return", + "src": "52903:31:1" + } + ], + "id": 2913, + "name": "Block", + "src": "52809:132:1" + } + ], + "id": 2914, + "name": "FunctionDefinition", + "src": "52724:217:1" + }, + { + "attributes": { + "baseFunctions": [ + 632 + ], + "functionSelector": "a22cb465", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "id": 2915, + "name": "StructuredDocumentation", + "src": "52947:56:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2921, + "name": "OverrideSpecifier", + "src": "53083:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2916, + "name": "ElementaryTypeName", + "src": "53035:7:1" + } + ], + "id": 2917, + "name": "VariableDeclaration", + "src": "53035:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "approved", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2918, + "name": "ElementaryTypeName", + "src": "53053:4:1" + } + ], + "id": 2919, + "name": "VariableDeclaration", + "src": "53053:13:1" + } + ], + "id": 2920, + "name": "ParameterList", + "src": "53034:33:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2922, + "name": "ParameterList", + "src": "53092:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2923, + "name": "Identifier", + "src": "53102:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2924, + "name": "Identifier", + "src": "53110:8:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2925, + "name": "Identifier", + "src": "53122:10:1" + } + ], + "id": 2926, + "name": "FunctionCall", + "src": "53122:12:1" + } + ], + "id": 2927, + "name": "BinaryOperation", + "src": "53110:24:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f766520746f2063616c6c6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve to caller\"", + "value": "ERC721: approve to caller" + }, + "id": 2928, + "name": "Literal", + "src": "53136:27:1" + } + ], + "id": 2929, + "name": "FunctionCall", + "src": "53102:62:1" + } + ], + "id": 2930, + "name": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2931, + "name": "Identifier", + "src": "53175:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2932, + "name": "Identifier", + "src": "53194:10:1" + } + ], + "id": 2933, + "name": "FunctionCall", + "src": "53194:12:1" + } + ], + "id": 2935, + "name": "IndexAccess", + "src": "53175:32:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2934, + "name": "Identifier", + "src": "53208:8:1" + } + ], + "id": 2936, + "name": "IndexAccess", + "src": "53175:42:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2937, + "name": "Identifier", + "src": "53220:8:1" + } + ], + "id": 2938, + "name": "Assignment", + "src": "53175:53:1" + } + ], + "id": 2939, + "name": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 572, + "type": "function (address,address,bool)", + "value": "ApprovalForAll" + }, + "id": 2940, + "name": "Identifier", + "src": "53243:14:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2941, + "name": "Identifier", + "src": "53258:10:1" + } + ], + "id": 2942, + "name": "FunctionCall", + "src": "53258:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2943, + "name": "Identifier", + "src": "53272:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2944, + "name": "Identifier", + "src": "53282:8:1" + } + ], + "id": 2945, + "name": "FunctionCall", + "src": "53243:48:1" + } + ], + "id": 2946, + "name": "EmitStatement", + "src": "53238:53:1" + } + ], + "id": 2947, + "name": "Block", + "src": "53092:206:1" + } + ], + "id": 2948, + "name": "FunctionDefinition", + "src": "53008:290:1" + }, + { + "attributes": { + "baseFunctions": [ + 642 + ], + "functionSelector": "e985e9c5", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "id": 2949, + "name": "StructuredDocumentation", + "src": "53304:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2955, + "name": "OverrideSpecifier", + "src": "53443:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2950, + "name": "ElementaryTypeName", + "src": "53390:7:1" + } + ], + "id": 2951, + "name": "VariableDeclaration", + "src": "53390:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2952, + "name": "ElementaryTypeName", + "src": "53405:7:1" + } + ], + "id": 2953, + "name": "VariableDeclaration", + "src": "53405:16:1" + } + ], + "id": 2954, + "name": "ParameterList", + "src": "53389:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2956, + "name": "ElementaryTypeName", + "src": "53461:4:1" + } + ], + "id": 2957, + "name": "VariableDeclaration", + "src": "53461:4:1" + } + ], + "id": 2958, + "name": "ParameterList", + "src": "53460:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2958 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2959, + "name": "Identifier", + "src": "53484:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2951, + "type": "address", + "value": "owner" + }, + "id": 2960, + "name": "Identifier", + "src": "53503:5:1" + } + ], + "id": 2961, + "name": "IndexAccess", + "src": "53484:25:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2953, + "type": "address", + "value": "operator" + }, + "id": 2962, + "name": "Identifier", + "src": "53510:8:1" + } + ], + "id": 2963, + "name": "IndexAccess", + "src": "53484:35:1" + } + ], + "id": 2964, + "name": "Return", + "src": "53477:42:1" + } + ], + "id": 2965, + "name": "Block", + "src": "53467:59:1" + } + ], + "id": 2966, + "name": "FunctionDefinition", + "src": "53364:162:1" + }, + { + "attributes": { + "baseFunctions": [ + 608 + ], + "functionSelector": "23b872dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-transferFrom}." + }, + "id": 2967, + "name": "StructuredDocumentation", + "src": "53532:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2975, + "name": "OverrideSpecifier", + "src": "53668:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2968, + "name": "ElementaryTypeName", + "src": "53610:7:1" + } + ], + "id": 2969, + "name": "VariableDeclaration", + "src": "53610:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2970, + "name": "ElementaryTypeName", + "src": "53624:7:1" + } + ], + "id": 2971, + "name": "VariableDeclaration", + "src": "53624:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2972, + "name": "ElementaryTypeName", + "src": "53636:7:1" + } + ], + "id": 2973, + "name": "VariableDeclaration", + "src": "53636:15:1" + } + ], + "id": 2974, + "name": "ParameterList", + "src": "53609:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2976, + "name": "ParameterList", + "src": "53677:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2977, + "name": "Identifier", + "src": "53739:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 2978, + "name": "Identifier", + "src": "53747:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2979, + "name": "Identifier", + "src": "53766:10:1" + } + ], + "id": 2980, + "name": "FunctionCall", + "src": "53766:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2981, + "name": "Identifier", + "src": "53780:7:1" + } + ], + "id": 2982, + "name": "FunctionCall", + "src": "53747:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 2983, + "name": "Literal", + "src": "53790:51:1" + } + ], + "id": 2984, + "name": "FunctionCall", + "src": "53739:103:1" + } + ], + "id": 2985, + "name": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 2986, + "name": "Identifier", + "src": "53853:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2969, + "type": "address", + "value": "from" + }, + "id": 2987, + "name": "Identifier", + "src": "53863:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2971, + "type": "address", + "value": "to" + }, + "id": 2988, + "name": "Identifier", + "src": "53869:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2989, + "name": "Identifier", + "src": "53873:7:1" + } + ], + "id": 2990, + "name": "FunctionCall", + "src": "53853:28:1" + } + ], + "id": 2991, + "name": "ExpressionStatement", + "src": "53853:28:1" + } + ], + "id": 2992, + "name": "Block", + "src": "53677:211:1" + } + ], + "id": 2993, + "name": "FunctionDefinition", + "src": "53588:300:1" + }, + { + "attributes": { + "baseFunctions": [ + 598 + ], + "functionSelector": "42842e0e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 2994, + "name": "StructuredDocumentation", + "src": "53894:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3002, + "name": "OverrideSpecifier", + "src": "54038:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2995, + "name": "ElementaryTypeName", + "src": "53980:7:1" + } + ], + "id": 2996, + "name": "VariableDeclaration", + "src": "53980:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2997, + "name": "ElementaryTypeName", + "src": "53994:7:1" + } + ], + "id": 2998, + "name": "VariableDeclaration", + "src": "53994:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2999, + "name": "ElementaryTypeName", + "src": "54006:7:1" + } + ], + "id": 3000, + "name": "VariableDeclaration", + "src": "54006:15:1" + } + ], + "id": 3001, + "name": "ParameterList", + "src": "53979:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3003, + "name": "ParameterList", + "src": "54047:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "type": "function (address,address,uint256,bytes memory)", + "value": "safeTransferFrom" + }, + "id": 3004, + "name": "Identifier", + "src": "54057:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2996, + "type": "address", + "value": "from" + }, + "id": 3005, + "name": "Identifier", + "src": "54074:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2998, + "type": "address", + "value": "to" + }, + "id": 3006, + "name": "Identifier", + "src": "54080:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3000, + "type": "uint256", + "value": "tokenId" + }, + "id": 3007, + "name": "Identifier", + "src": "54084:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3008, + "name": "Literal", + "src": "54093:2:1" + } + ], + "id": 3009, + "name": "FunctionCall", + "src": "54057:39:1" + } + ], + "id": 3010, + "name": "ExpressionStatement", + "src": "54057:39:1" + } + ], + "id": 3011, + "name": "Block", + "src": "54047:56:1" + } + ], + "id": 3012, + "name": "FunctionDefinition", + "src": "53954:149:1" + }, + { + "attributes": { + "baseFunctions": [ + 654 + ], + "functionSelector": "b88d4fde", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 3013, + "name": "StructuredDocumentation", + "src": "54109:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3023, + "name": "OverrideSpecifier", + "src": "54273:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3014, + "name": "ElementaryTypeName", + "src": "54195:7:1" + } + ], + "id": 3015, + "name": "VariableDeclaration", + "src": "54195:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3016, + "name": "ElementaryTypeName", + "src": "54209:7:1" + } + ], + "id": 3017, + "name": "VariableDeclaration", + "src": "54209:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3018, + "name": "ElementaryTypeName", + "src": "54221:7:1" + } + ], + "id": 3019, + "name": "VariableDeclaration", + "src": "54221:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3042, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3020, + "name": "ElementaryTypeName", + "src": "54238:5:1" + } + ], + "id": 3021, + "name": "VariableDeclaration", + "src": "54238:18:1" + } + ], + "id": 3022, + "name": "ParameterList", + "src": "54194:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3024, + "name": "ParameterList", + "src": "54282:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3025, + "name": "Identifier", + "src": "54292:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 3026, + "name": "Identifier", + "src": "54300:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3027, + "name": "Identifier", + "src": "54319:10:1" + } + ], + "id": 3028, + "name": "FunctionCall", + "src": "54319:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3029, + "name": "Identifier", + "src": "54333:7:1" + } + ], + "id": 3030, + "name": "FunctionCall", + "src": "54300:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 3031, + "name": "Literal", + "src": "54343:51:1" + } + ], + "id": 3032, + "name": "FunctionCall", + "src": "54292:103:1" + } + ], + "id": 3033, + "name": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3071, + "type": "function (address,address,uint256,bytes memory)", + "value": "_safeTransfer" + }, + "id": 3034, + "name": "Identifier", + "src": "54405:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3015, + "type": "address", + "value": "from" + }, + "id": 3035, + "name": "Identifier", + "src": "54419:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3017, + "type": "address", + "value": "to" + }, + "id": 3036, + "name": "Identifier", + "src": "54425:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3037, + "name": "Identifier", + "src": "54429:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3021, + "type": "bytes memory", + "value": "_data" + }, + "id": 3038, + "name": "Identifier", + "src": "54438:5:1" + } + ], + "id": 3039, + "name": "FunctionCall", + "src": "54405:39:1" + } + ], + "id": 3040, + "name": "ExpressionStatement", + "src": "54405:39:1" + } + ], + "id": 3041, + "name": "Block", + "src": "54282:169:1" + } + ], + "id": 3042, + "name": "FunctionDefinition", + "src": "54169:282:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3043, + "name": "StructuredDocumentation", + "src": "54457:851:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3044, + "name": "ElementaryTypeName", + "src": "55336:7:1" + } + ], + "id": 3045, + "name": "VariableDeclaration", + "src": "55336:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3046, + "name": "ElementaryTypeName", + "src": "55350:7:1" + } + ], + "id": 3047, + "name": "VariableDeclaration", + "src": "55350:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3048, + "name": "ElementaryTypeName", + "src": "55362:7:1" + } + ], + "id": 3049, + "name": "VariableDeclaration", + "src": "55362:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3071, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3050, + "name": "ElementaryTypeName", + "src": "55379:5:1" + } + ], + "id": 3051, + "name": "VariableDeclaration", + "src": "55379:18:1" + } + ], + "id": 3052, + "name": "ParameterList", + "src": "55335:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3053, + "name": "ParameterList", + "src": "55416:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 3054, + "name": "Identifier", + "src": "55426:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3055, + "name": "Identifier", + "src": "55436:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3056, + "name": "Identifier", + "src": "55442:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3057, + "name": "Identifier", + "src": "55446:7:1" + } + ], + "id": 3058, + "name": "FunctionCall", + "src": "55426:28:1" + } + ], + "id": 3059, + "name": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3060, + "name": "Identifier", + "src": "55464:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3061, + "name": "Identifier", + "src": "55472:22:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3062, + "name": "Identifier", + "src": "55495:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3063, + "name": "Identifier", + "src": "55501:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3064, + "name": "Identifier", + "src": "55505:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3051, + "type": "bytes memory", + "value": "_data" + }, + "id": 3065, + "name": "Identifier", + "src": "55514:5:1" + } + ], + "id": 3066, + "name": "FunctionCall", + "src": "55472:48:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3067, + "name": "Literal", + "src": "55522:52:1" + } + ], + "id": 3068, + "name": "FunctionCall", + "src": "55464:111:1" + } + ], + "id": 3069, + "name": "ExpressionStatement", + "src": "55464:111:1" + } + ], + "id": 3070, + "name": "Block", + "src": "55416:166:1" + } + ], + "id": 3071, + "name": "FunctionDefinition", + "src": "55313:269:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_exists", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3072, + "name": "StructuredDocumentation", + "src": "55588:292:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3073, + "name": "ElementaryTypeName", + "src": "55902:7:1" + } + ], + "id": 3074, + "name": "VariableDeclaration", + "src": "55902:15:1" + } + ], + "id": 3075, + "name": "ParameterList", + "src": "55901:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3076, + "name": "ElementaryTypeName", + "src": "55950:4:1" + } + ], + "id": 3077, + "name": "VariableDeclaration", + "src": "55950:4:1" + } + ], + "id": 3078, + "name": "ParameterList", + "src": "55949:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3078 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "contains", + "referencedDeclaration": 2326, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3079, + "name": "Identifier", + "src": "55973:12:1" + } + ], + "id": 3080, + "name": "MemberAccess", + "src": "55973:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3074, + "type": "uint256", + "value": "tokenId" + }, + "id": 3081, + "name": "Identifier", + "src": "55995:7:1" + } + ], + "id": 3082, + "name": "FunctionCall", + "src": "55973:30:1" + } + ], + "id": 3083, + "name": "Return", + "src": "55966:37:1" + } + ], + "id": 3084, + "name": "Block", + "src": "55956:54:1" + } + ], + "id": 3085, + "name": "FunctionDefinition", + "src": "55885:125:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_isApprovedOrOwner", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3086, + "name": "StructuredDocumentation", + "src": "56016:147:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "spender", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3087, + "name": "ElementaryTypeName", + "src": "56196:7:1" + } + ], + "id": 3088, + "name": "VariableDeclaration", + "src": "56196:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3089, + "name": "ElementaryTypeName", + "src": "56213:7:1" + } + ], + "id": 3090, + "name": "VariableDeclaration", + "src": "56213:15:1" + } + ], + "id": 3091, + "name": "ParameterList", + "src": "56195:34:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3092, + "name": "ElementaryTypeName", + "src": "56261:4:1" + } + ], + "id": 3093, + "name": "VariableDeclaration", + "src": "56261:4:1" + } + ], + "id": 3094, + "name": "ParameterList", + "src": "56260:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3095, + "name": "Identifier", + "src": "56277:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3096, + "name": "Identifier", + "src": "56285:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3097, + "name": "Identifier", + "src": "56293:7:1" + } + ], + "id": 3098, + "name": "FunctionCall", + "src": "56285:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: operator query for nonexistent token\"", + "value": "ERC721: operator query for nonexistent token" + }, + "id": 3099, + "name": "Literal", + "src": "56303:46:1" + } + ], + "id": 3100, + "name": "FunctionCall", + "src": "56277:73:1" + } + ], + "id": 3101, + "name": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "attributes": { + "assignments": [ + 3103 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3126, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3102, + "name": "ElementaryTypeName", + "src": "56360:7:1" + } + ], + "id": 3103, + "name": "VariableDeclaration", + "src": "56360:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3104, + "name": "Identifier", + "src": "56376:6:1" + } + ], + "id": 3105, + "name": "MemberAccess", + "src": "56376:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3106, + "name": "Identifier", + "src": "56391:7:1" + } + ], + "id": 3107, + "name": "FunctionCall", + "src": "56376:23:1" + } + ], + "id": 3108, + "name": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "attributes": { + "functionReturnParameters": 3094 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3109, + "name": "Identifier", + "src": "56417:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3110, + "name": "Identifier", + "src": "56428:5:1" + } + ], + "id": 3111, + "name": "BinaryOperation", + "src": "56417:16:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2914, + "type": "function (uint256) view returns (address)", + "value": "getApproved" + }, + "id": 3112, + "name": "Identifier", + "src": "56437:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3113, + "name": "Identifier", + "src": "56449:7:1" + } + ], + "id": 3114, + "name": "FunctionCall", + "src": "56437:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3115, + "name": "Identifier", + "src": "56461:7:1" + } + ], + "id": 3116, + "name": "BinaryOperation", + "src": "56437:31:1" + } + ], + "id": 3117, + "name": "BinaryOperation", + "src": "56417:51:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3118, + "name": "Identifier", + "src": "56472:6:1" + } + ], + "id": 3119, + "name": "MemberAccess", + "src": "56472:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3120, + "name": "Identifier", + "src": "56496:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3121, + "name": "Identifier", + "src": "56503:7:1" + } + ], + "id": 3122, + "name": "FunctionCall", + "src": "56472:39:1" + } + ], + "id": 3123, + "name": "BinaryOperation", + "src": "56417:94:1" + } + ], + "id": 3124, + "name": "TupleExpression", + "src": "56416:96:1" + } + ], + "id": 3125, + "name": "Return", + "src": "56409:103:1" + } + ], + "id": 3126, + "name": "Block", + "src": "56267:252:1" + } + ], + "id": 3127, + "name": "FunctionDefinition", + "src": "56168:351:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3128, + "name": "StructuredDocumentation", + "src": "56525:320:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3129, + "name": "ElementaryTypeName", + "src": "56869:7:1" + } + ], + "id": 3130, + "name": "VariableDeclaration", + "src": "56869:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3131, + "name": "ElementaryTypeName", + "src": "56881:7:1" + } + ], + "id": 3132, + "name": "VariableDeclaration", + "src": "56881:15:1" + } + ], + "id": 3133, + "name": "ParameterList", + "src": "56868:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3134, + "name": "ParameterList", + "src": "56915:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "type": "function (address,uint256,bytes memory)", + "value": "_safeMint" + }, + "id": 3135, + "name": "Identifier", + "src": "56925:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3130, + "type": "address", + "value": "to" + }, + "id": 3136, + "name": "Identifier", + "src": "56935:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3132, + "type": "uint256", + "value": "tokenId" + }, + "id": 3137, + "name": "Identifier", + "src": "56939:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3138, + "name": "Literal", + "src": "56948:2:1" + } + ], + "id": 3139, + "name": "FunctionCall", + "src": "56925:26:1" + } + ], + "id": 3140, + "name": "ExpressionStatement", + "src": "56925:26:1" + } + ], + "id": 3141, + "name": "Block", + "src": "56915:43:1" + } + ], + "id": 3142, + "name": "FunctionDefinition", + "src": "56850:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3143, + "name": "StructuredDocumentation", + "src": "56964:210:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3144, + "name": "ElementaryTypeName", + "src": "57198:7:1" + } + ], + "id": 3145, + "name": "VariableDeclaration", + "src": "57198:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3146, + "name": "ElementaryTypeName", + "src": "57210:7:1" + } + ], + "id": 3147, + "name": "VariableDeclaration", + "src": "57210:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3171, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3148, + "name": "ElementaryTypeName", + "src": "57227:5:1" + } + ], + "id": 3149, + "name": "VariableDeclaration", + "src": "57227:18:1" + } + ], + "id": 3150, + "name": "ParameterList", + "src": "57197:49:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3151, + "name": "ParameterList", + "src": "57264:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3230, + "type": "function (address,uint256)", + "value": "_mint" + }, + "id": 3152, + "name": "Identifier", + "src": "57274:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3153, + "name": "Identifier", + "src": "57280:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3154, + "name": "Identifier", + "src": "57284:7:1" + } + ], + "id": 3155, + "name": "FunctionCall", + "src": "57274:18:1" + } + ], + "id": 3156, + "name": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3157, + "name": "Identifier", + "src": "57302:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3158, + "name": "Identifier", + "src": "57310:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3159, + "name": "ElementaryTypeName", + "src": "57333:7:1" + } + ], + "id": 3160, + "name": "ElementaryTypeNameExpression", + "src": "57333:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3161, + "name": "Literal", + "src": "57341:1:1" + } + ], + "id": 3162, + "name": "FunctionCall", + "src": "57333:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3163, + "name": "Identifier", + "src": "57345:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3164, + "name": "Identifier", + "src": "57349:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3149, + "type": "bytes memory", + "value": "_data" + }, + "id": 3165, + "name": "Identifier", + "src": "57358:5:1" + } + ], + "id": 3166, + "name": "FunctionCall", + "src": "57310:54:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3167, + "name": "Literal", + "src": "57366:52:1" + } + ], + "id": 3168, + "name": "FunctionCall", + "src": "57302:117:1" + } + ], + "id": 3169, + "name": "ExpressionStatement", + "src": "57302:117:1" + } + ], + "id": 3170, + "name": "Block", + "src": "57264:162:1" + } + ], + "id": 3171, + "name": "FunctionDefinition", + "src": "57179:247:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_mint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3172, + "name": "StructuredDocumentation", + "src": "57432:311:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3173, + "name": "ElementaryTypeName", + "src": "57763:7:1" + } + ], + "id": 3174, + "name": "VariableDeclaration", + "src": "57763:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3175, + "name": "ElementaryTypeName", + "src": "57775:7:1" + } + ], + "id": 3176, + "name": "VariableDeclaration", + "src": "57775:15:1" + } + ], + "id": 3177, + "name": "ParameterList", + "src": "57762:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3178, + "name": "ParameterList", + "src": "57809:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3179, + "name": "Identifier", + "src": "57819:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3180, + "name": "Identifier", + "src": "57827:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3181, + "name": "ElementaryTypeName", + "src": "57833:7:1" + } + ], + "id": 3182, + "name": "ElementaryTypeNameExpression", + "src": "57833:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3183, + "name": "Literal", + "src": "57841:1:1" + } + ], + "id": 3184, + "name": "FunctionCall", + "src": "57833:10:1" + } + ], + "id": 3185, + "name": "BinaryOperation", + "src": "57827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: mint to the zero address\"", + "value": "ERC721: mint to the zero address" + }, + "id": 3186, + "name": "Literal", + "src": "57845:34:1" + } + ], + "id": 3187, + "name": "FunctionCall", + "src": "57819:61:1" + } + ], + "id": 3188, + "name": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3189, + "name": "Identifier", + "src": "57890:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3190, + "name": "Identifier", + "src": "57899:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3191, + "name": "Identifier", + "src": "57907:7:1" + } + ], + "id": 3192, + "name": "FunctionCall", + "src": "57899:16:1" + } + ], + "id": 3193, + "name": "UnaryOperation", + "src": "57898:17:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: token already minted\"", + "value": "ERC721: token already minted" + }, + "id": 3194, + "name": "Literal", + "src": "57917:30:1" + } + ], + "id": 3195, + "name": "FunctionCall", + "src": "57890:58:1" + } + ], + "id": 3196, + "name": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3197, + "name": "Identifier", + "src": "57959:20:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3198, + "name": "ElementaryTypeName", + "src": "57980:7:1" + } + ], + "id": 3199, + "name": "ElementaryTypeNameExpression", + "src": "57980:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3200, + "name": "Literal", + "src": "57988:1:1" + } + ], + "id": 3201, + "name": "FunctionCall", + "src": "57980:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3202, + "name": "Identifier", + "src": "57992:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3203, + "name": "Identifier", + "src": "57996:7:1" + } + ], + "id": 3204, + "name": "FunctionCall", + "src": "57959:45:1" + } + ], + "id": 3205, + "name": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3206, + "name": "Identifier", + "src": "58015:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3207, + "name": "Identifier", + "src": "58029:2:1" + } + ], + "id": 3208, + "name": "IndexAccess", + "src": "58015:17:1" + } + ], + "id": 3209, + "name": "MemberAccess", + "src": "58015:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3210, + "name": "Identifier", + "src": "58037:7:1" + } + ], + "id": 3211, + "name": "FunctionCall", + "src": "58015:30:1" + } + ], + "id": 3212, + "name": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3213, + "name": "Identifier", + "src": "58056:12:1" + } + ], + "id": 3215, + "name": "MemberAccess", + "src": "58056:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3216, + "name": "Identifier", + "src": "58073:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3217, + "name": "Identifier", + "src": "58082:2:1" + } + ], + "id": 3218, + "name": "FunctionCall", + "src": "58056:29:1" + } + ], + "id": 3219, + "name": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3220, + "name": "Identifier", + "src": "58101:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3221, + "name": "ElementaryTypeName", + "src": "58110:7:1" + } + ], + "id": 3222, + "name": "ElementaryTypeNameExpression", + "src": "58110:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3223, + "name": "Literal", + "src": "58118:1:1" + } + ], + "id": 3224, + "name": "FunctionCall", + "src": "58110:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3225, + "name": "Identifier", + "src": "58122:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3226, + "name": "Identifier", + "src": "58126:7:1" + } + ], + "id": 3227, + "name": "FunctionCall", + "src": "58101:33:1" + } + ], + "id": 3228, + "name": "EmitStatement", + "src": "58096:38:1" + } + ], + "id": 3229, + "name": "Block", + "src": "57809:332:1" + } + ], + "id": 3230, + "name": "FunctionDefinition", + "src": "57748:393:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_burn", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3231, + "name": "StructuredDocumentation", + "src": "58147:206:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3299, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3232, + "name": "ElementaryTypeName", + "src": "58373:7:1" + } + ], + "id": 3233, + "name": "VariableDeclaration", + "src": "58373:15:1" + } + ], + "id": 3234, + "name": "ParameterList", + "src": "58372:17:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3235, + "name": "ParameterList", + "src": "58407:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 3237 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3298, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3236, + "name": "ElementaryTypeName", + "src": "58417:7:1" + } + ], + "id": 3237, + "name": "VariableDeclaration", + "src": "58417:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3238, + "name": "Identifier", + "src": "58433:6:1" + } + ], + "id": 3239, + "name": "MemberAccess", + "src": "58433:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3240, + "name": "Identifier", + "src": "58448:7:1" + } + ], + "id": 3241, + "name": "FunctionCall", + "src": "58433:23:1" + } + ], + "id": 3242, + "name": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3243, + "name": "Identifier", + "src": "58485:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3244, + "name": "Identifier", + "src": "58506:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3245, + "name": "ElementaryTypeName", + "src": "58513:7:1" + } + ], + "id": 3246, + "name": "ElementaryTypeNameExpression", + "src": "58513:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3247, + "name": "Literal", + "src": "58521:1:1" + } + ], + "id": 3248, + "name": "FunctionCall", + "src": "58513:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3249, + "name": "Identifier", + "src": "58525:7:1" + } + ], + "id": 3250, + "name": "FunctionCall", + "src": "58485:48:1" + } + ], + "id": 3251, + "name": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3252, + "name": "Identifier", + "src": "58571:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3253, + "name": "ElementaryTypeName", + "src": "58580:7:1" + } + ], + "id": 3254, + "name": "ElementaryTypeNameExpression", + "src": "58580:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3255, + "name": "Literal", + "src": "58588:1:1" + } + ], + "id": 3256, + "name": "FunctionCall", + "src": "58580:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3257, + "name": "Identifier", + "src": "58592:7:1" + } + ], + "id": 3258, + "name": "FunctionCall", + "src": "58571:29:1" + } + ], + "id": 3259, + "name": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes storage pointer", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 3260, + "name": "ElementaryTypeName", + "src": "58650:5:1" + } + ], + "id": 3261, + "name": "ElementaryTypeNameExpression", + "src": "58650:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3262, + "name": "Identifier", + "src": "58656:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3263, + "name": "Identifier", + "src": "58667:7:1" + } + ], + "id": 3264, + "name": "IndexAccess", + "src": "58656:19:1" + } + ], + "id": 3265, + "name": "FunctionCall", + "src": "58650:26:1" + } + ], + "id": 3266, + "name": "MemberAccess", + "src": "58650:33:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3267, + "name": "Literal", + "src": "58687:1:1" + } + ], + "id": 3268, + "name": "BinaryOperation", + "src": "58650:38:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3269, + "name": "Identifier", + "src": "58711:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3270, + "name": "Identifier", + "src": "58722:7:1" + } + ], + "id": 3271, + "name": "IndexAccess", + "src": "58711:19:1" + } + ], + "id": 3272, + "name": "UnaryOperation", + "src": "58704:26:1" + } + ], + "id": 3273, + "name": "ExpressionStatement", + "src": "58704:26:1" + } + ], + "id": 3274, + "name": "Block", + "src": "58690:51:1" + } + ], + "id": 3275, + "name": "IfStatement", + "src": "58646:95:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3276, + "name": "Identifier", + "src": "58751:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3277, + "name": "Identifier", + "src": "58765:5:1" + } + ], + "id": 3278, + "name": "IndexAccess", + "src": "58751:20:1" + } + ], + "id": 3279, + "name": "MemberAccess", + "src": "58751:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3280, + "name": "Identifier", + "src": "58779:7:1" + } + ], + "id": 3281, + "name": "FunctionCall", + "src": "58751:36:1" + } + ], + "id": 3282, + "name": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 2306, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3283, + "name": "Identifier", + "src": "58798:12:1" + } + ], + "id": 3285, + "name": "MemberAccess", + "src": "58798:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3286, + "name": "Identifier", + "src": "58818:7:1" + } + ], + "id": 3287, + "name": "FunctionCall", + "src": "58798:28:1" + } + ], + "id": 3288, + "name": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3289, + "name": "Identifier", + "src": "58842:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3290, + "name": "Identifier", + "src": "58851:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3291, + "name": "ElementaryTypeName", + "src": "58858:7:1" + } + ], + "id": 3292, + "name": "ElementaryTypeNameExpression", + "src": "58858:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3293, + "name": "Literal", + "src": "58866:1:1" + } + ], + "id": 3294, + "name": "FunctionCall", + "src": "58858:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3295, + "name": "Identifier", + "src": "58870:7:1" + } + ], + "id": 3296, + "name": "FunctionCall", + "src": "58842:36:1" + } + ], + "id": 3297, + "name": "EmitStatement", + "src": "58837:41:1" + } + ], + "id": 3298, + "name": "Block", + "src": "58407:478:1" + } + ], + "id": 3299, + "name": "FunctionDefinition", + "src": "58358:527:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_transfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3300, + "name": "StructuredDocumentation", + "src": "58891:313:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3301, + "name": "ElementaryTypeName", + "src": "59228:7:1" + } + ], + "id": 3302, + "name": "VariableDeclaration", + "src": "59228:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3303, + "name": "ElementaryTypeName", + "src": "59242:7:1" + } + ], + "id": 3304, + "name": "VariableDeclaration", + "src": "59242:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3305, + "name": "ElementaryTypeName", + "src": "59254:7:1" + } + ], + "id": 3306, + "name": "VariableDeclaration", + "src": "59254:15:1" + } + ], + "id": 3307, + "name": "ParameterList", + "src": "59227:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3308, + "name": "ParameterList", + "src": "59288:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3309, + "name": "Identifier", + "src": "59298:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3310, + "name": "Identifier", + "src": "59306:6:1" + } + ], + "id": 3311, + "name": "MemberAccess", + "src": "59306:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3312, + "name": "Identifier", + "src": "59321:7:1" + } + ], + "id": 3313, + "name": "FunctionCall", + "src": "59306:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3314, + "name": "Identifier", + "src": "59333:4:1" + } + ], + "id": 3315, + "name": "BinaryOperation", + "src": "59306:31:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer of token that is not own\"", + "value": "ERC721: transfer of token that is not own" + }, + "id": 3316, + "name": "Literal", + "src": "59339:43:1" + } + ], + "id": 3317, + "name": "FunctionCall", + "src": "59298:85:1" + } + ], + "id": 3318, + "name": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3319, + "name": "Identifier", + "src": "59411:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3320, + "name": "Identifier", + "src": "59419:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3321, + "name": "ElementaryTypeName", + "src": "59425:7:1" + } + ], + "id": 3322, + "name": "ElementaryTypeNameExpression", + "src": "59425:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3323, + "name": "Literal", + "src": "59433:1:1" + } + ], + "id": 3324, + "name": "FunctionCall", + "src": "59425:10:1" + } + ], + "id": 3325, + "name": "BinaryOperation", + "src": "59419:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to the zero address\"", + "value": "ERC721: transfer to the zero address" + }, + "id": 3326, + "name": "Literal", + "src": "59437:38:1" + } + ], + "id": 3327, + "name": "FunctionCall", + "src": "59411:65:1" + } + ], + "id": 3328, + "name": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3329, + "name": "Identifier", + "src": "59487:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3330, + "name": "Identifier", + "src": "59508:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3331, + "name": "Identifier", + "src": "59514:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3332, + "name": "Identifier", + "src": "59518:7:1" + } + ], + "id": 3333, + "name": "FunctionCall", + "src": "59487:39:1" + } + ], + "id": 3334, + "name": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3335, + "name": "Identifier", + "src": "59588:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3336, + "name": "ElementaryTypeName", + "src": "59597:7:1" + } + ], + "id": 3337, + "name": "ElementaryTypeNameExpression", + "src": "59597:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3338, + "name": "Literal", + "src": "59605:1:1" + } + ], + "id": 3339, + "name": "FunctionCall", + "src": "59597:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3340, + "name": "Identifier", + "src": "59609:7:1" + } + ], + "id": 3341, + "name": "FunctionCall", + "src": "59588:29:1" + } + ], + "id": 3342, + "name": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3343, + "name": "Identifier", + "src": "59628:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3344, + "name": "Identifier", + "src": "59642:4:1" + } + ], + "id": 3345, + "name": "IndexAccess", + "src": "59628:19:1" + } + ], + "id": 3346, + "name": "MemberAccess", + "src": "59628:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3347, + "name": "Identifier", + "src": "59655:7:1" + } + ], + "id": 3348, + "name": "FunctionCall", + "src": "59628:35:1" + } + ], + "id": 3349, + "name": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3350, + "name": "Identifier", + "src": "59673:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3351, + "name": "Identifier", + "src": "59687:2:1" + } + ], + "id": 3352, + "name": "IndexAccess", + "src": "59673:17:1" + } + ], + "id": 3353, + "name": "MemberAccess", + "src": "59673:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3354, + "name": "Identifier", + "src": "59695:7:1" + } + ], + "id": 3355, + "name": "FunctionCall", + "src": "59673:30:1" + } + ], + "id": 3356, + "name": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3357, + "name": "Identifier", + "src": "59714:12:1" + } + ], + "id": 3359, + "name": "MemberAccess", + "src": "59714:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3360, + "name": "Identifier", + "src": "59731:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3361, + "name": "Identifier", + "src": "59740:2:1" + } + ], + "id": 3362, + "name": "FunctionCall", + "src": "59714:29:1" + } + ], + "id": 3363, + "name": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3364, + "name": "Identifier", + "src": "59759:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3365, + "name": "Identifier", + "src": "59768:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3366, + "name": "Identifier", + "src": "59774:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3367, + "name": "Identifier", + "src": "59778:7:1" + } + ], + "id": 3368, + "name": "FunctionCall", + "src": "59759:27:1" + } + ], + "id": 3369, + "name": "EmitStatement", + "src": "59754:32:1" + } + ], + "id": 3370, + "name": "Block", + "src": "59288:505:1" + } + ], + "id": 3371, + "name": "FunctionDefinition", + "src": "59209:584:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setTokenURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3372, + "name": "StructuredDocumentation", + "src": "59799:136:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3393, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3373, + "name": "ElementaryTypeName", + "src": "59962:7:1" + } + ], + "id": 3374, + "name": "VariableDeclaration", + "src": "59962:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 3393, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3375, + "name": "ElementaryTypeName", + "src": "59979:6:1" + } + ], + "id": 3376, + "name": "VariableDeclaration", + "src": "59979:23:1" + } + ], + "id": 3377, + "name": "ParameterList", + "src": "59961:42:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3378, + "name": "ParameterList", + "src": "60021:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3379, + "name": "Identifier", + "src": "60031:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3380, + "name": "Identifier", + "src": "60039:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3381, + "name": "Identifier", + "src": "60047:7:1" + } + ], + "id": 3382, + "name": "FunctionCall", + "src": "60039:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI set of nonexistent token\"", + "value": "ERC721Metadata: URI set of nonexistent token" + }, + "id": 3383, + "name": "Literal", + "src": "60057:46:1" + } + ], + "id": 3384, + "name": "FunctionCall", + "src": "60031:73:1" + } + ], + "id": 3385, + "name": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3386, + "name": "Identifier", + "src": "60114:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3387, + "name": "Identifier", + "src": "60125:7:1" + } + ], + "id": 3388, + "name": "IndexAccess", + "src": "60114:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3376, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 3389, + "name": "Identifier", + "src": "60136:9:1" + } + ], + "id": 3390, + "name": "Assignment", + "src": "60114:31:1" + } + ], + "id": 3391, + "name": "ExpressionStatement", + "src": "60114:31:1" + } + ], + "id": 3392, + "name": "Block", + "src": "60021:131:1" + } + ], + "id": 3393, + "name": "FunctionDefinition", + "src": "59940:212:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setBaseURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3394, + "name": "StructuredDocumentation", + "src": "60158:212:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "baseURI_", + "scope": 3404, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3395, + "name": "ElementaryTypeName", + "src": "60396:6:1" + } + ], + "id": 3396, + "name": "VariableDeclaration", + "src": "60396:22:1" + } + ], + "id": 3397, + "name": "ParameterList", + "src": "60395:24:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3398, + "name": "ParameterList", + "src": "60437:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 3399, + "name": "Identifier", + "src": "60447:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3396, + "type": "string memory", + "value": "baseURI_" + }, + "id": 3400, + "name": "Identifier", + "src": "60458:8:1" + } + ], + "id": 3401, + "name": "Assignment", + "src": "60447:19:1" + } + ], + "id": 3402, + "name": "ExpressionStatement", + "src": "60447:19:1" + } + ], + "id": 3403, + "name": "Block", + "src": "60437:36:1" + } + ], + "id": 3404, + "name": "FunctionDefinition", + "src": "60375:98:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_checkOnERC721Received", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3405, + "name": "StructuredDocumentation", + "src": "60479:542:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3406, + "name": "ElementaryTypeName", + "src": "61058:7:1" + } + ], + "id": 3407, + "name": "VariableDeclaration", + "src": "61058:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3408, + "name": "ElementaryTypeName", + "src": "61072:7:1" + } + ], + "id": 3409, + "name": "VariableDeclaration", + "src": "61072:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3410, + "name": "ElementaryTypeName", + "src": "61084:7:1" + } + ], + "id": 3411, + "name": "VariableDeclaration", + "src": "61084:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3462, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3412, + "name": "ElementaryTypeName", + "src": "61101:5:1" + } + ], + "id": 3413, + "name": "VariableDeclaration", + "src": "61101:18:1" + } + ], + "id": 3414, + "name": "ParameterList", + "src": "61057:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3415, + "name": "ElementaryTypeName", + "src": "61146:4:1" + } + ], + "id": 3416, + "name": "VariableDeclaration", + "src": "61146:4:1" + } + ], + "id": 3417, + "name": "ParameterList", + "src": "61145:6:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isContract", + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3418, + "name": "Identifier", + "src": "61171:2:1" + } + ], + "id": 3419, + "name": "MemberAccess", + "src": "61171:13:1" + } + ], + "id": 3420, + "name": "FunctionCall", + "src": "61171:15:1" + } + ], + "id": 3421, + "name": "UnaryOperation", + "src": "61170:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 3422, + "name": "Literal", + "src": "61209:4:1" + } + ], + "id": 3423, + "name": "Return", + "src": "61202:11:1" + } + ], + "id": 3424, + "name": "Block", + "src": "61188:36:1" + } + ], + "id": 3425, + "name": "IfStatement", + "src": "61166:58:1" + }, + { + "attributes": { + "assignments": [ + 3427 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 3461, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3426, + "name": "ElementaryTypeName", + "src": "61233:5:1" + } + ], + "id": 3427, + "name": "VariableDeclaration", + "src": "61233:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "functionCall", + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3428, + "name": "Identifier", + "src": "61259:2:1" + } + ], + "id": 3429, + "name": "MemberAccess", + "src": "61259:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodeWithSelector", + "type": "function (bytes4) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3430, + "name": "Identifier", + "src": "61275:3:1" + } + ], + "id": 3431, + "name": "MemberAccess", + "src": "61275:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "selector", + "type": "bytes4" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "onERC721Received", + "referencedDeclaration": 725, + "type": "function (address,address,uint256,bytes memory) external returns (bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "contract IERC721Receiver", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 726, + "type": "type(contract IERC721Receiver)", + "value": "IERC721Receiver" + }, + "id": 3432, + "name": "Identifier", + "src": "61311:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3433, + "name": "Identifier", + "src": "61327:2:1" + } + ], + "id": 3434, + "name": "FunctionCall", + "src": "61311:19:1" + } + ], + "id": 3435, + "name": "MemberAccess", + "src": "61311:36:1" + } + ], + "id": 3436, + "name": "MemberAccess", + "src": "61311:45:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3437, + "name": "Identifier", + "src": "61370:10:1" + } + ], + "id": 3438, + "name": "FunctionCall", + "src": "61370:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3407, + "type": "address", + "value": "from" + }, + "id": 3439, + "name": "Identifier", + "src": "61396:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3411, + "type": "uint256", + "value": "tokenId" + }, + "id": 3440, + "name": "Identifier", + "src": "61414:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3413, + "type": "bytes memory", + "value": "_data" + }, + "id": 3441, + "name": "Identifier", + "src": "61435:5:1" + } + ], + "id": 3442, + "name": "FunctionCall", + "src": "61275:175:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3443, + "name": "Literal", + "src": "61452:52:1" + } + ], + "id": 3444, + "name": "FunctionCall", + "src": "61259:246:1" + } + ], + "id": 3445, + "name": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "attributes": { + "assignments": [ + 3447 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "retval", + "scope": 3461, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 3446, + "name": "ElementaryTypeName", + "src": "61515:6:1" + } + ], + "id": 3447, + "name": "VariableDeclaration", + "src": "61515:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes4", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "decode", + "type": "function () pure" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3448, + "name": "Identifier", + "src": "61531:3:1" + } + ], + "id": 3449, + "name": "MemberAccess", + "src": "61531:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3427, + "type": "bytes memory", + "value": "returndata" + }, + "id": 3450, + "name": "Identifier", + "src": "61542:10:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "name": "bytes4" + }, + "id": 3451, + "name": "ElementaryTypeName", + "src": "61555:6:1" + } + ], + "id": 3452, + "name": "ElementaryTypeNameExpression", + "src": "61555:6:1" + } + ], + "id": 3453, + "name": "TupleExpression", + "src": "61554:8:1" + } + ], + "id": 3454, + "name": "FunctionCall", + "src": "61531:32:1" + } + ], + "id": 3455, + "name": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3447, + "type": "bytes4", + "value": "retval" + }, + "id": 3456, + "name": "Identifier", + "src": "61581:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2596, + "type": "bytes4", + "value": "_ERC721_RECEIVED" + }, + "id": 3457, + "name": "Identifier", + "src": "61591:16:1" + } + ], + "id": 3458, + "name": "BinaryOperation", + "src": "61581:26:1" + } + ], + "id": 3459, + "name": "TupleExpression", + "src": "61580:28:1" + } + ], + "id": 3460, + "name": "Return", + "src": "61573:35:1" + } + ], + "id": 3461, + "name": "Block", + "src": "61156:459:1" + } + ], + "id": 3462, + "name": "FunctionDefinition", + "src": "61026:589:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3463, + "name": "StructuredDocumentation", + "src": "61621:101:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3464, + "name": "ElementaryTypeName", + "src": "61745:7:1" + } + ], + "id": 3465, + "name": "VariableDeclaration", + "src": "61745:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3466, + "name": "ElementaryTypeName", + "src": "61757:7:1" + } + ], + "id": 3467, + "name": "VariableDeclaration", + "src": "61757:15:1" + } + ], + "id": 3468, + "name": "ParameterList", + "src": "61744:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3469, + "name": "ParameterList", + "src": "61791:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 3470, + "name": "Identifier", + "src": "61801:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3471, + "name": "Identifier", + "src": "61817:7:1" + } + ], + "id": 3472, + "name": "IndexAccess", + "src": "61801:24:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3473, + "name": "Identifier", + "src": "61828:2:1" + } + ], + "id": 3474, + "name": "Assignment", + "src": "61801:29:1" + } + ], + "id": 3475, + "name": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 563, + "type": "function (address,address,uint256)", + "value": "Approval" + }, + "id": 3476, + "name": "Identifier", + "src": "61845:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3477, + "name": "Identifier", + "src": "61854:6:1" + } + ], + "id": 3478, + "name": "MemberAccess", + "src": "61854:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3479, + "name": "Identifier", + "src": "61869:7:1" + } + ], + "id": 3480, + "name": "FunctionCall", + "src": "61854:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3481, + "name": "Identifier", + "src": "61879:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3482, + "name": "Identifier", + "src": "61883:7:1" + } + ], + "id": 3483, + "name": "FunctionCall", + "src": "61845:46:1" + } + ], + "id": 3484, + "name": "EmitStatement", + "src": "61840:51:1" + } + ], + "id": 3485, + "name": "Block", + "src": "61791:125:1" + } + ], + "id": 3486, + "name": "FunctionDefinition", + "src": "61727:189:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_beforeTokenTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3487, + "name": "StructuredDocumentation", + "src": "61922:585:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3488, + "name": "ElementaryTypeName", + "src": "62542:7:1" + } + ], + "id": 3489, + "name": "VariableDeclaration", + "src": "62542:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3490, + "name": "ElementaryTypeName", + "src": "62556:7:1" + } + ], + "id": 3491, + "name": "VariableDeclaration", + "src": "62556:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3492, + "name": "ElementaryTypeName", + "src": "62568:7:1" + } + ], + "id": 3493, + "name": "VariableDeclaration", + "src": "62568:15:1" + } + ], + "id": 3494, + "name": "ParameterList", + "src": "62541:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3495, + "name": "ParameterList", + "src": "62602:0:1" + }, + { + "attributes": { + "statements": [ + null + ] + }, + "children": [], + "id": 3496, + "name": "Block", + "src": "62602:3:1" + } + ], + "id": 3497, + "name": "FunctionDefinition", + "src": "62512:93:1" + } + ], + "id": 3498, + "name": "ContractDefinition", + "src": "46080:16527:1" + } + ], + "id": 3499, + "name": "SourceUnit", + "src": "84:62524:1" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-13T11:18:07.589Z", + "devdoc": { + "details": "Library for managing https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive types. Sets have the following properties: - Elements are added, removed, and checked for existence in constant time (O(1)). - Elements are enumerated in O(n). No guarantees are made on the ordering. ``` contract Example { // Add the library methods using EnumerableSet for EnumerableSet.AddressSet; // Declare a set state variable EnumerableSet.AddressSet private mySet; } ``` As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) and `uint256` (`UintSet`) are supported.", + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/abis/IERC165.json b/src/abis/IERC165.json new file mode 100644 index 0000000..583acf7 --- /dev/null +++ b/src/abis/IERC165.json @@ -0,0 +1,77582 @@ +{ + "contractName": "IERC165", + "abi": [ + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":\"IERC165\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":{\"keccak256\":\"0xac9220652f9879c5fb3116025d59e8fbf6c2c3d149aed9f617b88edd31402044\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48de100723de94a6590c6db5bae5098a93445194389c3f3eeb104c7239ef3044\",\"dweb:/ipfs/QmVHLEtfLqBqX7XQRHfLuuwtufRBFJFHfgY4zbFRpaZwXC\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "", + "deployedSourceMap": "", + "source": "// SPDX-License-Identifier: MIT\n\n// File: @openzeppelin/contracts/utils/Context.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\n\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Enumerable is IERC721 {\n\n /**\n * @dev Returns the total amount of tokens stored by the contract.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);\n\n /**\n * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n * Use along with {totalSupply} to enumerate all tokens.\n */\n function tokenByIndex(uint256 index) external view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\npragma solidity >=0.6.0 <0.8.0;\n\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts may inherit from this and call {_registerInterface} to declare\n * their support of an interface.\n */\nabstract contract ERC165 is IERC165 {\n /*\n * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7\n */\n bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;\n\n /**\n * @dev Mapping of interface ids to whether or not it's supported.\n */\n mapping(bytes4 => bool) private _supportedInterfaces;\n\n constructor () {\n // Derived contracts need only register support for their own interfaces,\n // we register support for ERC165 itself here\n _registerInterface(_INTERFACE_ID_ERC165);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n *\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return _supportedInterfaces[interfaceId];\n }\n\n /**\n * @dev Registers the contract as an implementer of the interface defined by\n * `interfaceId`. Support of the actual ERC165 interface is automatic and\n * registering its interface id is not required.\n *\n * See {IERC165-supportsInterface}.\n *\n * Requirements:\n *\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).\n */\n function _registerInterface(bytes4 interfaceId) internal virtual {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the substraction of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n return a - b;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) return 0;\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: division by zero\");\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: modulo by zero\");\n return a % b;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {trySub}.\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryDiv}.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting with custom message when dividing by zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryMod}.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a % b;\n }\n}\n\n// File: @openzeppelin/contracts/utils/Address.sol\npragma solidity >=0.6.2 <0.8.0;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n // solhint-disable-next-line no-inline-assembly\n assembly { size := extcodesize(account) }\n return size > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: value }(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.staticcall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableSet.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) { // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n bytes32 lastvalue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastvalue;\n // Update the index for the moved value\n set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n require(set._values.length > index, \"EnumerableSet: index out of bounds\");\n return set._values[index];\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableMap.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing an enumerable variant of Solidity's\n * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n * type.\n *\n * Maps have the following properties:\n *\n * - Entries are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Entries are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableMap for EnumerableMap.UintToAddressMap;\n *\n * // Declare a set state variable\n * EnumerableMap.UintToAddressMap private myMap;\n * }\n * ```\n *\n * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n * supported.\n */\nlibrary EnumerableMap {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Map type with\n // bytes32 keys and values.\n // The Map implementation uses private functions, and user-facing\n // implementations (such as Uint256ToAddressMap) are just wrappers around\n // the underlying Map.\n // This means that we can only create new EnumerableMaps for types that fit\n // in bytes32.\n\n struct MapEntry {\n bytes32 _key;\n bytes32 _value;\n }\n\n struct Map {\n // Storage of map keys and values\n MapEntry[] _entries;\n\n // Position of the entry defined by a key in the `entries` array, plus 1\n // because index 0 means a key is not in the map.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex == 0) { // Equivalent to !contains(map, key)\n map._entries.push(MapEntry({ _key: key, _value: value }));\n // The entry is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n map._indexes[key] = map._entries.length;\n return true;\n } else {\n map._entries[keyIndex - 1]._value = value;\n return false;\n }\n }\n\n /**\n * @dev Removes a key-value pair from a map. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function _remove(Map storage map, bytes32 key) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex != 0) { // Equivalent to contains(map, key)\n // To delete a key-value pair from the _entries array in O(1), we swap the entry to delete with the last one\n // in the array, and then remove the last entry (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = keyIndex - 1;\n uint256 lastIndex = map._entries.length - 1;\n\n // When the entry to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n MapEntry storage lastEntry = map._entries[lastIndex];\n\n // Move the last entry to the index where the entry to delete is\n map._entries[toDeleteIndex] = lastEntry;\n // Update the index for the moved entry\n map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved entry was stored\n map._entries.pop();\n\n // Delete the index for the deleted slot\n delete map._indexes[key];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function _contains(Map storage map, bytes32 key) private view returns (bool) {\n return map._indexes[key] != 0;\n }\n\n /**\n * @dev Returns the number of key-value pairs in the map. O(1).\n */\n function _length(Map storage map) private view returns (uint256) {\n return map._entries.length;\n }\n\n /**\n * @dev Returns the key-value pair stored at position `index` in the map. O(1).\n *\n * Note that there are no guarantees on the ordering of entries inside the\n * array, and it may change when more entries are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) {\n require(map._entries.length > index, \"EnumerableMap: index out of bounds\");\n\n MapEntry storage entry = map._entries[index];\n return (entry._key, entry._value);\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n */\n function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) {\n uint256 keyIndex = map._indexes[key];\n if (keyIndex == 0) return (false, 0); // Equivalent to contains(map, key)\n return (true, map._entries[keyIndex - 1]._value); // All indexes are 1-based\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function _get(Map storage map, bytes32 key) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, \"EnumerableMap: nonexistent key\"); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n /**\n * @dev Same as {_get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {_tryGet}.\n */\n function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n // UintToAddressMap\n\n struct UintToAddressMap {\n Map _inner;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) {\n return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {\n return _remove(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {\n return _contains(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns the number of elements in the map. O(1).\n */\n function length(UintToAddressMap storage map) internal view returns (uint256) {\n return _length(map._inner);\n }\n\n /**\n * @dev Returns the element stored at position `index` in the set. O(1).\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {\n (bytes32 key, bytes32 value) = _at(map._inner, index);\n return (uint256(key), address(uint160(uint256(value))));\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n *\n * _Available since v3.4._\n */\n function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) {\n (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key));\n return (success, address(uint160(uint256(value))));\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key)))));\n }\n\n /**\n * @dev Same as {get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryGet}.\n */\n function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage))));\n }\n}\n\n// File: @openzeppelin/contracts/utils/Strings.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n /**\n * @dev Converts a `uint256` to its ASCII `string` representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n uint256 index = digits - 1;\n temp = value;\n while (temp != 0) {\n buffer[index--] = bytes1(uint8(48 + temp % 10));\n temp /= 10;\n }\n return string(buffer);\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 Non-Fungible Token Standard basic implementation\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable {\n using SafeMath for uint256;\n using Address for address;\n using EnumerableSet for EnumerableSet.UintSet;\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n using Strings for uint256;\n\n // Equals to `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n // which can be also obtained as `IERC721Receiver(0).onERC721Received.selector`\n bytes4 private constant _ERC721_RECEIVED = 0x150b7a02;\n\n // Mapping from holder address to their (enumerable) set of owned tokens\n mapping (address => EnumerableSet.UintSet) private _holderTokens;\n\n // Enumerable mapping from token ids to their owners\n EnumerableMap.UintToAddressMap private _tokenOwners;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Optional mapping for token URIs\n mapping (uint256 => string) private _tokenURIs;\n\n // Base URI\n string private _baseURI;\n\n /*\n * bytes4(keccak256('balanceOf(address)')) == 0x70a08231\n * bytes4(keccak256('ownerOf(uint256)')) == 0x6352211e\n * bytes4(keccak256('approve(address,uint256)')) == 0x095ea7b3\n * bytes4(keccak256('getApproved(uint256)')) == 0x081812fc\n * bytes4(keccak256('setApprovalForAll(address,bool)')) == 0xa22cb465\n * bytes4(keccak256('isApprovedForAll(address,address)')) == 0xe985e9c5\n * bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde\n *\n * => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^\n * 0xa22cb465 ^ 0xe985e9c5 ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n /*\n * bytes4(keccak256('name()')) == 0x06fdde03\n * bytes4(keccak256('symbol()')) == 0x95d89b41\n * bytes4(keccak256('tokenURI(uint256)')) == 0xc87b56dd\n *\n * => 0x06fdde03 ^ 0x95d89b41 ^ 0xc87b56dd == 0x5b5e139f\n */\n bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f;\n\n /*\n * bytes4(keccak256('totalSupply()')) == 0x18160ddd\n * bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) == 0x2f745c59\n * bytes4(keccak256('tokenByIndex(uint256)')) == 0x4f6ccce7\n *\n * => 0x18160ddd ^ 0x2f745c59 ^ 0x4f6ccce7 == 0x780e9d63\n */\n bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor (string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n return _holderTokens[owner].length();\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n return _tokenOwners.get(tokenId, \"ERC721: owner query for nonexistent token\");\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).\n if (bytes(_tokenURI).length > 0) {\n return string(abi.encodePacked(base, _tokenURI));\n }\n // If there is a baseURI but no tokenURI, concatenate the tokenID to the baseURI.\n return string(abi.encodePacked(base, tokenId.toString()));\n }\n\n /**\n * @dev Returns the base URI set via {_setBaseURI}. This will be\n * automatically added as a prefix in {tokenURI} to each token's URI, or\n * to the token ID if no specific URI is set for that token ID.\n */\n function baseURI() public view virtual returns (string memory) {\n return _baseURI;\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\n return _holderTokens[owner].at(index);\n }\n\n /**\n * @dev See {IERC721Enumerable-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n // _tokenOwners are indexed by tokenIds, so .length() returns the number of tokenIds\n return _tokenOwners.length();\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenByIndex}.\n */\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\n (uint256 tokenId, ) = _tokenOwners.at(index);\n return tokenId;\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(_msgSender() == owner || ERC721.isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n require(operator != _msgSender(), \"ERC721: approve to caller\");\n\n _operatorApprovals[_msgSender()][operator] = approved;\n emit ApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n _safeTransfer(from, to, tokenId, _data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `_data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _tokenOwners.contains(tokenId);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || ERC721.isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n d*\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory _data) internal virtual {\n _mint(to, tokenId);\n require(_checkOnERC721Received(address(0), to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId);\n\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId); // internal owner\n\n _beforeTokenTransfer(owner, address(0), tokenId);\n\n // Clear approvals\n _approve(address(0), tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n\n _holderTokens[owner].remove(tokenId);\n\n _tokenOwners.remove(tokenId);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\"); // internal owner\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId);\n\n // Clear approvals from the previous owner\n _approve(address(0), tokenId);\n\n _holderTokens[from].remove(tokenId);\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = _tokenURI;\n }\n\n /**\n * @dev Internal function to set the base URI for all token IDs. It is\n * automatically added as a prefix to the value returned in {tokenURI},\n * or to the token ID if {tokenURI} is empty.\n */\n function _setBaseURI(string memory baseURI_) internal virtual {\n _baseURI = baseURI_;\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data)\n private returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n bytes memory returndata = to.functionCall(abi.encodeWithSelector(\n IERC721Receiver(to).onERC721Received.selector,\n _msgSender(),\n from,\n tokenId,\n _data\n ), \"ERC721: transfer to non ERC721Receiver implementer\");\n bytes4 retval = abi.decode(returndata, (bytes4));\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits an {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId); // internal owner\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n * transferred to `to`.\n * - When `from` is zero, `tokenId` will be minted for `to`.\n * - When `to` is zero, ``from``'s `tokenId` will be burned.\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual { }\n}\n", + "sourcePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "ast": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "id": 3499, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 509, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "84:31:1" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 530, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 517, + "nodeType": "Block", + "src": "719:34:1", + "statements": [ + { + "expression": { + "expression": { + "id": 514, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "736:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "736:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 513, + "id": 516, + "nodeType": "Return", + "src": "729:17:1" + } + ] + }, + "id": 518, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 510, + "nodeType": "ParameterList", + "parameters": [], + "src": "668:2:1" + }, + "returnParameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 518, + "src": "702:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "702:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "701:17:1" + }, + "scope": 530, + "src": "649:104:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 528, + "nodeType": "Block", + "src": "824:165:1", + "statements": [ + { + "expression": { + "id": 523, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "834:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 524, + "nodeType": "ExpressionStatement", + "src": "834:4:1" + }, + { + "expression": { + "expression": { + "id": 525, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "974:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "src": "974:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 522, + "id": 527, + "nodeType": "Return", + "src": "967:15:1" + } + ] + }, + "id": 529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 519, + "nodeType": "ParameterList", + "parameters": [], + "src": "776:2:1" + }, + "returnParameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "810:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 520, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "810:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "809:14:1" + }, + "scope": 530, + "src": "759:230:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "617:374:1" + }, + { + "id": 531, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1053:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 532, + "nodeType": "StructuredDocumentation", + "src": "1086:279:1", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 541, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 533, + "nodeType": "StructuredDocumentation", + "src": "1390:340:1", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 540, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1762:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 534, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1762:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1761:20:1" + }, + "returnParameters": { + "id": 539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1805:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1805:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1804:6:1" + }, + "scope": 541, + "src": "1735:76:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1366:447:1" + }, + { + "id": 542, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1873:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 544, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "1996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 545, + "nodeType": "InheritanceSpecifier", + "src": "1996:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "1907:67:1", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 655, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 546, + "nodeType": "StructuredDocumentation", + "src": "2010:88:1", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 554, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 548, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2118:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 550, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2140:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2140:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 552, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2160:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2117:67:1" + }, + "src": "2103:82:1" + }, + { + "anonymous": false, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "2191:94:1", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 563, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 557, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2305:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2305:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 559, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2328:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 561, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2354:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2354:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2304:74:1" + }, + "src": "2290:89:1" + }, + { + "anonymous": false, + "documentation": { + "id": 564, + "nodeType": "StructuredDocumentation", + "src": "2385:117:1", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 572, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 566, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2528:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2528:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2551:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2551:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 570, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2577:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 569, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2577:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2527:64:1" + }, + "src": "2507:85:1" + }, + { + "documentation": { + "id": 573, + "nodeType": "StructuredDocumentation", + "src": "2598:76:1", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2698:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 574, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2698:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2697:15:1" + }, + "returnParameters": { + "id": 579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2736:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2735:17:1" + }, + "scope": 655, + "src": "2679:74:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 581, + "nodeType": "StructuredDocumentation", + "src": "2759:131:1", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 588, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 583, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2912:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2912:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2911:17:1" + }, + "returnParameters": { + "id": 587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2952:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2951:15:1" + }, + "scope": 655, + "src": "2895:72:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 589, + "nodeType": "StructuredDocumentation", + "src": "2973:690:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 598, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 591, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3694:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3694:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3708:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3708:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3720:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3720:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3693:43:1" + }, + "returnParameters": { + "id": 597, + "nodeType": "ParameterList", + "parameters": [], + "src": "3745:0:1" + }, + "scope": 655, + "src": "3668:78:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 599, + "nodeType": "StructuredDocumentation", + "src": "3752:504:1", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 608, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 601, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4283:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4283:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 603, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4297:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 602, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4297:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4309:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4309:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4282:43:1" + }, + "returnParameters": { + "id": 607, + "nodeType": "ParameterList", + "parameters": [], + "src": "4334:0:1" + }, + "scope": 655, + "src": "4261:74:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 609, + "nodeType": "StructuredDocumentation", + "src": "4341:452:1", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 616, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 611, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4815:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4815:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4827:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4814:29:1" + }, + "returnParameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [], + "src": "4852:0:1" + }, + "scope": 655, + "src": "4798:55:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 617, + "nodeType": "StructuredDocumentation", + "src": "4859:139:1", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 619, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5024:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5024:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5023:17:1" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5064:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5064:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5063:18:1" + }, + "scope": 655, + "src": "5003:79:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 625, + "nodeType": "StructuredDocumentation", + "src": "5088:309:1", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 632, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5429:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5429:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5447:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 628, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5447:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5428:34:1" + }, + "returnParameters": { + "id": 631, + "nodeType": "ParameterList", + "parameters": [], + "src": "5471:0:1" + }, + "scope": 655, + "src": "5402:70:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 633, + "nodeType": "StructuredDocumentation", + "src": "5478:138:1", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 642, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5647:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5647:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5662:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5662:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5646:33:1" + }, + "returnParameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5703:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 639, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5703:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5702:6:1" + }, + "scope": 655, + "src": "5621:88:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 643, + "nodeType": "StructuredDocumentation", + "src": "5715:568:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 654, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6314:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6314:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6328:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6340:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6340:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6357:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 650, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6357:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6313:64:1" + }, + "returnParameters": { + "id": 653, + "nodeType": "ParameterList", + "parameters": [], + "src": "6386:0:1" + }, + "scope": 655, + "src": "6288:99:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1975:4414:1" + }, + { + "id": 656, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "6457:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 658, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "6654:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 659, + "nodeType": "InheritanceSpecifier", + "src": "6654:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 657, + "nodeType": "StructuredDocumentation", + "src": "6491:133:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 680, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 660, + "nodeType": "StructuredDocumentation", + "src": "6669:58:1", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 665, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [], + "src": "6745:2:1" + }, + "returnParameters": { + "id": 664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 663, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 665, + "src": "6771:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 662, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6771:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6770:15:1" + }, + "scope": 680, + "src": "6732:54:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 666, + "nodeType": "StructuredDocumentation", + "src": "6792:60:1", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 671, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 667, + "nodeType": "ParameterList", + "parameters": [], + "src": "6872:2:1" + }, + "returnParameters": { + "id": 670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 669, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "6898:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 668, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6897:15:1" + }, + "scope": 680, + "src": "6857:56:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 672, + "nodeType": "StructuredDocumentation", + "src": "6919:90:1", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 679, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7032:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7031:17:1" + }, + "returnParameters": { + "id": 678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7072:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 676, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7072:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7071:15:1" + }, + "scope": 680, + "src": "7014:73:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "6625:464:1" + }, + { + "id": 681, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "7161:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 683, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "7363:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 684, + "nodeType": "InheritanceSpecifier", + "src": "7363:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 682, + "nodeType": "StructuredDocumentation", + "src": "7195:136:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 709, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 685, + "nodeType": "StructuredDocumentation", + "src": "7378:82:1", + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "functionSelector": "18160ddd", + "id": 690, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 686, + "nodeType": "ParameterList", + "parameters": [], + "src": "7485:2:1" + }, + "returnParameters": { + "id": 689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 688, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "7511:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 687, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7511:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7510:9:1" + }, + "scope": 709, + "src": "7465:55:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "7526:171:1", + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "functionSelector": "2f745c59", + "id": 700, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7731:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7731:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7746:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7746:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7730:30:1" + }, + "returnParameters": { + "id": 699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 698, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7784:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7784:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7783:17:1" + }, + "scope": 709, + "src": "7702:99:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 701, + "nodeType": "StructuredDocumentation", + "src": "7807:164:1", + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "functionSelector": "4f6ccce7", + "id": 708, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 703, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "7998:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7998:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7997:15:1" + }, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "8036:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8036:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8035:9:1" + }, + "scope": 709, + "src": "7976:69:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "7332:715:1" + }, + { + "id": 710, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "8117:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 711, + "nodeType": "StructuredDocumentation", + "src": "8150:152:1", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 726, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 712, + "nodeType": "StructuredDocumentation", + "src": "8335:485:1", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 725, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8851:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8851:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8869:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8883:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8900:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 719, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8900:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8850:70:1" + }, + "returnParameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8939:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 722, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8939:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "8938:8:1" + }, + "scope": 726, + "src": "8825:122:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "8303:646:1" + }, + { + "id": 727, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9009:31:1" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 729, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "9243:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 730, + "nodeType": "InheritanceSpecifier", + "src": "9243:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "documentation": { + "id": 728, + "nodeType": "StructuredDocumentation", + "src": "9043:171:1", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "fullyImplemented": true, + "id": 781, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 733, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9340:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 731, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9340:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783031666663396137", + "id": 732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "9404:82:1", + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 738, + "mutability": "mutable", + "name": "_supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9491:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 737, + "keyType": { + "id": 735, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9499:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "9491:23:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 736, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9509:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 745, + "nodeType": "Block", + "src": "9565:193:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 742, + "name": "_INTERFACE_ID_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "9730:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 741, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "9711:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9711:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 744, + "nodeType": "ExpressionStatement", + "src": "9711:40:1" + } + ] + }, + "id": 746, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 739, + "nodeType": "ParameterList", + "parameters": [], + "src": "9562:2:1" + }, + "returnParameters": { + "id": 740, + "nodeType": "ParameterList", + "parameters": [], + "src": "9565:0:1" + }, + "scope": 781, + "src": "9550:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 540 + ], + "body": { + "id": 759, + "nodeType": "Block", + "src": "9999:57:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 755, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10016:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 757, + "indexExpression": { + "id": 756, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "10037:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10016:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 754, + "id": 758, + "nodeType": "Return", + "src": "10009:40:1" + } + ] + }, + "documentation": { + "id": 747, + "nodeType": "StructuredDocumentation", + "src": "9764:139:1", + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 760, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 751, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9975:8:1" + }, + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9935:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 748, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9935:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "9934:20:1" + }, + "returnParameters": { + "id": 754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 753, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9993:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9993:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9992:6:1" + }, + "scope": 781, + "src": "9908:148:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 779, + "nodeType": "Block", + "src": "10515:133:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 767, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10533:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10548:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "10533:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10560:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + }, + "value": "ERC165: invalid interface id" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "id": 766, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "10525:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10525:66:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 772, + "nodeType": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "expression": { + "id": 777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 773, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10601:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 775, + "indexExpression": { + "id": 774, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10622:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10637:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10601:40:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 778, + "nodeType": "ExpressionStatement", + "src": "10601:40:1" + } + ] + }, + "documentation": { + "id": 761, + "nodeType": "StructuredDocumentation", + "src": "10062:383:1", + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 780, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 763, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 780, + "src": "10478:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 762, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "10478:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "10477:20:1" + }, + "returnParameters": { + "id": 765, + "nodeType": "ParameterList", + "parameters": [], + "src": "10515:0:1" + }, + "scope": 781, + "src": "10450:198:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "9215:1435:1" + }, + { + "id": 782, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10703:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 783, + "nodeType": "StructuredDocumentation", + "src": "10736:563:1", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 1135, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 813, + "nodeType": "Block", + "src": "11535:98:1", + "statements": [ + { + "assignments": [ + 796 + ], + "declarations": [ + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 813, + "src": "11545:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 795, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 800, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 797, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11557:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "11561:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11557:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 801, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11576:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 802, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11580:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11576:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 808, + "nodeType": "IfStatement", + "src": "11572:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11591:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11598:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 806, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11590:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 794, + "id": 807, + "nodeType": "Return", + "src": "11583:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11618:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 810, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11624:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 811, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11617:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 794, + "id": 812, + "nodeType": "Return", + "src": "11610:16:1" + } + ] + }, + "documentation": { + "id": 784, + "nodeType": "StructuredDocumentation", + "src": "11323:131:1", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 814, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11475:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11475:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11486:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11486:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11474:22:1" + }, + "returnParameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 791, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11526:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 792, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11526:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11519:15:1" + }, + "scope": 1135, + "src": "11459:174:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 840, + "nodeType": "Block", + "src": "11855:75:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 826, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11869:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 827, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11873:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11869:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 833, + "nodeType": "IfStatement", + "src": "11865:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11884:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 831, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11883:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 825, + "id": 832, + "nodeType": "Return", + "src": "11876:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11911:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 835, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11917:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 836, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11921:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11917:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 838, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11910:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 825, + "id": 839, + "nodeType": "Return", + "src": "11903:20:1" + } + ] + }, + "documentation": { + "id": 815, + "nodeType": "StructuredDocumentation", + "src": "11639:135:1", + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 841, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 817, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11795:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11795:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 819, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11806:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11806:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11794:22:1" + }, + "returnParameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11840:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 821, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11840:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 824, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11846:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11846:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11839:15:1" + }, + "scope": 1135, + "src": "11779:151:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 881, + "nodeType": "Block", + "src": "12154:359:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 853, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12386:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12391:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12386:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 860, + "nodeType": "IfStatement", + "src": "12382:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12402:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12408:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 858, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12401:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 859, + "nodeType": "Return", + "src": "12394:16:1" + } + }, + { + "assignments": [ + 862 + ], + "declarations": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "12420:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12420:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 866, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12432:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 864, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12436:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12432:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 867, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12451:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 868, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12455:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 870, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12460:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 876, + "nodeType": "IfStatement", + "src": "12447:33:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12471:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12478:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 874, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12470:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 875, + "nodeType": "Return", + "src": "12463:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12498:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 878, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12504:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12497:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 852, + "id": 880, + "nodeType": "Return", + "src": "12490:16:1" + } + ] + }, + "documentation": { + "id": 842, + "nodeType": "StructuredDocumentation", + "src": "11936:137:1", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 844, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12094:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12094:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 846, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12105:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12093:22:1" + }, + "returnParameters": { + "id": 852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12139:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 848, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12139:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12145:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12145:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12138:15:1" + }, + "scope": 1135, + "src": "12078:435:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 908, + "nodeType": "Block", + "src": "12738:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 894, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12752:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12757:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12752:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 901, + "nodeType": "IfStatement", + "src": "12748:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12768:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12775:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 899, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12767:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 893, + "id": 900, + "nodeType": "Return", + "src": "12760:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12795:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 903, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "12801:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 904, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12805:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12801:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 906, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12794:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 893, + "id": 907, + "nodeType": "Return", + "src": "12787:20:1" + } + ] + }, + "documentation": { + "id": 883, + "nodeType": "StructuredDocumentation", + "src": "12519:138:1", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 909, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12678:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12678:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12689:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12689:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12677:22:1" + }, + "returnParameters": { + "id": 893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12723:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 889, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12723:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12729:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12729:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12722:15:1" + }, + "scope": 1135, + "src": "12662:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 935, + "nodeType": "Block", + "src": "13049:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 921, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13063:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13068:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13063:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 928, + "nodeType": "IfStatement", + "src": "13059:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13079:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13086:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 926, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13078:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 920, + "id": 927, + "nodeType": "Return", + "src": "13071:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13106:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 930, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "13112:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 931, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13116:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13112:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13105:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 920, + "id": 934, + "nodeType": "Return", + "src": "13098:20:1" + } + ] + }, + "documentation": { + "id": 910, + "nodeType": "StructuredDocumentation", + "src": "12820:148:1", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 912, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "12989:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12989:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 914, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13000:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 913, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13000:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12988:22:1" + }, + "returnParameters": { + "id": 920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 917, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13034:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 916, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13034:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 919, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13040:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13040:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13033:15:1" + }, + "scope": 1135, + "src": "12973:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 961, + "nodeType": "Block", + "src": "13427:108:1", + "statements": [ + { + "assignments": [ + 947 + ], + "declarations": [ + { + "constant": false, + "id": 947, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "13437:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13437:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 951, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13449:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 949, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 941, + "src": "13453:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13449:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 953, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13472:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 954, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13477:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13480:29:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 952, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13464:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 958, + "nodeType": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "expression": { + "id": 959, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13527:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 945, + "id": 960, + "nodeType": "Return", + "src": "13520:8:1" + } + ] + }, + "documentation": { + "id": 937, + "nodeType": "StructuredDocumentation", + "src": "13131:224:1", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13373:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13384:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13384:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13372:22:1" + }, + "returnParameters": { + "id": 945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13418:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13418:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13417:9:1" + }, + "scope": 1135, + "src": "13360:175:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 983, + "nodeType": "Block", + "src": "13873:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 973, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13896:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13891:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13883:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 979, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13949:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 980, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13953:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13949:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 971, + "id": 982, + "nodeType": "Return", + "src": "13942:12:1" + } + ] + }, + "documentation": { + "id": 963, + "nodeType": "StructuredDocumentation", + "src": "13541:260:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 984, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13819:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 964, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 967, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13830:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13830:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13818:22:1" + }, + "returnParameters": { + "id": 971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 970, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13864:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13864:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13863:9:1" + }, + "scope": 1135, + "src": "13806:155:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "14275:148:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 994, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14289:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14294:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14289:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "IfStatement", + "src": "14285:20:1", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14304:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 993, + "id": 998, + "nodeType": "Return", + "src": "14297:8:1" + } + }, + { + "assignments": [ + 1001 + ], + "declarations": [ + { + "constant": false, + "id": 1001, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "14315:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14315:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1005, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1002, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14327:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1003, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14331:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14327:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1007, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14350:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1008, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14354:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1010, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14359:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14362:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1006, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14342:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14342:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "expression": { + "id": 1015, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14415:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 993, + "id": 1016, + "nodeType": "Return", + "src": "14408:8:1" + } + ] + }, + "documentation": { + "id": 985, + "nodeType": "StructuredDocumentation", + "src": "13967:236:1", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14221:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 989, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14232:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 988, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14232:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14220:22:1" + }, + "returnParameters": { + "id": 993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 992, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14266:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14266:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14265:9:1" + }, + "scope": 1135, + "src": "14208:215:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1039, + "nodeType": "Block", + "src": "14954:83:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1029, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "14972:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14976:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14972:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14979:28:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14964:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14964:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1034, + "nodeType": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1035, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1021, + "src": "15025:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1036, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "15029:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15025:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1027, + "id": 1038, + "nodeType": "Return", + "src": "15018:12:1" + } + ] + }, + "documentation": { + "id": 1019, + "nodeType": "StructuredDocumentation", + "src": "14429:453:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1040, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1021, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14900:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14900:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1023, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14911:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14899:22:1" + }, + "returnParameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1026, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14945:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14945:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14944:9:1" + }, + "scope": 1135, + "src": "14887:150:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1061, + "nodeType": "Block", + "src": "15557:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1051, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15575:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15579:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15582:26:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 1050, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "15567:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15567:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1056, + "nodeType": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1057, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1043, + "src": "15626:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1058, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15630:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15626:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1049, + "id": 1060, + "nodeType": "Return", + "src": "15619:12:1" + } + ] + }, + "documentation": { + "id": 1041, + "nodeType": "StructuredDocumentation", + "src": "15043:442:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1062, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1043, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15503:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1045, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15514:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15502:22:1" + }, + "returnParameters": { + "id": 1049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1048, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15548:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15548:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15547:9:1" + }, + "scope": 1135, + "src": "15490:148:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1085, + "nodeType": "Block", + "src": "16197:68:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16215:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1076, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16220:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16215:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1078, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "16223:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1074, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "16207:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16207:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1080, + "nodeType": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16253:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1082, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16257:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16253:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1073, + "id": 1084, + "nodeType": "Return", + "src": "16246:12:1" + } + ] + }, + "documentation": { + "id": 1063, + "nodeType": "StructuredDocumentation", + "src": "15644:453:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1086, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16115:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16115:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16126:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16137:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1068, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16137:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16114:50:1" + }, + "returnParameters": { + "id": 1073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16188:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16188:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16187:9:1" + }, + "scope": 1135, + "src": "16102:163:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1109, + "nodeType": "Block", + "src": "17017:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1099, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17035:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17039:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17035:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1102, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1093, + "src": "17042:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17027:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17027:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1105, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "17072:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1106, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17076:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17072:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1097, + "id": 1108, + "nodeType": "Return", + "src": "17065:12:1" + } + ] + }, + "documentation": { + "id": 1087, + "nodeType": "StructuredDocumentation", + "src": "16271:646:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16935:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16935:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16946:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16946:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1093, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16957:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1092, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16957:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16934:50:1" + }, + "returnParameters": { + "id": 1097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1096, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "17008:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17008:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17007:9:1" + }, + "scope": 1135, + "src": "16922:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1133, + "nodeType": "Block", + "src": "17825:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1123, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17843:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17847:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17843:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1126, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "17850:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17835:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1128, + "nodeType": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1129, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "17880:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1130, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17880:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1121, + "id": 1132, + "nodeType": "Return", + "src": "17873:12:1" + } + ] + }, + "documentation": { + "id": 1111, + "nodeType": "StructuredDocumentation", + "src": "17090:635:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17743:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17743:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17754:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17754:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17765:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1116, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17765:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17742:50:1" + }, + "returnParameters": { + "id": 1121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17816:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17816:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17815:9:1" + }, + "scope": 1135, + "src": "17730:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "11300:6594:1" + }, + { + "id": 1136, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "17947:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1137, + "nodeType": "StructuredDocumentation", + "src": "17980:67:1", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 1430, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1153, + "nodeType": "Block", + "src": "18706:347:1", + "statements": [ + { + "assignments": [ + 1146 + ], + "declarations": [ + { + "constant": false, + "id": 1146, + "mutability": "mutable", + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 1153, + "src": "18903:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18903:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1147, + "nodeType": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "18990:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18992:28:1", + "value": { + "arguments": [ + { + "name": "account", + "nodeType": "YulIdentifier", + "src": "19012:7:1" + } + ], + "functionName": { + "name": "extcodesize", + "nodeType": "YulIdentifier", + "src": "19000:11:1" + }, + "nodeType": "YulFunctionCall", + "src": "19000:20:1" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "18992:4:1" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "id": 1148, + "nodeType": "InlineAssembly", + "src": "18981:41:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1149, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "19038:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19045:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19038:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1144, + "id": 1152, + "nodeType": "Return", + "src": "19031:15:1" + } + ] + }, + "documentation": { + "id": 1138, + "nodeType": "StructuredDocumentation", + "src": "18070:565:1", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1154, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1140, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18660:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18660:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18659:17:1" + }, + "returnParameters": { + "id": 1144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1143, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18700:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1142, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18700:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "18699:6:1" + }, + "scope": 1430, + "src": "18640:413:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1187, + "nodeType": "Block", + "src": "20041:320:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1165, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "20067:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20059:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1163, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20059:7:1", + "typeDescriptions": {} + } + }, + "id": 1166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20059:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "20059:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1168, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20084:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20059:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20092:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 1162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20051:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1172, + "nodeType": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "assignments": [ + 1174, + null + ], + "declarations": [ + { + "constant": false, + "id": 1174, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1187, + "src": "20213:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1173, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20213:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1181, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20263:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 1175, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1157, + "src": "20231:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "20231:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1177, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20254:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "20231:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20231:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1183, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "20284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20293:60:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 1182, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20276:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20276:78:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1186, + "nodeType": "ExpressionStatement", + "src": "20276:78:1" + } + ] + }, + "documentation": { + "id": 1155, + "nodeType": "StructuredDocumentation", + "src": "19059:906:1", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1188, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1157, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "19989:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19989:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1159, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "20016:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19988:43:1" + }, + "returnParameters": { + "id": 1161, + "nodeType": "ParameterList", + "parameters": [], + "src": "20041:0:1" + }, + "scope": 1430, + "src": "19970:391:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1204, + "nodeType": "Block", + "src": "21191:82:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1199, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "21219:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1200, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "21227:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21233:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 1198, + "name": "functionCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "src": "21206:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21206:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1197, + "id": 1203, + "nodeType": "Return", + "src": "21199:67:1" + } + ] + }, + "documentation": { + "id": 1189, + "nodeType": "StructuredDocumentation", + "src": "20367:730:1", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1205, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21124:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21124:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21140:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1192, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21140:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21123:35:1" + }, + "returnParameters": { + "id": 1197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1196, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21177:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1195, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21176:14:1" + }, + "scope": 1430, + "src": "21102:171:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1224, + "nodeType": "Block", + "src": "21612:76:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1218, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "21651:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1219, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "21659:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21665:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 1221, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "21668:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1217, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "21629:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21629:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1216, + "id": 1223, + "nodeType": "Return", + "src": "21622:59:1" + } + ] + }, + "documentation": { + "id": 1206, + "nodeType": "StructuredDocumentation", + "src": "21279:211:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1208, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21517:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21517:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21533:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1209, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21533:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1212, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21552:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1211, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "21552:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "21516:63:1" + }, + "returnParameters": { + "id": 1216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1215, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21598:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1214, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21598:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21597:14:1" + }, + "scope": 1430, + "src": "21495:193:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1244, + "nodeType": "Block", + "src": "22163:111:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1238, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "22202:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1239, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "22210:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1240, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1232, + "src": "22216:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22223:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 1237, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "22180:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22180:87:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1236, + "id": 1243, + "nodeType": "Return", + "src": "22173:94:1" + } + ] + }, + "documentation": { + "id": 1226, + "nodeType": "StructuredDocumentation", + "src": "21694:351:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1245, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1228, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22081:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22081:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1230, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22097:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1229, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22097:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1232, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22116:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "22080:50:1" + }, + "returnParameters": { + "id": 1236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1235, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22149:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1234, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22149:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22148:14:1" + }, + "scope": 1430, + "src": "22050:224:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1294, + "nodeType": "Block", + "src": "22663:382:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1262, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "22689:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22681:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22681:7:1", + "typeDescriptions": {} + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22681:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "22681:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1265, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22706:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22681:30:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 1267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22713:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 1259, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22673:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22673:81:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1269, + "nodeType": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1272, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22783:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1271, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "22772:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22772:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22792:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 1270, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22764:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22764:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1276, + "nodeType": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "assignments": [ + 1278, + 1280 + ], + "declarations": [ + { + "constant": false, + "id": 1278, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22895:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1277, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22895:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1280, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22909:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1279, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22909:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1287, + "initialValue": { + "arguments": [ + { + "id": 1285, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1250, + "src": "22964:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1281, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22936:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "22936:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1283, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22956:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "22936:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22936:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1289, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "23004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1290, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1280, + "src": "23013:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1291, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "23025:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1288, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "22986:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22986:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1258, + "id": 1293, + "nodeType": "Return", + "src": "22979:59:1" + } + ] + }, + "documentation": { + "id": 1246, + "nodeType": "StructuredDocumentation", + "src": "22280:237:1", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1295, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1248, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22553:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22553:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1250, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22569:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1249, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22569:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1252, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22588:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22588:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1254, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22603:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1253, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "22603:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "22552:78:1" + }, + "returnParameters": { + "id": 1258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1257, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22649:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1256, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22649:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22648:14:1" + }, + "scope": 1430, + "src": "22522:523:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1311, + "nodeType": "Block", + "src": "23322:97:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1306, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1298, + "src": "23358:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1307, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "23366:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23372:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 1305, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "src": "23339:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23339:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1304, + "id": 1310, + "nodeType": "Return", + "src": "23332:80:1" + } + ] + }, + "documentation": { + "id": 1296, + "nodeType": "StructuredDocumentation", + "src": "23051:166:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1298, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23250:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23250:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23266:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1299, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23266:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23249:35:1" + }, + "returnParameters": { + "id": 1304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1303, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23308:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23308:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23307:14:1" + }, + "scope": 1430, + "src": "23222:197:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1346, + "nodeType": "Block", + "src": "23731:288:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1326, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1325, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "23749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23749:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23769:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + }, + "value": "Address: static call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "id": 1324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "23741:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23741:67:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1330, + "nodeType": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "assignments": [ + 1332, + 1334 + ], + "declarations": [ + { + "constant": false, + "id": 1332, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23879:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1331, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23879:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1334, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23893:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1333, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23893:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1339, + "initialValue": { + "arguments": [ + { + "id": 1337, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "23938:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1335, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23920:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "23920:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23920:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1341, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "23978:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1342, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1334, + "src": "23987:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1343, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "23999:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1340, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "23960:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23960:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1323, + "id": 1345, + "nodeType": "Return", + "src": "23953:59:1" + } + ] + }, + "documentation": { + "id": 1313, + "nodeType": "StructuredDocumentation", + "src": "23425:173:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1315, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23631:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23631:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1317, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23647:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1316, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23647:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1319, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23666:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1318, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "23666:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "23630:63:1" + }, + "returnParameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1322, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23717:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1321, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23717:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23716:14:1" + }, + "scope": 1430, + "src": "23603:416:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1363, + "nodeType": "Block", + "src": "24295:101:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1358, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "24333:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1359, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "24341:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24347:41:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 1357, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "src": "24312:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24312:77:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1356, + "id": 1362, + "nodeType": "Return", + "src": "24305:84:1" + } + ] + }, + "documentation": { + "id": 1348, + "nodeType": "StructuredDocumentation", + "src": "24025:168:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1364, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1350, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24228:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24244:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1351, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24227:35:1" + }, + "returnParameters": { + "id": 1356, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1355, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24281:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1354, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24281:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24280:14:1" + }, + "scope": 1430, + "src": "24198:198:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1398, + "nodeType": "Block", + "src": "24707:292:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1378, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24736:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1377, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "24725:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24725:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24745:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + }, + "value": "Address: delegate call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "id": 1376, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "24717:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24717:69:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1382, + "nodeType": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "assignments": [ + 1384, + 1386 + ], + "declarations": [ + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24857:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1383, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "24857:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24871:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1385, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24871:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1391, + "initialValue": { + "arguments": [ + { + "id": 1389, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1369, + "src": "24918:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1387, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "24898:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24898:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1393, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1384, + "src": "24958:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1394, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1386, + "src": "24967:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1395, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1371, + "src": "24979:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1392, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "24940:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24940:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1375, + "id": 1397, + "nodeType": "Return", + "src": "24933:59:1" + } + ] + }, + "documentation": { + "id": 1365, + "nodeType": "StructuredDocumentation", + "src": "24402:175:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1399, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1367, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24612:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24612:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1369, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24628:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1368, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24628:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1371, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24647:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1370, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "24647:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "24611:63:1" + }, + "returnParameters": { + "id": 1375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1374, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24693:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1373, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24693:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24692:14:1" + }, + "scope": 1430, + "src": "24582:417:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1428, + "nodeType": "Block", + "src": "25134:596:1", + "statements": [ + { + "condition": { + "id": 1410, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "25148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1426, + "nodeType": "Block", + "src": "25205:519:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1414, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25289:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "25289:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25309:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25289:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1424, + "nodeType": "Block", + "src": "25661:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1421, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1405, + "src": "25686:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1420, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "25679:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25679:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1423, + "nodeType": "ExpressionStatement", + "src": "25679:20:1" + } + ] + }, + "id": 1425, + "nodeType": "IfStatement", + "src": "25285:429:1", + "trueBody": { + "id": 1419, + "nodeType": "Block", + "src": "25312:343:1", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "25496:145:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "25518:40:1", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25547:10:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "25541:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "25541:17:1" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "25522:15:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25590:2:1", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25594:10:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25586:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "25586:19:1" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "25607:15:1" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "25579:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "25579:44:1" + }, + "nodeType": "YulExpressionStatement", + "src": "25579:44:1" + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "id": 1418, + "nodeType": "InlineAssembly", + "src": "25487:154:1" + } + ] + } + } + ] + }, + "id": 1427, + "nodeType": "IfStatement", + "src": "25144:580:1", + "trueBody": { + "id": 1413, + "nodeType": "Block", + "src": "25157:42:1", + "statements": [ + { + "expression": { + "id": 1411, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25178:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1409, + "id": 1412, + "nodeType": "Return", + "src": "25171:17:1" + } + ] + } + } + ] + }, + "id": 1429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1401, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25032:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1400, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "25032:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1403, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25046:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1402, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25046:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1405, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25071:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1404, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "25071:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "25031:67:1" + }, + "returnParameters": { + "id": 1409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1408, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25120:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1407, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25120:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "25119:14:1" + }, + "scope": 1430, + "src": "25005:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3499, + "src": "18048:7684:1" + }, + { + "id": 1431, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "25791:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1432, + "nodeType": "StructuredDocumentation", + "src": "25824:686:1", + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "fullyImplemented": true, + "id": 1921, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableSet.Set", + "id": 1440, + "members": [ + { + "constant": false, + "id": 1435, + "mutability": "mutable", + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27033:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1433, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27033:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1434, + "nodeType": "ArrayTypeName", + "src": "27033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1439, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27184:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1438, + "keyType": { + "id": 1436, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "27184:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "26979:249:1", + "visibility": "public" + }, + { + "body": { + "id": 1480, + "nodeType": "Block", + "src": "27467:335:1", + "statements": [ + { + "condition": { + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "27481:22:1", + "subExpression": { + "arguments": [ + { + "id": 1451, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27492:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + { + "id": 1452, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27497:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1450, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "27482:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27482:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1478, + "nodeType": "Block", + "src": "27759:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27780:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1449, + "id": 1477, + "nodeType": "Return", + "src": "27773:12:1" + } + ] + }, + "id": 1479, + "nodeType": "IfStatement", + "src": "27477:319:1", + "trueBody": { + "id": 1475, + "nodeType": "Block", + "src": "27505:248:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1460, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27536:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "expression": { + "id": 1455, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1458, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27519:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "27519:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 1461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27519:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1462, + "nodeType": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "expression": { + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1463, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27677:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "27677:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1467, + "indexExpression": { + "id": 1465, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27690:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "27677:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1468, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27699:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1469, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27699:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "27699:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27677:40:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1472, + "nodeType": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27738:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1449, + "id": 1474, + "nodeType": "Return", + "src": "27731:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1441, + "nodeType": "StructuredDocumentation", + "src": "27234:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1481, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27412:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1442, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27412:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1445, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27429:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1444, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27411:32:1" + }, + "returnParameters": { + "id": 1449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1447, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "27461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "27460:6:1" + }, + "scope": 1921, + "src": "27398:404:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1560, + "nodeType": "Block", + "src": "28042:1440:1", + "statements": [ + { + "assignments": [ + 1492 + ], + "declarations": [ + { + "constant": false, + "id": 1492, + "mutability": "mutable", + "name": "valueIndex", + "nodeType": "VariableDeclaration", + "scope": 1560, + "src": "28152:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28152:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1497, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1493, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28173:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1494, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "28173:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1496, + "indexExpression": { + "id": 1495, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "28186:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28173:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1498, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28207:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28221:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28207:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1558, + "nodeType": "Block", + "src": "29439:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29460:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1490, + "id": 1557, + "nodeType": "Return", + "src": "29453:12:1" + } + ] + }, + "id": 1559, + "nodeType": "IfStatement", + "src": "28203:1273:1", + "trueBody": { + "id": 1555, + "nodeType": "Block", + "src": "28224:1209:1", + "statements": [ + { + "assignments": [ + 1502 + ], + "declarations": [ + { + "constant": false, + "id": 1502, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28564:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28564:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1506, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1503, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28588:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28588:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "assignments": [ + 1508 + ], + "declarations": [ + { + "constant": false, + "id": 1508, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28616:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28616:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1514, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1509, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28636:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28636:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "28636:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28657:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28636:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "assignments": [ + 1516 + ], + "declarations": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "lastvalue", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28898:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1515, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28898:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1521, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1517, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28918:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1520, + "indexExpression": { + "id": 1519, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "28930:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28918:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "expression": { + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1522, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29032:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1525, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29032:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1526, + "indexExpression": { + "id": 1524, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29044:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29032:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1527, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29061:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "29032:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1529, + "nodeType": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "expression": { + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1530, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29136:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1533, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29136:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1534, + "indexExpression": { + "id": 1532, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29149:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29136:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1535, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29162:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29178:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "29162:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29136:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1539, + "nodeType": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 1540, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29285:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "29285:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29285:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1546, + "nodeType": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "expression": { + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "29370:26:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 1547, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29377:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29377:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1550, + "indexExpression": { + "id": 1549, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "29390:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29377:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1552, + "nodeType": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29418:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1490, + "id": 1554, + "nodeType": "Return", + "src": "29411:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1482, + "nodeType": "StructuredDocumentation", + "src": "27808:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1561, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "27987:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1483, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27987:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1486, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28004:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1485, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27986:32:1" + }, + "returnParameters": { + "id": 1490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28036:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1488, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "28036:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "28035:6:1" + }, + "scope": 1921, + "src": "27970:1512:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1578, + "nodeType": "Block", + "src": "29642:48:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 1571, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "29659:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29659:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1574, + "indexExpression": { + "id": 1573, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "29672:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29659:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29682:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "29659:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1570, + "id": 1577, + "nodeType": "Return", + "src": "29652:31:1" + } + ] + }, + "documentation": { + "id": 1562, + "nodeType": "StructuredDocumentation", + "src": "29488:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1579, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1564, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29582:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1563, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29582:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29599:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1565, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "29599:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "29581:32:1" + }, + "returnParameters": { + "id": 1570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29636:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "29636:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "29635:6:1" + }, + "scope": 1921, + "src": "29563:127:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1591, + "nodeType": "Block", + "src": "29836:42:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 1587, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1582, + "src": "29853:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1588, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29853:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "29853:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1586, + "id": 1590, + "nodeType": "Return", + "src": "29846:25:1" + } + ] + }, + "documentation": { + "id": 1580, + "nodeType": "StructuredDocumentation", + "src": "29696:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1582, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29788:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1581, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29788:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "src": "29787:17:1" + }, + "returnParameters": { + "id": 1586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1585, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29827:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29826:9:1" + }, + "scope": 1921, + "src": "29771:107:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1616, + "nodeType": "Block", + "src": "30286:125:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1603, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30304:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30304:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "30304:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1606, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30325:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30304:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30332:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + }, + "value": "EnumerableSet: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "id": 1602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "30296:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30296:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1610, + "nodeType": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 1611, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30386:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30386:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1614, + "indexExpression": { + "id": 1613, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30398:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30386:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1601, + "id": 1615, + "nodeType": "Return", + "src": "30379:25:1" + } + ] + }, + "documentation": { + "id": 1593, + "nodeType": "StructuredDocumentation", + "src": "29883:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1617, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1595, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30223:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1594, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30223:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30240:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30240:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30222:32:1" + }, + "returnParameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1600, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30277:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1599, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30276:9:1" + }, + "scope": 1921, + "src": "30210:201:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableSet.Bytes32Set", + "id": 1620, + "members": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "30464:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1618, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30464:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "30436:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1636, + "nodeType": "Block", + "src": "30727:47:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1631, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "30749:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "30749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1625, + "src": "30761:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1630, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "30744:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30744:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1629, + "id": 1635, + "nodeType": "Return", + "src": "30737:30:1" + } + ] + }, + "documentation": { + "id": 1621, + "nodeType": "StructuredDocumentation", + "src": "30487:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30664:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1622, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30664:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30688:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1624, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30688:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30663:39:1" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30721:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "30721:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "30720:6:1" + }, + "scope": 1921, + "src": "30651:123:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1653, + "nodeType": "Block", + "src": "31021:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1648, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "31046:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31046:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1650, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "31058:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1647, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "31038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31038:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1646, + "id": 1652, + "nodeType": "Return", + "src": "31031:33:1" + } + ] + }, + "documentation": { + "id": 1638, + "nodeType": "StructuredDocumentation", + "src": "30780:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1654, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30958:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1639, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30958:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30982:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1641, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30982:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30957:39:1" + }, + "returnParameters": { + "id": 1646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1645, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "31015:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31015:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31014:6:1" + }, + "scope": 1921, + "src": "30942:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1670, + "nodeType": "Block", + "src": "31238:52:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1665, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1657, + "src": "31265:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31265:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1667, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1659, + "src": "31277:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1664, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "31255:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31255:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1663, + "id": 1669, + "nodeType": "Return", + "src": "31248:35:1" + } + ] + }, + "documentation": { + "id": 1655, + "nodeType": "StructuredDocumentation", + "src": "31077:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1671, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1657, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31170:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1656, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31170:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31194:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1658, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31194:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31169:39:1" + }, + "returnParameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1662, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31232:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1661, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31232:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31231:6:1" + }, + "scope": 1921, + "src": "31152:138:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "31443:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1680, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1674, + "src": "31468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1681, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31468:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1679, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "31460:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31460:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1678, + "id": 1683, + "nodeType": "Return", + "src": "31453:26:1" + } + ] + }, + "documentation": { + "id": 1672, + "nodeType": "StructuredDocumentation", + "src": "31296:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1685, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1674, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31387:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1673, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + } + ], + "src": "31386:24:1" + }, + "returnParameters": { + "id": 1678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31434:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31434:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31433:9:1" + }, + "scope": 1921, + "src": "31371:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1701, + "nodeType": "Block", + "src": "31901:46:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1696, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1688, + "src": "31922:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1697, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31922:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1698, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "31934:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1695, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "31918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31918:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1694, + "id": 1700, + "nodeType": "Return", + "src": "31911:29:1" + } + ] + }, + "documentation": { + "id": 1686, + "nodeType": "StructuredDocumentation", + "src": "31491:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1688, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31830:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1687, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31830:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1690, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31854:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31854:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31829:39:1" + }, + "returnParameters": { + "id": 1694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31892:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1692, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31892:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31891:9:1" + }, + "scope": 1921, + "src": "31818:129:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.AddressSet", + "id": 1705, + "members": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1705, + "src": "32000:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1703, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "32000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "31972:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1730, + "nodeType": "Block", + "src": "32263:74:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1716, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1708, + "src": "32285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32285:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "32321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32313:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1722, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32313:7:1", + "typeDescriptions": {} + } + }, + "id": 1725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32313:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32305:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1720, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32305:7:1", + "typeDescriptions": {} + } + }, + "id": 1726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32305:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1718, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32297:7:1", + "typeDescriptions": {} + } + }, + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32297:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1715, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "32280:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32280:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1714, + "id": 1729, + "nodeType": "Return", + "src": "32273:57:1" + } + ] + }, + "documentation": { + "id": 1706, + "nodeType": "StructuredDocumentation", + "src": "32023:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1731, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1708, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32200:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1707, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32200:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32224:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32224:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32199:39:1" + }, + "returnParameters": { + "id": 1714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1713, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32257:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1712, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32257:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32256:6:1" + }, + "scope": 1921, + "src": "32187:150:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1756, + "nodeType": "Block", + "src": "32584:77:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1742, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "32609:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1743, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32609:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1750, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "32645:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32637:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1748, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32637:7:1", + "typeDescriptions": {} + } + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32637:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32629:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32629:7:1", + "typeDescriptions": {} + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32629:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32621:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1744, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32621:7:1", + "typeDescriptions": {} + } + }, + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32621:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1741, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "32601:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32601:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1740, + "id": 1755, + "nodeType": "Return", + "src": "32594:60:1" + } + ] + }, + "documentation": { + "id": 1732, + "nodeType": "StructuredDocumentation", + "src": "32343:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1757, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1734, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32521:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1733, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32521:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1736, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32545:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32545:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32520:39:1" + }, + "returnParameters": { + "id": 1740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1739, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32578:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1738, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32578:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32577:6:1" + }, + "scope": 1921, + "src": "32505:156:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1782, + "nodeType": "Block", + "src": "32828:79:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1768, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1760, + "src": "32855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1776, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1762, + "src": "32891:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1774, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32883:7:1", + "typeDescriptions": {} + } + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32883:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32875:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32875:7:1", + "typeDescriptions": {} + } + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32875:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1770, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32867:7:1", + "typeDescriptions": {} + } + }, + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32867:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1767, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "32845:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32845:55:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1766, + "id": 1781, + "nodeType": "Return", + "src": "32838:62:1" + } + ] + }, + "documentation": { + "id": 1758, + "nodeType": "StructuredDocumentation", + "src": "32667:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1783, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1760, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32760:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1759, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32760:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1762, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32784:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32784:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32759:39:1" + }, + "returnParameters": { + "id": 1766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1765, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32822:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1764, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32822:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32821:6:1" + }, + "scope": 1921, + "src": "32742:165:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1796, + "nodeType": "Block", + "src": "33060:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1792, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1786, + "src": "33085:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33085:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1791, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "33077:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33077:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1790, + "id": 1795, + "nodeType": "Return", + "src": "33070:26:1" + } + ] + }, + "documentation": { + "id": 1784, + "nodeType": "StructuredDocumentation", + "src": "32913:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1797, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1786, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33004:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1785, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33004:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + } + ], + "src": "33003:24:1" + }, + "returnParameters": { + "id": 1790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1789, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33050:9:1" + }, + "scope": 1921, + "src": "32988:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1822, + "nodeType": "Block", + "src": "33518:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1814, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "33563:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33563:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1816, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "33575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1813, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "33559:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33559:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33551:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33551:7:1", + "typeDescriptions": {} + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33551:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33543:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1809, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "33543:7:1", + "typeDescriptions": {} + } + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33543:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33535:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33535:7:1", + "typeDescriptions": {} + } + }, + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33535:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 1806, + "id": 1821, + "nodeType": "Return", + "src": "33528:56:1" + } + ] + }, + "documentation": { + "id": 1798, + "nodeType": "StructuredDocumentation", + "src": "33108:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1823, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1800, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33447:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1799, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33447:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1802, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33471:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33471:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33446:39:1" + }, + "returnParameters": { + "id": 1806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33509:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33509:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "33508:9:1" + }, + "scope": 1921, + "src": "33435:156:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.UintSet", + "id": 1826, + "members": [ + { + "constant": false, + "id": 1825, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1826, + "src": "33639:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1824, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "33639:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "UintSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "33614:42:1", + "visibility": "public" + }, + { + "body": { + "id": 1845, + "nodeType": "Block", + "src": "33899:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1837, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1829, + "src": "33921:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "33921:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1841, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "33941:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33933:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1839, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "33933:7:1", + "typeDescriptions": {} + } + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33933:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1836, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "33916:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33916:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1835, + "id": 1844, + "nodeType": "Return", + "src": "33909:39:1" + } + ] + }, + "documentation": { + "id": 1827, + "nodeType": "StructuredDocumentation", + "src": "33662:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1846, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1829, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33839:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1828, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "33839:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1831, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33860:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33860:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33838:36:1" + }, + "returnParameters": { + "id": 1835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1834, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33893:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1833, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "33893:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "33892:6:1" + }, + "scope": 1921, + "src": "33826:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1865, + "nodeType": "Block", + "src": "34199:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1857, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1849, + "src": "34224:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34224:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1861, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "34244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34236:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1859, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34236:7:1", + "typeDescriptions": {} + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34236:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1856, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "34216:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34216:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1855, + "id": 1864, + "nodeType": "Return", + "src": "34209:42:1" + } + ] + }, + "documentation": { + "id": 1847, + "nodeType": "StructuredDocumentation", + "src": "33961:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1849, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34139:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1848, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34139:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1851, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34160:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34138:36:1" + }, + "returnParameters": { + "id": 1855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1854, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34193:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1853, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34193:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34192:6:1" + }, + "scope": 1921, + "src": "34123:135:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1885, + "nodeType": "Block", + "src": "34422:61:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1877, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1869, + "src": "34449:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34449:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1881, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "34469:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1879, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34461:7:1", + "typeDescriptions": {} + } + }, + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34461:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1876, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "34439:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34439:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1875, + "id": 1884, + "nodeType": "Return", + "src": "34432:44:1" + } + ] + }, + "documentation": { + "id": 1867, + "nodeType": "StructuredDocumentation", + "src": "34264:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1886, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1869, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34357:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1868, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34378:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34378:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34356:36:1" + }, + "returnParameters": { + "id": 1875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1874, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34416:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1873, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34416:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34415:6:1" + }, + "scope": 1921, + "src": "34339:144:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1899, + "nodeType": "Block", + "src": "34633:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1895, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1889, + "src": "34658:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34658:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1894, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "34650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34650:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1893, + "id": 1898, + "nodeType": "Return", + "src": "34643:26:1" + } + ] + }, + "documentation": { + "id": 1887, + "nodeType": "StructuredDocumentation", + "src": "34489:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1900, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1889, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34580:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1888, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + } + ], + "src": "34579:21:1" + }, + "returnParameters": { + "id": 1893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34624:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34623:9:1" + }, + "scope": 1921, + "src": "34564:112:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1919, + "nodeType": "Block", + "src": "35088:55:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1913, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "35117:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "35117:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1915, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1905, + "src": "35129:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1912, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "35113:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35113:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "35105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35105:7:1", + "typeDescriptions": {} + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35105:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1909, + "id": 1918, + "nodeType": "Return", + "src": "35098:38:1" + } + ] + }, + "documentation": { + "id": 1901, + "nodeType": "StructuredDocumentation", + "src": "34681:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1920, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35020:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1902, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "35020:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1905, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35041:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35041:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35019:36:1" + }, + "returnParameters": { + "id": 1909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1908, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35079:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1907, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35079:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35078:9:1" + }, + "scope": 1921, + "src": "35008:135:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "26511:8634:1" + }, + { + "id": 1922, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "35204:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1923, + "nodeType": "StructuredDocumentation", + "src": "35237:705:1", + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "fullyImplemented": true, + "id": 2480, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableMap.MapEntry", + "id": 1928, + "members": [ + { + "constant": false, + "id": 1925, + "mutability": "mutable", + "name": "_key", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36455:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1924, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1927, + "mutability": "mutable", + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36477:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1926, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36477:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "MapEntry", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36429:69:1", + "visibility": "public" + }, + { + "canonicalName": "EnumerableMap.Map", + "id": 1936, + "members": [ + { + "constant": false, + "id": 1931, + "mutability": "mutable", + "name": "_entries", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36567:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + }, + "typeName": { + "baseType": { + "id": 1929, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "36567:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "id": 1930, + "nodeType": "ArrayTypeName", + "src": "36567:10:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1935, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36736:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1934, + "keyType": { + "id": 1932, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "36736:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "36756:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Map", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36504:276:1", + "visibility": "public" + }, + { + "body": { + "id": 1997, + "nodeType": "Block", + "src": "37089:596:1", + "statements": [ + { + "assignments": [ + 1949 + ], + "declarations": [ + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 1997, + "src": "37197:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "37197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1954, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1950, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1953, + "indexExpression": { + "id": 1952, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37229:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37216:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1955, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37248:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37260:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "37248:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1995, + "nodeType": "Block", + "src": "37587:92:1", + "statements": [ + { + "expression": { + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 1982, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37601:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1987, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37601:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1988, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1984, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37614:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37625:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "37614:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37601:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 1989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "37601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1990, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37637:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "37601:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1992, + "nodeType": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37663:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1947, + "id": 1994, + "nodeType": "Return", + "src": "37656:12:1" + } + ] + }, + "id": 1996, + "nodeType": "IfStatement", + "src": "37244:435:1", + "trueBody": { + "id": 1981, + "nodeType": "Block", + "src": "37263:318:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1964, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37349:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1965, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37362:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1963, + "name": "MapEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1928, + "src": "37332:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_MapEntry_$1928_storage_ptr_$", + "typeString": "type(struct EnumerableMap.MapEntry storage pointer)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "nodeType": "FunctionCall", + "src": "37332:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "expression": { + "expression": { + "id": 1958, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37314:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37314:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "37314:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$1928_storage_$returns$__$", + "typeString": "function (struct EnumerableMap.MapEntry storage ref)" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37314:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1968, + "nodeType": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "expression": { + "id": 1977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1969, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37506:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37506:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1973, + "indexExpression": { + "id": 1971, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "37506:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1974, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37526:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37526:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "37526:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37506:39:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1978, + "nodeType": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37566:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1947, + "id": 1980, + "nodeType": "Return", + "src": "37559:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1937, + "nodeType": "StructuredDocumentation", + "src": "36786:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1998, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37021:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 1938, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37021:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37038:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1940, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1943, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1942, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37020:45:1" + }, + "returnParameters": { + "id": 1947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1946, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37083:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1945, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37083:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37082:6:1" + }, + "scope": 2480, + "src": "37007:678:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2078, + "nodeType": "Block", + "src": "37923:1447:1", + "statements": [ + { + "assignments": [ + 2009 + ], + "declarations": [ + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2078, + "src": "38031:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2014, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2010, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38050:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2011, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "38050:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2013, + "indexExpression": { + "id": 2012, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "38063:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38050:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2015, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38082:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38094:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "38082:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2076, + "nodeType": "Block", + "src": "39327:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39348:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2007, + "id": 2075, + "nodeType": "Return", + "src": "39341:12:1" + } + ] + }, + "id": 2077, + "nodeType": "IfStatement", + "src": "38078:1286:1", + "trueBody": { + "id": 2073, + "nodeType": "Block", + "src": "38097:1224:1", + "statements": [ + { + "assignments": [ + 2019 + ], + "declarations": [ + { + "constant": false, + "id": 2019, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38438:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2023, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2020, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38462:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38473:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38462:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "assignments": [ + 2025 + ], + "declarations": [ + { + "constant": false, + "id": 2025, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38488:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38488:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2031, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2026, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38508:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38508:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "38508:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38530:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38508:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "assignments": [ + 2033 + ], + "declarations": [ + { + "constant": false, + "id": 2033, + "mutability": "mutable", + "name": "lastEntry", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38771:26:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2032, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "38771:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2038, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2034, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38800:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38800:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2037, + "indexExpression": { + "id": 2036, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2025, + "src": "38813:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38800:23:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "expression": { + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2039, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38915:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38915:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2043, + "indexExpression": { + "id": 2041, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "38928:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "38915:27:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2044, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "38945:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "src": "38915:39:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2046, + "nodeType": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2047, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2051, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39020:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2052, + "indexExpression": { + "expression": { + "id": 2049, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "39033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "39033:14:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39020:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2053, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "39051:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39067:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "39051:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39020:48:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 2058, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39174:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2061, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39174:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "39174:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "39174:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2064, + "nodeType": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "expression": { + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "39260:24:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 2065, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39267:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2066, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39267:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2068, + "indexExpression": { + "id": 2067, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "39280:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39267:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2070, + "nodeType": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39306:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2007, + "id": 2072, + "nodeType": "Return", + "src": "39299:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1999, + "nodeType": "StructuredDocumentation", + "src": "37691:157:1", + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2079, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2001, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37870:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2000, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37870:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37887:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2002, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37887:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37869:30:1" + }, + "returnParameters": { + "id": 2007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2006, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37917:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2005, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37917:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37916:6:1" + }, + "scope": 2480, + "src": "37853:1517:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2096, + "nodeType": "Block", + "src": "39526:46:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 2089, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2082, + "src": "39543:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2090, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39543:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2092, + "indexExpression": { + "id": 2091, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2084, + "src": "39556:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "39543:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39564:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "39543:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2088, + "id": 2095, + "nodeType": "Return", + "src": "39536:29:1" + } + ] + }, + "documentation": { + "id": 2080, + "nodeType": "StructuredDocumentation", + "src": "39376:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2082, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39468:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2081, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2084, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39485:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2083, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "39485:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "39467:30:1" + }, + "returnParameters": { + "id": 2088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2087, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2086, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "39520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "39519:6:1" + }, + "scope": 2480, + "src": "39449:123:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2109, + "nodeType": "Block", + "src": "39727:43:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 2105, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "39744:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39744:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "39744:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2104, + "id": 2108, + "nodeType": "Return", + "src": "39737:26:1" + } + ] + }, + "documentation": { + "id": 2098, + "nodeType": "StructuredDocumentation", + "src": "39578:79:1", + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2100, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39679:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2099, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39679:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "src": "39678:17:1" + }, + "returnParameters": { + "id": 2104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2103, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39718:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "39718:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "39717:9:1" + }, + "scope": 2480, + "src": "39662:108:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2144, + "nodeType": "Block", + "src": "40198:189:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2123, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "40216:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2126, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40216:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40245:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + }, + "value": "EnumerableMap: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "id": 2122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "40208:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "40208:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2130, + "nodeType": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "assignments": [ + 2132 + ], + "declarations": [ + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "entry", + "nodeType": "VariableDeclaration", + "scope": 2144, + "src": "40293:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2131, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "40293:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2137, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2133, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40318:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40318:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2136, + "indexExpression": { + "id": 2135, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40331:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40318:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "expression": { + "components": [ + { + "expression": { + "id": 2138, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40355:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2139, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "40355:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 2140, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40367:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40367:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40354:26:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "functionReturnParameters": 2121, + "id": 2143, + "nodeType": "Return", + "src": "40347:33:1" + } + ] + }, + "documentation": { + "id": 2111, + "nodeType": "StructuredDocumentation", + "src": "39775:333:1", + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2145, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2113, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40126:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2112, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40126:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2115, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40143:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40143:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "40125:32:1" + }, + "returnParameters": { + "id": 2121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40180:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40180:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40189:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2119, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40189:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40179:18:1" + }, + "scope": 2480, + "src": "40113:274:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2182, + "nodeType": "Block", + "src": "40613:220:1", + "statements": [ + { + "assignments": [ + 2158 + ], + "declarations": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2182, + "src": "40623:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40623:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2163, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2159, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40642:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "40642:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2162, + "indexExpression": { + "id": 2161, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2150, + "src": "40655:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40642:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2164, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40673:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40685:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "40673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2171, + "nodeType": "IfStatement", + "src": "40669:36:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40696:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40703:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2169, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40695:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2156, + "id": 2170, + "nodeType": "Return", + "src": "40688:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40759:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 2173, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40765:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2174, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40765:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2178, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2175, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40778:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40789:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "40778:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40765:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40765:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2180, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40758:41:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "functionReturnParameters": 2156, + "id": 2181, + "nodeType": "Return", + "src": "40751:48:1" + } + ] + }, + "documentation": { + "id": 2146, + "nodeType": "StructuredDocumentation", + "src": "40393:131:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2183, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2151, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40546:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2147, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40546:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2150, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40563:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2149, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40563:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40545:30:1" + }, + "returnParameters": { + "id": 2156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2153, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40598:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2152, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "40598:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2155, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40604:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2154, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40604:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40597:15:1" + }, + "scope": 2480, + "src": "40529:304:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2215, + "nodeType": "Block", + "src": "41060:232:1", + "statements": [ + { + "assignments": [ + 2194 + ], + "declarations": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2215, + "src": "41070:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41070:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2199, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2195, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41089:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2196, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41089:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2198, + "indexExpression": { + "id": 2197, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2188, + "src": "41102:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41089:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2201, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41124:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41136:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41124:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "id": 2204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41139:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + }, + "value": "EnumerableMap: nonexistent key" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "id": 2200, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41116:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2206, + "nodeType": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2207, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41225:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2208, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41225:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2212, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2209, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41238:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41249:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41238:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41225:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2213, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41225:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2192, + "id": 2214, + "nodeType": "Return", + "src": "41218:40:1" + } + ] + }, + "documentation": { + "id": 2184, + "nodeType": "StructuredDocumentation", + "src": "40839:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2186, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "40999:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2185, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40999:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2188, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41016:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2187, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40998:30:1" + }, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2190, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41050:9:1" + }, + "scope": 2480, + "src": "40985:307:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2250, + "nodeType": "Block", + "src": "41677:212:1", + "statements": [ + { + "assignments": [ + 2229 + ], + "declarations": [ + { + "constant": false, + "id": 2229, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2250, + "src": "41687:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41687:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2234, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2230, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41706:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2231, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41706:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2233, + "indexExpression": { + "id": 2232, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "41719:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41706:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2236, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41741:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41753:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41741:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2239, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2223, + "src": "41756:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2235, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41733:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41733:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2241, + "nodeType": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2242, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41822:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41822:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2247, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2244, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41835:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41846:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41835:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41822:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41822:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2227, + "id": 2249, + "nodeType": "Return", + "src": "41815:40:1" + } + ] + }, + "documentation": { + "id": 2217, + "nodeType": "StructuredDocumentation", + "src": "41298:271:1", + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2251, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2219, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41588:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2218, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41588:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2221, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41605:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2220, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2223, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41618:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2222, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "41618:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "41587:58:1" + }, + "returnParameters": { + "id": 2227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2226, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41668:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2225, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41668:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41667:9:1" + }, + "scope": 2480, + "src": "41574:315:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableMap.UintToAddressMap", + "id": 2254, + "members": [ + { + "constant": false, + "id": 2253, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 2254, + "src": "41954:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2252, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41954:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "name": "UintToAddressMap", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "41920:51:1", + "visibility": "public" + }, + { + "body": { + "id": 2285, + "nodeType": "Block", + "src": "42293:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2267, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "42315:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42315:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2271, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2259, + "src": "42335:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42327:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2269, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42327:7:1", + "typeDescriptions": {} + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42327:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2279, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2261, + "src": "42365:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2277, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "42357:7:1", + "typeDescriptions": {} + } + }, + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42357:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42349:7:1", + "typeDescriptions": {} + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42349:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42341:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42341:7:1", + "typeDescriptions": {} + } + }, + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42341:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2266, + "name": "_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1998, + "src": "42310:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42310:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2265, + "id": 2284, + "nodeType": "Return", + "src": "42303:71:1" + } + ] + }, + "documentation": { + "id": 2255, + "nodeType": "StructuredDocumentation", + "src": "41977:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2286, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2257, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42211:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2256, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42211:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2259, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42241:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2258, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42241:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2261, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42254:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "42254:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "42210:58:1" + }, + "returnParameters": { + "id": 2265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2264, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42287:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2263, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42287:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42286:6:1" + }, + "scope": 2480, + "src": "42198:183:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2305, + "nodeType": "Block", + "src": "42623:57:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2297, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2289, + "src": "42648:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2298, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42648:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2301, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2291, + "src": "42668:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42660:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2299, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42660:7:1", + "typeDescriptions": {} + } + }, + "id": 2302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42660:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2296, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2079, + "src": "42640:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)" + } + }, + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42640:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2295, + "id": 2304, + "nodeType": "Return", + "src": "42633:40:1" + } + ] + }, + "documentation": { + "id": 2287, + "nodeType": "StructuredDocumentation", + "src": "42387:148:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2289, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42556:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2288, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42556:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2291, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42586:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42586:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42555:43:1" + }, + "returnParameters": { + "id": 2295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2294, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42617:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2293, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42617:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42616:6:1" + }, + "scope": 2480, + "src": "42540:140:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2325, + "nodeType": "Block", + "src": "42849:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2317, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2309, + "src": "42876:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42876:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2321, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "42896:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42888:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2319, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42888:7:1", + "typeDescriptions": {} + } + }, + "id": 2322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42888:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2316, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2097, + "src": "42866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42866:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2315, + "id": 2324, + "nodeType": "Return", + "src": "42859:42:1" + } + ] + }, + "documentation": { + "id": 2307, + "nodeType": "StructuredDocumentation", + "src": "42686:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2326, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2309, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42777:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2308, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42777:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2311, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42807:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42807:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42776:43:1" + }, + "returnParameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2314, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42843:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42843:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42842:6:1" + }, + "scope": 2480, + "src": "42759:149:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2339, + "nodeType": "Block", + "src": "43069:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2335, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2329, + "src": "43094:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43094:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "id": 2334, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2110, + "src": "43086:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)" + } + }, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43086:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2333, + "id": 2338, + "nodeType": "Return", + "src": "43079:26:1" + } + ] + }, + "documentation": { + "id": 2327, + "nodeType": "StructuredDocumentation", + "src": "42914:72:1", + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2340, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2329, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43007:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2328, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43007:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + } + ], + "src": "43006:30:1" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43060:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43059:9:1" + }, + "scope": 2480, + "src": "42991:121:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2378, + "nodeType": "Block", + "src": "43538:135:1", + "statements": [ + { + "assignments": [ + 2353, + 2355 + ], + "declarations": [ + { + "constant": false, + "id": 2353, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43549:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2352, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43549:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2355, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43562:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2354, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43562:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2361, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2357, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "43583:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2358, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "id": 2359, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "43595:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2356, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "43579:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)" + } + }, + "id": 2360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43579:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "expression": { + "components": [ + { + "arguments": [ + { + "id": 2364, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "43627:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43619:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43619:7:1", + "typeDescriptions": {} + } + }, + "id": 2365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43619:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2372, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2355, + "src": "43657:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43649:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43649:7:1", + "typeDescriptions": {} + } + }, + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43649:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43641:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2368, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "43641:7:1", + "typeDescriptions": {} + } + }, + "id": 2374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43641:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43633:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43633:7:1", + "typeDescriptions": {} + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43633:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2376, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43618:48:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$", + "typeString": "tuple(uint256,address payable)" + } + }, + "functionReturnParameters": 2351, + "id": 2377, + "nodeType": "Return", + "src": "43611:55:1" + } + ] + }, + "documentation": { + "id": 2341, + "nodeType": "StructuredDocumentation", + "src": "43117:318:1", + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2379, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43452:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2342, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43452:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2345, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43482:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43482:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43451:45:1" + }, + "returnParameters": { + "id": 2351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2348, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43520:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43520:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2350, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43529:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43529:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43519:18:1" + }, + "scope": 2480, + "src": "43440:233:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2417, + "nodeType": "Block", + "src": "43950:142:1", + "statements": [ + { + "assignments": [ + 2392, + 2394 + ], + "declarations": [ + { + "constant": false, + "id": 2392, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43961:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43961:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43975:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2393, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2403, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2396, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "44000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44000:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2400, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2384, + "src": "44020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44012:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2398, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44012:7:1", + "typeDescriptions": {} + } + }, + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44012:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2395, + "name": "_tryGet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2183, + "src": "43992:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)" + } + }, + "id": 2402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43992:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "expression": { + "components": [ + { + "id": 2404, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2392, + "src": "44043:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2411, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "44076:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44068:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44068:7:1", + "typeDescriptions": {} + } + }, + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44068:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2407, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44060:7:1", + "typeDescriptions": {} + } + }, + "id": 2413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44060:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44052:7:1", + "typeDescriptions": {} + } + }, + "id": 2414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44052:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2415, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44042:43:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_payable_$", + "typeString": "tuple(bool,address payable)" + } + }, + "functionReturnParameters": 2390, + "id": 2416, + "nodeType": "Return", + "src": "44035:50:1" + } + ] + }, + "documentation": { + "id": 2380, + "nodeType": "StructuredDocumentation", + "src": "43679:169:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2418, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2382, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43869:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2381, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43869:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2384, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43899:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43868:43:1" + }, + "returnParameters": { + "id": 2390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2387, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43935:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2386, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2389, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43941:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43941:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43934:15:1" + }, + "scope": 2480, + "src": "43853:239:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2446, + "nodeType": "Block", + "src": "44332:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2435, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "44378:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44378:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2439, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2423, + "src": "44398:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44390:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2437, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44390:7:1", + "typeDescriptions": {} + } + }, + "id": 2440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44390:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2434, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "src": "44373:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)" + } + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44373:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44365:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44365:7:1", + "typeDescriptions": {} + } + }, + "id": 2442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44365:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2430, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44357:7:1", + "typeDescriptions": {} + } + }, + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44357:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44349:7:1", + "typeDescriptions": {} + } + }, + "id": 2444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44349:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2427, + "id": 2445, + "nodeType": "Return", + "src": "44342:64:1" + } + ] + }, + "documentation": { + "id": 2419, + "nodeType": "StructuredDocumentation", + "src": "44098:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2447, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2421, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44257:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2420, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44257:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2423, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44287:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44287:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "44256:43:1" + }, + "returnParameters": { + "id": 2427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2426, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44323:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44323:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44322:9:1" + }, + "scope": 2480, + "src": "44244:169:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2478, + "nodeType": "Block", + "src": "44809:95:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2466, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2450, + "src": "44855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2467, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2470, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2452, + "src": "44875:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2468, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44867:7:1", + "typeDescriptions": {} + } + }, + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44867:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 2472, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "44881:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2465, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "src": "44850:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)" + } + }, + "id": 2473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44850:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44842:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44842:7:1", + "typeDescriptions": {} + } + }, + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44842:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44834:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2461, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44834:7:1", + "typeDescriptions": {} + } + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44834:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44826:7:1", + "typeDescriptions": {} + } + }, + "id": 2476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44826:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2458, + "id": 2477, + "nodeType": "Return", + "src": "44819:78:1" + } + ] + }, + "documentation": { + "id": 2448, + "nodeType": "StructuredDocumentation", + "src": "44419:269:1", + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2450, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44706:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2449, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44706:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2452, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44736:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2454, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44749:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2453, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "44749:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "44705:71:1" + }, + "returnParameters": { + "id": 2458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2457, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44799:9:1" + }, + "scope": 2480, + "src": "44693:211:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "35943:8963:1" + }, + { + "id": 2481, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "44959:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2482, + "nodeType": "StructuredDocumentation", + "src": "44992:34:1", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2566, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2564, + "nodeType": "Block", + "src": "45207:654:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2490, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45409:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45418:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45409:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2496, + "nodeType": "IfStatement", + "src": "45405:51:1", + "trueBody": { + "id": 2495, + "nodeType": "Block", + "src": "45421:35:1", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45442:3:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "functionReturnParameters": 2489, + "id": 2494, + "nodeType": "Return", + "src": "45435:10:1" + } + ] + } + }, + { + "assignments": [ + 2498 + ], + "declarations": [ + { + "constant": false, + "id": 2498, + "mutability": "mutable", + "name": "temp", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45465:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2500, + "initialValue": { + "id": 2499, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45480:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "assignments": [ + 2502 + ], + "declarations": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "digits", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45495:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45495:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2503, + "nodeType": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "body": { + "id": 2514, + "nodeType": "Block", + "src": "45537:57:1", + "statements": [ + { + "expression": { + "id": 2508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "45551:8:1", + "subExpression": { + "id": 2507, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45551:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2509, + "nodeType": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "expression": { + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2510, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45581:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45573:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2513, + "nodeType": "ExpressionStatement", + "src": "45573:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2504, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45526:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45534:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45526:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2515, + "nodeType": "WhileStatement", + "src": "45519:75:1" + }, + { + "assignments": [ + 2517 + ], + "declarations": [ + { + "constant": false, + "id": 2517, + "mutability": "mutable", + "name": "buffer", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45603:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2516, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2522, + "initialValue": { + "arguments": [ + { + "id": 2520, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45635:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "45625:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2518, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45629:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45625:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "assignments": [ + 2524 + ], + "declarations": [ + { + "constant": false, + "id": 2524, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45652:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45652:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2528, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2525, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45668:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45677:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "45668:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "expression": { + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2529, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45688:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2530, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45695:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45688:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2532, + "nodeType": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "body": { + "id": 2557, + "nodeType": "Block", + "src": "45728:96:1", + "statements": [ + { + "expression": { + "id": 2551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2536, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45742:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2539, + "indexExpression": { + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "45749:7:1", + "subExpression": { + "id": 2537, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2524, + "src": "45749:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "45742:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3438", + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45773:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2545, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45778:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3130", + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45785:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45778:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45773:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45767:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2542, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "45767:5:1", + "typeDescriptions": {} + } + }, + "id": 2549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45767:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 2540, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "45760:6:1", + "typeDescriptions": {} + } + }, + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45760:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "45742:47:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2552, + "nodeType": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "expression": { + "id": 2555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2553, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45803:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45811:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45803:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2556, + "nodeType": "ExpressionStatement", + "src": "45803:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2533, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45717:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45725:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45717:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2558, + "nodeType": "WhileStatement", + "src": "45710:114:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2561, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45847:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45840:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2559, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45840:6:1", + "typeDescriptions": {} + } + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45840:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2489, + "id": 2563, + "nodeType": "Return", + "src": "45833:21:1" + } + ] + }, + "documentation": { + "id": 2483, + "nodeType": "StructuredDocumentation", + "src": "45049:82:1", + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2485, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45154:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45154:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "45153:15:1" + }, + "returnParameters": { + "id": 2489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2488, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45192:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2487, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45192:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "45191:15:1" + }, + "scope": 2566, + "src": "45136:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "45027:836:1" + }, + { + "id": 2567, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "45922:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2569, + "name": "Context", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 530, + "src": "46099:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 2570, + "nodeType": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "baseName": { + "id": 2571, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 781, + "src": "46108:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$781", + "typeString": "contract ERC165" + } + }, + "id": 2572, + "nodeType": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "baseName": { + "id": 2573, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "46116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 2574, + "nodeType": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "baseName": { + "id": 2575, + "name": "IERC721Metadata", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 680, + "src": "46125:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Metadata_$680", + "typeString": "contract IERC721Metadata" + } + }, + "id": 2576, + "nodeType": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "baseName": { + "id": 2577, + "name": "IERC721Enumerable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 709, + "src": "46142:17:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Enumerable_$709", + "typeString": "contract IERC721Enumerable" + } + }, + "id": 2578, + "nodeType": "InheritanceSpecifier", + "src": "46142:17:1" + } + ], + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "documentation": { + "id": 2568, + "nodeType": "StructuredDocumentation", + "src": "45955:124:1", + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": true, + "id": 3498, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2581, + "libraryName": { + "id": 2579, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1135, + "src": "46172:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$1135", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "46166:27:1", + "typeName": { + "id": 2580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46185:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 2584, + "libraryName": { + "id": 2582, + "name": "Address", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1430, + "src": "46204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + }, + "nodeType": "UsingForDirective", + "src": "46198:26:1", + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46216:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 2587, + "libraryName": { + "id": 2585, + "name": "EnumerableSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1921, + "src": "46235:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableSet_$1921", + "typeString": "library EnumerableSet" + } + }, + "nodeType": "UsingForDirective", + "src": "46229:46:1", + "typeName": { + "id": 2586, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46253:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + { + "id": 2590, + "libraryName": { + "id": 2588, + "name": "EnumerableMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2480, + "src": "46286:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableMap_$2480", + "typeString": "library EnumerableMap" + } + }, + "nodeType": "UsingForDirective", + "src": "46280:55:1", + "typeName": { + "id": 2589, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46304:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + } + }, + { + "id": 2593, + "libraryName": { + "id": 2591, + "name": "Strings", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2566, + "src": "46346:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Strings_$2566", + "typeString": "library Strings" + } + }, + "nodeType": "UsingForDirective", + "src": "46340:26:1", + "typeName": { + "id": 2592, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46358:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 2596, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46544:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2594, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "46544:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783135306237613032", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46587:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_353073666_by_1", + "typeString": "int_const 353073666" + }, + "value": "0x150b7a02" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2600, + "mutability": "mutable", + "name": "_holderTokens", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46681:64:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "typeName": { + "id": 2599, + "keyType": { + "id": 2597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "46681:42:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "valueType": { + "id": 2598, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46701:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2602, + "mutability": "mutable", + "name": "_tokenOwners", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46809:51:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2601, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46809:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2606, + "mutability": "mutable", + "name": "_tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46916:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 2605, + "keyType": { + "id": 2603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46925:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "46916:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 2604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46936:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2612, + "mutability": "mutable", + "name": "_operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47023:73:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 2611, + "keyType": { + "id": 2607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47023:46:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 2610, + "keyType": { + "id": 2608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47043:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2609, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "47063:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2614, + "mutability": "mutable", + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47121:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2613, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47121:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2616, + "mutability": "mutable", + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47168:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47168:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2620, + "mutability": "mutable", + "name": "_tokenURIs", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47236:46:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 2619, + "keyType": { + "id": 2617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "47245:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "47236:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 2618, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47256:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2622, + "mutability": "mutable", + "name": "_baseURI", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47305:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2621, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47305:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2625, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48204:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2623, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48204:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783830616335386364", + "id": 2624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48251:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2628, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48527:66:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2626, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48527:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783562356531333966", + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1532892063_by_1", + "typeString": "int_const 1532892063" + }, + "value": "0x5b5e139f" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2631, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48898:68:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2629, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783738306539643633", + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48956:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2014223715_by_1", + "typeString": "int_const 2014223715" + }, + "value": "0x780e9d63" + }, + "visibility": "private" + }, + { + "body": { + "id": 2659, + "nodeType": "Block", + "src": "49143:305:1", + "statements": [ + { + "expression": { + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2639, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "49153:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2640, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "49161:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49153:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2642, + "nodeType": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "expression": { + "id": 2645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2643, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "49176:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2644, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2636, + "src": "49186:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49176:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2646, + "nodeType": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2648, + "name": "_INTERFACE_ID_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "49300:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2647, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49281:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49281:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2650, + "nodeType": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2652, + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "49350:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2651, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49331:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49331:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2654, + "nodeType": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2656, + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2631, + "src": "49409:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2655, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49390:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49390:51:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2658, + "nodeType": "ExpressionStatement", + "src": "49390:51:1" + } + ] + }, + "documentation": { + "id": 2632, + "nodeType": "StructuredDocumentation", + "src": "48973:108:1", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2660, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2634, + "mutability": "mutable", + "name": "name_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49099:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2633, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49099:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2636, + "mutability": "mutable", + "name": "symbol_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49120:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2635, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49120:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "49098:44:1" + }, + "returnParameters": { + "id": 2638, + "nodeType": "ParameterList", + "parameters": [], + "src": "49143:0:1" + }, + "scope": 3498, + "src": "49086:362:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 580 + ], + "body": { + "id": 2685, + "nodeType": "Block", + "src": "49588:137:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2670, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49606:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49623:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "49615:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49615:7:1", + "typeDescriptions": {} + } + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49615:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "49606:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49627:44:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + }, + "value": "ERC721: balance query for the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "id": 2669, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "49598:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49598:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2678, + "nodeType": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 2679, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "49689:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2681, + "indexExpression": { + "id": 2680, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49703:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "49689:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2682, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "49689:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + } + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49689:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2668, + "id": 2684, + "nodeType": "Return", + "src": "49682:36:1" + } + ] + }, + "documentation": { + "id": 2661, + "nodeType": "StructuredDocumentation", + "src": "49454:48:1", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 2686, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2665, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49561:8:1" + }, + "parameters": { + "id": 2664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2663, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49526:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49526:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49525:15:1" + }, + "returnParameters": { + "id": 2668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2667, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49579:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49579:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49578:9:1" + }, + "scope": 3498, + "src": "49507:218:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 588 + ], + "body": { + "id": 2701, + "nodeType": "Block", + "src": "49863:94:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2697, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "49897:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49906:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + }, + "value": "ERC721: owner query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "expression": { + "id": 2695, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "49880:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2696, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 2479, + "src": "49880:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + } + }, + "id": 2699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49880:70:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2694, + "id": 2700, + "nodeType": "Return", + "src": "49873:77:1" + } + ] + }, + "documentation": { + "id": 2687, + "nodeType": "StructuredDocumentation", + "src": "49731:46:1", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 2702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2691, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49836:8:1" + }, + "parameters": { + "id": 2690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2689, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49799:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49799:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49798:17:1" + }, + "returnParameters": { + "id": 2694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49854:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49854:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49853:9:1" + }, + "scope": 3498, + "src": "49782:175:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 665 + ], + "body": { + "id": 2711, + "nodeType": "Block", + "src": "50088:29:1", + "statements": [ + { + "expression": { + "id": 2709, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "50105:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2708, + "id": 2710, + "nodeType": "Return", + "src": "50098:12:1" + } + ] + }, + "documentation": { + "id": 2703, + "nodeType": "StructuredDocumentation", + "src": "49963:51:1", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 2712, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2705, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50055:8:1" + }, + "parameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [], + "src": "50032:2:1" + }, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2707, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2712, + "src": "50073:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2706, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50073:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50072:15:1" + }, + "scope": 3498, + "src": "50019:98:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 671 + ], + "body": { + "id": 2721, + "nodeType": "Block", + "src": "50252:31:1", + "statements": [ + { + "expression": { + "id": 2719, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "50269:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2718, + "id": 2720, + "nodeType": "Return", + "src": "50262:14:1" + } + ] + }, + "documentation": { + "id": 2713, + "nodeType": "StructuredDocumentation", + "src": "50123:53:1", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 2722, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2715, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50219:8:1" + }, + "parameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [], + "src": "50196:2:1" + }, + "returnParameters": { + "id": 2718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2717, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2722, + "src": "50237:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2716, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50237:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50236:15:1" + }, + "scope": 3498, + "src": "50181:102:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 679 + ], + "body": { + "id": 2789, + "nodeType": "Block", + "src": "50437:688:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2733, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50463:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2732, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "50455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50455:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50473:49:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + }, + "value": "ERC721Metadata: URI query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "id": 2731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "50447:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50447:76:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "assignments": [ + 2739 + ], + "declarations": [ + { + "constant": false, + "id": 2739, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50534:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50534:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2743, + "initialValue": { + "baseExpression": { + "id": 2740, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "50560:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 2742, + "indexExpression": { + "id": 2741, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50571:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "50560:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "assignments": [ + 2745 + ], + "declarations": [ + { + "constant": false, + "id": 2745, + "mutability": "mutable", + "name": "base", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50589:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50589:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2748, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2746, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2799, + "src": "50610:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 2747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50610:9:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2751, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50698:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50692:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50692:5:1", + "typeDescriptions": {} + } + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50692:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50692:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50714:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50692:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2759, + "nodeType": "IfStatement", + "src": "50688:70:1", + "trueBody": { + "id": 2758, + "nodeType": "Block", + "src": "50717:41:1", + "statements": [ + { + "expression": { + "id": 2756, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50738:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2757, + "nodeType": "Return", + "src": "50731:16:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2762, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50860:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2760, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50860:5:1", + "typeDescriptions": {} + } + }, + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50860:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50860:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50886:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50860:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2777, + "nodeType": "IfStatement", + "src": "50856:106:1", + "trueBody": { + "id": 2776, + "nodeType": "Block", + "src": "50889:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2771, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50934:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 2772, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50940:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2769, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "50917:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "50917:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50917:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50910:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2767, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50910:6:1", + "typeDescriptions": {} + } + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50910:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2775, + "nodeType": "Return", + "src": "50903:48:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2782, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "51092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2783, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "51098:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2565, + "src": "51098:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 2785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51098:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2780, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "51075:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "51075:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51075:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "51068:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2778, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51068:6:1", + "typeDescriptions": {} + } + }, + "id": 2787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51068:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2788, + "nodeType": "Return", + "src": "51061:57:1" + } + ] + }, + "documentation": { + "id": 2723, + "nodeType": "StructuredDocumentation", + "src": "50289:55:1", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 2790, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50404:8:1" + }, + "parameters": { + "id": 2726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2725, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50367:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50367:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "50366:17:1" + }, + "returnParameters": { + "id": 2730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50422:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2728, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50422:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50421:15:1" + }, + "scope": 3498, + "src": "50349:776:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2798, + "nodeType": "Block", + "src": "51420:32:1", + "statements": [ + { + "expression": { + "id": 2796, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "51437:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2795, + "id": 2797, + "nodeType": "Return", + "src": "51430:15:1" + } + ] + }, + "documentation": { + "id": 2791, + "nodeType": "StructuredDocumentation", + "src": "51131:221:1", + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "functionSelector": "6c0360eb", + "id": 2799, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "baseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2792, + "nodeType": "ParameterList", + "parameters": [], + "src": "51373:2:1" + }, + "returnParameters": { + "id": 2795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2799, + "src": "51405:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2793, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51405:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "51404:15:1" + }, + "scope": 3498, + "src": "51357:95:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 700 + ], + "body": { + "id": 2817, + "nodeType": "Block", + "src": "51637:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2814, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "51678:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 2810, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "51654:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2812, + "indexExpression": { + "id": 2811, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2802, + "src": "51668:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "51654:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2813, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 1920, + "src": "51654:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51654:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2809, + "id": 2816, + "nodeType": "Return", + "src": "51647:37:1" + } + ] + }, + "documentation": { + "id": 2800, + "nodeType": "StructuredDocumentation", + "src": "51458:68:1", + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "functionSelector": "2f745c59", + "id": 2818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2806, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51610:8:1" + }, + "parameters": { + "id": 2805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2802, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51560:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "51560:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2804, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51575:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2803, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51575:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51559:30:1" + }, + "returnParameters": { + "id": 2809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2808, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51628:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51628:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51627:9:1" + }, + "scope": 3498, + "src": "51531:160:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 690 + ], + "body": { + "id": 2829, + "nodeType": "Block", + "src": "51832:138:1", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2825, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "51942:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 2340, + "src": "51942:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51942:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2824, + "id": 2828, + "nodeType": "Return", + "src": "51935:28:1" + } + ] + }, + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "51697:60:1", + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 2830, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2821, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51805:8:1" + }, + "parameters": { + "id": 2820, + "nodeType": "ParameterList", + "parameters": [], + "src": "51782:2:1" + }, + "returnParameters": { + "id": 2824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2823, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2830, + "src": "51823:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51823:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51822:9:1" + }, + "scope": 3498, + "src": "51762:208:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 708 + ], + "body": { + "id": 2848, + "nodeType": "Block", + "src": "52126:85:1", + "statements": [ + { + "assignments": [ + 2840, + null + ], + "declarations": [ + { + "constant": false, + "id": 2840, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2848, + "src": "52137:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2839, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52137:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2845, + "initialValue": { + "arguments": [ + { + "id": 2843, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2833, + "src": "52174:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2841, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "52158:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 2379, + "src": "52158:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + } + }, + "id": 2844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52158:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$", + "typeString": "tuple(uint256,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "expression": { + "id": 2846, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2840, + "src": "52197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2838, + "id": 2847, + "nodeType": "Return", + "src": "52190:14:1" + } + ] + }, + "documentation": { + "id": 2831, + "nodeType": "StructuredDocumentation", + "src": "51976:61:1", + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "functionSelector": "4f6ccce7", + "id": 2849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2835, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52099:8:1" + }, + "parameters": { + "id": 2834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2833, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52064:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52064:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52063:15:1" + }, + "returnParameters": { + "id": 2838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2837, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52117:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52116:9:1" + }, + "scope": 3498, + "src": "52042:169:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 616 + ], + "body": { + "id": 2892, + "nodeType": "Block", + "src": "52338:325:1", + "statements": [ + { + "assignments": [ + 2859 + ], + "declarations": [ + { + "constant": false, + "id": 2859, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2892, + "src": "52348:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52348:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2864, + "initialValue": { + "arguments": [ + { + "id": 2862, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52379:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2860, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52364:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "52364:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52364:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2866, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52405:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2867, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52411:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52405:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "id": 2869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52418:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + }, + "value": "ERC721: approval to current owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "id": 2865, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52397:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52397:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2871, + "nodeType": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2873, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52473:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52473:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2875, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52489:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52473:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 2879, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52522:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2880, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52529:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52529:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 2877, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52498:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "52498:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52498:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "52473:69:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52556:58:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + }, + "value": "ERC721: approve caller is not owner nor approved for all" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "id": 2872, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52465:159:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2886, + "nodeType": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2888, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52644:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2889, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52648:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2887, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "52635:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52635:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2891, + "nodeType": "ExpressionStatement", + "src": "52635:21:1" + } + ] + }, + "documentation": { + "id": 2850, + "nodeType": "StructuredDocumentation", + "src": "52217:46:1", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 2893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2856, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52329:8:1" + }, + "parameters": { + "id": 2855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2852, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52285:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52285:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2854, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52297:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52284:29:1" + }, + "returnParameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [], + "src": "52338:0:1" + }, + "scope": 3498, + "src": "52268:395:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 624 + ], + "body": { + "id": 2913, + "nodeType": "Block", + "src": "52809:132:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2904, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2903, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "52827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52827:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52845:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + }, + "value": "ERC721: approved query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "id": 2902, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52819:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2908, + "nodeType": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "expression": { + "baseExpression": { + "id": 2909, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "52910:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 2911, + "indexExpression": { + "id": 2910, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52926:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "52910:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2901, + "id": 2912, + "nodeType": "Return", + "src": "52903:31:1" + } + ] + }, + "documentation": { + "id": 2894, + "nodeType": "StructuredDocumentation", + "src": "52669:50:1", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 2914, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2898, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52782:8:1" + }, + "parameters": { + "id": 2897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2896, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52745:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52744:17:1" + }, + "returnParameters": { + "id": 2901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2900, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2899, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "52799:9:1" + }, + "scope": 3498, + "src": "52724:217:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 632 + ], + "body": { + "id": 2947, + "nodeType": "Block", + "src": "53092:206:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2924, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53110:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2925, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53122:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53122:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "53110:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "id": 2928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53136:27:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + }, + "value": "ERC721: approve to caller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "id": 2923, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53102:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53102:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2930, + "nodeType": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "expression": { + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 2931, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53175:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2935, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2932, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53194:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53194:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53175:32:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2936, + "indexExpression": { + "id": 2934, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53208:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "53175:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2937, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53220:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "53175:53:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2941, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53258:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53258:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2943, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53272:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2944, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53282:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2940, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "53243:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 2945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53243:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2946, + "nodeType": "EmitStatement", + "src": "53238:53:1" + } + ] + }, + "documentation": { + "id": 2915, + "nodeType": "StructuredDocumentation", + "src": "52947:56:1", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 2948, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2921, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53083:8:1" + }, + "parameters": { + "id": 2920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2917, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53035:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53035:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2919, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53053:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2918, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53053:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53034:33:1" + }, + "returnParameters": { + "id": 2922, + "nodeType": "ParameterList", + "parameters": [], + "src": "53092:0:1" + }, + "scope": 3498, + "src": "53008:290:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 642 + ], + "body": { + "id": 2965, + "nodeType": "Block", + "src": "53467:59:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 2959, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53484:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2961, + "indexExpression": { + "id": 2960, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "53503:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2963, + "indexExpression": { + "id": 2962, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "53510:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2958, + "id": 2964, + "nodeType": "Return", + "src": "53477:42:1" + } + ] + }, + "documentation": { + "id": 2949, + "nodeType": "StructuredDocumentation", + "src": "53304:55:1", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 2966, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2955, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53443:8:1" + }, + "parameters": { + "id": 2954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53390:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53390:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2953, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53405:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53405:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "53389:33:1" + }, + "returnParameters": { + "id": 2958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2957, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2956, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53460:6:1" + }, + "scope": 3498, + "src": "53364:162:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 608 + ], + "body": { + "id": 2992, + "nodeType": "Block", + "src": "53677:211:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2979, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53766:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53766:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2981, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53780:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2978, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "53747:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53747:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53790:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 2977, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53739:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53739:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2985, + "nodeType": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2987, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2969, + "src": "53863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2988, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2971, + "src": "53869:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2989, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53873:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2986, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "53853:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53853:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2991, + "nodeType": "ExpressionStatement", + "src": "53853:28:1" + } + ] + }, + "documentation": { + "id": 2967, + "nodeType": "StructuredDocumentation", + "src": "53532:51:1", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 2993, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2975, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53668:8:1" + }, + "parameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2969, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53610:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53610:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2971, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53624:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53624:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2973, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53636:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "53636:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53609:43:1" + }, + "returnParameters": { + "id": 2976, + "nodeType": "ParameterList", + "parameters": [], + "src": "53677:0:1" + }, + "scope": 3498, + "src": "53588:300:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 598 + ], + "body": { + "id": 3011, + "nodeType": "Block", + "src": "54047:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3005, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2996, + "src": "54074:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3006, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2998, + "src": "54080:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3007, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3000, + "src": "54084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54093:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3004, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "src": "54057:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54057:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3010, + "nodeType": "ExpressionStatement", + "src": "54057:39:1" + } + ] + }, + "documentation": { + "id": 2994, + "nodeType": "StructuredDocumentation", + "src": "53894:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 3012, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3002, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54038:8:1" + }, + "parameters": { + "id": 3001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2996, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53980:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53980:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2998, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53994:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2997, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53994:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3000, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "54006:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54006:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53979:43:1" + }, + "returnParameters": { + "id": 3003, + "nodeType": "ParameterList", + "parameters": [], + "src": "54047:0:1" + }, + "scope": 3498, + "src": "53954:149:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 654 + ], + "body": { + "id": 3041, + "nodeType": "Block", + "src": "54282:169:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3027, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "54319:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54319:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3029, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3026, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "54300:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 3030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54300:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 3031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54343:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 3025, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "54292:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54292:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3033, + "nodeType": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3035, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3015, + "src": "54419:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3036, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3017, + "src": "54425:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3037, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3038, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3021, + "src": "54438:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3034, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3071, + "src": "54405:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54405:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3040, + "nodeType": "ExpressionStatement", + "src": "54405:39:1" + } + ] + }, + "documentation": { + "id": 3013, + "nodeType": "StructuredDocumentation", + "src": "54109:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 3042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3023, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54273:8:1" + }, + "parameters": { + "id": 3022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3015, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54195:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54195:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3017, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54209:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3016, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54209:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3019, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54221:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3021, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54238:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3020, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "54238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "54194:63:1" + }, + "returnParameters": { + "id": 3024, + "nodeType": "ParameterList", + "parameters": [], + "src": "54282:0:1" + }, + "scope": 3498, + "src": "54169:282:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 3070, + "nodeType": "Block", + "src": "55416:166:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3055, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55436:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55442:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3057, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55446:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3054, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "55426:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55426:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3059, + "nodeType": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3062, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55495:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3063, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55501:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3064, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55505:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3065, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3051, + "src": "55514:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3061, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "55472:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55472:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55522:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3060, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "55464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55464:111:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3069, + "nodeType": "ExpressionStatement", + "src": "55464:111:1" + } + ] + }, + "documentation": { + "id": 3043, + "nodeType": "StructuredDocumentation", + "src": "54457:851:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3071, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3045, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55336:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55336:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3047, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55350:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55350:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3049, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55362:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55362:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3051, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55379:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3050, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "55379:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "55335:63:1" + }, + "returnParameters": { + "id": 3053, + "nodeType": "ParameterList", + "parameters": [], + "src": "55416:0:1" + }, + "scope": 3498, + "src": "55313:269:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3084, + "nodeType": "Block", + "src": "55956:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3081, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "55995:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3079, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "55973:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3080, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 2326, + "src": "55973:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + } + }, + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55973:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3078, + "id": 3083, + "nodeType": "Return", + "src": "55966:37:1" + } + ] + }, + "documentation": { + "id": 3072, + "nodeType": "StructuredDocumentation", + "src": "55588:292:1", + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3085, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3074, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55902:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3073, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55902:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "55901:17:1" + }, + "returnParameters": { + "id": 3078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3077, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55950:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3076, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "55950:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "55949:6:1" + }, + "scope": 3498, + "src": "55885:125:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3126, + "nodeType": "Block", + "src": "56267:252:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3097, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56293:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3096, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "56285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56285:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 3099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56303:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + }, + "value": "ERC721: operator query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "id": 3095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "56277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56277:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3101, + "nodeType": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "assignments": [ + 3103 + ], + "declarations": [ + { + "constant": false, + "id": 3103, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3126, + "src": "56360:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56360:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3108, + "initialValue": { + "arguments": [ + { + "id": 3106, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56391:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3104, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56376:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "56376:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56376:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3109, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56417:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3110, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56428:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56417:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3113, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56449:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3112, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "56437:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56437:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3115, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56437:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:51:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 3120, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56496:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3121, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3118, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "56472:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56472:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:94:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3124, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56416:96:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3094, + "id": 3125, + "nodeType": "Return", + "src": "56409:103:1" + } + ] + }, + "documentation": { + "id": 3086, + "nodeType": "StructuredDocumentation", + "src": "56016:147:1", + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3088, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56196:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56196:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3090, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56213:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56213:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56195:34:1" + }, + "returnParameters": { + "id": 3094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3093, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56261:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3092, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "56261:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "56260:6:1" + }, + "scope": 3498, + "src": "56168:351:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3141, + "nodeType": "Block", + "src": "56915:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3136, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3130, + "src": "56935:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3137, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3132, + "src": "56939:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56948:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3135, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "src": "56925:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 3139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56925:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3140, + "nodeType": "ExpressionStatement", + "src": "56925:26:1" + } + ] + }, + "documentation": { + "id": 3128, + "nodeType": "StructuredDocumentation", + "src": "56525:320:1", + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3142, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3130, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56869:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3132, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56881:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56881:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56868:29:1" + }, + "returnParameters": { + "id": 3134, + "nodeType": "ParameterList", + "parameters": [], + "src": "56915:0:1" + }, + "scope": 3498, + "src": "56850:108:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3170, + "nodeType": "Block", + "src": "57264:162:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3153, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57280:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3154, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3152, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "57274:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57274:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3156, + "nodeType": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57341:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57333:7:1", + "typeDescriptions": {} + } + }, + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57333:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3163, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57345:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3164, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3165, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "57358:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3158, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "57310:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57310:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57366:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3157, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57302:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57302:117:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3169, + "nodeType": "ExpressionStatement", + "src": "57302:117:1" + } + ] + }, + "documentation": { + "id": 3143, + "nodeType": "StructuredDocumentation", + "src": "56964:210:1", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3171, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3145, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57198:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3144, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57198:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3147, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57210:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57210:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3149, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57227:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3148, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "57227:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "57197:49:1" + }, + "returnParameters": { + "id": 3151, + "nodeType": "ParameterList", + "parameters": [], + "src": "57264:0:1" + }, + "scope": 3498, + "src": "57179:247:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3229, + "nodeType": "Block", + "src": "57809:332:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3180, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57827:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57841:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57833:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57833:7:1", + "typeDescriptions": {} + } + }, + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57833:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "57827:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57845:34:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + }, + "value": "ERC721: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "id": 3179, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57819:61:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "57898:17:1", + "subExpression": { + "arguments": [ + { + "id": 3191, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57907:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3190, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "57899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57899:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57917:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + }, + "value": "ERC721: token already minted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "id": 3189, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57890:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57890:58:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3196, + "nodeType": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57988:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57980:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57980:7:1", + "typeDescriptions": {} + } + }, + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57980:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3202, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57992:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3203, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3197, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "57959:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57959:45:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3205, + "nodeType": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3210, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58037:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3206, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58015:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3208, + "indexExpression": { + "id": 3207, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58029:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58015:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3209, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "58015:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58015:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3212, + "nodeType": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3216, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58073:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3217, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58082:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3213, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58056:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3215, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "58056:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58056:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3219, + "nodeType": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58118:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58110:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58110:7:1", + "typeDescriptions": {} + } + }, + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58110:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3225, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58122:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3226, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3220, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58101:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58101:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3228, + "nodeType": "EmitStatement", + "src": "58096:38:1" + } + ] + }, + "documentation": { + "id": 3172, + "nodeType": "StructuredDocumentation", + "src": "57432:311:1", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3174, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57763:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57763:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3176, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57775:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57775:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "57762:29:1" + }, + "returnParameters": { + "id": 3178, + "nodeType": "ParameterList", + "parameters": [], + "src": "57809:0:1" + }, + "scope": 3498, + "src": "57748:393:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3298, + "nodeType": "Block", + "src": "58407:478:1", + "statements": [ + { + "assignments": [ + 3237 + ], + "declarations": [ + { + "constant": false, + "id": 3237, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "58417:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58417:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3242, + "initialValue": { + "arguments": [ + { + "id": 3240, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58448:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3238, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "58433:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "58433:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58433:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3244, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58506:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58521:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58513:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58513:7:1", + "typeDescriptions": {} + } + }, + "id": 3248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58513:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3249, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58525:7:1", + "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": 3243, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "58485:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58485:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3251, + "nodeType": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58588:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58580:7:1", + "typeDescriptions": {} + } + }, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58580:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3257, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58592:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3252, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "58571:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58571:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3259, + "nodeType": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 3262, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58656:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3264, + "indexExpression": { + "id": 3263, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58667:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58656:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 3261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58650:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3260, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "58650:5:1", + "typeDescriptions": {} + } + }, + "id": 3265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58650:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes storage pointer" + } + }, + "id": 3266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "58650:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 3267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58687:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "58650:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3275, + "nodeType": "IfStatement", + "src": "58646:95:1", + "trueBody": { + "id": 3274, + "nodeType": "Block", + "src": "58690:51:1", + "statements": [ + { + "expression": { + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "58704:26:1", + "subExpression": { + "baseExpression": { + "id": 3269, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58711:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3271, + "indexExpression": { + "id": 3270, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58722:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "58711:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3273, + "nodeType": "ExpressionStatement", + "src": "58704:26:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 3280, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58779:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3276, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58751:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3278, + "indexExpression": { + "id": 3277, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58765:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58751:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3279, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "58751:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58751:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3282, + "nodeType": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3286, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58818:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3283, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58798:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 2306, + "src": "58798:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + } + }, + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58798:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3288, + "nodeType": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3290, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58851:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58866:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58858:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58858:7:1", + "typeDescriptions": {} + } + }, + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58858:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3295, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58870:7:1", + "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": 3289, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58842:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58842:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3297, + "nodeType": "EmitStatement", + "src": "58837:41:1" + } + ] + }, + "documentation": { + "id": 3231, + "nodeType": "StructuredDocumentation", + "src": "58147:206:1", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3299, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3233, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3299, + "src": "58373:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "58372:17:1" + }, + "returnParameters": { + "id": 3235, + "nodeType": "ParameterList", + "parameters": [], + "src": "58407:0:1" + }, + "scope": 3498, + "src": "58358:527:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3370, + "nodeType": "Block", + "src": "59288:505:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3312, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59321:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3310, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "59306:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "59306:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59306:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3314, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59333:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "59306:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59339:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + }, + "value": "ERC721: transfer of token that is not own" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "id": 3309, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59298:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59298:85:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3318, + "nodeType": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3320, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59419:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59433:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59425:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59425:7:1", + "typeDescriptions": {} + } + }, + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59425:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "59419:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59437:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + }, + "value": "ERC721: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "id": 3319, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59411:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59411:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3328, + "nodeType": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3330, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59508:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3331, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59514:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3332, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59518:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3329, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "59487:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59487:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3334, + "nodeType": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59605:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59597:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59597:7:1", + "typeDescriptions": {} + } + }, + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59597:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3340, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59609:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3335, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "59588:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59588:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3342, + "nodeType": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3347, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59655:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3343, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59628:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3345, + "indexExpression": { + "id": 3344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59642:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59628:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3346, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "59628:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59628:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3354, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59695:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3350, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3352, + "indexExpression": { + "id": 3351, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59687:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59673:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3353, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "59673:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59673:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3356, + "nodeType": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3360, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59731:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3361, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59740:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3357, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "59714:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "59714:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59714:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3363, + "nodeType": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3365, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59768:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3366, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59774:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3367, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59778:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3364, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "59759:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59759:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3369, + "nodeType": "EmitStatement", + "src": "59754:32:1" + } + ] + }, + "documentation": { + "id": 3300, + "nodeType": "StructuredDocumentation", + "src": "58891:313:1", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3302, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59228:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3304, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59242:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59242:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3306, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59254:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3305, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59254:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "59227:43:1" + }, + "returnParameters": { + "id": 3308, + "nodeType": "ParameterList", + "parameters": [], + "src": "59288:0:1" + }, + "scope": 3498, + "src": "59209:584:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3392, + "nodeType": "Block", + "src": "60021:131:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3381, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60047:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3380, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "60039:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60039:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "id": 3383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "60057:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + }, + "value": "ERC721Metadata: URI set of nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "id": 3379, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "60031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60031:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3385, + "nodeType": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "expression": { + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3386, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "60114:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3388, + "indexExpression": { + "id": 3387, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60125:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "60114:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3389, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "60136:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60114:31:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3391, + "nodeType": "ExpressionStatement", + "src": "60114:31:1" + } + ] + }, + "documentation": { + "id": 3372, + "nodeType": "StructuredDocumentation", + "src": "59799:136:1", + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setTokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3374, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59962:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59962:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3376, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59979:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3375, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "59979:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "59961:42:1" + }, + "returnParameters": { + "id": 3378, + "nodeType": "ParameterList", + "parameters": [], + "src": "60021:0:1" + }, + "scope": 3498, + "src": "59940:212:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3403, + "nodeType": "Block", + "src": "60437:36:1", + "statements": [ + { + "expression": { + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3399, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "60447:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3400, + "name": "baseURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "60458:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60447:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3402, + "nodeType": "ExpressionStatement", + "src": "60447:19:1" + } + ] + }, + "documentation": { + "id": 3394, + "nodeType": "StructuredDocumentation", + "src": "60158:212:1", + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3404, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setBaseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3396, + "mutability": "mutable", + "name": "baseURI_", + "nodeType": "VariableDeclaration", + "scope": 3404, + "src": "60396:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3395, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "60396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "60395:24:1" + }, + "returnParameters": { + "id": 3398, + "nodeType": "ParameterList", + "parameters": [], + "src": "60437:0:1" + }, + "scope": 3498, + "src": "60375:98:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3461, + "nodeType": "Block", + "src": "61156:459:1", + "statements": [ + { + "condition": { + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "61170:16:1", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3418, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61171:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 1154, + "src": "61171:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61171:15:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3425, + "nodeType": "IfStatement", + "src": "61166:58:1", + "trueBody": { + "id": 3424, + "nodeType": "Block", + "src": "61188:36:1", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 3422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61209:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3417, + "id": 3423, + "nodeType": "Return", + "src": "61202:11:1" + } + ] + } + }, + { + "assignments": [ + 3427 + ], + "declarations": [ + { + "constant": false, + "id": 3427, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61233:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3426, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61233:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3445, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 3433, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61327:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3432, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "61311:15:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$726_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 3434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61311:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$726", + "typeString": "contract IERC721Receiver" + } + }, + "id": 3435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 725, + "src": "61311:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "61311:45:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3437, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "61370:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61370:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3439, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "61396:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3440, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "61414:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3441, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3413, + "src": "61435:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3430, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61275:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "61275:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 3442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61275:175:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61452:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "expression": { + "id": 3428, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61259:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 1225, + "src": "61259:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 3444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61259:246:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "assignments": [ + 3447 + ], + "declarations": [ + { + "constant": false, + "id": 3447, + "mutability": "mutable", + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61515:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3446, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61515:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "id": 3455, + "initialValue": { + "arguments": [ + { + "id": 3450, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3427, + "src": "61542:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 3452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "61555:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 3451, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61555:6:1", + "typeDescriptions": {} + } + } + ], + "id": 3453, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61554:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "expression": { + "id": 3448, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61531:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "61531:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61531:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3456, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "61581:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3457, + "name": "_ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "61591:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "61581:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3459, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61580:28:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3417, + "id": 3460, + "nodeType": "Return", + "src": "61573:35:1" + } + ] + }, + "documentation": { + "id": 3405, + "nodeType": "StructuredDocumentation", + "src": "60479:542:1", + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3462, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3407, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61058:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61058:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3409, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61072:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61072:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3411, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61084:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3410, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3413, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61101:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3412, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61101:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "61057:63:1" + }, + "returnParameters": { + "id": 3417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3416, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61146:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3415, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "61146:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "61145:6:1" + }, + "scope": 3498, + "src": "61026:589:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3485, + "nodeType": "Block", + "src": "61791:125:1", + "statements": [ + { + "expression": { + "id": 3474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3470, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "61801:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 3472, + "indexExpression": { + "id": 3471, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61817:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "61801:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3473, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61828:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "61801:29:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3475, + "nodeType": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 3479, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61869:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3477, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "61854:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "61854:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61854:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3481, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61879:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3482, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3476, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "61845:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61845:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3484, + "nodeType": "EmitStatement", + "src": "61840:51:1" + } + ] + }, + "documentation": { + "id": 3463, + "nodeType": "StructuredDocumentation", + "src": "61621:101:1", + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3486, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3465, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61745:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61745:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3467, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61757:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61757:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "61744:29:1" + }, + "returnParameters": { + "id": 3469, + "nodeType": "ParameterList", + "parameters": [], + "src": "61791:0:1" + }, + "scope": 3498, + "src": "61727:189:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3496, + "nodeType": "Block", + "src": "62602:3:1", + "statements": [] + }, + "documentation": { + "id": 3487, + "nodeType": "StructuredDocumentation", + "src": "61922:585:1", + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3497, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3489, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62542:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62542:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3491, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62556:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62556:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3493, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62568:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "62568:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "62541:43:1" + }, + "returnParameters": { + "id": 3495, + "nodeType": "ParameterList", + "parameters": [], + "src": "62602:0:1" + }, + "scope": 3498, + "src": "62512:93:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "46080:16527:1" + } + ], + "src": "84:62524:1" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "license": "MIT" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 509, + "name": "PragmaDirective", + "src": "84:31:1" + }, + { + "attributes": { + "abstract": true, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgSender", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 510, + "name": "ParameterList", + "src": "668:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 518, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 511, + "name": "ElementaryTypeName", + "src": "702:15:1" + } + ], + "id": 512, + "name": "VariableDeclaration", + "src": "702:15:1" + } + ], + "id": 513, + "name": "ParameterList", + "src": "701:17:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 513 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 514, + "name": "Identifier", + "src": "736:3:1" + } + ], + "id": 515, + "name": "MemberAccess", + "src": "736:10:1" + } + ], + "id": 516, + "name": "Return", + "src": "729:17:1" + } + ], + "id": 517, + "name": "Block", + "src": "719:34:1" + } + ], + "id": 518, + "name": "FunctionDefinition", + "src": "649:104:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgData", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 519, + "name": "ParameterList", + "src": "776:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 529, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 520, + "name": "ElementaryTypeName", + "src": "810:5:1" + } + ], + "id": 521, + "name": "VariableDeclaration", + "src": "810:12:1" + } + ], + "id": 522, + "name": "ParameterList", + "src": "809:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "contract Context", + "value": "this" + }, + "id": 523, + "name": "Identifier", + "src": "834:4:1" + } + ], + "id": 524, + "name": "ExpressionStatement", + "src": "834:4:1" + }, + { + "attributes": { + "functionReturnParameters": 522 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "data", + "type": "bytes calldata" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 525, + "name": "Identifier", + "src": "974:3:1" + } + ], + "id": 526, + "name": "MemberAccess", + "src": "974:8:1" + } + ], + "id": 527, + "name": "Return", + "src": "967:15:1" + } + ], + "id": 528, + "name": "Block", + "src": "824:165:1" + } + ], + "id": 529, + "name": "FunctionDefinition", + "src": "759:230:1" + } + ], + "id": 530, + "name": "ContractDefinition", + "src": "617:374:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 531, + "name": "PragmaDirective", + "src": "1053:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "id": 532, + "name": "StructuredDocumentation", + "src": "1086:279:1" + }, + { + "attributes": { + "functionSelector": "01ffc9a7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 541, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "id": 533, + "name": "StructuredDocumentation", + "src": "1390:340:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 534, + "name": "ElementaryTypeName", + "src": "1762:6:1" + } + ], + "id": 535, + "name": "VariableDeclaration", + "src": "1762:18:1" + } + ], + "id": 536, + "name": "ParameterList", + "src": "1761:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 537, + "name": "ElementaryTypeName", + "src": "1805:4:1" + } + ], + "id": 538, + "name": "VariableDeclaration", + "src": "1805:4:1" + } + ], + "id": 539, + "name": "ParameterList", + "src": "1804:6:1" + } + ], + "id": 540, + "name": "FunctionDefinition", + "src": "1735:76:1" + } + ], + "id": 541, + "name": "ContractDefinition", + "src": "1366:447:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 542, + "name": "PragmaDirective", + "src": "1873:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "id": 543, + "name": "StructuredDocumentation", + "src": "1907:67:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 544, + "name": "UserDefinedTypeName", + "src": "1996:7:1" + } + ], + "id": 545, + "name": "InheritanceSpecifier", + "src": "1996:7:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Transfer" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 546, + "name": "StructuredDocumentation", + "src": "2010:88:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "from", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 547, + "name": "ElementaryTypeName", + "src": "2118:7:1" + } + ], + "id": 548, + "name": "VariableDeclaration", + "src": "2118:20:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "to", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 549, + "name": "ElementaryTypeName", + "src": "2140:7:1" + } + ], + "id": 550, + "name": "VariableDeclaration", + "src": "2140:18:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 551, + "name": "ElementaryTypeName", + "src": "2160:7:1" + } + ], + "id": 552, + "name": "VariableDeclaration", + "src": "2160:23:1" + } + ], + "id": 553, + "name": "ParameterList", + "src": "2117:67:1" + } + ], + "id": 554, + "name": "EventDefinition", + "src": "2103:82:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Approval" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 555, + "name": "StructuredDocumentation", + "src": "2191:94:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 556, + "name": "ElementaryTypeName", + "src": "2305:7:1" + } + ], + "id": 557, + "name": "VariableDeclaration", + "src": "2305:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 558, + "name": "ElementaryTypeName", + "src": "2328:7:1" + } + ], + "id": 559, + "name": "VariableDeclaration", + "src": "2328:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 560, + "name": "ElementaryTypeName", + "src": "2354:7:1" + } + ], + "id": 561, + "name": "VariableDeclaration", + "src": "2354:23:1" + } + ], + "id": 562, + "name": "ParameterList", + "src": "2304:74:1" + } + ], + "id": 563, + "name": "EventDefinition", + "src": "2290:89:1" + }, + { + "attributes": { + "anonymous": false, + "name": "ApprovalForAll" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 564, + "name": "StructuredDocumentation", + "src": "2385:117:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 565, + "name": "ElementaryTypeName", + "src": "2528:7:1" + } + ], + "id": 566, + "name": "VariableDeclaration", + "src": "2528:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 567, + "name": "ElementaryTypeName", + "src": "2551:7:1" + } + ], + "id": 568, + "name": "VariableDeclaration", + "src": "2551:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 569, + "name": "ElementaryTypeName", + "src": "2577:4:1" + } + ], + "id": 570, + "name": "VariableDeclaration", + "src": "2577:13:1" + } + ], + "id": 571, + "name": "ParameterList", + "src": "2527:64:1" + } + ], + "id": 572, + "name": "EventDefinition", + "src": "2507:85:1" + }, + { + "attributes": { + "functionSelector": "70a08231", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "id": 573, + "name": "StructuredDocumentation", + "src": "2598:76:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 574, + "name": "ElementaryTypeName", + "src": "2698:7:1" + } + ], + "id": 575, + "name": "VariableDeclaration", + "src": "2698:13:1" + } + ], + "id": 576, + "name": "ParameterList", + "src": "2697:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "balance", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 577, + "name": "ElementaryTypeName", + "src": "2736:7:1" + } + ], + "id": 578, + "name": "VariableDeclaration", + "src": "2736:15:1" + } + ], + "id": 579, + "name": "ParameterList", + "src": "2735:17:1" + } + ], + "id": 580, + "name": "FunctionDefinition", + "src": "2679:74:1" + }, + { + "attributes": { + "functionSelector": "6352211e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 581, + "name": "StructuredDocumentation", + "src": "2759:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 582, + "name": "ElementaryTypeName", + "src": "2912:7:1" + } + ], + "id": 583, + "name": "VariableDeclaration", + "src": "2912:15:1" + } + ], + "id": 584, + "name": "ParameterList", + "src": "2911:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 585, + "name": "ElementaryTypeName", + "src": "2952:7:1" + } + ], + "id": 586, + "name": "VariableDeclaration", + "src": "2952:13:1" + } + ], + "id": 587, + "name": "ParameterList", + "src": "2951:15:1" + } + ], + "id": 588, + "name": "FunctionDefinition", + "src": "2895:72:1" + }, + { + "attributes": { + "functionSelector": "42842e0e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 589, + "name": "StructuredDocumentation", + "src": "2973:690:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 590, + "name": "ElementaryTypeName", + "src": "3694:7:1" + } + ], + "id": 591, + "name": "VariableDeclaration", + "src": "3694:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 592, + "name": "ElementaryTypeName", + "src": "3708:7:1" + } + ], + "id": 593, + "name": "VariableDeclaration", + "src": "3708:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 594, + "name": "ElementaryTypeName", + "src": "3720:7:1" + } + ], + "id": 595, + "name": "VariableDeclaration", + "src": "3720:15:1" + } + ], + "id": 596, + "name": "ParameterList", + "src": "3693:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 597, + "name": "ParameterList", + "src": "3745:0:1" + } + ], + "id": 598, + "name": "FunctionDefinition", + "src": "3668:78:1" + }, + { + "attributes": { + "functionSelector": "23b872dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "id": 599, + "name": "StructuredDocumentation", + "src": "3752:504:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 600, + "name": "ElementaryTypeName", + "src": "4283:7:1" + } + ], + "id": 601, + "name": "VariableDeclaration", + "src": "4283:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 602, + "name": "ElementaryTypeName", + "src": "4297:7:1" + } + ], + "id": 603, + "name": "VariableDeclaration", + "src": "4297:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 604, + "name": "ElementaryTypeName", + "src": "4309:7:1" + } + ], + "id": 605, + "name": "VariableDeclaration", + "src": "4309:15:1" + } + ], + "id": 606, + "name": "ParameterList", + "src": "4282:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 607, + "name": "ParameterList", + "src": "4334:0:1" + } + ], + "id": 608, + "name": "FunctionDefinition", + "src": "4261:74:1" + }, + { + "attributes": { + "functionSelector": "095ea7b3", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "id": 609, + "name": "StructuredDocumentation", + "src": "4341:452:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 610, + "name": "ElementaryTypeName", + "src": "4815:7:1" + } + ], + "id": 611, + "name": "VariableDeclaration", + "src": "4815:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 612, + "name": "ElementaryTypeName", + "src": "4827:7:1" + } + ], + "id": 613, + "name": "VariableDeclaration", + "src": "4827:15:1" + } + ], + "id": 614, + "name": "ParameterList", + "src": "4814:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 615, + "name": "ParameterList", + "src": "4852:0:1" + } + ], + "id": 616, + "name": "FunctionDefinition", + "src": "4798:55:1" + }, + { + "attributes": { + "functionSelector": "081812fc", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 617, + "name": "StructuredDocumentation", + "src": "4859:139:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 618, + "name": "ElementaryTypeName", + "src": "5024:7:1" + } + ], + "id": 619, + "name": "VariableDeclaration", + "src": "5024:15:1" + } + ], + "id": 620, + "name": "ParameterList", + "src": "5023:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 621, + "name": "ElementaryTypeName", + "src": "5064:7:1" + } + ], + "id": 622, + "name": "VariableDeclaration", + "src": "5064:16:1" + } + ], + "id": 623, + "name": "ParameterList", + "src": "5063:18:1" + } + ], + "id": 624, + "name": "FunctionDefinition", + "src": "5003:79:1" + }, + { + "attributes": { + "functionSelector": "a22cb465", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "id": 625, + "name": "StructuredDocumentation", + "src": "5088:309:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 626, + "name": "ElementaryTypeName", + "src": "5429:7:1" + } + ], + "id": 627, + "name": "VariableDeclaration", + "src": "5429:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_approved", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 628, + "name": "ElementaryTypeName", + "src": "5447:4:1" + } + ], + "id": 629, + "name": "VariableDeclaration", + "src": "5447:14:1" + } + ], + "id": 630, + "name": "ParameterList", + "src": "5428:34:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 631, + "name": "ParameterList", + "src": "5471:0:1" + } + ], + "id": 632, + "name": "FunctionDefinition", + "src": "5402:70:1" + }, + { + "attributes": { + "functionSelector": "e985e9c5", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "id": 633, + "name": "StructuredDocumentation", + "src": "5478:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 634, + "name": "ElementaryTypeName", + "src": "5647:7:1" + } + ], + "id": 635, + "name": "VariableDeclaration", + "src": "5647:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 636, + "name": "ElementaryTypeName", + "src": "5662:7:1" + } + ], + "id": 637, + "name": "VariableDeclaration", + "src": "5662:16:1" + } + ], + "id": 638, + "name": "ParameterList", + "src": "5646:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 639, + "name": "ElementaryTypeName", + "src": "5703:4:1" + } + ], + "id": 640, + "name": "VariableDeclaration", + "src": "5703:4:1" + } + ], + "id": 641, + "name": "ParameterList", + "src": "5702:6:1" + } + ], + "id": 642, + "name": "FunctionDefinition", + "src": "5621:88:1" + }, + { + "attributes": { + "functionSelector": "b88d4fde", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 643, + "name": "StructuredDocumentation", + "src": "5715:568:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 644, + "name": "ElementaryTypeName", + "src": "6314:7:1" + } + ], + "id": 645, + "name": "VariableDeclaration", + "src": "6314:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 646, + "name": "ElementaryTypeName", + "src": "6328:7:1" + } + ], + "id": 647, + "name": "VariableDeclaration", + "src": "6328:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 648, + "name": "ElementaryTypeName", + "src": "6340:7:1" + } + ], + "id": 649, + "name": "VariableDeclaration", + "src": "6340:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 654, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 650, + "name": "ElementaryTypeName", + "src": "6357:5:1" + } + ], + "id": 651, + "name": "VariableDeclaration", + "src": "6357:19:1" + } + ], + "id": 652, + "name": "ParameterList", + "src": "6313:64:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 653, + "name": "ParameterList", + "src": "6386:0:1" + } + ], + "id": 654, + "name": "FunctionDefinition", + "src": "6288:99:1" + } + ], + "id": 655, + "name": "ContractDefinition", + "src": "1975:4414:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 656, + "name": "PragmaDirective", + "src": "6457:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 657, + "name": "StructuredDocumentation", + "src": "6491:133:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 658, + "name": "UserDefinedTypeName", + "src": "6654:7:1" + } + ], + "id": 659, + "name": "InheritanceSpecifier", + "src": "6654:7:1" + }, + { + "attributes": { + "functionSelector": "06fdde03", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection name." + }, + "id": 660, + "name": "StructuredDocumentation", + "src": "6669:58:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 661, + "name": "ParameterList", + "src": "6745:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 665, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 662, + "name": "ElementaryTypeName", + "src": "6771:6:1" + } + ], + "id": 663, + "name": "VariableDeclaration", + "src": "6771:13:1" + } + ], + "id": 664, + "name": "ParameterList", + "src": "6770:15:1" + } + ], + "id": 665, + "name": "FunctionDefinition", + "src": "6732:54:1" + }, + { + "attributes": { + "functionSelector": "95d89b41", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection symbol." + }, + "id": 666, + "name": "StructuredDocumentation", + "src": "6792:60:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 667, + "name": "ParameterList", + "src": "6872:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 671, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 668, + "name": "ElementaryTypeName", + "src": "6898:6:1" + } + ], + "id": 669, + "name": "VariableDeclaration", + "src": "6898:13:1" + } + ], + "id": 670, + "name": "ParameterList", + "src": "6897:15:1" + } + ], + "id": 671, + "name": "FunctionDefinition", + "src": "6857:56:1" + }, + { + "attributes": { + "functionSelector": "c87b56dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "id": 672, + "name": "StructuredDocumentation", + "src": "6919:90:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 679, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 673, + "name": "ElementaryTypeName", + "src": "7032:7:1" + } + ], + "id": 674, + "name": "VariableDeclaration", + "src": "7032:15:1" + } + ], + "id": 675, + "name": "ParameterList", + "src": "7031:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 679, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 676, + "name": "ElementaryTypeName", + "src": "7072:6:1" + } + ], + "id": 677, + "name": "VariableDeclaration", + "src": "7072:13:1" + } + ], + "id": 678, + "name": "ParameterList", + "src": "7071:15:1" + } + ], + "id": 679, + "name": "FunctionDefinition", + "src": "7014:73:1" + } + ], + "id": 680, + "name": "ContractDefinition", + "src": "6625:464:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 681, + "name": "PragmaDirective", + "src": "7161:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 682, + "name": "StructuredDocumentation", + "src": "7195:136:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 683, + "name": "UserDefinedTypeName", + "src": "7363:7:1" + } + ], + "id": 684, + "name": "InheritanceSpecifier", + "src": "7363:7:1" + }, + { + "attributes": { + "functionSelector": "18160ddd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "id": 685, + "name": "StructuredDocumentation", + "src": "7378:82:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 686, + "name": "ParameterList", + "src": "7485:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 690, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 687, + "name": "ElementaryTypeName", + "src": "7511:7:1" + } + ], + "id": 688, + "name": "VariableDeclaration", + "src": "7511:7:1" + } + ], + "id": 689, + "name": "ParameterList", + "src": "7510:9:1" + } + ], + "id": 690, + "name": "FunctionDefinition", + "src": "7465:55:1" + }, + { + "attributes": { + "functionSelector": "2f745c59", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "id": 691, + "name": "StructuredDocumentation", + "src": "7526:171:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 692, + "name": "ElementaryTypeName", + "src": "7731:7:1" + } + ], + "id": 693, + "name": "VariableDeclaration", + "src": "7731:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 694, + "name": "ElementaryTypeName", + "src": "7746:7:1" + } + ], + "id": 695, + "name": "VariableDeclaration", + "src": "7746:13:1" + } + ], + "id": 696, + "name": "ParameterList", + "src": "7730:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 697, + "name": "ElementaryTypeName", + "src": "7784:7:1" + } + ], + "id": 698, + "name": "VariableDeclaration", + "src": "7784:15:1" + } + ], + "id": 699, + "name": "ParameterList", + "src": "7783:17:1" + } + ], + "id": 700, + "name": "FunctionDefinition", + "src": "7702:99:1" + }, + { + "attributes": { + "functionSelector": "4f6ccce7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "id": 701, + "name": "StructuredDocumentation", + "src": "7807:164:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 702, + "name": "ElementaryTypeName", + "src": "7998:7:1" + } + ], + "id": 703, + "name": "VariableDeclaration", + "src": "7998:13:1" + } + ], + "id": 704, + "name": "ParameterList", + "src": "7997:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 705, + "name": "ElementaryTypeName", + "src": "8036:7:1" + } + ], + "id": 706, + "name": "VariableDeclaration", + "src": "8036:7:1" + } + ], + "id": 707, + "name": "ParameterList", + "src": "8035:9:1" + } + ], + "id": 708, + "name": "FunctionDefinition", + "src": "7976:69:1" + } + ], + "id": 709, + "name": "ContractDefinition", + "src": "7332:715:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 710, + "name": "PragmaDirective", + "src": "8117:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "id": 711, + "name": "StructuredDocumentation", + "src": "8150:152:1" + }, + { + "attributes": { + "functionSelector": "150b7a02", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "onERC721Received", + "scope": 726, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "id": 712, + "name": "StructuredDocumentation", + "src": "8335:485:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 713, + "name": "ElementaryTypeName", + "src": "8851:7:1" + } + ], + "id": 714, + "name": "VariableDeclaration", + "src": "8851:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 715, + "name": "ElementaryTypeName", + "src": "8869:7:1" + } + ], + "id": 716, + "name": "VariableDeclaration", + "src": "8869:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 717, + "name": "ElementaryTypeName", + "src": "8883:7:1" + } + ], + "id": 718, + "name": "VariableDeclaration", + "src": "8883:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 725, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 719, + "name": "ElementaryTypeName", + "src": "8900:5:1" + } + ], + "id": 720, + "name": "VariableDeclaration", + "src": "8900:19:1" + } + ], + "id": 721, + "name": "ParameterList", + "src": "8850:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 722, + "name": "ElementaryTypeName", + "src": "8939:6:1" + } + ], + "id": 723, + "name": "VariableDeclaration", + "src": "8939:6:1" + } + ], + "id": 724, + "name": "ParameterList", + "src": "8938:8:1" + } + ], + "id": 725, + "name": "FunctionDefinition", + "src": "8825:122:1" + } + ], + "id": 726, + "name": "ContractDefinition", + "src": "8303:646:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 727, + "name": "PragmaDirective", + "src": "9009:31:1" + }, + { + "attributes": { + "abstract": true, + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "id": 728, + "name": "StructuredDocumentation", + "src": "9043:171:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 729, + "name": "UserDefinedTypeName", + "src": "9243:7:1" + } + ], + "id": 730, + "name": "InheritanceSpecifier", + "src": "9243:7:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 731, + "name": "ElementaryTypeName", + "src": "9340:6:1" + }, + { + "attributes": { + "hexvalue": "30783031666663396137", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 33540519", + "value": "0x01ffc9a7" + }, + "id": 732, + "name": "Literal", + "src": "9387:10:1" + } + ], + "id": 733, + "name": "VariableDeclaration", + "src": "9340:57:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_supportedInterfaces", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes4 => bool)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes4 => bool)" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 735, + "name": "ElementaryTypeName", + "src": "9499:6:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 736, + "name": "ElementaryTypeName", + "src": "9509:4:1" + } + ], + "id": 737, + "name": "Mapping", + "src": "9491:23:1" + }, + { + "attributes": { + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 734, + "name": "StructuredDocumentation", + "src": "9404:82:1" + } + ], + "id": 738, + "name": "VariableDeclaration", + "src": "9491:52:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 739, + "name": "ParameterList", + "src": "9562:2:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 740, + "name": "ParameterList", + "src": "9565:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 741, + "name": "Identifier", + "src": "9711:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 733, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC165" + }, + "id": 742, + "name": "Identifier", + "src": "9730:20:1" + } + ], + "id": 743, + "name": "FunctionCall", + "src": "9711:40:1" + } + ], + "id": 744, + "name": "ExpressionStatement", + "src": "9711:40:1" + } + ], + "id": 745, + "name": "Block", + "src": "9565:193:1" + } + ], + "id": 746, + "name": "FunctionDefinition", + "src": "9550:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 540 + ], + "functionSelector": "01ffc9a7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 781, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "id": 747, + "name": "StructuredDocumentation", + "src": "9764:139:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 751, + "name": "OverrideSpecifier", + "src": "9975:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 748, + "name": "ElementaryTypeName", + "src": "9935:6:1" + } + ], + "id": 749, + "name": "VariableDeclaration", + "src": "9935:18:1" + } + ], + "id": 750, + "name": "ParameterList", + "src": "9934:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 752, + "name": "ElementaryTypeName", + "src": "9993:4:1" + } + ], + "id": 753, + "name": "VariableDeclaration", + "src": "9993:4:1" + } + ], + "id": 754, + "name": "ParameterList", + "src": "9992:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 754 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 755, + "name": "Identifier", + "src": "10016:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 749, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 756, + "name": "Identifier", + "src": "10037:11:1" + } + ], + "id": 757, + "name": "IndexAccess", + "src": "10016:33:1" + } + ], + "id": 758, + "name": "Return", + "src": "10009:40:1" + } + ], + "id": 759, + "name": "Block", + "src": "9999:57:1" + } + ], + "id": 760, + "name": "FunctionDefinition", + "src": "9908:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_registerInterface", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 761, + "name": "StructuredDocumentation", + "src": "10062:383:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 780, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 762, + "name": "ElementaryTypeName", + "src": "10478:6:1" + } + ], + "id": 763, + "name": "VariableDeclaration", + "src": "10478:18:1" + } + ], + "id": 764, + "name": "ParameterList", + "src": "10477:20:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 765, + "name": "ParameterList", + "src": "10515:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 766, + "name": "Identifier", + "src": "10525:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 767, + "name": "Identifier", + "src": "10533:11:1" + }, + { + "attributes": { + "hexvalue": "30786666666666666666", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4294967295", + "value": "0xffffffff" + }, + "id": 768, + "name": "Literal", + "src": "10548:10:1" + } + ], + "id": 769, + "name": "BinaryOperation", + "src": "10533:25:1" + }, + { + "attributes": { + "hexvalue": "4552433136353a20696e76616c696420696e74657266616365206964", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC165: invalid interface id\"", + "value": "ERC165: invalid interface id" + }, + "id": 770, + "name": "Literal", + "src": "10560:30:1" + } + ], + "id": 771, + "name": "FunctionCall", + "src": "10525:66:1" + } + ], + "id": 772, + "name": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 773, + "name": "Identifier", + "src": "10601:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 774, + "name": "Identifier", + "src": "10622:11:1" + } + ], + "id": 775, + "name": "IndexAccess", + "src": "10601:33:1" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 776, + "name": "Literal", + "src": "10637:4:1" + } + ], + "id": 777, + "name": "Assignment", + "src": "10601:40:1" + } + ], + "id": 778, + "name": "ExpressionStatement", + "src": "10601:40:1" + } + ], + "id": 779, + "name": "Block", + "src": "10515:133:1" + } + ], + "id": 780, + "name": "FunctionDefinition", + "src": "10450:198:1" + } + ], + "id": 781, + "name": "ContractDefinition", + "src": "9215:1435:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 782, + "name": "PragmaDirective", + "src": "10703:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "id": 783, + "name": "StructuredDocumentation", + "src": "10736:563:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryAdd", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 784, + "name": "StructuredDocumentation", + "src": "11323:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 785, + "name": "ElementaryTypeName", + "src": "11475:7:1" + } + ], + "id": 786, + "name": "VariableDeclaration", + "src": "11475:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 787, + "name": "ElementaryTypeName", + "src": "11486:7:1" + } + ], + "id": 788, + "name": "VariableDeclaration", + "src": "11486:9:1" + } + ], + "id": 789, + "name": "ParameterList", + "src": "11474:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 790, + "name": "ElementaryTypeName", + "src": "11520:4:1" + } + ], + "id": 791, + "name": "VariableDeclaration", + "src": "11520:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 792, + "name": "ElementaryTypeName", + "src": "11526:7:1" + } + ], + "id": 793, + "name": "VariableDeclaration", + "src": "11526:7:1" + } + ], + "id": 794, + "name": "ParameterList", + "src": "11519:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 796 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 813, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 795, + "name": "ElementaryTypeName", + "src": "11545:7:1" + } + ], + "id": 796, + "name": "VariableDeclaration", + "src": "11545:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 797, + "name": "Identifier", + "src": "11557:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 788, + "type": "uint256", + "value": "b" + }, + "id": 798, + "name": "Identifier", + "src": "11561:1:1" + } + ], + "id": 799, + "name": "BinaryOperation", + "src": "11557:5:1" + } + ], + "id": 800, + "name": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 801, + "name": "Identifier", + "src": "11576:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 802, + "name": "Identifier", + "src": "11580:1:1" + } + ], + "id": 803, + "name": "BinaryOperation", + "src": "11576:5:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 804, + "name": "Literal", + "src": "11591:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 805, + "name": "Literal", + "src": "11598:1:1" + } + ], + "id": 806, + "name": "TupleExpression", + "src": "11590:10:1" + } + ], + "id": 807, + "name": "Return", + "src": "11583:17:1" + } + ], + "id": 808, + "name": "IfStatement", + "src": "11572:28:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 809, + "name": "Literal", + "src": "11618:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 810, + "name": "Identifier", + "src": "11624:1:1" + } + ], + "id": 811, + "name": "TupleExpression", + "src": "11617:9:1" + } + ], + "id": 812, + "name": "Return", + "src": "11610:16:1" + } + ], + "id": 813, + "name": "Block", + "src": "11535:98:1" + } + ], + "id": 814, + "name": "FunctionDefinition", + "src": "11459:174:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "trySub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 815, + "name": "StructuredDocumentation", + "src": "11639:135:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 816, + "name": "ElementaryTypeName", + "src": "11795:7:1" + } + ], + "id": 817, + "name": "VariableDeclaration", + "src": "11795:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 818, + "name": "ElementaryTypeName", + "src": "11806:7:1" + } + ], + "id": 819, + "name": "VariableDeclaration", + "src": "11806:9:1" + } + ], + "id": 820, + "name": "ParameterList", + "src": "11794:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 821, + "name": "ElementaryTypeName", + "src": "11840:4:1" + } + ], + "id": 822, + "name": "VariableDeclaration", + "src": "11840:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 823, + "name": "ElementaryTypeName", + "src": "11846:7:1" + } + ], + "id": 824, + "name": "VariableDeclaration", + "src": "11846:7:1" + } + ], + "id": 825, + "name": "ParameterList", + "src": "11839:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 826, + "name": "Identifier", + "src": "11869:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 827, + "name": "Identifier", + "src": "11873:1:1" + } + ], + "id": 828, + "name": "BinaryOperation", + "src": "11869:5:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 829, + "name": "Literal", + "src": "11884:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 830, + "name": "Literal", + "src": "11891:1:1" + } + ], + "id": 831, + "name": "TupleExpression", + "src": "11883:10:1" + } + ], + "id": 832, + "name": "Return", + "src": "11876:17:1" + } + ], + "id": 833, + "name": "IfStatement", + "src": "11865:28:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 834, + "name": "Literal", + "src": "11911:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 835, + "name": "Identifier", + "src": "11917:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 836, + "name": "Identifier", + "src": "11921:1:1" + } + ], + "id": 837, + "name": "BinaryOperation", + "src": "11917:5:1" + } + ], + "id": 838, + "name": "TupleExpression", + "src": "11910:13:1" + } + ], + "id": 839, + "name": "Return", + "src": "11903:20:1" + } + ], + "id": 840, + "name": "Block", + "src": "11855:75:1" + } + ], + "id": 841, + "name": "FunctionDefinition", + "src": "11779:151:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 842, + "name": "StructuredDocumentation", + "src": "11936:137:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 843, + "name": "ElementaryTypeName", + "src": "12094:7:1" + } + ], + "id": 844, + "name": "VariableDeclaration", + "src": "12094:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 845, + "name": "ElementaryTypeName", + "src": "12105:7:1" + } + ], + "id": 846, + "name": "VariableDeclaration", + "src": "12105:9:1" + } + ], + "id": 847, + "name": "ParameterList", + "src": "12093:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 848, + "name": "ElementaryTypeName", + "src": "12139:4:1" + } + ], + "id": 849, + "name": "VariableDeclaration", + "src": "12139:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 850, + "name": "ElementaryTypeName", + "src": "12145:7:1" + } + ], + "id": 851, + "name": "VariableDeclaration", + "src": "12145:7:1" + } + ], + "id": 852, + "name": "ParameterList", + "src": "12138:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 853, + "name": "Identifier", + "src": "12386:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 854, + "name": "Literal", + "src": "12391:1:1" + } + ], + "id": 855, + "name": "BinaryOperation", + "src": "12386:6:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 856, + "name": "Literal", + "src": "12402:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 857, + "name": "Literal", + "src": "12408:1:1" + } + ], + "id": 858, + "name": "TupleExpression", + "src": "12401:9:1" + } + ], + "id": 859, + "name": "Return", + "src": "12394:16:1" + } + ], + "id": 860, + "name": "IfStatement", + "src": "12382:28:1" + }, + { + "attributes": { + "assignments": [ + 862 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 881, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 861, + "name": "ElementaryTypeName", + "src": "12420:7:1" + } + ], + "id": 862, + "name": "VariableDeclaration", + "src": "12420:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 863, + "name": "Identifier", + "src": "12432:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 864, + "name": "Identifier", + "src": "12436:1:1" + } + ], + "id": 865, + "name": "BinaryOperation", + "src": "12432:5:1" + } + ], + "id": 866, + "name": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 867, + "name": "Identifier", + "src": "12451:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 868, + "name": "Identifier", + "src": "12455:1:1" + } + ], + "id": 869, + "name": "BinaryOperation", + "src": "12451:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 870, + "name": "Identifier", + "src": "12460:1:1" + } + ], + "id": 871, + "name": "BinaryOperation", + "src": "12451:10:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 872, + "name": "Literal", + "src": "12471:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 873, + "name": "Literal", + "src": "12478:1:1" + } + ], + "id": 874, + "name": "TupleExpression", + "src": "12470:10:1" + } + ], + "id": 875, + "name": "Return", + "src": "12463:17:1" + } + ], + "id": 876, + "name": "IfStatement", + "src": "12447:33:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 877, + "name": "Literal", + "src": "12498:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 878, + "name": "Identifier", + "src": "12504:1:1" + } + ], + "id": 879, + "name": "TupleExpression", + "src": "12497:9:1" + } + ], + "id": 880, + "name": "Return", + "src": "12490:16:1" + } + ], + "id": 881, + "name": "Block", + "src": "12154:359:1" + } + ], + "id": 882, + "name": "FunctionDefinition", + "src": "12078:435:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryDiv", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 883, + "name": "StructuredDocumentation", + "src": "12519:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 884, + "name": "ElementaryTypeName", + "src": "12678:7:1" + } + ], + "id": 885, + "name": "VariableDeclaration", + "src": "12678:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 886, + "name": "ElementaryTypeName", + "src": "12689:7:1" + } + ], + "id": 887, + "name": "VariableDeclaration", + "src": "12689:9:1" + } + ], + "id": 888, + "name": "ParameterList", + "src": "12677:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 889, + "name": "ElementaryTypeName", + "src": "12723:4:1" + } + ], + "id": 890, + "name": "VariableDeclaration", + "src": "12723:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 891, + "name": "ElementaryTypeName", + "src": "12729:7:1" + } + ], + "id": 892, + "name": "VariableDeclaration", + "src": "12729:7:1" + } + ], + "id": 893, + "name": "ParameterList", + "src": "12722:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 894, + "name": "Identifier", + "src": "12752:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 895, + "name": "Literal", + "src": "12757:1:1" + } + ], + "id": 896, + "name": "BinaryOperation", + "src": "12752:6:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 897, + "name": "Literal", + "src": "12768:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 898, + "name": "Literal", + "src": "12775:1:1" + } + ], + "id": 899, + "name": "TupleExpression", + "src": "12767:10:1" + } + ], + "id": 900, + "name": "Return", + "src": "12760:17:1" + } + ], + "id": 901, + "name": "IfStatement", + "src": "12748:29:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 902, + "name": "Literal", + "src": "12795:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 885, + "type": "uint256", + "value": "a" + }, + "id": 903, + "name": "Identifier", + "src": "12801:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 904, + "name": "Identifier", + "src": "12805:1:1" + } + ], + "id": 905, + "name": "BinaryOperation", + "src": "12801:5:1" + } + ], + "id": 906, + "name": "TupleExpression", + "src": "12794:13:1" + } + ], + "id": 907, + "name": "Return", + "src": "12787:20:1" + } + ], + "id": 908, + "name": "Block", + "src": "12738:76:1" + } + ], + "id": 909, + "name": "FunctionDefinition", + "src": "12662:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 910, + "name": "StructuredDocumentation", + "src": "12820:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 911, + "name": "ElementaryTypeName", + "src": "12989:7:1" + } + ], + "id": 912, + "name": "VariableDeclaration", + "src": "12989:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 913, + "name": "ElementaryTypeName", + "src": "13000:7:1" + } + ], + "id": 914, + "name": "VariableDeclaration", + "src": "13000:9:1" + } + ], + "id": 915, + "name": "ParameterList", + "src": "12988:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 916, + "name": "ElementaryTypeName", + "src": "13034:4:1" + } + ], + "id": 917, + "name": "VariableDeclaration", + "src": "13034:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 918, + "name": "ElementaryTypeName", + "src": "13040:7:1" + } + ], + "id": 919, + "name": "VariableDeclaration", + "src": "13040:7:1" + } + ], + "id": 920, + "name": "ParameterList", + "src": "13033:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 921, + "name": "Identifier", + "src": "13063:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 922, + "name": "Literal", + "src": "13068:1:1" + } + ], + "id": 923, + "name": "BinaryOperation", + "src": "13063:6:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 924, + "name": "Literal", + "src": "13079:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 925, + "name": "Literal", + "src": "13086:1:1" + } + ], + "id": 926, + "name": "TupleExpression", + "src": "13078:10:1" + } + ], + "id": 927, + "name": "Return", + "src": "13071:17:1" + } + ], + "id": 928, + "name": "IfStatement", + "src": "13059:29:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 929, + "name": "Literal", + "src": "13106:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 912, + "type": "uint256", + "value": "a" + }, + "id": 930, + "name": "Identifier", + "src": "13112:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 931, + "name": "Identifier", + "src": "13116:1:1" + } + ], + "id": 932, + "name": "BinaryOperation", + "src": "13112:5:1" + } + ], + "id": 933, + "name": "TupleExpression", + "src": "13105:13:1" + } + ], + "id": 934, + "name": "Return", + "src": "13098:20:1" + } + ], + "id": 935, + "name": "Block", + "src": "13049:76:1" + } + ], + "id": 936, + "name": "FunctionDefinition", + "src": "12973:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 937, + "name": "StructuredDocumentation", + "src": "13131:224:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 938, + "name": "ElementaryTypeName", + "src": "13373:7:1" + } + ], + "id": 939, + "name": "VariableDeclaration", + "src": "13373:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 940, + "name": "ElementaryTypeName", + "src": "13384:7:1" + } + ], + "id": 941, + "name": "VariableDeclaration", + "src": "13384:9:1" + } + ], + "id": 942, + "name": "ParameterList", + "src": "13372:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 943, + "name": "ElementaryTypeName", + "src": "13418:7:1" + } + ], + "id": 944, + "name": "VariableDeclaration", + "src": "13418:7:1" + } + ], + "id": 945, + "name": "ParameterList", + "src": "13417:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 947 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 961, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 946, + "name": "ElementaryTypeName", + "src": "13437:7:1" + } + ], + "id": 947, + "name": "VariableDeclaration", + "src": "13437:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 948, + "name": "Identifier", + "src": "13449:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 941, + "type": "uint256", + "value": "b" + }, + "id": 949, + "name": "Identifier", + "src": "13453:1:1" + } + ], + "id": 950, + "name": "BinaryOperation", + "src": "13449:5:1" + } + ], + "id": 951, + "name": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 952, + "name": "Identifier", + "src": "13464:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 953, + "name": "Identifier", + "src": "13472:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 954, + "name": "Identifier", + "src": "13477:1:1" + } + ], + "id": 955, + "name": "BinaryOperation", + "src": "13472:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: addition overflow\"", + "value": "SafeMath: addition overflow" + }, + "id": 956, + "name": "Literal", + "src": "13480:29:1" + } + ], + "id": 957, + "name": "FunctionCall", + "src": "13464:46:1" + } + ], + "id": 958, + "name": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "attributes": { + "functionReturnParameters": 945 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 959, + "name": "Identifier", + "src": "13527:1:1" + } + ], + "id": 960, + "name": "Return", + "src": "13520:8:1" + } + ], + "id": 961, + "name": "Block", + "src": "13427:108:1" + } + ], + "id": 962, + "name": "FunctionDefinition", + "src": "13360:175:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 963, + "name": "StructuredDocumentation", + "src": "13541:260:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 964, + "name": "ElementaryTypeName", + "src": "13819:7:1" + } + ], + "id": 965, + "name": "VariableDeclaration", + "src": "13819:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 966, + "name": "ElementaryTypeName", + "src": "13830:7:1" + } + ], + "id": 967, + "name": "VariableDeclaration", + "src": "13830:9:1" + } + ], + "id": 968, + "name": "ParameterList", + "src": "13818:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 969, + "name": "ElementaryTypeName", + "src": "13864:7:1" + } + ], + "id": 970, + "name": "VariableDeclaration", + "src": "13864:7:1" + } + ], + "id": 971, + "name": "ParameterList", + "src": "13863:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 972, + "name": "Identifier", + "src": "13883:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 973, + "name": "Identifier", + "src": "13891:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 974, + "name": "Identifier", + "src": "13896:1:1" + } + ], + "id": 975, + "name": "BinaryOperation", + "src": "13891:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: subtraction overflow\"", + "value": "SafeMath: subtraction overflow" + }, + "id": 976, + "name": "Literal", + "src": "13899:32:1" + } + ], + "id": 977, + "name": "FunctionCall", + "src": "13883:49:1" + } + ], + "id": 978, + "name": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "attributes": { + "functionReturnParameters": 971 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 979, + "name": "Identifier", + "src": "13949:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 980, + "name": "Identifier", + "src": "13953:1:1" + } + ], + "id": 981, + "name": "BinaryOperation", + "src": "13949:5:1" + } + ], + "id": 982, + "name": "Return", + "src": "13942:12:1" + } + ], + "id": 983, + "name": "Block", + "src": "13873:88:1" + } + ], + "id": 984, + "name": "FunctionDefinition", + "src": "13806:155:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 985, + "name": "StructuredDocumentation", + "src": "13967:236:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 986, + "name": "ElementaryTypeName", + "src": "14221:7:1" + } + ], + "id": 987, + "name": "VariableDeclaration", + "src": "14221:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 988, + "name": "ElementaryTypeName", + "src": "14232:7:1" + } + ], + "id": 989, + "name": "VariableDeclaration", + "src": "14232:9:1" + } + ], + "id": 990, + "name": "ParameterList", + "src": "14220:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 991, + "name": "ElementaryTypeName", + "src": "14266:7:1" + } + ], + "id": 992, + "name": "VariableDeclaration", + "src": "14266:7:1" + } + ], + "id": 993, + "name": "ParameterList", + "src": "14265:9:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 994, + "name": "Identifier", + "src": "14289:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 995, + "name": "Literal", + "src": "14294:1:1" + } + ], + "id": 996, + "name": "BinaryOperation", + "src": "14289:6:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 997, + "name": "Literal", + "src": "14304:1:1" + } + ], + "id": 998, + "name": "Return", + "src": "14297:8:1" + } + ], + "id": 999, + "name": "IfStatement", + "src": "14285:20:1" + }, + { + "attributes": { + "assignments": [ + 1001 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 1017, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1000, + "name": "ElementaryTypeName", + "src": "14315:7:1" + } + ], + "id": 1001, + "name": "VariableDeclaration", + "src": "14315:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1002, + "name": "Identifier", + "src": "14327:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1003, + "name": "Identifier", + "src": "14331:1:1" + } + ], + "id": 1004, + "name": "BinaryOperation", + "src": "14327:5:1" + } + ], + "id": 1005, + "name": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1006, + "name": "Identifier", + "src": "14342:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1007, + "name": "Identifier", + "src": "14350:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1008, + "name": "Identifier", + "src": "14354:1:1" + } + ], + "id": 1009, + "name": "BinaryOperation", + "src": "14350:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1010, + "name": "Identifier", + "src": "14359:1:1" + } + ], + "id": 1011, + "name": "BinaryOperation", + "src": "14350:10:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: multiplication overflow\"", + "value": "SafeMath: multiplication overflow" + }, + "id": 1012, + "name": "Literal", + "src": "14362:35:1" + } + ], + "id": 1013, + "name": "FunctionCall", + "src": "14342:56:1" + } + ], + "id": 1014, + "name": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1015, + "name": "Identifier", + "src": "14415:1:1" + } + ], + "id": 1016, + "name": "Return", + "src": "14408:8:1" + } + ], + "id": 1017, + "name": "Block", + "src": "14275:148:1" + } + ], + "id": 1018, + "name": "FunctionDefinition", + "src": "14208:215:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1019, + "name": "StructuredDocumentation", + "src": "14429:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1020, + "name": "ElementaryTypeName", + "src": "14900:7:1" + } + ], + "id": 1021, + "name": "VariableDeclaration", + "src": "14900:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1022, + "name": "ElementaryTypeName", + "src": "14911:7:1" + } + ], + "id": 1023, + "name": "VariableDeclaration", + "src": "14911:9:1" + } + ], + "id": 1024, + "name": "ParameterList", + "src": "14899:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1025, + "name": "ElementaryTypeName", + "src": "14945:7:1" + } + ], + "id": 1026, + "name": "VariableDeclaration", + "src": "14945:7:1" + } + ], + "id": 1027, + "name": "ParameterList", + "src": "14944:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1028, + "name": "Identifier", + "src": "14964:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1029, + "name": "Identifier", + "src": "14972:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1030, + "name": "Literal", + "src": "14976:1:1" + } + ], + "id": 1031, + "name": "BinaryOperation", + "src": "14972:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206469766973696f6e206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: division by zero\"", + "value": "SafeMath: division by zero" + }, + "id": 1032, + "name": "Literal", + "src": "14979:28:1" + } + ], + "id": 1033, + "name": "FunctionCall", + "src": "14964:44:1" + } + ], + "id": 1034, + "name": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "attributes": { + "functionReturnParameters": 1027 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1021, + "type": "uint256", + "value": "a" + }, + "id": 1035, + "name": "Identifier", + "src": "15025:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1036, + "name": "Identifier", + "src": "15029:1:1" + } + ], + "id": 1037, + "name": "BinaryOperation", + "src": "15025:5:1" + } + ], + "id": 1038, + "name": "Return", + "src": "15018:12:1" + } + ], + "id": 1039, + "name": "Block", + "src": "14954:83:1" + } + ], + "id": 1040, + "name": "FunctionDefinition", + "src": "14887:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1041, + "name": "StructuredDocumentation", + "src": "15043:442:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1042, + "name": "ElementaryTypeName", + "src": "15503:7:1" + } + ], + "id": 1043, + "name": "VariableDeclaration", + "src": "15503:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1044, + "name": "ElementaryTypeName", + "src": "15514:7:1" + } + ], + "id": 1045, + "name": "VariableDeclaration", + "src": "15514:9:1" + } + ], + "id": 1046, + "name": "ParameterList", + "src": "15502:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1047, + "name": "ElementaryTypeName", + "src": "15548:7:1" + } + ], + "id": 1048, + "name": "VariableDeclaration", + "src": "15548:7:1" + } + ], + "id": 1049, + "name": "ParameterList", + "src": "15547:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1050, + "name": "Identifier", + "src": "15567:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1051, + "name": "Identifier", + "src": "15575:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1052, + "name": "Literal", + "src": "15579:1:1" + } + ], + "id": 1053, + "name": "BinaryOperation", + "src": "15575:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: modulo by zero\"", + "value": "SafeMath: modulo by zero" + }, + "id": 1054, + "name": "Literal", + "src": "15582:26:1" + } + ], + "id": 1055, + "name": "FunctionCall", + "src": "15567:42:1" + } + ], + "id": 1056, + "name": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "attributes": { + "functionReturnParameters": 1049 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1043, + "type": "uint256", + "value": "a" + }, + "id": 1057, + "name": "Identifier", + "src": "15626:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1058, + "name": "Identifier", + "src": "15630:1:1" + } + ], + "id": 1059, + "name": "BinaryOperation", + "src": "15626:5:1" + } + ], + "id": 1060, + "name": "Return", + "src": "15619:12:1" + } + ], + "id": 1061, + "name": "Block", + "src": "15557:81:1" + } + ], + "id": 1062, + "name": "FunctionDefinition", + "src": "15490:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1063, + "name": "StructuredDocumentation", + "src": "15644:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1064, + "name": "ElementaryTypeName", + "src": "16115:7:1" + } + ], + "id": 1065, + "name": "VariableDeclaration", + "src": "16115:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1066, + "name": "ElementaryTypeName", + "src": "16126:7:1" + } + ], + "id": 1067, + "name": "VariableDeclaration", + "src": "16126:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1086, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1068, + "name": "ElementaryTypeName", + "src": "16137:6:1" + } + ], + "id": 1069, + "name": "VariableDeclaration", + "src": "16137:26:1" + } + ], + "id": 1070, + "name": "ParameterList", + "src": "16114:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1071, + "name": "ElementaryTypeName", + "src": "16188:7:1" + } + ], + "id": 1072, + "name": "VariableDeclaration", + "src": "16188:7:1" + } + ], + "id": 1073, + "name": "ParameterList", + "src": "16187:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1074, + "name": "Identifier", + "src": "16207:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1075, + "name": "Identifier", + "src": "16215:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1076, + "name": "Identifier", + "src": "16220:1:1" + } + ], + "id": 1077, + "name": "BinaryOperation", + "src": "16215:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1069, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1078, + "name": "Identifier", + "src": "16223:12:1" + } + ], + "id": 1079, + "name": "FunctionCall", + "src": "16207:29:1" + } + ], + "id": 1080, + "name": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "attributes": { + "functionReturnParameters": 1073 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1081, + "name": "Identifier", + "src": "16253:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1082, + "name": "Identifier", + "src": "16257:1:1" + } + ], + "id": 1083, + "name": "BinaryOperation", + "src": "16253:5:1" + } + ], + "id": 1084, + "name": "Return", + "src": "16246:12:1" + } + ], + "id": 1085, + "name": "Block", + "src": "16197:68:1" + } + ], + "id": 1086, + "name": "FunctionDefinition", + "src": "16102:163:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1087, + "name": "StructuredDocumentation", + "src": "16271:646:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1088, + "name": "ElementaryTypeName", + "src": "16935:7:1" + } + ], + "id": 1089, + "name": "VariableDeclaration", + "src": "16935:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1090, + "name": "ElementaryTypeName", + "src": "16946:7:1" + } + ], + "id": 1091, + "name": "VariableDeclaration", + "src": "16946:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1110, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1092, + "name": "ElementaryTypeName", + "src": "16957:6:1" + } + ], + "id": 1093, + "name": "VariableDeclaration", + "src": "16957:26:1" + } + ], + "id": 1094, + "name": "ParameterList", + "src": "16934:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1095, + "name": "ElementaryTypeName", + "src": "17008:7:1" + } + ], + "id": 1096, + "name": "VariableDeclaration", + "src": "17008:7:1" + } + ], + "id": 1097, + "name": "ParameterList", + "src": "17007:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1098, + "name": "Identifier", + "src": "17027:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1099, + "name": "Identifier", + "src": "17035:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1100, + "name": "Literal", + "src": "17039:1:1" + } + ], + "id": 1101, + "name": "BinaryOperation", + "src": "17035:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1093, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1102, + "name": "Identifier", + "src": "17042:12:1" + } + ], + "id": 1103, + "name": "FunctionCall", + "src": "17027:28:1" + } + ], + "id": 1104, + "name": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1097 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1089, + "type": "uint256", + "value": "a" + }, + "id": 1105, + "name": "Identifier", + "src": "17072:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1106, + "name": "Identifier", + "src": "17076:1:1" + } + ], + "id": 1107, + "name": "BinaryOperation", + "src": "17072:5:1" + } + ], + "id": 1108, + "name": "Return", + "src": "17065:12:1" + } + ], + "id": 1109, + "name": "Block", + "src": "17017:67:1" + } + ], + "id": 1110, + "name": "FunctionDefinition", + "src": "16922:162:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1111, + "name": "StructuredDocumentation", + "src": "17090:635:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1112, + "name": "ElementaryTypeName", + "src": "17743:7:1" + } + ], + "id": 1113, + "name": "VariableDeclaration", + "src": "17743:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1114, + "name": "ElementaryTypeName", + "src": "17754:7:1" + } + ], + "id": 1115, + "name": "VariableDeclaration", + "src": "17754:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1134, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1116, + "name": "ElementaryTypeName", + "src": "17765:6:1" + } + ], + "id": 1117, + "name": "VariableDeclaration", + "src": "17765:26:1" + } + ], + "id": 1118, + "name": "ParameterList", + "src": "17742:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1119, + "name": "ElementaryTypeName", + "src": "17816:7:1" + } + ], + "id": 1120, + "name": "VariableDeclaration", + "src": "17816:7:1" + } + ], + "id": 1121, + "name": "ParameterList", + "src": "17815:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1122, + "name": "Identifier", + "src": "17835:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1123, + "name": "Identifier", + "src": "17843:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1124, + "name": "Literal", + "src": "17847:1:1" + } + ], + "id": 1125, + "name": "BinaryOperation", + "src": "17843:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1117, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1126, + "name": "Identifier", + "src": "17850:12:1" + } + ], + "id": 1127, + "name": "FunctionCall", + "src": "17835:28:1" + } + ], + "id": 1128, + "name": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1121 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "uint256", + "value": "a" + }, + "id": 1129, + "name": "Identifier", + "src": "17880:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1130, + "name": "Identifier", + "src": "17884:1:1" + } + ], + "id": 1131, + "name": "BinaryOperation", + "src": "17880:5:1" + } + ], + "id": 1132, + "name": "Return", + "src": "17873:12:1" + } + ], + "id": 1133, + "name": "Block", + "src": "17825:67:1" + } + ], + "id": 1134, + "name": "FunctionDefinition", + "src": "17730:162:1" + } + ], + "id": 1135, + "name": "ContractDefinition", + "src": "11300:6594:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 1136, + "name": "PragmaDirective", + "src": "17947:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Collection of functions related to the address type" + }, + "id": 1137, + "name": "StructuredDocumentation", + "src": "17980:67:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isContract", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1138, + "name": "StructuredDocumentation", + "src": "18070:565:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "account", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1139, + "name": "ElementaryTypeName", + "src": "18660:7:1" + } + ], + "id": 1140, + "name": "VariableDeclaration", + "src": "18660:15:1" + } + ], + "id": 1141, + "name": "ParameterList", + "src": "18659:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1142, + "name": "ElementaryTypeName", + "src": "18700:4:1" + } + ], + "id": 1143, + "name": "VariableDeclaration", + "src": "18700:4:1" + } + ], + "id": 1144, + "name": "ParameterList", + "src": "18699:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1146 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "size", + "scope": 1153, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1145, + "name": "ElementaryTypeName", + "src": "18903:7:1" + } + ], + "id": 1146, + "name": "VariableDeclaration", + "src": "18903:12:1" + } + ], + "id": 1147, + "name": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "operations": "{ size := extcodesize(account) }" + }, + "children": [], + "id": 1148, + "name": "InlineAssembly", + "src": "18981:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1144 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1146, + "type": "uint256", + "value": "size" + }, + "id": 1149, + "name": "Identifier", + "src": "19038:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1150, + "name": "Literal", + "src": "19045:1:1" + } + ], + "id": 1151, + "name": "BinaryOperation", + "src": "19038:8:1" + } + ], + "id": 1152, + "name": "Return", + "src": "19031:15:1" + } + ], + "id": 1153, + "name": "Block", + "src": "18706:347:1" + } + ], + "id": 1154, + "name": "FunctionDefinition", + "src": "18640:413:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sendValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1155, + "name": "StructuredDocumentation", + "src": "19059:906:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "recipient", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 1156, + "name": "ElementaryTypeName", + "src": "19989:15:1" + } + ], + "id": 1157, + "name": "VariableDeclaration", + "src": "19989:25:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "amount", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1158, + "name": "ElementaryTypeName", + "src": "20016:7:1" + } + ], + "id": 1159, + "name": "VariableDeclaration", + "src": "20016:14:1" + } + ], + "id": 1160, + "name": "ParameterList", + "src": "19988:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1161, + "name": "ParameterList", + "src": "20041:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1162, + "name": "Identifier", + "src": "20051:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1163, + "name": "ElementaryTypeName", + "src": "20059:7:1" + } + ], + "id": 1164, + "name": "ElementaryTypeNameExpression", + "src": "20059:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1165, + "name": "Identifier", + "src": "20067:4:1" + } + ], + "id": 1166, + "name": "FunctionCall", + "src": "20059:13:1" + } + ], + "id": 1167, + "name": "MemberAccess", + "src": "20059:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1168, + "name": "Identifier", + "src": "20084:6:1" + } + ], + "id": 1169, + "name": "BinaryOperation", + "src": "20059:31:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance\"", + "value": "Address: insufficient balance" + }, + "id": 1170, + "name": "Literal", + "src": "20092:31:1" + } + ], + "id": 1171, + "name": "FunctionCall", + "src": "20051:73:1" + } + ], + "id": 1172, + "name": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "attributes": { + "assignments": [ + 1174, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1187, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1173, + "name": "ElementaryTypeName", + "src": "20213:4:1" + } + ], + "id": 1174, + "name": "VariableDeclaration", + "src": "20213:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1157, + "type": "address payable", + "value": "recipient" + }, + "id": 1175, + "name": "Identifier", + "src": "20231:9:1" + } + ], + "id": 1176, + "name": "MemberAccess", + "src": "20231:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1177, + "name": "Identifier", + "src": "20254:6:1" + } + ], + "id": 1178, + "name": "FunctionCallOptions", + "src": "20231:31:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 1179, + "name": "Literal", + "src": "20263:2:1" + } + ], + "id": 1180, + "name": "FunctionCall", + "src": "20231:35:1" + } + ], + "id": 1181, + "name": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1182, + "name": "Identifier", + "src": "20276:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1174, + "type": "bool", + "value": "success" + }, + "id": 1183, + "name": "Identifier", + "src": "20284:7:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: unable to send value, recipient may have reverted\"", + "value": "Address: unable to send value, recipient may have reverted" + }, + "id": 1184, + "name": "Literal", + "src": "20293:60:1" + } + ], + "id": 1185, + "name": "FunctionCall", + "src": "20276:78:1" + } + ], + "id": 1186, + "name": "ExpressionStatement", + "src": "20276:78:1" + } + ], + "id": 1187, + "name": "Block", + "src": "20041:320:1" + } + ], + "id": 1188, + "name": "FunctionDefinition", + "src": "19970:391:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1189, + "name": "StructuredDocumentation", + "src": "20367:730:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1205, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1190, + "name": "ElementaryTypeName", + "src": "21124:7:1" + } + ], + "id": 1191, + "name": "VariableDeclaration", + "src": "21124:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1192, + "name": "ElementaryTypeName", + "src": "21140:5:1" + } + ], + "id": 1193, + "name": "VariableDeclaration", + "src": "21140:17:1" + } + ], + "id": 1194, + "name": "ParameterList", + "src": "21123:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1195, + "name": "ElementaryTypeName", + "src": "21177:5:1" + } + ], + "id": 1196, + "name": "VariableDeclaration", + "src": "21177:12:1" + } + ], + "id": 1197, + "name": "ParameterList", + "src": "21176:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1197 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionCall" + }, + "id": 1198, + "name": "Identifier", + "src": "21206:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1191, + "type": "address", + "value": "target" + }, + "id": 1199, + "name": "Identifier", + "src": "21219:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1193, + "type": "bytes memory", + "value": "data" + }, + "id": 1200, + "name": "Identifier", + "src": "21227:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call failed\"", + "value": "Address: low-level call failed" + }, + "id": 1201, + "name": "Literal", + "src": "21233:32:1" + } + ], + "id": 1202, + "name": "FunctionCall", + "src": "21206:60:1" + } + ], + "id": 1203, + "name": "Return", + "src": "21199:67:1" + } + ], + "id": 1204, + "name": "Block", + "src": "21191:82:1" + } + ], + "id": 1205, + "name": "FunctionDefinition", + "src": "21102:171:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1206, + "name": "StructuredDocumentation", + "src": "21279:211:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1225, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1207, + "name": "ElementaryTypeName", + "src": "21517:7:1" + } + ], + "id": 1208, + "name": "VariableDeclaration", + "src": "21517:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1209, + "name": "ElementaryTypeName", + "src": "21533:5:1" + } + ], + "id": 1210, + "name": "VariableDeclaration", + "src": "21533:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1211, + "name": "ElementaryTypeName", + "src": "21552:6:1" + } + ], + "id": 1212, + "name": "VariableDeclaration", + "src": "21552:26:1" + } + ], + "id": 1213, + "name": "ParameterList", + "src": "21516:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1214, + "name": "ElementaryTypeName", + "src": "21598:5:1" + } + ], + "id": 1215, + "name": "VariableDeclaration", + "src": "21598:12:1" + } + ], + "id": 1216, + "name": "ParameterList", + "src": "21597:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1216 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1217, + "name": "Identifier", + "src": "21629:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1208, + "type": "address", + "value": "target" + }, + "id": 1218, + "name": "Identifier", + "src": "21651:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1210, + "type": "bytes memory", + "value": "data" + }, + "id": 1219, + "name": "Identifier", + "src": "21659:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1220, + "name": "Literal", + "src": "21665:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1212, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1221, + "name": "Identifier", + "src": "21668:12:1" + } + ], + "id": 1222, + "name": "FunctionCall", + "src": "21629:52:1" + } + ], + "id": 1223, + "name": "Return", + "src": "21622:59:1" + } + ], + "id": 1224, + "name": "Block", + "src": "21612:76:1" + } + ], + "id": 1225, + "name": "FunctionDefinition", + "src": "21495:193:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1226, + "name": "StructuredDocumentation", + "src": "21694:351:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1227, + "name": "ElementaryTypeName", + "src": "22081:7:1" + } + ], + "id": 1228, + "name": "VariableDeclaration", + "src": "22081:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1229, + "name": "ElementaryTypeName", + "src": "22097:5:1" + } + ], + "id": 1230, + "name": "VariableDeclaration", + "src": "22097:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1231, + "name": "ElementaryTypeName", + "src": "22116:7:1" + } + ], + "id": 1232, + "name": "VariableDeclaration", + "src": "22116:13:1" + } + ], + "id": 1233, + "name": "ParameterList", + "src": "22080:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1234, + "name": "ElementaryTypeName", + "src": "22149:5:1" + } + ], + "id": 1235, + "name": "VariableDeclaration", + "src": "22149:12:1" + } + ], + "id": 1236, + "name": "ParameterList", + "src": "22148:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1236 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1237, + "name": "Identifier", + "src": "22180:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1228, + "type": "address", + "value": "target" + }, + "id": 1238, + "name": "Identifier", + "src": "22202:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1230, + "type": "bytes memory", + "value": "data" + }, + "id": 1239, + "name": "Identifier", + "src": "22210:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1232, + "type": "uint256", + "value": "value" + }, + "id": 1240, + "name": "Identifier", + "src": "22216:5:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call with value failed\"", + "value": "Address: low-level call with value failed" + }, + "id": 1241, + "name": "Literal", + "src": "22223:43:1" + } + ], + "id": 1242, + "name": "FunctionCall", + "src": "22180:87:1" + } + ], + "id": 1243, + "name": "Return", + "src": "22173:94:1" + } + ], + "id": 1244, + "name": "Block", + "src": "22163:111:1" + } + ], + "id": 1245, + "name": "FunctionDefinition", + "src": "22050:224:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1246, + "name": "StructuredDocumentation", + "src": "22280:237:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1247, + "name": "ElementaryTypeName", + "src": "22553:7:1" + } + ], + "id": 1248, + "name": "VariableDeclaration", + "src": "22553:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1249, + "name": "ElementaryTypeName", + "src": "22569:5:1" + } + ], + "id": 1250, + "name": "VariableDeclaration", + "src": "22569:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1251, + "name": "ElementaryTypeName", + "src": "22588:7:1" + } + ], + "id": 1252, + "name": "VariableDeclaration", + "src": "22588:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1253, + "name": "ElementaryTypeName", + "src": "22603:6:1" + } + ], + "id": 1254, + "name": "VariableDeclaration", + "src": "22603:26:1" + } + ], + "id": 1255, + "name": "ParameterList", + "src": "22552:78:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1256, + "name": "ElementaryTypeName", + "src": "22649:5:1" + } + ], + "id": 1257, + "name": "VariableDeclaration", + "src": "22649:12:1" + } + ], + "id": 1258, + "name": "ParameterList", + "src": "22648:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1259, + "name": "Identifier", + "src": "22673:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1260, + "name": "ElementaryTypeName", + "src": "22681:7:1" + } + ], + "id": 1261, + "name": "ElementaryTypeNameExpression", + "src": "22681:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1262, + "name": "Identifier", + "src": "22689:4:1" + } + ], + "id": 1263, + "name": "FunctionCall", + "src": "22681:13:1" + } + ], + "id": 1264, + "name": "MemberAccess", + "src": "22681:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1265, + "name": "Identifier", + "src": "22706:5:1" + } + ], + "id": 1266, + "name": "BinaryOperation", + "src": "22681:30:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance for call\"", + "value": "Address: insufficient balance for call" + }, + "id": 1267, + "name": "Literal", + "src": "22713:40:1" + } + ], + "id": 1268, + "name": "FunctionCall", + "src": "22673:81:1" + } + ], + "id": 1269, + "name": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1270, + "name": "Identifier", + "src": "22764:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1271, + "name": "Identifier", + "src": "22772:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1272, + "name": "Identifier", + "src": "22783:6:1" + } + ], + "id": 1273, + "name": "FunctionCall", + "src": "22772:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: call to non-contract\"", + "value": "Address: call to non-contract" + }, + "id": 1274, + "name": "Literal", + "src": "22792:31:1" + } + ], + "id": 1275, + "name": "FunctionCall", + "src": "22764:60:1" + } + ], + "id": 1276, + "name": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "attributes": { + "assignments": [ + 1278, + 1280 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1294, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1277, + "name": "ElementaryTypeName", + "src": "22895:4:1" + } + ], + "id": 1278, + "name": "VariableDeclaration", + "src": "22895:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1279, + "name": "ElementaryTypeName", + "src": "22909:5:1" + } + ], + "id": 1280, + "name": "VariableDeclaration", + "src": "22909:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1281, + "name": "Identifier", + "src": "22936:6:1" + } + ], + "id": 1282, + "name": "MemberAccess", + "src": "22936:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1283, + "name": "Identifier", + "src": "22956:5:1" + } + ], + "id": 1284, + "name": "FunctionCallOptions", + "src": "22936:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1250, + "type": "bytes memory", + "value": "data" + }, + "id": 1285, + "name": "Identifier", + "src": "22964:4:1" + } + ], + "id": 1286, + "name": "FunctionCall", + "src": "22936:33:1" + } + ], + "id": 1287, + "name": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "attributes": { + "functionReturnParameters": 1258 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1288, + "name": "Identifier", + "src": "22986:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1278, + "type": "bool", + "value": "success" + }, + "id": 1289, + "name": "Identifier", + "src": "23004:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1280, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1290, + "name": "Identifier", + "src": "23013:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1254, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1291, + "name": "Identifier", + "src": "23025:12:1" + } + ], + "id": 1292, + "name": "FunctionCall", + "src": "22986:52:1" + } + ], + "id": 1293, + "name": "Return", + "src": "22979:59:1" + } + ], + "id": 1294, + "name": "Block", + "src": "22663:382:1" + } + ], + "id": 1295, + "name": "FunctionDefinition", + "src": "22522:523:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1296, + "name": "StructuredDocumentation", + "src": "23051:166:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1312, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1297, + "name": "ElementaryTypeName", + "src": "23250:7:1" + } + ], + "id": 1298, + "name": "VariableDeclaration", + "src": "23250:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1299, + "name": "ElementaryTypeName", + "src": "23266:5:1" + } + ], + "id": 1300, + "name": "VariableDeclaration", + "src": "23266:17:1" + } + ], + "id": 1301, + "name": "ParameterList", + "src": "23249:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1302, + "name": "ElementaryTypeName", + "src": "23308:5:1" + } + ], + "id": 1303, + "name": "VariableDeclaration", + "src": "23308:12:1" + } + ], + "id": 1304, + "name": "ParameterList", + "src": "23307:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1304 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "type": "function (address,bytes memory,string memory) view returns (bytes memory)", + "value": "functionStaticCall" + }, + "id": 1305, + "name": "Identifier", + "src": "23339:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1298, + "type": "address", + "value": "target" + }, + "id": 1306, + "name": "Identifier", + "src": "23358:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1300, + "type": "bytes memory", + "value": "data" + }, + "id": 1307, + "name": "Identifier", + "src": "23366:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level static call failed\"", + "value": "Address: low-level static call failed" + }, + "id": 1308, + "name": "Literal", + "src": "23372:39:1" + } + ], + "id": 1309, + "name": "FunctionCall", + "src": "23339:73:1" + } + ], + "id": 1310, + "name": "Return", + "src": "23332:80:1" + } + ], + "id": 1311, + "name": "Block", + "src": "23322:97:1" + } + ], + "id": 1312, + "name": "FunctionDefinition", + "src": "23222:197:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1313, + "name": "StructuredDocumentation", + "src": "23425:173:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1347, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1314, + "name": "ElementaryTypeName", + "src": "23631:7:1" + } + ], + "id": 1315, + "name": "VariableDeclaration", + "src": "23631:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1316, + "name": "ElementaryTypeName", + "src": "23647:5:1" + } + ], + "id": 1317, + "name": "VariableDeclaration", + "src": "23647:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1318, + "name": "ElementaryTypeName", + "src": "23666:6:1" + } + ], + "id": 1319, + "name": "VariableDeclaration", + "src": "23666:26:1" + } + ], + "id": 1320, + "name": "ParameterList", + "src": "23630:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1321, + "name": "ElementaryTypeName", + "src": "23717:5:1" + } + ], + "id": 1322, + "name": "VariableDeclaration", + "src": "23717:12:1" + } + ], + "id": 1323, + "name": "ParameterList", + "src": "23716:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1324, + "name": "Identifier", + "src": "23741:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1325, + "name": "Identifier", + "src": "23749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1326, + "name": "Identifier", + "src": "23760:6:1" + } + ], + "id": 1327, + "name": "FunctionCall", + "src": "23749:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: static call to non-contract\"", + "value": "Address: static call to non-contract" + }, + "id": 1328, + "name": "Literal", + "src": "23769:38:1" + } + ], + "id": 1329, + "name": "FunctionCall", + "src": "23741:67:1" + } + ], + "id": 1330, + "name": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "attributes": { + "assignments": [ + 1332, + 1334 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1346, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1331, + "name": "ElementaryTypeName", + "src": "23879:4:1" + } + ], + "id": 1332, + "name": "VariableDeclaration", + "src": "23879:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1346, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1333, + "name": "ElementaryTypeName", + "src": "23893:5:1" + } + ], + "id": 1334, + "name": "VariableDeclaration", + "src": "23893:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "staticcall", + "type": "function (bytes memory) view returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1335, + "name": "Identifier", + "src": "23920:6:1" + } + ], + "id": 1336, + "name": "MemberAccess", + "src": "23920:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1317, + "type": "bytes memory", + "value": "data" + }, + "id": 1337, + "name": "Identifier", + "src": "23938:4:1" + } + ], + "id": 1338, + "name": "FunctionCall", + "src": "23920:23:1" + } + ], + "id": 1339, + "name": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "attributes": { + "functionReturnParameters": 1323 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1340, + "name": "Identifier", + "src": "23960:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1332, + "type": "bool", + "value": "success" + }, + "id": 1341, + "name": "Identifier", + "src": "23978:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1334, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1342, + "name": "Identifier", + "src": "23987:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1319, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1343, + "name": "Identifier", + "src": "23999:12:1" + } + ], + "id": 1344, + "name": "FunctionCall", + "src": "23960:52:1" + } + ], + "id": 1345, + "name": "Return", + "src": "23953:59:1" + } + ], + "id": 1346, + "name": "Block", + "src": "23731:288:1" + } + ], + "id": 1347, + "name": "FunctionDefinition", + "src": "23603:416:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1348, + "name": "StructuredDocumentation", + "src": "24025:168:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1364, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1349, + "name": "ElementaryTypeName", + "src": "24228:7:1" + } + ], + "id": 1350, + "name": "VariableDeclaration", + "src": "24228:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1351, + "name": "ElementaryTypeName", + "src": "24244:5:1" + } + ], + "id": 1352, + "name": "VariableDeclaration", + "src": "24244:17:1" + } + ], + "id": 1353, + "name": "ParameterList", + "src": "24227:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1354, + "name": "ElementaryTypeName", + "src": "24281:5:1" + } + ], + "id": 1355, + "name": "VariableDeclaration", + "src": "24281:12:1" + } + ], + "id": 1356, + "name": "ParameterList", + "src": "24280:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1356 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionDelegateCall" + }, + "id": 1357, + "name": "Identifier", + "src": "24312:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1350, + "type": "address", + "value": "target" + }, + "id": 1358, + "name": "Identifier", + "src": "24333:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1352, + "type": "bytes memory", + "value": "data" + }, + "id": 1359, + "name": "Identifier", + "src": "24341:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level delegate call failed\"", + "value": "Address: low-level delegate call failed" + }, + "id": 1360, + "name": "Literal", + "src": "24347:41:1" + } + ], + "id": 1361, + "name": "FunctionCall", + "src": "24312:77:1" + } + ], + "id": 1362, + "name": "Return", + "src": "24305:84:1" + } + ], + "id": 1363, + "name": "Block", + "src": "24295:101:1" + } + ], + "id": 1364, + "name": "FunctionDefinition", + "src": "24198:198:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1365, + "name": "StructuredDocumentation", + "src": "24402:175:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1399, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1366, + "name": "ElementaryTypeName", + "src": "24612:7:1" + } + ], + "id": 1367, + "name": "VariableDeclaration", + "src": "24612:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1368, + "name": "ElementaryTypeName", + "src": "24628:5:1" + } + ], + "id": 1369, + "name": "VariableDeclaration", + "src": "24628:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1370, + "name": "ElementaryTypeName", + "src": "24647:6:1" + } + ], + "id": 1371, + "name": "VariableDeclaration", + "src": "24647:26:1" + } + ], + "id": 1372, + "name": "ParameterList", + "src": "24611:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1373, + "name": "ElementaryTypeName", + "src": "24693:5:1" + } + ], + "id": 1374, + "name": "VariableDeclaration", + "src": "24693:12:1" + } + ], + "id": 1375, + "name": "ParameterList", + "src": "24692:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1376, + "name": "Identifier", + "src": "24717:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1377, + "name": "Identifier", + "src": "24725:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1378, + "name": "Identifier", + "src": "24736:6:1" + } + ], + "id": 1379, + "name": "FunctionCall", + "src": "24725:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: delegate call to non-contract\"", + "value": "Address: delegate call to non-contract" + }, + "id": 1380, + "name": "Literal", + "src": "24745:40:1" + } + ], + "id": 1381, + "name": "FunctionCall", + "src": "24717:69:1" + } + ], + "id": 1382, + "name": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "attributes": { + "assignments": [ + 1384, + 1386 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1398, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1383, + "name": "ElementaryTypeName", + "src": "24857:4:1" + } + ], + "id": 1384, + "name": "VariableDeclaration", + "src": "24857:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1398, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1385, + "name": "ElementaryTypeName", + "src": "24871:5:1" + } + ], + "id": 1386, + "name": "VariableDeclaration", + "src": "24871:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "delegatecall", + "type": "function (bytes memory) returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1387, + "name": "Identifier", + "src": "24898:6:1" + } + ], + "id": 1388, + "name": "MemberAccess", + "src": "24898:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1369, + "type": "bytes memory", + "value": "data" + }, + "id": 1389, + "name": "Identifier", + "src": "24918:4:1" + } + ], + "id": 1390, + "name": "FunctionCall", + "src": "24898:25:1" + } + ], + "id": 1391, + "name": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "attributes": { + "functionReturnParameters": 1375 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1392, + "name": "Identifier", + "src": "24940:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1384, + "type": "bool", + "value": "success" + }, + "id": 1393, + "name": "Identifier", + "src": "24958:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1386, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1394, + "name": "Identifier", + "src": "24967:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1371, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1395, + "name": "Identifier", + "src": "24979:12:1" + } + ], + "id": 1396, + "name": "FunctionCall", + "src": "24940:52:1" + } + ], + "id": 1397, + "name": "Return", + "src": "24933:59:1" + } + ], + "id": 1398, + "name": "Block", + "src": "24707:292:1" + } + ], + "id": 1399, + "name": "FunctionDefinition", + "src": "24582:417:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_verifyCallResult", + "scope": 1430, + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1429, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1400, + "name": "ElementaryTypeName", + "src": "25032:4:1" + } + ], + "id": 1401, + "name": "VariableDeclaration", + "src": "25032:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1402, + "name": "ElementaryTypeName", + "src": "25046:5:1" + } + ], + "id": 1403, + "name": "VariableDeclaration", + "src": "25046:23:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1404, + "name": "ElementaryTypeName", + "src": "25071:6:1" + } + ], + "id": 1405, + "name": "VariableDeclaration", + "src": "25071:26:1" + } + ], + "id": 1406, + "name": "ParameterList", + "src": "25031:67:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1407, + "name": "ElementaryTypeName", + "src": "25120:5:1" + } + ], + "id": 1408, + "name": "VariableDeclaration", + "src": "25120:12:1" + } + ], + "id": 1409, + "name": "ParameterList", + "src": "25119:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1401, + "type": "bool", + "value": "success" + }, + "id": 1410, + "name": "Identifier", + "src": "25148:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1409 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1411, + "name": "Identifier", + "src": "25178:10:1" + } + ], + "id": 1412, + "name": "Return", + "src": "25171:17:1" + } + ], + "id": 1413, + "name": "Block", + "src": "25157:42:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1414, + "name": "Identifier", + "src": "25289:10:1" + } + ], + "id": 1415, + "name": "MemberAccess", + "src": "25289:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1416, + "name": "Literal", + "src": "25309:1:1" + } + ], + "id": 1417, + "name": "BinaryOperation", + "src": "25289:21:1" + }, + { + "children": [ + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "operations": "{\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n}" + }, + "children": [], + "id": 1418, + "name": "InlineAssembly", + "src": "25487:154:1" + } + ], + "id": 1419, + "name": "Block", + "src": "25312:343:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "type": "function (string memory) pure", + "value": "revert" + }, + "id": 1420, + "name": "Identifier", + "src": "25679:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1405, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1421, + "name": "Identifier", + "src": "25686:12:1" + } + ], + "id": 1422, + "name": "FunctionCall", + "src": "25679:20:1" + } + ], + "id": 1423, + "name": "ExpressionStatement", + "src": "25679:20:1" + } + ], + "id": 1424, + "name": "Block", + "src": "25661:53:1" + } + ], + "id": 1425, + "name": "IfStatement", + "src": "25285:429:1" + } + ], + "id": 1426, + "name": "Block", + "src": "25205:519:1" + } + ], + "id": 1427, + "name": "IfStatement", + "src": "25144:580:1" + } + ], + "id": 1428, + "name": "Block", + "src": "25134:596:1" + } + ], + "id": 1429, + "name": "FunctionDefinition", + "src": "25005:725:1" + } + ], + "id": 1430, + "name": "ContractDefinition", + "src": "18048:7684:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1431, + "name": "PragmaDirective", + "src": "25791:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "id": 1432, + "name": "StructuredDocumentation", + "src": "25824:686:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Set", + "name": "Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_values", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "bytes32[]" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1433, + "name": "ElementaryTypeName", + "src": "27033:7:1" + } + ], + "id": 1434, + "name": "ArrayTypeName", + "src": "27033:9:1" + } + ], + "id": 1435, + "name": "VariableDeclaration", + "src": "27033:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1436, + "name": "ElementaryTypeName", + "src": "27193:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1437, + "name": "ElementaryTypeName", + "src": "27204:7:1" + } + ], + "id": 1438, + "name": "Mapping", + "src": "27184:28:1" + } + ], + "id": 1439, + "name": "VariableDeclaration", + "src": "27184:37:1" + } + ], + "id": 1440, + "name": "StructDefinition", + "src": "26979:249:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1441, + "name": "StructuredDocumentation", + "src": "27234:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1481, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1442, + "name": "UserDefinedTypeName", + "src": "27412:3:1" + } + ], + "id": 1443, + "name": "VariableDeclaration", + "src": "27412:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1444, + "name": "ElementaryTypeName", + "src": "27429:7:1" + } + ], + "id": 1445, + "name": "VariableDeclaration", + "src": "27429:13:1" + } + ], + "id": 1446, + "name": "ParameterList", + "src": "27411:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1447, + "name": "ElementaryTypeName", + "src": "27461:4:1" + } + ], + "id": 1448, + "name": "VariableDeclaration", + "src": "27461:4:1" + } + ], + "id": 1449, + "name": "ParameterList", + "src": "27460:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1450, + "name": "Identifier", + "src": "27482:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1451, + "name": "Identifier", + "src": "27492:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1452, + "name": "Identifier", + "src": "27497:5:1" + } + ], + "id": 1453, + "name": "FunctionCall", + "src": "27482:21:1" + } + ], + "id": 1454, + "name": "UnaryOperation", + "src": "27481:22:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1455, + "name": "Identifier", + "src": "27519:3:1" + } + ], + "id": 1458, + "name": "MemberAccess", + "src": "27519:11:1" + } + ], + "id": 1459, + "name": "MemberAccess", + "src": "27519:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1460, + "name": "Identifier", + "src": "27536:5:1" + } + ], + "id": 1461, + "name": "FunctionCall", + "src": "27519:23:1" + } + ], + "id": 1462, + "name": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1463, + "name": "Identifier", + "src": "27677:3:1" + } + ], + "id": 1466, + "name": "MemberAccess", + "src": "27677:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1465, + "name": "Identifier", + "src": "27690:5:1" + } + ], + "id": 1467, + "name": "IndexAccess", + "src": "27677:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1468, + "name": "Identifier", + "src": "27699:3:1" + } + ], + "id": 1469, + "name": "MemberAccess", + "src": "27699:11:1" + } + ], + "id": 1470, + "name": "MemberAccess", + "src": "27699:18:1" + } + ], + "id": 1471, + "name": "Assignment", + "src": "27677:40:1" + } + ], + "id": 1472, + "name": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1473, + "name": "Literal", + "src": "27738:4:1" + } + ], + "id": 1474, + "name": "Return", + "src": "27731:11:1" + } + ], + "id": 1475, + "name": "Block", + "src": "27505:248:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1476, + "name": "Literal", + "src": "27780:5:1" + } + ], + "id": 1477, + "name": "Return", + "src": "27773:12:1" + } + ], + "id": 1478, + "name": "Block", + "src": "27759:37:1" + } + ], + "id": 1479, + "name": "IfStatement", + "src": "27477:319:1" + } + ], + "id": 1480, + "name": "Block", + "src": "27467:335:1" + } + ], + "id": 1481, + "name": "FunctionDefinition", + "src": "27398:404:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1482, + "name": "StructuredDocumentation", + "src": "27808:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1561, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1483, + "name": "UserDefinedTypeName", + "src": "27987:3:1" + } + ], + "id": 1484, + "name": "VariableDeclaration", + "src": "27987:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1485, + "name": "ElementaryTypeName", + "src": "28004:7:1" + } + ], + "id": 1486, + "name": "VariableDeclaration", + "src": "28004:13:1" + } + ], + "id": 1487, + "name": "ParameterList", + "src": "27986:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1488, + "name": "ElementaryTypeName", + "src": "28036:4:1" + } + ], + "id": 1489, + "name": "VariableDeclaration", + "src": "28036:4:1" + } + ], + "id": 1490, + "name": "ParameterList", + "src": "28035:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1492 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "valueIndex", + "scope": 1560, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1491, + "name": "ElementaryTypeName", + "src": "28152:7:1" + } + ], + "id": 1492, + "name": "VariableDeclaration", + "src": "28152:18:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1493, + "name": "Identifier", + "src": "28173:3:1" + } + ], + "id": 1494, + "name": "MemberAccess", + "src": "28173:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1495, + "name": "Identifier", + "src": "28186:5:1" + } + ], + "id": 1496, + "name": "IndexAccess", + "src": "28173:19:1" + } + ], + "id": 1497, + "name": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1498, + "name": "Identifier", + "src": "28207:10:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1499, + "name": "Literal", + "src": "28221:1:1" + } + ], + "id": 1500, + "name": "BinaryOperation", + "src": "28207:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1501, + "name": "ElementaryTypeName", + "src": "28564:7:1" + } + ], + "id": 1502, + "name": "VariableDeclaration", + "src": "28564:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1503, + "name": "Identifier", + "src": "28588:10:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1504, + "name": "Literal", + "src": "28601:1:1" + } + ], + "id": 1505, + "name": "BinaryOperation", + "src": "28588:14:1" + } + ], + "id": 1506, + "name": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "attributes": { + "assignments": [ + 1508 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1507, + "name": "ElementaryTypeName", + "src": "28616:7:1" + } + ], + "id": 1508, + "name": "VariableDeclaration", + "src": "28616:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1509, + "name": "Identifier", + "src": "28636:3:1" + } + ], + "id": 1510, + "name": "MemberAccess", + "src": "28636:11:1" + } + ], + "id": 1511, + "name": "MemberAccess", + "src": "28636:18:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1512, + "name": "Literal", + "src": "28657:1:1" + } + ], + "id": 1513, + "name": "BinaryOperation", + "src": "28636:22:1" + } + ], + "id": 1514, + "name": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "attributes": { + "assignments": [ + 1516 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastvalue", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1515, + "name": "ElementaryTypeName", + "src": "28898:7:1" + } + ], + "id": 1516, + "name": "VariableDeclaration", + "src": "28898:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1517, + "name": "Identifier", + "src": "28918:3:1" + } + ], + "id": 1518, + "name": "MemberAccess", + "src": "28918:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1508, + "type": "uint256", + "value": "lastIndex" + }, + "id": 1519, + "name": "Identifier", + "src": "28930:9:1" + } + ], + "id": 1520, + "name": "IndexAccess", + "src": "28918:22:1" + } + ], + "id": 1521, + "name": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1522, + "name": "Identifier", + "src": "29032:3:1" + } + ], + "id": 1525, + "name": "MemberAccess", + "src": "29032:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1524, + "name": "Identifier", + "src": "29044:13:1" + } + ], + "id": 1526, + "name": "IndexAccess", + "src": "29032:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1527, + "name": "Identifier", + "src": "29061:9:1" + } + ], + "id": 1528, + "name": "Assignment", + "src": "29032:38:1" + } + ], + "id": 1529, + "name": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1530, + "name": "Identifier", + "src": "29136:3:1" + } + ], + "id": 1533, + "name": "MemberAccess", + "src": "29136:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1532, + "name": "Identifier", + "src": "29149:9:1" + } + ], + "id": 1534, + "name": "IndexAccess", + "src": "29136:23:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1535, + "name": "Identifier", + "src": "29162:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1536, + "name": "Literal", + "src": "29178:1:1" + } + ], + "id": 1537, + "name": "BinaryOperation", + "src": "29162:17:1" + } + ], + "id": 1538, + "name": "Assignment", + "src": "29136:43:1" + } + ], + "id": 1539, + "name": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1540, + "name": "Identifier", + "src": "29285:3:1" + } + ], + "id": 1543, + "name": "MemberAccess", + "src": "29285:11:1" + } + ], + "id": 1544, + "name": "MemberAccess", + "src": "29285:15:1" + } + ], + "id": 1545, + "name": "FunctionCall", + "src": "29285:17:1" + } + ], + "id": 1546, + "name": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1547, + "name": "Identifier", + "src": "29377:3:1" + } + ], + "id": 1548, + "name": "MemberAccess", + "src": "29377:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1549, + "name": "Identifier", + "src": "29390:5:1" + } + ], + "id": 1550, + "name": "IndexAccess", + "src": "29377:19:1" + } + ], + "id": 1551, + "name": "UnaryOperation", + "src": "29370:26:1" + } + ], + "id": 1552, + "name": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1553, + "name": "Literal", + "src": "29418:4:1" + } + ], + "id": 1554, + "name": "Return", + "src": "29411:11:1" + } + ], + "id": 1555, + "name": "Block", + "src": "28224:1209:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1556, + "name": "Literal", + "src": "29460:5:1" + } + ], + "id": 1557, + "name": "Return", + "src": "29453:12:1" + } + ], + "id": 1558, + "name": "Block", + "src": "29439:37:1" + } + ], + "id": 1559, + "name": "IfStatement", + "src": "28203:1273:1" + } + ], + "id": 1560, + "name": "Block", + "src": "28042:1440:1" + } + ], + "id": 1561, + "name": "FunctionDefinition", + "src": "27970:1512:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1562, + "name": "StructuredDocumentation", + "src": "29488:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1579, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1563, + "name": "UserDefinedTypeName", + "src": "29582:3:1" + } + ], + "id": 1564, + "name": "VariableDeclaration", + "src": "29582:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1565, + "name": "ElementaryTypeName", + "src": "29599:7:1" + } + ], + "id": 1566, + "name": "VariableDeclaration", + "src": "29599:13:1" + } + ], + "id": 1567, + "name": "ParameterList", + "src": "29581:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1568, + "name": "ElementaryTypeName", + "src": "29636:4:1" + } + ], + "id": 1569, + "name": "VariableDeclaration", + "src": "29636:4:1" + } + ], + "id": 1570, + "name": "ParameterList", + "src": "29635:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1570 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1564, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1571, + "name": "Identifier", + "src": "29659:3:1" + } + ], + "id": 1572, + "name": "MemberAccess", + "src": "29659:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1566, + "type": "bytes32", + "value": "value" + }, + "id": 1573, + "name": "Identifier", + "src": "29672:5:1" + } + ], + "id": 1574, + "name": "IndexAccess", + "src": "29659:19:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1575, + "name": "Literal", + "src": "29682:1:1" + } + ], + "id": 1576, + "name": "BinaryOperation", + "src": "29659:24:1" + } + ], + "id": 1577, + "name": "Return", + "src": "29652:31:1" + } + ], + "id": 1578, + "name": "Block", + "src": "29642:48:1" + } + ], + "id": 1579, + "name": "FunctionDefinition", + "src": "29563:127:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1580, + "name": "StructuredDocumentation", + "src": "29696:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1592, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1581, + "name": "UserDefinedTypeName", + "src": "29788:3:1" + } + ], + "id": 1582, + "name": "VariableDeclaration", + "src": "29788:15:1" + } + ], + "id": 1583, + "name": "ParameterList", + "src": "29787:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1592, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1584, + "name": "ElementaryTypeName", + "src": "29827:7:1" + } + ], + "id": 1585, + "name": "VariableDeclaration", + "src": "29827:7:1" + } + ], + "id": 1586, + "name": "ParameterList", + "src": "29826:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1586 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1582, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1587, + "name": "Identifier", + "src": "29853:3:1" + } + ], + "id": 1588, + "name": "MemberAccess", + "src": "29853:11:1" + } + ], + "id": 1589, + "name": "MemberAccess", + "src": "29853:18:1" + } + ], + "id": 1590, + "name": "Return", + "src": "29846:25:1" + } + ], + "id": 1591, + "name": "Block", + "src": "29836:42:1" + } + ], + "id": 1592, + "name": "FunctionDefinition", + "src": "29771:107:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1593, + "name": "StructuredDocumentation", + "src": "29883:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1617, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1594, + "name": "UserDefinedTypeName", + "src": "30223:3:1" + } + ], + "id": 1595, + "name": "VariableDeclaration", + "src": "30223:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1596, + "name": "ElementaryTypeName", + "src": "30240:7:1" + } + ], + "id": 1597, + "name": "VariableDeclaration", + "src": "30240:13:1" + } + ], + "id": 1598, + "name": "ParameterList", + "src": "30222:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1599, + "name": "ElementaryTypeName", + "src": "30277:7:1" + } + ], + "id": 1600, + "name": "VariableDeclaration", + "src": "30277:7:1" + } + ], + "id": 1601, + "name": "ParameterList", + "src": "30276:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1602, + "name": "Identifier", + "src": "30296:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1603, + "name": "Identifier", + "src": "30304:3:1" + } + ], + "id": 1604, + "name": "MemberAccess", + "src": "30304:11:1" + } + ], + "id": 1605, + "name": "MemberAccess", + "src": "30304:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1606, + "name": "Identifier", + "src": "30325:5:1" + } + ], + "id": 1607, + "name": "BinaryOperation", + "src": "30304:26:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableSet: index out of bounds\"", + "value": "EnumerableSet: index out of bounds" + }, + "id": 1608, + "name": "Literal", + "src": "30332:36:1" + } + ], + "id": 1609, + "name": "FunctionCall", + "src": "30296:73:1" + } + ], + "id": 1610, + "name": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "attributes": { + "functionReturnParameters": 1601 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1611, + "name": "Identifier", + "src": "30386:3:1" + } + ], + "id": 1612, + "name": "MemberAccess", + "src": "30386:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1613, + "name": "Identifier", + "src": "30398:5:1" + } + ], + "id": 1614, + "name": "IndexAccess", + "src": "30386:18:1" + } + ], + "id": 1615, + "name": "Return", + "src": "30379:25:1" + } + ], + "id": 1616, + "name": "Block", + "src": "30286:125:1" + } + ], + "id": 1617, + "name": "FunctionDefinition", + "src": "30210:201:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Bytes32Set", + "name": "Bytes32Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1620, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1618, + "name": "UserDefinedTypeName", + "src": "30464:3:1" + } + ], + "id": 1619, + "name": "VariableDeclaration", + "src": "30464:10:1" + } + ], + "id": 1620, + "name": "StructDefinition", + "src": "30436:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1621, + "name": "StructuredDocumentation", + "src": "30487:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1637, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1622, + "name": "UserDefinedTypeName", + "src": "30664:10:1" + } + ], + "id": 1623, + "name": "VariableDeclaration", + "src": "30664:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1624, + "name": "ElementaryTypeName", + "src": "30688:7:1" + } + ], + "id": 1625, + "name": "VariableDeclaration", + "src": "30688:13:1" + } + ], + "id": 1626, + "name": "ParameterList", + "src": "30663:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1627, + "name": "ElementaryTypeName", + "src": "30721:4:1" + } + ], + "id": 1628, + "name": "VariableDeclaration", + "src": "30721:4:1" + } + ], + "id": 1629, + "name": "ParameterList", + "src": "30720:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1629 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1630, + "name": "Identifier", + "src": "30744:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1623, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1631, + "name": "Identifier", + "src": "30749:3:1" + } + ], + "id": 1632, + "name": "MemberAccess", + "src": "30749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1625, + "type": "bytes32", + "value": "value" + }, + "id": 1633, + "name": "Identifier", + "src": "30761:5:1" + } + ], + "id": 1634, + "name": "FunctionCall", + "src": "30744:23:1" + } + ], + "id": 1635, + "name": "Return", + "src": "30737:30:1" + } + ], + "id": 1636, + "name": "Block", + "src": "30727:47:1" + } + ], + "id": 1637, + "name": "FunctionDefinition", + "src": "30651:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1638, + "name": "StructuredDocumentation", + "src": "30780:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1654, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1639, + "name": "UserDefinedTypeName", + "src": "30958:10:1" + } + ], + "id": 1640, + "name": "VariableDeclaration", + "src": "30958:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1641, + "name": "ElementaryTypeName", + "src": "30982:7:1" + } + ], + "id": 1642, + "name": "VariableDeclaration", + "src": "30982:13:1" + } + ], + "id": 1643, + "name": "ParameterList", + "src": "30957:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1644, + "name": "ElementaryTypeName", + "src": "31015:4:1" + } + ], + "id": 1645, + "name": "VariableDeclaration", + "src": "31015:4:1" + } + ], + "id": 1646, + "name": "ParameterList", + "src": "31014:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1646 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1647, + "name": "Identifier", + "src": "31038:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1640, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1648, + "name": "Identifier", + "src": "31046:3:1" + } + ], + "id": 1649, + "name": "MemberAccess", + "src": "31046:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1642, + "type": "bytes32", + "value": "value" + }, + "id": 1650, + "name": "Identifier", + "src": "31058:5:1" + } + ], + "id": 1651, + "name": "FunctionCall", + "src": "31038:26:1" + } + ], + "id": 1652, + "name": "Return", + "src": "31031:33:1" + } + ], + "id": 1653, + "name": "Block", + "src": "31021:50:1" + } + ], + "id": 1654, + "name": "FunctionDefinition", + "src": "30942:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1655, + "name": "StructuredDocumentation", + "src": "31077:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1671, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1656, + "name": "UserDefinedTypeName", + "src": "31170:10:1" + } + ], + "id": 1657, + "name": "VariableDeclaration", + "src": "31170:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1658, + "name": "ElementaryTypeName", + "src": "31194:7:1" + } + ], + "id": 1659, + "name": "VariableDeclaration", + "src": "31194:13:1" + } + ], + "id": 1660, + "name": "ParameterList", + "src": "31169:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1661, + "name": "ElementaryTypeName", + "src": "31232:4:1" + } + ], + "id": 1662, + "name": "VariableDeclaration", + "src": "31232:4:1" + } + ], + "id": 1663, + "name": "ParameterList", + "src": "31231:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1663 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1664, + "name": "Identifier", + "src": "31255:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1657, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1665, + "name": "Identifier", + "src": "31265:3:1" + } + ], + "id": 1666, + "name": "MemberAccess", + "src": "31265:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1659, + "type": "bytes32", + "value": "value" + }, + "id": 1667, + "name": "Identifier", + "src": "31277:5:1" + } + ], + "id": 1668, + "name": "FunctionCall", + "src": "31255:28:1" + } + ], + "id": 1669, + "name": "Return", + "src": "31248:35:1" + } + ], + "id": 1670, + "name": "Block", + "src": "31238:52:1" + } + ], + "id": 1671, + "name": "FunctionDefinition", + "src": "31152:138:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1672, + "name": "StructuredDocumentation", + "src": "31296:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1685, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1673, + "name": "UserDefinedTypeName", + "src": "31387:10:1" + } + ], + "id": 1674, + "name": "VariableDeclaration", + "src": "31387:22:1" + } + ], + "id": 1675, + "name": "ParameterList", + "src": "31386:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1685, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1676, + "name": "ElementaryTypeName", + "src": "31434:7:1" + } + ], + "id": 1677, + "name": "VariableDeclaration", + "src": "31434:7:1" + } + ], + "id": 1678, + "name": "ParameterList", + "src": "31433:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1678 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1679, + "name": "Identifier", + "src": "31460:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1674, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1680, + "name": "Identifier", + "src": "31468:3:1" + } + ], + "id": 1681, + "name": "MemberAccess", + "src": "31468:10:1" + } + ], + "id": 1682, + "name": "FunctionCall", + "src": "31460:19:1" + } + ], + "id": 1683, + "name": "Return", + "src": "31453:26:1" + } + ], + "id": 1684, + "name": "Block", + "src": "31443:43:1" + } + ], + "id": 1685, + "name": "FunctionDefinition", + "src": "31371:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1686, + "name": "StructuredDocumentation", + "src": "31491:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1702, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1687, + "name": "UserDefinedTypeName", + "src": "31830:10:1" + } + ], + "id": 1688, + "name": "VariableDeclaration", + "src": "31830:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1689, + "name": "ElementaryTypeName", + "src": "31854:7:1" + } + ], + "id": 1690, + "name": "VariableDeclaration", + "src": "31854:13:1" + } + ], + "id": 1691, + "name": "ParameterList", + "src": "31829:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1692, + "name": "ElementaryTypeName", + "src": "31892:7:1" + } + ], + "id": 1693, + "name": "VariableDeclaration", + "src": "31892:7:1" + } + ], + "id": 1694, + "name": "ParameterList", + "src": "31891:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1695, + "name": "Identifier", + "src": "31918:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1688, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1696, + "name": "Identifier", + "src": "31922:3:1" + } + ], + "id": 1697, + "name": "MemberAccess", + "src": "31922:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1690, + "type": "uint256", + "value": "index" + }, + "id": 1698, + "name": "Identifier", + "src": "31934:5:1" + } + ], + "id": 1699, + "name": "FunctionCall", + "src": "31918:22:1" + } + ], + "id": 1700, + "name": "Return", + "src": "31911:29:1" + } + ], + "id": 1701, + "name": "Block", + "src": "31901:46:1" + } + ], + "id": 1702, + "name": "FunctionDefinition", + "src": "31818:129:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.AddressSet", + "name": "AddressSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1705, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1703, + "name": "UserDefinedTypeName", + "src": "32000:3:1" + } + ], + "id": 1704, + "name": "VariableDeclaration", + "src": "32000:10:1" + } + ], + "id": 1705, + "name": "StructDefinition", + "src": "31972:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1706, + "name": "StructuredDocumentation", + "src": "32023:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1731, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1707, + "name": "UserDefinedTypeName", + "src": "32200:10:1" + } + ], + "id": 1708, + "name": "VariableDeclaration", + "src": "32200:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1709, + "name": "ElementaryTypeName", + "src": "32224:7:1" + } + ], + "id": 1710, + "name": "VariableDeclaration", + "src": "32224:13:1" + } + ], + "id": 1711, + "name": "ParameterList", + "src": "32199:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1712, + "name": "ElementaryTypeName", + "src": "32257:4:1" + } + ], + "id": 1713, + "name": "VariableDeclaration", + "src": "32257:4:1" + } + ], + "id": 1714, + "name": "ParameterList", + "src": "32256:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1714 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1715, + "name": "Identifier", + "src": "32280:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1708, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1716, + "name": "Identifier", + "src": "32285:3:1" + } + ], + "id": 1717, + "name": "MemberAccess", + "src": "32285:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1718, + "name": "ElementaryTypeName", + "src": "32297:7:1" + } + ], + "id": 1719, + "name": "ElementaryTypeNameExpression", + "src": "32297:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1720, + "name": "ElementaryTypeName", + "src": "32305:7:1" + } + ], + "id": 1721, + "name": "ElementaryTypeNameExpression", + "src": "32305:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1722, + "name": "ElementaryTypeName", + "src": "32313:7:1" + } + ], + "id": 1723, + "name": "ElementaryTypeNameExpression", + "src": "32313:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1710, + "type": "address", + "value": "value" + }, + "id": 1724, + "name": "Identifier", + "src": "32321:5:1" + } + ], + "id": 1725, + "name": "FunctionCall", + "src": "32313:14:1" + } + ], + "id": 1726, + "name": "FunctionCall", + "src": "32305:23:1" + } + ], + "id": 1727, + "name": "FunctionCall", + "src": "32297:32:1" + } + ], + "id": 1728, + "name": "FunctionCall", + "src": "32280:50:1" + } + ], + "id": 1729, + "name": "Return", + "src": "32273:57:1" + } + ], + "id": 1730, + "name": "Block", + "src": "32263:74:1" + } + ], + "id": 1731, + "name": "FunctionDefinition", + "src": "32187:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1732, + "name": "StructuredDocumentation", + "src": "32343:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1757, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1733, + "name": "UserDefinedTypeName", + "src": "32521:10:1" + } + ], + "id": 1734, + "name": "VariableDeclaration", + "src": "32521:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1735, + "name": "ElementaryTypeName", + "src": "32545:7:1" + } + ], + "id": 1736, + "name": "VariableDeclaration", + "src": "32545:13:1" + } + ], + "id": 1737, + "name": "ParameterList", + "src": "32520:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1738, + "name": "ElementaryTypeName", + "src": "32578:4:1" + } + ], + "id": 1739, + "name": "VariableDeclaration", + "src": "32578:4:1" + } + ], + "id": 1740, + "name": "ParameterList", + "src": "32577:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1740 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1741, + "name": "Identifier", + "src": "32601:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1734, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1742, + "name": "Identifier", + "src": "32609:3:1" + } + ], + "id": 1743, + "name": "MemberAccess", + "src": "32609:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1744, + "name": "ElementaryTypeName", + "src": "32621:7:1" + } + ], + "id": 1745, + "name": "ElementaryTypeNameExpression", + "src": "32621:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1746, + "name": "ElementaryTypeName", + "src": "32629:7:1" + } + ], + "id": 1747, + "name": "ElementaryTypeNameExpression", + "src": "32629:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1748, + "name": "ElementaryTypeName", + "src": "32637:7:1" + } + ], + "id": 1749, + "name": "ElementaryTypeNameExpression", + "src": "32637:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1736, + "type": "address", + "value": "value" + }, + "id": 1750, + "name": "Identifier", + "src": "32645:5:1" + } + ], + "id": 1751, + "name": "FunctionCall", + "src": "32637:14:1" + } + ], + "id": 1752, + "name": "FunctionCall", + "src": "32629:23:1" + } + ], + "id": 1753, + "name": "FunctionCall", + "src": "32621:32:1" + } + ], + "id": 1754, + "name": "FunctionCall", + "src": "32601:53:1" + } + ], + "id": 1755, + "name": "Return", + "src": "32594:60:1" + } + ], + "id": 1756, + "name": "Block", + "src": "32584:77:1" + } + ], + "id": 1757, + "name": "FunctionDefinition", + "src": "32505:156:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1758, + "name": "StructuredDocumentation", + "src": "32667:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1783, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1759, + "name": "UserDefinedTypeName", + "src": "32760:10:1" + } + ], + "id": 1760, + "name": "VariableDeclaration", + "src": "32760:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1761, + "name": "ElementaryTypeName", + "src": "32784:7:1" + } + ], + "id": 1762, + "name": "VariableDeclaration", + "src": "32784:13:1" + } + ], + "id": 1763, + "name": "ParameterList", + "src": "32759:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1764, + "name": "ElementaryTypeName", + "src": "32822:4:1" + } + ], + "id": 1765, + "name": "VariableDeclaration", + "src": "32822:4:1" + } + ], + "id": 1766, + "name": "ParameterList", + "src": "32821:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1766 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1767, + "name": "Identifier", + "src": "32845:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1760, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1768, + "name": "Identifier", + "src": "32855:3:1" + } + ], + "id": 1769, + "name": "MemberAccess", + "src": "32855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1770, + "name": "ElementaryTypeName", + "src": "32867:7:1" + } + ], + "id": 1771, + "name": "ElementaryTypeNameExpression", + "src": "32867:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1772, + "name": "ElementaryTypeName", + "src": "32875:7:1" + } + ], + "id": 1773, + "name": "ElementaryTypeNameExpression", + "src": "32875:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1774, + "name": "ElementaryTypeName", + "src": "32883:7:1" + } + ], + "id": 1775, + "name": "ElementaryTypeNameExpression", + "src": "32883:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1762, + "type": "address", + "value": "value" + }, + "id": 1776, + "name": "Identifier", + "src": "32891:5:1" + } + ], + "id": 1777, + "name": "FunctionCall", + "src": "32883:14:1" + } + ], + "id": 1778, + "name": "FunctionCall", + "src": "32875:23:1" + } + ], + "id": 1779, + "name": "FunctionCall", + "src": "32867:32:1" + } + ], + "id": 1780, + "name": "FunctionCall", + "src": "32845:55:1" + } + ], + "id": 1781, + "name": "Return", + "src": "32838:62:1" + } + ], + "id": 1782, + "name": "Block", + "src": "32828:79:1" + } + ], + "id": 1783, + "name": "FunctionDefinition", + "src": "32742:165:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1784, + "name": "StructuredDocumentation", + "src": "32913:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1797, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1785, + "name": "UserDefinedTypeName", + "src": "33004:10:1" + } + ], + "id": 1786, + "name": "VariableDeclaration", + "src": "33004:22:1" + } + ], + "id": 1787, + "name": "ParameterList", + "src": "33003:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1797, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1788, + "name": "ElementaryTypeName", + "src": "33051:7:1" + } + ], + "id": 1789, + "name": "VariableDeclaration", + "src": "33051:7:1" + } + ], + "id": 1790, + "name": "ParameterList", + "src": "33050:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1790 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1791, + "name": "Identifier", + "src": "33077:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1786, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1792, + "name": "Identifier", + "src": "33085:3:1" + } + ], + "id": 1793, + "name": "MemberAccess", + "src": "33085:10:1" + } + ], + "id": 1794, + "name": "FunctionCall", + "src": "33077:19:1" + } + ], + "id": 1795, + "name": "Return", + "src": "33070:26:1" + } + ], + "id": 1796, + "name": "Block", + "src": "33060:43:1" + } + ], + "id": 1797, + "name": "FunctionDefinition", + "src": "32988:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1798, + "name": "StructuredDocumentation", + "src": "33108:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1823, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1799, + "name": "UserDefinedTypeName", + "src": "33447:10:1" + } + ], + "id": 1800, + "name": "VariableDeclaration", + "src": "33447:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1801, + "name": "ElementaryTypeName", + "src": "33471:7:1" + } + ], + "id": 1802, + "name": "VariableDeclaration", + "src": "33471:13:1" + } + ], + "id": 1803, + "name": "ParameterList", + "src": "33446:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1804, + "name": "ElementaryTypeName", + "src": "33509:7:1" + } + ], + "id": 1805, + "name": "VariableDeclaration", + "src": "33509:7:1" + } + ], + "id": 1806, + "name": "ParameterList", + "src": "33508:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1806 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1807, + "name": "ElementaryTypeName", + "src": "33535:7:1" + } + ], + "id": 1808, + "name": "ElementaryTypeNameExpression", + "src": "33535:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1809, + "name": "ElementaryTypeName", + "src": "33543:7:1" + } + ], + "id": 1810, + "name": "ElementaryTypeNameExpression", + "src": "33543:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1811, + "name": "ElementaryTypeName", + "src": "33551:7:1" + } + ], + "id": 1812, + "name": "ElementaryTypeNameExpression", + "src": "33551:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1813, + "name": "Identifier", + "src": "33559:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1800, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1814, + "name": "Identifier", + "src": "33563:3:1" + } + ], + "id": 1815, + "name": "MemberAccess", + "src": "33563:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1802, + "type": "uint256", + "value": "index" + }, + "id": 1816, + "name": "Identifier", + "src": "33575:5:1" + } + ], + "id": 1817, + "name": "FunctionCall", + "src": "33559:22:1" + } + ], + "id": 1818, + "name": "FunctionCall", + "src": "33551:31:1" + } + ], + "id": 1819, + "name": "FunctionCall", + "src": "33543:40:1" + } + ], + "id": 1820, + "name": "FunctionCall", + "src": "33535:49:1" + } + ], + "id": 1821, + "name": "Return", + "src": "33528:56:1" + } + ], + "id": 1822, + "name": "Block", + "src": "33518:73:1" + } + ], + "id": 1823, + "name": "FunctionDefinition", + "src": "33435:156:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.UintSet", + "name": "UintSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1826, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1824, + "name": "UserDefinedTypeName", + "src": "33639:3:1" + } + ], + "id": 1825, + "name": "VariableDeclaration", + "src": "33639:10:1" + } + ], + "id": 1826, + "name": "StructDefinition", + "src": "33614:42:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1827, + "name": "StructuredDocumentation", + "src": "33662:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1846, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1828, + "name": "UserDefinedTypeName", + "src": "33839:7:1" + } + ], + "id": 1829, + "name": "VariableDeclaration", + "src": "33839:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1830, + "name": "ElementaryTypeName", + "src": "33860:7:1" + } + ], + "id": 1831, + "name": "VariableDeclaration", + "src": "33860:13:1" + } + ], + "id": 1832, + "name": "ParameterList", + "src": "33838:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1833, + "name": "ElementaryTypeName", + "src": "33893:4:1" + } + ], + "id": 1834, + "name": "VariableDeclaration", + "src": "33893:4:1" + } + ], + "id": 1835, + "name": "ParameterList", + "src": "33892:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1835 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1836, + "name": "Identifier", + "src": "33916:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1829, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1837, + "name": "Identifier", + "src": "33921:3:1" + } + ], + "id": 1838, + "name": "MemberAccess", + "src": "33921:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1839, + "name": "ElementaryTypeName", + "src": "33933:7:1" + } + ], + "id": 1840, + "name": "ElementaryTypeNameExpression", + "src": "33933:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1831, + "type": "uint256", + "value": "value" + }, + "id": 1841, + "name": "Identifier", + "src": "33941:5:1" + } + ], + "id": 1842, + "name": "FunctionCall", + "src": "33933:14:1" + } + ], + "id": 1843, + "name": "FunctionCall", + "src": "33916:32:1" + } + ], + "id": 1844, + "name": "Return", + "src": "33909:39:1" + } + ], + "id": 1845, + "name": "Block", + "src": "33899:56:1" + } + ], + "id": 1846, + "name": "FunctionDefinition", + "src": "33826:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1847, + "name": "StructuredDocumentation", + "src": "33961:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1866, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1848, + "name": "UserDefinedTypeName", + "src": "34139:7:1" + } + ], + "id": 1849, + "name": "VariableDeclaration", + "src": "34139:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1850, + "name": "ElementaryTypeName", + "src": "34160:7:1" + } + ], + "id": 1851, + "name": "VariableDeclaration", + "src": "34160:13:1" + } + ], + "id": 1852, + "name": "ParameterList", + "src": "34138:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1853, + "name": "ElementaryTypeName", + "src": "34193:4:1" + } + ], + "id": 1854, + "name": "VariableDeclaration", + "src": "34193:4:1" + } + ], + "id": 1855, + "name": "ParameterList", + "src": "34192:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1855 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1856, + "name": "Identifier", + "src": "34216:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1849, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1857, + "name": "Identifier", + "src": "34224:3:1" + } + ], + "id": 1858, + "name": "MemberAccess", + "src": "34224:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1859, + "name": "ElementaryTypeName", + "src": "34236:7:1" + } + ], + "id": 1860, + "name": "ElementaryTypeNameExpression", + "src": "34236:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1851, + "type": "uint256", + "value": "value" + }, + "id": 1861, + "name": "Identifier", + "src": "34244:5:1" + } + ], + "id": 1862, + "name": "FunctionCall", + "src": "34236:14:1" + } + ], + "id": 1863, + "name": "FunctionCall", + "src": "34216:35:1" + } + ], + "id": 1864, + "name": "Return", + "src": "34209:42:1" + } + ], + "id": 1865, + "name": "Block", + "src": "34199:59:1" + } + ], + "id": 1866, + "name": "FunctionDefinition", + "src": "34123:135:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1867, + "name": "StructuredDocumentation", + "src": "34264:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1886, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1868, + "name": "UserDefinedTypeName", + "src": "34357:7:1" + } + ], + "id": 1869, + "name": "VariableDeclaration", + "src": "34357:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1870, + "name": "ElementaryTypeName", + "src": "34378:7:1" + } + ], + "id": 1871, + "name": "VariableDeclaration", + "src": "34378:13:1" + } + ], + "id": 1872, + "name": "ParameterList", + "src": "34356:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1873, + "name": "ElementaryTypeName", + "src": "34416:4:1" + } + ], + "id": 1874, + "name": "VariableDeclaration", + "src": "34416:4:1" + } + ], + "id": 1875, + "name": "ParameterList", + "src": "34415:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1875 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1876, + "name": "Identifier", + "src": "34439:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1869, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1877, + "name": "Identifier", + "src": "34449:3:1" + } + ], + "id": 1878, + "name": "MemberAccess", + "src": "34449:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1879, + "name": "ElementaryTypeName", + "src": "34461:7:1" + } + ], + "id": 1880, + "name": "ElementaryTypeNameExpression", + "src": "34461:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1871, + "type": "uint256", + "value": "value" + }, + "id": 1881, + "name": "Identifier", + "src": "34469:5:1" + } + ], + "id": 1882, + "name": "FunctionCall", + "src": "34461:14:1" + } + ], + "id": 1883, + "name": "FunctionCall", + "src": "34439:37:1" + } + ], + "id": 1884, + "name": "Return", + "src": "34432:44:1" + } + ], + "id": 1885, + "name": "Block", + "src": "34422:61:1" + } + ], + "id": 1886, + "name": "FunctionDefinition", + "src": "34339:144:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1887, + "name": "StructuredDocumentation", + "src": "34489:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1900, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1888, + "name": "UserDefinedTypeName", + "src": "34580:7:1" + } + ], + "id": 1889, + "name": "VariableDeclaration", + "src": "34580:19:1" + } + ], + "id": 1890, + "name": "ParameterList", + "src": "34579:21:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1900, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1891, + "name": "ElementaryTypeName", + "src": "34624:7:1" + } + ], + "id": 1892, + "name": "VariableDeclaration", + "src": "34624:7:1" + } + ], + "id": 1893, + "name": "ParameterList", + "src": "34623:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1894, + "name": "Identifier", + "src": "34650:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1889, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1895, + "name": "Identifier", + "src": "34658:3:1" + } + ], + "id": 1896, + "name": "MemberAccess", + "src": "34658:10:1" + } + ], + "id": 1897, + "name": "FunctionCall", + "src": "34650:19:1" + } + ], + "id": 1898, + "name": "Return", + "src": "34643:26:1" + } + ], + "id": 1899, + "name": "Block", + "src": "34633:43:1" + } + ], + "id": 1900, + "name": "FunctionDefinition", + "src": "34564:112:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1901, + "name": "StructuredDocumentation", + "src": "34681:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1920, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1902, + "name": "UserDefinedTypeName", + "src": "35020:7:1" + } + ], + "id": 1903, + "name": "VariableDeclaration", + "src": "35020:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1904, + "name": "ElementaryTypeName", + "src": "35041:7:1" + } + ], + "id": 1905, + "name": "VariableDeclaration", + "src": "35041:13:1" + } + ], + "id": 1906, + "name": "ParameterList", + "src": "35019:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1907, + "name": "ElementaryTypeName", + "src": "35079:7:1" + } + ], + "id": 1908, + "name": "VariableDeclaration", + "src": "35079:7:1" + } + ], + "id": 1909, + "name": "ParameterList", + "src": "35078:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1909 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1910, + "name": "ElementaryTypeName", + "src": "35105:7:1" + } + ], + "id": 1911, + "name": "ElementaryTypeNameExpression", + "src": "35105:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1912, + "name": "Identifier", + "src": "35113:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1903, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1913, + "name": "Identifier", + "src": "35117:3:1" + } + ], + "id": 1914, + "name": "MemberAccess", + "src": "35117:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1905, + "type": "uint256", + "value": "index" + }, + "id": 1915, + "name": "Identifier", + "src": "35129:5:1" + } + ], + "id": 1916, + "name": "FunctionCall", + "src": "35113:22:1" + } + ], + "id": 1917, + "name": "FunctionCall", + "src": "35105:31:1" + } + ], + "id": 1918, + "name": "Return", + "src": "35098:38:1" + } + ], + "id": 1919, + "name": "Block", + "src": "35088:55:1" + } + ], + "id": 1920, + "name": "FunctionDefinition", + "src": "35008:135:1" + } + ], + "id": 1921, + "name": "ContractDefinition", + "src": "26511:8634:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1922, + "name": "PragmaDirective", + "src": "35204:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "id": 1923, + "name": "StructuredDocumentation", + "src": "35237:705:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.MapEntry", + "name": "MapEntry", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_key", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1924, + "name": "ElementaryTypeName", + "src": "36455:7:1" + } + ], + "id": 1925, + "name": "VariableDeclaration", + "src": "36455:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_value", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1926, + "name": "ElementaryTypeName", + "src": "36477:7:1" + } + ], + "id": 1927, + "name": "VariableDeclaration", + "src": "36477:14:1" + } + ], + "id": 1928, + "name": "StructDefinition", + "src": "36429:69:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.Map", + "name": "Map", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_entries", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.MapEntry[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "struct EnumerableMap.MapEntry[]" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 1929, + "name": "UserDefinedTypeName", + "src": "36567:8:1" + } + ], + "id": 1930, + "name": "ArrayTypeName", + "src": "36567:10:1" + } + ], + "id": 1931, + "name": "VariableDeclaration", + "src": "36567:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1932, + "name": "ElementaryTypeName", + "src": "36745:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1933, + "name": "ElementaryTypeName", + "src": "36756:7:1" + } + ], + "id": 1934, + "name": "Mapping", + "src": "36736:28:1" + } + ], + "id": 1935, + "name": "VariableDeclaration", + "src": "36736:37:1" + } + ], + "id": 1936, + "name": "StructDefinition", + "src": "36504:276:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1937, + "name": "StructuredDocumentation", + "src": "36786:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 1998, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 1938, + "name": "UserDefinedTypeName", + "src": "37021:3:1" + } + ], + "id": 1939, + "name": "VariableDeclaration", + "src": "37021:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1940, + "name": "ElementaryTypeName", + "src": "37038:7:1" + } + ], + "id": 1941, + "name": "VariableDeclaration", + "src": "37038:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1942, + "name": "ElementaryTypeName", + "src": "37051:7:1" + } + ], + "id": 1943, + "name": "VariableDeclaration", + "src": "37051:13:1" + } + ], + "id": 1944, + "name": "ParameterList", + "src": "37020:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1945, + "name": "ElementaryTypeName", + "src": "37083:4:1" + } + ], + "id": 1946, + "name": "VariableDeclaration", + "src": "37083:4:1" + } + ], + "id": 1947, + "name": "ParameterList", + "src": "37082:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1949 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 1997, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1948, + "name": "ElementaryTypeName", + "src": "37197:7:1" + } + ], + "id": 1949, + "name": "VariableDeclaration", + "src": "37197:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1950, + "name": "Identifier", + "src": "37216:3:1" + } + ], + "id": 1951, + "name": "MemberAccess", + "src": "37216:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1952, + "name": "Identifier", + "src": "37229:3:1" + } + ], + "id": 1953, + "name": "IndexAccess", + "src": "37216:17:1" + } + ], + "id": 1954, + "name": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1955, + "name": "Identifier", + "src": "37248:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1956, + "name": "Literal", + "src": "37260:1:1" + } + ], + "id": 1957, + "name": "BinaryOperation", + "src": "37248:13:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (struct EnumerableMap.MapEntry storage ref)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1958, + "name": "Identifier", + "src": "37314:3:1" + } + ], + "id": 1961, + "name": "MemberAccess", + "src": "37314:12:1" + } + ], + "id": 1962, + "name": "MemberAccess", + "src": "37314:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": true, + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "tryCall": false, + "type": "struct EnumerableMap.MapEntry memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1928, + "type": "type(struct EnumerableMap.MapEntry storage pointer)", + "value": "MapEntry" + }, + "id": 1963, + "name": "Identifier", + "src": "37332:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1964, + "name": "Identifier", + "src": "37349:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1965, + "name": "Identifier", + "src": "37362:5:1" + } + ], + "id": 1966, + "name": "FunctionCall", + "src": "37332:38:1" + } + ], + "id": 1967, + "name": "FunctionCall", + "src": "37314:57:1" + } + ], + "id": 1968, + "name": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1969, + "name": "Identifier", + "src": "37506:3:1" + } + ], + "id": 1972, + "name": "MemberAccess", + "src": "37506:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1971, + "name": "Identifier", + "src": "37519:3:1" + } + ], + "id": 1973, + "name": "IndexAccess", + "src": "37506:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1974, + "name": "Identifier", + "src": "37526:3:1" + } + ], + "id": 1975, + "name": "MemberAccess", + "src": "37526:12:1" + } + ], + "id": 1976, + "name": "MemberAccess", + "src": "37526:19:1" + } + ], + "id": 1977, + "name": "Assignment", + "src": "37506:39:1" + } + ], + "id": 1978, + "name": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1979, + "name": "Literal", + "src": "37566:4:1" + } + ], + "id": 1980, + "name": "Return", + "src": "37559:11:1" + } + ], + "id": 1981, + "name": "Block", + "src": "37263:318:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1982, + "name": "Identifier", + "src": "37601:3:1" + } + ], + "id": 1987, + "name": "MemberAccess", + "src": "37601:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1984, + "name": "Identifier", + "src": "37614:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1985, + "name": "Literal", + "src": "37625:1:1" + } + ], + "id": 1986, + "name": "BinaryOperation", + "src": "37614:12:1" + } + ], + "id": 1988, + "name": "IndexAccess", + "src": "37601:26:1" + } + ], + "id": 1989, + "name": "MemberAccess", + "src": "37601:33:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1990, + "name": "Identifier", + "src": "37637:5:1" + } + ], + "id": 1991, + "name": "Assignment", + "src": "37601:41:1" + } + ], + "id": 1992, + "name": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1993, + "name": "Literal", + "src": "37663:5:1" + } + ], + "id": 1994, + "name": "Return", + "src": "37656:12:1" + } + ], + "id": 1995, + "name": "Block", + "src": "37587:92:1" + } + ], + "id": 1996, + "name": "IfStatement", + "src": "37244:435:1" + } + ], + "id": 1997, + "name": "Block", + "src": "37089:596:1" + } + ], + "id": 1998, + "name": "FunctionDefinition", + "src": "37007:678:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 1999, + "name": "StructuredDocumentation", + "src": "37691:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2079, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2000, + "name": "UserDefinedTypeName", + "src": "37870:3:1" + } + ], + "id": 2001, + "name": "VariableDeclaration", + "src": "37870:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2002, + "name": "ElementaryTypeName", + "src": "37887:7:1" + } + ], + "id": 2003, + "name": "VariableDeclaration", + "src": "37887:11:1" + } + ], + "id": 2004, + "name": "ParameterList", + "src": "37869:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2005, + "name": "ElementaryTypeName", + "src": "37917:4:1" + } + ], + "id": 2006, + "name": "VariableDeclaration", + "src": "37917:4:1" + } + ], + "id": 2007, + "name": "ParameterList", + "src": "37916:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2009 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2078, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2008, + "name": "ElementaryTypeName", + "src": "38031:7:1" + } + ], + "id": 2009, + "name": "VariableDeclaration", + "src": "38031:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2010, + "name": "Identifier", + "src": "38050:3:1" + } + ], + "id": 2011, + "name": "MemberAccess", + "src": "38050:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2012, + "name": "Identifier", + "src": "38063:3:1" + } + ], + "id": 2013, + "name": "IndexAccess", + "src": "38050:17:1" + } + ], + "id": 2014, + "name": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2015, + "name": "Identifier", + "src": "38082:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2016, + "name": "Literal", + "src": "38094:1:1" + } + ], + "id": 2017, + "name": "BinaryOperation", + "src": "38082:13:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2019 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2018, + "name": "ElementaryTypeName", + "src": "38438:7:1" + } + ], + "id": 2019, + "name": "VariableDeclaration", + "src": "38438:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2020, + "name": "Identifier", + "src": "38462:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2021, + "name": "Literal", + "src": "38473:1:1" + } + ], + "id": 2022, + "name": "BinaryOperation", + "src": "38462:12:1" + } + ], + "id": 2023, + "name": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "attributes": { + "assignments": [ + 2025 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2024, + "name": "ElementaryTypeName", + "src": "38488:7:1" + } + ], + "id": 2025, + "name": "VariableDeclaration", + "src": "38488:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2026, + "name": "Identifier", + "src": "38508:3:1" + } + ], + "id": 2027, + "name": "MemberAccess", + "src": "38508:12:1" + } + ], + "id": 2028, + "name": "MemberAccess", + "src": "38508:19:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2029, + "name": "Literal", + "src": "38530:1:1" + } + ], + "id": 2030, + "name": "BinaryOperation", + "src": "38508:23:1" + } + ], + "id": 2031, + "name": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "attributes": { + "assignments": [ + 2033 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastEntry", + "scope": 2073, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2032, + "name": "UserDefinedTypeName", + "src": "38771:8:1" + } + ], + "id": 2033, + "name": "VariableDeclaration", + "src": "38771:26:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2034, + "name": "Identifier", + "src": "38800:3:1" + } + ], + "id": 2035, + "name": "MemberAccess", + "src": "38800:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2025, + "type": "uint256", + "value": "lastIndex" + }, + "id": 2036, + "name": "Identifier", + "src": "38813:9:1" + } + ], + "id": 2037, + "name": "IndexAccess", + "src": "38800:23:1" + } + ], + "id": 2038, + "name": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2039, + "name": "Identifier", + "src": "38915:3:1" + } + ], + "id": 2042, + "name": "MemberAccess", + "src": "38915:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2041, + "name": "Identifier", + "src": "38928:13:1" + } + ], + "id": 2043, + "name": "IndexAccess", + "src": "38915:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2044, + "name": "Identifier", + "src": "38945:9:1" + } + ], + "id": 2045, + "name": "Assignment", + "src": "38915:39:1" + } + ], + "id": 2046, + "name": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2047, + "name": "Identifier", + "src": "39020:3:1" + } + ], + "id": 2051, + "name": "MemberAccess", + "src": "39020:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2049, + "name": "Identifier", + "src": "39033:9:1" + } + ], + "id": 2050, + "name": "MemberAccess", + "src": "39033:14:1" + } + ], + "id": 2052, + "name": "IndexAccess", + "src": "39020:28:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2053, + "name": "Identifier", + "src": "39051:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2054, + "name": "Literal", + "src": "39067:1:1" + } + ], + "id": 2055, + "name": "BinaryOperation", + "src": "39051:17:1" + } + ], + "id": 2056, + "name": "Assignment", + "src": "39020:48:1" + } + ], + "id": 2057, + "name": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2058, + "name": "Identifier", + "src": "39174:3:1" + } + ], + "id": 2061, + "name": "MemberAccess", + "src": "39174:12:1" + } + ], + "id": 2062, + "name": "MemberAccess", + "src": "39174:16:1" + } + ], + "id": 2063, + "name": "FunctionCall", + "src": "39174:18:1" + } + ], + "id": 2064, + "name": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2065, + "name": "Identifier", + "src": "39267:3:1" + } + ], + "id": 2066, + "name": "MemberAccess", + "src": "39267:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2067, + "name": "Identifier", + "src": "39280:3:1" + } + ], + "id": 2068, + "name": "IndexAccess", + "src": "39267:17:1" + } + ], + "id": 2069, + "name": "UnaryOperation", + "src": "39260:24:1" + } + ], + "id": 2070, + "name": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2071, + "name": "Literal", + "src": "39306:4:1" + } + ], + "id": 2072, + "name": "Return", + "src": "39299:11:1" + } + ], + "id": 2073, + "name": "Block", + "src": "38097:1224:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2074, + "name": "Literal", + "src": "39348:5:1" + } + ], + "id": 2075, + "name": "Return", + "src": "39341:12:1" + } + ], + "id": 2076, + "name": "Block", + "src": "39327:37:1" + } + ], + "id": 2077, + "name": "IfStatement", + "src": "38078:1286:1" + } + ], + "id": 2078, + "name": "Block", + "src": "37923:1447:1" + } + ], + "id": 2079, + "name": "FunctionDefinition", + "src": "37853:1517:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2080, + "name": "StructuredDocumentation", + "src": "39376:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2097, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2081, + "name": "UserDefinedTypeName", + "src": "39468:3:1" + } + ], + "id": 2082, + "name": "VariableDeclaration", + "src": "39468:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2083, + "name": "ElementaryTypeName", + "src": "39485:7:1" + } + ], + "id": 2084, + "name": "VariableDeclaration", + "src": "39485:11:1" + } + ], + "id": 2085, + "name": "ParameterList", + "src": "39467:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2086, + "name": "ElementaryTypeName", + "src": "39520:4:1" + } + ], + "id": 2087, + "name": "VariableDeclaration", + "src": "39520:4:1" + } + ], + "id": 2088, + "name": "ParameterList", + "src": "39519:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2088 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2082, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2089, + "name": "Identifier", + "src": "39543:3:1" + } + ], + "id": 2090, + "name": "MemberAccess", + "src": "39543:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2084, + "type": "bytes32", + "value": "key" + }, + "id": 2091, + "name": "Identifier", + "src": "39556:3:1" + } + ], + "id": 2092, + "name": "IndexAccess", + "src": "39543:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2093, + "name": "Literal", + "src": "39564:1:1" + } + ], + "id": 2094, + "name": "BinaryOperation", + "src": "39543:22:1" + } + ], + "id": 2095, + "name": "Return", + "src": "39536:29:1" + } + ], + "id": 2096, + "name": "Block", + "src": "39526:46:1" + } + ], + "id": 2097, + "name": "FunctionDefinition", + "src": "39449:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2098, + "name": "StructuredDocumentation", + "src": "39578:79:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2110, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2099, + "name": "UserDefinedTypeName", + "src": "39679:3:1" + } + ], + "id": 2100, + "name": "VariableDeclaration", + "src": "39679:15:1" + } + ], + "id": 2101, + "name": "ParameterList", + "src": "39678:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2102, + "name": "ElementaryTypeName", + "src": "39718:7:1" + } + ], + "id": 2103, + "name": "VariableDeclaration", + "src": "39718:7:1" + } + ], + "id": 2104, + "name": "ParameterList", + "src": "39717:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2104 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2100, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2105, + "name": "Identifier", + "src": "39744:3:1" + } + ], + "id": 2106, + "name": "MemberAccess", + "src": "39744:12:1" + } + ], + "id": 2107, + "name": "MemberAccess", + "src": "39744:19:1" + } + ], + "id": 2108, + "name": "Return", + "src": "39737:26:1" + } + ], + "id": 2109, + "name": "Block", + "src": "39727:43:1" + } + ], + "id": 2110, + "name": "FunctionDefinition", + "src": "39662:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2111, + "name": "StructuredDocumentation", + "src": "39775:333:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2145, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2112, + "name": "UserDefinedTypeName", + "src": "40126:3:1" + } + ], + "id": 2113, + "name": "VariableDeclaration", + "src": "40126:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2114, + "name": "ElementaryTypeName", + "src": "40143:7:1" + } + ], + "id": 2115, + "name": "VariableDeclaration", + "src": "40143:13:1" + } + ], + "id": 2116, + "name": "ParameterList", + "src": "40125:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2117, + "name": "ElementaryTypeName", + "src": "40180:7:1" + } + ], + "id": 2118, + "name": "VariableDeclaration", + "src": "40180:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2119, + "name": "ElementaryTypeName", + "src": "40189:7:1" + } + ], + "id": 2120, + "name": "VariableDeclaration", + "src": "40189:7:1" + } + ], + "id": 2121, + "name": "ParameterList", + "src": "40179:18:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2122, + "name": "Identifier", + "src": "40208:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2123, + "name": "Identifier", + "src": "40216:3:1" + } + ], + "id": 2124, + "name": "MemberAccess", + "src": "40216:12:1" + } + ], + "id": 2125, + "name": "MemberAccess", + "src": "40216:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2126, + "name": "Identifier", + "src": "40238:5:1" + } + ], + "id": 2127, + "name": "BinaryOperation", + "src": "40216:27:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: index out of bounds\"", + "value": "EnumerableMap: index out of bounds" + }, + "id": 2128, + "name": "Literal", + "src": "40245:36:1" + } + ], + "id": 2129, + "name": "FunctionCall", + "src": "40208:74:1" + } + ], + "id": 2130, + "name": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "attributes": { + "assignments": [ + 2132 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "entry", + "scope": 2144, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2131, + "name": "UserDefinedTypeName", + "src": "40293:8:1" + } + ], + "id": 2132, + "name": "VariableDeclaration", + "src": "40293:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2133, + "name": "Identifier", + "src": "40318:3:1" + } + ], + "id": 2134, + "name": "MemberAccess", + "src": "40318:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2135, + "name": "Identifier", + "src": "40331:5:1" + } + ], + "id": 2136, + "name": "IndexAccess", + "src": "40318:19:1" + } + ], + "id": 2137, + "name": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2121 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bytes32,bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2138, + "name": "Identifier", + "src": "40355:5:1" + } + ], + "id": 2139, + "name": "MemberAccess", + "src": "40355:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2140, + "name": "Identifier", + "src": "40367:5:1" + } + ], + "id": 2141, + "name": "MemberAccess", + "src": "40367:12:1" + } + ], + "id": 2142, + "name": "TupleExpression", + "src": "40354:26:1" + } + ], + "id": 2143, + "name": "Return", + "src": "40347:33:1" + } + ], + "id": 2144, + "name": "Block", + "src": "40198:189:1" + } + ], + "id": 2145, + "name": "FunctionDefinition", + "src": "40113:274:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2146, + "name": "StructuredDocumentation", + "src": "40393:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2183, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2147, + "name": "UserDefinedTypeName", + "src": "40546:3:1" + } + ], + "id": 2148, + "name": "VariableDeclaration", + "src": "40546:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2149, + "name": "ElementaryTypeName", + "src": "40563:7:1" + } + ], + "id": 2150, + "name": "VariableDeclaration", + "src": "40563:11:1" + } + ], + "id": 2151, + "name": "ParameterList", + "src": "40545:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2152, + "name": "ElementaryTypeName", + "src": "40598:4:1" + } + ], + "id": 2153, + "name": "VariableDeclaration", + "src": "40598:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2154, + "name": "ElementaryTypeName", + "src": "40604:7:1" + } + ], + "id": 2155, + "name": "VariableDeclaration", + "src": "40604:7:1" + } + ], + "id": 2156, + "name": "ParameterList", + "src": "40597:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2158 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2182, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2157, + "name": "ElementaryTypeName", + "src": "40623:7:1" + } + ], + "id": 2158, + "name": "VariableDeclaration", + "src": "40623:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2159, + "name": "Identifier", + "src": "40642:3:1" + } + ], + "id": 2160, + "name": "MemberAccess", + "src": "40642:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2150, + "type": "bytes32", + "value": "key" + }, + "id": 2161, + "name": "Identifier", + "src": "40655:3:1" + } + ], + "id": 2162, + "name": "IndexAccess", + "src": "40642:17:1" + } + ], + "id": 2163, + "name": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2164, + "name": "Identifier", + "src": "40673:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2165, + "name": "Literal", + "src": "40685:1:1" + } + ], + "id": 2166, + "name": "BinaryOperation", + "src": "40673:13:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2167, + "name": "Literal", + "src": "40696:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2168, + "name": "Literal", + "src": "40703:1:1" + } + ], + "id": 2169, + "name": "TupleExpression", + "src": "40695:10:1" + } + ], + "id": 2170, + "name": "Return", + "src": "40688:17:1" + } + ], + "id": 2171, + "name": "IfStatement", + "src": "40669:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,bytes32)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2172, + "name": "Literal", + "src": "40759:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2173, + "name": "Identifier", + "src": "40765:3:1" + } + ], + "id": 2174, + "name": "MemberAccess", + "src": "40765:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2175, + "name": "Identifier", + "src": "40778:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2176, + "name": "Literal", + "src": "40789:1:1" + } + ], + "id": 2177, + "name": "BinaryOperation", + "src": "40778:12:1" + } + ], + "id": 2178, + "name": "IndexAccess", + "src": "40765:26:1" + } + ], + "id": 2179, + "name": "MemberAccess", + "src": "40765:33:1" + } + ], + "id": 2180, + "name": "TupleExpression", + "src": "40758:41:1" + } + ], + "id": 2181, + "name": "Return", + "src": "40751:48:1" + } + ], + "id": 2182, + "name": "Block", + "src": "40613:220:1" + } + ], + "id": 2183, + "name": "FunctionDefinition", + "src": "40529:304:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2184, + "name": "StructuredDocumentation", + "src": "40839:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2216, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2185, + "name": "UserDefinedTypeName", + "src": "40999:3:1" + } + ], + "id": 2186, + "name": "VariableDeclaration", + "src": "40999:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2187, + "name": "ElementaryTypeName", + "src": "41016:7:1" + } + ], + "id": 2188, + "name": "VariableDeclaration", + "src": "41016:11:1" + } + ], + "id": 2189, + "name": "ParameterList", + "src": "40998:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2190, + "name": "ElementaryTypeName", + "src": "41051:7:1" + } + ], + "id": 2191, + "name": "VariableDeclaration", + "src": "41051:7:1" + } + ], + "id": 2192, + "name": "ParameterList", + "src": "41050:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2194 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2215, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2193, + "name": "ElementaryTypeName", + "src": "41070:7:1" + } + ], + "id": 2194, + "name": "VariableDeclaration", + "src": "41070:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2195, + "name": "Identifier", + "src": "41089:3:1" + } + ], + "id": 2196, + "name": "MemberAccess", + "src": "41089:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2188, + "type": "bytes32", + "value": "key" + }, + "id": 2197, + "name": "Identifier", + "src": "41102:3:1" + } + ], + "id": 2198, + "name": "IndexAccess", + "src": "41089:17:1" + } + ], + "id": 2199, + "name": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2200, + "name": "Identifier", + "src": "41116:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2201, + "name": "Identifier", + "src": "41124:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2202, + "name": "Literal", + "src": "41136:1:1" + } + ], + "id": 2203, + "name": "BinaryOperation", + "src": "41124:13:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: nonexistent key\"", + "value": "EnumerableMap: nonexistent key" + }, + "id": 2204, + "name": "Literal", + "src": "41139:32:1" + } + ], + "id": 2205, + "name": "FunctionCall", + "src": "41116:56:1" + } + ], + "id": 2206, + "name": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "attributes": { + "functionReturnParameters": 2192 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2207, + "name": "Identifier", + "src": "41225:3:1" + } + ], + "id": 2208, + "name": "MemberAccess", + "src": "41225:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2209, + "name": "Identifier", + "src": "41238:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2210, + "name": "Literal", + "src": "41249:1:1" + } + ], + "id": 2211, + "name": "BinaryOperation", + "src": "41238:12:1" + } + ], + "id": 2212, + "name": "IndexAccess", + "src": "41225:26:1" + } + ], + "id": 2213, + "name": "MemberAccess", + "src": "41225:33:1" + } + ], + "id": 2214, + "name": "Return", + "src": "41218:40:1" + } + ], + "id": 2215, + "name": "Block", + "src": "41060:232:1" + } + ], + "id": 2216, + "name": "FunctionDefinition", + "src": "40985:307:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2217, + "name": "StructuredDocumentation", + "src": "41298:271:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2251, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2218, + "name": "UserDefinedTypeName", + "src": "41588:3:1" + } + ], + "id": 2219, + "name": "VariableDeclaration", + "src": "41588:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2220, + "name": "ElementaryTypeName", + "src": "41605:7:1" + } + ], + "id": 2221, + "name": "VariableDeclaration", + "src": "41605:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2251, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2222, + "name": "ElementaryTypeName", + "src": "41618:6:1" + } + ], + "id": 2223, + "name": "VariableDeclaration", + "src": "41618:26:1" + } + ], + "id": 2224, + "name": "ParameterList", + "src": "41587:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2225, + "name": "ElementaryTypeName", + "src": "41668:7:1" + } + ], + "id": 2226, + "name": "VariableDeclaration", + "src": "41668:7:1" + } + ], + "id": 2227, + "name": "ParameterList", + "src": "41667:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2229 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2250, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2228, + "name": "ElementaryTypeName", + "src": "41687:7:1" + } + ], + "id": 2229, + "name": "VariableDeclaration", + "src": "41687:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2230, + "name": "Identifier", + "src": "41706:3:1" + } + ], + "id": 2231, + "name": "MemberAccess", + "src": "41706:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2221, + "type": "bytes32", + "value": "key" + }, + "id": 2232, + "name": "Identifier", + "src": "41719:3:1" + } + ], + "id": 2233, + "name": "IndexAccess", + "src": "41706:17:1" + } + ], + "id": 2234, + "name": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2235, + "name": "Identifier", + "src": "41733:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2236, + "name": "Identifier", + "src": "41741:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2237, + "name": "Literal", + "src": "41753:1:1" + } + ], + "id": 2238, + "name": "BinaryOperation", + "src": "41741:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2223, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2239, + "name": "Identifier", + "src": "41756:12:1" + } + ], + "id": 2240, + "name": "FunctionCall", + "src": "41733:36:1" + } + ], + "id": 2241, + "name": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2227 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2242, + "name": "Identifier", + "src": "41822:3:1" + } + ], + "id": 2243, + "name": "MemberAccess", + "src": "41822:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2244, + "name": "Identifier", + "src": "41835:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2245, + "name": "Literal", + "src": "41846:1:1" + } + ], + "id": 2246, + "name": "BinaryOperation", + "src": "41835:12:1" + } + ], + "id": 2247, + "name": "IndexAccess", + "src": "41822:26:1" + } + ], + "id": 2248, + "name": "MemberAccess", + "src": "41822:33:1" + } + ], + "id": 2249, + "name": "Return", + "src": "41815:40:1" + } + ], + "id": 2250, + "name": "Block", + "src": "41677:212:1" + } + ], + "id": 2251, + "name": "FunctionDefinition", + "src": "41574:315:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.UintToAddressMap", + "name": "UintToAddressMap", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 2254, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2252, + "name": "UserDefinedTypeName", + "src": "41954:3:1" + } + ], + "id": 2253, + "name": "VariableDeclaration", + "src": "41954:10:1" + } + ], + "id": 2254, + "name": "StructDefinition", + "src": "41920:51:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2255, + "name": "StructuredDocumentation", + "src": "41977:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2286, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2256, + "name": "UserDefinedTypeName", + "src": "42211:16:1" + } + ], + "id": 2257, + "name": "VariableDeclaration", + "src": "42211:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2258, + "name": "ElementaryTypeName", + "src": "42241:7:1" + } + ], + "id": 2259, + "name": "VariableDeclaration", + "src": "42241:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2260, + "name": "ElementaryTypeName", + "src": "42254:7:1" + } + ], + "id": 2261, + "name": "VariableDeclaration", + "src": "42254:13:1" + } + ], + "id": 2262, + "name": "ParameterList", + "src": "42210:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2263, + "name": "ElementaryTypeName", + "src": "42287:4:1" + } + ], + "id": 2264, + "name": "VariableDeclaration", + "src": "42287:4:1" + } + ], + "id": 2265, + "name": "ParameterList", + "src": "42286:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2265 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1998, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)", + "value": "_set" + }, + "id": 2266, + "name": "Identifier", + "src": "42310:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2257, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2267, + "name": "Identifier", + "src": "42315:3:1" + } + ], + "id": 2268, + "name": "MemberAccess", + "src": "42315:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2269, + "name": "ElementaryTypeName", + "src": "42327:7:1" + } + ], + "id": 2270, + "name": "ElementaryTypeNameExpression", + "src": "42327:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2259, + "type": "uint256", + "value": "key" + }, + "id": 2271, + "name": "Identifier", + "src": "42335:3:1" + } + ], + "id": 2272, + "name": "FunctionCall", + "src": "42327:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2273, + "name": "ElementaryTypeName", + "src": "42341:7:1" + } + ], + "id": 2274, + "name": "ElementaryTypeNameExpression", + "src": "42341:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2275, + "name": "ElementaryTypeName", + "src": "42349:7:1" + } + ], + "id": 2276, + "name": "ElementaryTypeNameExpression", + "src": "42349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2277, + "name": "ElementaryTypeName", + "src": "42357:7:1" + } + ], + "id": 2278, + "name": "ElementaryTypeNameExpression", + "src": "42357:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2261, + "type": "address", + "value": "value" + }, + "id": 2279, + "name": "Identifier", + "src": "42365:5:1" + } + ], + "id": 2280, + "name": "FunctionCall", + "src": "42357:14:1" + } + ], + "id": 2281, + "name": "FunctionCall", + "src": "42349:23:1" + } + ], + "id": 2282, + "name": "FunctionCall", + "src": "42341:32:1" + } + ], + "id": 2283, + "name": "FunctionCall", + "src": "42310:64:1" + } + ], + "id": 2284, + "name": "Return", + "src": "42303:71:1" + } + ], + "id": 2285, + "name": "Block", + "src": "42293:88:1" + } + ], + "id": 2286, + "name": "FunctionDefinition", + "src": "42198:183:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2287, + "name": "StructuredDocumentation", + "src": "42387:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2306, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2288, + "name": "UserDefinedTypeName", + "src": "42556:16:1" + } + ], + "id": 2289, + "name": "VariableDeclaration", + "src": "42556:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2290, + "name": "ElementaryTypeName", + "src": "42586:7:1" + } + ], + "id": 2291, + "name": "VariableDeclaration", + "src": "42586:11:1" + } + ], + "id": 2292, + "name": "ParameterList", + "src": "42555:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2293, + "name": "ElementaryTypeName", + "src": "42617:4:1" + } + ], + "id": 2294, + "name": "VariableDeclaration", + "src": "42617:4:1" + } + ], + "id": 2295, + "name": "ParameterList", + "src": "42616:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2295 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2079, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 2296, + "name": "Identifier", + "src": "42640:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2289, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2297, + "name": "Identifier", + "src": "42648:3:1" + } + ], + "id": 2298, + "name": "MemberAccess", + "src": "42648:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2299, + "name": "ElementaryTypeName", + "src": "42660:7:1" + } + ], + "id": 2300, + "name": "ElementaryTypeNameExpression", + "src": "42660:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2291, + "type": "uint256", + "value": "key" + }, + "id": 2301, + "name": "Identifier", + "src": "42668:3:1" + } + ], + "id": 2302, + "name": "FunctionCall", + "src": "42660:12:1" + } + ], + "id": 2303, + "name": "FunctionCall", + "src": "42640:33:1" + } + ], + "id": 2304, + "name": "Return", + "src": "42633:40:1" + } + ], + "id": 2305, + "name": "Block", + "src": "42623:57:1" + } + ], + "id": 2306, + "name": "FunctionDefinition", + "src": "42540:140:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2307, + "name": "StructuredDocumentation", + "src": "42686:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2326, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2308, + "name": "UserDefinedTypeName", + "src": "42777:16:1" + } + ], + "id": 2309, + "name": "VariableDeclaration", + "src": "42777:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2310, + "name": "ElementaryTypeName", + "src": "42807:7:1" + } + ], + "id": 2311, + "name": "VariableDeclaration", + "src": "42807:11:1" + } + ], + "id": 2312, + "name": "ParameterList", + "src": "42776:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2313, + "name": "ElementaryTypeName", + "src": "42843:4:1" + } + ], + "id": 2314, + "name": "VariableDeclaration", + "src": "42843:4:1" + } + ], + "id": 2315, + "name": "ParameterList", + "src": "42842:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2315 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2097, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 2316, + "name": "Identifier", + "src": "42866:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2309, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2317, + "name": "Identifier", + "src": "42876:3:1" + } + ], + "id": 2318, + "name": "MemberAccess", + "src": "42876:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2319, + "name": "ElementaryTypeName", + "src": "42888:7:1" + } + ], + "id": 2320, + "name": "ElementaryTypeNameExpression", + "src": "42888:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2311, + "type": "uint256", + "value": "key" + }, + "id": 2321, + "name": "Identifier", + "src": "42896:3:1" + } + ], + "id": 2322, + "name": "FunctionCall", + "src": "42888:12:1" + } + ], + "id": 2323, + "name": "FunctionCall", + "src": "42866:35:1" + } + ], + "id": 2324, + "name": "Return", + "src": "42859:42:1" + } + ], + "id": 2325, + "name": "Block", + "src": "42849:59:1" + } + ], + "id": 2326, + "name": "FunctionDefinition", + "src": "42759:149:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2327, + "name": "StructuredDocumentation", + "src": "42914:72:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2340, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2328, + "name": "UserDefinedTypeName", + "src": "43007:16:1" + } + ], + "id": 2329, + "name": "VariableDeclaration", + "src": "43007:28:1" + } + ], + "id": 2330, + "name": "ParameterList", + "src": "43006:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2340, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2331, + "name": "ElementaryTypeName", + "src": "43060:7:1" + } + ], + "id": 2332, + "name": "VariableDeclaration", + "src": "43060:7:1" + } + ], + "id": 2333, + "name": "ParameterList", + "src": "43059:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2333 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2110, + "type": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 2334, + "name": "Identifier", + "src": "43086:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2329, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2335, + "name": "Identifier", + "src": "43094:3:1" + } + ], + "id": 2336, + "name": "MemberAccess", + "src": "43094:10:1" + } + ], + "id": 2337, + "name": "FunctionCall", + "src": "43086:19:1" + } + ], + "id": 2338, + "name": "Return", + "src": "43079:26:1" + } + ], + "id": 2339, + "name": "Block", + "src": "43069:43:1" + } + ], + "id": 2340, + "name": "FunctionDefinition", + "src": "42991:121:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2341, + "name": "StructuredDocumentation", + "src": "43117:318:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2379, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2342, + "name": "UserDefinedTypeName", + "src": "43452:16:1" + } + ], + "id": 2343, + "name": "VariableDeclaration", + "src": "43452:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2344, + "name": "ElementaryTypeName", + "src": "43482:7:1" + } + ], + "id": 2345, + "name": "VariableDeclaration", + "src": "43482:13:1" + } + ], + "id": 2346, + "name": "ParameterList", + "src": "43451:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2347, + "name": "ElementaryTypeName", + "src": "43520:7:1" + } + ], + "id": 2348, + "name": "VariableDeclaration", + "src": "43520:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2349, + "name": "ElementaryTypeName", + "src": "43529:7:1" + } + ], + "id": 2350, + "name": "VariableDeclaration", + "src": "43529:7:1" + } + ], + "id": 2351, + "name": "ParameterList", + "src": "43519:18:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2353, + 2355 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2352, + "name": "ElementaryTypeName", + "src": "43549:7:1" + } + ], + "id": 2353, + "name": "VariableDeclaration", + "src": "43549:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2354, + "name": "ElementaryTypeName", + "src": "43562:7:1" + } + ], + "id": 2355, + "name": "VariableDeclaration", + "src": "43562:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bytes32,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2145, + "type": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)", + "value": "_at" + }, + "id": 2356, + "name": "Identifier", + "src": "43579:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2343, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2357, + "name": "Identifier", + "src": "43583:3:1" + } + ], + "id": 2358, + "name": "MemberAccess", + "src": "43583:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2345, + "type": "uint256", + "value": "index" + }, + "id": 2359, + "name": "Identifier", + "src": "43595:5:1" + } + ], + "id": 2360, + "name": "FunctionCall", + "src": "43579:22:1" + } + ], + "id": 2361, + "name": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "attributes": { + "functionReturnParameters": 2351 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(uint256,address payable)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2362, + "name": "ElementaryTypeName", + "src": "43619:7:1" + } + ], + "id": 2363, + "name": "ElementaryTypeNameExpression", + "src": "43619:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2353, + "type": "bytes32", + "value": "key" + }, + "id": 2364, + "name": "Identifier", + "src": "43627:3:1" + } + ], + "id": 2365, + "name": "FunctionCall", + "src": "43619:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2366, + "name": "ElementaryTypeName", + "src": "43633:7:1" + } + ], + "id": 2367, + "name": "ElementaryTypeNameExpression", + "src": "43633:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2368, + "name": "ElementaryTypeName", + "src": "43641:7:1" + } + ], + "id": 2369, + "name": "ElementaryTypeNameExpression", + "src": "43641:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2370, + "name": "ElementaryTypeName", + "src": "43649:7:1" + } + ], + "id": 2371, + "name": "ElementaryTypeNameExpression", + "src": "43649:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2355, + "type": "bytes32", + "value": "value" + }, + "id": 2372, + "name": "Identifier", + "src": "43657:5:1" + } + ], + "id": 2373, + "name": "FunctionCall", + "src": "43649:14:1" + } + ], + "id": 2374, + "name": "FunctionCall", + "src": "43641:23:1" + } + ], + "id": 2375, + "name": "FunctionCall", + "src": "43633:32:1" + } + ], + "id": 2376, + "name": "TupleExpression", + "src": "43618:48:1" + } + ], + "id": 2377, + "name": "Return", + "src": "43611:55:1" + } + ], + "id": 2378, + "name": "Block", + "src": "43538:135:1" + } + ], + "id": 2379, + "name": "FunctionDefinition", + "src": "43440:233:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2380, + "name": "StructuredDocumentation", + "src": "43679:169:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2418, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2381, + "name": "UserDefinedTypeName", + "src": "43869:16:1" + } + ], + "id": 2382, + "name": "VariableDeclaration", + "src": "43869:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2383, + "name": "ElementaryTypeName", + "src": "43899:7:1" + } + ], + "id": 2384, + "name": "VariableDeclaration", + "src": "43899:11:1" + } + ], + "id": 2385, + "name": "ParameterList", + "src": "43868:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2386, + "name": "ElementaryTypeName", + "src": "43935:4:1" + } + ], + "id": 2387, + "name": "VariableDeclaration", + "src": "43935:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2388, + "name": "ElementaryTypeName", + "src": "43941:7:1" + } + ], + "id": 2389, + "name": "VariableDeclaration", + "src": "43941:7:1" + } + ], + "id": 2390, + "name": "ParameterList", + "src": "43934:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2392, + 2394 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "43961:4:1" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "43961:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "43975:7:1" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "43975:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2183, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)", + "value": "_tryGet" + }, + "id": 2395, + "name": "Identifier", + "src": "43992:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2382, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2396, + "name": "Identifier", + "src": "44000:3:1" + } + ], + "id": 2397, + "name": "MemberAccess", + "src": "44000:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "44012:7:1" + } + ], + "id": 2399, + "name": "ElementaryTypeNameExpression", + "src": "44012:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2384, + "type": "uint256", + "value": "key" + }, + "id": 2400, + "name": "Identifier", + "src": "44020:3:1" + } + ], + "id": 2401, + "name": "FunctionCall", + "src": "44012:12:1" + } + ], + "id": 2402, + "name": "FunctionCall", + "src": "43992:33:1" + } + ], + "id": 2403, + "name": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "attributes": { + "functionReturnParameters": 2390 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,address payable)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2392, + "type": "bool", + "value": "success" + }, + "id": 2404, + "name": "Identifier", + "src": "44043:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2405, + "name": "ElementaryTypeName", + "src": "44052:7:1" + } + ], + "id": 2406, + "name": "ElementaryTypeNameExpression", + "src": "44052:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "44060:7:1" + } + ], + "id": 2408, + "name": "ElementaryTypeNameExpression", + "src": "44060:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "44068:7:1" + } + ], + "id": 2410, + "name": "ElementaryTypeNameExpression", + "src": "44068:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2394, + "type": "bytes32", + "value": "value" + }, + "id": 2411, + "name": "Identifier", + "src": "44076:5:1" + } + ], + "id": 2412, + "name": "FunctionCall", + "src": "44068:14:1" + } + ], + "id": 2413, + "name": "FunctionCall", + "src": "44060:23:1" + } + ], + "id": 2414, + "name": "FunctionCall", + "src": "44052:32:1" + } + ], + "id": 2415, + "name": "TupleExpression", + "src": "44042:43:1" + } + ], + "id": 2416, + "name": "Return", + "src": "44035:50:1" + } + ], + "id": 2417, + "name": "Block", + "src": "43950:142:1" + } + ], + "id": 2418, + "name": "FunctionDefinition", + "src": "43853:239:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2419, + "name": "StructuredDocumentation", + "src": "44098:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2447, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2420, + "name": "UserDefinedTypeName", + "src": "44257:16:1" + } + ], + "id": 2421, + "name": "VariableDeclaration", + "src": "44257:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2422, + "name": "ElementaryTypeName", + "src": "44287:7:1" + } + ], + "id": 2423, + "name": "VariableDeclaration", + "src": "44287:11:1" + } + ], + "id": 2424, + "name": "ParameterList", + "src": "44256:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2425, + "name": "ElementaryTypeName", + "src": "44323:7:1" + } + ], + "id": 2426, + "name": "VariableDeclaration", + "src": "44323:7:1" + } + ], + "id": 2427, + "name": "ParameterList", + "src": "44322:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2427 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2428, + "name": "ElementaryTypeName", + "src": "44349:7:1" + } + ], + "id": 2429, + "name": "ElementaryTypeNameExpression", + "src": "44349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2430, + "name": "ElementaryTypeName", + "src": "44357:7:1" + } + ], + "id": 2431, + "name": "ElementaryTypeNameExpression", + "src": "44357:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2432, + "name": "ElementaryTypeName", + "src": "44365:7:1" + } + ], + "id": 2433, + "name": "ElementaryTypeNameExpression", + "src": "44365:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)", + "value": "_get" + }, + "id": 2434, + "name": "Identifier", + "src": "44373:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2421, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2435, + "name": "Identifier", + "src": "44378:3:1" + } + ], + "id": 2436, + "name": "MemberAccess", + "src": "44378:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "44390:7:1" + } + ], + "id": 2438, + "name": "ElementaryTypeNameExpression", + "src": "44390:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2423, + "type": "uint256", + "value": "key" + }, + "id": 2439, + "name": "Identifier", + "src": "44398:3:1" + } + ], + "id": 2440, + "name": "FunctionCall", + "src": "44390:12:1" + } + ], + "id": 2441, + "name": "FunctionCall", + "src": "44373:30:1" + } + ], + "id": 2442, + "name": "FunctionCall", + "src": "44365:39:1" + } + ], + "id": 2443, + "name": "FunctionCall", + "src": "44357:48:1" + } + ], + "id": 2444, + "name": "FunctionCall", + "src": "44349:57:1" + } + ], + "id": 2445, + "name": "Return", + "src": "44342:64:1" + } + ], + "id": 2446, + "name": "Block", + "src": "44332:81:1" + } + ], + "id": 2447, + "name": "FunctionDefinition", + "src": "44244:169:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2448, + "name": "StructuredDocumentation", + "src": "44419:269:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2479, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2449, + "name": "UserDefinedTypeName", + "src": "44706:16:1" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "44706:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2451, + "name": "ElementaryTypeName", + "src": "44736:7:1" + } + ], + "id": 2452, + "name": "VariableDeclaration", + "src": "44736:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2479, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "44749:6:1" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "44749:26:1" + } + ], + "id": 2455, + "name": "ParameterList", + "src": "44705:71:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2456, + "name": "ElementaryTypeName", + "src": "44800:7:1" + } + ], + "id": 2457, + "name": "VariableDeclaration", + "src": "44800:7:1" + } + ], + "id": 2458, + "name": "ParameterList", + "src": "44799:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2458 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "44826:7:1" + } + ], + "id": 2460, + "name": "ElementaryTypeNameExpression", + "src": "44826:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "44834:7:1" + } + ], + "id": 2462, + "name": "ElementaryTypeNameExpression", + "src": "44834:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2463, + "name": "ElementaryTypeName", + "src": "44842:7:1" + } + ], + "id": 2464, + "name": "ElementaryTypeNameExpression", + "src": "44842:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)", + "value": "_get" + }, + "id": 2465, + "name": "Identifier", + "src": "44850:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2450, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2466, + "name": "Identifier", + "src": "44855:3:1" + } + ], + "id": 2467, + "name": "MemberAccess", + "src": "44855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2468, + "name": "ElementaryTypeName", + "src": "44867:7:1" + } + ], + "id": 2469, + "name": "ElementaryTypeNameExpression", + "src": "44867:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2452, + "type": "uint256", + "value": "key" + }, + "id": 2470, + "name": "Identifier", + "src": "44875:3:1" + } + ], + "id": 2471, + "name": "FunctionCall", + "src": "44867:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2454, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2472, + "name": "Identifier", + "src": "44881:12:1" + } + ], + "id": 2473, + "name": "FunctionCall", + "src": "44850:44:1" + } + ], + "id": 2474, + "name": "FunctionCall", + "src": "44842:53:1" + } + ], + "id": 2475, + "name": "FunctionCall", + "src": "44834:62:1" + } + ], + "id": 2476, + "name": "FunctionCall", + "src": "44826:71:1" + } + ], + "id": 2477, + "name": "Return", + "src": "44819:78:1" + } + ], + "id": 2478, + "name": "Block", + "src": "44809:95:1" + } + ], + "id": 2479, + "name": "FunctionDefinition", + "src": "44693:211:1" + } + ], + "id": 2480, + "name": "ContractDefinition", + "src": "35943:8963:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2481, + "name": "PragmaDirective", + "src": "44959:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev String operations." + }, + "id": 2482, + "name": "StructuredDocumentation", + "src": "44992:34:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toString", + "scope": 2566, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2483, + "name": "StructuredDocumentation", + "src": "45049:82:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2565, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2484, + "name": "ElementaryTypeName", + "src": "45154:7:1" + } + ], + "id": 2485, + "name": "VariableDeclaration", + "src": "45154:13:1" + } + ], + "id": 2486, + "name": "ParameterList", + "src": "45153:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2565, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "45192:6:1" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "45192:13:1" + } + ], + "id": 2489, + "name": "ParameterList", + "src": "45191:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2490, + "name": "Identifier", + "src": "45409:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2491, + "name": "Literal", + "src": "45418:1:1" + } + ], + "id": 2492, + "name": "BinaryOperation", + "src": "45409:10:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"0\"", + "value": "0" + }, + "id": 2493, + "name": "Literal", + "src": "45442:3:1" + } + ], + "id": 2494, + "name": "Return", + "src": "45435:10:1" + } + ], + "id": 2495, + "name": "Block", + "src": "45421:35:1" + } + ], + "id": 2496, + "name": "IfStatement", + "src": "45405:51:1" + }, + { + "attributes": { + "assignments": [ + 2498 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "temp", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2497, + "name": "ElementaryTypeName", + "src": "45465:7:1" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "45465:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2499, + "name": "Identifier", + "src": "45480:5:1" + } + ], + "id": 2500, + "name": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "attributes": { + "assignments": [ + 2502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "digits", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "45495:7:1" + } + ], + "id": 2502, + "name": "VariableDeclaration", + "src": "45495:14:1" + } + ], + "id": 2503, + "name": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2504, + "name": "Identifier", + "src": "45526:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2505, + "name": "Literal", + "src": "45534:1:1" + } + ], + "id": 2506, + "name": "BinaryOperation", + "src": "45526:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2507, + "name": "Identifier", + "src": "45551:6:1" + } + ], + "id": 2508, + "name": "UnaryOperation", + "src": "45551:8:1" + } + ], + "id": 2509, + "name": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2510, + "name": "Identifier", + "src": "45573:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2511, + "name": "Literal", + "src": "45581:2:1" + } + ], + "id": 2512, + "name": "Assignment", + "src": "45573:10:1" + } + ], + "id": 2513, + "name": "ExpressionStatement", + "src": "45573:10:1" + } + ], + "id": 2514, + "name": "Block", + "src": "45537:57:1" + } + ], + "id": 2515, + "name": "WhileStatement", + "src": "45519:75:1" + }, + { + "attributes": { + "assignments": [ + 2517 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "buffer", + "scope": 2564, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2516, + "name": "ElementaryTypeName", + "src": "45603:5:1" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "45603:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "function (uint256) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "45629:5:1" + } + ], + "id": 2519, + "name": "NewExpression", + "src": "45625:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2520, + "name": "Identifier", + "src": "45635:6:1" + } + ], + "id": 2521, + "name": "FunctionCall", + "src": "45625:17:1" + } + ], + "id": 2522, + "name": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "attributes": { + "assignments": [ + 2524 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2523, + "name": "ElementaryTypeName", + "src": "45652:7:1" + } + ], + "id": 2524, + "name": "VariableDeclaration", + "src": "45652:13:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2525, + "name": "Identifier", + "src": "45668:6:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2526, + "name": "Literal", + "src": "45677:1:1" + } + ], + "id": 2527, + "name": "BinaryOperation", + "src": "45668:10:1" + } + ], + "id": 2528, + "name": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2529, + "name": "Identifier", + "src": "45688:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2530, + "name": "Identifier", + "src": "45695:5:1" + } + ], + "id": 2531, + "name": "Assignment", + "src": "45688:12:1" + } + ], + "id": 2532, + "name": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2533, + "name": "Identifier", + "src": "45717:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2534, + "name": "Literal", + "src": "45725:1:1" + } + ], + "id": 2535, + "name": "BinaryOperation", + "src": "45717:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2536, + "name": "Identifier", + "src": "45742:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "--", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2524, + "type": "uint256", + "value": "index" + }, + "id": 2537, + "name": "Identifier", + "src": "45749:5:1" + } + ], + "id": 2538, + "name": "UnaryOperation", + "src": "45749:7:1" + } + ], + "id": 2539, + "name": "IndexAccess", + "src": "45742:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes1", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes1)" + }, + "children": [ + { + "attributes": { + "name": "bytes1" + }, + "id": 2540, + "name": "ElementaryTypeName", + "src": "45760:6:1" + } + ], + "id": 2541, + "name": "ElementaryTypeNameExpression", + "src": "45760:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 2542, + "name": "ElementaryTypeName", + "src": "45767:5:1" + } + ], + "id": 2543, + "name": "ElementaryTypeNameExpression", + "src": "45767:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "hexvalue": "3438", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 48", + "value": "48" + }, + "id": 2544, + "name": "Literal", + "src": "45773:2:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2545, + "name": "Identifier", + "src": "45778:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2546, + "name": "Literal", + "src": "45785:2:1" + } + ], + "id": 2547, + "name": "BinaryOperation", + "src": "45778:9:1" + } + ], + "id": 2548, + "name": "BinaryOperation", + "src": "45773:14:1" + } + ], + "id": 2549, + "name": "FunctionCall", + "src": "45767:21:1" + } + ], + "id": 2550, + "name": "FunctionCall", + "src": "45760:29:1" + } + ], + "id": 2551, + "name": "Assignment", + "src": "45742:47:1" + } + ], + "id": 2552, + "name": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2553, + "name": "Identifier", + "src": "45803:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2554, + "name": "Literal", + "src": "45811:2:1" + } + ], + "id": 2555, + "name": "Assignment", + "src": "45803:10:1" + } + ], + "id": 2556, + "name": "ExpressionStatement", + "src": "45803:10:1" + } + ], + "id": 2557, + "name": "Block", + "src": "45728:96:1" + } + ], + "id": 2558, + "name": "WhileStatement", + "src": "45710:114:1" + }, + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2559, + "name": "ElementaryTypeName", + "src": "45840:6:1" + } + ], + "id": 2560, + "name": "ElementaryTypeNameExpression", + "src": "45840:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2561, + "name": "Identifier", + "src": "45847:6:1" + } + ], + "id": 2562, + "name": "FunctionCall", + "src": "45840:14:1" + } + ], + "id": 2563, + "name": "Return", + "src": "45833:21:1" + } + ], + "id": 2564, + "name": "Block", + "src": "45207:654:1" + } + ], + "id": 2565, + "name": "FunctionDefinition", + "src": "45136:725:1" + } + ], + "id": 2566, + "name": "ContractDefinition", + "src": "45027:836:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2567, + "name": "PragmaDirective", + "src": "45922:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 2568, + "name": "StructuredDocumentation", + "src": "45955:124:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "Context", + "referencedDeclaration": 530, + "type": "contract Context" + }, + "id": 2569, + "name": "UserDefinedTypeName", + "src": "46099:7:1" + } + ], + "id": 2570, + "name": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "ERC165", + "referencedDeclaration": 781, + "type": "contract ERC165" + }, + "id": 2571, + "name": "UserDefinedTypeName", + "src": "46108:6:1" + } + ], + "id": 2572, + "name": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 2573, + "name": "UserDefinedTypeName", + "src": "46116:7:1" + } + ], + "id": 2574, + "name": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Metadata", + "referencedDeclaration": 680, + "type": "contract IERC721Metadata" + }, + "id": 2575, + "name": "UserDefinedTypeName", + "src": "46125:15:1" + } + ], + "id": 2576, + "name": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Enumerable", + "referencedDeclaration": 709, + "type": "contract IERC721Enumerable" + }, + "id": 2577, + "name": "UserDefinedTypeName", + "src": "46142:17:1" + } + ], + "id": 2578, + "name": "InheritanceSpecifier", + "src": "46142:17:1" + }, + { + "children": [ + { + "attributes": { + "name": "SafeMath", + "referencedDeclaration": 1135, + "type": "library SafeMath" + }, + "id": 2579, + "name": "UserDefinedTypeName", + "src": "46172:8:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2580, + "name": "ElementaryTypeName", + "src": "46185:7:1" + } + ], + "id": 2581, + "name": "UsingForDirective", + "src": "46166:27:1" + }, + { + "children": [ + { + "attributes": { + "name": "Address", + "referencedDeclaration": 1430, + "type": "library Address" + }, + "id": 2582, + "name": "UserDefinedTypeName", + "src": "46204:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "46216:7:1" + } + ], + "id": 2584, + "name": "UsingForDirective", + "src": "46198:26:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableSet", + "referencedDeclaration": 1921, + "type": "library EnumerableSet" + }, + "id": 2585, + "name": "UserDefinedTypeName", + "src": "46235:13:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2586, + "name": "UserDefinedTypeName", + "src": "46253:21:1" + } + ], + "id": 2587, + "name": "UsingForDirective", + "src": "46229:46:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableMap", + "referencedDeclaration": 2480, + "type": "library EnumerableMap" + }, + "id": 2588, + "name": "UserDefinedTypeName", + "src": "46286:13:1" + }, + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2589, + "name": "UserDefinedTypeName", + "src": "46304:30:1" + } + ], + "id": 2590, + "name": "UsingForDirective", + "src": "46280:55:1" + }, + { + "children": [ + { + "attributes": { + "name": "Strings", + "referencedDeclaration": 2566, + "type": "library Strings" + }, + "id": 2591, + "name": "UserDefinedTypeName", + "src": "46346:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2592, + "name": "ElementaryTypeName", + "src": "46358:7:1" + } + ], + "id": 2593, + "name": "UsingForDirective", + "src": "46340:26:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "46544:6:1" + }, + { + "attributes": { + "hexvalue": "30783135306237613032", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 353073666", + "value": "0x150b7a02" + }, + "id": 2595, + "name": "Literal", + "src": "46587:10:1" + } + ], + "id": 2596, + "name": "VariableDeclaration", + "src": "46544:53:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_holderTokens", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => struct EnumerableSet.UintSet)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct EnumerableSet.UintSet)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2597, + "name": "ElementaryTypeName", + "src": "46690:7:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2598, + "name": "UserDefinedTypeName", + "src": "46701:21:1" + } + ], + "id": 2599, + "name": "Mapping", + "src": "46681:42:1" + } + ], + "id": 2600, + "name": "VariableDeclaration", + "src": "46681:64:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenOwners", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2601, + "name": "UserDefinedTypeName", + "src": "46809:30:1" + } + ], + "id": 2602, + "name": "VariableDeclaration", + "src": "46809:51:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => address)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => address)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2603, + "name": "ElementaryTypeName", + "src": "46925:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "46936:7:1" + } + ], + "id": 2605, + "name": "Mapping", + "src": "46916:28:1" + } + ], + "id": 2606, + "name": "VariableDeclaration", + "src": "46916:52:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_operatorApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => mapping(address => bool))", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => mapping(address => bool))" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2607, + "name": "ElementaryTypeName", + "src": "47032:7:1" + }, + { + "attributes": { + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2608, + "name": "ElementaryTypeName", + "src": "47052:7:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2609, + "name": "ElementaryTypeName", + "src": "47063:4:1" + } + ], + "id": 2610, + "name": "Mapping", + "src": "47043:25:1" + } + ], + "id": 2611, + "name": "Mapping", + "src": "47023:46:1" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "47023:73:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_name", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "47121:6:1" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "47121:20:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_symbol", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "47168:6:1" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "47168:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURIs", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => string)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => string)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "47245:7:1" + }, + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2618, + "name": "ElementaryTypeName", + "src": "47256:6:1" + } + ], + "id": 2619, + "name": "Mapping", + "src": "47236:27:1" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "47236:46:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_baseURI", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2621, + "name": "ElementaryTypeName", + "src": "47305:6:1" + } + ], + "id": 2622, + "name": "VariableDeclaration", + "src": "47305:23:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2623, + "name": "ElementaryTypeName", + "src": "48204:6:1" + }, + { + "attributes": { + "hexvalue": "30783830616335386364", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2158778573", + "value": "0x80ac58cd" + }, + "id": 2624, + "name": "Literal", + "src": "48251:10:1" + } + ], + "id": 2625, + "name": "VariableDeclaration", + "src": "48204:57:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2626, + "name": "ElementaryTypeName", + "src": "48527:6:1" + }, + { + "attributes": { + "hexvalue": "30783562356531333966", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1532892063", + "value": "0x5b5e139f" + }, + "id": 2627, + "name": "Literal", + "src": "48583:10:1" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "48527:66:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "48898:6:1" + }, + { + "attributes": { + "hexvalue": "30783738306539643633", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2014223715", + "value": "0x780e9d63" + }, + "id": 2630, + "name": "Literal", + "src": "48956:10:1" + } + ], + "id": 2631, + "name": "VariableDeclaration", + "src": "48898:68:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2632, + "name": "StructuredDocumentation", + "src": "48973:108:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "name_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2633, + "name": "ElementaryTypeName", + "src": "49099:6:1" + } + ], + "id": 2634, + "name": "VariableDeclaration", + "src": "49099:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "symbol_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2635, + "name": "ElementaryTypeName", + "src": "49120:6:1" + } + ], + "id": 2636, + "name": "VariableDeclaration", + "src": "49120:21:1" + } + ], + "id": 2637, + "name": "ParameterList", + "src": "49098:44:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2638, + "name": "ParameterList", + "src": "49143:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2639, + "name": "Identifier", + "src": "49153:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2634, + "type": "string memory", + "value": "name_" + }, + "id": 2640, + "name": "Identifier", + "src": "49161:5:1" + } + ], + "id": 2641, + "name": "Assignment", + "src": "49153:13:1" + } + ], + "id": 2642, + "name": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2643, + "name": "Identifier", + "src": "49176:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2636, + "type": "string memory", + "value": "symbol_" + }, + "id": 2644, + "name": "Identifier", + "src": "49186:7:1" + } + ], + "id": 2645, + "name": "Assignment", + "src": "49176:17:1" + } + ], + "id": 2646, + "name": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2647, + "name": "Identifier", + "src": "49281:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2625, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721" + }, + "id": 2648, + "name": "Identifier", + "src": "49300:20:1" + } + ], + "id": 2649, + "name": "FunctionCall", + "src": "49281:40:1" + } + ], + "id": 2650, + "name": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2651, + "name": "Identifier", + "src": "49331:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2628, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_METADATA" + }, + "id": 2652, + "name": "Identifier", + "src": "49350:29:1" + } + ], + "id": 2653, + "name": "FunctionCall", + "src": "49331:49:1" + } + ], + "id": 2654, + "name": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2655, + "name": "Identifier", + "src": "49390:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2631, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_ENUMERABLE" + }, + "id": 2656, + "name": "Identifier", + "src": "49409:31:1" + } + ], + "id": 2657, + "name": "FunctionCall", + "src": "49390:51:1" + } + ], + "id": 2658, + "name": "ExpressionStatement", + "src": "49390:51:1" + } + ], + "id": 2659, + "name": "Block", + "src": "49143:305:1" + } + ], + "id": 2660, + "name": "FunctionDefinition", + "src": "49086:362:1" + }, + { + "attributes": { + "baseFunctions": [ + 580 + ], + "functionSelector": "70a08231", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-balanceOf}." + }, + "id": 2661, + "name": "StructuredDocumentation", + "src": "49454:48:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2665, + "name": "OverrideSpecifier", + "src": "49561:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2662, + "name": "ElementaryTypeName", + "src": "49526:7:1" + } + ], + "id": 2663, + "name": "VariableDeclaration", + "src": "49526:13:1" + } + ], + "id": 2664, + "name": "ParameterList", + "src": "49525:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2666, + "name": "ElementaryTypeName", + "src": "49579:7:1" + } + ], + "id": 2667, + "name": "VariableDeclaration", + "src": "49579:7:1" + } + ], + "id": 2668, + "name": "ParameterList", + "src": "49578:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2669, + "name": "Identifier", + "src": "49598:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2670, + "name": "Identifier", + "src": "49606:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2671, + "name": "ElementaryTypeName", + "src": "49615:7:1" + } + ], + "id": 2672, + "name": "ElementaryTypeNameExpression", + "src": "49615:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2673, + "name": "Literal", + "src": "49623:1:1" + } + ], + "id": 2674, + "name": "FunctionCall", + "src": "49615:10:1" + } + ], + "id": 2675, + "name": "BinaryOperation", + "src": "49606:19:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: balance query for the zero address\"", + "value": "ERC721: balance query for the zero address" + }, + "id": 2676, + "name": "Literal", + "src": "49627:44:1" + } + ], + "id": 2677, + "name": "FunctionCall", + "src": "49598:74:1" + } + ], + "id": 2678, + "name": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "attributes": { + "functionReturnParameters": 2668 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 1900, + "type": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2679, + "name": "Identifier", + "src": "49689:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2680, + "name": "Identifier", + "src": "49703:5:1" + } + ], + "id": 2681, + "name": "IndexAccess", + "src": "49689:20:1" + } + ], + "id": 2682, + "name": "MemberAccess", + "src": "49689:27:1" + } + ], + "id": 2683, + "name": "FunctionCall", + "src": "49689:29:1" + } + ], + "id": 2684, + "name": "Return", + "src": "49682:36:1" + } + ], + "id": 2685, + "name": "Block", + "src": "49588:137:1" + } + ], + "id": 2686, + "name": "FunctionDefinition", + "src": "49507:218:1" + }, + { + "attributes": { + "baseFunctions": [ + 588 + ], + "functionSelector": "6352211e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-ownerOf}." + }, + "id": 2687, + "name": "StructuredDocumentation", + "src": "49731:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2691, + "name": "OverrideSpecifier", + "src": "49836:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2688, + "name": "ElementaryTypeName", + "src": "49799:7:1" + } + ], + "id": 2689, + "name": "VariableDeclaration", + "src": "49799:15:1" + } + ], + "id": 2690, + "name": "ParameterList", + "src": "49798:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2692, + "name": "ElementaryTypeName", + "src": "49854:7:1" + } + ], + "id": 2693, + "name": "VariableDeclaration", + "src": "49854:7:1" + } + ], + "id": 2694, + "name": "ParameterList", + "src": "49853:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "get", + "referencedDeclaration": 2479, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2695, + "name": "Identifier", + "src": "49880:12:1" + } + ], + "id": 2696, + "name": "MemberAccess", + "src": "49880:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2689, + "type": "uint256", + "value": "tokenId" + }, + "id": 2697, + "name": "Identifier", + "src": "49897:7:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: owner query for nonexistent token\"", + "value": "ERC721: owner query for nonexistent token" + }, + "id": 2698, + "name": "Literal", + "src": "49906:43:1" + } + ], + "id": 2699, + "name": "FunctionCall", + "src": "49880:70:1" + } + ], + "id": 2700, + "name": "Return", + "src": "49873:77:1" + } + ], + "id": 2701, + "name": "Block", + "src": "49863:94:1" + } + ], + "id": 2702, + "name": "FunctionDefinition", + "src": "49782:175:1" + }, + { + "attributes": { + "baseFunctions": [ + 665 + ], + "functionSelector": "06fdde03", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-name}." + }, + "id": 2703, + "name": "StructuredDocumentation", + "src": "49963:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2705, + "name": "OverrideSpecifier", + "src": "50055:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2704, + "name": "ParameterList", + "src": "50032:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2712, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2706, + "name": "ElementaryTypeName", + "src": "50073:6:1" + } + ], + "id": 2707, + "name": "VariableDeclaration", + "src": "50073:13:1" + } + ], + "id": 2708, + "name": "ParameterList", + "src": "50072:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2708 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2709, + "name": "Identifier", + "src": "50105:5:1" + } + ], + "id": 2710, + "name": "Return", + "src": "50098:12:1" + } + ], + "id": 2711, + "name": "Block", + "src": "50088:29:1" + } + ], + "id": 2712, + "name": "FunctionDefinition", + "src": "50019:98:1" + }, + { + "attributes": { + "baseFunctions": [ + 671 + ], + "functionSelector": "95d89b41", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-symbol}." + }, + "id": 2713, + "name": "StructuredDocumentation", + "src": "50123:53:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2715, + "name": "OverrideSpecifier", + "src": "50219:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2714, + "name": "ParameterList", + "src": "50196:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2722, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2716, + "name": "ElementaryTypeName", + "src": "50237:6:1" + } + ], + "id": 2717, + "name": "VariableDeclaration", + "src": "50237:13:1" + } + ], + "id": 2718, + "name": "ParameterList", + "src": "50236:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2718 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2719, + "name": "Identifier", + "src": "50269:7:1" + } + ], + "id": 2720, + "name": "Return", + "src": "50262:14:1" + } + ], + "id": 2721, + "name": "Block", + "src": "50252:31:1" + } + ], + "id": 2722, + "name": "FunctionDefinition", + "src": "50181:102:1" + }, + { + "attributes": { + "baseFunctions": [ + 679 + ], + "functionSelector": "c87b56dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "id": 2723, + "name": "StructuredDocumentation", + "src": "50289:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2727, + "name": "OverrideSpecifier", + "src": "50404:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2790, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2724, + "name": "ElementaryTypeName", + "src": "50367:7:1" + } + ], + "id": 2725, + "name": "VariableDeclaration", + "src": "50367:15:1" + } + ], + "id": 2726, + "name": "ParameterList", + "src": "50366:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2790, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2728, + "name": "ElementaryTypeName", + "src": "50422:6:1" + } + ], + "id": 2729, + "name": "VariableDeclaration", + "src": "50422:13:1" + } + ], + "id": 2730, + "name": "ParameterList", + "src": "50421:15:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2731, + "name": "Identifier", + "src": "50447:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2732, + "name": "Identifier", + "src": "50455:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2733, + "name": "Identifier", + "src": "50463:7:1" + } + ], + "id": 2734, + "name": "FunctionCall", + "src": "50455:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI query for nonexistent token\"", + "value": "ERC721Metadata: URI query for nonexistent token" + }, + "id": 2735, + "name": "Literal", + "src": "50473:49:1" + } + ], + "id": 2736, + "name": "FunctionCall", + "src": "50447:76:1" + } + ], + "id": 2737, + "name": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "attributes": { + "assignments": [ + 2739 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2738, + "name": "ElementaryTypeName", + "src": "50534:6:1" + } + ], + "id": 2739, + "name": "VariableDeclaration", + "src": "50534:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 2740, + "name": "Identifier", + "src": "50560:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2741, + "name": "Identifier", + "src": "50571:7:1" + } + ], + "id": 2742, + "name": "IndexAccess", + "src": "50560:19:1" + } + ], + "id": 2743, + "name": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "attributes": { + "assignments": [ + 2745 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "base", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2744, + "name": "ElementaryTypeName", + "src": "50589:6:1" + } + ], + "id": 2745, + "name": "VariableDeclaration", + "src": "50589:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2799, + "type": "function () view returns (string memory)", + "value": "baseURI" + }, + "id": 2746, + "name": "Identifier", + "src": "50610:7:1" + } + ], + "id": 2747, + "name": "FunctionCall", + "src": "50610:9:1" + } + ], + "id": 2748, + "name": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2749, + "name": "ElementaryTypeName", + "src": "50692:5:1" + } + ], + "id": 2750, + "name": "ElementaryTypeNameExpression", + "src": "50692:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2751, + "name": "Identifier", + "src": "50698:4:1" + } + ], + "id": 2752, + "name": "FunctionCall", + "src": "50692:11:1" + } + ], + "id": 2753, + "name": "MemberAccess", + "src": "50692:18:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2754, + "name": "Literal", + "src": "50714:1:1" + } + ], + "id": 2755, + "name": "BinaryOperation", + "src": "50692:23:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2756, + "name": "Identifier", + "src": "50738:9:1" + } + ], + "id": 2757, + "name": "Return", + "src": "50731:16:1" + } + ], + "id": 2758, + "name": "Block", + "src": "50717:41:1" + } + ], + "id": 2759, + "name": "IfStatement", + "src": "50688:70:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2760, + "name": "ElementaryTypeName", + "src": "50860:5:1" + } + ], + "id": 2761, + "name": "ElementaryTypeNameExpression", + "src": "50860:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2762, + "name": "Identifier", + "src": "50866:9:1" + } + ], + "id": 2763, + "name": "FunctionCall", + "src": "50860:16:1" + } + ], + "id": 2764, + "name": "MemberAccess", + "src": "50860:23:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2765, + "name": "Literal", + "src": "50886:1:1" + } + ], + "id": 2766, + "name": "BinaryOperation", + "src": "50860:27:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2767, + "name": "ElementaryTypeName", + "src": "50910:6:1" + } + ], + "id": 2768, + "name": "ElementaryTypeNameExpression", + "src": "50910:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2769, + "name": "Identifier", + "src": "50917:3:1" + } + ], + "id": 2770, + "name": "MemberAccess", + "src": "50917:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2771, + "name": "Identifier", + "src": "50934:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2772, + "name": "Identifier", + "src": "50940:9:1" + } + ], + "id": 2773, + "name": "FunctionCall", + "src": "50917:33:1" + } + ], + "id": 2774, + "name": "FunctionCall", + "src": "50910:41:1" + } + ], + "id": 2775, + "name": "Return", + "src": "50903:48:1" + } + ], + "id": 2776, + "name": "Block", + "src": "50889:73:1" + } + ], + "id": 2777, + "name": "IfStatement", + "src": "50856:106:1" + }, + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2778, + "name": "ElementaryTypeName", + "src": "51068:6:1" + } + ], + "id": 2779, + "name": "ElementaryTypeNameExpression", + "src": "51068:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2780, + "name": "Identifier", + "src": "51075:3:1" + } + ], + "id": 2781, + "name": "MemberAccess", + "src": "51075:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2782, + "name": "Identifier", + "src": "51092:4:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "toString", + "referencedDeclaration": 2565, + "type": "function (uint256) pure returns (string memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2783, + "name": "Identifier", + "src": "51098:7:1" + } + ], + "id": 2784, + "name": "MemberAccess", + "src": "51098:16:1" + } + ], + "id": 2785, + "name": "FunctionCall", + "src": "51098:18:1" + } + ], + "id": 2786, + "name": "FunctionCall", + "src": "51075:42:1" + } + ], + "id": 2787, + "name": "FunctionCall", + "src": "51068:50:1" + } + ], + "id": 2788, + "name": "Return", + "src": "51061:57:1" + } + ], + "id": 2789, + "name": "Block", + "src": "50437:688:1" + } + ], + "id": 2790, + "name": "FunctionDefinition", + "src": "50349:776:1" + }, + { + "attributes": { + "functionSelector": "6c0360eb", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "baseURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "id": 2791, + "name": "StructuredDocumentation", + "src": "51131:221:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2792, + "name": "ParameterList", + "src": "51373:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2799, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2793, + "name": "ElementaryTypeName", + "src": "51405:6:1" + } + ], + "id": 2794, + "name": "VariableDeclaration", + "src": "51405:13:1" + } + ], + "id": 2795, + "name": "ParameterList", + "src": "51404:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2795 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 2796, + "name": "Identifier", + "src": "51437:8:1" + } + ], + "id": 2797, + "name": "Return", + "src": "51430:15:1" + } + ], + "id": 2798, + "name": "Block", + "src": "51420:32:1" + } + ], + "id": 2799, + "name": "FunctionDefinition", + "src": "51357:95:1" + }, + { + "attributes": { + "baseFunctions": [ + 700 + ], + "functionSelector": "2f745c59", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "id": 2800, + "name": "StructuredDocumentation", + "src": "51458:68:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2806, + "name": "OverrideSpecifier", + "src": "51610:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2801, + "name": "ElementaryTypeName", + "src": "51560:7:1" + } + ], + "id": 2802, + "name": "VariableDeclaration", + "src": "51560:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2803, + "name": "ElementaryTypeName", + "src": "51575:7:1" + } + ], + "id": 2804, + "name": "VariableDeclaration", + "src": "51575:13:1" + } + ], + "id": 2805, + "name": "ParameterList", + "src": "51559:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2807, + "name": "ElementaryTypeName", + "src": "51628:7:1" + } + ], + "id": 2808, + "name": "VariableDeclaration", + "src": "51628:7:1" + } + ], + "id": 2809, + "name": "ParameterList", + "src": "51627:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2809 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 1920, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2810, + "name": "Identifier", + "src": "51654:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2802, + "type": "address", + "value": "owner" + }, + "id": 2811, + "name": "Identifier", + "src": "51668:5:1" + } + ], + "id": 2812, + "name": "IndexAccess", + "src": "51654:20:1" + } + ], + "id": 2813, + "name": "MemberAccess", + "src": "51654:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2804, + "type": "uint256", + "value": "index" + }, + "id": 2814, + "name": "Identifier", + "src": "51678:5:1" + } + ], + "id": 2815, + "name": "FunctionCall", + "src": "51654:30:1" + } + ], + "id": 2816, + "name": "Return", + "src": "51647:37:1" + } + ], + "id": 2817, + "name": "Block", + "src": "51637:54:1" + } + ], + "id": 2818, + "name": "FunctionDefinition", + "src": "51531:160:1" + }, + { + "attributes": { + "baseFunctions": [ + 690 + ], + "functionSelector": "18160ddd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "id": 2819, + "name": "StructuredDocumentation", + "src": "51697:60:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2821, + "name": "OverrideSpecifier", + "src": "51805:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2820, + "name": "ParameterList", + "src": "51782:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2830, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2822, + "name": "ElementaryTypeName", + "src": "51823:7:1" + } + ], + "id": 2823, + "name": "VariableDeclaration", + "src": "51823:7:1" + } + ], + "id": 2824, + "name": "ParameterList", + "src": "51822:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2824 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 2340, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2825, + "name": "Identifier", + "src": "51942:12:1" + } + ], + "id": 2826, + "name": "MemberAccess", + "src": "51942:19:1" + } + ], + "id": 2827, + "name": "FunctionCall", + "src": "51942:21:1" + } + ], + "id": 2828, + "name": "Return", + "src": "51935:28:1" + } + ], + "id": 2829, + "name": "Block", + "src": "51832:138:1" + } + ], + "id": 2830, + "name": "FunctionDefinition", + "src": "51762:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 708 + ], + "functionSelector": "4f6ccce7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "id": 2831, + "name": "StructuredDocumentation", + "src": "51976:61:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2835, + "name": "OverrideSpecifier", + "src": "52099:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2832, + "name": "ElementaryTypeName", + "src": "52064:7:1" + } + ], + "id": 2833, + "name": "VariableDeclaration", + "src": "52064:13:1" + } + ], + "id": 2834, + "name": "ParameterList", + "src": "52063:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2836, + "name": "ElementaryTypeName", + "src": "52117:7:1" + } + ], + "id": 2837, + "name": "VariableDeclaration", + "src": "52117:7:1" + } + ], + "id": 2838, + "name": "ParameterList", + "src": "52116:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2840, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2848, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2839, + "name": "ElementaryTypeName", + "src": "52137:7:1" + } + ], + "id": 2840, + "name": "VariableDeclaration", + "src": "52137:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(uint256,address)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 2379, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2841, + "name": "Identifier", + "src": "52158:12:1" + } + ], + "id": 2842, + "name": "MemberAccess", + "src": "52158:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2833, + "type": "uint256", + "value": "index" + }, + "id": 2843, + "name": "Identifier", + "src": "52174:5:1" + } + ], + "id": 2844, + "name": "FunctionCall", + "src": "52158:22:1" + } + ], + "id": 2845, + "name": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2838 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2840, + "type": "uint256", + "value": "tokenId" + }, + "id": 2846, + "name": "Identifier", + "src": "52197:7:1" + } + ], + "id": 2847, + "name": "Return", + "src": "52190:14:1" + } + ], + "id": 2848, + "name": "Block", + "src": "52126:85:1" + } + ], + "id": 2849, + "name": "FunctionDefinition", + "src": "52042:169:1" + }, + { + "attributes": { + "baseFunctions": [ + 616 + ], + "functionSelector": "095ea7b3", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-approve}." + }, + "id": 2850, + "name": "StructuredDocumentation", + "src": "52217:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2856, + "name": "OverrideSpecifier", + "src": "52329:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2851, + "name": "ElementaryTypeName", + "src": "52285:7:1" + } + ], + "id": 2852, + "name": "VariableDeclaration", + "src": "52285:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2853, + "name": "ElementaryTypeName", + "src": "52297:7:1" + } + ], + "id": 2854, + "name": "VariableDeclaration", + "src": "52297:15:1" + } + ], + "id": 2855, + "name": "ParameterList", + "src": "52284:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2857, + "name": "ParameterList", + "src": "52338:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2859 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2892, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2858, + "name": "ElementaryTypeName", + "src": "52348:7:1" + } + ], + "id": 2859, + "name": "VariableDeclaration", + "src": "52348:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2860, + "name": "Identifier", + "src": "52364:6:1" + } + ], + "id": 2861, + "name": "MemberAccess", + "src": "52364:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2862, + "name": "Identifier", + "src": "52379:7:1" + } + ], + "id": 2863, + "name": "FunctionCall", + "src": "52364:23:1" + } + ], + "id": 2864, + "name": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2865, + "name": "Identifier", + "src": "52397:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2866, + "name": "Identifier", + "src": "52405:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2867, + "name": "Identifier", + "src": "52411:5:1" + } + ], + "id": 2868, + "name": "BinaryOperation", + "src": "52405:11:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approval to current owner\"", + "value": "ERC721: approval to current owner" + }, + "id": 2869, + "name": "Literal", + "src": "52418:35:1" + } + ], + "id": 2870, + "name": "FunctionCall", + "src": "52397:57:1" + } + ], + "id": 2871, + "name": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2872, + "name": "Identifier", + "src": "52465:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2873, + "name": "Identifier", + "src": "52473:10:1" + } + ], + "id": 2874, + "name": "FunctionCall", + "src": "52473:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2875, + "name": "Identifier", + "src": "52489:5:1" + } + ], + "id": 2876, + "name": "BinaryOperation", + "src": "52473:21:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2877, + "name": "Identifier", + "src": "52498:6:1" + } + ], + "id": 2878, + "name": "MemberAccess", + "src": "52498:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2879, + "name": "Identifier", + "src": "52522:5:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2880, + "name": "Identifier", + "src": "52529:10:1" + } + ], + "id": 2881, + "name": "FunctionCall", + "src": "52529:12:1" + } + ], + "id": 2882, + "name": "FunctionCall", + "src": "52498:44:1" + } + ], + "id": 2883, + "name": "BinaryOperation", + "src": "52473:69:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve caller is not owner nor approved for all\"", + "value": "ERC721: approve caller is not owner nor approved for all" + }, + "id": 2884, + "name": "Literal", + "src": "52556:58:1" + } + ], + "id": 2885, + "name": "FunctionCall", + "src": "52465:159:1" + } + ], + "id": 2886, + "name": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 2887, + "name": "Identifier", + "src": "52635:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2888, + "name": "Identifier", + "src": "52644:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2889, + "name": "Identifier", + "src": "52648:7:1" + } + ], + "id": 2890, + "name": "FunctionCall", + "src": "52635:21:1" + } + ], + "id": 2891, + "name": "ExpressionStatement", + "src": "52635:21:1" + } + ], + "id": 2892, + "name": "Block", + "src": "52338:325:1" + } + ], + "id": 2893, + "name": "FunctionDefinition", + "src": "52268:395:1" + }, + { + "attributes": { + "baseFunctions": [ + 624 + ], + "functionSelector": "081812fc", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-getApproved}." + }, + "id": 2894, + "name": "StructuredDocumentation", + "src": "52669:50:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2898, + "name": "OverrideSpecifier", + "src": "52782:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2895, + "name": "ElementaryTypeName", + "src": "52745:7:1" + } + ], + "id": 2896, + "name": "VariableDeclaration", + "src": "52745:15:1" + } + ], + "id": 2897, + "name": "ParameterList", + "src": "52744:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2899, + "name": "ElementaryTypeName", + "src": "52800:7:1" + } + ], + "id": 2900, + "name": "VariableDeclaration", + "src": "52800:7:1" + } + ], + "id": 2901, + "name": "ParameterList", + "src": "52799:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2902, + "name": "Identifier", + "src": "52819:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2903, + "name": "Identifier", + "src": "52827:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2904, + "name": "Identifier", + "src": "52835:7:1" + } + ], + "id": 2905, + "name": "FunctionCall", + "src": "52827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approved query for nonexistent token\"", + "value": "ERC721: approved query for nonexistent token" + }, + "id": 2906, + "name": "Literal", + "src": "52845:46:1" + } + ], + "id": 2907, + "name": "FunctionCall", + "src": "52819:73:1" + } + ], + "id": 2908, + "name": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "attributes": { + "functionReturnParameters": 2901 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 2909, + "name": "Identifier", + "src": "52910:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2910, + "name": "Identifier", + "src": "52926:7:1" + } + ], + "id": 2911, + "name": "IndexAccess", + "src": "52910:24:1" + } + ], + "id": 2912, + "name": "Return", + "src": "52903:31:1" + } + ], + "id": 2913, + "name": "Block", + "src": "52809:132:1" + } + ], + "id": 2914, + "name": "FunctionDefinition", + "src": "52724:217:1" + }, + { + "attributes": { + "baseFunctions": [ + 632 + ], + "functionSelector": "a22cb465", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "id": 2915, + "name": "StructuredDocumentation", + "src": "52947:56:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2921, + "name": "OverrideSpecifier", + "src": "53083:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2916, + "name": "ElementaryTypeName", + "src": "53035:7:1" + } + ], + "id": 2917, + "name": "VariableDeclaration", + "src": "53035:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "approved", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2918, + "name": "ElementaryTypeName", + "src": "53053:4:1" + } + ], + "id": 2919, + "name": "VariableDeclaration", + "src": "53053:13:1" + } + ], + "id": 2920, + "name": "ParameterList", + "src": "53034:33:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2922, + "name": "ParameterList", + "src": "53092:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2923, + "name": "Identifier", + "src": "53102:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2924, + "name": "Identifier", + "src": "53110:8:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2925, + "name": "Identifier", + "src": "53122:10:1" + } + ], + "id": 2926, + "name": "FunctionCall", + "src": "53122:12:1" + } + ], + "id": 2927, + "name": "BinaryOperation", + "src": "53110:24:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f766520746f2063616c6c6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve to caller\"", + "value": "ERC721: approve to caller" + }, + "id": 2928, + "name": "Literal", + "src": "53136:27:1" + } + ], + "id": 2929, + "name": "FunctionCall", + "src": "53102:62:1" + } + ], + "id": 2930, + "name": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2931, + "name": "Identifier", + "src": "53175:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2932, + "name": "Identifier", + "src": "53194:10:1" + } + ], + "id": 2933, + "name": "FunctionCall", + "src": "53194:12:1" + } + ], + "id": 2935, + "name": "IndexAccess", + "src": "53175:32:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2934, + "name": "Identifier", + "src": "53208:8:1" + } + ], + "id": 2936, + "name": "IndexAccess", + "src": "53175:42:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2937, + "name": "Identifier", + "src": "53220:8:1" + } + ], + "id": 2938, + "name": "Assignment", + "src": "53175:53:1" + } + ], + "id": 2939, + "name": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 572, + "type": "function (address,address,bool)", + "value": "ApprovalForAll" + }, + "id": 2940, + "name": "Identifier", + "src": "53243:14:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2941, + "name": "Identifier", + "src": "53258:10:1" + } + ], + "id": 2942, + "name": "FunctionCall", + "src": "53258:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2943, + "name": "Identifier", + "src": "53272:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2944, + "name": "Identifier", + "src": "53282:8:1" + } + ], + "id": 2945, + "name": "FunctionCall", + "src": "53243:48:1" + } + ], + "id": 2946, + "name": "EmitStatement", + "src": "53238:53:1" + } + ], + "id": 2947, + "name": "Block", + "src": "53092:206:1" + } + ], + "id": 2948, + "name": "FunctionDefinition", + "src": "53008:290:1" + }, + { + "attributes": { + "baseFunctions": [ + 642 + ], + "functionSelector": "e985e9c5", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "id": 2949, + "name": "StructuredDocumentation", + "src": "53304:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2955, + "name": "OverrideSpecifier", + "src": "53443:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2950, + "name": "ElementaryTypeName", + "src": "53390:7:1" + } + ], + "id": 2951, + "name": "VariableDeclaration", + "src": "53390:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2952, + "name": "ElementaryTypeName", + "src": "53405:7:1" + } + ], + "id": 2953, + "name": "VariableDeclaration", + "src": "53405:16:1" + } + ], + "id": 2954, + "name": "ParameterList", + "src": "53389:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2956, + "name": "ElementaryTypeName", + "src": "53461:4:1" + } + ], + "id": 2957, + "name": "VariableDeclaration", + "src": "53461:4:1" + } + ], + "id": 2958, + "name": "ParameterList", + "src": "53460:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2958 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2959, + "name": "Identifier", + "src": "53484:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2951, + "type": "address", + "value": "owner" + }, + "id": 2960, + "name": "Identifier", + "src": "53503:5:1" + } + ], + "id": 2961, + "name": "IndexAccess", + "src": "53484:25:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2953, + "type": "address", + "value": "operator" + }, + "id": 2962, + "name": "Identifier", + "src": "53510:8:1" + } + ], + "id": 2963, + "name": "IndexAccess", + "src": "53484:35:1" + } + ], + "id": 2964, + "name": "Return", + "src": "53477:42:1" + } + ], + "id": 2965, + "name": "Block", + "src": "53467:59:1" + } + ], + "id": 2966, + "name": "FunctionDefinition", + "src": "53364:162:1" + }, + { + "attributes": { + "baseFunctions": [ + 608 + ], + "functionSelector": "23b872dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-transferFrom}." + }, + "id": 2967, + "name": "StructuredDocumentation", + "src": "53532:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2975, + "name": "OverrideSpecifier", + "src": "53668:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2968, + "name": "ElementaryTypeName", + "src": "53610:7:1" + } + ], + "id": 2969, + "name": "VariableDeclaration", + "src": "53610:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2970, + "name": "ElementaryTypeName", + "src": "53624:7:1" + } + ], + "id": 2971, + "name": "VariableDeclaration", + "src": "53624:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2972, + "name": "ElementaryTypeName", + "src": "53636:7:1" + } + ], + "id": 2973, + "name": "VariableDeclaration", + "src": "53636:15:1" + } + ], + "id": 2974, + "name": "ParameterList", + "src": "53609:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2976, + "name": "ParameterList", + "src": "53677:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2977, + "name": "Identifier", + "src": "53739:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 2978, + "name": "Identifier", + "src": "53747:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2979, + "name": "Identifier", + "src": "53766:10:1" + } + ], + "id": 2980, + "name": "FunctionCall", + "src": "53766:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2981, + "name": "Identifier", + "src": "53780:7:1" + } + ], + "id": 2982, + "name": "FunctionCall", + "src": "53747:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 2983, + "name": "Literal", + "src": "53790:51:1" + } + ], + "id": 2984, + "name": "FunctionCall", + "src": "53739:103:1" + } + ], + "id": 2985, + "name": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 2986, + "name": "Identifier", + "src": "53853:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2969, + "type": "address", + "value": "from" + }, + "id": 2987, + "name": "Identifier", + "src": "53863:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2971, + "type": "address", + "value": "to" + }, + "id": 2988, + "name": "Identifier", + "src": "53869:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2989, + "name": "Identifier", + "src": "53873:7:1" + } + ], + "id": 2990, + "name": "FunctionCall", + "src": "53853:28:1" + } + ], + "id": 2991, + "name": "ExpressionStatement", + "src": "53853:28:1" + } + ], + "id": 2992, + "name": "Block", + "src": "53677:211:1" + } + ], + "id": 2993, + "name": "FunctionDefinition", + "src": "53588:300:1" + }, + { + "attributes": { + "baseFunctions": [ + 598 + ], + "functionSelector": "42842e0e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 2994, + "name": "StructuredDocumentation", + "src": "53894:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3002, + "name": "OverrideSpecifier", + "src": "54038:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2995, + "name": "ElementaryTypeName", + "src": "53980:7:1" + } + ], + "id": 2996, + "name": "VariableDeclaration", + "src": "53980:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2997, + "name": "ElementaryTypeName", + "src": "53994:7:1" + } + ], + "id": 2998, + "name": "VariableDeclaration", + "src": "53994:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2999, + "name": "ElementaryTypeName", + "src": "54006:7:1" + } + ], + "id": 3000, + "name": "VariableDeclaration", + "src": "54006:15:1" + } + ], + "id": 3001, + "name": "ParameterList", + "src": "53979:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3003, + "name": "ParameterList", + "src": "54047:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "type": "function (address,address,uint256,bytes memory)", + "value": "safeTransferFrom" + }, + "id": 3004, + "name": "Identifier", + "src": "54057:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2996, + "type": "address", + "value": "from" + }, + "id": 3005, + "name": "Identifier", + "src": "54074:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2998, + "type": "address", + "value": "to" + }, + "id": 3006, + "name": "Identifier", + "src": "54080:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3000, + "type": "uint256", + "value": "tokenId" + }, + "id": 3007, + "name": "Identifier", + "src": "54084:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3008, + "name": "Literal", + "src": "54093:2:1" + } + ], + "id": 3009, + "name": "FunctionCall", + "src": "54057:39:1" + } + ], + "id": 3010, + "name": "ExpressionStatement", + "src": "54057:39:1" + } + ], + "id": 3011, + "name": "Block", + "src": "54047:56:1" + } + ], + "id": 3012, + "name": "FunctionDefinition", + "src": "53954:149:1" + }, + { + "attributes": { + "baseFunctions": [ + 654 + ], + "functionSelector": "b88d4fde", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 3013, + "name": "StructuredDocumentation", + "src": "54109:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3023, + "name": "OverrideSpecifier", + "src": "54273:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3014, + "name": "ElementaryTypeName", + "src": "54195:7:1" + } + ], + "id": 3015, + "name": "VariableDeclaration", + "src": "54195:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3016, + "name": "ElementaryTypeName", + "src": "54209:7:1" + } + ], + "id": 3017, + "name": "VariableDeclaration", + "src": "54209:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3018, + "name": "ElementaryTypeName", + "src": "54221:7:1" + } + ], + "id": 3019, + "name": "VariableDeclaration", + "src": "54221:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3042, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3020, + "name": "ElementaryTypeName", + "src": "54238:5:1" + } + ], + "id": 3021, + "name": "VariableDeclaration", + "src": "54238:18:1" + } + ], + "id": 3022, + "name": "ParameterList", + "src": "54194:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3024, + "name": "ParameterList", + "src": "54282:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3025, + "name": "Identifier", + "src": "54292:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 3026, + "name": "Identifier", + "src": "54300:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3027, + "name": "Identifier", + "src": "54319:10:1" + } + ], + "id": 3028, + "name": "FunctionCall", + "src": "54319:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3029, + "name": "Identifier", + "src": "54333:7:1" + } + ], + "id": 3030, + "name": "FunctionCall", + "src": "54300:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 3031, + "name": "Literal", + "src": "54343:51:1" + } + ], + "id": 3032, + "name": "FunctionCall", + "src": "54292:103:1" + } + ], + "id": 3033, + "name": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3071, + "type": "function (address,address,uint256,bytes memory)", + "value": "_safeTransfer" + }, + "id": 3034, + "name": "Identifier", + "src": "54405:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3015, + "type": "address", + "value": "from" + }, + "id": 3035, + "name": "Identifier", + "src": "54419:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3017, + "type": "address", + "value": "to" + }, + "id": 3036, + "name": "Identifier", + "src": "54425:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3037, + "name": "Identifier", + "src": "54429:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3021, + "type": "bytes memory", + "value": "_data" + }, + "id": 3038, + "name": "Identifier", + "src": "54438:5:1" + } + ], + "id": 3039, + "name": "FunctionCall", + "src": "54405:39:1" + } + ], + "id": 3040, + "name": "ExpressionStatement", + "src": "54405:39:1" + } + ], + "id": 3041, + "name": "Block", + "src": "54282:169:1" + } + ], + "id": 3042, + "name": "FunctionDefinition", + "src": "54169:282:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3043, + "name": "StructuredDocumentation", + "src": "54457:851:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3044, + "name": "ElementaryTypeName", + "src": "55336:7:1" + } + ], + "id": 3045, + "name": "VariableDeclaration", + "src": "55336:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3046, + "name": "ElementaryTypeName", + "src": "55350:7:1" + } + ], + "id": 3047, + "name": "VariableDeclaration", + "src": "55350:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3048, + "name": "ElementaryTypeName", + "src": "55362:7:1" + } + ], + "id": 3049, + "name": "VariableDeclaration", + "src": "55362:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3071, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3050, + "name": "ElementaryTypeName", + "src": "55379:5:1" + } + ], + "id": 3051, + "name": "VariableDeclaration", + "src": "55379:18:1" + } + ], + "id": 3052, + "name": "ParameterList", + "src": "55335:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3053, + "name": "ParameterList", + "src": "55416:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 3054, + "name": "Identifier", + "src": "55426:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3055, + "name": "Identifier", + "src": "55436:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3056, + "name": "Identifier", + "src": "55442:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3057, + "name": "Identifier", + "src": "55446:7:1" + } + ], + "id": 3058, + "name": "FunctionCall", + "src": "55426:28:1" + } + ], + "id": 3059, + "name": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3060, + "name": "Identifier", + "src": "55464:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3061, + "name": "Identifier", + "src": "55472:22:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3062, + "name": "Identifier", + "src": "55495:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3063, + "name": "Identifier", + "src": "55501:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3064, + "name": "Identifier", + "src": "55505:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3051, + "type": "bytes memory", + "value": "_data" + }, + "id": 3065, + "name": "Identifier", + "src": "55514:5:1" + } + ], + "id": 3066, + "name": "FunctionCall", + "src": "55472:48:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3067, + "name": "Literal", + "src": "55522:52:1" + } + ], + "id": 3068, + "name": "FunctionCall", + "src": "55464:111:1" + } + ], + "id": 3069, + "name": "ExpressionStatement", + "src": "55464:111:1" + } + ], + "id": 3070, + "name": "Block", + "src": "55416:166:1" + } + ], + "id": 3071, + "name": "FunctionDefinition", + "src": "55313:269:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_exists", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3072, + "name": "StructuredDocumentation", + "src": "55588:292:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3073, + "name": "ElementaryTypeName", + "src": "55902:7:1" + } + ], + "id": 3074, + "name": "VariableDeclaration", + "src": "55902:15:1" + } + ], + "id": 3075, + "name": "ParameterList", + "src": "55901:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3076, + "name": "ElementaryTypeName", + "src": "55950:4:1" + } + ], + "id": 3077, + "name": "VariableDeclaration", + "src": "55950:4:1" + } + ], + "id": 3078, + "name": "ParameterList", + "src": "55949:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3078 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "contains", + "referencedDeclaration": 2326, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3079, + "name": "Identifier", + "src": "55973:12:1" + } + ], + "id": 3080, + "name": "MemberAccess", + "src": "55973:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3074, + "type": "uint256", + "value": "tokenId" + }, + "id": 3081, + "name": "Identifier", + "src": "55995:7:1" + } + ], + "id": 3082, + "name": "FunctionCall", + "src": "55973:30:1" + } + ], + "id": 3083, + "name": "Return", + "src": "55966:37:1" + } + ], + "id": 3084, + "name": "Block", + "src": "55956:54:1" + } + ], + "id": 3085, + "name": "FunctionDefinition", + "src": "55885:125:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_isApprovedOrOwner", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3086, + "name": "StructuredDocumentation", + "src": "56016:147:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "spender", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3087, + "name": "ElementaryTypeName", + "src": "56196:7:1" + } + ], + "id": 3088, + "name": "VariableDeclaration", + "src": "56196:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3089, + "name": "ElementaryTypeName", + "src": "56213:7:1" + } + ], + "id": 3090, + "name": "VariableDeclaration", + "src": "56213:15:1" + } + ], + "id": 3091, + "name": "ParameterList", + "src": "56195:34:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3092, + "name": "ElementaryTypeName", + "src": "56261:4:1" + } + ], + "id": 3093, + "name": "VariableDeclaration", + "src": "56261:4:1" + } + ], + "id": 3094, + "name": "ParameterList", + "src": "56260:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3095, + "name": "Identifier", + "src": "56277:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3096, + "name": "Identifier", + "src": "56285:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3097, + "name": "Identifier", + "src": "56293:7:1" + } + ], + "id": 3098, + "name": "FunctionCall", + "src": "56285:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: operator query for nonexistent token\"", + "value": "ERC721: operator query for nonexistent token" + }, + "id": 3099, + "name": "Literal", + "src": "56303:46:1" + } + ], + "id": 3100, + "name": "FunctionCall", + "src": "56277:73:1" + } + ], + "id": 3101, + "name": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "attributes": { + "assignments": [ + 3103 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3126, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3102, + "name": "ElementaryTypeName", + "src": "56360:7:1" + } + ], + "id": 3103, + "name": "VariableDeclaration", + "src": "56360:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3104, + "name": "Identifier", + "src": "56376:6:1" + } + ], + "id": 3105, + "name": "MemberAccess", + "src": "56376:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3106, + "name": "Identifier", + "src": "56391:7:1" + } + ], + "id": 3107, + "name": "FunctionCall", + "src": "56376:23:1" + } + ], + "id": 3108, + "name": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "attributes": { + "functionReturnParameters": 3094 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3109, + "name": "Identifier", + "src": "56417:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3110, + "name": "Identifier", + "src": "56428:5:1" + } + ], + "id": 3111, + "name": "BinaryOperation", + "src": "56417:16:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2914, + "type": "function (uint256) view returns (address)", + "value": "getApproved" + }, + "id": 3112, + "name": "Identifier", + "src": "56437:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3113, + "name": "Identifier", + "src": "56449:7:1" + } + ], + "id": 3114, + "name": "FunctionCall", + "src": "56437:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3115, + "name": "Identifier", + "src": "56461:7:1" + } + ], + "id": 3116, + "name": "BinaryOperation", + "src": "56437:31:1" + } + ], + "id": 3117, + "name": "BinaryOperation", + "src": "56417:51:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3118, + "name": "Identifier", + "src": "56472:6:1" + } + ], + "id": 3119, + "name": "MemberAccess", + "src": "56472:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3120, + "name": "Identifier", + "src": "56496:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3121, + "name": "Identifier", + "src": "56503:7:1" + } + ], + "id": 3122, + "name": "FunctionCall", + "src": "56472:39:1" + } + ], + "id": 3123, + "name": "BinaryOperation", + "src": "56417:94:1" + } + ], + "id": 3124, + "name": "TupleExpression", + "src": "56416:96:1" + } + ], + "id": 3125, + "name": "Return", + "src": "56409:103:1" + } + ], + "id": 3126, + "name": "Block", + "src": "56267:252:1" + } + ], + "id": 3127, + "name": "FunctionDefinition", + "src": "56168:351:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3128, + "name": "StructuredDocumentation", + "src": "56525:320:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3129, + "name": "ElementaryTypeName", + "src": "56869:7:1" + } + ], + "id": 3130, + "name": "VariableDeclaration", + "src": "56869:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3131, + "name": "ElementaryTypeName", + "src": "56881:7:1" + } + ], + "id": 3132, + "name": "VariableDeclaration", + "src": "56881:15:1" + } + ], + "id": 3133, + "name": "ParameterList", + "src": "56868:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3134, + "name": "ParameterList", + "src": "56915:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "type": "function (address,uint256,bytes memory)", + "value": "_safeMint" + }, + "id": 3135, + "name": "Identifier", + "src": "56925:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3130, + "type": "address", + "value": "to" + }, + "id": 3136, + "name": "Identifier", + "src": "56935:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3132, + "type": "uint256", + "value": "tokenId" + }, + "id": 3137, + "name": "Identifier", + "src": "56939:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3138, + "name": "Literal", + "src": "56948:2:1" + } + ], + "id": 3139, + "name": "FunctionCall", + "src": "56925:26:1" + } + ], + "id": 3140, + "name": "ExpressionStatement", + "src": "56925:26:1" + } + ], + "id": 3141, + "name": "Block", + "src": "56915:43:1" + } + ], + "id": 3142, + "name": "FunctionDefinition", + "src": "56850:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3143, + "name": "StructuredDocumentation", + "src": "56964:210:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3144, + "name": "ElementaryTypeName", + "src": "57198:7:1" + } + ], + "id": 3145, + "name": "VariableDeclaration", + "src": "57198:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3146, + "name": "ElementaryTypeName", + "src": "57210:7:1" + } + ], + "id": 3147, + "name": "VariableDeclaration", + "src": "57210:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3171, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3148, + "name": "ElementaryTypeName", + "src": "57227:5:1" + } + ], + "id": 3149, + "name": "VariableDeclaration", + "src": "57227:18:1" + } + ], + "id": 3150, + "name": "ParameterList", + "src": "57197:49:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3151, + "name": "ParameterList", + "src": "57264:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3230, + "type": "function (address,uint256)", + "value": "_mint" + }, + "id": 3152, + "name": "Identifier", + "src": "57274:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3153, + "name": "Identifier", + "src": "57280:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3154, + "name": "Identifier", + "src": "57284:7:1" + } + ], + "id": 3155, + "name": "FunctionCall", + "src": "57274:18:1" + } + ], + "id": 3156, + "name": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3157, + "name": "Identifier", + "src": "57302:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3158, + "name": "Identifier", + "src": "57310:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3159, + "name": "ElementaryTypeName", + "src": "57333:7:1" + } + ], + "id": 3160, + "name": "ElementaryTypeNameExpression", + "src": "57333:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3161, + "name": "Literal", + "src": "57341:1:1" + } + ], + "id": 3162, + "name": "FunctionCall", + "src": "57333:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3163, + "name": "Identifier", + "src": "57345:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3164, + "name": "Identifier", + "src": "57349:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3149, + "type": "bytes memory", + "value": "_data" + }, + "id": 3165, + "name": "Identifier", + "src": "57358:5:1" + } + ], + "id": 3166, + "name": "FunctionCall", + "src": "57310:54:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3167, + "name": "Literal", + "src": "57366:52:1" + } + ], + "id": 3168, + "name": "FunctionCall", + "src": "57302:117:1" + } + ], + "id": 3169, + "name": "ExpressionStatement", + "src": "57302:117:1" + } + ], + "id": 3170, + "name": "Block", + "src": "57264:162:1" + } + ], + "id": 3171, + "name": "FunctionDefinition", + "src": "57179:247:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_mint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3172, + "name": "StructuredDocumentation", + "src": "57432:311:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3173, + "name": "ElementaryTypeName", + "src": "57763:7:1" + } + ], + "id": 3174, + "name": "VariableDeclaration", + "src": "57763:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3175, + "name": "ElementaryTypeName", + "src": "57775:7:1" + } + ], + "id": 3176, + "name": "VariableDeclaration", + "src": "57775:15:1" + } + ], + "id": 3177, + "name": "ParameterList", + "src": "57762:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3178, + "name": "ParameterList", + "src": "57809:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3179, + "name": "Identifier", + "src": "57819:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3180, + "name": "Identifier", + "src": "57827:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3181, + "name": "ElementaryTypeName", + "src": "57833:7:1" + } + ], + "id": 3182, + "name": "ElementaryTypeNameExpression", + "src": "57833:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3183, + "name": "Literal", + "src": "57841:1:1" + } + ], + "id": 3184, + "name": "FunctionCall", + "src": "57833:10:1" + } + ], + "id": 3185, + "name": "BinaryOperation", + "src": "57827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: mint to the zero address\"", + "value": "ERC721: mint to the zero address" + }, + "id": 3186, + "name": "Literal", + "src": "57845:34:1" + } + ], + "id": 3187, + "name": "FunctionCall", + "src": "57819:61:1" + } + ], + "id": 3188, + "name": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3189, + "name": "Identifier", + "src": "57890:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3190, + "name": "Identifier", + "src": "57899:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3191, + "name": "Identifier", + "src": "57907:7:1" + } + ], + "id": 3192, + "name": "FunctionCall", + "src": "57899:16:1" + } + ], + "id": 3193, + "name": "UnaryOperation", + "src": "57898:17:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: token already minted\"", + "value": "ERC721: token already minted" + }, + "id": 3194, + "name": "Literal", + "src": "57917:30:1" + } + ], + "id": 3195, + "name": "FunctionCall", + "src": "57890:58:1" + } + ], + "id": 3196, + "name": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3197, + "name": "Identifier", + "src": "57959:20:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3198, + "name": "ElementaryTypeName", + "src": "57980:7:1" + } + ], + "id": 3199, + "name": "ElementaryTypeNameExpression", + "src": "57980:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3200, + "name": "Literal", + "src": "57988:1:1" + } + ], + "id": 3201, + "name": "FunctionCall", + "src": "57980:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3202, + "name": "Identifier", + "src": "57992:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3203, + "name": "Identifier", + "src": "57996:7:1" + } + ], + "id": 3204, + "name": "FunctionCall", + "src": "57959:45:1" + } + ], + "id": 3205, + "name": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3206, + "name": "Identifier", + "src": "58015:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3207, + "name": "Identifier", + "src": "58029:2:1" + } + ], + "id": 3208, + "name": "IndexAccess", + "src": "58015:17:1" + } + ], + "id": 3209, + "name": "MemberAccess", + "src": "58015:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3210, + "name": "Identifier", + "src": "58037:7:1" + } + ], + "id": 3211, + "name": "FunctionCall", + "src": "58015:30:1" + } + ], + "id": 3212, + "name": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3213, + "name": "Identifier", + "src": "58056:12:1" + } + ], + "id": 3215, + "name": "MemberAccess", + "src": "58056:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3216, + "name": "Identifier", + "src": "58073:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3217, + "name": "Identifier", + "src": "58082:2:1" + } + ], + "id": 3218, + "name": "FunctionCall", + "src": "58056:29:1" + } + ], + "id": 3219, + "name": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3220, + "name": "Identifier", + "src": "58101:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3221, + "name": "ElementaryTypeName", + "src": "58110:7:1" + } + ], + "id": 3222, + "name": "ElementaryTypeNameExpression", + "src": "58110:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3223, + "name": "Literal", + "src": "58118:1:1" + } + ], + "id": 3224, + "name": "FunctionCall", + "src": "58110:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3225, + "name": "Identifier", + "src": "58122:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3226, + "name": "Identifier", + "src": "58126:7:1" + } + ], + "id": 3227, + "name": "FunctionCall", + "src": "58101:33:1" + } + ], + "id": 3228, + "name": "EmitStatement", + "src": "58096:38:1" + } + ], + "id": 3229, + "name": "Block", + "src": "57809:332:1" + } + ], + "id": 3230, + "name": "FunctionDefinition", + "src": "57748:393:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_burn", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3231, + "name": "StructuredDocumentation", + "src": "58147:206:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3299, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3232, + "name": "ElementaryTypeName", + "src": "58373:7:1" + } + ], + "id": 3233, + "name": "VariableDeclaration", + "src": "58373:15:1" + } + ], + "id": 3234, + "name": "ParameterList", + "src": "58372:17:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3235, + "name": "ParameterList", + "src": "58407:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 3237 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3298, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3236, + "name": "ElementaryTypeName", + "src": "58417:7:1" + } + ], + "id": 3237, + "name": "VariableDeclaration", + "src": "58417:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3238, + "name": "Identifier", + "src": "58433:6:1" + } + ], + "id": 3239, + "name": "MemberAccess", + "src": "58433:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3240, + "name": "Identifier", + "src": "58448:7:1" + } + ], + "id": 3241, + "name": "FunctionCall", + "src": "58433:23:1" + } + ], + "id": 3242, + "name": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3243, + "name": "Identifier", + "src": "58485:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3244, + "name": "Identifier", + "src": "58506:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3245, + "name": "ElementaryTypeName", + "src": "58513:7:1" + } + ], + "id": 3246, + "name": "ElementaryTypeNameExpression", + "src": "58513:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3247, + "name": "Literal", + "src": "58521:1:1" + } + ], + "id": 3248, + "name": "FunctionCall", + "src": "58513:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3249, + "name": "Identifier", + "src": "58525:7:1" + } + ], + "id": 3250, + "name": "FunctionCall", + "src": "58485:48:1" + } + ], + "id": 3251, + "name": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3252, + "name": "Identifier", + "src": "58571:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3253, + "name": "ElementaryTypeName", + "src": "58580:7:1" + } + ], + "id": 3254, + "name": "ElementaryTypeNameExpression", + "src": "58580:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3255, + "name": "Literal", + "src": "58588:1:1" + } + ], + "id": 3256, + "name": "FunctionCall", + "src": "58580:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3257, + "name": "Identifier", + "src": "58592:7:1" + } + ], + "id": 3258, + "name": "FunctionCall", + "src": "58571:29:1" + } + ], + "id": 3259, + "name": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes storage pointer", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 3260, + "name": "ElementaryTypeName", + "src": "58650:5:1" + } + ], + "id": 3261, + "name": "ElementaryTypeNameExpression", + "src": "58650:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3262, + "name": "Identifier", + "src": "58656:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3263, + "name": "Identifier", + "src": "58667:7:1" + } + ], + "id": 3264, + "name": "IndexAccess", + "src": "58656:19:1" + } + ], + "id": 3265, + "name": "FunctionCall", + "src": "58650:26:1" + } + ], + "id": 3266, + "name": "MemberAccess", + "src": "58650:33:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3267, + "name": "Literal", + "src": "58687:1:1" + } + ], + "id": 3268, + "name": "BinaryOperation", + "src": "58650:38:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3269, + "name": "Identifier", + "src": "58711:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3270, + "name": "Identifier", + "src": "58722:7:1" + } + ], + "id": 3271, + "name": "IndexAccess", + "src": "58711:19:1" + } + ], + "id": 3272, + "name": "UnaryOperation", + "src": "58704:26:1" + } + ], + "id": 3273, + "name": "ExpressionStatement", + "src": "58704:26:1" + } + ], + "id": 3274, + "name": "Block", + "src": "58690:51:1" + } + ], + "id": 3275, + "name": "IfStatement", + "src": "58646:95:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3276, + "name": "Identifier", + "src": "58751:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3277, + "name": "Identifier", + "src": "58765:5:1" + } + ], + "id": 3278, + "name": "IndexAccess", + "src": "58751:20:1" + } + ], + "id": 3279, + "name": "MemberAccess", + "src": "58751:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3280, + "name": "Identifier", + "src": "58779:7:1" + } + ], + "id": 3281, + "name": "FunctionCall", + "src": "58751:36:1" + } + ], + "id": 3282, + "name": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 2306, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3283, + "name": "Identifier", + "src": "58798:12:1" + } + ], + "id": 3285, + "name": "MemberAccess", + "src": "58798:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3286, + "name": "Identifier", + "src": "58818:7:1" + } + ], + "id": 3287, + "name": "FunctionCall", + "src": "58798:28:1" + } + ], + "id": 3288, + "name": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3289, + "name": "Identifier", + "src": "58842:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3290, + "name": "Identifier", + "src": "58851:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3291, + "name": "ElementaryTypeName", + "src": "58858:7:1" + } + ], + "id": 3292, + "name": "ElementaryTypeNameExpression", + "src": "58858:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3293, + "name": "Literal", + "src": "58866:1:1" + } + ], + "id": 3294, + "name": "FunctionCall", + "src": "58858:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3295, + "name": "Identifier", + "src": "58870:7:1" + } + ], + "id": 3296, + "name": "FunctionCall", + "src": "58842:36:1" + } + ], + "id": 3297, + "name": "EmitStatement", + "src": "58837:41:1" + } + ], + "id": 3298, + "name": "Block", + "src": "58407:478:1" + } + ], + "id": 3299, + "name": "FunctionDefinition", + "src": "58358:527:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_transfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3300, + "name": "StructuredDocumentation", + "src": "58891:313:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3301, + "name": "ElementaryTypeName", + "src": "59228:7:1" + } + ], + "id": 3302, + "name": "VariableDeclaration", + "src": "59228:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3303, + "name": "ElementaryTypeName", + "src": "59242:7:1" + } + ], + "id": 3304, + "name": "VariableDeclaration", + "src": "59242:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3305, + "name": "ElementaryTypeName", + "src": "59254:7:1" + } + ], + "id": 3306, + "name": "VariableDeclaration", + "src": "59254:15:1" + } + ], + "id": 3307, + "name": "ParameterList", + "src": "59227:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3308, + "name": "ParameterList", + "src": "59288:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3309, + "name": "Identifier", + "src": "59298:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3310, + "name": "Identifier", + "src": "59306:6:1" + } + ], + "id": 3311, + "name": "MemberAccess", + "src": "59306:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3312, + "name": "Identifier", + "src": "59321:7:1" + } + ], + "id": 3313, + "name": "FunctionCall", + "src": "59306:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3314, + "name": "Identifier", + "src": "59333:4:1" + } + ], + "id": 3315, + "name": "BinaryOperation", + "src": "59306:31:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer of token that is not own\"", + "value": "ERC721: transfer of token that is not own" + }, + "id": 3316, + "name": "Literal", + "src": "59339:43:1" + } + ], + "id": 3317, + "name": "FunctionCall", + "src": "59298:85:1" + } + ], + "id": 3318, + "name": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3319, + "name": "Identifier", + "src": "59411:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3320, + "name": "Identifier", + "src": "59419:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3321, + "name": "ElementaryTypeName", + "src": "59425:7:1" + } + ], + "id": 3322, + "name": "ElementaryTypeNameExpression", + "src": "59425:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3323, + "name": "Literal", + "src": "59433:1:1" + } + ], + "id": 3324, + "name": "FunctionCall", + "src": "59425:10:1" + } + ], + "id": 3325, + "name": "BinaryOperation", + "src": "59419:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to the zero address\"", + "value": "ERC721: transfer to the zero address" + }, + "id": 3326, + "name": "Literal", + "src": "59437:38:1" + } + ], + "id": 3327, + "name": "FunctionCall", + "src": "59411:65:1" + } + ], + "id": 3328, + "name": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3329, + "name": "Identifier", + "src": "59487:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3330, + "name": "Identifier", + "src": "59508:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3331, + "name": "Identifier", + "src": "59514:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3332, + "name": "Identifier", + "src": "59518:7:1" + } + ], + "id": 3333, + "name": "FunctionCall", + "src": "59487:39:1" + } + ], + "id": 3334, + "name": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3335, + "name": "Identifier", + "src": "59588:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3336, + "name": "ElementaryTypeName", + "src": "59597:7:1" + } + ], + "id": 3337, + "name": "ElementaryTypeNameExpression", + "src": "59597:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3338, + "name": "Literal", + "src": "59605:1:1" + } + ], + "id": 3339, + "name": "FunctionCall", + "src": "59597:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3340, + "name": "Identifier", + "src": "59609:7:1" + } + ], + "id": 3341, + "name": "FunctionCall", + "src": "59588:29:1" + } + ], + "id": 3342, + "name": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3343, + "name": "Identifier", + "src": "59628:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3344, + "name": "Identifier", + "src": "59642:4:1" + } + ], + "id": 3345, + "name": "IndexAccess", + "src": "59628:19:1" + } + ], + "id": 3346, + "name": "MemberAccess", + "src": "59628:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3347, + "name": "Identifier", + "src": "59655:7:1" + } + ], + "id": 3348, + "name": "FunctionCall", + "src": "59628:35:1" + } + ], + "id": 3349, + "name": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3350, + "name": "Identifier", + "src": "59673:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3351, + "name": "Identifier", + "src": "59687:2:1" + } + ], + "id": 3352, + "name": "IndexAccess", + "src": "59673:17:1" + } + ], + "id": 3353, + "name": "MemberAccess", + "src": "59673:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3354, + "name": "Identifier", + "src": "59695:7:1" + } + ], + "id": 3355, + "name": "FunctionCall", + "src": "59673:30:1" + } + ], + "id": 3356, + "name": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3357, + "name": "Identifier", + "src": "59714:12:1" + } + ], + "id": 3359, + "name": "MemberAccess", + "src": "59714:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3360, + "name": "Identifier", + "src": "59731:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3361, + "name": "Identifier", + "src": "59740:2:1" + } + ], + "id": 3362, + "name": "FunctionCall", + "src": "59714:29:1" + } + ], + "id": 3363, + "name": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3364, + "name": "Identifier", + "src": "59759:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3365, + "name": "Identifier", + "src": "59768:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3366, + "name": "Identifier", + "src": "59774:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3367, + "name": "Identifier", + "src": "59778:7:1" + } + ], + "id": 3368, + "name": "FunctionCall", + "src": "59759:27:1" + } + ], + "id": 3369, + "name": "EmitStatement", + "src": "59754:32:1" + } + ], + "id": 3370, + "name": "Block", + "src": "59288:505:1" + } + ], + "id": 3371, + "name": "FunctionDefinition", + "src": "59209:584:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setTokenURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3372, + "name": "StructuredDocumentation", + "src": "59799:136:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3393, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3373, + "name": "ElementaryTypeName", + "src": "59962:7:1" + } + ], + "id": 3374, + "name": "VariableDeclaration", + "src": "59962:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 3393, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3375, + "name": "ElementaryTypeName", + "src": "59979:6:1" + } + ], + "id": 3376, + "name": "VariableDeclaration", + "src": "59979:23:1" + } + ], + "id": 3377, + "name": "ParameterList", + "src": "59961:42:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3378, + "name": "ParameterList", + "src": "60021:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3379, + "name": "Identifier", + "src": "60031:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3380, + "name": "Identifier", + "src": "60039:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3381, + "name": "Identifier", + "src": "60047:7:1" + } + ], + "id": 3382, + "name": "FunctionCall", + "src": "60039:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI set of nonexistent token\"", + "value": "ERC721Metadata: URI set of nonexistent token" + }, + "id": 3383, + "name": "Literal", + "src": "60057:46:1" + } + ], + "id": 3384, + "name": "FunctionCall", + "src": "60031:73:1" + } + ], + "id": 3385, + "name": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3386, + "name": "Identifier", + "src": "60114:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3387, + "name": "Identifier", + "src": "60125:7:1" + } + ], + "id": 3388, + "name": "IndexAccess", + "src": "60114:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3376, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 3389, + "name": "Identifier", + "src": "60136:9:1" + } + ], + "id": 3390, + "name": "Assignment", + "src": "60114:31:1" + } + ], + "id": 3391, + "name": "ExpressionStatement", + "src": "60114:31:1" + } + ], + "id": 3392, + "name": "Block", + "src": "60021:131:1" + } + ], + "id": 3393, + "name": "FunctionDefinition", + "src": "59940:212:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setBaseURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3394, + "name": "StructuredDocumentation", + "src": "60158:212:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "baseURI_", + "scope": 3404, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3395, + "name": "ElementaryTypeName", + "src": "60396:6:1" + } + ], + "id": 3396, + "name": "VariableDeclaration", + "src": "60396:22:1" + } + ], + "id": 3397, + "name": "ParameterList", + "src": "60395:24:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3398, + "name": "ParameterList", + "src": "60437:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 3399, + "name": "Identifier", + "src": "60447:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3396, + "type": "string memory", + "value": "baseURI_" + }, + "id": 3400, + "name": "Identifier", + "src": "60458:8:1" + } + ], + "id": 3401, + "name": "Assignment", + "src": "60447:19:1" + } + ], + "id": 3402, + "name": "ExpressionStatement", + "src": "60447:19:1" + } + ], + "id": 3403, + "name": "Block", + "src": "60437:36:1" + } + ], + "id": 3404, + "name": "FunctionDefinition", + "src": "60375:98:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_checkOnERC721Received", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3405, + "name": "StructuredDocumentation", + "src": "60479:542:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3406, + "name": "ElementaryTypeName", + "src": "61058:7:1" + } + ], + "id": 3407, + "name": "VariableDeclaration", + "src": "61058:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3408, + "name": "ElementaryTypeName", + "src": "61072:7:1" + } + ], + "id": 3409, + "name": "VariableDeclaration", + "src": "61072:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3410, + "name": "ElementaryTypeName", + "src": "61084:7:1" + } + ], + "id": 3411, + "name": "VariableDeclaration", + "src": "61084:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3462, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3412, + "name": "ElementaryTypeName", + "src": "61101:5:1" + } + ], + "id": 3413, + "name": "VariableDeclaration", + "src": "61101:18:1" + } + ], + "id": 3414, + "name": "ParameterList", + "src": "61057:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3415, + "name": "ElementaryTypeName", + "src": "61146:4:1" + } + ], + "id": 3416, + "name": "VariableDeclaration", + "src": "61146:4:1" + } + ], + "id": 3417, + "name": "ParameterList", + "src": "61145:6:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isContract", + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3418, + "name": "Identifier", + "src": "61171:2:1" + } + ], + "id": 3419, + "name": "MemberAccess", + "src": "61171:13:1" + } + ], + "id": 3420, + "name": "FunctionCall", + "src": "61171:15:1" + } + ], + "id": 3421, + "name": "UnaryOperation", + "src": "61170:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 3422, + "name": "Literal", + "src": "61209:4:1" + } + ], + "id": 3423, + "name": "Return", + "src": "61202:11:1" + } + ], + "id": 3424, + "name": "Block", + "src": "61188:36:1" + } + ], + "id": 3425, + "name": "IfStatement", + "src": "61166:58:1" + }, + { + "attributes": { + "assignments": [ + 3427 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 3461, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3426, + "name": "ElementaryTypeName", + "src": "61233:5:1" + } + ], + "id": 3427, + "name": "VariableDeclaration", + "src": "61233:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "functionCall", + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3428, + "name": "Identifier", + "src": "61259:2:1" + } + ], + "id": 3429, + "name": "MemberAccess", + "src": "61259:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodeWithSelector", + "type": "function (bytes4) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3430, + "name": "Identifier", + "src": "61275:3:1" + } + ], + "id": 3431, + "name": "MemberAccess", + "src": "61275:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "selector", + "type": "bytes4" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "onERC721Received", + "referencedDeclaration": 725, + "type": "function (address,address,uint256,bytes memory) external returns (bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "contract IERC721Receiver", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 726, + "type": "type(contract IERC721Receiver)", + "value": "IERC721Receiver" + }, + "id": 3432, + "name": "Identifier", + "src": "61311:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3433, + "name": "Identifier", + "src": "61327:2:1" + } + ], + "id": 3434, + "name": "FunctionCall", + "src": "61311:19:1" + } + ], + "id": 3435, + "name": "MemberAccess", + "src": "61311:36:1" + } + ], + "id": 3436, + "name": "MemberAccess", + "src": "61311:45:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3437, + "name": "Identifier", + "src": "61370:10:1" + } + ], + "id": 3438, + "name": "FunctionCall", + "src": "61370:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3407, + "type": "address", + "value": "from" + }, + "id": 3439, + "name": "Identifier", + "src": "61396:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3411, + "type": "uint256", + "value": "tokenId" + }, + "id": 3440, + "name": "Identifier", + "src": "61414:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3413, + "type": "bytes memory", + "value": "_data" + }, + "id": 3441, + "name": "Identifier", + "src": "61435:5:1" + } + ], + "id": 3442, + "name": "FunctionCall", + "src": "61275:175:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3443, + "name": "Literal", + "src": "61452:52:1" + } + ], + "id": 3444, + "name": "FunctionCall", + "src": "61259:246:1" + } + ], + "id": 3445, + "name": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "attributes": { + "assignments": [ + 3447 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "retval", + "scope": 3461, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 3446, + "name": "ElementaryTypeName", + "src": "61515:6:1" + } + ], + "id": 3447, + "name": "VariableDeclaration", + "src": "61515:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes4", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "decode", + "type": "function () pure" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3448, + "name": "Identifier", + "src": "61531:3:1" + } + ], + "id": 3449, + "name": "MemberAccess", + "src": "61531:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3427, + "type": "bytes memory", + "value": "returndata" + }, + "id": 3450, + "name": "Identifier", + "src": "61542:10:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "name": "bytes4" + }, + "id": 3451, + "name": "ElementaryTypeName", + "src": "61555:6:1" + } + ], + "id": 3452, + "name": "ElementaryTypeNameExpression", + "src": "61555:6:1" + } + ], + "id": 3453, + "name": "TupleExpression", + "src": "61554:8:1" + } + ], + "id": 3454, + "name": "FunctionCall", + "src": "61531:32:1" + } + ], + "id": 3455, + "name": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3447, + "type": "bytes4", + "value": "retval" + }, + "id": 3456, + "name": "Identifier", + "src": "61581:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2596, + "type": "bytes4", + "value": "_ERC721_RECEIVED" + }, + "id": 3457, + "name": "Identifier", + "src": "61591:16:1" + } + ], + "id": 3458, + "name": "BinaryOperation", + "src": "61581:26:1" + } + ], + "id": 3459, + "name": "TupleExpression", + "src": "61580:28:1" + } + ], + "id": 3460, + "name": "Return", + "src": "61573:35:1" + } + ], + "id": 3461, + "name": "Block", + "src": "61156:459:1" + } + ], + "id": 3462, + "name": "FunctionDefinition", + "src": "61026:589:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3463, + "name": "StructuredDocumentation", + "src": "61621:101:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3464, + "name": "ElementaryTypeName", + "src": "61745:7:1" + } + ], + "id": 3465, + "name": "VariableDeclaration", + "src": "61745:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3466, + "name": "ElementaryTypeName", + "src": "61757:7:1" + } + ], + "id": 3467, + "name": "VariableDeclaration", + "src": "61757:15:1" + } + ], + "id": 3468, + "name": "ParameterList", + "src": "61744:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3469, + "name": "ParameterList", + "src": "61791:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 3470, + "name": "Identifier", + "src": "61801:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3471, + "name": "Identifier", + "src": "61817:7:1" + } + ], + "id": 3472, + "name": "IndexAccess", + "src": "61801:24:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3473, + "name": "Identifier", + "src": "61828:2:1" + } + ], + "id": 3474, + "name": "Assignment", + "src": "61801:29:1" + } + ], + "id": 3475, + "name": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 563, + "type": "function (address,address,uint256)", + "value": "Approval" + }, + "id": 3476, + "name": "Identifier", + "src": "61845:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3477, + "name": "Identifier", + "src": "61854:6:1" + } + ], + "id": 3478, + "name": "MemberAccess", + "src": "61854:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3479, + "name": "Identifier", + "src": "61869:7:1" + } + ], + "id": 3480, + "name": "FunctionCall", + "src": "61854:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3481, + "name": "Identifier", + "src": "61879:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3482, + "name": "Identifier", + "src": "61883:7:1" + } + ], + "id": 3483, + "name": "FunctionCall", + "src": "61845:46:1" + } + ], + "id": 3484, + "name": "EmitStatement", + "src": "61840:51:1" + } + ], + "id": 3485, + "name": "Block", + "src": "61791:125:1" + } + ], + "id": 3486, + "name": "FunctionDefinition", + "src": "61727:189:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_beforeTokenTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3487, + "name": "StructuredDocumentation", + "src": "61922:585:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3488, + "name": "ElementaryTypeName", + "src": "62542:7:1" + } + ], + "id": 3489, + "name": "VariableDeclaration", + "src": "62542:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3490, + "name": "ElementaryTypeName", + "src": "62556:7:1" + } + ], + "id": 3491, + "name": "VariableDeclaration", + "src": "62556:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3492, + "name": "ElementaryTypeName", + "src": "62568:7:1" + } + ], + "id": 3493, + "name": "VariableDeclaration", + "src": "62568:15:1" + } + ], + "id": 3494, + "name": "ParameterList", + "src": "62541:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3495, + "name": "ParameterList", + "src": "62602:0:1" + }, + { + "attributes": { + "statements": [ + null + ] + }, + "children": [], + "id": 3496, + "name": "Block", + "src": "62602:3:1" + } + ], + "id": 3497, + "name": "FunctionDefinition", + "src": "62512:93:1" + } + ], + "id": 3498, + "name": "ContractDefinition", + "src": "46080:16527:1" + } + ], + "id": 3499, + "name": "SourceUnit", + "src": "84:62524:1" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-13T11:18:07.741Z", + "devdoc": { + "details": "Interface of the ERC165 standard, as defined in the https://eips.ethereum.org/EIPS/eip-165[EIP]. Implementers can declare support of contract interfaces, which can then be queried by others ({ERC165Checker}). For an implementation, see {ERC165}.", + "kind": "dev", + "methods": { + "supportsInterface(bytes4)": { + "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/abis/IERC721.json b/src/abis/IERC721.json new file mode 100644 index 0000000..4a7b2c2 --- /dev/null +++ b/src/abis/IERC721.json @@ -0,0 +1,77886 @@ +{ + "contractName": "IERC721", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "_approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Required interface of an ERC721 compliant contract.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":\"IERC721\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":{\"keccak256\":\"0xac9220652f9879c5fb3116025d59e8fbf6c2c3d149aed9f617b88edd31402044\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48de100723de94a6590c6db5bae5098a93445194389c3f3eeb104c7239ef3044\",\"dweb:/ipfs/QmVHLEtfLqBqX7XQRHfLuuwtufRBFJFHfgY4zbFRpaZwXC\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "", + "deployedSourceMap": "", + "source": "// SPDX-License-Identifier: MIT\n\n// File: @openzeppelin/contracts/utils/Context.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\n\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Enumerable is IERC721 {\n\n /**\n * @dev Returns the total amount of tokens stored by the contract.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);\n\n /**\n * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n * Use along with {totalSupply} to enumerate all tokens.\n */\n function tokenByIndex(uint256 index) external view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\npragma solidity >=0.6.0 <0.8.0;\n\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts may inherit from this and call {_registerInterface} to declare\n * their support of an interface.\n */\nabstract contract ERC165 is IERC165 {\n /*\n * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7\n */\n bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;\n\n /**\n * @dev Mapping of interface ids to whether or not it's supported.\n */\n mapping(bytes4 => bool) private _supportedInterfaces;\n\n constructor () {\n // Derived contracts need only register support for their own interfaces,\n // we register support for ERC165 itself here\n _registerInterface(_INTERFACE_ID_ERC165);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n *\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return _supportedInterfaces[interfaceId];\n }\n\n /**\n * @dev Registers the contract as an implementer of the interface defined by\n * `interfaceId`. Support of the actual ERC165 interface is automatic and\n * registering its interface id is not required.\n *\n * See {IERC165-supportsInterface}.\n *\n * Requirements:\n *\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).\n */\n function _registerInterface(bytes4 interfaceId) internal virtual {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the substraction of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n return a - b;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) return 0;\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: division by zero\");\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: modulo by zero\");\n return a % b;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {trySub}.\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryDiv}.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting with custom message when dividing by zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryMod}.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a % b;\n }\n}\n\n// File: @openzeppelin/contracts/utils/Address.sol\npragma solidity >=0.6.2 <0.8.0;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n // solhint-disable-next-line no-inline-assembly\n assembly { size := extcodesize(account) }\n return size > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: value }(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.staticcall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableSet.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) { // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n bytes32 lastvalue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastvalue;\n // Update the index for the moved value\n set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n require(set._values.length > index, \"EnumerableSet: index out of bounds\");\n return set._values[index];\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableMap.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing an enumerable variant of Solidity's\n * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n * type.\n *\n * Maps have the following properties:\n *\n * - Entries are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Entries are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableMap for EnumerableMap.UintToAddressMap;\n *\n * // Declare a set state variable\n * EnumerableMap.UintToAddressMap private myMap;\n * }\n * ```\n *\n * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n * supported.\n */\nlibrary EnumerableMap {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Map type with\n // bytes32 keys and values.\n // The Map implementation uses private functions, and user-facing\n // implementations (such as Uint256ToAddressMap) are just wrappers around\n // the underlying Map.\n // This means that we can only create new EnumerableMaps for types that fit\n // in bytes32.\n\n struct MapEntry {\n bytes32 _key;\n bytes32 _value;\n }\n\n struct Map {\n // Storage of map keys and values\n MapEntry[] _entries;\n\n // Position of the entry defined by a key in the `entries` array, plus 1\n // because index 0 means a key is not in the map.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex == 0) { // Equivalent to !contains(map, key)\n map._entries.push(MapEntry({ _key: key, _value: value }));\n // The entry is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n map._indexes[key] = map._entries.length;\n return true;\n } else {\n map._entries[keyIndex - 1]._value = value;\n return false;\n }\n }\n\n /**\n * @dev Removes a key-value pair from a map. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function _remove(Map storage map, bytes32 key) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex != 0) { // Equivalent to contains(map, key)\n // To delete a key-value pair from the _entries array in O(1), we swap the entry to delete with the last one\n // in the array, and then remove the last entry (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = keyIndex - 1;\n uint256 lastIndex = map._entries.length - 1;\n\n // When the entry to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n MapEntry storage lastEntry = map._entries[lastIndex];\n\n // Move the last entry to the index where the entry to delete is\n map._entries[toDeleteIndex] = lastEntry;\n // Update the index for the moved entry\n map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved entry was stored\n map._entries.pop();\n\n // Delete the index for the deleted slot\n delete map._indexes[key];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function _contains(Map storage map, bytes32 key) private view returns (bool) {\n return map._indexes[key] != 0;\n }\n\n /**\n * @dev Returns the number of key-value pairs in the map. O(1).\n */\n function _length(Map storage map) private view returns (uint256) {\n return map._entries.length;\n }\n\n /**\n * @dev Returns the key-value pair stored at position `index` in the map. O(1).\n *\n * Note that there are no guarantees on the ordering of entries inside the\n * array, and it may change when more entries are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) {\n require(map._entries.length > index, \"EnumerableMap: index out of bounds\");\n\n MapEntry storage entry = map._entries[index];\n return (entry._key, entry._value);\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n */\n function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) {\n uint256 keyIndex = map._indexes[key];\n if (keyIndex == 0) return (false, 0); // Equivalent to contains(map, key)\n return (true, map._entries[keyIndex - 1]._value); // All indexes are 1-based\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function _get(Map storage map, bytes32 key) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, \"EnumerableMap: nonexistent key\"); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n /**\n * @dev Same as {_get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {_tryGet}.\n */\n function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n // UintToAddressMap\n\n struct UintToAddressMap {\n Map _inner;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) {\n return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {\n return _remove(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {\n return _contains(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns the number of elements in the map. O(1).\n */\n function length(UintToAddressMap storage map) internal view returns (uint256) {\n return _length(map._inner);\n }\n\n /**\n * @dev Returns the element stored at position `index` in the set. O(1).\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {\n (bytes32 key, bytes32 value) = _at(map._inner, index);\n return (uint256(key), address(uint160(uint256(value))));\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n *\n * _Available since v3.4._\n */\n function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) {\n (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key));\n return (success, address(uint160(uint256(value))));\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key)))));\n }\n\n /**\n * @dev Same as {get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryGet}.\n */\n function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage))));\n }\n}\n\n// File: @openzeppelin/contracts/utils/Strings.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n /**\n * @dev Converts a `uint256` to its ASCII `string` representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n uint256 index = digits - 1;\n temp = value;\n while (temp != 0) {\n buffer[index--] = bytes1(uint8(48 + temp % 10));\n temp /= 10;\n }\n return string(buffer);\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 Non-Fungible Token Standard basic implementation\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable {\n using SafeMath for uint256;\n using Address for address;\n using EnumerableSet for EnumerableSet.UintSet;\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n using Strings for uint256;\n\n // Equals to `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n // which can be also obtained as `IERC721Receiver(0).onERC721Received.selector`\n bytes4 private constant _ERC721_RECEIVED = 0x150b7a02;\n\n // Mapping from holder address to their (enumerable) set of owned tokens\n mapping (address => EnumerableSet.UintSet) private _holderTokens;\n\n // Enumerable mapping from token ids to their owners\n EnumerableMap.UintToAddressMap private _tokenOwners;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Optional mapping for token URIs\n mapping (uint256 => string) private _tokenURIs;\n\n // Base URI\n string private _baseURI;\n\n /*\n * bytes4(keccak256('balanceOf(address)')) == 0x70a08231\n * bytes4(keccak256('ownerOf(uint256)')) == 0x6352211e\n * bytes4(keccak256('approve(address,uint256)')) == 0x095ea7b3\n * bytes4(keccak256('getApproved(uint256)')) == 0x081812fc\n * bytes4(keccak256('setApprovalForAll(address,bool)')) == 0xa22cb465\n * bytes4(keccak256('isApprovedForAll(address,address)')) == 0xe985e9c5\n * bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde\n *\n * => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^\n * 0xa22cb465 ^ 0xe985e9c5 ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n /*\n * bytes4(keccak256('name()')) == 0x06fdde03\n * bytes4(keccak256('symbol()')) == 0x95d89b41\n * bytes4(keccak256('tokenURI(uint256)')) == 0xc87b56dd\n *\n * => 0x06fdde03 ^ 0x95d89b41 ^ 0xc87b56dd == 0x5b5e139f\n */\n bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f;\n\n /*\n * bytes4(keccak256('totalSupply()')) == 0x18160ddd\n * bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) == 0x2f745c59\n * bytes4(keccak256('tokenByIndex(uint256)')) == 0x4f6ccce7\n *\n * => 0x18160ddd ^ 0x2f745c59 ^ 0x4f6ccce7 == 0x780e9d63\n */\n bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor (string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n return _holderTokens[owner].length();\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n return _tokenOwners.get(tokenId, \"ERC721: owner query for nonexistent token\");\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).\n if (bytes(_tokenURI).length > 0) {\n return string(abi.encodePacked(base, _tokenURI));\n }\n // If there is a baseURI but no tokenURI, concatenate the tokenID to the baseURI.\n return string(abi.encodePacked(base, tokenId.toString()));\n }\n\n /**\n * @dev Returns the base URI set via {_setBaseURI}. This will be\n * automatically added as a prefix in {tokenURI} to each token's URI, or\n * to the token ID if no specific URI is set for that token ID.\n */\n function baseURI() public view virtual returns (string memory) {\n return _baseURI;\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\n return _holderTokens[owner].at(index);\n }\n\n /**\n * @dev See {IERC721Enumerable-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n // _tokenOwners are indexed by tokenIds, so .length() returns the number of tokenIds\n return _tokenOwners.length();\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenByIndex}.\n */\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\n (uint256 tokenId, ) = _tokenOwners.at(index);\n return tokenId;\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(_msgSender() == owner || ERC721.isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n require(operator != _msgSender(), \"ERC721: approve to caller\");\n\n _operatorApprovals[_msgSender()][operator] = approved;\n emit ApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n _safeTransfer(from, to, tokenId, _data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `_data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _tokenOwners.contains(tokenId);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || ERC721.isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n d*\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory _data) internal virtual {\n _mint(to, tokenId);\n require(_checkOnERC721Received(address(0), to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId);\n\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId); // internal owner\n\n _beforeTokenTransfer(owner, address(0), tokenId);\n\n // Clear approvals\n _approve(address(0), tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n\n _holderTokens[owner].remove(tokenId);\n\n _tokenOwners.remove(tokenId);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\"); // internal owner\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId);\n\n // Clear approvals from the previous owner\n _approve(address(0), tokenId);\n\n _holderTokens[from].remove(tokenId);\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = _tokenURI;\n }\n\n /**\n * @dev Internal function to set the base URI for all token IDs. It is\n * automatically added as a prefix to the value returned in {tokenURI},\n * or to the token ID if {tokenURI} is empty.\n */\n function _setBaseURI(string memory baseURI_) internal virtual {\n _baseURI = baseURI_;\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data)\n private returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n bytes memory returndata = to.functionCall(abi.encodeWithSelector(\n IERC721Receiver(to).onERC721Received.selector,\n _msgSender(),\n from,\n tokenId,\n _data\n ), \"ERC721: transfer to non ERC721Receiver implementer\");\n bytes4 retval = abi.decode(returndata, (bytes4));\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits an {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId); // internal owner\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n * transferred to `to`.\n * - When `from` is zero, `tokenId` will be minted for `to`.\n * - When `to` is zero, ``from``'s `tokenId` will be burned.\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual { }\n}\n", + "sourcePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "ast": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "id": 3499, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 509, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "84:31:1" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 530, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 517, + "nodeType": "Block", + "src": "719:34:1", + "statements": [ + { + "expression": { + "expression": { + "id": 514, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "736:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "736:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 513, + "id": 516, + "nodeType": "Return", + "src": "729:17:1" + } + ] + }, + "id": 518, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 510, + "nodeType": "ParameterList", + "parameters": [], + "src": "668:2:1" + }, + "returnParameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 518, + "src": "702:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "702:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "701:17:1" + }, + "scope": 530, + "src": "649:104:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 528, + "nodeType": "Block", + "src": "824:165:1", + "statements": [ + { + "expression": { + "id": 523, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "834:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 524, + "nodeType": "ExpressionStatement", + "src": "834:4:1" + }, + { + "expression": { + "expression": { + "id": 525, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "974:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "src": "974:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 522, + "id": 527, + "nodeType": "Return", + "src": "967:15:1" + } + ] + }, + "id": 529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 519, + "nodeType": "ParameterList", + "parameters": [], + "src": "776:2:1" + }, + "returnParameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "810:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 520, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "810:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "809:14:1" + }, + "scope": 530, + "src": "759:230:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "617:374:1" + }, + { + "id": 531, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1053:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 532, + "nodeType": "StructuredDocumentation", + "src": "1086:279:1", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 541, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 533, + "nodeType": "StructuredDocumentation", + "src": "1390:340:1", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 540, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1762:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 534, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1762:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1761:20:1" + }, + "returnParameters": { + "id": 539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1805:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1805:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1804:6:1" + }, + "scope": 541, + "src": "1735:76:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1366:447:1" + }, + { + "id": 542, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1873:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 544, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "1996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 545, + "nodeType": "InheritanceSpecifier", + "src": "1996:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "1907:67:1", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 655, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 546, + "nodeType": "StructuredDocumentation", + "src": "2010:88:1", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 554, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 548, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2118:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 550, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2140:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2140:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 552, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2160:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2117:67:1" + }, + "src": "2103:82:1" + }, + { + "anonymous": false, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "2191:94:1", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 563, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 557, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2305:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2305:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 559, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2328:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 561, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2354:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2354:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2304:74:1" + }, + "src": "2290:89:1" + }, + { + "anonymous": false, + "documentation": { + "id": 564, + "nodeType": "StructuredDocumentation", + "src": "2385:117:1", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 572, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 566, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2528:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2528:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2551:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2551:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 570, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2577:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 569, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2577:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2527:64:1" + }, + "src": "2507:85:1" + }, + { + "documentation": { + "id": 573, + "nodeType": "StructuredDocumentation", + "src": "2598:76:1", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2698:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 574, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2698:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2697:15:1" + }, + "returnParameters": { + "id": 579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2736:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2735:17:1" + }, + "scope": 655, + "src": "2679:74:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 581, + "nodeType": "StructuredDocumentation", + "src": "2759:131:1", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 588, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 583, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2912:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2912:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2911:17:1" + }, + "returnParameters": { + "id": 587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2952:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2951:15:1" + }, + "scope": 655, + "src": "2895:72:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 589, + "nodeType": "StructuredDocumentation", + "src": "2973:690:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 598, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 591, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3694:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3694:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3708:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3708:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3720:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3720:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3693:43:1" + }, + "returnParameters": { + "id": 597, + "nodeType": "ParameterList", + "parameters": [], + "src": "3745:0:1" + }, + "scope": 655, + "src": "3668:78:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 599, + "nodeType": "StructuredDocumentation", + "src": "3752:504:1", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 608, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 601, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4283:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4283:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 603, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4297:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 602, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4297:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4309:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4309:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4282:43:1" + }, + "returnParameters": { + "id": 607, + "nodeType": "ParameterList", + "parameters": [], + "src": "4334:0:1" + }, + "scope": 655, + "src": "4261:74:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 609, + "nodeType": "StructuredDocumentation", + "src": "4341:452:1", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 616, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 611, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4815:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4815:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4827:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4814:29:1" + }, + "returnParameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [], + "src": "4852:0:1" + }, + "scope": 655, + "src": "4798:55:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 617, + "nodeType": "StructuredDocumentation", + "src": "4859:139:1", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 619, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5024:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5024:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5023:17:1" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5064:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5064:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5063:18:1" + }, + "scope": 655, + "src": "5003:79:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 625, + "nodeType": "StructuredDocumentation", + "src": "5088:309:1", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 632, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5429:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5429:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5447:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 628, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5447:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5428:34:1" + }, + "returnParameters": { + "id": 631, + "nodeType": "ParameterList", + "parameters": [], + "src": "5471:0:1" + }, + "scope": 655, + "src": "5402:70:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 633, + "nodeType": "StructuredDocumentation", + "src": "5478:138:1", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 642, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5647:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5647:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5662:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5662:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5646:33:1" + }, + "returnParameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5703:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 639, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5703:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5702:6:1" + }, + "scope": 655, + "src": "5621:88:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 643, + "nodeType": "StructuredDocumentation", + "src": "5715:568:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 654, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6314:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6314:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6328:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6340:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6340:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6357:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 650, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6357:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6313:64:1" + }, + "returnParameters": { + "id": 653, + "nodeType": "ParameterList", + "parameters": [], + "src": "6386:0:1" + }, + "scope": 655, + "src": "6288:99:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1975:4414:1" + }, + { + "id": 656, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "6457:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 658, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "6654:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 659, + "nodeType": "InheritanceSpecifier", + "src": "6654:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 657, + "nodeType": "StructuredDocumentation", + "src": "6491:133:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 680, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 660, + "nodeType": "StructuredDocumentation", + "src": "6669:58:1", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 665, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [], + "src": "6745:2:1" + }, + "returnParameters": { + "id": 664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 663, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 665, + "src": "6771:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 662, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6771:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6770:15:1" + }, + "scope": 680, + "src": "6732:54:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 666, + "nodeType": "StructuredDocumentation", + "src": "6792:60:1", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 671, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 667, + "nodeType": "ParameterList", + "parameters": [], + "src": "6872:2:1" + }, + "returnParameters": { + "id": 670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 669, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "6898:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 668, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6897:15:1" + }, + "scope": 680, + "src": "6857:56:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 672, + "nodeType": "StructuredDocumentation", + "src": "6919:90:1", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 679, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7032:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7031:17:1" + }, + "returnParameters": { + "id": 678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7072:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 676, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7072:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7071:15:1" + }, + "scope": 680, + "src": "7014:73:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "6625:464:1" + }, + { + "id": 681, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "7161:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 683, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "7363:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 684, + "nodeType": "InheritanceSpecifier", + "src": "7363:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 682, + "nodeType": "StructuredDocumentation", + "src": "7195:136:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 709, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 685, + "nodeType": "StructuredDocumentation", + "src": "7378:82:1", + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "functionSelector": "18160ddd", + "id": 690, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 686, + "nodeType": "ParameterList", + "parameters": [], + "src": "7485:2:1" + }, + "returnParameters": { + "id": 689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 688, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "7511:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 687, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7511:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7510:9:1" + }, + "scope": 709, + "src": "7465:55:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "7526:171:1", + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "functionSelector": "2f745c59", + "id": 700, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7731:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7731:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7746:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7746:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7730:30:1" + }, + "returnParameters": { + "id": 699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 698, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7784:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7784:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7783:17:1" + }, + "scope": 709, + "src": "7702:99:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 701, + "nodeType": "StructuredDocumentation", + "src": "7807:164:1", + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "functionSelector": "4f6ccce7", + "id": 708, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 703, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "7998:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7998:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7997:15:1" + }, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "8036:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8036:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8035:9:1" + }, + "scope": 709, + "src": "7976:69:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "7332:715:1" + }, + { + "id": 710, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "8117:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 711, + "nodeType": "StructuredDocumentation", + "src": "8150:152:1", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 726, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 712, + "nodeType": "StructuredDocumentation", + "src": "8335:485:1", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 725, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8851:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8851:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8869:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8883:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8900:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 719, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8900:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8850:70:1" + }, + "returnParameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8939:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 722, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8939:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "8938:8:1" + }, + "scope": 726, + "src": "8825:122:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "8303:646:1" + }, + { + "id": 727, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9009:31:1" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 729, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "9243:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 730, + "nodeType": "InheritanceSpecifier", + "src": "9243:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "documentation": { + "id": 728, + "nodeType": "StructuredDocumentation", + "src": "9043:171:1", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "fullyImplemented": true, + "id": 781, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 733, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9340:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 731, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9340:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783031666663396137", + "id": 732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "9404:82:1", + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 738, + "mutability": "mutable", + "name": "_supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9491:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 737, + "keyType": { + "id": 735, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9499:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "9491:23:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 736, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9509:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 745, + "nodeType": "Block", + "src": "9565:193:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 742, + "name": "_INTERFACE_ID_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "9730:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 741, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "9711:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9711:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 744, + "nodeType": "ExpressionStatement", + "src": "9711:40:1" + } + ] + }, + "id": 746, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 739, + "nodeType": "ParameterList", + "parameters": [], + "src": "9562:2:1" + }, + "returnParameters": { + "id": 740, + "nodeType": "ParameterList", + "parameters": [], + "src": "9565:0:1" + }, + "scope": 781, + "src": "9550:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 540 + ], + "body": { + "id": 759, + "nodeType": "Block", + "src": "9999:57:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 755, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10016:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 757, + "indexExpression": { + "id": 756, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "10037:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10016:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 754, + "id": 758, + "nodeType": "Return", + "src": "10009:40:1" + } + ] + }, + "documentation": { + "id": 747, + "nodeType": "StructuredDocumentation", + "src": "9764:139:1", + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 760, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 751, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9975:8:1" + }, + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9935:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 748, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9935:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "9934:20:1" + }, + "returnParameters": { + "id": 754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 753, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9993:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9993:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9992:6:1" + }, + "scope": 781, + "src": "9908:148:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 779, + "nodeType": "Block", + "src": "10515:133:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 767, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10533:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10548:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "10533:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10560:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + }, + "value": "ERC165: invalid interface id" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "id": 766, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "10525:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10525:66:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 772, + "nodeType": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "expression": { + "id": 777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 773, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10601:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 775, + "indexExpression": { + "id": 774, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10622:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10637:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10601:40:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 778, + "nodeType": "ExpressionStatement", + "src": "10601:40:1" + } + ] + }, + "documentation": { + "id": 761, + "nodeType": "StructuredDocumentation", + "src": "10062:383:1", + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 780, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 763, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 780, + "src": "10478:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 762, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "10478:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "10477:20:1" + }, + "returnParameters": { + "id": 765, + "nodeType": "ParameterList", + "parameters": [], + "src": "10515:0:1" + }, + "scope": 781, + "src": "10450:198:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "9215:1435:1" + }, + { + "id": 782, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10703:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 783, + "nodeType": "StructuredDocumentation", + "src": "10736:563:1", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 1135, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 813, + "nodeType": "Block", + "src": "11535:98:1", + "statements": [ + { + "assignments": [ + 796 + ], + "declarations": [ + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 813, + "src": "11545:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 795, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 800, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 797, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11557:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "11561:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11557:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 801, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11576:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 802, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11580:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11576:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 808, + "nodeType": "IfStatement", + "src": "11572:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11591:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11598:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 806, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11590:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 794, + "id": 807, + "nodeType": "Return", + "src": "11583:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11618:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 810, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11624:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 811, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11617:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 794, + "id": 812, + "nodeType": "Return", + "src": "11610:16:1" + } + ] + }, + "documentation": { + "id": 784, + "nodeType": "StructuredDocumentation", + "src": "11323:131:1", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 814, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11475:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11475:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11486:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11486:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11474:22:1" + }, + "returnParameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 791, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11526:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 792, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11526:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11519:15:1" + }, + "scope": 1135, + "src": "11459:174:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 840, + "nodeType": "Block", + "src": "11855:75:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 826, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11869:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 827, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11873:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11869:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 833, + "nodeType": "IfStatement", + "src": "11865:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11884:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 831, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11883:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 825, + "id": 832, + "nodeType": "Return", + "src": "11876:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11911:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 835, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11917:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 836, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11921:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11917:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 838, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11910:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 825, + "id": 839, + "nodeType": "Return", + "src": "11903:20:1" + } + ] + }, + "documentation": { + "id": 815, + "nodeType": "StructuredDocumentation", + "src": "11639:135:1", + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 841, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 817, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11795:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11795:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 819, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11806:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11806:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11794:22:1" + }, + "returnParameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11840:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 821, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11840:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 824, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11846:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11846:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11839:15:1" + }, + "scope": 1135, + "src": "11779:151:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 881, + "nodeType": "Block", + "src": "12154:359:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 853, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12386:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12391:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12386:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 860, + "nodeType": "IfStatement", + "src": "12382:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12402:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12408:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 858, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12401:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 859, + "nodeType": "Return", + "src": "12394:16:1" + } + }, + { + "assignments": [ + 862 + ], + "declarations": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "12420:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12420:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 866, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12432:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 864, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12436:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12432:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 867, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12451:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 868, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12455:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 870, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12460:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 876, + "nodeType": "IfStatement", + "src": "12447:33:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12471:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12478:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 874, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12470:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 875, + "nodeType": "Return", + "src": "12463:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12498:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 878, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12504:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12497:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 852, + "id": 880, + "nodeType": "Return", + "src": "12490:16:1" + } + ] + }, + "documentation": { + "id": 842, + "nodeType": "StructuredDocumentation", + "src": "11936:137:1", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 844, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12094:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12094:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 846, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12105:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12093:22:1" + }, + "returnParameters": { + "id": 852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12139:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 848, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12139:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12145:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12145:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12138:15:1" + }, + "scope": 1135, + "src": "12078:435:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 908, + "nodeType": "Block", + "src": "12738:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 894, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12752:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12757:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12752:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 901, + "nodeType": "IfStatement", + "src": "12748:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12768:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12775:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 899, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12767:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 893, + "id": 900, + "nodeType": "Return", + "src": "12760:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12795:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 903, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "12801:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 904, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12805:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12801:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 906, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12794:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 893, + "id": 907, + "nodeType": "Return", + "src": "12787:20:1" + } + ] + }, + "documentation": { + "id": 883, + "nodeType": "StructuredDocumentation", + "src": "12519:138:1", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 909, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12678:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12678:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12689:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12689:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12677:22:1" + }, + "returnParameters": { + "id": 893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12723:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 889, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12723:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12729:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12729:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12722:15:1" + }, + "scope": 1135, + "src": "12662:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 935, + "nodeType": "Block", + "src": "13049:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 921, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13063:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13068:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13063:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 928, + "nodeType": "IfStatement", + "src": "13059:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13079:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13086:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 926, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13078:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 920, + "id": 927, + "nodeType": "Return", + "src": "13071:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13106:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 930, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "13112:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 931, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13116:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13112:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13105:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 920, + "id": 934, + "nodeType": "Return", + "src": "13098:20:1" + } + ] + }, + "documentation": { + "id": 910, + "nodeType": "StructuredDocumentation", + "src": "12820:148:1", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 912, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "12989:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12989:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 914, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13000:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 913, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13000:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12988:22:1" + }, + "returnParameters": { + "id": 920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 917, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13034:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 916, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13034:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 919, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13040:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13040:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13033:15:1" + }, + "scope": 1135, + "src": "12973:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 961, + "nodeType": "Block", + "src": "13427:108:1", + "statements": [ + { + "assignments": [ + 947 + ], + "declarations": [ + { + "constant": false, + "id": 947, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "13437:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13437:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 951, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13449:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 949, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 941, + "src": "13453:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13449:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 953, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13472:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 954, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13477:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13480:29:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 952, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13464:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 958, + "nodeType": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "expression": { + "id": 959, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13527:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 945, + "id": 960, + "nodeType": "Return", + "src": "13520:8:1" + } + ] + }, + "documentation": { + "id": 937, + "nodeType": "StructuredDocumentation", + "src": "13131:224:1", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13373:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13384:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13384:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13372:22:1" + }, + "returnParameters": { + "id": 945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13418:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13418:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13417:9:1" + }, + "scope": 1135, + "src": "13360:175:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 983, + "nodeType": "Block", + "src": "13873:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 973, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13896:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13891:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13883:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 979, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13949:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 980, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13953:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13949:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 971, + "id": 982, + "nodeType": "Return", + "src": "13942:12:1" + } + ] + }, + "documentation": { + "id": 963, + "nodeType": "StructuredDocumentation", + "src": "13541:260:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 984, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13819:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 964, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 967, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13830:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13830:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13818:22:1" + }, + "returnParameters": { + "id": 971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 970, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13864:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13864:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13863:9:1" + }, + "scope": 1135, + "src": "13806:155:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "14275:148:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 994, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14289:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14294:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14289:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "IfStatement", + "src": "14285:20:1", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14304:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 993, + "id": 998, + "nodeType": "Return", + "src": "14297:8:1" + } + }, + { + "assignments": [ + 1001 + ], + "declarations": [ + { + "constant": false, + "id": 1001, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "14315:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14315:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1005, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1002, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14327:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1003, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14331:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14327:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1007, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14350:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1008, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14354:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1010, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14359:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14362:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1006, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14342:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14342:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "expression": { + "id": 1015, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14415:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 993, + "id": 1016, + "nodeType": "Return", + "src": "14408:8:1" + } + ] + }, + "documentation": { + "id": 985, + "nodeType": "StructuredDocumentation", + "src": "13967:236:1", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14221:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 989, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14232:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 988, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14232:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14220:22:1" + }, + "returnParameters": { + "id": 993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 992, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14266:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14266:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14265:9:1" + }, + "scope": 1135, + "src": "14208:215:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1039, + "nodeType": "Block", + "src": "14954:83:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1029, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "14972:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14976:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14972:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14979:28:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14964:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14964:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1034, + "nodeType": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1035, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1021, + "src": "15025:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1036, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "15029:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15025:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1027, + "id": 1038, + "nodeType": "Return", + "src": "15018:12:1" + } + ] + }, + "documentation": { + "id": 1019, + "nodeType": "StructuredDocumentation", + "src": "14429:453:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1040, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1021, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14900:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14900:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1023, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14911:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14899:22:1" + }, + "returnParameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1026, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14945:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14945:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14944:9:1" + }, + "scope": 1135, + "src": "14887:150:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1061, + "nodeType": "Block", + "src": "15557:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1051, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15575:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15579:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15582:26:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 1050, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "15567:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15567:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1056, + "nodeType": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1057, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1043, + "src": "15626:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1058, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15630:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15626:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1049, + "id": 1060, + "nodeType": "Return", + "src": "15619:12:1" + } + ] + }, + "documentation": { + "id": 1041, + "nodeType": "StructuredDocumentation", + "src": "15043:442:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1062, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1043, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15503:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1045, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15514:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15502:22:1" + }, + "returnParameters": { + "id": 1049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1048, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15548:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15548:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15547:9:1" + }, + "scope": 1135, + "src": "15490:148:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1085, + "nodeType": "Block", + "src": "16197:68:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16215:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1076, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16220:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16215:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1078, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "16223:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1074, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "16207:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16207:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1080, + "nodeType": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16253:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1082, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16257:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16253:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1073, + "id": 1084, + "nodeType": "Return", + "src": "16246:12:1" + } + ] + }, + "documentation": { + "id": 1063, + "nodeType": "StructuredDocumentation", + "src": "15644:453:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1086, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16115:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16115:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16126:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16137:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1068, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16137:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16114:50:1" + }, + "returnParameters": { + "id": 1073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16188:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16188:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16187:9:1" + }, + "scope": 1135, + "src": "16102:163:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1109, + "nodeType": "Block", + "src": "17017:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1099, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17035:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17039:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17035:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1102, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1093, + "src": "17042:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17027:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17027:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1105, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "17072:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1106, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17076:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17072:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1097, + "id": 1108, + "nodeType": "Return", + "src": "17065:12:1" + } + ] + }, + "documentation": { + "id": 1087, + "nodeType": "StructuredDocumentation", + "src": "16271:646:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16935:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16935:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16946:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16946:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1093, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16957:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1092, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16957:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16934:50:1" + }, + "returnParameters": { + "id": 1097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1096, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "17008:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17008:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17007:9:1" + }, + "scope": 1135, + "src": "16922:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1133, + "nodeType": "Block", + "src": "17825:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1123, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17843:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17847:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17843:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1126, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "17850:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17835:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1128, + "nodeType": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1129, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "17880:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1130, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17880:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1121, + "id": 1132, + "nodeType": "Return", + "src": "17873:12:1" + } + ] + }, + "documentation": { + "id": 1111, + "nodeType": "StructuredDocumentation", + "src": "17090:635:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17743:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17743:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17754:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17754:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17765:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1116, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17765:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17742:50:1" + }, + "returnParameters": { + "id": 1121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17816:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17816:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17815:9:1" + }, + "scope": 1135, + "src": "17730:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "11300:6594:1" + }, + { + "id": 1136, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "17947:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1137, + "nodeType": "StructuredDocumentation", + "src": "17980:67:1", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 1430, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1153, + "nodeType": "Block", + "src": "18706:347:1", + "statements": [ + { + "assignments": [ + 1146 + ], + "declarations": [ + { + "constant": false, + "id": 1146, + "mutability": "mutable", + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 1153, + "src": "18903:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18903:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1147, + "nodeType": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "18990:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18992:28:1", + "value": { + "arguments": [ + { + "name": "account", + "nodeType": "YulIdentifier", + "src": "19012:7:1" + } + ], + "functionName": { + "name": "extcodesize", + "nodeType": "YulIdentifier", + "src": "19000:11:1" + }, + "nodeType": "YulFunctionCall", + "src": "19000:20:1" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "18992:4:1" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "id": 1148, + "nodeType": "InlineAssembly", + "src": "18981:41:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1149, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "19038:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19045:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19038:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1144, + "id": 1152, + "nodeType": "Return", + "src": "19031:15:1" + } + ] + }, + "documentation": { + "id": 1138, + "nodeType": "StructuredDocumentation", + "src": "18070:565:1", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1154, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1140, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18660:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18660:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18659:17:1" + }, + "returnParameters": { + "id": 1144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1143, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18700:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1142, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18700:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "18699:6:1" + }, + "scope": 1430, + "src": "18640:413:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1187, + "nodeType": "Block", + "src": "20041:320:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1165, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "20067:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20059:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1163, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20059:7:1", + "typeDescriptions": {} + } + }, + "id": 1166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20059:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "20059:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1168, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20084:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20059:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20092:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 1162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20051:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1172, + "nodeType": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "assignments": [ + 1174, + null + ], + "declarations": [ + { + "constant": false, + "id": 1174, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1187, + "src": "20213:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1173, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20213:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1181, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20263:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 1175, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1157, + "src": "20231:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "20231:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1177, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20254:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "20231:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20231:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1183, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "20284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20293:60:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 1182, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20276:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20276:78:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1186, + "nodeType": "ExpressionStatement", + "src": "20276:78:1" + } + ] + }, + "documentation": { + "id": 1155, + "nodeType": "StructuredDocumentation", + "src": "19059:906:1", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1188, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1157, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "19989:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19989:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1159, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "20016:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19988:43:1" + }, + "returnParameters": { + "id": 1161, + "nodeType": "ParameterList", + "parameters": [], + "src": "20041:0:1" + }, + "scope": 1430, + "src": "19970:391:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1204, + "nodeType": "Block", + "src": "21191:82:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1199, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "21219:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1200, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "21227:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21233:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 1198, + "name": "functionCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "src": "21206:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21206:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1197, + "id": 1203, + "nodeType": "Return", + "src": "21199:67:1" + } + ] + }, + "documentation": { + "id": 1189, + "nodeType": "StructuredDocumentation", + "src": "20367:730:1", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1205, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21124:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21124:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21140:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1192, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21140:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21123:35:1" + }, + "returnParameters": { + "id": 1197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1196, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21177:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1195, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21176:14:1" + }, + "scope": 1430, + "src": "21102:171:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1224, + "nodeType": "Block", + "src": "21612:76:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1218, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "21651:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1219, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "21659:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21665:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 1221, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "21668:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1217, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "21629:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21629:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1216, + "id": 1223, + "nodeType": "Return", + "src": "21622:59:1" + } + ] + }, + "documentation": { + "id": 1206, + "nodeType": "StructuredDocumentation", + "src": "21279:211:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1208, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21517:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21517:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21533:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1209, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21533:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1212, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21552:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1211, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "21552:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "21516:63:1" + }, + "returnParameters": { + "id": 1216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1215, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21598:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1214, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21598:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21597:14:1" + }, + "scope": 1430, + "src": "21495:193:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1244, + "nodeType": "Block", + "src": "22163:111:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1238, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "22202:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1239, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "22210:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1240, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1232, + "src": "22216:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22223:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 1237, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "22180:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22180:87:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1236, + "id": 1243, + "nodeType": "Return", + "src": "22173:94:1" + } + ] + }, + "documentation": { + "id": 1226, + "nodeType": "StructuredDocumentation", + "src": "21694:351:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1245, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1228, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22081:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22081:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1230, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22097:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1229, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22097:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1232, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22116:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "22080:50:1" + }, + "returnParameters": { + "id": 1236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1235, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22149:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1234, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22149:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22148:14:1" + }, + "scope": 1430, + "src": "22050:224:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1294, + "nodeType": "Block", + "src": "22663:382:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1262, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "22689:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22681:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22681:7:1", + "typeDescriptions": {} + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22681:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "22681:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1265, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22706:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22681:30:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 1267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22713:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 1259, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22673:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22673:81:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1269, + "nodeType": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1272, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22783:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1271, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "22772:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22772:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22792:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 1270, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22764:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22764:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1276, + "nodeType": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "assignments": [ + 1278, + 1280 + ], + "declarations": [ + { + "constant": false, + "id": 1278, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22895:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1277, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22895:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1280, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22909:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1279, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22909:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1287, + "initialValue": { + "arguments": [ + { + "id": 1285, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1250, + "src": "22964:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1281, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22936:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "22936:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1283, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22956:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "22936:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22936:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1289, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "23004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1290, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1280, + "src": "23013:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1291, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "23025:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1288, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "22986:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22986:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1258, + "id": 1293, + "nodeType": "Return", + "src": "22979:59:1" + } + ] + }, + "documentation": { + "id": 1246, + "nodeType": "StructuredDocumentation", + "src": "22280:237:1", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1295, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1248, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22553:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22553:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1250, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22569:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1249, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22569:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1252, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22588:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22588:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1254, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22603:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1253, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "22603:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "22552:78:1" + }, + "returnParameters": { + "id": 1258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1257, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22649:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1256, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22649:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22648:14:1" + }, + "scope": 1430, + "src": "22522:523:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1311, + "nodeType": "Block", + "src": "23322:97:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1306, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1298, + "src": "23358:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1307, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "23366:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23372:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 1305, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "src": "23339:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23339:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1304, + "id": 1310, + "nodeType": "Return", + "src": "23332:80:1" + } + ] + }, + "documentation": { + "id": 1296, + "nodeType": "StructuredDocumentation", + "src": "23051:166:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1298, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23250:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23250:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23266:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1299, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23266:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23249:35:1" + }, + "returnParameters": { + "id": 1304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1303, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23308:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23308:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23307:14:1" + }, + "scope": 1430, + "src": "23222:197:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1346, + "nodeType": "Block", + "src": "23731:288:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1326, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1325, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "23749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23749:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23769:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + }, + "value": "Address: static call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "id": 1324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "23741:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23741:67:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1330, + "nodeType": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "assignments": [ + 1332, + 1334 + ], + "declarations": [ + { + "constant": false, + "id": 1332, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23879:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1331, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23879:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1334, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23893:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1333, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23893:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1339, + "initialValue": { + "arguments": [ + { + "id": 1337, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "23938:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1335, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23920:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "23920:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23920:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1341, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "23978:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1342, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1334, + "src": "23987:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1343, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "23999:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1340, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "23960:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23960:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1323, + "id": 1345, + "nodeType": "Return", + "src": "23953:59:1" + } + ] + }, + "documentation": { + "id": 1313, + "nodeType": "StructuredDocumentation", + "src": "23425:173:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1315, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23631:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23631:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1317, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23647:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1316, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23647:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1319, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23666:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1318, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "23666:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "23630:63:1" + }, + "returnParameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1322, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23717:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1321, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23717:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23716:14:1" + }, + "scope": 1430, + "src": "23603:416:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1363, + "nodeType": "Block", + "src": "24295:101:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1358, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "24333:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1359, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "24341:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24347:41:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 1357, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "src": "24312:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24312:77:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1356, + "id": 1362, + "nodeType": "Return", + "src": "24305:84:1" + } + ] + }, + "documentation": { + "id": 1348, + "nodeType": "StructuredDocumentation", + "src": "24025:168:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1364, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1350, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24228:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24244:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1351, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24227:35:1" + }, + "returnParameters": { + "id": 1356, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1355, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24281:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1354, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24281:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24280:14:1" + }, + "scope": 1430, + "src": "24198:198:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1398, + "nodeType": "Block", + "src": "24707:292:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1378, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24736:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1377, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "24725:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24725:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24745:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + }, + "value": "Address: delegate call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "id": 1376, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "24717:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24717:69:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1382, + "nodeType": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "assignments": [ + 1384, + 1386 + ], + "declarations": [ + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24857:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1383, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "24857:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24871:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1385, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24871:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1391, + "initialValue": { + "arguments": [ + { + "id": 1389, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1369, + "src": "24918:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1387, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "24898:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24898:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1393, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1384, + "src": "24958:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1394, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1386, + "src": "24967:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1395, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1371, + "src": "24979:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1392, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "24940:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24940:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1375, + "id": 1397, + "nodeType": "Return", + "src": "24933:59:1" + } + ] + }, + "documentation": { + "id": 1365, + "nodeType": "StructuredDocumentation", + "src": "24402:175:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1399, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1367, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24612:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24612:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1369, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24628:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1368, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24628:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1371, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24647:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1370, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "24647:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "24611:63:1" + }, + "returnParameters": { + "id": 1375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1374, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24693:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1373, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24693:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24692:14:1" + }, + "scope": 1430, + "src": "24582:417:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1428, + "nodeType": "Block", + "src": "25134:596:1", + "statements": [ + { + "condition": { + "id": 1410, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "25148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1426, + "nodeType": "Block", + "src": "25205:519:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1414, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25289:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "25289:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25309:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25289:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1424, + "nodeType": "Block", + "src": "25661:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1421, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1405, + "src": "25686:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1420, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "25679:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25679:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1423, + "nodeType": "ExpressionStatement", + "src": "25679:20:1" + } + ] + }, + "id": 1425, + "nodeType": "IfStatement", + "src": "25285:429:1", + "trueBody": { + "id": 1419, + "nodeType": "Block", + "src": "25312:343:1", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "25496:145:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "25518:40:1", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25547:10:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "25541:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "25541:17:1" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "25522:15:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25590:2:1", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25594:10:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25586:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "25586:19:1" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "25607:15:1" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "25579:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "25579:44:1" + }, + "nodeType": "YulExpressionStatement", + "src": "25579:44:1" + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "id": 1418, + "nodeType": "InlineAssembly", + "src": "25487:154:1" + } + ] + } + } + ] + }, + "id": 1427, + "nodeType": "IfStatement", + "src": "25144:580:1", + "trueBody": { + "id": 1413, + "nodeType": "Block", + "src": "25157:42:1", + "statements": [ + { + "expression": { + "id": 1411, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25178:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1409, + "id": 1412, + "nodeType": "Return", + "src": "25171:17:1" + } + ] + } + } + ] + }, + "id": 1429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1401, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25032:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1400, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "25032:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1403, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25046:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1402, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25046:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1405, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25071:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1404, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "25071:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "25031:67:1" + }, + "returnParameters": { + "id": 1409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1408, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25120:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1407, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25120:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "25119:14:1" + }, + "scope": 1430, + "src": "25005:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3499, + "src": "18048:7684:1" + }, + { + "id": 1431, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "25791:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1432, + "nodeType": "StructuredDocumentation", + "src": "25824:686:1", + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "fullyImplemented": true, + "id": 1921, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableSet.Set", + "id": 1440, + "members": [ + { + "constant": false, + "id": 1435, + "mutability": "mutable", + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27033:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1433, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27033:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1434, + "nodeType": "ArrayTypeName", + "src": "27033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1439, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27184:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1438, + "keyType": { + "id": 1436, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "27184:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "26979:249:1", + "visibility": "public" + }, + { + "body": { + "id": 1480, + "nodeType": "Block", + "src": "27467:335:1", + "statements": [ + { + "condition": { + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "27481:22:1", + "subExpression": { + "arguments": [ + { + "id": 1451, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27492:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + { + "id": 1452, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27497:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1450, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "27482:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27482:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1478, + "nodeType": "Block", + "src": "27759:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27780:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1449, + "id": 1477, + "nodeType": "Return", + "src": "27773:12:1" + } + ] + }, + "id": 1479, + "nodeType": "IfStatement", + "src": "27477:319:1", + "trueBody": { + "id": 1475, + "nodeType": "Block", + "src": "27505:248:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1460, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27536:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "expression": { + "id": 1455, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1458, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27519:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "27519:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 1461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27519:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1462, + "nodeType": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "expression": { + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1463, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27677:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "27677:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1467, + "indexExpression": { + "id": 1465, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27690:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "27677:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1468, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27699:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1469, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27699:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "27699:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27677:40:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1472, + "nodeType": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27738:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1449, + "id": 1474, + "nodeType": "Return", + "src": "27731:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1441, + "nodeType": "StructuredDocumentation", + "src": "27234:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1481, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27412:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1442, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27412:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1445, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27429:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1444, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27411:32:1" + }, + "returnParameters": { + "id": 1449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1447, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "27461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "27460:6:1" + }, + "scope": 1921, + "src": "27398:404:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1560, + "nodeType": "Block", + "src": "28042:1440:1", + "statements": [ + { + "assignments": [ + 1492 + ], + "declarations": [ + { + "constant": false, + "id": 1492, + "mutability": "mutable", + "name": "valueIndex", + "nodeType": "VariableDeclaration", + "scope": 1560, + "src": "28152:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28152:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1497, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1493, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28173:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1494, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "28173:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1496, + "indexExpression": { + "id": 1495, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "28186:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28173:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1498, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28207:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28221:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28207:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1558, + "nodeType": "Block", + "src": "29439:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29460:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1490, + "id": 1557, + "nodeType": "Return", + "src": "29453:12:1" + } + ] + }, + "id": 1559, + "nodeType": "IfStatement", + "src": "28203:1273:1", + "trueBody": { + "id": 1555, + "nodeType": "Block", + "src": "28224:1209:1", + "statements": [ + { + "assignments": [ + 1502 + ], + "declarations": [ + { + "constant": false, + "id": 1502, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28564:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28564:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1506, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1503, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28588:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28588:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "assignments": [ + 1508 + ], + "declarations": [ + { + "constant": false, + "id": 1508, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28616:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28616:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1514, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1509, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28636:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28636:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "28636:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28657:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28636:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "assignments": [ + 1516 + ], + "declarations": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "lastvalue", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28898:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1515, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28898:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1521, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1517, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28918:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1520, + "indexExpression": { + "id": 1519, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "28930:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28918:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "expression": { + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1522, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29032:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1525, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29032:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1526, + "indexExpression": { + "id": 1524, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29044:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29032:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1527, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29061:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "29032:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1529, + "nodeType": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "expression": { + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1530, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29136:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1533, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29136:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1534, + "indexExpression": { + "id": 1532, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29149:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29136:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1535, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29162:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29178:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "29162:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29136:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1539, + "nodeType": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 1540, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29285:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "29285:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29285:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1546, + "nodeType": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "expression": { + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "29370:26:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 1547, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29377:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29377:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1550, + "indexExpression": { + "id": 1549, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "29390:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29377:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1552, + "nodeType": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29418:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1490, + "id": 1554, + "nodeType": "Return", + "src": "29411:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1482, + "nodeType": "StructuredDocumentation", + "src": "27808:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1561, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "27987:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1483, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27987:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1486, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28004:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1485, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27986:32:1" + }, + "returnParameters": { + "id": 1490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28036:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1488, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "28036:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "28035:6:1" + }, + "scope": 1921, + "src": "27970:1512:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1578, + "nodeType": "Block", + "src": "29642:48:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 1571, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "29659:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29659:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1574, + "indexExpression": { + "id": 1573, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "29672:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29659:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29682:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "29659:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1570, + "id": 1577, + "nodeType": "Return", + "src": "29652:31:1" + } + ] + }, + "documentation": { + "id": 1562, + "nodeType": "StructuredDocumentation", + "src": "29488:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1579, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1564, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29582:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1563, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29582:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29599:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1565, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "29599:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "29581:32:1" + }, + "returnParameters": { + "id": 1570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29636:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "29636:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "29635:6:1" + }, + "scope": 1921, + "src": "29563:127:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1591, + "nodeType": "Block", + "src": "29836:42:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 1587, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1582, + "src": "29853:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1588, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29853:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "29853:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1586, + "id": 1590, + "nodeType": "Return", + "src": "29846:25:1" + } + ] + }, + "documentation": { + "id": 1580, + "nodeType": "StructuredDocumentation", + "src": "29696:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1582, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29788:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1581, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29788:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "src": "29787:17:1" + }, + "returnParameters": { + "id": 1586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1585, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29827:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29826:9:1" + }, + "scope": 1921, + "src": "29771:107:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1616, + "nodeType": "Block", + "src": "30286:125:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1603, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30304:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30304:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "30304:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1606, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30325:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30304:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30332:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + }, + "value": "EnumerableSet: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "id": 1602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "30296:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30296:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1610, + "nodeType": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 1611, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30386:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30386:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1614, + "indexExpression": { + "id": 1613, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30398:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30386:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1601, + "id": 1615, + "nodeType": "Return", + "src": "30379:25:1" + } + ] + }, + "documentation": { + "id": 1593, + "nodeType": "StructuredDocumentation", + "src": "29883:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1617, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1595, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30223:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1594, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30223:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30240:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30240:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30222:32:1" + }, + "returnParameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1600, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30277:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1599, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30276:9:1" + }, + "scope": 1921, + "src": "30210:201:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableSet.Bytes32Set", + "id": 1620, + "members": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "30464:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1618, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30464:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "30436:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1636, + "nodeType": "Block", + "src": "30727:47:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1631, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "30749:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "30749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1625, + "src": "30761:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1630, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "30744:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30744:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1629, + "id": 1635, + "nodeType": "Return", + "src": "30737:30:1" + } + ] + }, + "documentation": { + "id": 1621, + "nodeType": "StructuredDocumentation", + "src": "30487:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30664:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1622, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30664:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30688:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1624, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30688:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30663:39:1" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30721:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "30721:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "30720:6:1" + }, + "scope": 1921, + "src": "30651:123:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1653, + "nodeType": "Block", + "src": "31021:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1648, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "31046:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31046:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1650, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "31058:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1647, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "31038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31038:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1646, + "id": 1652, + "nodeType": "Return", + "src": "31031:33:1" + } + ] + }, + "documentation": { + "id": 1638, + "nodeType": "StructuredDocumentation", + "src": "30780:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1654, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30958:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1639, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30958:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30982:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1641, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30982:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30957:39:1" + }, + "returnParameters": { + "id": 1646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1645, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "31015:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31015:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31014:6:1" + }, + "scope": 1921, + "src": "30942:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1670, + "nodeType": "Block", + "src": "31238:52:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1665, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1657, + "src": "31265:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31265:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1667, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1659, + "src": "31277:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1664, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "31255:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31255:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1663, + "id": 1669, + "nodeType": "Return", + "src": "31248:35:1" + } + ] + }, + "documentation": { + "id": 1655, + "nodeType": "StructuredDocumentation", + "src": "31077:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1671, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1657, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31170:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1656, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31170:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31194:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1658, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31194:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31169:39:1" + }, + "returnParameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1662, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31232:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1661, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31232:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31231:6:1" + }, + "scope": 1921, + "src": "31152:138:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "31443:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1680, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1674, + "src": "31468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1681, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31468:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1679, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "31460:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31460:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1678, + "id": 1683, + "nodeType": "Return", + "src": "31453:26:1" + } + ] + }, + "documentation": { + "id": 1672, + "nodeType": "StructuredDocumentation", + "src": "31296:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1685, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1674, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31387:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1673, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + } + ], + "src": "31386:24:1" + }, + "returnParameters": { + "id": 1678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31434:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31434:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31433:9:1" + }, + "scope": 1921, + "src": "31371:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1701, + "nodeType": "Block", + "src": "31901:46:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1696, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1688, + "src": "31922:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1697, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31922:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1698, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "31934:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1695, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "31918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31918:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1694, + "id": 1700, + "nodeType": "Return", + "src": "31911:29:1" + } + ] + }, + "documentation": { + "id": 1686, + "nodeType": "StructuredDocumentation", + "src": "31491:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1688, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31830:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1687, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31830:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1690, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31854:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31854:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31829:39:1" + }, + "returnParameters": { + "id": 1694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31892:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1692, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31892:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31891:9:1" + }, + "scope": 1921, + "src": "31818:129:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.AddressSet", + "id": 1705, + "members": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1705, + "src": "32000:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1703, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "32000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "31972:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1730, + "nodeType": "Block", + "src": "32263:74:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1716, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1708, + "src": "32285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32285:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "32321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32313:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1722, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32313:7:1", + "typeDescriptions": {} + } + }, + "id": 1725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32313:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32305:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1720, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32305:7:1", + "typeDescriptions": {} + } + }, + "id": 1726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32305:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1718, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32297:7:1", + "typeDescriptions": {} + } + }, + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32297:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1715, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "32280:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32280:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1714, + "id": 1729, + "nodeType": "Return", + "src": "32273:57:1" + } + ] + }, + "documentation": { + "id": 1706, + "nodeType": "StructuredDocumentation", + "src": "32023:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1731, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1708, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32200:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1707, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32200:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32224:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32224:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32199:39:1" + }, + "returnParameters": { + "id": 1714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1713, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32257:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1712, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32257:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32256:6:1" + }, + "scope": 1921, + "src": "32187:150:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1756, + "nodeType": "Block", + "src": "32584:77:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1742, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "32609:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1743, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32609:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1750, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "32645:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32637:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1748, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32637:7:1", + "typeDescriptions": {} + } + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32637:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32629:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32629:7:1", + "typeDescriptions": {} + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32629:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32621:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1744, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32621:7:1", + "typeDescriptions": {} + } + }, + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32621:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1741, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "32601:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32601:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1740, + "id": 1755, + "nodeType": "Return", + "src": "32594:60:1" + } + ] + }, + "documentation": { + "id": 1732, + "nodeType": "StructuredDocumentation", + "src": "32343:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1757, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1734, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32521:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1733, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32521:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1736, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32545:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32545:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32520:39:1" + }, + "returnParameters": { + "id": 1740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1739, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32578:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1738, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32578:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32577:6:1" + }, + "scope": 1921, + "src": "32505:156:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1782, + "nodeType": "Block", + "src": "32828:79:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1768, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1760, + "src": "32855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1776, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1762, + "src": "32891:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1774, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32883:7:1", + "typeDescriptions": {} + } + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32883:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32875:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32875:7:1", + "typeDescriptions": {} + } + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32875:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1770, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32867:7:1", + "typeDescriptions": {} + } + }, + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32867:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1767, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "32845:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32845:55:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1766, + "id": 1781, + "nodeType": "Return", + "src": "32838:62:1" + } + ] + }, + "documentation": { + "id": 1758, + "nodeType": "StructuredDocumentation", + "src": "32667:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1783, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1760, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32760:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1759, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32760:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1762, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32784:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32784:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32759:39:1" + }, + "returnParameters": { + "id": 1766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1765, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32822:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1764, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32822:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32821:6:1" + }, + "scope": 1921, + "src": "32742:165:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1796, + "nodeType": "Block", + "src": "33060:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1792, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1786, + "src": "33085:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33085:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1791, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "33077:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33077:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1790, + "id": 1795, + "nodeType": "Return", + "src": "33070:26:1" + } + ] + }, + "documentation": { + "id": 1784, + "nodeType": "StructuredDocumentation", + "src": "32913:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1797, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1786, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33004:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1785, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33004:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + } + ], + "src": "33003:24:1" + }, + "returnParameters": { + "id": 1790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1789, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33050:9:1" + }, + "scope": 1921, + "src": "32988:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1822, + "nodeType": "Block", + "src": "33518:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1814, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "33563:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33563:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1816, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "33575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1813, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "33559:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33559:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33551:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33551:7:1", + "typeDescriptions": {} + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33551:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33543:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1809, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "33543:7:1", + "typeDescriptions": {} + } + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33543:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33535:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33535:7:1", + "typeDescriptions": {} + } + }, + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33535:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 1806, + "id": 1821, + "nodeType": "Return", + "src": "33528:56:1" + } + ] + }, + "documentation": { + "id": 1798, + "nodeType": "StructuredDocumentation", + "src": "33108:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1823, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1800, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33447:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1799, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33447:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1802, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33471:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33471:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33446:39:1" + }, + "returnParameters": { + "id": 1806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33509:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33509:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "33508:9:1" + }, + "scope": 1921, + "src": "33435:156:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.UintSet", + "id": 1826, + "members": [ + { + "constant": false, + "id": 1825, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1826, + "src": "33639:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1824, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "33639:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "UintSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "33614:42:1", + "visibility": "public" + }, + { + "body": { + "id": 1845, + "nodeType": "Block", + "src": "33899:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1837, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1829, + "src": "33921:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "33921:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1841, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "33941:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33933:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1839, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "33933:7:1", + "typeDescriptions": {} + } + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33933:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1836, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "33916:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33916:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1835, + "id": 1844, + "nodeType": "Return", + "src": "33909:39:1" + } + ] + }, + "documentation": { + "id": 1827, + "nodeType": "StructuredDocumentation", + "src": "33662:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1846, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1829, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33839:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1828, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "33839:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1831, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33860:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33860:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33838:36:1" + }, + "returnParameters": { + "id": 1835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1834, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33893:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1833, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "33893:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "33892:6:1" + }, + "scope": 1921, + "src": "33826:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1865, + "nodeType": "Block", + "src": "34199:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1857, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1849, + "src": "34224:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34224:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1861, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "34244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34236:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1859, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34236:7:1", + "typeDescriptions": {} + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34236:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1856, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "34216:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34216:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1855, + "id": 1864, + "nodeType": "Return", + "src": "34209:42:1" + } + ] + }, + "documentation": { + "id": 1847, + "nodeType": "StructuredDocumentation", + "src": "33961:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1849, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34139:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1848, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34139:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1851, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34160:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34138:36:1" + }, + "returnParameters": { + "id": 1855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1854, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34193:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1853, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34193:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34192:6:1" + }, + "scope": 1921, + "src": "34123:135:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1885, + "nodeType": "Block", + "src": "34422:61:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1877, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1869, + "src": "34449:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34449:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1881, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "34469:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1879, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34461:7:1", + "typeDescriptions": {} + } + }, + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34461:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1876, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "34439:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34439:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1875, + "id": 1884, + "nodeType": "Return", + "src": "34432:44:1" + } + ] + }, + "documentation": { + "id": 1867, + "nodeType": "StructuredDocumentation", + "src": "34264:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1886, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1869, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34357:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1868, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34378:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34378:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34356:36:1" + }, + "returnParameters": { + "id": 1875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1874, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34416:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1873, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34416:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34415:6:1" + }, + "scope": 1921, + "src": "34339:144:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1899, + "nodeType": "Block", + "src": "34633:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1895, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1889, + "src": "34658:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34658:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1894, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "34650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34650:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1893, + "id": 1898, + "nodeType": "Return", + "src": "34643:26:1" + } + ] + }, + "documentation": { + "id": 1887, + "nodeType": "StructuredDocumentation", + "src": "34489:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1900, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1889, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34580:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1888, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + } + ], + "src": "34579:21:1" + }, + "returnParameters": { + "id": 1893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34624:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34623:9:1" + }, + "scope": 1921, + "src": "34564:112:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1919, + "nodeType": "Block", + "src": "35088:55:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1913, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "35117:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "35117:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1915, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1905, + "src": "35129:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1912, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "35113:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35113:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "35105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35105:7:1", + "typeDescriptions": {} + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35105:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1909, + "id": 1918, + "nodeType": "Return", + "src": "35098:38:1" + } + ] + }, + "documentation": { + "id": 1901, + "nodeType": "StructuredDocumentation", + "src": "34681:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1920, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35020:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1902, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "35020:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1905, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35041:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35041:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35019:36:1" + }, + "returnParameters": { + "id": 1909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1908, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35079:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1907, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35079:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35078:9:1" + }, + "scope": 1921, + "src": "35008:135:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "26511:8634:1" + }, + { + "id": 1922, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "35204:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1923, + "nodeType": "StructuredDocumentation", + "src": "35237:705:1", + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "fullyImplemented": true, + "id": 2480, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableMap.MapEntry", + "id": 1928, + "members": [ + { + "constant": false, + "id": 1925, + "mutability": "mutable", + "name": "_key", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36455:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1924, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1927, + "mutability": "mutable", + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36477:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1926, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36477:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "MapEntry", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36429:69:1", + "visibility": "public" + }, + { + "canonicalName": "EnumerableMap.Map", + "id": 1936, + "members": [ + { + "constant": false, + "id": 1931, + "mutability": "mutable", + "name": "_entries", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36567:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + }, + "typeName": { + "baseType": { + "id": 1929, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "36567:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "id": 1930, + "nodeType": "ArrayTypeName", + "src": "36567:10:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1935, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36736:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1934, + "keyType": { + "id": 1932, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "36736:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "36756:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Map", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36504:276:1", + "visibility": "public" + }, + { + "body": { + "id": 1997, + "nodeType": "Block", + "src": "37089:596:1", + "statements": [ + { + "assignments": [ + 1949 + ], + "declarations": [ + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 1997, + "src": "37197:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "37197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1954, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1950, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1953, + "indexExpression": { + "id": 1952, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37229:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37216:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1955, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37248:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37260:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "37248:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1995, + "nodeType": "Block", + "src": "37587:92:1", + "statements": [ + { + "expression": { + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 1982, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37601:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1987, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37601:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1988, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1984, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37614:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37625:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "37614:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37601:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 1989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "37601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1990, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37637:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "37601:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1992, + "nodeType": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37663:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1947, + "id": 1994, + "nodeType": "Return", + "src": "37656:12:1" + } + ] + }, + "id": 1996, + "nodeType": "IfStatement", + "src": "37244:435:1", + "trueBody": { + "id": 1981, + "nodeType": "Block", + "src": "37263:318:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1964, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37349:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1965, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37362:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1963, + "name": "MapEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1928, + "src": "37332:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_MapEntry_$1928_storage_ptr_$", + "typeString": "type(struct EnumerableMap.MapEntry storage pointer)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "nodeType": "FunctionCall", + "src": "37332:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "expression": { + "expression": { + "id": 1958, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37314:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37314:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "37314:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$1928_storage_$returns$__$", + "typeString": "function (struct EnumerableMap.MapEntry storage ref)" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37314:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1968, + "nodeType": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "expression": { + "id": 1977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1969, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37506:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37506:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1973, + "indexExpression": { + "id": 1971, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "37506:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1974, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37526:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37526:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "37526:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37506:39:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1978, + "nodeType": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37566:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1947, + "id": 1980, + "nodeType": "Return", + "src": "37559:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1937, + "nodeType": "StructuredDocumentation", + "src": "36786:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1998, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37021:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 1938, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37021:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37038:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1940, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1943, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1942, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37020:45:1" + }, + "returnParameters": { + "id": 1947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1946, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37083:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1945, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37083:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37082:6:1" + }, + "scope": 2480, + "src": "37007:678:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2078, + "nodeType": "Block", + "src": "37923:1447:1", + "statements": [ + { + "assignments": [ + 2009 + ], + "declarations": [ + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2078, + "src": "38031:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2014, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2010, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38050:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2011, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "38050:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2013, + "indexExpression": { + "id": 2012, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "38063:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38050:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2015, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38082:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38094:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "38082:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2076, + "nodeType": "Block", + "src": "39327:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39348:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2007, + "id": 2075, + "nodeType": "Return", + "src": "39341:12:1" + } + ] + }, + "id": 2077, + "nodeType": "IfStatement", + "src": "38078:1286:1", + "trueBody": { + "id": 2073, + "nodeType": "Block", + "src": "38097:1224:1", + "statements": [ + { + "assignments": [ + 2019 + ], + "declarations": [ + { + "constant": false, + "id": 2019, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38438:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2023, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2020, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38462:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38473:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38462:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "assignments": [ + 2025 + ], + "declarations": [ + { + "constant": false, + "id": 2025, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38488:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38488:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2031, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2026, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38508:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38508:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "38508:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38530:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38508:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "assignments": [ + 2033 + ], + "declarations": [ + { + "constant": false, + "id": 2033, + "mutability": "mutable", + "name": "lastEntry", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38771:26:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2032, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "38771:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2038, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2034, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38800:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38800:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2037, + "indexExpression": { + "id": 2036, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2025, + "src": "38813:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38800:23:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "expression": { + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2039, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38915:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38915:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2043, + "indexExpression": { + "id": 2041, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "38928:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "38915:27:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2044, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "38945:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "src": "38915:39:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2046, + "nodeType": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2047, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2051, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39020:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2052, + "indexExpression": { + "expression": { + "id": 2049, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "39033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "39033:14:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39020:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2053, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "39051:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39067:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "39051:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39020:48:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 2058, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39174:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2061, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39174:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "39174:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "39174:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2064, + "nodeType": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "expression": { + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "39260:24:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 2065, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39267:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2066, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39267:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2068, + "indexExpression": { + "id": 2067, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "39280:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39267:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2070, + "nodeType": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39306:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2007, + "id": 2072, + "nodeType": "Return", + "src": "39299:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1999, + "nodeType": "StructuredDocumentation", + "src": "37691:157:1", + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2079, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2001, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37870:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2000, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37870:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37887:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2002, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37887:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37869:30:1" + }, + "returnParameters": { + "id": 2007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2006, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37917:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2005, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37917:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37916:6:1" + }, + "scope": 2480, + "src": "37853:1517:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2096, + "nodeType": "Block", + "src": "39526:46:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 2089, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2082, + "src": "39543:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2090, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39543:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2092, + "indexExpression": { + "id": 2091, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2084, + "src": "39556:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "39543:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39564:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "39543:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2088, + "id": 2095, + "nodeType": "Return", + "src": "39536:29:1" + } + ] + }, + "documentation": { + "id": 2080, + "nodeType": "StructuredDocumentation", + "src": "39376:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2082, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39468:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2081, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2084, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39485:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2083, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "39485:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "39467:30:1" + }, + "returnParameters": { + "id": 2088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2087, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2086, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "39520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "39519:6:1" + }, + "scope": 2480, + "src": "39449:123:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2109, + "nodeType": "Block", + "src": "39727:43:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 2105, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "39744:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39744:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "39744:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2104, + "id": 2108, + "nodeType": "Return", + "src": "39737:26:1" + } + ] + }, + "documentation": { + "id": 2098, + "nodeType": "StructuredDocumentation", + "src": "39578:79:1", + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2100, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39679:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2099, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39679:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "src": "39678:17:1" + }, + "returnParameters": { + "id": 2104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2103, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39718:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "39718:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "39717:9:1" + }, + "scope": 2480, + "src": "39662:108:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2144, + "nodeType": "Block", + "src": "40198:189:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2123, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "40216:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2126, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40216:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40245:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + }, + "value": "EnumerableMap: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "id": 2122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "40208:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "40208:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2130, + "nodeType": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "assignments": [ + 2132 + ], + "declarations": [ + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "entry", + "nodeType": "VariableDeclaration", + "scope": 2144, + "src": "40293:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2131, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "40293:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2137, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2133, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40318:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40318:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2136, + "indexExpression": { + "id": 2135, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40331:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40318:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "expression": { + "components": [ + { + "expression": { + "id": 2138, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40355:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2139, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "40355:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 2140, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40367:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40367:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40354:26:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "functionReturnParameters": 2121, + "id": 2143, + "nodeType": "Return", + "src": "40347:33:1" + } + ] + }, + "documentation": { + "id": 2111, + "nodeType": "StructuredDocumentation", + "src": "39775:333:1", + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2145, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2113, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40126:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2112, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40126:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2115, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40143:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40143:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "40125:32:1" + }, + "returnParameters": { + "id": 2121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40180:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40180:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40189:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2119, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40189:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40179:18:1" + }, + "scope": 2480, + "src": "40113:274:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2182, + "nodeType": "Block", + "src": "40613:220:1", + "statements": [ + { + "assignments": [ + 2158 + ], + "declarations": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2182, + "src": "40623:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40623:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2163, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2159, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40642:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "40642:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2162, + "indexExpression": { + "id": 2161, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2150, + "src": "40655:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40642:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2164, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40673:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40685:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "40673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2171, + "nodeType": "IfStatement", + "src": "40669:36:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40696:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40703:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2169, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40695:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2156, + "id": 2170, + "nodeType": "Return", + "src": "40688:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40759:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 2173, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40765:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2174, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40765:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2178, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2175, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40778:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40789:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "40778:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40765:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40765:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2180, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40758:41:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "functionReturnParameters": 2156, + "id": 2181, + "nodeType": "Return", + "src": "40751:48:1" + } + ] + }, + "documentation": { + "id": 2146, + "nodeType": "StructuredDocumentation", + "src": "40393:131:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2183, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2151, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40546:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2147, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40546:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2150, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40563:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2149, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40563:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40545:30:1" + }, + "returnParameters": { + "id": 2156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2153, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40598:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2152, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "40598:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2155, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40604:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2154, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40604:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40597:15:1" + }, + "scope": 2480, + "src": "40529:304:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2215, + "nodeType": "Block", + "src": "41060:232:1", + "statements": [ + { + "assignments": [ + 2194 + ], + "declarations": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2215, + "src": "41070:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41070:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2199, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2195, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41089:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2196, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41089:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2198, + "indexExpression": { + "id": 2197, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2188, + "src": "41102:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41089:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2201, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41124:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41136:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41124:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "id": 2204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41139:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + }, + "value": "EnumerableMap: nonexistent key" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "id": 2200, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41116:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2206, + "nodeType": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2207, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41225:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2208, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41225:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2212, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2209, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41238:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41249:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41238:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41225:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2213, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41225:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2192, + "id": 2214, + "nodeType": "Return", + "src": "41218:40:1" + } + ] + }, + "documentation": { + "id": 2184, + "nodeType": "StructuredDocumentation", + "src": "40839:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2186, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "40999:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2185, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40999:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2188, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41016:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2187, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40998:30:1" + }, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2190, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41050:9:1" + }, + "scope": 2480, + "src": "40985:307:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2250, + "nodeType": "Block", + "src": "41677:212:1", + "statements": [ + { + "assignments": [ + 2229 + ], + "declarations": [ + { + "constant": false, + "id": 2229, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2250, + "src": "41687:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41687:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2234, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2230, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41706:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2231, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41706:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2233, + "indexExpression": { + "id": 2232, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "41719:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41706:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2236, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41741:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41753:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41741:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2239, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2223, + "src": "41756:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2235, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41733:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41733:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2241, + "nodeType": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2242, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41822:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41822:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2247, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2244, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41835:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41846:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41835:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41822:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41822:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2227, + "id": 2249, + "nodeType": "Return", + "src": "41815:40:1" + } + ] + }, + "documentation": { + "id": 2217, + "nodeType": "StructuredDocumentation", + "src": "41298:271:1", + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2251, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2219, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41588:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2218, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41588:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2221, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41605:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2220, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2223, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41618:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2222, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "41618:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "41587:58:1" + }, + "returnParameters": { + "id": 2227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2226, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41668:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2225, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41668:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41667:9:1" + }, + "scope": 2480, + "src": "41574:315:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableMap.UintToAddressMap", + "id": 2254, + "members": [ + { + "constant": false, + "id": 2253, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 2254, + "src": "41954:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2252, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41954:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "name": "UintToAddressMap", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "41920:51:1", + "visibility": "public" + }, + { + "body": { + "id": 2285, + "nodeType": "Block", + "src": "42293:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2267, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "42315:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42315:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2271, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2259, + "src": "42335:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42327:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2269, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42327:7:1", + "typeDescriptions": {} + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42327:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2279, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2261, + "src": "42365:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2277, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "42357:7:1", + "typeDescriptions": {} + } + }, + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42357:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42349:7:1", + "typeDescriptions": {} + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42349:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42341:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42341:7:1", + "typeDescriptions": {} + } + }, + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42341:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2266, + "name": "_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1998, + "src": "42310:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42310:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2265, + "id": 2284, + "nodeType": "Return", + "src": "42303:71:1" + } + ] + }, + "documentation": { + "id": 2255, + "nodeType": "StructuredDocumentation", + "src": "41977:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2286, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2257, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42211:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2256, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42211:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2259, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42241:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2258, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42241:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2261, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42254:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "42254:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "42210:58:1" + }, + "returnParameters": { + "id": 2265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2264, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42287:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2263, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42287:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42286:6:1" + }, + "scope": 2480, + "src": "42198:183:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2305, + "nodeType": "Block", + "src": "42623:57:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2297, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2289, + "src": "42648:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2298, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42648:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2301, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2291, + "src": "42668:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42660:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2299, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42660:7:1", + "typeDescriptions": {} + } + }, + "id": 2302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42660:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2296, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2079, + "src": "42640:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)" + } + }, + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42640:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2295, + "id": 2304, + "nodeType": "Return", + "src": "42633:40:1" + } + ] + }, + "documentation": { + "id": 2287, + "nodeType": "StructuredDocumentation", + "src": "42387:148:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2289, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42556:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2288, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42556:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2291, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42586:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42586:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42555:43:1" + }, + "returnParameters": { + "id": 2295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2294, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42617:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2293, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42617:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42616:6:1" + }, + "scope": 2480, + "src": "42540:140:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2325, + "nodeType": "Block", + "src": "42849:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2317, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2309, + "src": "42876:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42876:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2321, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "42896:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42888:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2319, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42888:7:1", + "typeDescriptions": {} + } + }, + "id": 2322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42888:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2316, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2097, + "src": "42866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42866:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2315, + "id": 2324, + "nodeType": "Return", + "src": "42859:42:1" + } + ] + }, + "documentation": { + "id": 2307, + "nodeType": "StructuredDocumentation", + "src": "42686:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2326, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2309, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42777:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2308, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42777:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2311, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42807:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42807:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42776:43:1" + }, + "returnParameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2314, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42843:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42843:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42842:6:1" + }, + "scope": 2480, + "src": "42759:149:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2339, + "nodeType": "Block", + "src": "43069:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2335, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2329, + "src": "43094:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43094:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "id": 2334, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2110, + "src": "43086:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)" + } + }, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43086:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2333, + "id": 2338, + "nodeType": "Return", + "src": "43079:26:1" + } + ] + }, + "documentation": { + "id": 2327, + "nodeType": "StructuredDocumentation", + "src": "42914:72:1", + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2340, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2329, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43007:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2328, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43007:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + } + ], + "src": "43006:30:1" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43060:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43059:9:1" + }, + "scope": 2480, + "src": "42991:121:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2378, + "nodeType": "Block", + "src": "43538:135:1", + "statements": [ + { + "assignments": [ + 2353, + 2355 + ], + "declarations": [ + { + "constant": false, + "id": 2353, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43549:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2352, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43549:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2355, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43562:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2354, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43562:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2361, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2357, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "43583:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2358, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "id": 2359, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "43595:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2356, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "43579:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)" + } + }, + "id": 2360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43579:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "expression": { + "components": [ + { + "arguments": [ + { + "id": 2364, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "43627:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43619:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43619:7:1", + "typeDescriptions": {} + } + }, + "id": 2365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43619:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2372, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2355, + "src": "43657:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43649:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43649:7:1", + "typeDescriptions": {} + } + }, + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43649:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43641:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2368, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "43641:7:1", + "typeDescriptions": {} + } + }, + "id": 2374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43641:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43633:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43633:7:1", + "typeDescriptions": {} + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43633:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2376, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43618:48:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$", + "typeString": "tuple(uint256,address payable)" + } + }, + "functionReturnParameters": 2351, + "id": 2377, + "nodeType": "Return", + "src": "43611:55:1" + } + ] + }, + "documentation": { + "id": 2341, + "nodeType": "StructuredDocumentation", + "src": "43117:318:1", + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2379, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43452:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2342, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43452:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2345, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43482:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43482:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43451:45:1" + }, + "returnParameters": { + "id": 2351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2348, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43520:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43520:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2350, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43529:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43529:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43519:18:1" + }, + "scope": 2480, + "src": "43440:233:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2417, + "nodeType": "Block", + "src": "43950:142:1", + "statements": [ + { + "assignments": [ + 2392, + 2394 + ], + "declarations": [ + { + "constant": false, + "id": 2392, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43961:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43961:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43975:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2393, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2403, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2396, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "44000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44000:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2400, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2384, + "src": "44020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44012:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2398, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44012:7:1", + "typeDescriptions": {} + } + }, + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44012:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2395, + "name": "_tryGet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2183, + "src": "43992:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)" + } + }, + "id": 2402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43992:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "expression": { + "components": [ + { + "id": 2404, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2392, + "src": "44043:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2411, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "44076:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44068:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44068:7:1", + "typeDescriptions": {} + } + }, + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44068:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2407, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44060:7:1", + "typeDescriptions": {} + } + }, + "id": 2413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44060:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44052:7:1", + "typeDescriptions": {} + } + }, + "id": 2414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44052:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2415, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44042:43:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_payable_$", + "typeString": "tuple(bool,address payable)" + } + }, + "functionReturnParameters": 2390, + "id": 2416, + "nodeType": "Return", + "src": "44035:50:1" + } + ] + }, + "documentation": { + "id": 2380, + "nodeType": "StructuredDocumentation", + "src": "43679:169:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2418, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2382, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43869:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2381, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43869:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2384, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43899:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43868:43:1" + }, + "returnParameters": { + "id": 2390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2387, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43935:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2386, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2389, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43941:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43941:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43934:15:1" + }, + "scope": 2480, + "src": "43853:239:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2446, + "nodeType": "Block", + "src": "44332:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2435, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "44378:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44378:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2439, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2423, + "src": "44398:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44390:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2437, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44390:7:1", + "typeDescriptions": {} + } + }, + "id": 2440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44390:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2434, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "src": "44373:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)" + } + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44373:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44365:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44365:7:1", + "typeDescriptions": {} + } + }, + "id": 2442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44365:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2430, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44357:7:1", + "typeDescriptions": {} + } + }, + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44357:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44349:7:1", + "typeDescriptions": {} + } + }, + "id": 2444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44349:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2427, + "id": 2445, + "nodeType": "Return", + "src": "44342:64:1" + } + ] + }, + "documentation": { + "id": 2419, + "nodeType": "StructuredDocumentation", + "src": "44098:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2447, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2421, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44257:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2420, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44257:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2423, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44287:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44287:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "44256:43:1" + }, + "returnParameters": { + "id": 2427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2426, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44323:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44323:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44322:9:1" + }, + "scope": 2480, + "src": "44244:169:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2478, + "nodeType": "Block", + "src": "44809:95:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2466, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2450, + "src": "44855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2467, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2470, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2452, + "src": "44875:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2468, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44867:7:1", + "typeDescriptions": {} + } + }, + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44867:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 2472, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "44881:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2465, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "src": "44850:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)" + } + }, + "id": 2473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44850:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44842:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44842:7:1", + "typeDescriptions": {} + } + }, + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44842:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44834:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2461, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44834:7:1", + "typeDescriptions": {} + } + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44834:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44826:7:1", + "typeDescriptions": {} + } + }, + "id": 2476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44826:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2458, + "id": 2477, + "nodeType": "Return", + "src": "44819:78:1" + } + ] + }, + "documentation": { + "id": 2448, + "nodeType": "StructuredDocumentation", + "src": "44419:269:1", + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2450, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44706:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2449, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44706:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2452, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44736:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2454, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44749:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2453, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "44749:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "44705:71:1" + }, + "returnParameters": { + "id": 2458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2457, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44799:9:1" + }, + "scope": 2480, + "src": "44693:211:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "35943:8963:1" + }, + { + "id": 2481, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "44959:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2482, + "nodeType": "StructuredDocumentation", + "src": "44992:34:1", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2566, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2564, + "nodeType": "Block", + "src": "45207:654:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2490, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45409:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45418:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45409:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2496, + "nodeType": "IfStatement", + "src": "45405:51:1", + "trueBody": { + "id": 2495, + "nodeType": "Block", + "src": "45421:35:1", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45442:3:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "functionReturnParameters": 2489, + "id": 2494, + "nodeType": "Return", + "src": "45435:10:1" + } + ] + } + }, + { + "assignments": [ + 2498 + ], + "declarations": [ + { + "constant": false, + "id": 2498, + "mutability": "mutable", + "name": "temp", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45465:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2500, + "initialValue": { + "id": 2499, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45480:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "assignments": [ + 2502 + ], + "declarations": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "digits", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45495:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45495:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2503, + "nodeType": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "body": { + "id": 2514, + "nodeType": "Block", + "src": "45537:57:1", + "statements": [ + { + "expression": { + "id": 2508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "45551:8:1", + "subExpression": { + "id": 2507, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45551:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2509, + "nodeType": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "expression": { + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2510, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45581:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45573:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2513, + "nodeType": "ExpressionStatement", + "src": "45573:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2504, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45526:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45534:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45526:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2515, + "nodeType": "WhileStatement", + "src": "45519:75:1" + }, + { + "assignments": [ + 2517 + ], + "declarations": [ + { + "constant": false, + "id": 2517, + "mutability": "mutable", + "name": "buffer", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45603:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2516, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2522, + "initialValue": { + "arguments": [ + { + "id": 2520, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45635:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "45625:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2518, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45629:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45625:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "assignments": [ + 2524 + ], + "declarations": [ + { + "constant": false, + "id": 2524, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45652:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45652:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2528, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2525, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45668:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45677:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "45668:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "expression": { + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2529, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45688:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2530, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45695:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45688:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2532, + "nodeType": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "body": { + "id": 2557, + "nodeType": "Block", + "src": "45728:96:1", + "statements": [ + { + "expression": { + "id": 2551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2536, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45742:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2539, + "indexExpression": { + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "45749:7:1", + "subExpression": { + "id": 2537, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2524, + "src": "45749:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "45742:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3438", + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45773:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2545, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45778:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3130", + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45785:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45778:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45773:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45767:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2542, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "45767:5:1", + "typeDescriptions": {} + } + }, + "id": 2549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45767:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 2540, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "45760:6:1", + "typeDescriptions": {} + } + }, + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45760:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "45742:47:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2552, + "nodeType": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "expression": { + "id": 2555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2553, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45803:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45811:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45803:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2556, + "nodeType": "ExpressionStatement", + "src": "45803:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2533, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45717:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45725:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45717:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2558, + "nodeType": "WhileStatement", + "src": "45710:114:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2561, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45847:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45840:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2559, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45840:6:1", + "typeDescriptions": {} + } + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45840:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2489, + "id": 2563, + "nodeType": "Return", + "src": "45833:21:1" + } + ] + }, + "documentation": { + "id": 2483, + "nodeType": "StructuredDocumentation", + "src": "45049:82:1", + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2485, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45154:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45154:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "45153:15:1" + }, + "returnParameters": { + "id": 2489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2488, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45192:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2487, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45192:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "45191:15:1" + }, + "scope": 2566, + "src": "45136:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "45027:836:1" + }, + { + "id": 2567, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "45922:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2569, + "name": "Context", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 530, + "src": "46099:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 2570, + "nodeType": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "baseName": { + "id": 2571, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 781, + "src": "46108:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$781", + "typeString": "contract ERC165" + } + }, + "id": 2572, + "nodeType": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "baseName": { + "id": 2573, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "46116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 2574, + "nodeType": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "baseName": { + "id": 2575, + "name": "IERC721Metadata", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 680, + "src": "46125:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Metadata_$680", + "typeString": "contract IERC721Metadata" + } + }, + "id": 2576, + "nodeType": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "baseName": { + "id": 2577, + "name": "IERC721Enumerable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 709, + "src": "46142:17:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Enumerable_$709", + "typeString": "contract IERC721Enumerable" + } + }, + "id": 2578, + "nodeType": "InheritanceSpecifier", + "src": "46142:17:1" + } + ], + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "documentation": { + "id": 2568, + "nodeType": "StructuredDocumentation", + "src": "45955:124:1", + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": true, + "id": 3498, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2581, + "libraryName": { + "id": 2579, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1135, + "src": "46172:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$1135", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "46166:27:1", + "typeName": { + "id": 2580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46185:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 2584, + "libraryName": { + "id": 2582, + "name": "Address", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1430, + "src": "46204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + }, + "nodeType": "UsingForDirective", + "src": "46198:26:1", + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46216:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 2587, + "libraryName": { + "id": 2585, + "name": "EnumerableSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1921, + "src": "46235:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableSet_$1921", + "typeString": "library EnumerableSet" + } + }, + "nodeType": "UsingForDirective", + "src": "46229:46:1", + "typeName": { + "id": 2586, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46253:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + { + "id": 2590, + "libraryName": { + "id": 2588, + "name": "EnumerableMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2480, + "src": "46286:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableMap_$2480", + "typeString": "library EnumerableMap" + } + }, + "nodeType": "UsingForDirective", + "src": "46280:55:1", + "typeName": { + "id": 2589, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46304:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + } + }, + { + "id": 2593, + "libraryName": { + "id": 2591, + "name": "Strings", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2566, + "src": "46346:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Strings_$2566", + "typeString": "library Strings" + } + }, + "nodeType": "UsingForDirective", + "src": "46340:26:1", + "typeName": { + "id": 2592, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46358:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 2596, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46544:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2594, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "46544:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783135306237613032", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46587:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_353073666_by_1", + "typeString": "int_const 353073666" + }, + "value": "0x150b7a02" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2600, + "mutability": "mutable", + "name": "_holderTokens", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46681:64:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "typeName": { + "id": 2599, + "keyType": { + "id": 2597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "46681:42:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "valueType": { + "id": 2598, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46701:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2602, + "mutability": "mutable", + "name": "_tokenOwners", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46809:51:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2601, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46809:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2606, + "mutability": "mutable", + "name": "_tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46916:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 2605, + "keyType": { + "id": 2603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46925:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "46916:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 2604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46936:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2612, + "mutability": "mutable", + "name": "_operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47023:73:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 2611, + "keyType": { + "id": 2607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47023:46:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 2610, + "keyType": { + "id": 2608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47043:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2609, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "47063:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2614, + "mutability": "mutable", + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47121:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2613, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47121:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2616, + "mutability": "mutable", + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47168:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47168:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2620, + "mutability": "mutable", + "name": "_tokenURIs", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47236:46:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 2619, + "keyType": { + "id": 2617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "47245:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "47236:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 2618, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47256:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2622, + "mutability": "mutable", + "name": "_baseURI", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47305:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2621, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47305:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2625, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48204:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2623, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48204:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783830616335386364", + "id": 2624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48251:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2628, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48527:66:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2626, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48527:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783562356531333966", + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1532892063_by_1", + "typeString": "int_const 1532892063" + }, + "value": "0x5b5e139f" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2631, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48898:68:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2629, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783738306539643633", + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48956:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2014223715_by_1", + "typeString": "int_const 2014223715" + }, + "value": "0x780e9d63" + }, + "visibility": "private" + }, + { + "body": { + "id": 2659, + "nodeType": "Block", + "src": "49143:305:1", + "statements": [ + { + "expression": { + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2639, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "49153:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2640, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "49161:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49153:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2642, + "nodeType": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "expression": { + "id": 2645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2643, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "49176:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2644, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2636, + "src": "49186:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49176:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2646, + "nodeType": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2648, + "name": "_INTERFACE_ID_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "49300:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2647, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49281:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49281:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2650, + "nodeType": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2652, + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "49350:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2651, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49331:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49331:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2654, + "nodeType": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2656, + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2631, + "src": "49409:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2655, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49390:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49390:51:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2658, + "nodeType": "ExpressionStatement", + "src": "49390:51:1" + } + ] + }, + "documentation": { + "id": 2632, + "nodeType": "StructuredDocumentation", + "src": "48973:108:1", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2660, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2634, + "mutability": "mutable", + "name": "name_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49099:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2633, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49099:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2636, + "mutability": "mutable", + "name": "symbol_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49120:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2635, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49120:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "49098:44:1" + }, + "returnParameters": { + "id": 2638, + "nodeType": "ParameterList", + "parameters": [], + "src": "49143:0:1" + }, + "scope": 3498, + "src": "49086:362:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 580 + ], + "body": { + "id": 2685, + "nodeType": "Block", + "src": "49588:137:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2670, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49606:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49623:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "49615:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49615:7:1", + "typeDescriptions": {} + } + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49615:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "49606:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49627:44:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + }, + "value": "ERC721: balance query for the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "id": 2669, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "49598:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49598:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2678, + "nodeType": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 2679, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "49689:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2681, + "indexExpression": { + "id": 2680, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49703:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "49689:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2682, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "49689:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + } + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49689:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2668, + "id": 2684, + "nodeType": "Return", + "src": "49682:36:1" + } + ] + }, + "documentation": { + "id": 2661, + "nodeType": "StructuredDocumentation", + "src": "49454:48:1", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 2686, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2665, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49561:8:1" + }, + "parameters": { + "id": 2664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2663, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49526:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49526:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49525:15:1" + }, + "returnParameters": { + "id": 2668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2667, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49579:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49579:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49578:9:1" + }, + "scope": 3498, + "src": "49507:218:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 588 + ], + "body": { + "id": 2701, + "nodeType": "Block", + "src": "49863:94:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2697, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "49897:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49906:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + }, + "value": "ERC721: owner query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "expression": { + "id": 2695, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "49880:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2696, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 2479, + "src": "49880:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + } + }, + "id": 2699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49880:70:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2694, + "id": 2700, + "nodeType": "Return", + "src": "49873:77:1" + } + ] + }, + "documentation": { + "id": 2687, + "nodeType": "StructuredDocumentation", + "src": "49731:46:1", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 2702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2691, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49836:8:1" + }, + "parameters": { + "id": 2690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2689, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49799:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49799:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49798:17:1" + }, + "returnParameters": { + "id": 2694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49854:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49854:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49853:9:1" + }, + "scope": 3498, + "src": "49782:175:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 665 + ], + "body": { + "id": 2711, + "nodeType": "Block", + "src": "50088:29:1", + "statements": [ + { + "expression": { + "id": 2709, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "50105:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2708, + "id": 2710, + "nodeType": "Return", + "src": "50098:12:1" + } + ] + }, + "documentation": { + "id": 2703, + "nodeType": "StructuredDocumentation", + "src": "49963:51:1", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 2712, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2705, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50055:8:1" + }, + "parameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [], + "src": "50032:2:1" + }, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2707, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2712, + "src": "50073:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2706, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50073:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50072:15:1" + }, + "scope": 3498, + "src": "50019:98:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 671 + ], + "body": { + "id": 2721, + "nodeType": "Block", + "src": "50252:31:1", + "statements": [ + { + "expression": { + "id": 2719, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "50269:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2718, + "id": 2720, + "nodeType": "Return", + "src": "50262:14:1" + } + ] + }, + "documentation": { + "id": 2713, + "nodeType": "StructuredDocumentation", + "src": "50123:53:1", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 2722, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2715, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50219:8:1" + }, + "parameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [], + "src": "50196:2:1" + }, + "returnParameters": { + "id": 2718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2717, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2722, + "src": "50237:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2716, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50237:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50236:15:1" + }, + "scope": 3498, + "src": "50181:102:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 679 + ], + "body": { + "id": 2789, + "nodeType": "Block", + "src": "50437:688:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2733, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50463:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2732, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "50455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50455:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50473:49:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + }, + "value": "ERC721Metadata: URI query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "id": 2731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "50447:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50447:76:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "assignments": [ + 2739 + ], + "declarations": [ + { + "constant": false, + "id": 2739, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50534:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50534:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2743, + "initialValue": { + "baseExpression": { + "id": 2740, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "50560:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 2742, + "indexExpression": { + "id": 2741, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50571:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "50560:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "assignments": [ + 2745 + ], + "declarations": [ + { + "constant": false, + "id": 2745, + "mutability": "mutable", + "name": "base", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50589:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50589:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2748, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2746, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2799, + "src": "50610:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 2747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50610:9:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2751, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50698:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50692:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50692:5:1", + "typeDescriptions": {} + } + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50692:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50692:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50714:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50692:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2759, + "nodeType": "IfStatement", + "src": "50688:70:1", + "trueBody": { + "id": 2758, + "nodeType": "Block", + "src": "50717:41:1", + "statements": [ + { + "expression": { + "id": 2756, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50738:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2757, + "nodeType": "Return", + "src": "50731:16:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2762, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50860:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2760, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50860:5:1", + "typeDescriptions": {} + } + }, + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50860:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50860:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50886:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50860:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2777, + "nodeType": "IfStatement", + "src": "50856:106:1", + "trueBody": { + "id": 2776, + "nodeType": "Block", + "src": "50889:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2771, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50934:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 2772, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50940:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2769, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "50917:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "50917:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50917:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50910:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2767, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50910:6:1", + "typeDescriptions": {} + } + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50910:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2775, + "nodeType": "Return", + "src": "50903:48:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2782, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "51092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2783, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "51098:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2565, + "src": "51098:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 2785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51098:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2780, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "51075:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "51075:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51075:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "51068:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2778, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51068:6:1", + "typeDescriptions": {} + } + }, + "id": 2787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51068:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2788, + "nodeType": "Return", + "src": "51061:57:1" + } + ] + }, + "documentation": { + "id": 2723, + "nodeType": "StructuredDocumentation", + "src": "50289:55:1", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 2790, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50404:8:1" + }, + "parameters": { + "id": 2726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2725, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50367:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50367:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "50366:17:1" + }, + "returnParameters": { + "id": 2730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50422:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2728, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50422:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50421:15:1" + }, + "scope": 3498, + "src": "50349:776:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2798, + "nodeType": "Block", + "src": "51420:32:1", + "statements": [ + { + "expression": { + "id": 2796, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "51437:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2795, + "id": 2797, + "nodeType": "Return", + "src": "51430:15:1" + } + ] + }, + "documentation": { + "id": 2791, + "nodeType": "StructuredDocumentation", + "src": "51131:221:1", + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "functionSelector": "6c0360eb", + "id": 2799, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "baseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2792, + "nodeType": "ParameterList", + "parameters": [], + "src": "51373:2:1" + }, + "returnParameters": { + "id": 2795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2799, + "src": "51405:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2793, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51405:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "51404:15:1" + }, + "scope": 3498, + "src": "51357:95:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 700 + ], + "body": { + "id": 2817, + "nodeType": "Block", + "src": "51637:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2814, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "51678:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 2810, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "51654:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2812, + "indexExpression": { + "id": 2811, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2802, + "src": "51668:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "51654:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2813, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 1920, + "src": "51654:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51654:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2809, + "id": 2816, + "nodeType": "Return", + "src": "51647:37:1" + } + ] + }, + "documentation": { + "id": 2800, + "nodeType": "StructuredDocumentation", + "src": "51458:68:1", + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "functionSelector": "2f745c59", + "id": 2818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2806, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51610:8:1" + }, + "parameters": { + "id": 2805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2802, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51560:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "51560:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2804, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51575:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2803, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51575:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51559:30:1" + }, + "returnParameters": { + "id": 2809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2808, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51628:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51628:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51627:9:1" + }, + "scope": 3498, + "src": "51531:160:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 690 + ], + "body": { + "id": 2829, + "nodeType": "Block", + "src": "51832:138:1", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2825, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "51942:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 2340, + "src": "51942:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51942:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2824, + "id": 2828, + "nodeType": "Return", + "src": "51935:28:1" + } + ] + }, + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "51697:60:1", + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 2830, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2821, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51805:8:1" + }, + "parameters": { + "id": 2820, + "nodeType": "ParameterList", + "parameters": [], + "src": "51782:2:1" + }, + "returnParameters": { + "id": 2824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2823, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2830, + "src": "51823:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51823:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51822:9:1" + }, + "scope": 3498, + "src": "51762:208:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 708 + ], + "body": { + "id": 2848, + "nodeType": "Block", + "src": "52126:85:1", + "statements": [ + { + "assignments": [ + 2840, + null + ], + "declarations": [ + { + "constant": false, + "id": 2840, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2848, + "src": "52137:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2839, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52137:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2845, + "initialValue": { + "arguments": [ + { + "id": 2843, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2833, + "src": "52174:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2841, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "52158:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 2379, + "src": "52158:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + } + }, + "id": 2844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52158:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$", + "typeString": "tuple(uint256,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "expression": { + "id": 2846, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2840, + "src": "52197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2838, + "id": 2847, + "nodeType": "Return", + "src": "52190:14:1" + } + ] + }, + "documentation": { + "id": 2831, + "nodeType": "StructuredDocumentation", + "src": "51976:61:1", + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "functionSelector": "4f6ccce7", + "id": 2849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2835, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52099:8:1" + }, + "parameters": { + "id": 2834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2833, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52064:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52064:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52063:15:1" + }, + "returnParameters": { + "id": 2838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2837, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52117:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52116:9:1" + }, + "scope": 3498, + "src": "52042:169:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 616 + ], + "body": { + "id": 2892, + "nodeType": "Block", + "src": "52338:325:1", + "statements": [ + { + "assignments": [ + 2859 + ], + "declarations": [ + { + "constant": false, + "id": 2859, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2892, + "src": "52348:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52348:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2864, + "initialValue": { + "arguments": [ + { + "id": 2862, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52379:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2860, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52364:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "52364:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52364:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2866, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52405:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2867, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52411:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52405:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "id": 2869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52418:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + }, + "value": "ERC721: approval to current owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "id": 2865, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52397:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52397:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2871, + "nodeType": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2873, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52473:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52473:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2875, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52489:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52473:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 2879, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52522:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2880, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52529:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52529:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 2877, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52498:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "52498:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52498:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "52473:69:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52556:58:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + }, + "value": "ERC721: approve caller is not owner nor approved for all" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "id": 2872, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52465:159:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2886, + "nodeType": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2888, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52644:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2889, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52648:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2887, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "52635:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52635:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2891, + "nodeType": "ExpressionStatement", + "src": "52635:21:1" + } + ] + }, + "documentation": { + "id": 2850, + "nodeType": "StructuredDocumentation", + "src": "52217:46:1", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 2893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2856, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52329:8:1" + }, + "parameters": { + "id": 2855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2852, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52285:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52285:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2854, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52297:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52284:29:1" + }, + "returnParameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [], + "src": "52338:0:1" + }, + "scope": 3498, + "src": "52268:395:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 624 + ], + "body": { + "id": 2913, + "nodeType": "Block", + "src": "52809:132:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2904, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2903, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "52827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52827:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52845:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + }, + "value": "ERC721: approved query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "id": 2902, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52819:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2908, + "nodeType": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "expression": { + "baseExpression": { + "id": 2909, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "52910:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 2911, + "indexExpression": { + "id": 2910, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52926:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "52910:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2901, + "id": 2912, + "nodeType": "Return", + "src": "52903:31:1" + } + ] + }, + "documentation": { + "id": 2894, + "nodeType": "StructuredDocumentation", + "src": "52669:50:1", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 2914, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2898, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52782:8:1" + }, + "parameters": { + "id": 2897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2896, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52745:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52744:17:1" + }, + "returnParameters": { + "id": 2901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2900, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2899, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "52799:9:1" + }, + "scope": 3498, + "src": "52724:217:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 632 + ], + "body": { + "id": 2947, + "nodeType": "Block", + "src": "53092:206:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2924, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53110:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2925, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53122:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53122:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "53110:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "id": 2928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53136:27:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + }, + "value": "ERC721: approve to caller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "id": 2923, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53102:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53102:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2930, + "nodeType": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "expression": { + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 2931, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53175:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2935, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2932, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53194:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53194:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53175:32:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2936, + "indexExpression": { + "id": 2934, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53208:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "53175:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2937, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53220:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "53175:53:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2941, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53258:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53258:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2943, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53272:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2944, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53282:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2940, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "53243:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 2945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53243:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2946, + "nodeType": "EmitStatement", + "src": "53238:53:1" + } + ] + }, + "documentation": { + "id": 2915, + "nodeType": "StructuredDocumentation", + "src": "52947:56:1", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 2948, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2921, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53083:8:1" + }, + "parameters": { + "id": 2920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2917, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53035:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53035:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2919, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53053:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2918, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53053:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53034:33:1" + }, + "returnParameters": { + "id": 2922, + "nodeType": "ParameterList", + "parameters": [], + "src": "53092:0:1" + }, + "scope": 3498, + "src": "53008:290:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 642 + ], + "body": { + "id": 2965, + "nodeType": "Block", + "src": "53467:59:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 2959, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53484:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2961, + "indexExpression": { + "id": 2960, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "53503:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2963, + "indexExpression": { + "id": 2962, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "53510:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2958, + "id": 2964, + "nodeType": "Return", + "src": "53477:42:1" + } + ] + }, + "documentation": { + "id": 2949, + "nodeType": "StructuredDocumentation", + "src": "53304:55:1", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 2966, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2955, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53443:8:1" + }, + "parameters": { + "id": 2954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53390:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53390:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2953, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53405:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53405:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "53389:33:1" + }, + "returnParameters": { + "id": 2958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2957, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2956, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53460:6:1" + }, + "scope": 3498, + "src": "53364:162:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 608 + ], + "body": { + "id": 2992, + "nodeType": "Block", + "src": "53677:211:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2979, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53766:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53766:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2981, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53780:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2978, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "53747:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53747:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53790:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 2977, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53739:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53739:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2985, + "nodeType": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2987, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2969, + "src": "53863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2988, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2971, + "src": "53869:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2989, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53873:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2986, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "53853:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53853:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2991, + "nodeType": "ExpressionStatement", + "src": "53853:28:1" + } + ] + }, + "documentation": { + "id": 2967, + "nodeType": "StructuredDocumentation", + "src": "53532:51:1", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 2993, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2975, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53668:8:1" + }, + "parameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2969, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53610:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53610:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2971, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53624:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53624:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2973, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53636:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "53636:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53609:43:1" + }, + "returnParameters": { + "id": 2976, + "nodeType": "ParameterList", + "parameters": [], + "src": "53677:0:1" + }, + "scope": 3498, + "src": "53588:300:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 598 + ], + "body": { + "id": 3011, + "nodeType": "Block", + "src": "54047:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3005, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2996, + "src": "54074:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3006, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2998, + "src": "54080:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3007, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3000, + "src": "54084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54093:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3004, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "src": "54057:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54057:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3010, + "nodeType": "ExpressionStatement", + "src": "54057:39:1" + } + ] + }, + "documentation": { + "id": 2994, + "nodeType": "StructuredDocumentation", + "src": "53894:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 3012, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3002, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54038:8:1" + }, + "parameters": { + "id": 3001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2996, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53980:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53980:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2998, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53994:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2997, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53994:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3000, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "54006:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54006:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53979:43:1" + }, + "returnParameters": { + "id": 3003, + "nodeType": "ParameterList", + "parameters": [], + "src": "54047:0:1" + }, + "scope": 3498, + "src": "53954:149:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 654 + ], + "body": { + "id": 3041, + "nodeType": "Block", + "src": "54282:169:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3027, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "54319:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54319:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3029, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3026, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "54300:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 3030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54300:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 3031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54343:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 3025, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "54292:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54292:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3033, + "nodeType": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3035, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3015, + "src": "54419:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3036, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3017, + "src": "54425:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3037, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3038, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3021, + "src": "54438:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3034, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3071, + "src": "54405:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54405:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3040, + "nodeType": "ExpressionStatement", + "src": "54405:39:1" + } + ] + }, + "documentation": { + "id": 3013, + "nodeType": "StructuredDocumentation", + "src": "54109:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 3042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3023, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54273:8:1" + }, + "parameters": { + "id": 3022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3015, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54195:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54195:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3017, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54209:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3016, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54209:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3019, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54221:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3021, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54238:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3020, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "54238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "54194:63:1" + }, + "returnParameters": { + "id": 3024, + "nodeType": "ParameterList", + "parameters": [], + "src": "54282:0:1" + }, + "scope": 3498, + "src": "54169:282:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 3070, + "nodeType": "Block", + "src": "55416:166:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3055, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55436:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55442:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3057, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55446:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3054, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "55426:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55426:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3059, + "nodeType": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3062, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55495:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3063, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55501:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3064, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55505:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3065, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3051, + "src": "55514:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3061, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "55472:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55472:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55522:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3060, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "55464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55464:111:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3069, + "nodeType": "ExpressionStatement", + "src": "55464:111:1" + } + ] + }, + "documentation": { + "id": 3043, + "nodeType": "StructuredDocumentation", + "src": "54457:851:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3071, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3045, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55336:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55336:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3047, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55350:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55350:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3049, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55362:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55362:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3051, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55379:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3050, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "55379:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "55335:63:1" + }, + "returnParameters": { + "id": 3053, + "nodeType": "ParameterList", + "parameters": [], + "src": "55416:0:1" + }, + "scope": 3498, + "src": "55313:269:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3084, + "nodeType": "Block", + "src": "55956:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3081, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "55995:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3079, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "55973:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3080, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 2326, + "src": "55973:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + } + }, + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55973:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3078, + "id": 3083, + "nodeType": "Return", + "src": "55966:37:1" + } + ] + }, + "documentation": { + "id": 3072, + "nodeType": "StructuredDocumentation", + "src": "55588:292:1", + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3085, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3074, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55902:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3073, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55902:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "55901:17:1" + }, + "returnParameters": { + "id": 3078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3077, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55950:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3076, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "55950:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "55949:6:1" + }, + "scope": 3498, + "src": "55885:125:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3126, + "nodeType": "Block", + "src": "56267:252:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3097, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56293:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3096, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "56285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56285:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 3099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56303:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + }, + "value": "ERC721: operator query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "id": 3095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "56277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56277:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3101, + "nodeType": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "assignments": [ + 3103 + ], + "declarations": [ + { + "constant": false, + "id": 3103, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3126, + "src": "56360:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56360:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3108, + "initialValue": { + "arguments": [ + { + "id": 3106, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56391:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3104, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56376:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "56376:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56376:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3109, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56417:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3110, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56428:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56417:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3113, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56449:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3112, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "56437:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56437:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3115, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56437:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:51:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 3120, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56496:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3121, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3118, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "56472:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56472:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:94:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3124, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56416:96:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3094, + "id": 3125, + "nodeType": "Return", + "src": "56409:103:1" + } + ] + }, + "documentation": { + "id": 3086, + "nodeType": "StructuredDocumentation", + "src": "56016:147:1", + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3088, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56196:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56196:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3090, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56213:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56213:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56195:34:1" + }, + "returnParameters": { + "id": 3094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3093, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56261:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3092, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "56261:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "56260:6:1" + }, + "scope": 3498, + "src": "56168:351:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3141, + "nodeType": "Block", + "src": "56915:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3136, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3130, + "src": "56935:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3137, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3132, + "src": "56939:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56948:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3135, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "src": "56925:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 3139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56925:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3140, + "nodeType": "ExpressionStatement", + "src": "56925:26:1" + } + ] + }, + "documentation": { + "id": 3128, + "nodeType": "StructuredDocumentation", + "src": "56525:320:1", + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3142, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3130, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56869:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3132, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56881:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56881:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56868:29:1" + }, + "returnParameters": { + "id": 3134, + "nodeType": "ParameterList", + "parameters": [], + "src": "56915:0:1" + }, + "scope": 3498, + "src": "56850:108:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3170, + "nodeType": "Block", + "src": "57264:162:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3153, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57280:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3154, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3152, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "57274:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57274:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3156, + "nodeType": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57341:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57333:7:1", + "typeDescriptions": {} + } + }, + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57333:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3163, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57345:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3164, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3165, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "57358:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3158, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "57310:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57310:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57366:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3157, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57302:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57302:117:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3169, + "nodeType": "ExpressionStatement", + "src": "57302:117:1" + } + ] + }, + "documentation": { + "id": 3143, + "nodeType": "StructuredDocumentation", + "src": "56964:210:1", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3171, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3145, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57198:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3144, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57198:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3147, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57210:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57210:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3149, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57227:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3148, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "57227:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "57197:49:1" + }, + "returnParameters": { + "id": 3151, + "nodeType": "ParameterList", + "parameters": [], + "src": "57264:0:1" + }, + "scope": 3498, + "src": "57179:247:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3229, + "nodeType": "Block", + "src": "57809:332:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3180, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57827:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57841:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57833:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57833:7:1", + "typeDescriptions": {} + } + }, + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57833:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "57827:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57845:34:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + }, + "value": "ERC721: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "id": 3179, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57819:61:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "57898:17:1", + "subExpression": { + "arguments": [ + { + "id": 3191, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57907:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3190, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "57899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57899:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57917:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + }, + "value": "ERC721: token already minted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "id": 3189, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57890:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57890:58:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3196, + "nodeType": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57988:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57980:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57980:7:1", + "typeDescriptions": {} + } + }, + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57980:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3202, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57992:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3203, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3197, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "57959:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57959:45:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3205, + "nodeType": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3210, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58037:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3206, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58015:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3208, + "indexExpression": { + "id": 3207, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58029:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58015:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3209, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "58015:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58015:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3212, + "nodeType": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3216, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58073:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3217, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58082:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3213, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58056:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3215, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "58056:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58056:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3219, + "nodeType": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58118:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58110:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58110:7:1", + "typeDescriptions": {} + } + }, + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58110:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3225, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58122:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3226, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3220, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58101:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58101:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3228, + "nodeType": "EmitStatement", + "src": "58096:38:1" + } + ] + }, + "documentation": { + "id": 3172, + "nodeType": "StructuredDocumentation", + "src": "57432:311:1", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3174, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57763:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57763:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3176, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57775:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57775:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "57762:29:1" + }, + "returnParameters": { + "id": 3178, + "nodeType": "ParameterList", + "parameters": [], + "src": "57809:0:1" + }, + "scope": 3498, + "src": "57748:393:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3298, + "nodeType": "Block", + "src": "58407:478:1", + "statements": [ + { + "assignments": [ + 3237 + ], + "declarations": [ + { + "constant": false, + "id": 3237, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "58417:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58417:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3242, + "initialValue": { + "arguments": [ + { + "id": 3240, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58448:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3238, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "58433:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "58433:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58433:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3244, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58506:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58521:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58513:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58513:7:1", + "typeDescriptions": {} + } + }, + "id": 3248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58513:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3249, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58525:7:1", + "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": 3243, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "58485:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58485:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3251, + "nodeType": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58588:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58580:7:1", + "typeDescriptions": {} + } + }, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58580:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3257, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58592:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3252, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "58571:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58571:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3259, + "nodeType": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 3262, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58656:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3264, + "indexExpression": { + "id": 3263, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58667:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58656:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 3261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58650:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3260, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "58650:5:1", + "typeDescriptions": {} + } + }, + "id": 3265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58650:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes storage pointer" + } + }, + "id": 3266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "58650:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 3267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58687:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "58650:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3275, + "nodeType": "IfStatement", + "src": "58646:95:1", + "trueBody": { + "id": 3274, + "nodeType": "Block", + "src": "58690:51:1", + "statements": [ + { + "expression": { + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "58704:26:1", + "subExpression": { + "baseExpression": { + "id": 3269, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58711:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3271, + "indexExpression": { + "id": 3270, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58722:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "58711:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3273, + "nodeType": "ExpressionStatement", + "src": "58704:26:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 3280, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58779:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3276, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58751:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3278, + "indexExpression": { + "id": 3277, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58765:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58751:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3279, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "58751:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58751:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3282, + "nodeType": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3286, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58818:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3283, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58798:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 2306, + "src": "58798:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + } + }, + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58798:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3288, + "nodeType": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3290, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58851:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58866:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58858:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58858:7:1", + "typeDescriptions": {} + } + }, + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58858:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3295, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58870:7:1", + "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": 3289, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58842:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58842:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3297, + "nodeType": "EmitStatement", + "src": "58837:41:1" + } + ] + }, + "documentation": { + "id": 3231, + "nodeType": "StructuredDocumentation", + "src": "58147:206:1", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3299, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3233, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3299, + "src": "58373:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "58372:17:1" + }, + "returnParameters": { + "id": 3235, + "nodeType": "ParameterList", + "parameters": [], + "src": "58407:0:1" + }, + "scope": 3498, + "src": "58358:527:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3370, + "nodeType": "Block", + "src": "59288:505:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3312, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59321:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3310, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "59306:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "59306:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59306:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3314, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59333:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "59306:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59339:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + }, + "value": "ERC721: transfer of token that is not own" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "id": 3309, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59298:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59298:85:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3318, + "nodeType": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3320, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59419:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59433:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59425:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59425:7:1", + "typeDescriptions": {} + } + }, + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59425:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "59419:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59437:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + }, + "value": "ERC721: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "id": 3319, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59411:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59411:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3328, + "nodeType": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3330, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59508:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3331, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59514:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3332, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59518:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3329, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "59487:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59487:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3334, + "nodeType": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59605:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59597:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59597:7:1", + "typeDescriptions": {} + } + }, + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59597:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3340, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59609:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3335, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "59588:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59588:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3342, + "nodeType": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3347, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59655:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3343, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59628:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3345, + "indexExpression": { + "id": 3344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59642:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59628:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3346, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "59628:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59628:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3354, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59695:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3350, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3352, + "indexExpression": { + "id": 3351, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59687:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59673:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3353, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "59673:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59673:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3356, + "nodeType": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3360, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59731:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3361, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59740:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3357, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "59714:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "59714:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59714:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3363, + "nodeType": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3365, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59768:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3366, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59774:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3367, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59778:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3364, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "59759:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59759:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3369, + "nodeType": "EmitStatement", + "src": "59754:32:1" + } + ] + }, + "documentation": { + "id": 3300, + "nodeType": "StructuredDocumentation", + "src": "58891:313:1", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3302, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59228:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3304, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59242:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59242:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3306, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59254:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3305, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59254:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "59227:43:1" + }, + "returnParameters": { + "id": 3308, + "nodeType": "ParameterList", + "parameters": [], + "src": "59288:0:1" + }, + "scope": 3498, + "src": "59209:584:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3392, + "nodeType": "Block", + "src": "60021:131:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3381, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60047:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3380, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "60039:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60039:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "id": 3383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "60057:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + }, + "value": "ERC721Metadata: URI set of nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "id": 3379, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "60031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60031:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3385, + "nodeType": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "expression": { + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3386, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "60114:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3388, + "indexExpression": { + "id": 3387, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60125:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "60114:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3389, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "60136:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60114:31:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3391, + "nodeType": "ExpressionStatement", + "src": "60114:31:1" + } + ] + }, + "documentation": { + "id": 3372, + "nodeType": "StructuredDocumentation", + "src": "59799:136:1", + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setTokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3374, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59962:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59962:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3376, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59979:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3375, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "59979:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "59961:42:1" + }, + "returnParameters": { + "id": 3378, + "nodeType": "ParameterList", + "parameters": [], + "src": "60021:0:1" + }, + "scope": 3498, + "src": "59940:212:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3403, + "nodeType": "Block", + "src": "60437:36:1", + "statements": [ + { + "expression": { + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3399, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "60447:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3400, + "name": "baseURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "60458:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60447:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3402, + "nodeType": "ExpressionStatement", + "src": "60447:19:1" + } + ] + }, + "documentation": { + "id": 3394, + "nodeType": "StructuredDocumentation", + "src": "60158:212:1", + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3404, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setBaseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3396, + "mutability": "mutable", + "name": "baseURI_", + "nodeType": "VariableDeclaration", + "scope": 3404, + "src": "60396:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3395, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "60396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "60395:24:1" + }, + "returnParameters": { + "id": 3398, + "nodeType": "ParameterList", + "parameters": [], + "src": "60437:0:1" + }, + "scope": 3498, + "src": "60375:98:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3461, + "nodeType": "Block", + "src": "61156:459:1", + "statements": [ + { + "condition": { + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "61170:16:1", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3418, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61171:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 1154, + "src": "61171:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61171:15:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3425, + "nodeType": "IfStatement", + "src": "61166:58:1", + "trueBody": { + "id": 3424, + "nodeType": "Block", + "src": "61188:36:1", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 3422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61209:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3417, + "id": 3423, + "nodeType": "Return", + "src": "61202:11:1" + } + ] + } + }, + { + "assignments": [ + 3427 + ], + "declarations": [ + { + "constant": false, + "id": 3427, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61233:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3426, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61233:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3445, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 3433, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61327:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3432, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "61311:15:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$726_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 3434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61311:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$726", + "typeString": "contract IERC721Receiver" + } + }, + "id": 3435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 725, + "src": "61311:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "61311:45:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3437, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "61370:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61370:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3439, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "61396:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3440, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "61414:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3441, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3413, + "src": "61435:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3430, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61275:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "61275:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 3442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61275:175:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61452:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "expression": { + "id": 3428, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61259:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 1225, + "src": "61259:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 3444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61259:246:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "assignments": [ + 3447 + ], + "declarations": [ + { + "constant": false, + "id": 3447, + "mutability": "mutable", + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61515:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3446, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61515:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "id": 3455, + "initialValue": { + "arguments": [ + { + "id": 3450, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3427, + "src": "61542:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 3452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "61555:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 3451, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61555:6:1", + "typeDescriptions": {} + } + } + ], + "id": 3453, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61554:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "expression": { + "id": 3448, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61531:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "61531:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61531:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3456, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "61581:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3457, + "name": "_ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "61591:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "61581:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3459, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61580:28:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3417, + "id": 3460, + "nodeType": "Return", + "src": "61573:35:1" + } + ] + }, + "documentation": { + "id": 3405, + "nodeType": "StructuredDocumentation", + "src": "60479:542:1", + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3462, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3407, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61058:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61058:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3409, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61072:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61072:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3411, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61084:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3410, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3413, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61101:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3412, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61101:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "61057:63:1" + }, + "returnParameters": { + "id": 3417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3416, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61146:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3415, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "61146:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "61145:6:1" + }, + "scope": 3498, + "src": "61026:589:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3485, + "nodeType": "Block", + "src": "61791:125:1", + "statements": [ + { + "expression": { + "id": 3474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3470, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "61801:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 3472, + "indexExpression": { + "id": 3471, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61817:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "61801:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3473, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61828:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "61801:29:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3475, + "nodeType": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 3479, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61869:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3477, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "61854:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "61854:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61854:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3481, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61879:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3482, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3476, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "61845:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61845:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3484, + "nodeType": "EmitStatement", + "src": "61840:51:1" + } + ] + }, + "documentation": { + "id": 3463, + "nodeType": "StructuredDocumentation", + "src": "61621:101:1", + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3486, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3465, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61745:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61745:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3467, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61757:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61757:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "61744:29:1" + }, + "returnParameters": { + "id": 3469, + "nodeType": "ParameterList", + "parameters": [], + "src": "61791:0:1" + }, + "scope": 3498, + "src": "61727:189:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3496, + "nodeType": "Block", + "src": "62602:3:1", + "statements": [] + }, + "documentation": { + "id": 3487, + "nodeType": "StructuredDocumentation", + "src": "61922:585:1", + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3497, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3489, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62542:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62542:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3491, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62556:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62556:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3493, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62568:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "62568:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "62541:43:1" + }, + "returnParameters": { + "id": 3495, + "nodeType": "ParameterList", + "parameters": [], + "src": "62602:0:1" + }, + "scope": 3498, + "src": "62512:93:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "46080:16527:1" + } + ], + "src": "84:62524:1" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "license": "MIT" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 509, + "name": "PragmaDirective", + "src": "84:31:1" + }, + { + "attributes": { + "abstract": true, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgSender", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 510, + "name": "ParameterList", + "src": "668:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 518, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 511, + "name": "ElementaryTypeName", + "src": "702:15:1" + } + ], + "id": 512, + "name": "VariableDeclaration", + "src": "702:15:1" + } + ], + "id": 513, + "name": "ParameterList", + "src": "701:17:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 513 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 514, + "name": "Identifier", + "src": "736:3:1" + } + ], + "id": 515, + "name": "MemberAccess", + "src": "736:10:1" + } + ], + "id": 516, + "name": "Return", + "src": "729:17:1" + } + ], + "id": 517, + "name": "Block", + "src": "719:34:1" + } + ], + "id": 518, + "name": "FunctionDefinition", + "src": "649:104:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgData", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 519, + "name": "ParameterList", + "src": "776:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 529, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 520, + "name": "ElementaryTypeName", + "src": "810:5:1" + } + ], + "id": 521, + "name": "VariableDeclaration", + "src": "810:12:1" + } + ], + "id": 522, + "name": "ParameterList", + "src": "809:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "contract Context", + "value": "this" + }, + "id": 523, + "name": "Identifier", + "src": "834:4:1" + } + ], + "id": 524, + "name": "ExpressionStatement", + "src": "834:4:1" + }, + { + "attributes": { + "functionReturnParameters": 522 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "data", + "type": "bytes calldata" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 525, + "name": "Identifier", + "src": "974:3:1" + } + ], + "id": 526, + "name": "MemberAccess", + "src": "974:8:1" + } + ], + "id": 527, + "name": "Return", + "src": "967:15:1" + } + ], + "id": 528, + "name": "Block", + "src": "824:165:1" + } + ], + "id": 529, + "name": "FunctionDefinition", + "src": "759:230:1" + } + ], + "id": 530, + "name": "ContractDefinition", + "src": "617:374:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 531, + "name": "PragmaDirective", + "src": "1053:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "id": 532, + "name": "StructuredDocumentation", + "src": "1086:279:1" + }, + { + "attributes": { + "functionSelector": "01ffc9a7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 541, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "id": 533, + "name": "StructuredDocumentation", + "src": "1390:340:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 534, + "name": "ElementaryTypeName", + "src": "1762:6:1" + } + ], + "id": 535, + "name": "VariableDeclaration", + "src": "1762:18:1" + } + ], + "id": 536, + "name": "ParameterList", + "src": "1761:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 537, + "name": "ElementaryTypeName", + "src": "1805:4:1" + } + ], + "id": 538, + "name": "VariableDeclaration", + "src": "1805:4:1" + } + ], + "id": 539, + "name": "ParameterList", + "src": "1804:6:1" + } + ], + "id": 540, + "name": "FunctionDefinition", + "src": "1735:76:1" + } + ], + "id": 541, + "name": "ContractDefinition", + "src": "1366:447:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 542, + "name": "PragmaDirective", + "src": "1873:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "id": 543, + "name": "StructuredDocumentation", + "src": "1907:67:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 544, + "name": "UserDefinedTypeName", + "src": "1996:7:1" + } + ], + "id": 545, + "name": "InheritanceSpecifier", + "src": "1996:7:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Transfer" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 546, + "name": "StructuredDocumentation", + "src": "2010:88:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "from", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 547, + "name": "ElementaryTypeName", + "src": "2118:7:1" + } + ], + "id": 548, + "name": "VariableDeclaration", + "src": "2118:20:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "to", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 549, + "name": "ElementaryTypeName", + "src": "2140:7:1" + } + ], + "id": 550, + "name": "VariableDeclaration", + "src": "2140:18:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 551, + "name": "ElementaryTypeName", + "src": "2160:7:1" + } + ], + "id": 552, + "name": "VariableDeclaration", + "src": "2160:23:1" + } + ], + "id": 553, + "name": "ParameterList", + "src": "2117:67:1" + } + ], + "id": 554, + "name": "EventDefinition", + "src": "2103:82:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Approval" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 555, + "name": "StructuredDocumentation", + "src": "2191:94:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 556, + "name": "ElementaryTypeName", + "src": "2305:7:1" + } + ], + "id": 557, + "name": "VariableDeclaration", + "src": "2305:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 558, + "name": "ElementaryTypeName", + "src": "2328:7:1" + } + ], + "id": 559, + "name": "VariableDeclaration", + "src": "2328:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 560, + "name": "ElementaryTypeName", + "src": "2354:7:1" + } + ], + "id": 561, + "name": "VariableDeclaration", + "src": "2354:23:1" + } + ], + "id": 562, + "name": "ParameterList", + "src": "2304:74:1" + } + ], + "id": 563, + "name": "EventDefinition", + "src": "2290:89:1" + }, + { + "attributes": { + "anonymous": false, + "name": "ApprovalForAll" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 564, + "name": "StructuredDocumentation", + "src": "2385:117:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 565, + "name": "ElementaryTypeName", + "src": "2528:7:1" + } + ], + "id": 566, + "name": "VariableDeclaration", + "src": "2528:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 567, + "name": "ElementaryTypeName", + "src": "2551:7:1" + } + ], + "id": 568, + "name": "VariableDeclaration", + "src": "2551:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 569, + "name": "ElementaryTypeName", + "src": "2577:4:1" + } + ], + "id": 570, + "name": "VariableDeclaration", + "src": "2577:13:1" + } + ], + "id": 571, + "name": "ParameterList", + "src": "2527:64:1" + } + ], + "id": 572, + "name": "EventDefinition", + "src": "2507:85:1" + }, + { + "attributes": { + "functionSelector": "70a08231", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "id": 573, + "name": "StructuredDocumentation", + "src": "2598:76:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 574, + "name": "ElementaryTypeName", + "src": "2698:7:1" + } + ], + "id": 575, + "name": "VariableDeclaration", + "src": "2698:13:1" + } + ], + "id": 576, + "name": "ParameterList", + "src": "2697:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "balance", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 577, + "name": "ElementaryTypeName", + "src": "2736:7:1" + } + ], + "id": 578, + "name": "VariableDeclaration", + "src": "2736:15:1" + } + ], + "id": 579, + "name": "ParameterList", + "src": "2735:17:1" + } + ], + "id": 580, + "name": "FunctionDefinition", + "src": "2679:74:1" + }, + { + "attributes": { + "functionSelector": "6352211e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 581, + "name": "StructuredDocumentation", + "src": "2759:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 582, + "name": "ElementaryTypeName", + "src": "2912:7:1" + } + ], + "id": 583, + "name": "VariableDeclaration", + "src": "2912:15:1" + } + ], + "id": 584, + "name": "ParameterList", + "src": "2911:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 585, + "name": "ElementaryTypeName", + "src": "2952:7:1" + } + ], + "id": 586, + "name": "VariableDeclaration", + "src": "2952:13:1" + } + ], + "id": 587, + "name": "ParameterList", + "src": "2951:15:1" + } + ], + "id": 588, + "name": "FunctionDefinition", + "src": "2895:72:1" + }, + { + "attributes": { + "functionSelector": "42842e0e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 589, + "name": "StructuredDocumentation", + "src": "2973:690:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 590, + "name": "ElementaryTypeName", + "src": "3694:7:1" + } + ], + "id": 591, + "name": "VariableDeclaration", + "src": "3694:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 592, + "name": "ElementaryTypeName", + "src": "3708:7:1" + } + ], + "id": 593, + "name": "VariableDeclaration", + "src": "3708:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 594, + "name": "ElementaryTypeName", + "src": "3720:7:1" + } + ], + "id": 595, + "name": "VariableDeclaration", + "src": "3720:15:1" + } + ], + "id": 596, + "name": "ParameterList", + "src": "3693:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 597, + "name": "ParameterList", + "src": "3745:0:1" + } + ], + "id": 598, + "name": "FunctionDefinition", + "src": "3668:78:1" + }, + { + "attributes": { + "functionSelector": "23b872dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "id": 599, + "name": "StructuredDocumentation", + "src": "3752:504:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 600, + "name": "ElementaryTypeName", + "src": "4283:7:1" + } + ], + "id": 601, + "name": "VariableDeclaration", + "src": "4283:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 602, + "name": "ElementaryTypeName", + "src": "4297:7:1" + } + ], + "id": 603, + "name": "VariableDeclaration", + "src": "4297:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 604, + "name": "ElementaryTypeName", + "src": "4309:7:1" + } + ], + "id": 605, + "name": "VariableDeclaration", + "src": "4309:15:1" + } + ], + "id": 606, + "name": "ParameterList", + "src": "4282:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 607, + "name": "ParameterList", + "src": "4334:0:1" + } + ], + "id": 608, + "name": "FunctionDefinition", + "src": "4261:74:1" + }, + { + "attributes": { + "functionSelector": "095ea7b3", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "id": 609, + "name": "StructuredDocumentation", + "src": "4341:452:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 610, + "name": "ElementaryTypeName", + "src": "4815:7:1" + } + ], + "id": 611, + "name": "VariableDeclaration", + "src": "4815:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 612, + "name": "ElementaryTypeName", + "src": "4827:7:1" + } + ], + "id": 613, + "name": "VariableDeclaration", + "src": "4827:15:1" + } + ], + "id": 614, + "name": "ParameterList", + "src": "4814:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 615, + "name": "ParameterList", + "src": "4852:0:1" + } + ], + "id": 616, + "name": "FunctionDefinition", + "src": "4798:55:1" + }, + { + "attributes": { + "functionSelector": "081812fc", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 617, + "name": "StructuredDocumentation", + "src": "4859:139:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 618, + "name": "ElementaryTypeName", + "src": "5024:7:1" + } + ], + "id": 619, + "name": "VariableDeclaration", + "src": "5024:15:1" + } + ], + "id": 620, + "name": "ParameterList", + "src": "5023:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 621, + "name": "ElementaryTypeName", + "src": "5064:7:1" + } + ], + "id": 622, + "name": "VariableDeclaration", + "src": "5064:16:1" + } + ], + "id": 623, + "name": "ParameterList", + "src": "5063:18:1" + } + ], + "id": 624, + "name": "FunctionDefinition", + "src": "5003:79:1" + }, + { + "attributes": { + "functionSelector": "a22cb465", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "id": 625, + "name": "StructuredDocumentation", + "src": "5088:309:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 626, + "name": "ElementaryTypeName", + "src": "5429:7:1" + } + ], + "id": 627, + "name": "VariableDeclaration", + "src": "5429:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_approved", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 628, + "name": "ElementaryTypeName", + "src": "5447:4:1" + } + ], + "id": 629, + "name": "VariableDeclaration", + "src": "5447:14:1" + } + ], + "id": 630, + "name": "ParameterList", + "src": "5428:34:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 631, + "name": "ParameterList", + "src": "5471:0:1" + } + ], + "id": 632, + "name": "FunctionDefinition", + "src": "5402:70:1" + }, + { + "attributes": { + "functionSelector": "e985e9c5", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "id": 633, + "name": "StructuredDocumentation", + "src": "5478:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 634, + "name": "ElementaryTypeName", + "src": "5647:7:1" + } + ], + "id": 635, + "name": "VariableDeclaration", + "src": "5647:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 636, + "name": "ElementaryTypeName", + "src": "5662:7:1" + } + ], + "id": 637, + "name": "VariableDeclaration", + "src": "5662:16:1" + } + ], + "id": 638, + "name": "ParameterList", + "src": "5646:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 639, + "name": "ElementaryTypeName", + "src": "5703:4:1" + } + ], + "id": 640, + "name": "VariableDeclaration", + "src": "5703:4:1" + } + ], + "id": 641, + "name": "ParameterList", + "src": "5702:6:1" + } + ], + "id": 642, + "name": "FunctionDefinition", + "src": "5621:88:1" + }, + { + "attributes": { + "functionSelector": "b88d4fde", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 643, + "name": "StructuredDocumentation", + "src": "5715:568:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 644, + "name": "ElementaryTypeName", + "src": "6314:7:1" + } + ], + "id": 645, + "name": "VariableDeclaration", + "src": "6314:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 646, + "name": "ElementaryTypeName", + "src": "6328:7:1" + } + ], + "id": 647, + "name": "VariableDeclaration", + "src": "6328:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 648, + "name": "ElementaryTypeName", + "src": "6340:7:1" + } + ], + "id": 649, + "name": "VariableDeclaration", + "src": "6340:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 654, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 650, + "name": "ElementaryTypeName", + "src": "6357:5:1" + } + ], + "id": 651, + "name": "VariableDeclaration", + "src": "6357:19:1" + } + ], + "id": 652, + "name": "ParameterList", + "src": "6313:64:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 653, + "name": "ParameterList", + "src": "6386:0:1" + } + ], + "id": 654, + "name": "FunctionDefinition", + "src": "6288:99:1" + } + ], + "id": 655, + "name": "ContractDefinition", + "src": "1975:4414:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 656, + "name": "PragmaDirective", + "src": "6457:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 657, + "name": "StructuredDocumentation", + "src": "6491:133:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 658, + "name": "UserDefinedTypeName", + "src": "6654:7:1" + } + ], + "id": 659, + "name": "InheritanceSpecifier", + "src": "6654:7:1" + }, + { + "attributes": { + "functionSelector": "06fdde03", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection name." + }, + "id": 660, + "name": "StructuredDocumentation", + "src": "6669:58:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 661, + "name": "ParameterList", + "src": "6745:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 665, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 662, + "name": "ElementaryTypeName", + "src": "6771:6:1" + } + ], + "id": 663, + "name": "VariableDeclaration", + "src": "6771:13:1" + } + ], + "id": 664, + "name": "ParameterList", + "src": "6770:15:1" + } + ], + "id": 665, + "name": "FunctionDefinition", + "src": "6732:54:1" + }, + { + "attributes": { + "functionSelector": "95d89b41", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection symbol." + }, + "id": 666, + "name": "StructuredDocumentation", + "src": "6792:60:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 667, + "name": "ParameterList", + "src": "6872:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 671, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 668, + "name": "ElementaryTypeName", + "src": "6898:6:1" + } + ], + "id": 669, + "name": "VariableDeclaration", + "src": "6898:13:1" + } + ], + "id": 670, + "name": "ParameterList", + "src": "6897:15:1" + } + ], + "id": 671, + "name": "FunctionDefinition", + "src": "6857:56:1" + }, + { + "attributes": { + "functionSelector": "c87b56dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "id": 672, + "name": "StructuredDocumentation", + "src": "6919:90:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 679, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 673, + "name": "ElementaryTypeName", + "src": "7032:7:1" + } + ], + "id": 674, + "name": "VariableDeclaration", + "src": "7032:15:1" + } + ], + "id": 675, + "name": "ParameterList", + "src": "7031:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 679, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 676, + "name": "ElementaryTypeName", + "src": "7072:6:1" + } + ], + "id": 677, + "name": "VariableDeclaration", + "src": "7072:13:1" + } + ], + "id": 678, + "name": "ParameterList", + "src": "7071:15:1" + } + ], + "id": 679, + "name": "FunctionDefinition", + "src": "7014:73:1" + } + ], + "id": 680, + "name": "ContractDefinition", + "src": "6625:464:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 681, + "name": "PragmaDirective", + "src": "7161:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 682, + "name": "StructuredDocumentation", + "src": "7195:136:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 683, + "name": "UserDefinedTypeName", + "src": "7363:7:1" + } + ], + "id": 684, + "name": "InheritanceSpecifier", + "src": "7363:7:1" + }, + { + "attributes": { + "functionSelector": "18160ddd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "id": 685, + "name": "StructuredDocumentation", + "src": "7378:82:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 686, + "name": "ParameterList", + "src": "7485:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 690, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 687, + "name": "ElementaryTypeName", + "src": "7511:7:1" + } + ], + "id": 688, + "name": "VariableDeclaration", + "src": "7511:7:1" + } + ], + "id": 689, + "name": "ParameterList", + "src": "7510:9:1" + } + ], + "id": 690, + "name": "FunctionDefinition", + "src": "7465:55:1" + }, + { + "attributes": { + "functionSelector": "2f745c59", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "id": 691, + "name": "StructuredDocumentation", + "src": "7526:171:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 692, + "name": "ElementaryTypeName", + "src": "7731:7:1" + } + ], + "id": 693, + "name": "VariableDeclaration", + "src": "7731:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 694, + "name": "ElementaryTypeName", + "src": "7746:7:1" + } + ], + "id": 695, + "name": "VariableDeclaration", + "src": "7746:13:1" + } + ], + "id": 696, + "name": "ParameterList", + "src": "7730:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 697, + "name": "ElementaryTypeName", + "src": "7784:7:1" + } + ], + "id": 698, + "name": "VariableDeclaration", + "src": "7784:15:1" + } + ], + "id": 699, + "name": "ParameterList", + "src": "7783:17:1" + } + ], + "id": 700, + "name": "FunctionDefinition", + "src": "7702:99:1" + }, + { + "attributes": { + "functionSelector": "4f6ccce7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "id": 701, + "name": "StructuredDocumentation", + "src": "7807:164:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 702, + "name": "ElementaryTypeName", + "src": "7998:7:1" + } + ], + "id": 703, + "name": "VariableDeclaration", + "src": "7998:13:1" + } + ], + "id": 704, + "name": "ParameterList", + "src": "7997:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 705, + "name": "ElementaryTypeName", + "src": "8036:7:1" + } + ], + "id": 706, + "name": "VariableDeclaration", + "src": "8036:7:1" + } + ], + "id": 707, + "name": "ParameterList", + "src": "8035:9:1" + } + ], + "id": 708, + "name": "FunctionDefinition", + "src": "7976:69:1" + } + ], + "id": 709, + "name": "ContractDefinition", + "src": "7332:715:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 710, + "name": "PragmaDirective", + "src": "8117:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "id": 711, + "name": "StructuredDocumentation", + "src": "8150:152:1" + }, + { + "attributes": { + "functionSelector": "150b7a02", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "onERC721Received", + "scope": 726, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "id": 712, + "name": "StructuredDocumentation", + "src": "8335:485:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 713, + "name": "ElementaryTypeName", + "src": "8851:7:1" + } + ], + "id": 714, + "name": "VariableDeclaration", + "src": "8851:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 715, + "name": "ElementaryTypeName", + "src": "8869:7:1" + } + ], + "id": 716, + "name": "VariableDeclaration", + "src": "8869:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 717, + "name": "ElementaryTypeName", + "src": "8883:7:1" + } + ], + "id": 718, + "name": "VariableDeclaration", + "src": "8883:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 725, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 719, + "name": "ElementaryTypeName", + "src": "8900:5:1" + } + ], + "id": 720, + "name": "VariableDeclaration", + "src": "8900:19:1" + } + ], + "id": 721, + "name": "ParameterList", + "src": "8850:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 722, + "name": "ElementaryTypeName", + "src": "8939:6:1" + } + ], + "id": 723, + "name": "VariableDeclaration", + "src": "8939:6:1" + } + ], + "id": 724, + "name": "ParameterList", + "src": "8938:8:1" + } + ], + "id": 725, + "name": "FunctionDefinition", + "src": "8825:122:1" + } + ], + "id": 726, + "name": "ContractDefinition", + "src": "8303:646:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 727, + "name": "PragmaDirective", + "src": "9009:31:1" + }, + { + "attributes": { + "abstract": true, + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "id": 728, + "name": "StructuredDocumentation", + "src": "9043:171:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 729, + "name": "UserDefinedTypeName", + "src": "9243:7:1" + } + ], + "id": 730, + "name": "InheritanceSpecifier", + "src": "9243:7:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 731, + "name": "ElementaryTypeName", + "src": "9340:6:1" + }, + { + "attributes": { + "hexvalue": "30783031666663396137", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 33540519", + "value": "0x01ffc9a7" + }, + "id": 732, + "name": "Literal", + "src": "9387:10:1" + } + ], + "id": 733, + "name": "VariableDeclaration", + "src": "9340:57:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_supportedInterfaces", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes4 => bool)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes4 => bool)" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 735, + "name": "ElementaryTypeName", + "src": "9499:6:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 736, + "name": "ElementaryTypeName", + "src": "9509:4:1" + } + ], + "id": 737, + "name": "Mapping", + "src": "9491:23:1" + }, + { + "attributes": { + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 734, + "name": "StructuredDocumentation", + "src": "9404:82:1" + } + ], + "id": 738, + "name": "VariableDeclaration", + "src": "9491:52:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 739, + "name": "ParameterList", + "src": "9562:2:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 740, + "name": "ParameterList", + "src": "9565:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 741, + "name": "Identifier", + "src": "9711:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 733, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC165" + }, + "id": 742, + "name": "Identifier", + "src": "9730:20:1" + } + ], + "id": 743, + "name": "FunctionCall", + "src": "9711:40:1" + } + ], + "id": 744, + "name": "ExpressionStatement", + "src": "9711:40:1" + } + ], + "id": 745, + "name": "Block", + "src": "9565:193:1" + } + ], + "id": 746, + "name": "FunctionDefinition", + "src": "9550:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 540 + ], + "functionSelector": "01ffc9a7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 781, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "id": 747, + "name": "StructuredDocumentation", + "src": "9764:139:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 751, + "name": "OverrideSpecifier", + "src": "9975:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 748, + "name": "ElementaryTypeName", + "src": "9935:6:1" + } + ], + "id": 749, + "name": "VariableDeclaration", + "src": "9935:18:1" + } + ], + "id": 750, + "name": "ParameterList", + "src": "9934:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 752, + "name": "ElementaryTypeName", + "src": "9993:4:1" + } + ], + "id": 753, + "name": "VariableDeclaration", + "src": "9993:4:1" + } + ], + "id": 754, + "name": "ParameterList", + "src": "9992:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 754 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 755, + "name": "Identifier", + "src": "10016:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 749, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 756, + "name": "Identifier", + "src": "10037:11:1" + } + ], + "id": 757, + "name": "IndexAccess", + "src": "10016:33:1" + } + ], + "id": 758, + "name": "Return", + "src": "10009:40:1" + } + ], + "id": 759, + "name": "Block", + "src": "9999:57:1" + } + ], + "id": 760, + "name": "FunctionDefinition", + "src": "9908:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_registerInterface", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 761, + "name": "StructuredDocumentation", + "src": "10062:383:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 780, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 762, + "name": "ElementaryTypeName", + "src": "10478:6:1" + } + ], + "id": 763, + "name": "VariableDeclaration", + "src": "10478:18:1" + } + ], + "id": 764, + "name": "ParameterList", + "src": "10477:20:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 765, + "name": "ParameterList", + "src": "10515:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 766, + "name": "Identifier", + "src": "10525:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 767, + "name": "Identifier", + "src": "10533:11:1" + }, + { + "attributes": { + "hexvalue": "30786666666666666666", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4294967295", + "value": "0xffffffff" + }, + "id": 768, + "name": "Literal", + "src": "10548:10:1" + } + ], + "id": 769, + "name": "BinaryOperation", + "src": "10533:25:1" + }, + { + "attributes": { + "hexvalue": "4552433136353a20696e76616c696420696e74657266616365206964", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC165: invalid interface id\"", + "value": "ERC165: invalid interface id" + }, + "id": 770, + "name": "Literal", + "src": "10560:30:1" + } + ], + "id": 771, + "name": "FunctionCall", + "src": "10525:66:1" + } + ], + "id": 772, + "name": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 773, + "name": "Identifier", + "src": "10601:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 774, + "name": "Identifier", + "src": "10622:11:1" + } + ], + "id": 775, + "name": "IndexAccess", + "src": "10601:33:1" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 776, + "name": "Literal", + "src": "10637:4:1" + } + ], + "id": 777, + "name": "Assignment", + "src": "10601:40:1" + } + ], + "id": 778, + "name": "ExpressionStatement", + "src": "10601:40:1" + } + ], + "id": 779, + "name": "Block", + "src": "10515:133:1" + } + ], + "id": 780, + "name": "FunctionDefinition", + "src": "10450:198:1" + } + ], + "id": 781, + "name": "ContractDefinition", + "src": "9215:1435:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 782, + "name": "PragmaDirective", + "src": "10703:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "id": 783, + "name": "StructuredDocumentation", + "src": "10736:563:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryAdd", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 784, + "name": "StructuredDocumentation", + "src": "11323:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 785, + "name": "ElementaryTypeName", + "src": "11475:7:1" + } + ], + "id": 786, + "name": "VariableDeclaration", + "src": "11475:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 787, + "name": "ElementaryTypeName", + "src": "11486:7:1" + } + ], + "id": 788, + "name": "VariableDeclaration", + "src": "11486:9:1" + } + ], + "id": 789, + "name": "ParameterList", + "src": "11474:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 790, + "name": "ElementaryTypeName", + "src": "11520:4:1" + } + ], + "id": 791, + "name": "VariableDeclaration", + "src": "11520:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 792, + "name": "ElementaryTypeName", + "src": "11526:7:1" + } + ], + "id": 793, + "name": "VariableDeclaration", + "src": "11526:7:1" + } + ], + "id": 794, + "name": "ParameterList", + "src": "11519:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 796 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 813, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 795, + "name": "ElementaryTypeName", + "src": "11545:7:1" + } + ], + "id": 796, + "name": "VariableDeclaration", + "src": "11545:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 797, + "name": "Identifier", + "src": "11557:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 788, + "type": "uint256", + "value": "b" + }, + "id": 798, + "name": "Identifier", + "src": "11561:1:1" + } + ], + "id": 799, + "name": "BinaryOperation", + "src": "11557:5:1" + } + ], + "id": 800, + "name": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 801, + "name": "Identifier", + "src": "11576:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 802, + "name": "Identifier", + "src": "11580:1:1" + } + ], + "id": 803, + "name": "BinaryOperation", + "src": "11576:5:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 804, + "name": "Literal", + "src": "11591:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 805, + "name": "Literal", + "src": "11598:1:1" + } + ], + "id": 806, + "name": "TupleExpression", + "src": "11590:10:1" + } + ], + "id": 807, + "name": "Return", + "src": "11583:17:1" + } + ], + "id": 808, + "name": "IfStatement", + "src": "11572:28:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 809, + "name": "Literal", + "src": "11618:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 810, + "name": "Identifier", + "src": "11624:1:1" + } + ], + "id": 811, + "name": "TupleExpression", + "src": "11617:9:1" + } + ], + "id": 812, + "name": "Return", + "src": "11610:16:1" + } + ], + "id": 813, + "name": "Block", + "src": "11535:98:1" + } + ], + "id": 814, + "name": "FunctionDefinition", + "src": "11459:174:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "trySub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 815, + "name": "StructuredDocumentation", + "src": "11639:135:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 816, + "name": "ElementaryTypeName", + "src": "11795:7:1" + } + ], + "id": 817, + "name": "VariableDeclaration", + "src": "11795:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 818, + "name": "ElementaryTypeName", + "src": "11806:7:1" + } + ], + "id": 819, + "name": "VariableDeclaration", + "src": "11806:9:1" + } + ], + "id": 820, + "name": "ParameterList", + "src": "11794:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 821, + "name": "ElementaryTypeName", + "src": "11840:4:1" + } + ], + "id": 822, + "name": "VariableDeclaration", + "src": "11840:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 823, + "name": "ElementaryTypeName", + "src": "11846:7:1" + } + ], + "id": 824, + "name": "VariableDeclaration", + "src": "11846:7:1" + } + ], + "id": 825, + "name": "ParameterList", + "src": "11839:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 826, + "name": "Identifier", + "src": "11869:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 827, + "name": "Identifier", + "src": "11873:1:1" + } + ], + "id": 828, + "name": "BinaryOperation", + "src": "11869:5:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 829, + "name": "Literal", + "src": "11884:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 830, + "name": "Literal", + "src": "11891:1:1" + } + ], + "id": 831, + "name": "TupleExpression", + "src": "11883:10:1" + } + ], + "id": 832, + "name": "Return", + "src": "11876:17:1" + } + ], + "id": 833, + "name": "IfStatement", + "src": "11865:28:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 834, + "name": "Literal", + "src": "11911:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 835, + "name": "Identifier", + "src": "11917:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 836, + "name": "Identifier", + "src": "11921:1:1" + } + ], + "id": 837, + "name": "BinaryOperation", + "src": "11917:5:1" + } + ], + "id": 838, + "name": "TupleExpression", + "src": "11910:13:1" + } + ], + "id": 839, + "name": "Return", + "src": "11903:20:1" + } + ], + "id": 840, + "name": "Block", + "src": "11855:75:1" + } + ], + "id": 841, + "name": "FunctionDefinition", + "src": "11779:151:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 842, + "name": "StructuredDocumentation", + "src": "11936:137:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 843, + "name": "ElementaryTypeName", + "src": "12094:7:1" + } + ], + "id": 844, + "name": "VariableDeclaration", + "src": "12094:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 845, + "name": "ElementaryTypeName", + "src": "12105:7:1" + } + ], + "id": 846, + "name": "VariableDeclaration", + "src": "12105:9:1" + } + ], + "id": 847, + "name": "ParameterList", + "src": "12093:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 848, + "name": "ElementaryTypeName", + "src": "12139:4:1" + } + ], + "id": 849, + "name": "VariableDeclaration", + "src": "12139:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 850, + "name": "ElementaryTypeName", + "src": "12145:7:1" + } + ], + "id": 851, + "name": "VariableDeclaration", + "src": "12145:7:1" + } + ], + "id": 852, + "name": "ParameterList", + "src": "12138:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 853, + "name": "Identifier", + "src": "12386:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 854, + "name": "Literal", + "src": "12391:1:1" + } + ], + "id": 855, + "name": "BinaryOperation", + "src": "12386:6:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 856, + "name": "Literal", + "src": "12402:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 857, + "name": "Literal", + "src": "12408:1:1" + } + ], + "id": 858, + "name": "TupleExpression", + "src": "12401:9:1" + } + ], + "id": 859, + "name": "Return", + "src": "12394:16:1" + } + ], + "id": 860, + "name": "IfStatement", + "src": "12382:28:1" + }, + { + "attributes": { + "assignments": [ + 862 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 881, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 861, + "name": "ElementaryTypeName", + "src": "12420:7:1" + } + ], + "id": 862, + "name": "VariableDeclaration", + "src": "12420:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 863, + "name": "Identifier", + "src": "12432:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 864, + "name": "Identifier", + "src": "12436:1:1" + } + ], + "id": 865, + "name": "BinaryOperation", + "src": "12432:5:1" + } + ], + "id": 866, + "name": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 867, + "name": "Identifier", + "src": "12451:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 868, + "name": "Identifier", + "src": "12455:1:1" + } + ], + "id": 869, + "name": "BinaryOperation", + "src": "12451:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 870, + "name": "Identifier", + "src": "12460:1:1" + } + ], + "id": 871, + "name": "BinaryOperation", + "src": "12451:10:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 872, + "name": "Literal", + "src": "12471:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 873, + "name": "Literal", + "src": "12478:1:1" + } + ], + "id": 874, + "name": "TupleExpression", + "src": "12470:10:1" + } + ], + "id": 875, + "name": "Return", + "src": "12463:17:1" + } + ], + "id": 876, + "name": "IfStatement", + "src": "12447:33:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 877, + "name": "Literal", + "src": "12498:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 878, + "name": "Identifier", + "src": "12504:1:1" + } + ], + "id": 879, + "name": "TupleExpression", + "src": "12497:9:1" + } + ], + "id": 880, + "name": "Return", + "src": "12490:16:1" + } + ], + "id": 881, + "name": "Block", + "src": "12154:359:1" + } + ], + "id": 882, + "name": "FunctionDefinition", + "src": "12078:435:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryDiv", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 883, + "name": "StructuredDocumentation", + "src": "12519:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 884, + "name": "ElementaryTypeName", + "src": "12678:7:1" + } + ], + "id": 885, + "name": "VariableDeclaration", + "src": "12678:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 886, + "name": "ElementaryTypeName", + "src": "12689:7:1" + } + ], + "id": 887, + "name": "VariableDeclaration", + "src": "12689:9:1" + } + ], + "id": 888, + "name": "ParameterList", + "src": "12677:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 889, + "name": "ElementaryTypeName", + "src": "12723:4:1" + } + ], + "id": 890, + "name": "VariableDeclaration", + "src": "12723:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 891, + "name": "ElementaryTypeName", + "src": "12729:7:1" + } + ], + "id": 892, + "name": "VariableDeclaration", + "src": "12729:7:1" + } + ], + "id": 893, + "name": "ParameterList", + "src": "12722:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 894, + "name": "Identifier", + "src": "12752:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 895, + "name": "Literal", + "src": "12757:1:1" + } + ], + "id": 896, + "name": "BinaryOperation", + "src": "12752:6:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 897, + "name": "Literal", + "src": "12768:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 898, + "name": "Literal", + "src": "12775:1:1" + } + ], + "id": 899, + "name": "TupleExpression", + "src": "12767:10:1" + } + ], + "id": 900, + "name": "Return", + "src": "12760:17:1" + } + ], + "id": 901, + "name": "IfStatement", + "src": "12748:29:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 902, + "name": "Literal", + "src": "12795:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 885, + "type": "uint256", + "value": "a" + }, + "id": 903, + "name": "Identifier", + "src": "12801:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 904, + "name": "Identifier", + "src": "12805:1:1" + } + ], + "id": 905, + "name": "BinaryOperation", + "src": "12801:5:1" + } + ], + "id": 906, + "name": "TupleExpression", + "src": "12794:13:1" + } + ], + "id": 907, + "name": "Return", + "src": "12787:20:1" + } + ], + "id": 908, + "name": "Block", + "src": "12738:76:1" + } + ], + "id": 909, + "name": "FunctionDefinition", + "src": "12662:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 910, + "name": "StructuredDocumentation", + "src": "12820:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 911, + "name": "ElementaryTypeName", + "src": "12989:7:1" + } + ], + "id": 912, + "name": "VariableDeclaration", + "src": "12989:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 913, + "name": "ElementaryTypeName", + "src": "13000:7:1" + } + ], + "id": 914, + "name": "VariableDeclaration", + "src": "13000:9:1" + } + ], + "id": 915, + "name": "ParameterList", + "src": "12988:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 916, + "name": "ElementaryTypeName", + "src": "13034:4:1" + } + ], + "id": 917, + "name": "VariableDeclaration", + "src": "13034:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 918, + "name": "ElementaryTypeName", + "src": "13040:7:1" + } + ], + "id": 919, + "name": "VariableDeclaration", + "src": "13040:7:1" + } + ], + "id": 920, + "name": "ParameterList", + "src": "13033:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 921, + "name": "Identifier", + "src": "13063:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 922, + "name": "Literal", + "src": "13068:1:1" + } + ], + "id": 923, + "name": "BinaryOperation", + "src": "13063:6:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 924, + "name": "Literal", + "src": "13079:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 925, + "name": "Literal", + "src": "13086:1:1" + } + ], + "id": 926, + "name": "TupleExpression", + "src": "13078:10:1" + } + ], + "id": 927, + "name": "Return", + "src": "13071:17:1" + } + ], + "id": 928, + "name": "IfStatement", + "src": "13059:29:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 929, + "name": "Literal", + "src": "13106:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 912, + "type": "uint256", + "value": "a" + }, + "id": 930, + "name": "Identifier", + "src": "13112:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 931, + "name": "Identifier", + "src": "13116:1:1" + } + ], + "id": 932, + "name": "BinaryOperation", + "src": "13112:5:1" + } + ], + "id": 933, + "name": "TupleExpression", + "src": "13105:13:1" + } + ], + "id": 934, + "name": "Return", + "src": "13098:20:1" + } + ], + "id": 935, + "name": "Block", + "src": "13049:76:1" + } + ], + "id": 936, + "name": "FunctionDefinition", + "src": "12973:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 937, + "name": "StructuredDocumentation", + "src": "13131:224:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 938, + "name": "ElementaryTypeName", + "src": "13373:7:1" + } + ], + "id": 939, + "name": "VariableDeclaration", + "src": "13373:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 940, + "name": "ElementaryTypeName", + "src": "13384:7:1" + } + ], + "id": 941, + "name": "VariableDeclaration", + "src": "13384:9:1" + } + ], + "id": 942, + "name": "ParameterList", + "src": "13372:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 943, + "name": "ElementaryTypeName", + "src": "13418:7:1" + } + ], + "id": 944, + "name": "VariableDeclaration", + "src": "13418:7:1" + } + ], + "id": 945, + "name": "ParameterList", + "src": "13417:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 947 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 961, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 946, + "name": "ElementaryTypeName", + "src": "13437:7:1" + } + ], + "id": 947, + "name": "VariableDeclaration", + "src": "13437:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 948, + "name": "Identifier", + "src": "13449:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 941, + "type": "uint256", + "value": "b" + }, + "id": 949, + "name": "Identifier", + "src": "13453:1:1" + } + ], + "id": 950, + "name": "BinaryOperation", + "src": "13449:5:1" + } + ], + "id": 951, + "name": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 952, + "name": "Identifier", + "src": "13464:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 953, + "name": "Identifier", + "src": "13472:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 954, + "name": "Identifier", + "src": "13477:1:1" + } + ], + "id": 955, + "name": "BinaryOperation", + "src": "13472:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: addition overflow\"", + "value": "SafeMath: addition overflow" + }, + "id": 956, + "name": "Literal", + "src": "13480:29:1" + } + ], + "id": 957, + "name": "FunctionCall", + "src": "13464:46:1" + } + ], + "id": 958, + "name": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "attributes": { + "functionReturnParameters": 945 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 959, + "name": "Identifier", + "src": "13527:1:1" + } + ], + "id": 960, + "name": "Return", + "src": "13520:8:1" + } + ], + "id": 961, + "name": "Block", + "src": "13427:108:1" + } + ], + "id": 962, + "name": "FunctionDefinition", + "src": "13360:175:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 963, + "name": "StructuredDocumentation", + "src": "13541:260:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 964, + "name": "ElementaryTypeName", + "src": "13819:7:1" + } + ], + "id": 965, + "name": "VariableDeclaration", + "src": "13819:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 966, + "name": "ElementaryTypeName", + "src": "13830:7:1" + } + ], + "id": 967, + "name": "VariableDeclaration", + "src": "13830:9:1" + } + ], + "id": 968, + "name": "ParameterList", + "src": "13818:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 969, + "name": "ElementaryTypeName", + "src": "13864:7:1" + } + ], + "id": 970, + "name": "VariableDeclaration", + "src": "13864:7:1" + } + ], + "id": 971, + "name": "ParameterList", + "src": "13863:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 972, + "name": "Identifier", + "src": "13883:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 973, + "name": "Identifier", + "src": "13891:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 974, + "name": "Identifier", + "src": "13896:1:1" + } + ], + "id": 975, + "name": "BinaryOperation", + "src": "13891:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: subtraction overflow\"", + "value": "SafeMath: subtraction overflow" + }, + "id": 976, + "name": "Literal", + "src": "13899:32:1" + } + ], + "id": 977, + "name": "FunctionCall", + "src": "13883:49:1" + } + ], + "id": 978, + "name": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "attributes": { + "functionReturnParameters": 971 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 979, + "name": "Identifier", + "src": "13949:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 980, + "name": "Identifier", + "src": "13953:1:1" + } + ], + "id": 981, + "name": "BinaryOperation", + "src": "13949:5:1" + } + ], + "id": 982, + "name": "Return", + "src": "13942:12:1" + } + ], + "id": 983, + "name": "Block", + "src": "13873:88:1" + } + ], + "id": 984, + "name": "FunctionDefinition", + "src": "13806:155:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 985, + "name": "StructuredDocumentation", + "src": "13967:236:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 986, + "name": "ElementaryTypeName", + "src": "14221:7:1" + } + ], + "id": 987, + "name": "VariableDeclaration", + "src": "14221:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 988, + "name": "ElementaryTypeName", + "src": "14232:7:1" + } + ], + "id": 989, + "name": "VariableDeclaration", + "src": "14232:9:1" + } + ], + "id": 990, + "name": "ParameterList", + "src": "14220:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 991, + "name": "ElementaryTypeName", + "src": "14266:7:1" + } + ], + "id": 992, + "name": "VariableDeclaration", + "src": "14266:7:1" + } + ], + "id": 993, + "name": "ParameterList", + "src": "14265:9:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 994, + "name": "Identifier", + "src": "14289:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 995, + "name": "Literal", + "src": "14294:1:1" + } + ], + "id": 996, + "name": "BinaryOperation", + "src": "14289:6:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 997, + "name": "Literal", + "src": "14304:1:1" + } + ], + "id": 998, + "name": "Return", + "src": "14297:8:1" + } + ], + "id": 999, + "name": "IfStatement", + "src": "14285:20:1" + }, + { + "attributes": { + "assignments": [ + 1001 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 1017, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1000, + "name": "ElementaryTypeName", + "src": "14315:7:1" + } + ], + "id": 1001, + "name": "VariableDeclaration", + "src": "14315:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1002, + "name": "Identifier", + "src": "14327:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1003, + "name": "Identifier", + "src": "14331:1:1" + } + ], + "id": 1004, + "name": "BinaryOperation", + "src": "14327:5:1" + } + ], + "id": 1005, + "name": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1006, + "name": "Identifier", + "src": "14342:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1007, + "name": "Identifier", + "src": "14350:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1008, + "name": "Identifier", + "src": "14354:1:1" + } + ], + "id": 1009, + "name": "BinaryOperation", + "src": "14350:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1010, + "name": "Identifier", + "src": "14359:1:1" + } + ], + "id": 1011, + "name": "BinaryOperation", + "src": "14350:10:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: multiplication overflow\"", + "value": "SafeMath: multiplication overflow" + }, + "id": 1012, + "name": "Literal", + "src": "14362:35:1" + } + ], + "id": 1013, + "name": "FunctionCall", + "src": "14342:56:1" + } + ], + "id": 1014, + "name": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1015, + "name": "Identifier", + "src": "14415:1:1" + } + ], + "id": 1016, + "name": "Return", + "src": "14408:8:1" + } + ], + "id": 1017, + "name": "Block", + "src": "14275:148:1" + } + ], + "id": 1018, + "name": "FunctionDefinition", + "src": "14208:215:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1019, + "name": "StructuredDocumentation", + "src": "14429:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1020, + "name": "ElementaryTypeName", + "src": "14900:7:1" + } + ], + "id": 1021, + "name": "VariableDeclaration", + "src": "14900:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1022, + "name": "ElementaryTypeName", + "src": "14911:7:1" + } + ], + "id": 1023, + "name": "VariableDeclaration", + "src": "14911:9:1" + } + ], + "id": 1024, + "name": "ParameterList", + "src": "14899:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1025, + "name": "ElementaryTypeName", + "src": "14945:7:1" + } + ], + "id": 1026, + "name": "VariableDeclaration", + "src": "14945:7:1" + } + ], + "id": 1027, + "name": "ParameterList", + "src": "14944:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1028, + "name": "Identifier", + "src": "14964:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1029, + "name": "Identifier", + "src": "14972:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1030, + "name": "Literal", + "src": "14976:1:1" + } + ], + "id": 1031, + "name": "BinaryOperation", + "src": "14972:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206469766973696f6e206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: division by zero\"", + "value": "SafeMath: division by zero" + }, + "id": 1032, + "name": "Literal", + "src": "14979:28:1" + } + ], + "id": 1033, + "name": "FunctionCall", + "src": "14964:44:1" + } + ], + "id": 1034, + "name": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "attributes": { + "functionReturnParameters": 1027 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1021, + "type": "uint256", + "value": "a" + }, + "id": 1035, + "name": "Identifier", + "src": "15025:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1036, + "name": "Identifier", + "src": "15029:1:1" + } + ], + "id": 1037, + "name": "BinaryOperation", + "src": "15025:5:1" + } + ], + "id": 1038, + "name": "Return", + "src": "15018:12:1" + } + ], + "id": 1039, + "name": "Block", + "src": "14954:83:1" + } + ], + "id": 1040, + "name": "FunctionDefinition", + "src": "14887:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1041, + "name": "StructuredDocumentation", + "src": "15043:442:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1042, + "name": "ElementaryTypeName", + "src": "15503:7:1" + } + ], + "id": 1043, + "name": "VariableDeclaration", + "src": "15503:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1044, + "name": "ElementaryTypeName", + "src": "15514:7:1" + } + ], + "id": 1045, + "name": "VariableDeclaration", + "src": "15514:9:1" + } + ], + "id": 1046, + "name": "ParameterList", + "src": "15502:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1047, + "name": "ElementaryTypeName", + "src": "15548:7:1" + } + ], + "id": 1048, + "name": "VariableDeclaration", + "src": "15548:7:1" + } + ], + "id": 1049, + "name": "ParameterList", + "src": "15547:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1050, + "name": "Identifier", + "src": "15567:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1051, + "name": "Identifier", + "src": "15575:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1052, + "name": "Literal", + "src": "15579:1:1" + } + ], + "id": 1053, + "name": "BinaryOperation", + "src": "15575:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: modulo by zero\"", + "value": "SafeMath: modulo by zero" + }, + "id": 1054, + "name": "Literal", + "src": "15582:26:1" + } + ], + "id": 1055, + "name": "FunctionCall", + "src": "15567:42:1" + } + ], + "id": 1056, + "name": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "attributes": { + "functionReturnParameters": 1049 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1043, + "type": "uint256", + "value": "a" + }, + "id": 1057, + "name": "Identifier", + "src": "15626:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1058, + "name": "Identifier", + "src": "15630:1:1" + } + ], + "id": 1059, + "name": "BinaryOperation", + "src": "15626:5:1" + } + ], + "id": 1060, + "name": "Return", + "src": "15619:12:1" + } + ], + "id": 1061, + "name": "Block", + "src": "15557:81:1" + } + ], + "id": 1062, + "name": "FunctionDefinition", + "src": "15490:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1063, + "name": "StructuredDocumentation", + "src": "15644:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1064, + "name": "ElementaryTypeName", + "src": "16115:7:1" + } + ], + "id": 1065, + "name": "VariableDeclaration", + "src": "16115:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1066, + "name": "ElementaryTypeName", + "src": "16126:7:1" + } + ], + "id": 1067, + "name": "VariableDeclaration", + "src": "16126:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1086, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1068, + "name": "ElementaryTypeName", + "src": "16137:6:1" + } + ], + "id": 1069, + "name": "VariableDeclaration", + "src": "16137:26:1" + } + ], + "id": 1070, + "name": "ParameterList", + "src": "16114:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1071, + "name": "ElementaryTypeName", + "src": "16188:7:1" + } + ], + "id": 1072, + "name": "VariableDeclaration", + "src": "16188:7:1" + } + ], + "id": 1073, + "name": "ParameterList", + "src": "16187:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1074, + "name": "Identifier", + "src": "16207:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1075, + "name": "Identifier", + "src": "16215:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1076, + "name": "Identifier", + "src": "16220:1:1" + } + ], + "id": 1077, + "name": "BinaryOperation", + "src": "16215:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1069, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1078, + "name": "Identifier", + "src": "16223:12:1" + } + ], + "id": 1079, + "name": "FunctionCall", + "src": "16207:29:1" + } + ], + "id": 1080, + "name": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "attributes": { + "functionReturnParameters": 1073 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1081, + "name": "Identifier", + "src": "16253:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1082, + "name": "Identifier", + "src": "16257:1:1" + } + ], + "id": 1083, + "name": "BinaryOperation", + "src": "16253:5:1" + } + ], + "id": 1084, + "name": "Return", + "src": "16246:12:1" + } + ], + "id": 1085, + "name": "Block", + "src": "16197:68:1" + } + ], + "id": 1086, + "name": "FunctionDefinition", + "src": "16102:163:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1087, + "name": "StructuredDocumentation", + "src": "16271:646:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1088, + "name": "ElementaryTypeName", + "src": "16935:7:1" + } + ], + "id": 1089, + "name": "VariableDeclaration", + "src": "16935:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1090, + "name": "ElementaryTypeName", + "src": "16946:7:1" + } + ], + "id": 1091, + "name": "VariableDeclaration", + "src": "16946:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1110, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1092, + "name": "ElementaryTypeName", + "src": "16957:6:1" + } + ], + "id": 1093, + "name": "VariableDeclaration", + "src": "16957:26:1" + } + ], + "id": 1094, + "name": "ParameterList", + "src": "16934:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1095, + "name": "ElementaryTypeName", + "src": "17008:7:1" + } + ], + "id": 1096, + "name": "VariableDeclaration", + "src": "17008:7:1" + } + ], + "id": 1097, + "name": "ParameterList", + "src": "17007:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1098, + "name": "Identifier", + "src": "17027:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1099, + "name": "Identifier", + "src": "17035:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1100, + "name": "Literal", + "src": "17039:1:1" + } + ], + "id": 1101, + "name": "BinaryOperation", + "src": "17035:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1093, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1102, + "name": "Identifier", + "src": "17042:12:1" + } + ], + "id": 1103, + "name": "FunctionCall", + "src": "17027:28:1" + } + ], + "id": 1104, + "name": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1097 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1089, + "type": "uint256", + "value": "a" + }, + "id": 1105, + "name": "Identifier", + "src": "17072:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1106, + "name": "Identifier", + "src": "17076:1:1" + } + ], + "id": 1107, + "name": "BinaryOperation", + "src": "17072:5:1" + } + ], + "id": 1108, + "name": "Return", + "src": "17065:12:1" + } + ], + "id": 1109, + "name": "Block", + "src": "17017:67:1" + } + ], + "id": 1110, + "name": "FunctionDefinition", + "src": "16922:162:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1111, + "name": "StructuredDocumentation", + "src": "17090:635:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1112, + "name": "ElementaryTypeName", + "src": "17743:7:1" + } + ], + "id": 1113, + "name": "VariableDeclaration", + "src": "17743:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1114, + "name": "ElementaryTypeName", + "src": "17754:7:1" + } + ], + "id": 1115, + "name": "VariableDeclaration", + "src": "17754:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1134, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1116, + "name": "ElementaryTypeName", + "src": "17765:6:1" + } + ], + "id": 1117, + "name": "VariableDeclaration", + "src": "17765:26:1" + } + ], + "id": 1118, + "name": "ParameterList", + "src": "17742:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1119, + "name": "ElementaryTypeName", + "src": "17816:7:1" + } + ], + "id": 1120, + "name": "VariableDeclaration", + "src": "17816:7:1" + } + ], + "id": 1121, + "name": "ParameterList", + "src": "17815:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1122, + "name": "Identifier", + "src": "17835:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1123, + "name": "Identifier", + "src": "17843:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1124, + "name": "Literal", + "src": "17847:1:1" + } + ], + "id": 1125, + "name": "BinaryOperation", + "src": "17843:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1117, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1126, + "name": "Identifier", + "src": "17850:12:1" + } + ], + "id": 1127, + "name": "FunctionCall", + "src": "17835:28:1" + } + ], + "id": 1128, + "name": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1121 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "uint256", + "value": "a" + }, + "id": 1129, + "name": "Identifier", + "src": "17880:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1130, + "name": "Identifier", + "src": "17884:1:1" + } + ], + "id": 1131, + "name": "BinaryOperation", + "src": "17880:5:1" + } + ], + "id": 1132, + "name": "Return", + "src": "17873:12:1" + } + ], + "id": 1133, + "name": "Block", + "src": "17825:67:1" + } + ], + "id": 1134, + "name": "FunctionDefinition", + "src": "17730:162:1" + } + ], + "id": 1135, + "name": "ContractDefinition", + "src": "11300:6594:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 1136, + "name": "PragmaDirective", + "src": "17947:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Collection of functions related to the address type" + }, + "id": 1137, + "name": "StructuredDocumentation", + "src": "17980:67:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isContract", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1138, + "name": "StructuredDocumentation", + "src": "18070:565:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "account", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1139, + "name": "ElementaryTypeName", + "src": "18660:7:1" + } + ], + "id": 1140, + "name": "VariableDeclaration", + "src": "18660:15:1" + } + ], + "id": 1141, + "name": "ParameterList", + "src": "18659:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1142, + "name": "ElementaryTypeName", + "src": "18700:4:1" + } + ], + "id": 1143, + "name": "VariableDeclaration", + "src": "18700:4:1" + } + ], + "id": 1144, + "name": "ParameterList", + "src": "18699:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1146 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "size", + "scope": 1153, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1145, + "name": "ElementaryTypeName", + "src": "18903:7:1" + } + ], + "id": 1146, + "name": "VariableDeclaration", + "src": "18903:12:1" + } + ], + "id": 1147, + "name": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "operations": "{ size := extcodesize(account) }" + }, + "children": [], + "id": 1148, + "name": "InlineAssembly", + "src": "18981:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1144 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1146, + "type": "uint256", + "value": "size" + }, + "id": 1149, + "name": "Identifier", + "src": "19038:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1150, + "name": "Literal", + "src": "19045:1:1" + } + ], + "id": 1151, + "name": "BinaryOperation", + "src": "19038:8:1" + } + ], + "id": 1152, + "name": "Return", + "src": "19031:15:1" + } + ], + "id": 1153, + "name": "Block", + "src": "18706:347:1" + } + ], + "id": 1154, + "name": "FunctionDefinition", + "src": "18640:413:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sendValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1155, + "name": "StructuredDocumentation", + "src": "19059:906:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "recipient", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 1156, + "name": "ElementaryTypeName", + "src": "19989:15:1" + } + ], + "id": 1157, + "name": "VariableDeclaration", + "src": "19989:25:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "amount", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1158, + "name": "ElementaryTypeName", + "src": "20016:7:1" + } + ], + "id": 1159, + "name": "VariableDeclaration", + "src": "20016:14:1" + } + ], + "id": 1160, + "name": "ParameterList", + "src": "19988:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1161, + "name": "ParameterList", + "src": "20041:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1162, + "name": "Identifier", + "src": "20051:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1163, + "name": "ElementaryTypeName", + "src": "20059:7:1" + } + ], + "id": 1164, + "name": "ElementaryTypeNameExpression", + "src": "20059:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1165, + "name": "Identifier", + "src": "20067:4:1" + } + ], + "id": 1166, + "name": "FunctionCall", + "src": "20059:13:1" + } + ], + "id": 1167, + "name": "MemberAccess", + "src": "20059:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1168, + "name": "Identifier", + "src": "20084:6:1" + } + ], + "id": 1169, + "name": "BinaryOperation", + "src": "20059:31:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance\"", + "value": "Address: insufficient balance" + }, + "id": 1170, + "name": "Literal", + "src": "20092:31:1" + } + ], + "id": 1171, + "name": "FunctionCall", + "src": "20051:73:1" + } + ], + "id": 1172, + "name": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "attributes": { + "assignments": [ + 1174, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1187, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1173, + "name": "ElementaryTypeName", + "src": "20213:4:1" + } + ], + "id": 1174, + "name": "VariableDeclaration", + "src": "20213:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1157, + "type": "address payable", + "value": "recipient" + }, + "id": 1175, + "name": "Identifier", + "src": "20231:9:1" + } + ], + "id": 1176, + "name": "MemberAccess", + "src": "20231:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1177, + "name": "Identifier", + "src": "20254:6:1" + } + ], + "id": 1178, + "name": "FunctionCallOptions", + "src": "20231:31:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 1179, + "name": "Literal", + "src": "20263:2:1" + } + ], + "id": 1180, + "name": "FunctionCall", + "src": "20231:35:1" + } + ], + "id": 1181, + "name": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1182, + "name": "Identifier", + "src": "20276:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1174, + "type": "bool", + "value": "success" + }, + "id": 1183, + "name": "Identifier", + "src": "20284:7:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: unable to send value, recipient may have reverted\"", + "value": "Address: unable to send value, recipient may have reverted" + }, + "id": 1184, + "name": "Literal", + "src": "20293:60:1" + } + ], + "id": 1185, + "name": "FunctionCall", + "src": "20276:78:1" + } + ], + "id": 1186, + "name": "ExpressionStatement", + "src": "20276:78:1" + } + ], + "id": 1187, + "name": "Block", + "src": "20041:320:1" + } + ], + "id": 1188, + "name": "FunctionDefinition", + "src": "19970:391:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1189, + "name": "StructuredDocumentation", + "src": "20367:730:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1205, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1190, + "name": "ElementaryTypeName", + "src": "21124:7:1" + } + ], + "id": 1191, + "name": "VariableDeclaration", + "src": "21124:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1192, + "name": "ElementaryTypeName", + "src": "21140:5:1" + } + ], + "id": 1193, + "name": "VariableDeclaration", + "src": "21140:17:1" + } + ], + "id": 1194, + "name": "ParameterList", + "src": "21123:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1195, + "name": "ElementaryTypeName", + "src": "21177:5:1" + } + ], + "id": 1196, + "name": "VariableDeclaration", + "src": "21177:12:1" + } + ], + "id": 1197, + "name": "ParameterList", + "src": "21176:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1197 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionCall" + }, + "id": 1198, + "name": "Identifier", + "src": "21206:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1191, + "type": "address", + "value": "target" + }, + "id": 1199, + "name": "Identifier", + "src": "21219:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1193, + "type": "bytes memory", + "value": "data" + }, + "id": 1200, + "name": "Identifier", + "src": "21227:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call failed\"", + "value": "Address: low-level call failed" + }, + "id": 1201, + "name": "Literal", + "src": "21233:32:1" + } + ], + "id": 1202, + "name": "FunctionCall", + "src": "21206:60:1" + } + ], + "id": 1203, + "name": "Return", + "src": "21199:67:1" + } + ], + "id": 1204, + "name": "Block", + "src": "21191:82:1" + } + ], + "id": 1205, + "name": "FunctionDefinition", + "src": "21102:171:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1206, + "name": "StructuredDocumentation", + "src": "21279:211:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1225, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1207, + "name": "ElementaryTypeName", + "src": "21517:7:1" + } + ], + "id": 1208, + "name": "VariableDeclaration", + "src": "21517:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1209, + "name": "ElementaryTypeName", + "src": "21533:5:1" + } + ], + "id": 1210, + "name": "VariableDeclaration", + "src": "21533:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1211, + "name": "ElementaryTypeName", + "src": "21552:6:1" + } + ], + "id": 1212, + "name": "VariableDeclaration", + "src": "21552:26:1" + } + ], + "id": 1213, + "name": "ParameterList", + "src": "21516:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1214, + "name": "ElementaryTypeName", + "src": "21598:5:1" + } + ], + "id": 1215, + "name": "VariableDeclaration", + "src": "21598:12:1" + } + ], + "id": 1216, + "name": "ParameterList", + "src": "21597:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1216 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1217, + "name": "Identifier", + "src": "21629:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1208, + "type": "address", + "value": "target" + }, + "id": 1218, + "name": "Identifier", + "src": "21651:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1210, + "type": "bytes memory", + "value": "data" + }, + "id": 1219, + "name": "Identifier", + "src": "21659:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1220, + "name": "Literal", + "src": "21665:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1212, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1221, + "name": "Identifier", + "src": "21668:12:1" + } + ], + "id": 1222, + "name": "FunctionCall", + "src": "21629:52:1" + } + ], + "id": 1223, + "name": "Return", + "src": "21622:59:1" + } + ], + "id": 1224, + "name": "Block", + "src": "21612:76:1" + } + ], + "id": 1225, + "name": "FunctionDefinition", + "src": "21495:193:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1226, + "name": "StructuredDocumentation", + "src": "21694:351:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1227, + "name": "ElementaryTypeName", + "src": "22081:7:1" + } + ], + "id": 1228, + "name": "VariableDeclaration", + "src": "22081:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1229, + "name": "ElementaryTypeName", + "src": "22097:5:1" + } + ], + "id": 1230, + "name": "VariableDeclaration", + "src": "22097:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1231, + "name": "ElementaryTypeName", + "src": "22116:7:1" + } + ], + "id": 1232, + "name": "VariableDeclaration", + "src": "22116:13:1" + } + ], + "id": 1233, + "name": "ParameterList", + "src": "22080:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1234, + "name": "ElementaryTypeName", + "src": "22149:5:1" + } + ], + "id": 1235, + "name": "VariableDeclaration", + "src": "22149:12:1" + } + ], + "id": 1236, + "name": "ParameterList", + "src": "22148:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1236 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1237, + "name": "Identifier", + "src": "22180:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1228, + "type": "address", + "value": "target" + }, + "id": 1238, + "name": "Identifier", + "src": "22202:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1230, + "type": "bytes memory", + "value": "data" + }, + "id": 1239, + "name": "Identifier", + "src": "22210:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1232, + "type": "uint256", + "value": "value" + }, + "id": 1240, + "name": "Identifier", + "src": "22216:5:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call with value failed\"", + "value": "Address: low-level call with value failed" + }, + "id": 1241, + "name": "Literal", + "src": "22223:43:1" + } + ], + "id": 1242, + "name": "FunctionCall", + "src": "22180:87:1" + } + ], + "id": 1243, + "name": "Return", + "src": "22173:94:1" + } + ], + "id": 1244, + "name": "Block", + "src": "22163:111:1" + } + ], + "id": 1245, + "name": "FunctionDefinition", + "src": "22050:224:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1246, + "name": "StructuredDocumentation", + "src": "22280:237:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1247, + "name": "ElementaryTypeName", + "src": "22553:7:1" + } + ], + "id": 1248, + "name": "VariableDeclaration", + "src": "22553:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1249, + "name": "ElementaryTypeName", + "src": "22569:5:1" + } + ], + "id": 1250, + "name": "VariableDeclaration", + "src": "22569:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1251, + "name": "ElementaryTypeName", + "src": "22588:7:1" + } + ], + "id": 1252, + "name": "VariableDeclaration", + "src": "22588:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1253, + "name": "ElementaryTypeName", + "src": "22603:6:1" + } + ], + "id": 1254, + "name": "VariableDeclaration", + "src": "22603:26:1" + } + ], + "id": 1255, + "name": "ParameterList", + "src": "22552:78:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1256, + "name": "ElementaryTypeName", + "src": "22649:5:1" + } + ], + "id": 1257, + "name": "VariableDeclaration", + "src": "22649:12:1" + } + ], + "id": 1258, + "name": "ParameterList", + "src": "22648:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1259, + "name": "Identifier", + "src": "22673:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1260, + "name": "ElementaryTypeName", + "src": "22681:7:1" + } + ], + "id": 1261, + "name": "ElementaryTypeNameExpression", + "src": "22681:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1262, + "name": "Identifier", + "src": "22689:4:1" + } + ], + "id": 1263, + "name": "FunctionCall", + "src": "22681:13:1" + } + ], + "id": 1264, + "name": "MemberAccess", + "src": "22681:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1265, + "name": "Identifier", + "src": "22706:5:1" + } + ], + "id": 1266, + "name": "BinaryOperation", + "src": "22681:30:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance for call\"", + "value": "Address: insufficient balance for call" + }, + "id": 1267, + "name": "Literal", + "src": "22713:40:1" + } + ], + "id": 1268, + "name": "FunctionCall", + "src": "22673:81:1" + } + ], + "id": 1269, + "name": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1270, + "name": "Identifier", + "src": "22764:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1271, + "name": "Identifier", + "src": "22772:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1272, + "name": "Identifier", + "src": "22783:6:1" + } + ], + "id": 1273, + "name": "FunctionCall", + "src": "22772:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: call to non-contract\"", + "value": "Address: call to non-contract" + }, + "id": 1274, + "name": "Literal", + "src": "22792:31:1" + } + ], + "id": 1275, + "name": "FunctionCall", + "src": "22764:60:1" + } + ], + "id": 1276, + "name": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "attributes": { + "assignments": [ + 1278, + 1280 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1294, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1277, + "name": "ElementaryTypeName", + "src": "22895:4:1" + } + ], + "id": 1278, + "name": "VariableDeclaration", + "src": "22895:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1279, + "name": "ElementaryTypeName", + "src": "22909:5:1" + } + ], + "id": 1280, + "name": "VariableDeclaration", + "src": "22909:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1281, + "name": "Identifier", + "src": "22936:6:1" + } + ], + "id": 1282, + "name": "MemberAccess", + "src": "22936:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1283, + "name": "Identifier", + "src": "22956:5:1" + } + ], + "id": 1284, + "name": "FunctionCallOptions", + "src": "22936:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1250, + "type": "bytes memory", + "value": "data" + }, + "id": 1285, + "name": "Identifier", + "src": "22964:4:1" + } + ], + "id": 1286, + "name": "FunctionCall", + "src": "22936:33:1" + } + ], + "id": 1287, + "name": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "attributes": { + "functionReturnParameters": 1258 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1288, + "name": "Identifier", + "src": "22986:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1278, + "type": "bool", + "value": "success" + }, + "id": 1289, + "name": "Identifier", + "src": "23004:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1280, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1290, + "name": "Identifier", + "src": "23013:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1254, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1291, + "name": "Identifier", + "src": "23025:12:1" + } + ], + "id": 1292, + "name": "FunctionCall", + "src": "22986:52:1" + } + ], + "id": 1293, + "name": "Return", + "src": "22979:59:1" + } + ], + "id": 1294, + "name": "Block", + "src": "22663:382:1" + } + ], + "id": 1295, + "name": "FunctionDefinition", + "src": "22522:523:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1296, + "name": "StructuredDocumentation", + "src": "23051:166:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1312, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1297, + "name": "ElementaryTypeName", + "src": "23250:7:1" + } + ], + "id": 1298, + "name": "VariableDeclaration", + "src": "23250:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1299, + "name": "ElementaryTypeName", + "src": "23266:5:1" + } + ], + "id": 1300, + "name": "VariableDeclaration", + "src": "23266:17:1" + } + ], + "id": 1301, + "name": "ParameterList", + "src": "23249:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1302, + "name": "ElementaryTypeName", + "src": "23308:5:1" + } + ], + "id": 1303, + "name": "VariableDeclaration", + "src": "23308:12:1" + } + ], + "id": 1304, + "name": "ParameterList", + "src": "23307:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1304 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "type": "function (address,bytes memory,string memory) view returns (bytes memory)", + "value": "functionStaticCall" + }, + "id": 1305, + "name": "Identifier", + "src": "23339:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1298, + "type": "address", + "value": "target" + }, + "id": 1306, + "name": "Identifier", + "src": "23358:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1300, + "type": "bytes memory", + "value": "data" + }, + "id": 1307, + "name": "Identifier", + "src": "23366:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level static call failed\"", + "value": "Address: low-level static call failed" + }, + "id": 1308, + "name": "Literal", + "src": "23372:39:1" + } + ], + "id": 1309, + "name": "FunctionCall", + "src": "23339:73:1" + } + ], + "id": 1310, + "name": "Return", + "src": "23332:80:1" + } + ], + "id": 1311, + "name": "Block", + "src": "23322:97:1" + } + ], + "id": 1312, + "name": "FunctionDefinition", + "src": "23222:197:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1313, + "name": "StructuredDocumentation", + "src": "23425:173:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1347, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1314, + "name": "ElementaryTypeName", + "src": "23631:7:1" + } + ], + "id": 1315, + "name": "VariableDeclaration", + "src": "23631:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1316, + "name": "ElementaryTypeName", + "src": "23647:5:1" + } + ], + "id": 1317, + "name": "VariableDeclaration", + "src": "23647:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1318, + "name": "ElementaryTypeName", + "src": "23666:6:1" + } + ], + "id": 1319, + "name": "VariableDeclaration", + "src": "23666:26:1" + } + ], + "id": 1320, + "name": "ParameterList", + "src": "23630:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1321, + "name": "ElementaryTypeName", + "src": "23717:5:1" + } + ], + "id": 1322, + "name": "VariableDeclaration", + "src": "23717:12:1" + } + ], + "id": 1323, + "name": "ParameterList", + "src": "23716:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1324, + "name": "Identifier", + "src": "23741:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1325, + "name": "Identifier", + "src": "23749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1326, + "name": "Identifier", + "src": "23760:6:1" + } + ], + "id": 1327, + "name": "FunctionCall", + "src": "23749:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: static call to non-contract\"", + "value": "Address: static call to non-contract" + }, + "id": 1328, + "name": "Literal", + "src": "23769:38:1" + } + ], + "id": 1329, + "name": "FunctionCall", + "src": "23741:67:1" + } + ], + "id": 1330, + "name": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "attributes": { + "assignments": [ + 1332, + 1334 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1346, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1331, + "name": "ElementaryTypeName", + "src": "23879:4:1" + } + ], + "id": 1332, + "name": "VariableDeclaration", + "src": "23879:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1346, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1333, + "name": "ElementaryTypeName", + "src": "23893:5:1" + } + ], + "id": 1334, + "name": "VariableDeclaration", + "src": "23893:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "staticcall", + "type": "function (bytes memory) view returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1335, + "name": "Identifier", + "src": "23920:6:1" + } + ], + "id": 1336, + "name": "MemberAccess", + "src": "23920:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1317, + "type": "bytes memory", + "value": "data" + }, + "id": 1337, + "name": "Identifier", + "src": "23938:4:1" + } + ], + "id": 1338, + "name": "FunctionCall", + "src": "23920:23:1" + } + ], + "id": 1339, + "name": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "attributes": { + "functionReturnParameters": 1323 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1340, + "name": "Identifier", + "src": "23960:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1332, + "type": "bool", + "value": "success" + }, + "id": 1341, + "name": "Identifier", + "src": "23978:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1334, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1342, + "name": "Identifier", + "src": "23987:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1319, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1343, + "name": "Identifier", + "src": "23999:12:1" + } + ], + "id": 1344, + "name": "FunctionCall", + "src": "23960:52:1" + } + ], + "id": 1345, + "name": "Return", + "src": "23953:59:1" + } + ], + "id": 1346, + "name": "Block", + "src": "23731:288:1" + } + ], + "id": 1347, + "name": "FunctionDefinition", + "src": "23603:416:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1348, + "name": "StructuredDocumentation", + "src": "24025:168:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1364, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1349, + "name": "ElementaryTypeName", + "src": "24228:7:1" + } + ], + "id": 1350, + "name": "VariableDeclaration", + "src": "24228:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1351, + "name": "ElementaryTypeName", + "src": "24244:5:1" + } + ], + "id": 1352, + "name": "VariableDeclaration", + "src": "24244:17:1" + } + ], + "id": 1353, + "name": "ParameterList", + "src": "24227:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1354, + "name": "ElementaryTypeName", + "src": "24281:5:1" + } + ], + "id": 1355, + "name": "VariableDeclaration", + "src": "24281:12:1" + } + ], + "id": 1356, + "name": "ParameterList", + "src": "24280:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1356 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionDelegateCall" + }, + "id": 1357, + "name": "Identifier", + "src": "24312:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1350, + "type": "address", + "value": "target" + }, + "id": 1358, + "name": "Identifier", + "src": "24333:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1352, + "type": "bytes memory", + "value": "data" + }, + "id": 1359, + "name": "Identifier", + "src": "24341:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level delegate call failed\"", + "value": "Address: low-level delegate call failed" + }, + "id": 1360, + "name": "Literal", + "src": "24347:41:1" + } + ], + "id": 1361, + "name": "FunctionCall", + "src": "24312:77:1" + } + ], + "id": 1362, + "name": "Return", + "src": "24305:84:1" + } + ], + "id": 1363, + "name": "Block", + "src": "24295:101:1" + } + ], + "id": 1364, + "name": "FunctionDefinition", + "src": "24198:198:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1365, + "name": "StructuredDocumentation", + "src": "24402:175:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1399, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1366, + "name": "ElementaryTypeName", + "src": "24612:7:1" + } + ], + "id": 1367, + "name": "VariableDeclaration", + "src": "24612:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1368, + "name": "ElementaryTypeName", + "src": "24628:5:1" + } + ], + "id": 1369, + "name": "VariableDeclaration", + "src": "24628:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1370, + "name": "ElementaryTypeName", + "src": "24647:6:1" + } + ], + "id": 1371, + "name": "VariableDeclaration", + "src": "24647:26:1" + } + ], + "id": 1372, + "name": "ParameterList", + "src": "24611:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1373, + "name": "ElementaryTypeName", + "src": "24693:5:1" + } + ], + "id": 1374, + "name": "VariableDeclaration", + "src": "24693:12:1" + } + ], + "id": 1375, + "name": "ParameterList", + "src": "24692:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1376, + "name": "Identifier", + "src": "24717:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1377, + "name": "Identifier", + "src": "24725:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1378, + "name": "Identifier", + "src": "24736:6:1" + } + ], + "id": 1379, + "name": "FunctionCall", + "src": "24725:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: delegate call to non-contract\"", + "value": "Address: delegate call to non-contract" + }, + "id": 1380, + "name": "Literal", + "src": "24745:40:1" + } + ], + "id": 1381, + "name": "FunctionCall", + "src": "24717:69:1" + } + ], + "id": 1382, + "name": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "attributes": { + "assignments": [ + 1384, + 1386 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1398, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1383, + "name": "ElementaryTypeName", + "src": "24857:4:1" + } + ], + "id": 1384, + "name": "VariableDeclaration", + "src": "24857:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1398, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1385, + "name": "ElementaryTypeName", + "src": "24871:5:1" + } + ], + "id": 1386, + "name": "VariableDeclaration", + "src": "24871:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "delegatecall", + "type": "function (bytes memory) returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1387, + "name": "Identifier", + "src": "24898:6:1" + } + ], + "id": 1388, + "name": "MemberAccess", + "src": "24898:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1369, + "type": "bytes memory", + "value": "data" + }, + "id": 1389, + "name": "Identifier", + "src": "24918:4:1" + } + ], + "id": 1390, + "name": "FunctionCall", + "src": "24898:25:1" + } + ], + "id": 1391, + "name": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "attributes": { + "functionReturnParameters": 1375 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1392, + "name": "Identifier", + "src": "24940:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1384, + "type": "bool", + "value": "success" + }, + "id": 1393, + "name": "Identifier", + "src": "24958:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1386, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1394, + "name": "Identifier", + "src": "24967:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1371, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1395, + "name": "Identifier", + "src": "24979:12:1" + } + ], + "id": 1396, + "name": "FunctionCall", + "src": "24940:52:1" + } + ], + "id": 1397, + "name": "Return", + "src": "24933:59:1" + } + ], + "id": 1398, + "name": "Block", + "src": "24707:292:1" + } + ], + "id": 1399, + "name": "FunctionDefinition", + "src": "24582:417:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_verifyCallResult", + "scope": 1430, + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1429, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1400, + "name": "ElementaryTypeName", + "src": "25032:4:1" + } + ], + "id": 1401, + "name": "VariableDeclaration", + "src": "25032:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1402, + "name": "ElementaryTypeName", + "src": "25046:5:1" + } + ], + "id": 1403, + "name": "VariableDeclaration", + "src": "25046:23:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1404, + "name": "ElementaryTypeName", + "src": "25071:6:1" + } + ], + "id": 1405, + "name": "VariableDeclaration", + "src": "25071:26:1" + } + ], + "id": 1406, + "name": "ParameterList", + "src": "25031:67:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1407, + "name": "ElementaryTypeName", + "src": "25120:5:1" + } + ], + "id": 1408, + "name": "VariableDeclaration", + "src": "25120:12:1" + } + ], + "id": 1409, + "name": "ParameterList", + "src": "25119:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1401, + "type": "bool", + "value": "success" + }, + "id": 1410, + "name": "Identifier", + "src": "25148:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1409 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1411, + "name": "Identifier", + "src": "25178:10:1" + } + ], + "id": 1412, + "name": "Return", + "src": "25171:17:1" + } + ], + "id": 1413, + "name": "Block", + "src": "25157:42:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1414, + "name": "Identifier", + "src": "25289:10:1" + } + ], + "id": 1415, + "name": "MemberAccess", + "src": "25289:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1416, + "name": "Literal", + "src": "25309:1:1" + } + ], + "id": 1417, + "name": "BinaryOperation", + "src": "25289:21:1" + }, + { + "children": [ + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "operations": "{\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n}" + }, + "children": [], + "id": 1418, + "name": "InlineAssembly", + "src": "25487:154:1" + } + ], + "id": 1419, + "name": "Block", + "src": "25312:343:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "type": "function (string memory) pure", + "value": "revert" + }, + "id": 1420, + "name": "Identifier", + "src": "25679:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1405, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1421, + "name": "Identifier", + "src": "25686:12:1" + } + ], + "id": 1422, + "name": "FunctionCall", + "src": "25679:20:1" + } + ], + "id": 1423, + "name": "ExpressionStatement", + "src": "25679:20:1" + } + ], + "id": 1424, + "name": "Block", + "src": "25661:53:1" + } + ], + "id": 1425, + "name": "IfStatement", + "src": "25285:429:1" + } + ], + "id": 1426, + "name": "Block", + "src": "25205:519:1" + } + ], + "id": 1427, + "name": "IfStatement", + "src": "25144:580:1" + } + ], + "id": 1428, + "name": "Block", + "src": "25134:596:1" + } + ], + "id": 1429, + "name": "FunctionDefinition", + "src": "25005:725:1" + } + ], + "id": 1430, + "name": "ContractDefinition", + "src": "18048:7684:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1431, + "name": "PragmaDirective", + "src": "25791:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "id": 1432, + "name": "StructuredDocumentation", + "src": "25824:686:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Set", + "name": "Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_values", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "bytes32[]" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1433, + "name": "ElementaryTypeName", + "src": "27033:7:1" + } + ], + "id": 1434, + "name": "ArrayTypeName", + "src": "27033:9:1" + } + ], + "id": 1435, + "name": "VariableDeclaration", + "src": "27033:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1436, + "name": "ElementaryTypeName", + "src": "27193:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1437, + "name": "ElementaryTypeName", + "src": "27204:7:1" + } + ], + "id": 1438, + "name": "Mapping", + "src": "27184:28:1" + } + ], + "id": 1439, + "name": "VariableDeclaration", + "src": "27184:37:1" + } + ], + "id": 1440, + "name": "StructDefinition", + "src": "26979:249:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1441, + "name": "StructuredDocumentation", + "src": "27234:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1481, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1442, + "name": "UserDefinedTypeName", + "src": "27412:3:1" + } + ], + "id": 1443, + "name": "VariableDeclaration", + "src": "27412:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1444, + "name": "ElementaryTypeName", + "src": "27429:7:1" + } + ], + "id": 1445, + "name": "VariableDeclaration", + "src": "27429:13:1" + } + ], + "id": 1446, + "name": "ParameterList", + "src": "27411:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1447, + "name": "ElementaryTypeName", + "src": "27461:4:1" + } + ], + "id": 1448, + "name": "VariableDeclaration", + "src": "27461:4:1" + } + ], + "id": 1449, + "name": "ParameterList", + "src": "27460:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1450, + "name": "Identifier", + "src": "27482:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1451, + "name": "Identifier", + "src": "27492:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1452, + "name": "Identifier", + "src": "27497:5:1" + } + ], + "id": 1453, + "name": "FunctionCall", + "src": "27482:21:1" + } + ], + "id": 1454, + "name": "UnaryOperation", + "src": "27481:22:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1455, + "name": "Identifier", + "src": "27519:3:1" + } + ], + "id": 1458, + "name": "MemberAccess", + "src": "27519:11:1" + } + ], + "id": 1459, + "name": "MemberAccess", + "src": "27519:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1460, + "name": "Identifier", + "src": "27536:5:1" + } + ], + "id": 1461, + "name": "FunctionCall", + "src": "27519:23:1" + } + ], + "id": 1462, + "name": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1463, + "name": "Identifier", + "src": "27677:3:1" + } + ], + "id": 1466, + "name": "MemberAccess", + "src": "27677:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1465, + "name": "Identifier", + "src": "27690:5:1" + } + ], + "id": 1467, + "name": "IndexAccess", + "src": "27677:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1468, + "name": "Identifier", + "src": "27699:3:1" + } + ], + "id": 1469, + "name": "MemberAccess", + "src": "27699:11:1" + } + ], + "id": 1470, + "name": "MemberAccess", + "src": "27699:18:1" + } + ], + "id": 1471, + "name": "Assignment", + "src": "27677:40:1" + } + ], + "id": 1472, + "name": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1473, + "name": "Literal", + "src": "27738:4:1" + } + ], + "id": 1474, + "name": "Return", + "src": "27731:11:1" + } + ], + "id": 1475, + "name": "Block", + "src": "27505:248:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1476, + "name": "Literal", + "src": "27780:5:1" + } + ], + "id": 1477, + "name": "Return", + "src": "27773:12:1" + } + ], + "id": 1478, + "name": "Block", + "src": "27759:37:1" + } + ], + "id": 1479, + "name": "IfStatement", + "src": "27477:319:1" + } + ], + "id": 1480, + "name": "Block", + "src": "27467:335:1" + } + ], + "id": 1481, + "name": "FunctionDefinition", + "src": "27398:404:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1482, + "name": "StructuredDocumentation", + "src": "27808:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1561, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1483, + "name": "UserDefinedTypeName", + "src": "27987:3:1" + } + ], + "id": 1484, + "name": "VariableDeclaration", + "src": "27987:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1485, + "name": "ElementaryTypeName", + "src": "28004:7:1" + } + ], + "id": 1486, + "name": "VariableDeclaration", + "src": "28004:13:1" + } + ], + "id": 1487, + "name": "ParameterList", + "src": "27986:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1488, + "name": "ElementaryTypeName", + "src": "28036:4:1" + } + ], + "id": 1489, + "name": "VariableDeclaration", + "src": "28036:4:1" + } + ], + "id": 1490, + "name": "ParameterList", + "src": "28035:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1492 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "valueIndex", + "scope": 1560, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1491, + "name": "ElementaryTypeName", + "src": "28152:7:1" + } + ], + "id": 1492, + "name": "VariableDeclaration", + "src": "28152:18:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1493, + "name": "Identifier", + "src": "28173:3:1" + } + ], + "id": 1494, + "name": "MemberAccess", + "src": "28173:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1495, + "name": "Identifier", + "src": "28186:5:1" + } + ], + "id": 1496, + "name": "IndexAccess", + "src": "28173:19:1" + } + ], + "id": 1497, + "name": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1498, + "name": "Identifier", + "src": "28207:10:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1499, + "name": "Literal", + "src": "28221:1:1" + } + ], + "id": 1500, + "name": "BinaryOperation", + "src": "28207:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1501, + "name": "ElementaryTypeName", + "src": "28564:7:1" + } + ], + "id": 1502, + "name": "VariableDeclaration", + "src": "28564:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1503, + "name": "Identifier", + "src": "28588:10:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1504, + "name": "Literal", + "src": "28601:1:1" + } + ], + "id": 1505, + "name": "BinaryOperation", + "src": "28588:14:1" + } + ], + "id": 1506, + "name": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "attributes": { + "assignments": [ + 1508 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1507, + "name": "ElementaryTypeName", + "src": "28616:7:1" + } + ], + "id": 1508, + "name": "VariableDeclaration", + "src": "28616:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1509, + "name": "Identifier", + "src": "28636:3:1" + } + ], + "id": 1510, + "name": "MemberAccess", + "src": "28636:11:1" + } + ], + "id": 1511, + "name": "MemberAccess", + "src": "28636:18:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1512, + "name": "Literal", + "src": "28657:1:1" + } + ], + "id": 1513, + "name": "BinaryOperation", + "src": "28636:22:1" + } + ], + "id": 1514, + "name": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "attributes": { + "assignments": [ + 1516 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastvalue", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1515, + "name": "ElementaryTypeName", + "src": "28898:7:1" + } + ], + "id": 1516, + "name": "VariableDeclaration", + "src": "28898:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1517, + "name": "Identifier", + "src": "28918:3:1" + } + ], + "id": 1518, + "name": "MemberAccess", + "src": "28918:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1508, + "type": "uint256", + "value": "lastIndex" + }, + "id": 1519, + "name": "Identifier", + "src": "28930:9:1" + } + ], + "id": 1520, + "name": "IndexAccess", + "src": "28918:22:1" + } + ], + "id": 1521, + "name": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1522, + "name": "Identifier", + "src": "29032:3:1" + } + ], + "id": 1525, + "name": "MemberAccess", + "src": "29032:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1524, + "name": "Identifier", + "src": "29044:13:1" + } + ], + "id": 1526, + "name": "IndexAccess", + "src": "29032:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1527, + "name": "Identifier", + "src": "29061:9:1" + } + ], + "id": 1528, + "name": "Assignment", + "src": "29032:38:1" + } + ], + "id": 1529, + "name": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1530, + "name": "Identifier", + "src": "29136:3:1" + } + ], + "id": 1533, + "name": "MemberAccess", + "src": "29136:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1532, + "name": "Identifier", + "src": "29149:9:1" + } + ], + "id": 1534, + "name": "IndexAccess", + "src": "29136:23:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1535, + "name": "Identifier", + "src": "29162:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1536, + "name": "Literal", + "src": "29178:1:1" + } + ], + "id": 1537, + "name": "BinaryOperation", + "src": "29162:17:1" + } + ], + "id": 1538, + "name": "Assignment", + "src": "29136:43:1" + } + ], + "id": 1539, + "name": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1540, + "name": "Identifier", + "src": "29285:3:1" + } + ], + "id": 1543, + "name": "MemberAccess", + "src": "29285:11:1" + } + ], + "id": 1544, + "name": "MemberAccess", + "src": "29285:15:1" + } + ], + "id": 1545, + "name": "FunctionCall", + "src": "29285:17:1" + } + ], + "id": 1546, + "name": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1547, + "name": "Identifier", + "src": "29377:3:1" + } + ], + "id": 1548, + "name": "MemberAccess", + "src": "29377:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1549, + "name": "Identifier", + "src": "29390:5:1" + } + ], + "id": 1550, + "name": "IndexAccess", + "src": "29377:19:1" + } + ], + "id": 1551, + "name": "UnaryOperation", + "src": "29370:26:1" + } + ], + "id": 1552, + "name": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1553, + "name": "Literal", + "src": "29418:4:1" + } + ], + "id": 1554, + "name": "Return", + "src": "29411:11:1" + } + ], + "id": 1555, + "name": "Block", + "src": "28224:1209:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1556, + "name": "Literal", + "src": "29460:5:1" + } + ], + "id": 1557, + "name": "Return", + "src": "29453:12:1" + } + ], + "id": 1558, + "name": "Block", + "src": "29439:37:1" + } + ], + "id": 1559, + "name": "IfStatement", + "src": "28203:1273:1" + } + ], + "id": 1560, + "name": "Block", + "src": "28042:1440:1" + } + ], + "id": 1561, + "name": "FunctionDefinition", + "src": "27970:1512:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1562, + "name": "StructuredDocumentation", + "src": "29488:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1579, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1563, + "name": "UserDefinedTypeName", + "src": "29582:3:1" + } + ], + "id": 1564, + "name": "VariableDeclaration", + "src": "29582:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1565, + "name": "ElementaryTypeName", + "src": "29599:7:1" + } + ], + "id": 1566, + "name": "VariableDeclaration", + "src": "29599:13:1" + } + ], + "id": 1567, + "name": "ParameterList", + "src": "29581:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1568, + "name": "ElementaryTypeName", + "src": "29636:4:1" + } + ], + "id": 1569, + "name": "VariableDeclaration", + "src": "29636:4:1" + } + ], + "id": 1570, + "name": "ParameterList", + "src": "29635:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1570 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1564, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1571, + "name": "Identifier", + "src": "29659:3:1" + } + ], + "id": 1572, + "name": "MemberAccess", + "src": "29659:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1566, + "type": "bytes32", + "value": "value" + }, + "id": 1573, + "name": "Identifier", + "src": "29672:5:1" + } + ], + "id": 1574, + "name": "IndexAccess", + "src": "29659:19:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1575, + "name": "Literal", + "src": "29682:1:1" + } + ], + "id": 1576, + "name": "BinaryOperation", + "src": "29659:24:1" + } + ], + "id": 1577, + "name": "Return", + "src": "29652:31:1" + } + ], + "id": 1578, + "name": "Block", + "src": "29642:48:1" + } + ], + "id": 1579, + "name": "FunctionDefinition", + "src": "29563:127:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1580, + "name": "StructuredDocumentation", + "src": "29696:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1592, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1581, + "name": "UserDefinedTypeName", + "src": "29788:3:1" + } + ], + "id": 1582, + "name": "VariableDeclaration", + "src": "29788:15:1" + } + ], + "id": 1583, + "name": "ParameterList", + "src": "29787:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1592, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1584, + "name": "ElementaryTypeName", + "src": "29827:7:1" + } + ], + "id": 1585, + "name": "VariableDeclaration", + "src": "29827:7:1" + } + ], + "id": 1586, + "name": "ParameterList", + "src": "29826:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1586 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1582, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1587, + "name": "Identifier", + "src": "29853:3:1" + } + ], + "id": 1588, + "name": "MemberAccess", + "src": "29853:11:1" + } + ], + "id": 1589, + "name": "MemberAccess", + "src": "29853:18:1" + } + ], + "id": 1590, + "name": "Return", + "src": "29846:25:1" + } + ], + "id": 1591, + "name": "Block", + "src": "29836:42:1" + } + ], + "id": 1592, + "name": "FunctionDefinition", + "src": "29771:107:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1593, + "name": "StructuredDocumentation", + "src": "29883:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1617, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1594, + "name": "UserDefinedTypeName", + "src": "30223:3:1" + } + ], + "id": 1595, + "name": "VariableDeclaration", + "src": "30223:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1596, + "name": "ElementaryTypeName", + "src": "30240:7:1" + } + ], + "id": 1597, + "name": "VariableDeclaration", + "src": "30240:13:1" + } + ], + "id": 1598, + "name": "ParameterList", + "src": "30222:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1599, + "name": "ElementaryTypeName", + "src": "30277:7:1" + } + ], + "id": 1600, + "name": "VariableDeclaration", + "src": "30277:7:1" + } + ], + "id": 1601, + "name": "ParameterList", + "src": "30276:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1602, + "name": "Identifier", + "src": "30296:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1603, + "name": "Identifier", + "src": "30304:3:1" + } + ], + "id": 1604, + "name": "MemberAccess", + "src": "30304:11:1" + } + ], + "id": 1605, + "name": "MemberAccess", + "src": "30304:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1606, + "name": "Identifier", + "src": "30325:5:1" + } + ], + "id": 1607, + "name": "BinaryOperation", + "src": "30304:26:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableSet: index out of bounds\"", + "value": "EnumerableSet: index out of bounds" + }, + "id": 1608, + "name": "Literal", + "src": "30332:36:1" + } + ], + "id": 1609, + "name": "FunctionCall", + "src": "30296:73:1" + } + ], + "id": 1610, + "name": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "attributes": { + "functionReturnParameters": 1601 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1611, + "name": "Identifier", + "src": "30386:3:1" + } + ], + "id": 1612, + "name": "MemberAccess", + "src": "30386:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1613, + "name": "Identifier", + "src": "30398:5:1" + } + ], + "id": 1614, + "name": "IndexAccess", + "src": "30386:18:1" + } + ], + "id": 1615, + "name": "Return", + "src": "30379:25:1" + } + ], + "id": 1616, + "name": "Block", + "src": "30286:125:1" + } + ], + "id": 1617, + "name": "FunctionDefinition", + "src": "30210:201:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Bytes32Set", + "name": "Bytes32Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1620, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1618, + "name": "UserDefinedTypeName", + "src": "30464:3:1" + } + ], + "id": 1619, + "name": "VariableDeclaration", + "src": "30464:10:1" + } + ], + "id": 1620, + "name": "StructDefinition", + "src": "30436:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1621, + "name": "StructuredDocumentation", + "src": "30487:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1637, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1622, + "name": "UserDefinedTypeName", + "src": "30664:10:1" + } + ], + "id": 1623, + "name": "VariableDeclaration", + "src": "30664:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1624, + "name": "ElementaryTypeName", + "src": "30688:7:1" + } + ], + "id": 1625, + "name": "VariableDeclaration", + "src": "30688:13:1" + } + ], + "id": 1626, + "name": "ParameterList", + "src": "30663:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1627, + "name": "ElementaryTypeName", + "src": "30721:4:1" + } + ], + "id": 1628, + "name": "VariableDeclaration", + "src": "30721:4:1" + } + ], + "id": 1629, + "name": "ParameterList", + "src": "30720:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1629 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1630, + "name": "Identifier", + "src": "30744:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1623, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1631, + "name": "Identifier", + "src": "30749:3:1" + } + ], + "id": 1632, + "name": "MemberAccess", + "src": "30749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1625, + "type": "bytes32", + "value": "value" + }, + "id": 1633, + "name": "Identifier", + "src": "30761:5:1" + } + ], + "id": 1634, + "name": "FunctionCall", + "src": "30744:23:1" + } + ], + "id": 1635, + "name": "Return", + "src": "30737:30:1" + } + ], + "id": 1636, + "name": "Block", + "src": "30727:47:1" + } + ], + "id": 1637, + "name": "FunctionDefinition", + "src": "30651:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1638, + "name": "StructuredDocumentation", + "src": "30780:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1654, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1639, + "name": "UserDefinedTypeName", + "src": "30958:10:1" + } + ], + "id": 1640, + "name": "VariableDeclaration", + "src": "30958:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1641, + "name": "ElementaryTypeName", + "src": "30982:7:1" + } + ], + "id": 1642, + "name": "VariableDeclaration", + "src": "30982:13:1" + } + ], + "id": 1643, + "name": "ParameterList", + "src": "30957:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1644, + "name": "ElementaryTypeName", + "src": "31015:4:1" + } + ], + "id": 1645, + "name": "VariableDeclaration", + "src": "31015:4:1" + } + ], + "id": 1646, + "name": "ParameterList", + "src": "31014:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1646 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1647, + "name": "Identifier", + "src": "31038:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1640, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1648, + "name": "Identifier", + "src": "31046:3:1" + } + ], + "id": 1649, + "name": "MemberAccess", + "src": "31046:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1642, + "type": "bytes32", + "value": "value" + }, + "id": 1650, + "name": "Identifier", + "src": "31058:5:1" + } + ], + "id": 1651, + "name": "FunctionCall", + "src": "31038:26:1" + } + ], + "id": 1652, + "name": "Return", + "src": "31031:33:1" + } + ], + "id": 1653, + "name": "Block", + "src": "31021:50:1" + } + ], + "id": 1654, + "name": "FunctionDefinition", + "src": "30942:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1655, + "name": "StructuredDocumentation", + "src": "31077:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1671, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1656, + "name": "UserDefinedTypeName", + "src": "31170:10:1" + } + ], + "id": 1657, + "name": "VariableDeclaration", + "src": "31170:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1658, + "name": "ElementaryTypeName", + "src": "31194:7:1" + } + ], + "id": 1659, + "name": "VariableDeclaration", + "src": "31194:13:1" + } + ], + "id": 1660, + "name": "ParameterList", + "src": "31169:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1661, + "name": "ElementaryTypeName", + "src": "31232:4:1" + } + ], + "id": 1662, + "name": "VariableDeclaration", + "src": "31232:4:1" + } + ], + "id": 1663, + "name": "ParameterList", + "src": "31231:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1663 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1664, + "name": "Identifier", + "src": "31255:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1657, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1665, + "name": "Identifier", + "src": "31265:3:1" + } + ], + "id": 1666, + "name": "MemberAccess", + "src": "31265:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1659, + "type": "bytes32", + "value": "value" + }, + "id": 1667, + "name": "Identifier", + "src": "31277:5:1" + } + ], + "id": 1668, + "name": "FunctionCall", + "src": "31255:28:1" + } + ], + "id": 1669, + "name": "Return", + "src": "31248:35:1" + } + ], + "id": 1670, + "name": "Block", + "src": "31238:52:1" + } + ], + "id": 1671, + "name": "FunctionDefinition", + "src": "31152:138:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1672, + "name": "StructuredDocumentation", + "src": "31296:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1685, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1673, + "name": "UserDefinedTypeName", + "src": "31387:10:1" + } + ], + "id": 1674, + "name": "VariableDeclaration", + "src": "31387:22:1" + } + ], + "id": 1675, + "name": "ParameterList", + "src": "31386:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1685, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1676, + "name": "ElementaryTypeName", + "src": "31434:7:1" + } + ], + "id": 1677, + "name": "VariableDeclaration", + "src": "31434:7:1" + } + ], + "id": 1678, + "name": "ParameterList", + "src": "31433:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1678 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1679, + "name": "Identifier", + "src": "31460:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1674, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1680, + "name": "Identifier", + "src": "31468:3:1" + } + ], + "id": 1681, + "name": "MemberAccess", + "src": "31468:10:1" + } + ], + "id": 1682, + "name": "FunctionCall", + "src": "31460:19:1" + } + ], + "id": 1683, + "name": "Return", + "src": "31453:26:1" + } + ], + "id": 1684, + "name": "Block", + "src": "31443:43:1" + } + ], + "id": 1685, + "name": "FunctionDefinition", + "src": "31371:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1686, + "name": "StructuredDocumentation", + "src": "31491:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1702, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1687, + "name": "UserDefinedTypeName", + "src": "31830:10:1" + } + ], + "id": 1688, + "name": "VariableDeclaration", + "src": "31830:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1689, + "name": "ElementaryTypeName", + "src": "31854:7:1" + } + ], + "id": 1690, + "name": "VariableDeclaration", + "src": "31854:13:1" + } + ], + "id": 1691, + "name": "ParameterList", + "src": "31829:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1692, + "name": "ElementaryTypeName", + "src": "31892:7:1" + } + ], + "id": 1693, + "name": "VariableDeclaration", + "src": "31892:7:1" + } + ], + "id": 1694, + "name": "ParameterList", + "src": "31891:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1695, + "name": "Identifier", + "src": "31918:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1688, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1696, + "name": "Identifier", + "src": "31922:3:1" + } + ], + "id": 1697, + "name": "MemberAccess", + "src": "31922:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1690, + "type": "uint256", + "value": "index" + }, + "id": 1698, + "name": "Identifier", + "src": "31934:5:1" + } + ], + "id": 1699, + "name": "FunctionCall", + "src": "31918:22:1" + } + ], + "id": 1700, + "name": "Return", + "src": "31911:29:1" + } + ], + "id": 1701, + "name": "Block", + "src": "31901:46:1" + } + ], + "id": 1702, + "name": "FunctionDefinition", + "src": "31818:129:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.AddressSet", + "name": "AddressSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1705, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1703, + "name": "UserDefinedTypeName", + "src": "32000:3:1" + } + ], + "id": 1704, + "name": "VariableDeclaration", + "src": "32000:10:1" + } + ], + "id": 1705, + "name": "StructDefinition", + "src": "31972:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1706, + "name": "StructuredDocumentation", + "src": "32023:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1731, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1707, + "name": "UserDefinedTypeName", + "src": "32200:10:1" + } + ], + "id": 1708, + "name": "VariableDeclaration", + "src": "32200:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1709, + "name": "ElementaryTypeName", + "src": "32224:7:1" + } + ], + "id": 1710, + "name": "VariableDeclaration", + "src": "32224:13:1" + } + ], + "id": 1711, + "name": "ParameterList", + "src": "32199:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1712, + "name": "ElementaryTypeName", + "src": "32257:4:1" + } + ], + "id": 1713, + "name": "VariableDeclaration", + "src": "32257:4:1" + } + ], + "id": 1714, + "name": "ParameterList", + "src": "32256:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1714 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1715, + "name": "Identifier", + "src": "32280:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1708, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1716, + "name": "Identifier", + "src": "32285:3:1" + } + ], + "id": 1717, + "name": "MemberAccess", + "src": "32285:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1718, + "name": "ElementaryTypeName", + "src": "32297:7:1" + } + ], + "id": 1719, + "name": "ElementaryTypeNameExpression", + "src": "32297:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1720, + "name": "ElementaryTypeName", + "src": "32305:7:1" + } + ], + "id": 1721, + "name": "ElementaryTypeNameExpression", + "src": "32305:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1722, + "name": "ElementaryTypeName", + "src": "32313:7:1" + } + ], + "id": 1723, + "name": "ElementaryTypeNameExpression", + "src": "32313:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1710, + "type": "address", + "value": "value" + }, + "id": 1724, + "name": "Identifier", + "src": "32321:5:1" + } + ], + "id": 1725, + "name": "FunctionCall", + "src": "32313:14:1" + } + ], + "id": 1726, + "name": "FunctionCall", + "src": "32305:23:1" + } + ], + "id": 1727, + "name": "FunctionCall", + "src": "32297:32:1" + } + ], + "id": 1728, + "name": "FunctionCall", + "src": "32280:50:1" + } + ], + "id": 1729, + "name": "Return", + "src": "32273:57:1" + } + ], + "id": 1730, + "name": "Block", + "src": "32263:74:1" + } + ], + "id": 1731, + "name": "FunctionDefinition", + "src": "32187:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1732, + "name": "StructuredDocumentation", + "src": "32343:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1757, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1733, + "name": "UserDefinedTypeName", + "src": "32521:10:1" + } + ], + "id": 1734, + "name": "VariableDeclaration", + "src": "32521:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1735, + "name": "ElementaryTypeName", + "src": "32545:7:1" + } + ], + "id": 1736, + "name": "VariableDeclaration", + "src": "32545:13:1" + } + ], + "id": 1737, + "name": "ParameterList", + "src": "32520:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1738, + "name": "ElementaryTypeName", + "src": "32578:4:1" + } + ], + "id": 1739, + "name": "VariableDeclaration", + "src": "32578:4:1" + } + ], + "id": 1740, + "name": "ParameterList", + "src": "32577:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1740 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1741, + "name": "Identifier", + "src": "32601:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1734, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1742, + "name": "Identifier", + "src": "32609:3:1" + } + ], + "id": 1743, + "name": "MemberAccess", + "src": "32609:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1744, + "name": "ElementaryTypeName", + "src": "32621:7:1" + } + ], + "id": 1745, + "name": "ElementaryTypeNameExpression", + "src": "32621:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1746, + "name": "ElementaryTypeName", + "src": "32629:7:1" + } + ], + "id": 1747, + "name": "ElementaryTypeNameExpression", + "src": "32629:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1748, + "name": "ElementaryTypeName", + "src": "32637:7:1" + } + ], + "id": 1749, + "name": "ElementaryTypeNameExpression", + "src": "32637:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1736, + "type": "address", + "value": "value" + }, + "id": 1750, + "name": "Identifier", + "src": "32645:5:1" + } + ], + "id": 1751, + "name": "FunctionCall", + "src": "32637:14:1" + } + ], + "id": 1752, + "name": "FunctionCall", + "src": "32629:23:1" + } + ], + "id": 1753, + "name": "FunctionCall", + "src": "32621:32:1" + } + ], + "id": 1754, + "name": "FunctionCall", + "src": "32601:53:1" + } + ], + "id": 1755, + "name": "Return", + "src": "32594:60:1" + } + ], + "id": 1756, + "name": "Block", + "src": "32584:77:1" + } + ], + "id": 1757, + "name": "FunctionDefinition", + "src": "32505:156:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1758, + "name": "StructuredDocumentation", + "src": "32667:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1783, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1759, + "name": "UserDefinedTypeName", + "src": "32760:10:1" + } + ], + "id": 1760, + "name": "VariableDeclaration", + "src": "32760:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1761, + "name": "ElementaryTypeName", + "src": "32784:7:1" + } + ], + "id": 1762, + "name": "VariableDeclaration", + "src": "32784:13:1" + } + ], + "id": 1763, + "name": "ParameterList", + "src": "32759:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1764, + "name": "ElementaryTypeName", + "src": "32822:4:1" + } + ], + "id": 1765, + "name": "VariableDeclaration", + "src": "32822:4:1" + } + ], + "id": 1766, + "name": "ParameterList", + "src": "32821:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1766 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1767, + "name": "Identifier", + "src": "32845:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1760, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1768, + "name": "Identifier", + "src": "32855:3:1" + } + ], + "id": 1769, + "name": "MemberAccess", + "src": "32855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1770, + "name": "ElementaryTypeName", + "src": "32867:7:1" + } + ], + "id": 1771, + "name": "ElementaryTypeNameExpression", + "src": "32867:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1772, + "name": "ElementaryTypeName", + "src": "32875:7:1" + } + ], + "id": 1773, + "name": "ElementaryTypeNameExpression", + "src": "32875:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1774, + "name": "ElementaryTypeName", + "src": "32883:7:1" + } + ], + "id": 1775, + "name": "ElementaryTypeNameExpression", + "src": "32883:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1762, + "type": "address", + "value": "value" + }, + "id": 1776, + "name": "Identifier", + "src": "32891:5:1" + } + ], + "id": 1777, + "name": "FunctionCall", + "src": "32883:14:1" + } + ], + "id": 1778, + "name": "FunctionCall", + "src": "32875:23:1" + } + ], + "id": 1779, + "name": "FunctionCall", + "src": "32867:32:1" + } + ], + "id": 1780, + "name": "FunctionCall", + "src": "32845:55:1" + } + ], + "id": 1781, + "name": "Return", + "src": "32838:62:1" + } + ], + "id": 1782, + "name": "Block", + "src": "32828:79:1" + } + ], + "id": 1783, + "name": "FunctionDefinition", + "src": "32742:165:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1784, + "name": "StructuredDocumentation", + "src": "32913:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1797, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1785, + "name": "UserDefinedTypeName", + "src": "33004:10:1" + } + ], + "id": 1786, + "name": "VariableDeclaration", + "src": "33004:22:1" + } + ], + "id": 1787, + "name": "ParameterList", + "src": "33003:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1797, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1788, + "name": "ElementaryTypeName", + "src": "33051:7:1" + } + ], + "id": 1789, + "name": "VariableDeclaration", + "src": "33051:7:1" + } + ], + "id": 1790, + "name": "ParameterList", + "src": "33050:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1790 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1791, + "name": "Identifier", + "src": "33077:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1786, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1792, + "name": "Identifier", + "src": "33085:3:1" + } + ], + "id": 1793, + "name": "MemberAccess", + "src": "33085:10:1" + } + ], + "id": 1794, + "name": "FunctionCall", + "src": "33077:19:1" + } + ], + "id": 1795, + "name": "Return", + "src": "33070:26:1" + } + ], + "id": 1796, + "name": "Block", + "src": "33060:43:1" + } + ], + "id": 1797, + "name": "FunctionDefinition", + "src": "32988:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1798, + "name": "StructuredDocumentation", + "src": "33108:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1823, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1799, + "name": "UserDefinedTypeName", + "src": "33447:10:1" + } + ], + "id": 1800, + "name": "VariableDeclaration", + "src": "33447:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1801, + "name": "ElementaryTypeName", + "src": "33471:7:1" + } + ], + "id": 1802, + "name": "VariableDeclaration", + "src": "33471:13:1" + } + ], + "id": 1803, + "name": "ParameterList", + "src": "33446:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1804, + "name": "ElementaryTypeName", + "src": "33509:7:1" + } + ], + "id": 1805, + "name": "VariableDeclaration", + "src": "33509:7:1" + } + ], + "id": 1806, + "name": "ParameterList", + "src": "33508:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1806 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1807, + "name": "ElementaryTypeName", + "src": "33535:7:1" + } + ], + "id": 1808, + "name": "ElementaryTypeNameExpression", + "src": "33535:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1809, + "name": "ElementaryTypeName", + "src": "33543:7:1" + } + ], + "id": 1810, + "name": "ElementaryTypeNameExpression", + "src": "33543:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1811, + "name": "ElementaryTypeName", + "src": "33551:7:1" + } + ], + "id": 1812, + "name": "ElementaryTypeNameExpression", + "src": "33551:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1813, + "name": "Identifier", + "src": "33559:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1800, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1814, + "name": "Identifier", + "src": "33563:3:1" + } + ], + "id": 1815, + "name": "MemberAccess", + "src": "33563:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1802, + "type": "uint256", + "value": "index" + }, + "id": 1816, + "name": "Identifier", + "src": "33575:5:1" + } + ], + "id": 1817, + "name": "FunctionCall", + "src": "33559:22:1" + } + ], + "id": 1818, + "name": "FunctionCall", + "src": "33551:31:1" + } + ], + "id": 1819, + "name": "FunctionCall", + "src": "33543:40:1" + } + ], + "id": 1820, + "name": "FunctionCall", + "src": "33535:49:1" + } + ], + "id": 1821, + "name": "Return", + "src": "33528:56:1" + } + ], + "id": 1822, + "name": "Block", + "src": "33518:73:1" + } + ], + "id": 1823, + "name": "FunctionDefinition", + "src": "33435:156:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.UintSet", + "name": "UintSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1826, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1824, + "name": "UserDefinedTypeName", + "src": "33639:3:1" + } + ], + "id": 1825, + "name": "VariableDeclaration", + "src": "33639:10:1" + } + ], + "id": 1826, + "name": "StructDefinition", + "src": "33614:42:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1827, + "name": "StructuredDocumentation", + "src": "33662:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1846, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1828, + "name": "UserDefinedTypeName", + "src": "33839:7:1" + } + ], + "id": 1829, + "name": "VariableDeclaration", + "src": "33839:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1830, + "name": "ElementaryTypeName", + "src": "33860:7:1" + } + ], + "id": 1831, + "name": "VariableDeclaration", + "src": "33860:13:1" + } + ], + "id": 1832, + "name": "ParameterList", + "src": "33838:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1833, + "name": "ElementaryTypeName", + "src": "33893:4:1" + } + ], + "id": 1834, + "name": "VariableDeclaration", + "src": "33893:4:1" + } + ], + "id": 1835, + "name": "ParameterList", + "src": "33892:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1835 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1836, + "name": "Identifier", + "src": "33916:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1829, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1837, + "name": "Identifier", + "src": "33921:3:1" + } + ], + "id": 1838, + "name": "MemberAccess", + "src": "33921:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1839, + "name": "ElementaryTypeName", + "src": "33933:7:1" + } + ], + "id": 1840, + "name": "ElementaryTypeNameExpression", + "src": "33933:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1831, + "type": "uint256", + "value": "value" + }, + "id": 1841, + "name": "Identifier", + "src": "33941:5:1" + } + ], + "id": 1842, + "name": "FunctionCall", + "src": "33933:14:1" + } + ], + "id": 1843, + "name": "FunctionCall", + "src": "33916:32:1" + } + ], + "id": 1844, + "name": "Return", + "src": "33909:39:1" + } + ], + "id": 1845, + "name": "Block", + "src": "33899:56:1" + } + ], + "id": 1846, + "name": "FunctionDefinition", + "src": "33826:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1847, + "name": "StructuredDocumentation", + "src": "33961:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1866, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1848, + "name": "UserDefinedTypeName", + "src": "34139:7:1" + } + ], + "id": 1849, + "name": "VariableDeclaration", + "src": "34139:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1850, + "name": "ElementaryTypeName", + "src": "34160:7:1" + } + ], + "id": 1851, + "name": "VariableDeclaration", + "src": "34160:13:1" + } + ], + "id": 1852, + "name": "ParameterList", + "src": "34138:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1853, + "name": "ElementaryTypeName", + "src": "34193:4:1" + } + ], + "id": 1854, + "name": "VariableDeclaration", + "src": "34193:4:1" + } + ], + "id": 1855, + "name": "ParameterList", + "src": "34192:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1855 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1856, + "name": "Identifier", + "src": "34216:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1849, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1857, + "name": "Identifier", + "src": "34224:3:1" + } + ], + "id": 1858, + "name": "MemberAccess", + "src": "34224:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1859, + "name": "ElementaryTypeName", + "src": "34236:7:1" + } + ], + "id": 1860, + "name": "ElementaryTypeNameExpression", + "src": "34236:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1851, + "type": "uint256", + "value": "value" + }, + "id": 1861, + "name": "Identifier", + "src": "34244:5:1" + } + ], + "id": 1862, + "name": "FunctionCall", + "src": "34236:14:1" + } + ], + "id": 1863, + "name": "FunctionCall", + "src": "34216:35:1" + } + ], + "id": 1864, + "name": "Return", + "src": "34209:42:1" + } + ], + "id": 1865, + "name": "Block", + "src": "34199:59:1" + } + ], + "id": 1866, + "name": "FunctionDefinition", + "src": "34123:135:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1867, + "name": "StructuredDocumentation", + "src": "34264:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1886, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1868, + "name": "UserDefinedTypeName", + "src": "34357:7:1" + } + ], + "id": 1869, + "name": "VariableDeclaration", + "src": "34357:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1870, + "name": "ElementaryTypeName", + "src": "34378:7:1" + } + ], + "id": 1871, + "name": "VariableDeclaration", + "src": "34378:13:1" + } + ], + "id": 1872, + "name": "ParameterList", + "src": "34356:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1873, + "name": "ElementaryTypeName", + "src": "34416:4:1" + } + ], + "id": 1874, + "name": "VariableDeclaration", + "src": "34416:4:1" + } + ], + "id": 1875, + "name": "ParameterList", + "src": "34415:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1875 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1876, + "name": "Identifier", + "src": "34439:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1869, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1877, + "name": "Identifier", + "src": "34449:3:1" + } + ], + "id": 1878, + "name": "MemberAccess", + "src": "34449:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1879, + "name": "ElementaryTypeName", + "src": "34461:7:1" + } + ], + "id": 1880, + "name": "ElementaryTypeNameExpression", + "src": "34461:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1871, + "type": "uint256", + "value": "value" + }, + "id": 1881, + "name": "Identifier", + "src": "34469:5:1" + } + ], + "id": 1882, + "name": "FunctionCall", + "src": "34461:14:1" + } + ], + "id": 1883, + "name": "FunctionCall", + "src": "34439:37:1" + } + ], + "id": 1884, + "name": "Return", + "src": "34432:44:1" + } + ], + "id": 1885, + "name": "Block", + "src": "34422:61:1" + } + ], + "id": 1886, + "name": "FunctionDefinition", + "src": "34339:144:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1887, + "name": "StructuredDocumentation", + "src": "34489:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1900, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1888, + "name": "UserDefinedTypeName", + "src": "34580:7:1" + } + ], + "id": 1889, + "name": "VariableDeclaration", + "src": "34580:19:1" + } + ], + "id": 1890, + "name": "ParameterList", + "src": "34579:21:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1900, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1891, + "name": "ElementaryTypeName", + "src": "34624:7:1" + } + ], + "id": 1892, + "name": "VariableDeclaration", + "src": "34624:7:1" + } + ], + "id": 1893, + "name": "ParameterList", + "src": "34623:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1894, + "name": "Identifier", + "src": "34650:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1889, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1895, + "name": "Identifier", + "src": "34658:3:1" + } + ], + "id": 1896, + "name": "MemberAccess", + "src": "34658:10:1" + } + ], + "id": 1897, + "name": "FunctionCall", + "src": "34650:19:1" + } + ], + "id": 1898, + "name": "Return", + "src": "34643:26:1" + } + ], + "id": 1899, + "name": "Block", + "src": "34633:43:1" + } + ], + "id": 1900, + "name": "FunctionDefinition", + "src": "34564:112:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1901, + "name": "StructuredDocumentation", + "src": "34681:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1920, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1902, + "name": "UserDefinedTypeName", + "src": "35020:7:1" + } + ], + "id": 1903, + "name": "VariableDeclaration", + "src": "35020:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1904, + "name": "ElementaryTypeName", + "src": "35041:7:1" + } + ], + "id": 1905, + "name": "VariableDeclaration", + "src": "35041:13:1" + } + ], + "id": 1906, + "name": "ParameterList", + "src": "35019:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1907, + "name": "ElementaryTypeName", + "src": "35079:7:1" + } + ], + "id": 1908, + "name": "VariableDeclaration", + "src": "35079:7:1" + } + ], + "id": 1909, + "name": "ParameterList", + "src": "35078:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1909 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1910, + "name": "ElementaryTypeName", + "src": "35105:7:1" + } + ], + "id": 1911, + "name": "ElementaryTypeNameExpression", + "src": "35105:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1912, + "name": "Identifier", + "src": "35113:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1903, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1913, + "name": "Identifier", + "src": "35117:3:1" + } + ], + "id": 1914, + "name": "MemberAccess", + "src": "35117:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1905, + "type": "uint256", + "value": "index" + }, + "id": 1915, + "name": "Identifier", + "src": "35129:5:1" + } + ], + "id": 1916, + "name": "FunctionCall", + "src": "35113:22:1" + } + ], + "id": 1917, + "name": "FunctionCall", + "src": "35105:31:1" + } + ], + "id": 1918, + "name": "Return", + "src": "35098:38:1" + } + ], + "id": 1919, + "name": "Block", + "src": "35088:55:1" + } + ], + "id": 1920, + "name": "FunctionDefinition", + "src": "35008:135:1" + } + ], + "id": 1921, + "name": "ContractDefinition", + "src": "26511:8634:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1922, + "name": "PragmaDirective", + "src": "35204:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "id": 1923, + "name": "StructuredDocumentation", + "src": "35237:705:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.MapEntry", + "name": "MapEntry", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_key", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1924, + "name": "ElementaryTypeName", + "src": "36455:7:1" + } + ], + "id": 1925, + "name": "VariableDeclaration", + "src": "36455:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_value", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1926, + "name": "ElementaryTypeName", + "src": "36477:7:1" + } + ], + "id": 1927, + "name": "VariableDeclaration", + "src": "36477:14:1" + } + ], + "id": 1928, + "name": "StructDefinition", + "src": "36429:69:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.Map", + "name": "Map", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_entries", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.MapEntry[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "struct EnumerableMap.MapEntry[]" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 1929, + "name": "UserDefinedTypeName", + "src": "36567:8:1" + } + ], + "id": 1930, + "name": "ArrayTypeName", + "src": "36567:10:1" + } + ], + "id": 1931, + "name": "VariableDeclaration", + "src": "36567:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1932, + "name": "ElementaryTypeName", + "src": "36745:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1933, + "name": "ElementaryTypeName", + "src": "36756:7:1" + } + ], + "id": 1934, + "name": "Mapping", + "src": "36736:28:1" + } + ], + "id": 1935, + "name": "VariableDeclaration", + "src": "36736:37:1" + } + ], + "id": 1936, + "name": "StructDefinition", + "src": "36504:276:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1937, + "name": "StructuredDocumentation", + "src": "36786:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 1998, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 1938, + "name": "UserDefinedTypeName", + "src": "37021:3:1" + } + ], + "id": 1939, + "name": "VariableDeclaration", + "src": "37021:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1940, + "name": "ElementaryTypeName", + "src": "37038:7:1" + } + ], + "id": 1941, + "name": "VariableDeclaration", + "src": "37038:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1942, + "name": "ElementaryTypeName", + "src": "37051:7:1" + } + ], + "id": 1943, + "name": "VariableDeclaration", + "src": "37051:13:1" + } + ], + "id": 1944, + "name": "ParameterList", + "src": "37020:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1945, + "name": "ElementaryTypeName", + "src": "37083:4:1" + } + ], + "id": 1946, + "name": "VariableDeclaration", + "src": "37083:4:1" + } + ], + "id": 1947, + "name": "ParameterList", + "src": "37082:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1949 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 1997, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1948, + "name": "ElementaryTypeName", + "src": "37197:7:1" + } + ], + "id": 1949, + "name": "VariableDeclaration", + "src": "37197:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1950, + "name": "Identifier", + "src": "37216:3:1" + } + ], + "id": 1951, + "name": "MemberAccess", + "src": "37216:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1952, + "name": "Identifier", + "src": "37229:3:1" + } + ], + "id": 1953, + "name": "IndexAccess", + "src": "37216:17:1" + } + ], + "id": 1954, + "name": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1955, + "name": "Identifier", + "src": "37248:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1956, + "name": "Literal", + "src": "37260:1:1" + } + ], + "id": 1957, + "name": "BinaryOperation", + "src": "37248:13:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (struct EnumerableMap.MapEntry storage ref)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1958, + "name": "Identifier", + "src": "37314:3:1" + } + ], + "id": 1961, + "name": "MemberAccess", + "src": "37314:12:1" + } + ], + "id": 1962, + "name": "MemberAccess", + "src": "37314:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": true, + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "tryCall": false, + "type": "struct EnumerableMap.MapEntry memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1928, + "type": "type(struct EnumerableMap.MapEntry storage pointer)", + "value": "MapEntry" + }, + "id": 1963, + "name": "Identifier", + "src": "37332:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1964, + "name": "Identifier", + "src": "37349:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1965, + "name": "Identifier", + "src": "37362:5:1" + } + ], + "id": 1966, + "name": "FunctionCall", + "src": "37332:38:1" + } + ], + "id": 1967, + "name": "FunctionCall", + "src": "37314:57:1" + } + ], + "id": 1968, + "name": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1969, + "name": "Identifier", + "src": "37506:3:1" + } + ], + "id": 1972, + "name": "MemberAccess", + "src": "37506:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1971, + "name": "Identifier", + "src": "37519:3:1" + } + ], + "id": 1973, + "name": "IndexAccess", + "src": "37506:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1974, + "name": "Identifier", + "src": "37526:3:1" + } + ], + "id": 1975, + "name": "MemberAccess", + "src": "37526:12:1" + } + ], + "id": 1976, + "name": "MemberAccess", + "src": "37526:19:1" + } + ], + "id": 1977, + "name": "Assignment", + "src": "37506:39:1" + } + ], + "id": 1978, + "name": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1979, + "name": "Literal", + "src": "37566:4:1" + } + ], + "id": 1980, + "name": "Return", + "src": "37559:11:1" + } + ], + "id": 1981, + "name": "Block", + "src": "37263:318:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1982, + "name": "Identifier", + "src": "37601:3:1" + } + ], + "id": 1987, + "name": "MemberAccess", + "src": "37601:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1984, + "name": "Identifier", + "src": "37614:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1985, + "name": "Literal", + "src": "37625:1:1" + } + ], + "id": 1986, + "name": "BinaryOperation", + "src": "37614:12:1" + } + ], + "id": 1988, + "name": "IndexAccess", + "src": "37601:26:1" + } + ], + "id": 1989, + "name": "MemberAccess", + "src": "37601:33:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1990, + "name": "Identifier", + "src": "37637:5:1" + } + ], + "id": 1991, + "name": "Assignment", + "src": "37601:41:1" + } + ], + "id": 1992, + "name": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1993, + "name": "Literal", + "src": "37663:5:1" + } + ], + "id": 1994, + "name": "Return", + "src": "37656:12:1" + } + ], + "id": 1995, + "name": "Block", + "src": "37587:92:1" + } + ], + "id": 1996, + "name": "IfStatement", + "src": "37244:435:1" + } + ], + "id": 1997, + "name": "Block", + "src": "37089:596:1" + } + ], + "id": 1998, + "name": "FunctionDefinition", + "src": "37007:678:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 1999, + "name": "StructuredDocumentation", + "src": "37691:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2079, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2000, + "name": "UserDefinedTypeName", + "src": "37870:3:1" + } + ], + "id": 2001, + "name": "VariableDeclaration", + "src": "37870:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2002, + "name": "ElementaryTypeName", + "src": "37887:7:1" + } + ], + "id": 2003, + "name": "VariableDeclaration", + "src": "37887:11:1" + } + ], + "id": 2004, + "name": "ParameterList", + "src": "37869:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2005, + "name": "ElementaryTypeName", + "src": "37917:4:1" + } + ], + "id": 2006, + "name": "VariableDeclaration", + "src": "37917:4:1" + } + ], + "id": 2007, + "name": "ParameterList", + "src": "37916:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2009 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2078, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2008, + "name": "ElementaryTypeName", + "src": "38031:7:1" + } + ], + "id": 2009, + "name": "VariableDeclaration", + "src": "38031:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2010, + "name": "Identifier", + "src": "38050:3:1" + } + ], + "id": 2011, + "name": "MemberAccess", + "src": "38050:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2012, + "name": "Identifier", + "src": "38063:3:1" + } + ], + "id": 2013, + "name": "IndexAccess", + "src": "38050:17:1" + } + ], + "id": 2014, + "name": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2015, + "name": "Identifier", + "src": "38082:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2016, + "name": "Literal", + "src": "38094:1:1" + } + ], + "id": 2017, + "name": "BinaryOperation", + "src": "38082:13:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2019 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2018, + "name": "ElementaryTypeName", + "src": "38438:7:1" + } + ], + "id": 2019, + "name": "VariableDeclaration", + "src": "38438:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2020, + "name": "Identifier", + "src": "38462:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2021, + "name": "Literal", + "src": "38473:1:1" + } + ], + "id": 2022, + "name": "BinaryOperation", + "src": "38462:12:1" + } + ], + "id": 2023, + "name": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "attributes": { + "assignments": [ + 2025 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2024, + "name": "ElementaryTypeName", + "src": "38488:7:1" + } + ], + "id": 2025, + "name": "VariableDeclaration", + "src": "38488:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2026, + "name": "Identifier", + "src": "38508:3:1" + } + ], + "id": 2027, + "name": "MemberAccess", + "src": "38508:12:1" + } + ], + "id": 2028, + "name": "MemberAccess", + "src": "38508:19:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2029, + "name": "Literal", + "src": "38530:1:1" + } + ], + "id": 2030, + "name": "BinaryOperation", + "src": "38508:23:1" + } + ], + "id": 2031, + "name": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "attributes": { + "assignments": [ + 2033 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastEntry", + "scope": 2073, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2032, + "name": "UserDefinedTypeName", + "src": "38771:8:1" + } + ], + "id": 2033, + "name": "VariableDeclaration", + "src": "38771:26:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2034, + "name": "Identifier", + "src": "38800:3:1" + } + ], + "id": 2035, + "name": "MemberAccess", + "src": "38800:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2025, + "type": "uint256", + "value": "lastIndex" + }, + "id": 2036, + "name": "Identifier", + "src": "38813:9:1" + } + ], + "id": 2037, + "name": "IndexAccess", + "src": "38800:23:1" + } + ], + "id": 2038, + "name": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2039, + "name": "Identifier", + "src": "38915:3:1" + } + ], + "id": 2042, + "name": "MemberAccess", + "src": "38915:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2041, + "name": "Identifier", + "src": "38928:13:1" + } + ], + "id": 2043, + "name": "IndexAccess", + "src": "38915:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2044, + "name": "Identifier", + "src": "38945:9:1" + } + ], + "id": 2045, + "name": "Assignment", + "src": "38915:39:1" + } + ], + "id": 2046, + "name": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2047, + "name": "Identifier", + "src": "39020:3:1" + } + ], + "id": 2051, + "name": "MemberAccess", + "src": "39020:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2049, + "name": "Identifier", + "src": "39033:9:1" + } + ], + "id": 2050, + "name": "MemberAccess", + "src": "39033:14:1" + } + ], + "id": 2052, + "name": "IndexAccess", + "src": "39020:28:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2053, + "name": "Identifier", + "src": "39051:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2054, + "name": "Literal", + "src": "39067:1:1" + } + ], + "id": 2055, + "name": "BinaryOperation", + "src": "39051:17:1" + } + ], + "id": 2056, + "name": "Assignment", + "src": "39020:48:1" + } + ], + "id": 2057, + "name": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2058, + "name": "Identifier", + "src": "39174:3:1" + } + ], + "id": 2061, + "name": "MemberAccess", + "src": "39174:12:1" + } + ], + "id": 2062, + "name": "MemberAccess", + "src": "39174:16:1" + } + ], + "id": 2063, + "name": "FunctionCall", + "src": "39174:18:1" + } + ], + "id": 2064, + "name": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2065, + "name": "Identifier", + "src": "39267:3:1" + } + ], + "id": 2066, + "name": "MemberAccess", + "src": "39267:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2067, + "name": "Identifier", + "src": "39280:3:1" + } + ], + "id": 2068, + "name": "IndexAccess", + "src": "39267:17:1" + } + ], + "id": 2069, + "name": "UnaryOperation", + "src": "39260:24:1" + } + ], + "id": 2070, + "name": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2071, + "name": "Literal", + "src": "39306:4:1" + } + ], + "id": 2072, + "name": "Return", + "src": "39299:11:1" + } + ], + "id": 2073, + "name": "Block", + "src": "38097:1224:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2074, + "name": "Literal", + "src": "39348:5:1" + } + ], + "id": 2075, + "name": "Return", + "src": "39341:12:1" + } + ], + "id": 2076, + "name": "Block", + "src": "39327:37:1" + } + ], + "id": 2077, + "name": "IfStatement", + "src": "38078:1286:1" + } + ], + "id": 2078, + "name": "Block", + "src": "37923:1447:1" + } + ], + "id": 2079, + "name": "FunctionDefinition", + "src": "37853:1517:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2080, + "name": "StructuredDocumentation", + "src": "39376:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2097, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2081, + "name": "UserDefinedTypeName", + "src": "39468:3:1" + } + ], + "id": 2082, + "name": "VariableDeclaration", + "src": "39468:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2083, + "name": "ElementaryTypeName", + "src": "39485:7:1" + } + ], + "id": 2084, + "name": "VariableDeclaration", + "src": "39485:11:1" + } + ], + "id": 2085, + "name": "ParameterList", + "src": "39467:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2086, + "name": "ElementaryTypeName", + "src": "39520:4:1" + } + ], + "id": 2087, + "name": "VariableDeclaration", + "src": "39520:4:1" + } + ], + "id": 2088, + "name": "ParameterList", + "src": "39519:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2088 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2082, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2089, + "name": "Identifier", + "src": "39543:3:1" + } + ], + "id": 2090, + "name": "MemberAccess", + "src": "39543:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2084, + "type": "bytes32", + "value": "key" + }, + "id": 2091, + "name": "Identifier", + "src": "39556:3:1" + } + ], + "id": 2092, + "name": "IndexAccess", + "src": "39543:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2093, + "name": "Literal", + "src": "39564:1:1" + } + ], + "id": 2094, + "name": "BinaryOperation", + "src": "39543:22:1" + } + ], + "id": 2095, + "name": "Return", + "src": "39536:29:1" + } + ], + "id": 2096, + "name": "Block", + "src": "39526:46:1" + } + ], + "id": 2097, + "name": "FunctionDefinition", + "src": "39449:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2098, + "name": "StructuredDocumentation", + "src": "39578:79:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2110, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2099, + "name": "UserDefinedTypeName", + "src": "39679:3:1" + } + ], + "id": 2100, + "name": "VariableDeclaration", + "src": "39679:15:1" + } + ], + "id": 2101, + "name": "ParameterList", + "src": "39678:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2102, + "name": "ElementaryTypeName", + "src": "39718:7:1" + } + ], + "id": 2103, + "name": "VariableDeclaration", + "src": "39718:7:1" + } + ], + "id": 2104, + "name": "ParameterList", + "src": "39717:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2104 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2100, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2105, + "name": "Identifier", + "src": "39744:3:1" + } + ], + "id": 2106, + "name": "MemberAccess", + "src": "39744:12:1" + } + ], + "id": 2107, + "name": "MemberAccess", + "src": "39744:19:1" + } + ], + "id": 2108, + "name": "Return", + "src": "39737:26:1" + } + ], + "id": 2109, + "name": "Block", + "src": "39727:43:1" + } + ], + "id": 2110, + "name": "FunctionDefinition", + "src": "39662:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2111, + "name": "StructuredDocumentation", + "src": "39775:333:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2145, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2112, + "name": "UserDefinedTypeName", + "src": "40126:3:1" + } + ], + "id": 2113, + "name": "VariableDeclaration", + "src": "40126:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2114, + "name": "ElementaryTypeName", + "src": "40143:7:1" + } + ], + "id": 2115, + "name": "VariableDeclaration", + "src": "40143:13:1" + } + ], + "id": 2116, + "name": "ParameterList", + "src": "40125:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2117, + "name": "ElementaryTypeName", + "src": "40180:7:1" + } + ], + "id": 2118, + "name": "VariableDeclaration", + "src": "40180:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2119, + "name": "ElementaryTypeName", + "src": "40189:7:1" + } + ], + "id": 2120, + "name": "VariableDeclaration", + "src": "40189:7:1" + } + ], + "id": 2121, + "name": "ParameterList", + "src": "40179:18:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2122, + "name": "Identifier", + "src": "40208:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2123, + "name": "Identifier", + "src": "40216:3:1" + } + ], + "id": 2124, + "name": "MemberAccess", + "src": "40216:12:1" + } + ], + "id": 2125, + "name": "MemberAccess", + "src": "40216:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2126, + "name": "Identifier", + "src": "40238:5:1" + } + ], + "id": 2127, + "name": "BinaryOperation", + "src": "40216:27:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: index out of bounds\"", + "value": "EnumerableMap: index out of bounds" + }, + "id": 2128, + "name": "Literal", + "src": "40245:36:1" + } + ], + "id": 2129, + "name": "FunctionCall", + "src": "40208:74:1" + } + ], + "id": 2130, + "name": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "attributes": { + "assignments": [ + 2132 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "entry", + "scope": 2144, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2131, + "name": "UserDefinedTypeName", + "src": "40293:8:1" + } + ], + "id": 2132, + "name": "VariableDeclaration", + "src": "40293:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2133, + "name": "Identifier", + "src": "40318:3:1" + } + ], + "id": 2134, + "name": "MemberAccess", + "src": "40318:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2135, + "name": "Identifier", + "src": "40331:5:1" + } + ], + "id": 2136, + "name": "IndexAccess", + "src": "40318:19:1" + } + ], + "id": 2137, + "name": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2121 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bytes32,bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2138, + "name": "Identifier", + "src": "40355:5:1" + } + ], + "id": 2139, + "name": "MemberAccess", + "src": "40355:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2140, + "name": "Identifier", + "src": "40367:5:1" + } + ], + "id": 2141, + "name": "MemberAccess", + "src": "40367:12:1" + } + ], + "id": 2142, + "name": "TupleExpression", + "src": "40354:26:1" + } + ], + "id": 2143, + "name": "Return", + "src": "40347:33:1" + } + ], + "id": 2144, + "name": "Block", + "src": "40198:189:1" + } + ], + "id": 2145, + "name": "FunctionDefinition", + "src": "40113:274:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2146, + "name": "StructuredDocumentation", + "src": "40393:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2183, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2147, + "name": "UserDefinedTypeName", + "src": "40546:3:1" + } + ], + "id": 2148, + "name": "VariableDeclaration", + "src": "40546:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2149, + "name": "ElementaryTypeName", + "src": "40563:7:1" + } + ], + "id": 2150, + "name": "VariableDeclaration", + "src": "40563:11:1" + } + ], + "id": 2151, + "name": "ParameterList", + "src": "40545:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2152, + "name": "ElementaryTypeName", + "src": "40598:4:1" + } + ], + "id": 2153, + "name": "VariableDeclaration", + "src": "40598:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2154, + "name": "ElementaryTypeName", + "src": "40604:7:1" + } + ], + "id": 2155, + "name": "VariableDeclaration", + "src": "40604:7:1" + } + ], + "id": 2156, + "name": "ParameterList", + "src": "40597:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2158 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2182, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2157, + "name": "ElementaryTypeName", + "src": "40623:7:1" + } + ], + "id": 2158, + "name": "VariableDeclaration", + "src": "40623:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2159, + "name": "Identifier", + "src": "40642:3:1" + } + ], + "id": 2160, + "name": "MemberAccess", + "src": "40642:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2150, + "type": "bytes32", + "value": "key" + }, + "id": 2161, + "name": "Identifier", + "src": "40655:3:1" + } + ], + "id": 2162, + "name": "IndexAccess", + "src": "40642:17:1" + } + ], + "id": 2163, + "name": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2164, + "name": "Identifier", + "src": "40673:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2165, + "name": "Literal", + "src": "40685:1:1" + } + ], + "id": 2166, + "name": "BinaryOperation", + "src": "40673:13:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2167, + "name": "Literal", + "src": "40696:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2168, + "name": "Literal", + "src": "40703:1:1" + } + ], + "id": 2169, + "name": "TupleExpression", + "src": "40695:10:1" + } + ], + "id": 2170, + "name": "Return", + "src": "40688:17:1" + } + ], + "id": 2171, + "name": "IfStatement", + "src": "40669:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,bytes32)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2172, + "name": "Literal", + "src": "40759:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2173, + "name": "Identifier", + "src": "40765:3:1" + } + ], + "id": 2174, + "name": "MemberAccess", + "src": "40765:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2175, + "name": "Identifier", + "src": "40778:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2176, + "name": "Literal", + "src": "40789:1:1" + } + ], + "id": 2177, + "name": "BinaryOperation", + "src": "40778:12:1" + } + ], + "id": 2178, + "name": "IndexAccess", + "src": "40765:26:1" + } + ], + "id": 2179, + "name": "MemberAccess", + "src": "40765:33:1" + } + ], + "id": 2180, + "name": "TupleExpression", + "src": "40758:41:1" + } + ], + "id": 2181, + "name": "Return", + "src": "40751:48:1" + } + ], + "id": 2182, + "name": "Block", + "src": "40613:220:1" + } + ], + "id": 2183, + "name": "FunctionDefinition", + "src": "40529:304:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2184, + "name": "StructuredDocumentation", + "src": "40839:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2216, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2185, + "name": "UserDefinedTypeName", + "src": "40999:3:1" + } + ], + "id": 2186, + "name": "VariableDeclaration", + "src": "40999:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2187, + "name": "ElementaryTypeName", + "src": "41016:7:1" + } + ], + "id": 2188, + "name": "VariableDeclaration", + "src": "41016:11:1" + } + ], + "id": 2189, + "name": "ParameterList", + "src": "40998:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2190, + "name": "ElementaryTypeName", + "src": "41051:7:1" + } + ], + "id": 2191, + "name": "VariableDeclaration", + "src": "41051:7:1" + } + ], + "id": 2192, + "name": "ParameterList", + "src": "41050:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2194 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2215, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2193, + "name": "ElementaryTypeName", + "src": "41070:7:1" + } + ], + "id": 2194, + "name": "VariableDeclaration", + "src": "41070:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2195, + "name": "Identifier", + "src": "41089:3:1" + } + ], + "id": 2196, + "name": "MemberAccess", + "src": "41089:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2188, + "type": "bytes32", + "value": "key" + }, + "id": 2197, + "name": "Identifier", + "src": "41102:3:1" + } + ], + "id": 2198, + "name": "IndexAccess", + "src": "41089:17:1" + } + ], + "id": 2199, + "name": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2200, + "name": "Identifier", + "src": "41116:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2201, + "name": "Identifier", + "src": "41124:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2202, + "name": "Literal", + "src": "41136:1:1" + } + ], + "id": 2203, + "name": "BinaryOperation", + "src": "41124:13:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: nonexistent key\"", + "value": "EnumerableMap: nonexistent key" + }, + "id": 2204, + "name": "Literal", + "src": "41139:32:1" + } + ], + "id": 2205, + "name": "FunctionCall", + "src": "41116:56:1" + } + ], + "id": 2206, + "name": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "attributes": { + "functionReturnParameters": 2192 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2207, + "name": "Identifier", + "src": "41225:3:1" + } + ], + "id": 2208, + "name": "MemberAccess", + "src": "41225:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2209, + "name": "Identifier", + "src": "41238:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2210, + "name": "Literal", + "src": "41249:1:1" + } + ], + "id": 2211, + "name": "BinaryOperation", + "src": "41238:12:1" + } + ], + "id": 2212, + "name": "IndexAccess", + "src": "41225:26:1" + } + ], + "id": 2213, + "name": "MemberAccess", + "src": "41225:33:1" + } + ], + "id": 2214, + "name": "Return", + "src": "41218:40:1" + } + ], + "id": 2215, + "name": "Block", + "src": "41060:232:1" + } + ], + "id": 2216, + "name": "FunctionDefinition", + "src": "40985:307:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2217, + "name": "StructuredDocumentation", + "src": "41298:271:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2251, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2218, + "name": "UserDefinedTypeName", + "src": "41588:3:1" + } + ], + "id": 2219, + "name": "VariableDeclaration", + "src": "41588:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2220, + "name": "ElementaryTypeName", + "src": "41605:7:1" + } + ], + "id": 2221, + "name": "VariableDeclaration", + "src": "41605:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2251, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2222, + "name": "ElementaryTypeName", + "src": "41618:6:1" + } + ], + "id": 2223, + "name": "VariableDeclaration", + "src": "41618:26:1" + } + ], + "id": 2224, + "name": "ParameterList", + "src": "41587:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2225, + "name": "ElementaryTypeName", + "src": "41668:7:1" + } + ], + "id": 2226, + "name": "VariableDeclaration", + "src": "41668:7:1" + } + ], + "id": 2227, + "name": "ParameterList", + "src": "41667:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2229 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2250, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2228, + "name": "ElementaryTypeName", + "src": "41687:7:1" + } + ], + "id": 2229, + "name": "VariableDeclaration", + "src": "41687:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2230, + "name": "Identifier", + "src": "41706:3:1" + } + ], + "id": 2231, + "name": "MemberAccess", + "src": "41706:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2221, + "type": "bytes32", + "value": "key" + }, + "id": 2232, + "name": "Identifier", + "src": "41719:3:1" + } + ], + "id": 2233, + "name": "IndexAccess", + "src": "41706:17:1" + } + ], + "id": 2234, + "name": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2235, + "name": "Identifier", + "src": "41733:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2236, + "name": "Identifier", + "src": "41741:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2237, + "name": "Literal", + "src": "41753:1:1" + } + ], + "id": 2238, + "name": "BinaryOperation", + "src": "41741:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2223, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2239, + "name": "Identifier", + "src": "41756:12:1" + } + ], + "id": 2240, + "name": "FunctionCall", + "src": "41733:36:1" + } + ], + "id": 2241, + "name": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2227 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2242, + "name": "Identifier", + "src": "41822:3:1" + } + ], + "id": 2243, + "name": "MemberAccess", + "src": "41822:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2244, + "name": "Identifier", + "src": "41835:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2245, + "name": "Literal", + "src": "41846:1:1" + } + ], + "id": 2246, + "name": "BinaryOperation", + "src": "41835:12:1" + } + ], + "id": 2247, + "name": "IndexAccess", + "src": "41822:26:1" + } + ], + "id": 2248, + "name": "MemberAccess", + "src": "41822:33:1" + } + ], + "id": 2249, + "name": "Return", + "src": "41815:40:1" + } + ], + "id": 2250, + "name": "Block", + "src": "41677:212:1" + } + ], + "id": 2251, + "name": "FunctionDefinition", + "src": "41574:315:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.UintToAddressMap", + "name": "UintToAddressMap", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 2254, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2252, + "name": "UserDefinedTypeName", + "src": "41954:3:1" + } + ], + "id": 2253, + "name": "VariableDeclaration", + "src": "41954:10:1" + } + ], + "id": 2254, + "name": "StructDefinition", + "src": "41920:51:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2255, + "name": "StructuredDocumentation", + "src": "41977:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2286, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2256, + "name": "UserDefinedTypeName", + "src": "42211:16:1" + } + ], + "id": 2257, + "name": "VariableDeclaration", + "src": "42211:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2258, + "name": "ElementaryTypeName", + "src": "42241:7:1" + } + ], + "id": 2259, + "name": "VariableDeclaration", + "src": "42241:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2260, + "name": "ElementaryTypeName", + "src": "42254:7:1" + } + ], + "id": 2261, + "name": "VariableDeclaration", + "src": "42254:13:1" + } + ], + "id": 2262, + "name": "ParameterList", + "src": "42210:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2263, + "name": "ElementaryTypeName", + "src": "42287:4:1" + } + ], + "id": 2264, + "name": "VariableDeclaration", + "src": "42287:4:1" + } + ], + "id": 2265, + "name": "ParameterList", + "src": "42286:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2265 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1998, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)", + "value": "_set" + }, + "id": 2266, + "name": "Identifier", + "src": "42310:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2257, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2267, + "name": "Identifier", + "src": "42315:3:1" + } + ], + "id": 2268, + "name": "MemberAccess", + "src": "42315:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2269, + "name": "ElementaryTypeName", + "src": "42327:7:1" + } + ], + "id": 2270, + "name": "ElementaryTypeNameExpression", + "src": "42327:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2259, + "type": "uint256", + "value": "key" + }, + "id": 2271, + "name": "Identifier", + "src": "42335:3:1" + } + ], + "id": 2272, + "name": "FunctionCall", + "src": "42327:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2273, + "name": "ElementaryTypeName", + "src": "42341:7:1" + } + ], + "id": 2274, + "name": "ElementaryTypeNameExpression", + "src": "42341:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2275, + "name": "ElementaryTypeName", + "src": "42349:7:1" + } + ], + "id": 2276, + "name": "ElementaryTypeNameExpression", + "src": "42349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2277, + "name": "ElementaryTypeName", + "src": "42357:7:1" + } + ], + "id": 2278, + "name": "ElementaryTypeNameExpression", + "src": "42357:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2261, + "type": "address", + "value": "value" + }, + "id": 2279, + "name": "Identifier", + "src": "42365:5:1" + } + ], + "id": 2280, + "name": "FunctionCall", + "src": "42357:14:1" + } + ], + "id": 2281, + "name": "FunctionCall", + "src": "42349:23:1" + } + ], + "id": 2282, + "name": "FunctionCall", + "src": "42341:32:1" + } + ], + "id": 2283, + "name": "FunctionCall", + "src": "42310:64:1" + } + ], + "id": 2284, + "name": "Return", + "src": "42303:71:1" + } + ], + "id": 2285, + "name": "Block", + "src": "42293:88:1" + } + ], + "id": 2286, + "name": "FunctionDefinition", + "src": "42198:183:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2287, + "name": "StructuredDocumentation", + "src": "42387:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2306, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2288, + "name": "UserDefinedTypeName", + "src": "42556:16:1" + } + ], + "id": 2289, + "name": "VariableDeclaration", + "src": "42556:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2290, + "name": "ElementaryTypeName", + "src": "42586:7:1" + } + ], + "id": 2291, + "name": "VariableDeclaration", + "src": "42586:11:1" + } + ], + "id": 2292, + "name": "ParameterList", + "src": "42555:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2293, + "name": "ElementaryTypeName", + "src": "42617:4:1" + } + ], + "id": 2294, + "name": "VariableDeclaration", + "src": "42617:4:1" + } + ], + "id": 2295, + "name": "ParameterList", + "src": "42616:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2295 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2079, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 2296, + "name": "Identifier", + "src": "42640:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2289, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2297, + "name": "Identifier", + "src": "42648:3:1" + } + ], + "id": 2298, + "name": "MemberAccess", + "src": "42648:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2299, + "name": "ElementaryTypeName", + "src": "42660:7:1" + } + ], + "id": 2300, + "name": "ElementaryTypeNameExpression", + "src": "42660:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2291, + "type": "uint256", + "value": "key" + }, + "id": 2301, + "name": "Identifier", + "src": "42668:3:1" + } + ], + "id": 2302, + "name": "FunctionCall", + "src": "42660:12:1" + } + ], + "id": 2303, + "name": "FunctionCall", + "src": "42640:33:1" + } + ], + "id": 2304, + "name": "Return", + "src": "42633:40:1" + } + ], + "id": 2305, + "name": "Block", + "src": "42623:57:1" + } + ], + "id": 2306, + "name": "FunctionDefinition", + "src": "42540:140:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2307, + "name": "StructuredDocumentation", + "src": "42686:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2326, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2308, + "name": "UserDefinedTypeName", + "src": "42777:16:1" + } + ], + "id": 2309, + "name": "VariableDeclaration", + "src": "42777:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2310, + "name": "ElementaryTypeName", + "src": "42807:7:1" + } + ], + "id": 2311, + "name": "VariableDeclaration", + "src": "42807:11:1" + } + ], + "id": 2312, + "name": "ParameterList", + "src": "42776:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2313, + "name": "ElementaryTypeName", + "src": "42843:4:1" + } + ], + "id": 2314, + "name": "VariableDeclaration", + "src": "42843:4:1" + } + ], + "id": 2315, + "name": "ParameterList", + "src": "42842:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2315 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2097, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 2316, + "name": "Identifier", + "src": "42866:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2309, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2317, + "name": "Identifier", + "src": "42876:3:1" + } + ], + "id": 2318, + "name": "MemberAccess", + "src": "42876:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2319, + "name": "ElementaryTypeName", + "src": "42888:7:1" + } + ], + "id": 2320, + "name": "ElementaryTypeNameExpression", + "src": "42888:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2311, + "type": "uint256", + "value": "key" + }, + "id": 2321, + "name": "Identifier", + "src": "42896:3:1" + } + ], + "id": 2322, + "name": "FunctionCall", + "src": "42888:12:1" + } + ], + "id": 2323, + "name": "FunctionCall", + "src": "42866:35:1" + } + ], + "id": 2324, + "name": "Return", + "src": "42859:42:1" + } + ], + "id": 2325, + "name": "Block", + "src": "42849:59:1" + } + ], + "id": 2326, + "name": "FunctionDefinition", + "src": "42759:149:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2327, + "name": "StructuredDocumentation", + "src": "42914:72:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2340, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2328, + "name": "UserDefinedTypeName", + "src": "43007:16:1" + } + ], + "id": 2329, + "name": "VariableDeclaration", + "src": "43007:28:1" + } + ], + "id": 2330, + "name": "ParameterList", + "src": "43006:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2340, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2331, + "name": "ElementaryTypeName", + "src": "43060:7:1" + } + ], + "id": 2332, + "name": "VariableDeclaration", + "src": "43060:7:1" + } + ], + "id": 2333, + "name": "ParameterList", + "src": "43059:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2333 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2110, + "type": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 2334, + "name": "Identifier", + "src": "43086:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2329, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2335, + "name": "Identifier", + "src": "43094:3:1" + } + ], + "id": 2336, + "name": "MemberAccess", + "src": "43094:10:1" + } + ], + "id": 2337, + "name": "FunctionCall", + "src": "43086:19:1" + } + ], + "id": 2338, + "name": "Return", + "src": "43079:26:1" + } + ], + "id": 2339, + "name": "Block", + "src": "43069:43:1" + } + ], + "id": 2340, + "name": "FunctionDefinition", + "src": "42991:121:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2341, + "name": "StructuredDocumentation", + "src": "43117:318:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2379, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2342, + "name": "UserDefinedTypeName", + "src": "43452:16:1" + } + ], + "id": 2343, + "name": "VariableDeclaration", + "src": "43452:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2344, + "name": "ElementaryTypeName", + "src": "43482:7:1" + } + ], + "id": 2345, + "name": "VariableDeclaration", + "src": "43482:13:1" + } + ], + "id": 2346, + "name": "ParameterList", + "src": "43451:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2347, + "name": "ElementaryTypeName", + "src": "43520:7:1" + } + ], + "id": 2348, + "name": "VariableDeclaration", + "src": "43520:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2349, + "name": "ElementaryTypeName", + "src": "43529:7:1" + } + ], + "id": 2350, + "name": "VariableDeclaration", + "src": "43529:7:1" + } + ], + "id": 2351, + "name": "ParameterList", + "src": "43519:18:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2353, + 2355 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2352, + "name": "ElementaryTypeName", + "src": "43549:7:1" + } + ], + "id": 2353, + "name": "VariableDeclaration", + "src": "43549:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2354, + "name": "ElementaryTypeName", + "src": "43562:7:1" + } + ], + "id": 2355, + "name": "VariableDeclaration", + "src": "43562:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bytes32,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2145, + "type": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)", + "value": "_at" + }, + "id": 2356, + "name": "Identifier", + "src": "43579:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2343, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2357, + "name": "Identifier", + "src": "43583:3:1" + } + ], + "id": 2358, + "name": "MemberAccess", + "src": "43583:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2345, + "type": "uint256", + "value": "index" + }, + "id": 2359, + "name": "Identifier", + "src": "43595:5:1" + } + ], + "id": 2360, + "name": "FunctionCall", + "src": "43579:22:1" + } + ], + "id": 2361, + "name": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "attributes": { + "functionReturnParameters": 2351 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(uint256,address payable)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2362, + "name": "ElementaryTypeName", + "src": "43619:7:1" + } + ], + "id": 2363, + "name": "ElementaryTypeNameExpression", + "src": "43619:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2353, + "type": "bytes32", + "value": "key" + }, + "id": 2364, + "name": "Identifier", + "src": "43627:3:1" + } + ], + "id": 2365, + "name": "FunctionCall", + "src": "43619:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2366, + "name": "ElementaryTypeName", + "src": "43633:7:1" + } + ], + "id": 2367, + "name": "ElementaryTypeNameExpression", + "src": "43633:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2368, + "name": "ElementaryTypeName", + "src": "43641:7:1" + } + ], + "id": 2369, + "name": "ElementaryTypeNameExpression", + "src": "43641:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2370, + "name": "ElementaryTypeName", + "src": "43649:7:1" + } + ], + "id": 2371, + "name": "ElementaryTypeNameExpression", + "src": "43649:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2355, + "type": "bytes32", + "value": "value" + }, + "id": 2372, + "name": "Identifier", + "src": "43657:5:1" + } + ], + "id": 2373, + "name": "FunctionCall", + "src": "43649:14:1" + } + ], + "id": 2374, + "name": "FunctionCall", + "src": "43641:23:1" + } + ], + "id": 2375, + "name": "FunctionCall", + "src": "43633:32:1" + } + ], + "id": 2376, + "name": "TupleExpression", + "src": "43618:48:1" + } + ], + "id": 2377, + "name": "Return", + "src": "43611:55:1" + } + ], + "id": 2378, + "name": "Block", + "src": "43538:135:1" + } + ], + "id": 2379, + "name": "FunctionDefinition", + "src": "43440:233:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2380, + "name": "StructuredDocumentation", + "src": "43679:169:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2418, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2381, + "name": "UserDefinedTypeName", + "src": "43869:16:1" + } + ], + "id": 2382, + "name": "VariableDeclaration", + "src": "43869:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2383, + "name": "ElementaryTypeName", + "src": "43899:7:1" + } + ], + "id": 2384, + "name": "VariableDeclaration", + "src": "43899:11:1" + } + ], + "id": 2385, + "name": "ParameterList", + "src": "43868:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2386, + "name": "ElementaryTypeName", + "src": "43935:4:1" + } + ], + "id": 2387, + "name": "VariableDeclaration", + "src": "43935:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2388, + "name": "ElementaryTypeName", + "src": "43941:7:1" + } + ], + "id": 2389, + "name": "VariableDeclaration", + "src": "43941:7:1" + } + ], + "id": 2390, + "name": "ParameterList", + "src": "43934:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2392, + 2394 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "43961:4:1" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "43961:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "43975:7:1" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "43975:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2183, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)", + "value": "_tryGet" + }, + "id": 2395, + "name": "Identifier", + "src": "43992:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2382, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2396, + "name": "Identifier", + "src": "44000:3:1" + } + ], + "id": 2397, + "name": "MemberAccess", + "src": "44000:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "44012:7:1" + } + ], + "id": 2399, + "name": "ElementaryTypeNameExpression", + "src": "44012:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2384, + "type": "uint256", + "value": "key" + }, + "id": 2400, + "name": "Identifier", + "src": "44020:3:1" + } + ], + "id": 2401, + "name": "FunctionCall", + "src": "44012:12:1" + } + ], + "id": 2402, + "name": "FunctionCall", + "src": "43992:33:1" + } + ], + "id": 2403, + "name": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "attributes": { + "functionReturnParameters": 2390 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,address payable)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2392, + "type": "bool", + "value": "success" + }, + "id": 2404, + "name": "Identifier", + "src": "44043:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2405, + "name": "ElementaryTypeName", + "src": "44052:7:1" + } + ], + "id": 2406, + "name": "ElementaryTypeNameExpression", + "src": "44052:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "44060:7:1" + } + ], + "id": 2408, + "name": "ElementaryTypeNameExpression", + "src": "44060:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "44068:7:1" + } + ], + "id": 2410, + "name": "ElementaryTypeNameExpression", + "src": "44068:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2394, + "type": "bytes32", + "value": "value" + }, + "id": 2411, + "name": "Identifier", + "src": "44076:5:1" + } + ], + "id": 2412, + "name": "FunctionCall", + "src": "44068:14:1" + } + ], + "id": 2413, + "name": "FunctionCall", + "src": "44060:23:1" + } + ], + "id": 2414, + "name": "FunctionCall", + "src": "44052:32:1" + } + ], + "id": 2415, + "name": "TupleExpression", + "src": "44042:43:1" + } + ], + "id": 2416, + "name": "Return", + "src": "44035:50:1" + } + ], + "id": 2417, + "name": "Block", + "src": "43950:142:1" + } + ], + "id": 2418, + "name": "FunctionDefinition", + "src": "43853:239:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2419, + "name": "StructuredDocumentation", + "src": "44098:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2447, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2420, + "name": "UserDefinedTypeName", + "src": "44257:16:1" + } + ], + "id": 2421, + "name": "VariableDeclaration", + "src": "44257:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2422, + "name": "ElementaryTypeName", + "src": "44287:7:1" + } + ], + "id": 2423, + "name": "VariableDeclaration", + "src": "44287:11:1" + } + ], + "id": 2424, + "name": "ParameterList", + "src": "44256:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2425, + "name": "ElementaryTypeName", + "src": "44323:7:1" + } + ], + "id": 2426, + "name": "VariableDeclaration", + "src": "44323:7:1" + } + ], + "id": 2427, + "name": "ParameterList", + "src": "44322:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2427 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2428, + "name": "ElementaryTypeName", + "src": "44349:7:1" + } + ], + "id": 2429, + "name": "ElementaryTypeNameExpression", + "src": "44349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2430, + "name": "ElementaryTypeName", + "src": "44357:7:1" + } + ], + "id": 2431, + "name": "ElementaryTypeNameExpression", + "src": "44357:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2432, + "name": "ElementaryTypeName", + "src": "44365:7:1" + } + ], + "id": 2433, + "name": "ElementaryTypeNameExpression", + "src": "44365:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)", + "value": "_get" + }, + "id": 2434, + "name": "Identifier", + "src": "44373:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2421, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2435, + "name": "Identifier", + "src": "44378:3:1" + } + ], + "id": 2436, + "name": "MemberAccess", + "src": "44378:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "44390:7:1" + } + ], + "id": 2438, + "name": "ElementaryTypeNameExpression", + "src": "44390:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2423, + "type": "uint256", + "value": "key" + }, + "id": 2439, + "name": "Identifier", + "src": "44398:3:1" + } + ], + "id": 2440, + "name": "FunctionCall", + "src": "44390:12:1" + } + ], + "id": 2441, + "name": "FunctionCall", + "src": "44373:30:1" + } + ], + "id": 2442, + "name": "FunctionCall", + "src": "44365:39:1" + } + ], + "id": 2443, + "name": "FunctionCall", + "src": "44357:48:1" + } + ], + "id": 2444, + "name": "FunctionCall", + "src": "44349:57:1" + } + ], + "id": 2445, + "name": "Return", + "src": "44342:64:1" + } + ], + "id": 2446, + "name": "Block", + "src": "44332:81:1" + } + ], + "id": 2447, + "name": "FunctionDefinition", + "src": "44244:169:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2448, + "name": "StructuredDocumentation", + "src": "44419:269:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2479, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2449, + "name": "UserDefinedTypeName", + "src": "44706:16:1" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "44706:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2451, + "name": "ElementaryTypeName", + "src": "44736:7:1" + } + ], + "id": 2452, + "name": "VariableDeclaration", + "src": "44736:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2479, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "44749:6:1" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "44749:26:1" + } + ], + "id": 2455, + "name": "ParameterList", + "src": "44705:71:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2456, + "name": "ElementaryTypeName", + "src": "44800:7:1" + } + ], + "id": 2457, + "name": "VariableDeclaration", + "src": "44800:7:1" + } + ], + "id": 2458, + "name": "ParameterList", + "src": "44799:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2458 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "44826:7:1" + } + ], + "id": 2460, + "name": "ElementaryTypeNameExpression", + "src": "44826:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "44834:7:1" + } + ], + "id": 2462, + "name": "ElementaryTypeNameExpression", + "src": "44834:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2463, + "name": "ElementaryTypeName", + "src": "44842:7:1" + } + ], + "id": 2464, + "name": "ElementaryTypeNameExpression", + "src": "44842:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)", + "value": "_get" + }, + "id": 2465, + "name": "Identifier", + "src": "44850:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2450, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2466, + "name": "Identifier", + "src": "44855:3:1" + } + ], + "id": 2467, + "name": "MemberAccess", + "src": "44855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2468, + "name": "ElementaryTypeName", + "src": "44867:7:1" + } + ], + "id": 2469, + "name": "ElementaryTypeNameExpression", + "src": "44867:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2452, + "type": "uint256", + "value": "key" + }, + "id": 2470, + "name": "Identifier", + "src": "44875:3:1" + } + ], + "id": 2471, + "name": "FunctionCall", + "src": "44867:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2454, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2472, + "name": "Identifier", + "src": "44881:12:1" + } + ], + "id": 2473, + "name": "FunctionCall", + "src": "44850:44:1" + } + ], + "id": 2474, + "name": "FunctionCall", + "src": "44842:53:1" + } + ], + "id": 2475, + "name": "FunctionCall", + "src": "44834:62:1" + } + ], + "id": 2476, + "name": "FunctionCall", + "src": "44826:71:1" + } + ], + "id": 2477, + "name": "Return", + "src": "44819:78:1" + } + ], + "id": 2478, + "name": "Block", + "src": "44809:95:1" + } + ], + "id": 2479, + "name": "FunctionDefinition", + "src": "44693:211:1" + } + ], + "id": 2480, + "name": "ContractDefinition", + "src": "35943:8963:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2481, + "name": "PragmaDirective", + "src": "44959:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev String operations." + }, + "id": 2482, + "name": "StructuredDocumentation", + "src": "44992:34:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toString", + "scope": 2566, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2483, + "name": "StructuredDocumentation", + "src": "45049:82:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2565, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2484, + "name": "ElementaryTypeName", + "src": "45154:7:1" + } + ], + "id": 2485, + "name": "VariableDeclaration", + "src": "45154:13:1" + } + ], + "id": 2486, + "name": "ParameterList", + "src": "45153:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2565, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "45192:6:1" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "45192:13:1" + } + ], + "id": 2489, + "name": "ParameterList", + "src": "45191:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2490, + "name": "Identifier", + "src": "45409:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2491, + "name": "Literal", + "src": "45418:1:1" + } + ], + "id": 2492, + "name": "BinaryOperation", + "src": "45409:10:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"0\"", + "value": "0" + }, + "id": 2493, + "name": "Literal", + "src": "45442:3:1" + } + ], + "id": 2494, + "name": "Return", + "src": "45435:10:1" + } + ], + "id": 2495, + "name": "Block", + "src": "45421:35:1" + } + ], + "id": 2496, + "name": "IfStatement", + "src": "45405:51:1" + }, + { + "attributes": { + "assignments": [ + 2498 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "temp", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2497, + "name": "ElementaryTypeName", + "src": "45465:7:1" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "45465:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2499, + "name": "Identifier", + "src": "45480:5:1" + } + ], + "id": 2500, + "name": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "attributes": { + "assignments": [ + 2502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "digits", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "45495:7:1" + } + ], + "id": 2502, + "name": "VariableDeclaration", + "src": "45495:14:1" + } + ], + "id": 2503, + "name": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2504, + "name": "Identifier", + "src": "45526:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2505, + "name": "Literal", + "src": "45534:1:1" + } + ], + "id": 2506, + "name": "BinaryOperation", + "src": "45526:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2507, + "name": "Identifier", + "src": "45551:6:1" + } + ], + "id": 2508, + "name": "UnaryOperation", + "src": "45551:8:1" + } + ], + "id": 2509, + "name": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2510, + "name": "Identifier", + "src": "45573:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2511, + "name": "Literal", + "src": "45581:2:1" + } + ], + "id": 2512, + "name": "Assignment", + "src": "45573:10:1" + } + ], + "id": 2513, + "name": "ExpressionStatement", + "src": "45573:10:1" + } + ], + "id": 2514, + "name": "Block", + "src": "45537:57:1" + } + ], + "id": 2515, + "name": "WhileStatement", + "src": "45519:75:1" + }, + { + "attributes": { + "assignments": [ + 2517 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "buffer", + "scope": 2564, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2516, + "name": "ElementaryTypeName", + "src": "45603:5:1" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "45603:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "function (uint256) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "45629:5:1" + } + ], + "id": 2519, + "name": "NewExpression", + "src": "45625:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2520, + "name": "Identifier", + "src": "45635:6:1" + } + ], + "id": 2521, + "name": "FunctionCall", + "src": "45625:17:1" + } + ], + "id": 2522, + "name": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "attributes": { + "assignments": [ + 2524 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2523, + "name": "ElementaryTypeName", + "src": "45652:7:1" + } + ], + "id": 2524, + "name": "VariableDeclaration", + "src": "45652:13:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2525, + "name": "Identifier", + "src": "45668:6:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2526, + "name": "Literal", + "src": "45677:1:1" + } + ], + "id": 2527, + "name": "BinaryOperation", + "src": "45668:10:1" + } + ], + "id": 2528, + "name": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2529, + "name": "Identifier", + "src": "45688:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2530, + "name": "Identifier", + "src": "45695:5:1" + } + ], + "id": 2531, + "name": "Assignment", + "src": "45688:12:1" + } + ], + "id": 2532, + "name": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2533, + "name": "Identifier", + "src": "45717:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2534, + "name": "Literal", + "src": "45725:1:1" + } + ], + "id": 2535, + "name": "BinaryOperation", + "src": "45717:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2536, + "name": "Identifier", + "src": "45742:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "--", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2524, + "type": "uint256", + "value": "index" + }, + "id": 2537, + "name": "Identifier", + "src": "45749:5:1" + } + ], + "id": 2538, + "name": "UnaryOperation", + "src": "45749:7:1" + } + ], + "id": 2539, + "name": "IndexAccess", + "src": "45742:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes1", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes1)" + }, + "children": [ + { + "attributes": { + "name": "bytes1" + }, + "id": 2540, + "name": "ElementaryTypeName", + "src": "45760:6:1" + } + ], + "id": 2541, + "name": "ElementaryTypeNameExpression", + "src": "45760:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 2542, + "name": "ElementaryTypeName", + "src": "45767:5:1" + } + ], + "id": 2543, + "name": "ElementaryTypeNameExpression", + "src": "45767:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "hexvalue": "3438", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 48", + "value": "48" + }, + "id": 2544, + "name": "Literal", + "src": "45773:2:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2545, + "name": "Identifier", + "src": "45778:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2546, + "name": "Literal", + "src": "45785:2:1" + } + ], + "id": 2547, + "name": "BinaryOperation", + "src": "45778:9:1" + } + ], + "id": 2548, + "name": "BinaryOperation", + "src": "45773:14:1" + } + ], + "id": 2549, + "name": "FunctionCall", + "src": "45767:21:1" + } + ], + "id": 2550, + "name": "FunctionCall", + "src": "45760:29:1" + } + ], + "id": 2551, + "name": "Assignment", + "src": "45742:47:1" + } + ], + "id": 2552, + "name": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2553, + "name": "Identifier", + "src": "45803:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2554, + "name": "Literal", + "src": "45811:2:1" + } + ], + "id": 2555, + "name": "Assignment", + "src": "45803:10:1" + } + ], + "id": 2556, + "name": "ExpressionStatement", + "src": "45803:10:1" + } + ], + "id": 2557, + "name": "Block", + "src": "45728:96:1" + } + ], + "id": 2558, + "name": "WhileStatement", + "src": "45710:114:1" + }, + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2559, + "name": "ElementaryTypeName", + "src": "45840:6:1" + } + ], + "id": 2560, + "name": "ElementaryTypeNameExpression", + "src": "45840:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2561, + "name": "Identifier", + "src": "45847:6:1" + } + ], + "id": 2562, + "name": "FunctionCall", + "src": "45840:14:1" + } + ], + "id": 2563, + "name": "Return", + "src": "45833:21:1" + } + ], + "id": 2564, + "name": "Block", + "src": "45207:654:1" + } + ], + "id": 2565, + "name": "FunctionDefinition", + "src": "45136:725:1" + } + ], + "id": 2566, + "name": "ContractDefinition", + "src": "45027:836:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2567, + "name": "PragmaDirective", + "src": "45922:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 2568, + "name": "StructuredDocumentation", + "src": "45955:124:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "Context", + "referencedDeclaration": 530, + "type": "contract Context" + }, + "id": 2569, + "name": "UserDefinedTypeName", + "src": "46099:7:1" + } + ], + "id": 2570, + "name": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "ERC165", + "referencedDeclaration": 781, + "type": "contract ERC165" + }, + "id": 2571, + "name": "UserDefinedTypeName", + "src": "46108:6:1" + } + ], + "id": 2572, + "name": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 2573, + "name": "UserDefinedTypeName", + "src": "46116:7:1" + } + ], + "id": 2574, + "name": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Metadata", + "referencedDeclaration": 680, + "type": "contract IERC721Metadata" + }, + "id": 2575, + "name": "UserDefinedTypeName", + "src": "46125:15:1" + } + ], + "id": 2576, + "name": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Enumerable", + "referencedDeclaration": 709, + "type": "contract IERC721Enumerable" + }, + "id": 2577, + "name": "UserDefinedTypeName", + "src": "46142:17:1" + } + ], + "id": 2578, + "name": "InheritanceSpecifier", + "src": "46142:17:1" + }, + { + "children": [ + { + "attributes": { + "name": "SafeMath", + "referencedDeclaration": 1135, + "type": "library SafeMath" + }, + "id": 2579, + "name": "UserDefinedTypeName", + "src": "46172:8:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2580, + "name": "ElementaryTypeName", + "src": "46185:7:1" + } + ], + "id": 2581, + "name": "UsingForDirective", + "src": "46166:27:1" + }, + { + "children": [ + { + "attributes": { + "name": "Address", + "referencedDeclaration": 1430, + "type": "library Address" + }, + "id": 2582, + "name": "UserDefinedTypeName", + "src": "46204:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "46216:7:1" + } + ], + "id": 2584, + "name": "UsingForDirective", + "src": "46198:26:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableSet", + "referencedDeclaration": 1921, + "type": "library EnumerableSet" + }, + "id": 2585, + "name": "UserDefinedTypeName", + "src": "46235:13:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2586, + "name": "UserDefinedTypeName", + "src": "46253:21:1" + } + ], + "id": 2587, + "name": "UsingForDirective", + "src": "46229:46:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableMap", + "referencedDeclaration": 2480, + "type": "library EnumerableMap" + }, + "id": 2588, + "name": "UserDefinedTypeName", + "src": "46286:13:1" + }, + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2589, + "name": "UserDefinedTypeName", + "src": "46304:30:1" + } + ], + "id": 2590, + "name": "UsingForDirective", + "src": "46280:55:1" + }, + { + "children": [ + { + "attributes": { + "name": "Strings", + "referencedDeclaration": 2566, + "type": "library Strings" + }, + "id": 2591, + "name": "UserDefinedTypeName", + "src": "46346:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2592, + "name": "ElementaryTypeName", + "src": "46358:7:1" + } + ], + "id": 2593, + "name": "UsingForDirective", + "src": "46340:26:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "46544:6:1" + }, + { + "attributes": { + "hexvalue": "30783135306237613032", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 353073666", + "value": "0x150b7a02" + }, + "id": 2595, + "name": "Literal", + "src": "46587:10:1" + } + ], + "id": 2596, + "name": "VariableDeclaration", + "src": "46544:53:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_holderTokens", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => struct EnumerableSet.UintSet)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct EnumerableSet.UintSet)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2597, + "name": "ElementaryTypeName", + "src": "46690:7:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2598, + "name": "UserDefinedTypeName", + "src": "46701:21:1" + } + ], + "id": 2599, + "name": "Mapping", + "src": "46681:42:1" + } + ], + "id": 2600, + "name": "VariableDeclaration", + "src": "46681:64:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenOwners", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2601, + "name": "UserDefinedTypeName", + "src": "46809:30:1" + } + ], + "id": 2602, + "name": "VariableDeclaration", + "src": "46809:51:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => address)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => address)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2603, + "name": "ElementaryTypeName", + "src": "46925:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "46936:7:1" + } + ], + "id": 2605, + "name": "Mapping", + "src": "46916:28:1" + } + ], + "id": 2606, + "name": "VariableDeclaration", + "src": "46916:52:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_operatorApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => mapping(address => bool))", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => mapping(address => bool))" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2607, + "name": "ElementaryTypeName", + "src": "47032:7:1" + }, + { + "attributes": { + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2608, + "name": "ElementaryTypeName", + "src": "47052:7:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2609, + "name": "ElementaryTypeName", + "src": "47063:4:1" + } + ], + "id": 2610, + "name": "Mapping", + "src": "47043:25:1" + } + ], + "id": 2611, + "name": "Mapping", + "src": "47023:46:1" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "47023:73:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_name", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "47121:6:1" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "47121:20:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_symbol", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "47168:6:1" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "47168:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURIs", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => string)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => string)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "47245:7:1" + }, + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2618, + "name": "ElementaryTypeName", + "src": "47256:6:1" + } + ], + "id": 2619, + "name": "Mapping", + "src": "47236:27:1" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "47236:46:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_baseURI", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2621, + "name": "ElementaryTypeName", + "src": "47305:6:1" + } + ], + "id": 2622, + "name": "VariableDeclaration", + "src": "47305:23:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2623, + "name": "ElementaryTypeName", + "src": "48204:6:1" + }, + { + "attributes": { + "hexvalue": "30783830616335386364", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2158778573", + "value": "0x80ac58cd" + }, + "id": 2624, + "name": "Literal", + "src": "48251:10:1" + } + ], + "id": 2625, + "name": "VariableDeclaration", + "src": "48204:57:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2626, + "name": "ElementaryTypeName", + "src": "48527:6:1" + }, + { + "attributes": { + "hexvalue": "30783562356531333966", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1532892063", + "value": "0x5b5e139f" + }, + "id": 2627, + "name": "Literal", + "src": "48583:10:1" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "48527:66:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "48898:6:1" + }, + { + "attributes": { + "hexvalue": "30783738306539643633", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2014223715", + "value": "0x780e9d63" + }, + "id": 2630, + "name": "Literal", + "src": "48956:10:1" + } + ], + "id": 2631, + "name": "VariableDeclaration", + "src": "48898:68:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2632, + "name": "StructuredDocumentation", + "src": "48973:108:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "name_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2633, + "name": "ElementaryTypeName", + "src": "49099:6:1" + } + ], + "id": 2634, + "name": "VariableDeclaration", + "src": "49099:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "symbol_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2635, + "name": "ElementaryTypeName", + "src": "49120:6:1" + } + ], + "id": 2636, + "name": "VariableDeclaration", + "src": "49120:21:1" + } + ], + "id": 2637, + "name": "ParameterList", + "src": "49098:44:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2638, + "name": "ParameterList", + "src": "49143:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2639, + "name": "Identifier", + "src": "49153:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2634, + "type": "string memory", + "value": "name_" + }, + "id": 2640, + "name": "Identifier", + "src": "49161:5:1" + } + ], + "id": 2641, + "name": "Assignment", + "src": "49153:13:1" + } + ], + "id": 2642, + "name": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2643, + "name": "Identifier", + "src": "49176:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2636, + "type": "string memory", + "value": "symbol_" + }, + "id": 2644, + "name": "Identifier", + "src": "49186:7:1" + } + ], + "id": 2645, + "name": "Assignment", + "src": "49176:17:1" + } + ], + "id": 2646, + "name": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2647, + "name": "Identifier", + "src": "49281:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2625, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721" + }, + "id": 2648, + "name": "Identifier", + "src": "49300:20:1" + } + ], + "id": 2649, + "name": "FunctionCall", + "src": "49281:40:1" + } + ], + "id": 2650, + "name": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2651, + "name": "Identifier", + "src": "49331:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2628, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_METADATA" + }, + "id": 2652, + "name": "Identifier", + "src": "49350:29:1" + } + ], + "id": 2653, + "name": "FunctionCall", + "src": "49331:49:1" + } + ], + "id": 2654, + "name": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2655, + "name": "Identifier", + "src": "49390:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2631, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_ENUMERABLE" + }, + "id": 2656, + "name": "Identifier", + "src": "49409:31:1" + } + ], + "id": 2657, + "name": "FunctionCall", + "src": "49390:51:1" + } + ], + "id": 2658, + "name": "ExpressionStatement", + "src": "49390:51:1" + } + ], + "id": 2659, + "name": "Block", + "src": "49143:305:1" + } + ], + "id": 2660, + "name": "FunctionDefinition", + "src": "49086:362:1" + }, + { + "attributes": { + "baseFunctions": [ + 580 + ], + "functionSelector": "70a08231", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-balanceOf}." + }, + "id": 2661, + "name": "StructuredDocumentation", + "src": "49454:48:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2665, + "name": "OverrideSpecifier", + "src": "49561:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2662, + "name": "ElementaryTypeName", + "src": "49526:7:1" + } + ], + "id": 2663, + "name": "VariableDeclaration", + "src": "49526:13:1" + } + ], + "id": 2664, + "name": "ParameterList", + "src": "49525:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2666, + "name": "ElementaryTypeName", + "src": "49579:7:1" + } + ], + "id": 2667, + "name": "VariableDeclaration", + "src": "49579:7:1" + } + ], + "id": 2668, + "name": "ParameterList", + "src": "49578:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2669, + "name": "Identifier", + "src": "49598:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2670, + "name": "Identifier", + "src": "49606:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2671, + "name": "ElementaryTypeName", + "src": "49615:7:1" + } + ], + "id": 2672, + "name": "ElementaryTypeNameExpression", + "src": "49615:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2673, + "name": "Literal", + "src": "49623:1:1" + } + ], + "id": 2674, + "name": "FunctionCall", + "src": "49615:10:1" + } + ], + "id": 2675, + "name": "BinaryOperation", + "src": "49606:19:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: balance query for the zero address\"", + "value": "ERC721: balance query for the zero address" + }, + "id": 2676, + "name": "Literal", + "src": "49627:44:1" + } + ], + "id": 2677, + "name": "FunctionCall", + "src": "49598:74:1" + } + ], + "id": 2678, + "name": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "attributes": { + "functionReturnParameters": 2668 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 1900, + "type": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2679, + "name": "Identifier", + "src": "49689:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2680, + "name": "Identifier", + "src": "49703:5:1" + } + ], + "id": 2681, + "name": "IndexAccess", + "src": "49689:20:1" + } + ], + "id": 2682, + "name": "MemberAccess", + "src": "49689:27:1" + } + ], + "id": 2683, + "name": "FunctionCall", + "src": "49689:29:1" + } + ], + "id": 2684, + "name": "Return", + "src": "49682:36:1" + } + ], + "id": 2685, + "name": "Block", + "src": "49588:137:1" + } + ], + "id": 2686, + "name": "FunctionDefinition", + "src": "49507:218:1" + }, + { + "attributes": { + "baseFunctions": [ + 588 + ], + "functionSelector": "6352211e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-ownerOf}." + }, + "id": 2687, + "name": "StructuredDocumentation", + "src": "49731:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2691, + "name": "OverrideSpecifier", + "src": "49836:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2688, + "name": "ElementaryTypeName", + "src": "49799:7:1" + } + ], + "id": 2689, + "name": "VariableDeclaration", + "src": "49799:15:1" + } + ], + "id": 2690, + "name": "ParameterList", + "src": "49798:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2692, + "name": "ElementaryTypeName", + "src": "49854:7:1" + } + ], + "id": 2693, + "name": "VariableDeclaration", + "src": "49854:7:1" + } + ], + "id": 2694, + "name": "ParameterList", + "src": "49853:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "get", + "referencedDeclaration": 2479, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2695, + "name": "Identifier", + "src": "49880:12:1" + } + ], + "id": 2696, + "name": "MemberAccess", + "src": "49880:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2689, + "type": "uint256", + "value": "tokenId" + }, + "id": 2697, + "name": "Identifier", + "src": "49897:7:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: owner query for nonexistent token\"", + "value": "ERC721: owner query for nonexistent token" + }, + "id": 2698, + "name": "Literal", + "src": "49906:43:1" + } + ], + "id": 2699, + "name": "FunctionCall", + "src": "49880:70:1" + } + ], + "id": 2700, + "name": "Return", + "src": "49873:77:1" + } + ], + "id": 2701, + "name": "Block", + "src": "49863:94:1" + } + ], + "id": 2702, + "name": "FunctionDefinition", + "src": "49782:175:1" + }, + { + "attributes": { + "baseFunctions": [ + 665 + ], + "functionSelector": "06fdde03", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-name}." + }, + "id": 2703, + "name": "StructuredDocumentation", + "src": "49963:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2705, + "name": "OverrideSpecifier", + "src": "50055:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2704, + "name": "ParameterList", + "src": "50032:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2712, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2706, + "name": "ElementaryTypeName", + "src": "50073:6:1" + } + ], + "id": 2707, + "name": "VariableDeclaration", + "src": "50073:13:1" + } + ], + "id": 2708, + "name": "ParameterList", + "src": "50072:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2708 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2709, + "name": "Identifier", + "src": "50105:5:1" + } + ], + "id": 2710, + "name": "Return", + "src": "50098:12:1" + } + ], + "id": 2711, + "name": "Block", + "src": "50088:29:1" + } + ], + "id": 2712, + "name": "FunctionDefinition", + "src": "50019:98:1" + }, + { + "attributes": { + "baseFunctions": [ + 671 + ], + "functionSelector": "95d89b41", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-symbol}." + }, + "id": 2713, + "name": "StructuredDocumentation", + "src": "50123:53:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2715, + "name": "OverrideSpecifier", + "src": "50219:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2714, + "name": "ParameterList", + "src": "50196:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2722, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2716, + "name": "ElementaryTypeName", + "src": "50237:6:1" + } + ], + "id": 2717, + "name": "VariableDeclaration", + "src": "50237:13:1" + } + ], + "id": 2718, + "name": "ParameterList", + "src": "50236:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2718 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2719, + "name": "Identifier", + "src": "50269:7:1" + } + ], + "id": 2720, + "name": "Return", + "src": "50262:14:1" + } + ], + "id": 2721, + "name": "Block", + "src": "50252:31:1" + } + ], + "id": 2722, + "name": "FunctionDefinition", + "src": "50181:102:1" + }, + { + "attributes": { + "baseFunctions": [ + 679 + ], + "functionSelector": "c87b56dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "id": 2723, + "name": "StructuredDocumentation", + "src": "50289:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2727, + "name": "OverrideSpecifier", + "src": "50404:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2790, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2724, + "name": "ElementaryTypeName", + "src": "50367:7:1" + } + ], + "id": 2725, + "name": "VariableDeclaration", + "src": "50367:15:1" + } + ], + "id": 2726, + "name": "ParameterList", + "src": "50366:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2790, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2728, + "name": "ElementaryTypeName", + "src": "50422:6:1" + } + ], + "id": 2729, + "name": "VariableDeclaration", + "src": "50422:13:1" + } + ], + "id": 2730, + "name": "ParameterList", + "src": "50421:15:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2731, + "name": "Identifier", + "src": "50447:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2732, + "name": "Identifier", + "src": "50455:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2733, + "name": "Identifier", + "src": "50463:7:1" + } + ], + "id": 2734, + "name": "FunctionCall", + "src": "50455:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI query for nonexistent token\"", + "value": "ERC721Metadata: URI query for nonexistent token" + }, + "id": 2735, + "name": "Literal", + "src": "50473:49:1" + } + ], + "id": 2736, + "name": "FunctionCall", + "src": "50447:76:1" + } + ], + "id": 2737, + "name": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "attributes": { + "assignments": [ + 2739 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2738, + "name": "ElementaryTypeName", + "src": "50534:6:1" + } + ], + "id": 2739, + "name": "VariableDeclaration", + "src": "50534:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 2740, + "name": "Identifier", + "src": "50560:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2741, + "name": "Identifier", + "src": "50571:7:1" + } + ], + "id": 2742, + "name": "IndexAccess", + "src": "50560:19:1" + } + ], + "id": 2743, + "name": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "attributes": { + "assignments": [ + 2745 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "base", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2744, + "name": "ElementaryTypeName", + "src": "50589:6:1" + } + ], + "id": 2745, + "name": "VariableDeclaration", + "src": "50589:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2799, + "type": "function () view returns (string memory)", + "value": "baseURI" + }, + "id": 2746, + "name": "Identifier", + "src": "50610:7:1" + } + ], + "id": 2747, + "name": "FunctionCall", + "src": "50610:9:1" + } + ], + "id": 2748, + "name": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2749, + "name": "ElementaryTypeName", + "src": "50692:5:1" + } + ], + "id": 2750, + "name": "ElementaryTypeNameExpression", + "src": "50692:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2751, + "name": "Identifier", + "src": "50698:4:1" + } + ], + "id": 2752, + "name": "FunctionCall", + "src": "50692:11:1" + } + ], + "id": 2753, + "name": "MemberAccess", + "src": "50692:18:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2754, + "name": "Literal", + "src": "50714:1:1" + } + ], + "id": 2755, + "name": "BinaryOperation", + "src": "50692:23:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2756, + "name": "Identifier", + "src": "50738:9:1" + } + ], + "id": 2757, + "name": "Return", + "src": "50731:16:1" + } + ], + "id": 2758, + "name": "Block", + "src": "50717:41:1" + } + ], + "id": 2759, + "name": "IfStatement", + "src": "50688:70:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2760, + "name": "ElementaryTypeName", + "src": "50860:5:1" + } + ], + "id": 2761, + "name": "ElementaryTypeNameExpression", + "src": "50860:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2762, + "name": "Identifier", + "src": "50866:9:1" + } + ], + "id": 2763, + "name": "FunctionCall", + "src": "50860:16:1" + } + ], + "id": 2764, + "name": "MemberAccess", + "src": "50860:23:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2765, + "name": "Literal", + "src": "50886:1:1" + } + ], + "id": 2766, + "name": "BinaryOperation", + "src": "50860:27:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2767, + "name": "ElementaryTypeName", + "src": "50910:6:1" + } + ], + "id": 2768, + "name": "ElementaryTypeNameExpression", + "src": "50910:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2769, + "name": "Identifier", + "src": "50917:3:1" + } + ], + "id": 2770, + "name": "MemberAccess", + "src": "50917:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2771, + "name": "Identifier", + "src": "50934:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2772, + "name": "Identifier", + "src": "50940:9:1" + } + ], + "id": 2773, + "name": "FunctionCall", + "src": "50917:33:1" + } + ], + "id": 2774, + "name": "FunctionCall", + "src": "50910:41:1" + } + ], + "id": 2775, + "name": "Return", + "src": "50903:48:1" + } + ], + "id": 2776, + "name": "Block", + "src": "50889:73:1" + } + ], + "id": 2777, + "name": "IfStatement", + "src": "50856:106:1" + }, + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2778, + "name": "ElementaryTypeName", + "src": "51068:6:1" + } + ], + "id": 2779, + "name": "ElementaryTypeNameExpression", + "src": "51068:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2780, + "name": "Identifier", + "src": "51075:3:1" + } + ], + "id": 2781, + "name": "MemberAccess", + "src": "51075:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2782, + "name": "Identifier", + "src": "51092:4:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "toString", + "referencedDeclaration": 2565, + "type": "function (uint256) pure returns (string memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2783, + "name": "Identifier", + "src": "51098:7:1" + } + ], + "id": 2784, + "name": "MemberAccess", + "src": "51098:16:1" + } + ], + "id": 2785, + "name": "FunctionCall", + "src": "51098:18:1" + } + ], + "id": 2786, + "name": "FunctionCall", + "src": "51075:42:1" + } + ], + "id": 2787, + "name": "FunctionCall", + "src": "51068:50:1" + } + ], + "id": 2788, + "name": "Return", + "src": "51061:57:1" + } + ], + "id": 2789, + "name": "Block", + "src": "50437:688:1" + } + ], + "id": 2790, + "name": "FunctionDefinition", + "src": "50349:776:1" + }, + { + "attributes": { + "functionSelector": "6c0360eb", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "baseURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "id": 2791, + "name": "StructuredDocumentation", + "src": "51131:221:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2792, + "name": "ParameterList", + "src": "51373:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2799, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2793, + "name": "ElementaryTypeName", + "src": "51405:6:1" + } + ], + "id": 2794, + "name": "VariableDeclaration", + "src": "51405:13:1" + } + ], + "id": 2795, + "name": "ParameterList", + "src": "51404:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2795 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 2796, + "name": "Identifier", + "src": "51437:8:1" + } + ], + "id": 2797, + "name": "Return", + "src": "51430:15:1" + } + ], + "id": 2798, + "name": "Block", + "src": "51420:32:1" + } + ], + "id": 2799, + "name": "FunctionDefinition", + "src": "51357:95:1" + }, + { + "attributes": { + "baseFunctions": [ + 700 + ], + "functionSelector": "2f745c59", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "id": 2800, + "name": "StructuredDocumentation", + "src": "51458:68:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2806, + "name": "OverrideSpecifier", + "src": "51610:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2801, + "name": "ElementaryTypeName", + "src": "51560:7:1" + } + ], + "id": 2802, + "name": "VariableDeclaration", + "src": "51560:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2803, + "name": "ElementaryTypeName", + "src": "51575:7:1" + } + ], + "id": 2804, + "name": "VariableDeclaration", + "src": "51575:13:1" + } + ], + "id": 2805, + "name": "ParameterList", + "src": "51559:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2807, + "name": "ElementaryTypeName", + "src": "51628:7:1" + } + ], + "id": 2808, + "name": "VariableDeclaration", + "src": "51628:7:1" + } + ], + "id": 2809, + "name": "ParameterList", + "src": "51627:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2809 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 1920, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2810, + "name": "Identifier", + "src": "51654:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2802, + "type": "address", + "value": "owner" + }, + "id": 2811, + "name": "Identifier", + "src": "51668:5:1" + } + ], + "id": 2812, + "name": "IndexAccess", + "src": "51654:20:1" + } + ], + "id": 2813, + "name": "MemberAccess", + "src": "51654:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2804, + "type": "uint256", + "value": "index" + }, + "id": 2814, + "name": "Identifier", + "src": "51678:5:1" + } + ], + "id": 2815, + "name": "FunctionCall", + "src": "51654:30:1" + } + ], + "id": 2816, + "name": "Return", + "src": "51647:37:1" + } + ], + "id": 2817, + "name": "Block", + "src": "51637:54:1" + } + ], + "id": 2818, + "name": "FunctionDefinition", + "src": "51531:160:1" + }, + { + "attributes": { + "baseFunctions": [ + 690 + ], + "functionSelector": "18160ddd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "id": 2819, + "name": "StructuredDocumentation", + "src": "51697:60:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2821, + "name": "OverrideSpecifier", + "src": "51805:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2820, + "name": "ParameterList", + "src": "51782:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2830, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2822, + "name": "ElementaryTypeName", + "src": "51823:7:1" + } + ], + "id": 2823, + "name": "VariableDeclaration", + "src": "51823:7:1" + } + ], + "id": 2824, + "name": "ParameterList", + "src": "51822:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2824 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 2340, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2825, + "name": "Identifier", + "src": "51942:12:1" + } + ], + "id": 2826, + "name": "MemberAccess", + "src": "51942:19:1" + } + ], + "id": 2827, + "name": "FunctionCall", + "src": "51942:21:1" + } + ], + "id": 2828, + "name": "Return", + "src": "51935:28:1" + } + ], + "id": 2829, + "name": "Block", + "src": "51832:138:1" + } + ], + "id": 2830, + "name": "FunctionDefinition", + "src": "51762:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 708 + ], + "functionSelector": "4f6ccce7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "id": 2831, + "name": "StructuredDocumentation", + "src": "51976:61:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2835, + "name": "OverrideSpecifier", + "src": "52099:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2832, + "name": "ElementaryTypeName", + "src": "52064:7:1" + } + ], + "id": 2833, + "name": "VariableDeclaration", + "src": "52064:13:1" + } + ], + "id": 2834, + "name": "ParameterList", + "src": "52063:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2836, + "name": "ElementaryTypeName", + "src": "52117:7:1" + } + ], + "id": 2837, + "name": "VariableDeclaration", + "src": "52117:7:1" + } + ], + "id": 2838, + "name": "ParameterList", + "src": "52116:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2840, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2848, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2839, + "name": "ElementaryTypeName", + "src": "52137:7:1" + } + ], + "id": 2840, + "name": "VariableDeclaration", + "src": "52137:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(uint256,address)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 2379, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2841, + "name": "Identifier", + "src": "52158:12:1" + } + ], + "id": 2842, + "name": "MemberAccess", + "src": "52158:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2833, + "type": "uint256", + "value": "index" + }, + "id": 2843, + "name": "Identifier", + "src": "52174:5:1" + } + ], + "id": 2844, + "name": "FunctionCall", + "src": "52158:22:1" + } + ], + "id": 2845, + "name": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2838 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2840, + "type": "uint256", + "value": "tokenId" + }, + "id": 2846, + "name": "Identifier", + "src": "52197:7:1" + } + ], + "id": 2847, + "name": "Return", + "src": "52190:14:1" + } + ], + "id": 2848, + "name": "Block", + "src": "52126:85:1" + } + ], + "id": 2849, + "name": "FunctionDefinition", + "src": "52042:169:1" + }, + { + "attributes": { + "baseFunctions": [ + 616 + ], + "functionSelector": "095ea7b3", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-approve}." + }, + "id": 2850, + "name": "StructuredDocumentation", + "src": "52217:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2856, + "name": "OverrideSpecifier", + "src": "52329:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2851, + "name": "ElementaryTypeName", + "src": "52285:7:1" + } + ], + "id": 2852, + "name": "VariableDeclaration", + "src": "52285:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2853, + "name": "ElementaryTypeName", + "src": "52297:7:1" + } + ], + "id": 2854, + "name": "VariableDeclaration", + "src": "52297:15:1" + } + ], + "id": 2855, + "name": "ParameterList", + "src": "52284:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2857, + "name": "ParameterList", + "src": "52338:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2859 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2892, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2858, + "name": "ElementaryTypeName", + "src": "52348:7:1" + } + ], + "id": 2859, + "name": "VariableDeclaration", + "src": "52348:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2860, + "name": "Identifier", + "src": "52364:6:1" + } + ], + "id": 2861, + "name": "MemberAccess", + "src": "52364:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2862, + "name": "Identifier", + "src": "52379:7:1" + } + ], + "id": 2863, + "name": "FunctionCall", + "src": "52364:23:1" + } + ], + "id": 2864, + "name": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2865, + "name": "Identifier", + "src": "52397:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2866, + "name": "Identifier", + "src": "52405:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2867, + "name": "Identifier", + "src": "52411:5:1" + } + ], + "id": 2868, + "name": "BinaryOperation", + "src": "52405:11:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approval to current owner\"", + "value": "ERC721: approval to current owner" + }, + "id": 2869, + "name": "Literal", + "src": "52418:35:1" + } + ], + "id": 2870, + "name": "FunctionCall", + "src": "52397:57:1" + } + ], + "id": 2871, + "name": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2872, + "name": "Identifier", + "src": "52465:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2873, + "name": "Identifier", + "src": "52473:10:1" + } + ], + "id": 2874, + "name": "FunctionCall", + "src": "52473:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2875, + "name": "Identifier", + "src": "52489:5:1" + } + ], + "id": 2876, + "name": "BinaryOperation", + "src": "52473:21:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2877, + "name": "Identifier", + "src": "52498:6:1" + } + ], + "id": 2878, + "name": "MemberAccess", + "src": "52498:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2879, + "name": "Identifier", + "src": "52522:5:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2880, + "name": "Identifier", + "src": "52529:10:1" + } + ], + "id": 2881, + "name": "FunctionCall", + "src": "52529:12:1" + } + ], + "id": 2882, + "name": "FunctionCall", + "src": "52498:44:1" + } + ], + "id": 2883, + "name": "BinaryOperation", + "src": "52473:69:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve caller is not owner nor approved for all\"", + "value": "ERC721: approve caller is not owner nor approved for all" + }, + "id": 2884, + "name": "Literal", + "src": "52556:58:1" + } + ], + "id": 2885, + "name": "FunctionCall", + "src": "52465:159:1" + } + ], + "id": 2886, + "name": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 2887, + "name": "Identifier", + "src": "52635:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2888, + "name": "Identifier", + "src": "52644:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2889, + "name": "Identifier", + "src": "52648:7:1" + } + ], + "id": 2890, + "name": "FunctionCall", + "src": "52635:21:1" + } + ], + "id": 2891, + "name": "ExpressionStatement", + "src": "52635:21:1" + } + ], + "id": 2892, + "name": "Block", + "src": "52338:325:1" + } + ], + "id": 2893, + "name": "FunctionDefinition", + "src": "52268:395:1" + }, + { + "attributes": { + "baseFunctions": [ + 624 + ], + "functionSelector": "081812fc", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-getApproved}." + }, + "id": 2894, + "name": "StructuredDocumentation", + "src": "52669:50:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2898, + "name": "OverrideSpecifier", + "src": "52782:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2895, + "name": "ElementaryTypeName", + "src": "52745:7:1" + } + ], + "id": 2896, + "name": "VariableDeclaration", + "src": "52745:15:1" + } + ], + "id": 2897, + "name": "ParameterList", + "src": "52744:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2899, + "name": "ElementaryTypeName", + "src": "52800:7:1" + } + ], + "id": 2900, + "name": "VariableDeclaration", + "src": "52800:7:1" + } + ], + "id": 2901, + "name": "ParameterList", + "src": "52799:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2902, + "name": "Identifier", + "src": "52819:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2903, + "name": "Identifier", + "src": "52827:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2904, + "name": "Identifier", + "src": "52835:7:1" + } + ], + "id": 2905, + "name": "FunctionCall", + "src": "52827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approved query for nonexistent token\"", + "value": "ERC721: approved query for nonexistent token" + }, + "id": 2906, + "name": "Literal", + "src": "52845:46:1" + } + ], + "id": 2907, + "name": "FunctionCall", + "src": "52819:73:1" + } + ], + "id": 2908, + "name": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "attributes": { + "functionReturnParameters": 2901 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 2909, + "name": "Identifier", + "src": "52910:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2910, + "name": "Identifier", + "src": "52926:7:1" + } + ], + "id": 2911, + "name": "IndexAccess", + "src": "52910:24:1" + } + ], + "id": 2912, + "name": "Return", + "src": "52903:31:1" + } + ], + "id": 2913, + "name": "Block", + "src": "52809:132:1" + } + ], + "id": 2914, + "name": "FunctionDefinition", + "src": "52724:217:1" + }, + { + "attributes": { + "baseFunctions": [ + 632 + ], + "functionSelector": "a22cb465", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "id": 2915, + "name": "StructuredDocumentation", + "src": "52947:56:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2921, + "name": "OverrideSpecifier", + "src": "53083:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2916, + "name": "ElementaryTypeName", + "src": "53035:7:1" + } + ], + "id": 2917, + "name": "VariableDeclaration", + "src": "53035:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "approved", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2918, + "name": "ElementaryTypeName", + "src": "53053:4:1" + } + ], + "id": 2919, + "name": "VariableDeclaration", + "src": "53053:13:1" + } + ], + "id": 2920, + "name": "ParameterList", + "src": "53034:33:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2922, + "name": "ParameterList", + "src": "53092:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2923, + "name": "Identifier", + "src": "53102:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2924, + "name": "Identifier", + "src": "53110:8:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2925, + "name": "Identifier", + "src": "53122:10:1" + } + ], + "id": 2926, + "name": "FunctionCall", + "src": "53122:12:1" + } + ], + "id": 2927, + "name": "BinaryOperation", + "src": "53110:24:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f766520746f2063616c6c6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve to caller\"", + "value": "ERC721: approve to caller" + }, + "id": 2928, + "name": "Literal", + "src": "53136:27:1" + } + ], + "id": 2929, + "name": "FunctionCall", + "src": "53102:62:1" + } + ], + "id": 2930, + "name": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2931, + "name": "Identifier", + "src": "53175:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2932, + "name": "Identifier", + "src": "53194:10:1" + } + ], + "id": 2933, + "name": "FunctionCall", + "src": "53194:12:1" + } + ], + "id": 2935, + "name": "IndexAccess", + "src": "53175:32:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2934, + "name": "Identifier", + "src": "53208:8:1" + } + ], + "id": 2936, + "name": "IndexAccess", + "src": "53175:42:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2937, + "name": "Identifier", + "src": "53220:8:1" + } + ], + "id": 2938, + "name": "Assignment", + "src": "53175:53:1" + } + ], + "id": 2939, + "name": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 572, + "type": "function (address,address,bool)", + "value": "ApprovalForAll" + }, + "id": 2940, + "name": "Identifier", + "src": "53243:14:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2941, + "name": "Identifier", + "src": "53258:10:1" + } + ], + "id": 2942, + "name": "FunctionCall", + "src": "53258:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2943, + "name": "Identifier", + "src": "53272:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2944, + "name": "Identifier", + "src": "53282:8:1" + } + ], + "id": 2945, + "name": "FunctionCall", + "src": "53243:48:1" + } + ], + "id": 2946, + "name": "EmitStatement", + "src": "53238:53:1" + } + ], + "id": 2947, + "name": "Block", + "src": "53092:206:1" + } + ], + "id": 2948, + "name": "FunctionDefinition", + "src": "53008:290:1" + }, + { + "attributes": { + "baseFunctions": [ + 642 + ], + "functionSelector": "e985e9c5", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "id": 2949, + "name": "StructuredDocumentation", + "src": "53304:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2955, + "name": "OverrideSpecifier", + "src": "53443:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2950, + "name": "ElementaryTypeName", + "src": "53390:7:1" + } + ], + "id": 2951, + "name": "VariableDeclaration", + "src": "53390:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2952, + "name": "ElementaryTypeName", + "src": "53405:7:1" + } + ], + "id": 2953, + "name": "VariableDeclaration", + "src": "53405:16:1" + } + ], + "id": 2954, + "name": "ParameterList", + "src": "53389:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2956, + "name": "ElementaryTypeName", + "src": "53461:4:1" + } + ], + "id": 2957, + "name": "VariableDeclaration", + "src": "53461:4:1" + } + ], + "id": 2958, + "name": "ParameterList", + "src": "53460:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2958 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2959, + "name": "Identifier", + "src": "53484:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2951, + "type": "address", + "value": "owner" + }, + "id": 2960, + "name": "Identifier", + "src": "53503:5:1" + } + ], + "id": 2961, + "name": "IndexAccess", + "src": "53484:25:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2953, + "type": "address", + "value": "operator" + }, + "id": 2962, + "name": "Identifier", + "src": "53510:8:1" + } + ], + "id": 2963, + "name": "IndexAccess", + "src": "53484:35:1" + } + ], + "id": 2964, + "name": "Return", + "src": "53477:42:1" + } + ], + "id": 2965, + "name": "Block", + "src": "53467:59:1" + } + ], + "id": 2966, + "name": "FunctionDefinition", + "src": "53364:162:1" + }, + { + "attributes": { + "baseFunctions": [ + 608 + ], + "functionSelector": "23b872dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-transferFrom}." + }, + "id": 2967, + "name": "StructuredDocumentation", + "src": "53532:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2975, + "name": "OverrideSpecifier", + "src": "53668:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2968, + "name": "ElementaryTypeName", + "src": "53610:7:1" + } + ], + "id": 2969, + "name": "VariableDeclaration", + "src": "53610:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2970, + "name": "ElementaryTypeName", + "src": "53624:7:1" + } + ], + "id": 2971, + "name": "VariableDeclaration", + "src": "53624:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2972, + "name": "ElementaryTypeName", + "src": "53636:7:1" + } + ], + "id": 2973, + "name": "VariableDeclaration", + "src": "53636:15:1" + } + ], + "id": 2974, + "name": "ParameterList", + "src": "53609:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2976, + "name": "ParameterList", + "src": "53677:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2977, + "name": "Identifier", + "src": "53739:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 2978, + "name": "Identifier", + "src": "53747:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2979, + "name": "Identifier", + "src": "53766:10:1" + } + ], + "id": 2980, + "name": "FunctionCall", + "src": "53766:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2981, + "name": "Identifier", + "src": "53780:7:1" + } + ], + "id": 2982, + "name": "FunctionCall", + "src": "53747:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 2983, + "name": "Literal", + "src": "53790:51:1" + } + ], + "id": 2984, + "name": "FunctionCall", + "src": "53739:103:1" + } + ], + "id": 2985, + "name": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 2986, + "name": "Identifier", + "src": "53853:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2969, + "type": "address", + "value": "from" + }, + "id": 2987, + "name": "Identifier", + "src": "53863:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2971, + "type": "address", + "value": "to" + }, + "id": 2988, + "name": "Identifier", + "src": "53869:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2989, + "name": "Identifier", + "src": "53873:7:1" + } + ], + "id": 2990, + "name": "FunctionCall", + "src": "53853:28:1" + } + ], + "id": 2991, + "name": "ExpressionStatement", + "src": "53853:28:1" + } + ], + "id": 2992, + "name": "Block", + "src": "53677:211:1" + } + ], + "id": 2993, + "name": "FunctionDefinition", + "src": "53588:300:1" + }, + { + "attributes": { + "baseFunctions": [ + 598 + ], + "functionSelector": "42842e0e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 2994, + "name": "StructuredDocumentation", + "src": "53894:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3002, + "name": "OverrideSpecifier", + "src": "54038:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2995, + "name": "ElementaryTypeName", + "src": "53980:7:1" + } + ], + "id": 2996, + "name": "VariableDeclaration", + "src": "53980:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2997, + "name": "ElementaryTypeName", + "src": "53994:7:1" + } + ], + "id": 2998, + "name": "VariableDeclaration", + "src": "53994:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2999, + "name": "ElementaryTypeName", + "src": "54006:7:1" + } + ], + "id": 3000, + "name": "VariableDeclaration", + "src": "54006:15:1" + } + ], + "id": 3001, + "name": "ParameterList", + "src": "53979:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3003, + "name": "ParameterList", + "src": "54047:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "type": "function (address,address,uint256,bytes memory)", + "value": "safeTransferFrom" + }, + "id": 3004, + "name": "Identifier", + "src": "54057:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2996, + "type": "address", + "value": "from" + }, + "id": 3005, + "name": "Identifier", + "src": "54074:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2998, + "type": "address", + "value": "to" + }, + "id": 3006, + "name": "Identifier", + "src": "54080:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3000, + "type": "uint256", + "value": "tokenId" + }, + "id": 3007, + "name": "Identifier", + "src": "54084:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3008, + "name": "Literal", + "src": "54093:2:1" + } + ], + "id": 3009, + "name": "FunctionCall", + "src": "54057:39:1" + } + ], + "id": 3010, + "name": "ExpressionStatement", + "src": "54057:39:1" + } + ], + "id": 3011, + "name": "Block", + "src": "54047:56:1" + } + ], + "id": 3012, + "name": "FunctionDefinition", + "src": "53954:149:1" + }, + { + "attributes": { + "baseFunctions": [ + 654 + ], + "functionSelector": "b88d4fde", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 3013, + "name": "StructuredDocumentation", + "src": "54109:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3023, + "name": "OverrideSpecifier", + "src": "54273:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3014, + "name": "ElementaryTypeName", + "src": "54195:7:1" + } + ], + "id": 3015, + "name": "VariableDeclaration", + "src": "54195:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3016, + "name": "ElementaryTypeName", + "src": "54209:7:1" + } + ], + "id": 3017, + "name": "VariableDeclaration", + "src": "54209:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3018, + "name": "ElementaryTypeName", + "src": "54221:7:1" + } + ], + "id": 3019, + "name": "VariableDeclaration", + "src": "54221:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3042, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3020, + "name": "ElementaryTypeName", + "src": "54238:5:1" + } + ], + "id": 3021, + "name": "VariableDeclaration", + "src": "54238:18:1" + } + ], + "id": 3022, + "name": "ParameterList", + "src": "54194:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3024, + "name": "ParameterList", + "src": "54282:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3025, + "name": "Identifier", + "src": "54292:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 3026, + "name": "Identifier", + "src": "54300:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3027, + "name": "Identifier", + "src": "54319:10:1" + } + ], + "id": 3028, + "name": "FunctionCall", + "src": "54319:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3029, + "name": "Identifier", + "src": "54333:7:1" + } + ], + "id": 3030, + "name": "FunctionCall", + "src": "54300:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 3031, + "name": "Literal", + "src": "54343:51:1" + } + ], + "id": 3032, + "name": "FunctionCall", + "src": "54292:103:1" + } + ], + "id": 3033, + "name": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3071, + "type": "function (address,address,uint256,bytes memory)", + "value": "_safeTransfer" + }, + "id": 3034, + "name": "Identifier", + "src": "54405:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3015, + "type": "address", + "value": "from" + }, + "id": 3035, + "name": "Identifier", + "src": "54419:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3017, + "type": "address", + "value": "to" + }, + "id": 3036, + "name": "Identifier", + "src": "54425:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3037, + "name": "Identifier", + "src": "54429:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3021, + "type": "bytes memory", + "value": "_data" + }, + "id": 3038, + "name": "Identifier", + "src": "54438:5:1" + } + ], + "id": 3039, + "name": "FunctionCall", + "src": "54405:39:1" + } + ], + "id": 3040, + "name": "ExpressionStatement", + "src": "54405:39:1" + } + ], + "id": 3041, + "name": "Block", + "src": "54282:169:1" + } + ], + "id": 3042, + "name": "FunctionDefinition", + "src": "54169:282:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3043, + "name": "StructuredDocumentation", + "src": "54457:851:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3044, + "name": "ElementaryTypeName", + "src": "55336:7:1" + } + ], + "id": 3045, + "name": "VariableDeclaration", + "src": "55336:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3046, + "name": "ElementaryTypeName", + "src": "55350:7:1" + } + ], + "id": 3047, + "name": "VariableDeclaration", + "src": "55350:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3048, + "name": "ElementaryTypeName", + "src": "55362:7:1" + } + ], + "id": 3049, + "name": "VariableDeclaration", + "src": "55362:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3071, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3050, + "name": "ElementaryTypeName", + "src": "55379:5:1" + } + ], + "id": 3051, + "name": "VariableDeclaration", + "src": "55379:18:1" + } + ], + "id": 3052, + "name": "ParameterList", + "src": "55335:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3053, + "name": "ParameterList", + "src": "55416:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 3054, + "name": "Identifier", + "src": "55426:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3055, + "name": "Identifier", + "src": "55436:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3056, + "name": "Identifier", + "src": "55442:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3057, + "name": "Identifier", + "src": "55446:7:1" + } + ], + "id": 3058, + "name": "FunctionCall", + "src": "55426:28:1" + } + ], + "id": 3059, + "name": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3060, + "name": "Identifier", + "src": "55464:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3061, + "name": "Identifier", + "src": "55472:22:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3062, + "name": "Identifier", + "src": "55495:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3063, + "name": "Identifier", + "src": "55501:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3064, + "name": "Identifier", + "src": "55505:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3051, + "type": "bytes memory", + "value": "_data" + }, + "id": 3065, + "name": "Identifier", + "src": "55514:5:1" + } + ], + "id": 3066, + "name": "FunctionCall", + "src": "55472:48:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3067, + "name": "Literal", + "src": "55522:52:1" + } + ], + "id": 3068, + "name": "FunctionCall", + "src": "55464:111:1" + } + ], + "id": 3069, + "name": "ExpressionStatement", + "src": "55464:111:1" + } + ], + "id": 3070, + "name": "Block", + "src": "55416:166:1" + } + ], + "id": 3071, + "name": "FunctionDefinition", + "src": "55313:269:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_exists", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3072, + "name": "StructuredDocumentation", + "src": "55588:292:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3073, + "name": "ElementaryTypeName", + "src": "55902:7:1" + } + ], + "id": 3074, + "name": "VariableDeclaration", + "src": "55902:15:1" + } + ], + "id": 3075, + "name": "ParameterList", + "src": "55901:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3076, + "name": "ElementaryTypeName", + "src": "55950:4:1" + } + ], + "id": 3077, + "name": "VariableDeclaration", + "src": "55950:4:1" + } + ], + "id": 3078, + "name": "ParameterList", + "src": "55949:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3078 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "contains", + "referencedDeclaration": 2326, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3079, + "name": "Identifier", + "src": "55973:12:1" + } + ], + "id": 3080, + "name": "MemberAccess", + "src": "55973:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3074, + "type": "uint256", + "value": "tokenId" + }, + "id": 3081, + "name": "Identifier", + "src": "55995:7:1" + } + ], + "id": 3082, + "name": "FunctionCall", + "src": "55973:30:1" + } + ], + "id": 3083, + "name": "Return", + "src": "55966:37:1" + } + ], + "id": 3084, + "name": "Block", + "src": "55956:54:1" + } + ], + "id": 3085, + "name": "FunctionDefinition", + "src": "55885:125:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_isApprovedOrOwner", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3086, + "name": "StructuredDocumentation", + "src": "56016:147:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "spender", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3087, + "name": "ElementaryTypeName", + "src": "56196:7:1" + } + ], + "id": 3088, + "name": "VariableDeclaration", + "src": "56196:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3089, + "name": "ElementaryTypeName", + "src": "56213:7:1" + } + ], + "id": 3090, + "name": "VariableDeclaration", + "src": "56213:15:1" + } + ], + "id": 3091, + "name": "ParameterList", + "src": "56195:34:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3092, + "name": "ElementaryTypeName", + "src": "56261:4:1" + } + ], + "id": 3093, + "name": "VariableDeclaration", + "src": "56261:4:1" + } + ], + "id": 3094, + "name": "ParameterList", + "src": "56260:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3095, + "name": "Identifier", + "src": "56277:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3096, + "name": "Identifier", + "src": "56285:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3097, + "name": "Identifier", + "src": "56293:7:1" + } + ], + "id": 3098, + "name": "FunctionCall", + "src": "56285:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: operator query for nonexistent token\"", + "value": "ERC721: operator query for nonexistent token" + }, + "id": 3099, + "name": "Literal", + "src": "56303:46:1" + } + ], + "id": 3100, + "name": "FunctionCall", + "src": "56277:73:1" + } + ], + "id": 3101, + "name": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "attributes": { + "assignments": [ + 3103 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3126, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3102, + "name": "ElementaryTypeName", + "src": "56360:7:1" + } + ], + "id": 3103, + "name": "VariableDeclaration", + "src": "56360:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3104, + "name": "Identifier", + "src": "56376:6:1" + } + ], + "id": 3105, + "name": "MemberAccess", + "src": "56376:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3106, + "name": "Identifier", + "src": "56391:7:1" + } + ], + "id": 3107, + "name": "FunctionCall", + "src": "56376:23:1" + } + ], + "id": 3108, + "name": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "attributes": { + "functionReturnParameters": 3094 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3109, + "name": "Identifier", + "src": "56417:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3110, + "name": "Identifier", + "src": "56428:5:1" + } + ], + "id": 3111, + "name": "BinaryOperation", + "src": "56417:16:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2914, + "type": "function (uint256) view returns (address)", + "value": "getApproved" + }, + "id": 3112, + "name": "Identifier", + "src": "56437:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3113, + "name": "Identifier", + "src": "56449:7:1" + } + ], + "id": 3114, + "name": "FunctionCall", + "src": "56437:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3115, + "name": "Identifier", + "src": "56461:7:1" + } + ], + "id": 3116, + "name": "BinaryOperation", + "src": "56437:31:1" + } + ], + "id": 3117, + "name": "BinaryOperation", + "src": "56417:51:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3118, + "name": "Identifier", + "src": "56472:6:1" + } + ], + "id": 3119, + "name": "MemberAccess", + "src": "56472:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3120, + "name": "Identifier", + "src": "56496:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3121, + "name": "Identifier", + "src": "56503:7:1" + } + ], + "id": 3122, + "name": "FunctionCall", + "src": "56472:39:1" + } + ], + "id": 3123, + "name": "BinaryOperation", + "src": "56417:94:1" + } + ], + "id": 3124, + "name": "TupleExpression", + "src": "56416:96:1" + } + ], + "id": 3125, + "name": "Return", + "src": "56409:103:1" + } + ], + "id": 3126, + "name": "Block", + "src": "56267:252:1" + } + ], + "id": 3127, + "name": "FunctionDefinition", + "src": "56168:351:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3128, + "name": "StructuredDocumentation", + "src": "56525:320:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3129, + "name": "ElementaryTypeName", + "src": "56869:7:1" + } + ], + "id": 3130, + "name": "VariableDeclaration", + "src": "56869:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3131, + "name": "ElementaryTypeName", + "src": "56881:7:1" + } + ], + "id": 3132, + "name": "VariableDeclaration", + "src": "56881:15:1" + } + ], + "id": 3133, + "name": "ParameterList", + "src": "56868:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3134, + "name": "ParameterList", + "src": "56915:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "type": "function (address,uint256,bytes memory)", + "value": "_safeMint" + }, + "id": 3135, + "name": "Identifier", + "src": "56925:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3130, + "type": "address", + "value": "to" + }, + "id": 3136, + "name": "Identifier", + "src": "56935:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3132, + "type": "uint256", + "value": "tokenId" + }, + "id": 3137, + "name": "Identifier", + "src": "56939:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3138, + "name": "Literal", + "src": "56948:2:1" + } + ], + "id": 3139, + "name": "FunctionCall", + "src": "56925:26:1" + } + ], + "id": 3140, + "name": "ExpressionStatement", + "src": "56925:26:1" + } + ], + "id": 3141, + "name": "Block", + "src": "56915:43:1" + } + ], + "id": 3142, + "name": "FunctionDefinition", + "src": "56850:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3143, + "name": "StructuredDocumentation", + "src": "56964:210:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3144, + "name": "ElementaryTypeName", + "src": "57198:7:1" + } + ], + "id": 3145, + "name": "VariableDeclaration", + "src": "57198:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3146, + "name": "ElementaryTypeName", + "src": "57210:7:1" + } + ], + "id": 3147, + "name": "VariableDeclaration", + "src": "57210:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3171, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3148, + "name": "ElementaryTypeName", + "src": "57227:5:1" + } + ], + "id": 3149, + "name": "VariableDeclaration", + "src": "57227:18:1" + } + ], + "id": 3150, + "name": "ParameterList", + "src": "57197:49:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3151, + "name": "ParameterList", + "src": "57264:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3230, + "type": "function (address,uint256)", + "value": "_mint" + }, + "id": 3152, + "name": "Identifier", + "src": "57274:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3153, + "name": "Identifier", + "src": "57280:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3154, + "name": "Identifier", + "src": "57284:7:1" + } + ], + "id": 3155, + "name": "FunctionCall", + "src": "57274:18:1" + } + ], + "id": 3156, + "name": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3157, + "name": "Identifier", + "src": "57302:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3158, + "name": "Identifier", + "src": "57310:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3159, + "name": "ElementaryTypeName", + "src": "57333:7:1" + } + ], + "id": 3160, + "name": "ElementaryTypeNameExpression", + "src": "57333:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3161, + "name": "Literal", + "src": "57341:1:1" + } + ], + "id": 3162, + "name": "FunctionCall", + "src": "57333:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3163, + "name": "Identifier", + "src": "57345:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3164, + "name": "Identifier", + "src": "57349:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3149, + "type": "bytes memory", + "value": "_data" + }, + "id": 3165, + "name": "Identifier", + "src": "57358:5:1" + } + ], + "id": 3166, + "name": "FunctionCall", + "src": "57310:54:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3167, + "name": "Literal", + "src": "57366:52:1" + } + ], + "id": 3168, + "name": "FunctionCall", + "src": "57302:117:1" + } + ], + "id": 3169, + "name": "ExpressionStatement", + "src": "57302:117:1" + } + ], + "id": 3170, + "name": "Block", + "src": "57264:162:1" + } + ], + "id": 3171, + "name": "FunctionDefinition", + "src": "57179:247:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_mint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3172, + "name": "StructuredDocumentation", + "src": "57432:311:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3173, + "name": "ElementaryTypeName", + "src": "57763:7:1" + } + ], + "id": 3174, + "name": "VariableDeclaration", + "src": "57763:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3175, + "name": "ElementaryTypeName", + "src": "57775:7:1" + } + ], + "id": 3176, + "name": "VariableDeclaration", + "src": "57775:15:1" + } + ], + "id": 3177, + "name": "ParameterList", + "src": "57762:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3178, + "name": "ParameterList", + "src": "57809:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3179, + "name": "Identifier", + "src": "57819:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3180, + "name": "Identifier", + "src": "57827:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3181, + "name": "ElementaryTypeName", + "src": "57833:7:1" + } + ], + "id": 3182, + "name": "ElementaryTypeNameExpression", + "src": "57833:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3183, + "name": "Literal", + "src": "57841:1:1" + } + ], + "id": 3184, + "name": "FunctionCall", + "src": "57833:10:1" + } + ], + "id": 3185, + "name": "BinaryOperation", + "src": "57827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: mint to the zero address\"", + "value": "ERC721: mint to the zero address" + }, + "id": 3186, + "name": "Literal", + "src": "57845:34:1" + } + ], + "id": 3187, + "name": "FunctionCall", + "src": "57819:61:1" + } + ], + "id": 3188, + "name": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3189, + "name": "Identifier", + "src": "57890:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3190, + "name": "Identifier", + "src": "57899:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3191, + "name": "Identifier", + "src": "57907:7:1" + } + ], + "id": 3192, + "name": "FunctionCall", + "src": "57899:16:1" + } + ], + "id": 3193, + "name": "UnaryOperation", + "src": "57898:17:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: token already minted\"", + "value": "ERC721: token already minted" + }, + "id": 3194, + "name": "Literal", + "src": "57917:30:1" + } + ], + "id": 3195, + "name": "FunctionCall", + "src": "57890:58:1" + } + ], + "id": 3196, + "name": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3197, + "name": "Identifier", + "src": "57959:20:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3198, + "name": "ElementaryTypeName", + "src": "57980:7:1" + } + ], + "id": 3199, + "name": "ElementaryTypeNameExpression", + "src": "57980:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3200, + "name": "Literal", + "src": "57988:1:1" + } + ], + "id": 3201, + "name": "FunctionCall", + "src": "57980:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3202, + "name": "Identifier", + "src": "57992:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3203, + "name": "Identifier", + "src": "57996:7:1" + } + ], + "id": 3204, + "name": "FunctionCall", + "src": "57959:45:1" + } + ], + "id": 3205, + "name": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3206, + "name": "Identifier", + "src": "58015:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3207, + "name": "Identifier", + "src": "58029:2:1" + } + ], + "id": 3208, + "name": "IndexAccess", + "src": "58015:17:1" + } + ], + "id": 3209, + "name": "MemberAccess", + "src": "58015:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3210, + "name": "Identifier", + "src": "58037:7:1" + } + ], + "id": 3211, + "name": "FunctionCall", + "src": "58015:30:1" + } + ], + "id": 3212, + "name": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3213, + "name": "Identifier", + "src": "58056:12:1" + } + ], + "id": 3215, + "name": "MemberAccess", + "src": "58056:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3216, + "name": "Identifier", + "src": "58073:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3217, + "name": "Identifier", + "src": "58082:2:1" + } + ], + "id": 3218, + "name": "FunctionCall", + "src": "58056:29:1" + } + ], + "id": 3219, + "name": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3220, + "name": "Identifier", + "src": "58101:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3221, + "name": "ElementaryTypeName", + "src": "58110:7:1" + } + ], + "id": 3222, + "name": "ElementaryTypeNameExpression", + "src": "58110:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3223, + "name": "Literal", + "src": "58118:1:1" + } + ], + "id": 3224, + "name": "FunctionCall", + "src": "58110:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3225, + "name": "Identifier", + "src": "58122:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3226, + "name": "Identifier", + "src": "58126:7:1" + } + ], + "id": 3227, + "name": "FunctionCall", + "src": "58101:33:1" + } + ], + "id": 3228, + "name": "EmitStatement", + "src": "58096:38:1" + } + ], + "id": 3229, + "name": "Block", + "src": "57809:332:1" + } + ], + "id": 3230, + "name": "FunctionDefinition", + "src": "57748:393:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_burn", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3231, + "name": "StructuredDocumentation", + "src": "58147:206:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3299, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3232, + "name": "ElementaryTypeName", + "src": "58373:7:1" + } + ], + "id": 3233, + "name": "VariableDeclaration", + "src": "58373:15:1" + } + ], + "id": 3234, + "name": "ParameterList", + "src": "58372:17:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3235, + "name": "ParameterList", + "src": "58407:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 3237 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3298, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3236, + "name": "ElementaryTypeName", + "src": "58417:7:1" + } + ], + "id": 3237, + "name": "VariableDeclaration", + "src": "58417:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3238, + "name": "Identifier", + "src": "58433:6:1" + } + ], + "id": 3239, + "name": "MemberAccess", + "src": "58433:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3240, + "name": "Identifier", + "src": "58448:7:1" + } + ], + "id": 3241, + "name": "FunctionCall", + "src": "58433:23:1" + } + ], + "id": 3242, + "name": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3243, + "name": "Identifier", + "src": "58485:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3244, + "name": "Identifier", + "src": "58506:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3245, + "name": "ElementaryTypeName", + "src": "58513:7:1" + } + ], + "id": 3246, + "name": "ElementaryTypeNameExpression", + "src": "58513:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3247, + "name": "Literal", + "src": "58521:1:1" + } + ], + "id": 3248, + "name": "FunctionCall", + "src": "58513:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3249, + "name": "Identifier", + "src": "58525:7:1" + } + ], + "id": 3250, + "name": "FunctionCall", + "src": "58485:48:1" + } + ], + "id": 3251, + "name": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3252, + "name": "Identifier", + "src": "58571:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3253, + "name": "ElementaryTypeName", + "src": "58580:7:1" + } + ], + "id": 3254, + "name": "ElementaryTypeNameExpression", + "src": "58580:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3255, + "name": "Literal", + "src": "58588:1:1" + } + ], + "id": 3256, + "name": "FunctionCall", + "src": "58580:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3257, + "name": "Identifier", + "src": "58592:7:1" + } + ], + "id": 3258, + "name": "FunctionCall", + "src": "58571:29:1" + } + ], + "id": 3259, + "name": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes storage pointer", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 3260, + "name": "ElementaryTypeName", + "src": "58650:5:1" + } + ], + "id": 3261, + "name": "ElementaryTypeNameExpression", + "src": "58650:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3262, + "name": "Identifier", + "src": "58656:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3263, + "name": "Identifier", + "src": "58667:7:1" + } + ], + "id": 3264, + "name": "IndexAccess", + "src": "58656:19:1" + } + ], + "id": 3265, + "name": "FunctionCall", + "src": "58650:26:1" + } + ], + "id": 3266, + "name": "MemberAccess", + "src": "58650:33:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3267, + "name": "Literal", + "src": "58687:1:1" + } + ], + "id": 3268, + "name": "BinaryOperation", + "src": "58650:38:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3269, + "name": "Identifier", + "src": "58711:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3270, + "name": "Identifier", + "src": "58722:7:1" + } + ], + "id": 3271, + "name": "IndexAccess", + "src": "58711:19:1" + } + ], + "id": 3272, + "name": "UnaryOperation", + "src": "58704:26:1" + } + ], + "id": 3273, + "name": "ExpressionStatement", + "src": "58704:26:1" + } + ], + "id": 3274, + "name": "Block", + "src": "58690:51:1" + } + ], + "id": 3275, + "name": "IfStatement", + "src": "58646:95:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3276, + "name": "Identifier", + "src": "58751:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3277, + "name": "Identifier", + "src": "58765:5:1" + } + ], + "id": 3278, + "name": "IndexAccess", + "src": "58751:20:1" + } + ], + "id": 3279, + "name": "MemberAccess", + "src": "58751:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3280, + "name": "Identifier", + "src": "58779:7:1" + } + ], + "id": 3281, + "name": "FunctionCall", + "src": "58751:36:1" + } + ], + "id": 3282, + "name": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 2306, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3283, + "name": "Identifier", + "src": "58798:12:1" + } + ], + "id": 3285, + "name": "MemberAccess", + "src": "58798:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3286, + "name": "Identifier", + "src": "58818:7:1" + } + ], + "id": 3287, + "name": "FunctionCall", + "src": "58798:28:1" + } + ], + "id": 3288, + "name": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3289, + "name": "Identifier", + "src": "58842:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3290, + "name": "Identifier", + "src": "58851:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3291, + "name": "ElementaryTypeName", + "src": "58858:7:1" + } + ], + "id": 3292, + "name": "ElementaryTypeNameExpression", + "src": "58858:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3293, + "name": "Literal", + "src": "58866:1:1" + } + ], + "id": 3294, + "name": "FunctionCall", + "src": "58858:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3295, + "name": "Identifier", + "src": "58870:7:1" + } + ], + "id": 3296, + "name": "FunctionCall", + "src": "58842:36:1" + } + ], + "id": 3297, + "name": "EmitStatement", + "src": "58837:41:1" + } + ], + "id": 3298, + "name": "Block", + "src": "58407:478:1" + } + ], + "id": 3299, + "name": "FunctionDefinition", + "src": "58358:527:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_transfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3300, + "name": "StructuredDocumentation", + "src": "58891:313:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3301, + "name": "ElementaryTypeName", + "src": "59228:7:1" + } + ], + "id": 3302, + "name": "VariableDeclaration", + "src": "59228:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3303, + "name": "ElementaryTypeName", + "src": "59242:7:1" + } + ], + "id": 3304, + "name": "VariableDeclaration", + "src": "59242:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3305, + "name": "ElementaryTypeName", + "src": "59254:7:1" + } + ], + "id": 3306, + "name": "VariableDeclaration", + "src": "59254:15:1" + } + ], + "id": 3307, + "name": "ParameterList", + "src": "59227:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3308, + "name": "ParameterList", + "src": "59288:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3309, + "name": "Identifier", + "src": "59298:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3310, + "name": "Identifier", + "src": "59306:6:1" + } + ], + "id": 3311, + "name": "MemberAccess", + "src": "59306:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3312, + "name": "Identifier", + "src": "59321:7:1" + } + ], + "id": 3313, + "name": "FunctionCall", + "src": "59306:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3314, + "name": "Identifier", + "src": "59333:4:1" + } + ], + "id": 3315, + "name": "BinaryOperation", + "src": "59306:31:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer of token that is not own\"", + "value": "ERC721: transfer of token that is not own" + }, + "id": 3316, + "name": "Literal", + "src": "59339:43:1" + } + ], + "id": 3317, + "name": "FunctionCall", + "src": "59298:85:1" + } + ], + "id": 3318, + "name": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3319, + "name": "Identifier", + "src": "59411:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3320, + "name": "Identifier", + "src": "59419:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3321, + "name": "ElementaryTypeName", + "src": "59425:7:1" + } + ], + "id": 3322, + "name": "ElementaryTypeNameExpression", + "src": "59425:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3323, + "name": "Literal", + "src": "59433:1:1" + } + ], + "id": 3324, + "name": "FunctionCall", + "src": "59425:10:1" + } + ], + "id": 3325, + "name": "BinaryOperation", + "src": "59419:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to the zero address\"", + "value": "ERC721: transfer to the zero address" + }, + "id": 3326, + "name": "Literal", + "src": "59437:38:1" + } + ], + "id": 3327, + "name": "FunctionCall", + "src": "59411:65:1" + } + ], + "id": 3328, + "name": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3329, + "name": "Identifier", + "src": "59487:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3330, + "name": "Identifier", + "src": "59508:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3331, + "name": "Identifier", + "src": "59514:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3332, + "name": "Identifier", + "src": "59518:7:1" + } + ], + "id": 3333, + "name": "FunctionCall", + "src": "59487:39:1" + } + ], + "id": 3334, + "name": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3335, + "name": "Identifier", + "src": "59588:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3336, + "name": "ElementaryTypeName", + "src": "59597:7:1" + } + ], + "id": 3337, + "name": "ElementaryTypeNameExpression", + "src": "59597:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3338, + "name": "Literal", + "src": "59605:1:1" + } + ], + "id": 3339, + "name": "FunctionCall", + "src": "59597:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3340, + "name": "Identifier", + "src": "59609:7:1" + } + ], + "id": 3341, + "name": "FunctionCall", + "src": "59588:29:1" + } + ], + "id": 3342, + "name": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3343, + "name": "Identifier", + "src": "59628:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3344, + "name": "Identifier", + "src": "59642:4:1" + } + ], + "id": 3345, + "name": "IndexAccess", + "src": "59628:19:1" + } + ], + "id": 3346, + "name": "MemberAccess", + "src": "59628:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3347, + "name": "Identifier", + "src": "59655:7:1" + } + ], + "id": 3348, + "name": "FunctionCall", + "src": "59628:35:1" + } + ], + "id": 3349, + "name": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3350, + "name": "Identifier", + "src": "59673:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3351, + "name": "Identifier", + "src": "59687:2:1" + } + ], + "id": 3352, + "name": "IndexAccess", + "src": "59673:17:1" + } + ], + "id": 3353, + "name": "MemberAccess", + "src": "59673:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3354, + "name": "Identifier", + "src": "59695:7:1" + } + ], + "id": 3355, + "name": "FunctionCall", + "src": "59673:30:1" + } + ], + "id": 3356, + "name": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3357, + "name": "Identifier", + "src": "59714:12:1" + } + ], + "id": 3359, + "name": "MemberAccess", + "src": "59714:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3360, + "name": "Identifier", + "src": "59731:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3361, + "name": "Identifier", + "src": "59740:2:1" + } + ], + "id": 3362, + "name": "FunctionCall", + "src": "59714:29:1" + } + ], + "id": 3363, + "name": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3364, + "name": "Identifier", + "src": "59759:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3365, + "name": "Identifier", + "src": "59768:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3366, + "name": "Identifier", + "src": "59774:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3367, + "name": "Identifier", + "src": "59778:7:1" + } + ], + "id": 3368, + "name": "FunctionCall", + "src": "59759:27:1" + } + ], + "id": 3369, + "name": "EmitStatement", + "src": "59754:32:1" + } + ], + "id": 3370, + "name": "Block", + "src": "59288:505:1" + } + ], + "id": 3371, + "name": "FunctionDefinition", + "src": "59209:584:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setTokenURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3372, + "name": "StructuredDocumentation", + "src": "59799:136:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3393, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3373, + "name": "ElementaryTypeName", + "src": "59962:7:1" + } + ], + "id": 3374, + "name": "VariableDeclaration", + "src": "59962:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 3393, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3375, + "name": "ElementaryTypeName", + "src": "59979:6:1" + } + ], + "id": 3376, + "name": "VariableDeclaration", + "src": "59979:23:1" + } + ], + "id": 3377, + "name": "ParameterList", + "src": "59961:42:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3378, + "name": "ParameterList", + "src": "60021:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3379, + "name": "Identifier", + "src": "60031:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3380, + "name": "Identifier", + "src": "60039:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3381, + "name": "Identifier", + "src": "60047:7:1" + } + ], + "id": 3382, + "name": "FunctionCall", + "src": "60039:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI set of nonexistent token\"", + "value": "ERC721Metadata: URI set of nonexistent token" + }, + "id": 3383, + "name": "Literal", + "src": "60057:46:1" + } + ], + "id": 3384, + "name": "FunctionCall", + "src": "60031:73:1" + } + ], + "id": 3385, + "name": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3386, + "name": "Identifier", + "src": "60114:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3387, + "name": "Identifier", + "src": "60125:7:1" + } + ], + "id": 3388, + "name": "IndexAccess", + "src": "60114:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3376, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 3389, + "name": "Identifier", + "src": "60136:9:1" + } + ], + "id": 3390, + "name": "Assignment", + "src": "60114:31:1" + } + ], + "id": 3391, + "name": "ExpressionStatement", + "src": "60114:31:1" + } + ], + "id": 3392, + "name": "Block", + "src": "60021:131:1" + } + ], + "id": 3393, + "name": "FunctionDefinition", + "src": "59940:212:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setBaseURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3394, + "name": "StructuredDocumentation", + "src": "60158:212:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "baseURI_", + "scope": 3404, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3395, + "name": "ElementaryTypeName", + "src": "60396:6:1" + } + ], + "id": 3396, + "name": "VariableDeclaration", + "src": "60396:22:1" + } + ], + "id": 3397, + "name": "ParameterList", + "src": "60395:24:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3398, + "name": "ParameterList", + "src": "60437:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 3399, + "name": "Identifier", + "src": "60447:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3396, + "type": "string memory", + "value": "baseURI_" + }, + "id": 3400, + "name": "Identifier", + "src": "60458:8:1" + } + ], + "id": 3401, + "name": "Assignment", + "src": "60447:19:1" + } + ], + "id": 3402, + "name": "ExpressionStatement", + "src": "60447:19:1" + } + ], + "id": 3403, + "name": "Block", + "src": "60437:36:1" + } + ], + "id": 3404, + "name": "FunctionDefinition", + "src": "60375:98:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_checkOnERC721Received", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3405, + "name": "StructuredDocumentation", + "src": "60479:542:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3406, + "name": "ElementaryTypeName", + "src": "61058:7:1" + } + ], + "id": 3407, + "name": "VariableDeclaration", + "src": "61058:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3408, + "name": "ElementaryTypeName", + "src": "61072:7:1" + } + ], + "id": 3409, + "name": "VariableDeclaration", + "src": "61072:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3410, + "name": "ElementaryTypeName", + "src": "61084:7:1" + } + ], + "id": 3411, + "name": "VariableDeclaration", + "src": "61084:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3462, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3412, + "name": "ElementaryTypeName", + "src": "61101:5:1" + } + ], + "id": 3413, + "name": "VariableDeclaration", + "src": "61101:18:1" + } + ], + "id": 3414, + "name": "ParameterList", + "src": "61057:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3415, + "name": "ElementaryTypeName", + "src": "61146:4:1" + } + ], + "id": 3416, + "name": "VariableDeclaration", + "src": "61146:4:1" + } + ], + "id": 3417, + "name": "ParameterList", + "src": "61145:6:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isContract", + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3418, + "name": "Identifier", + "src": "61171:2:1" + } + ], + "id": 3419, + "name": "MemberAccess", + "src": "61171:13:1" + } + ], + "id": 3420, + "name": "FunctionCall", + "src": "61171:15:1" + } + ], + "id": 3421, + "name": "UnaryOperation", + "src": "61170:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 3422, + "name": "Literal", + "src": "61209:4:1" + } + ], + "id": 3423, + "name": "Return", + "src": "61202:11:1" + } + ], + "id": 3424, + "name": "Block", + "src": "61188:36:1" + } + ], + "id": 3425, + "name": "IfStatement", + "src": "61166:58:1" + }, + { + "attributes": { + "assignments": [ + 3427 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 3461, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3426, + "name": "ElementaryTypeName", + "src": "61233:5:1" + } + ], + "id": 3427, + "name": "VariableDeclaration", + "src": "61233:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "functionCall", + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3428, + "name": "Identifier", + "src": "61259:2:1" + } + ], + "id": 3429, + "name": "MemberAccess", + "src": "61259:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodeWithSelector", + "type": "function (bytes4) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3430, + "name": "Identifier", + "src": "61275:3:1" + } + ], + "id": 3431, + "name": "MemberAccess", + "src": "61275:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "selector", + "type": "bytes4" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "onERC721Received", + "referencedDeclaration": 725, + "type": "function (address,address,uint256,bytes memory) external returns (bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "contract IERC721Receiver", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 726, + "type": "type(contract IERC721Receiver)", + "value": "IERC721Receiver" + }, + "id": 3432, + "name": "Identifier", + "src": "61311:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3433, + "name": "Identifier", + "src": "61327:2:1" + } + ], + "id": 3434, + "name": "FunctionCall", + "src": "61311:19:1" + } + ], + "id": 3435, + "name": "MemberAccess", + "src": "61311:36:1" + } + ], + "id": 3436, + "name": "MemberAccess", + "src": "61311:45:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3437, + "name": "Identifier", + "src": "61370:10:1" + } + ], + "id": 3438, + "name": "FunctionCall", + "src": "61370:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3407, + "type": "address", + "value": "from" + }, + "id": 3439, + "name": "Identifier", + "src": "61396:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3411, + "type": "uint256", + "value": "tokenId" + }, + "id": 3440, + "name": "Identifier", + "src": "61414:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3413, + "type": "bytes memory", + "value": "_data" + }, + "id": 3441, + "name": "Identifier", + "src": "61435:5:1" + } + ], + "id": 3442, + "name": "FunctionCall", + "src": "61275:175:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3443, + "name": "Literal", + "src": "61452:52:1" + } + ], + "id": 3444, + "name": "FunctionCall", + "src": "61259:246:1" + } + ], + "id": 3445, + "name": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "attributes": { + "assignments": [ + 3447 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "retval", + "scope": 3461, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 3446, + "name": "ElementaryTypeName", + "src": "61515:6:1" + } + ], + "id": 3447, + "name": "VariableDeclaration", + "src": "61515:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes4", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "decode", + "type": "function () pure" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3448, + "name": "Identifier", + "src": "61531:3:1" + } + ], + "id": 3449, + "name": "MemberAccess", + "src": "61531:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3427, + "type": "bytes memory", + "value": "returndata" + }, + "id": 3450, + "name": "Identifier", + "src": "61542:10:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "name": "bytes4" + }, + "id": 3451, + "name": "ElementaryTypeName", + "src": "61555:6:1" + } + ], + "id": 3452, + "name": "ElementaryTypeNameExpression", + "src": "61555:6:1" + } + ], + "id": 3453, + "name": "TupleExpression", + "src": "61554:8:1" + } + ], + "id": 3454, + "name": "FunctionCall", + "src": "61531:32:1" + } + ], + "id": 3455, + "name": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3447, + "type": "bytes4", + "value": "retval" + }, + "id": 3456, + "name": "Identifier", + "src": "61581:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2596, + "type": "bytes4", + "value": "_ERC721_RECEIVED" + }, + "id": 3457, + "name": "Identifier", + "src": "61591:16:1" + } + ], + "id": 3458, + "name": "BinaryOperation", + "src": "61581:26:1" + } + ], + "id": 3459, + "name": "TupleExpression", + "src": "61580:28:1" + } + ], + "id": 3460, + "name": "Return", + "src": "61573:35:1" + } + ], + "id": 3461, + "name": "Block", + "src": "61156:459:1" + } + ], + "id": 3462, + "name": "FunctionDefinition", + "src": "61026:589:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3463, + "name": "StructuredDocumentation", + "src": "61621:101:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3464, + "name": "ElementaryTypeName", + "src": "61745:7:1" + } + ], + "id": 3465, + "name": "VariableDeclaration", + "src": "61745:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3466, + "name": "ElementaryTypeName", + "src": "61757:7:1" + } + ], + "id": 3467, + "name": "VariableDeclaration", + "src": "61757:15:1" + } + ], + "id": 3468, + "name": "ParameterList", + "src": "61744:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3469, + "name": "ParameterList", + "src": "61791:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 3470, + "name": "Identifier", + "src": "61801:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3471, + "name": "Identifier", + "src": "61817:7:1" + } + ], + "id": 3472, + "name": "IndexAccess", + "src": "61801:24:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3473, + "name": "Identifier", + "src": "61828:2:1" + } + ], + "id": 3474, + "name": "Assignment", + "src": "61801:29:1" + } + ], + "id": 3475, + "name": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 563, + "type": "function (address,address,uint256)", + "value": "Approval" + }, + "id": 3476, + "name": "Identifier", + "src": "61845:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3477, + "name": "Identifier", + "src": "61854:6:1" + } + ], + "id": 3478, + "name": "MemberAccess", + "src": "61854:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3479, + "name": "Identifier", + "src": "61869:7:1" + } + ], + "id": 3480, + "name": "FunctionCall", + "src": "61854:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3481, + "name": "Identifier", + "src": "61879:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3482, + "name": "Identifier", + "src": "61883:7:1" + } + ], + "id": 3483, + "name": "FunctionCall", + "src": "61845:46:1" + } + ], + "id": 3484, + "name": "EmitStatement", + "src": "61840:51:1" + } + ], + "id": 3485, + "name": "Block", + "src": "61791:125:1" + } + ], + "id": 3486, + "name": "FunctionDefinition", + "src": "61727:189:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_beforeTokenTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3487, + "name": "StructuredDocumentation", + "src": "61922:585:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3488, + "name": "ElementaryTypeName", + "src": "62542:7:1" + } + ], + "id": 3489, + "name": "VariableDeclaration", + "src": "62542:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3490, + "name": "ElementaryTypeName", + "src": "62556:7:1" + } + ], + "id": 3491, + "name": "VariableDeclaration", + "src": "62556:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3492, + "name": "ElementaryTypeName", + "src": "62568:7:1" + } + ], + "id": 3493, + "name": "VariableDeclaration", + "src": "62568:15:1" + } + ], + "id": 3494, + "name": "ParameterList", + "src": "62541:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3495, + "name": "ParameterList", + "src": "62602:0:1" + }, + { + "attributes": { + "statements": [ + null + ] + }, + "children": [], + "id": 3496, + "name": "Block", + "src": "62602:3:1" + } + ], + "id": 3497, + "name": "FunctionDefinition", + "src": "62512:93:1" + } + ], + "id": 3498, + "name": "ContractDefinition", + "src": "46080:16527:1" + } + ], + "id": 3499, + "name": "SourceUnit", + "src": "84:62524:1" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-13T11:18:07.872Z", + "devdoc": { + "details": "Required interface of an ERC721 compliant contract.", + "events": { + "Approval(address,address,uint256)": { + "details": "Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "ApprovalForAll(address,address,bool)": { + "details": "Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "Transfer(address,address,uint256)": { + "details": "Emitted when `tokenId` token is transferred from `from` to `to`." + } + }, + "kind": "dev", + "methods": { + "approve(address,uint256)": { + "details": "Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event." + }, + "balanceOf(address)": { + "details": "Returns the number of tokens in ``owner``'s account." + }, + "getApproved(uint256)": { + "details": "Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist." + }, + "isApprovedForAll(address,address)": { + "details": "Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}" + }, + "ownerOf(uint256)": { + "details": "Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist." + }, + "safeTransferFrom(address,address,uint256)": { + "details": "Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event." + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event." + }, + "setApprovalForAll(address,bool)": { + "details": "Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event." + }, + "supportsInterface(bytes4)": { + "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas." + }, + "transferFrom(address,address,uint256)": { + "details": "Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event." + } + }, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/abis/IERC721Enumerable.json b/src/abis/IERC721Enumerable.json new file mode 100644 index 0000000..d0ee0dd --- /dev/null +++ b/src/abis/IERC721Enumerable.json @@ -0,0 +1,77941 @@ +{ + "contractName": "IERC721Enumerable", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "_approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "totalSupply", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenOfOwnerByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "index", + "type": "uint256" + } + ], + "name": "tokenByIndex", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"tokenOfOwnerByIndex\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"tokenByIndex(uint256)\":{\"details\":\"Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\"},\"totalSupply()\":{\"details\":\"Returns the total amount of tokens stored by the contract.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional enumeration extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":\"IERC721Enumerable\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":{\"keccak256\":\"0xac9220652f9879c5fb3116025d59e8fbf6c2c3d149aed9f617b88edd31402044\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48de100723de94a6590c6db5bae5098a93445194389c3f3eeb104c7239ef3044\",\"dweb:/ipfs/QmVHLEtfLqBqX7XQRHfLuuwtufRBFJFHfgY4zbFRpaZwXC\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "", + "deployedSourceMap": "", + "source": "// SPDX-License-Identifier: MIT\n\n// File: @openzeppelin/contracts/utils/Context.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\n\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Enumerable is IERC721 {\n\n /**\n * @dev Returns the total amount of tokens stored by the contract.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);\n\n /**\n * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n * Use along with {totalSupply} to enumerate all tokens.\n */\n function tokenByIndex(uint256 index) external view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\npragma solidity >=0.6.0 <0.8.0;\n\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts may inherit from this and call {_registerInterface} to declare\n * their support of an interface.\n */\nabstract contract ERC165 is IERC165 {\n /*\n * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7\n */\n bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;\n\n /**\n * @dev Mapping of interface ids to whether or not it's supported.\n */\n mapping(bytes4 => bool) private _supportedInterfaces;\n\n constructor () {\n // Derived contracts need only register support for their own interfaces,\n // we register support for ERC165 itself here\n _registerInterface(_INTERFACE_ID_ERC165);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n *\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return _supportedInterfaces[interfaceId];\n }\n\n /**\n * @dev Registers the contract as an implementer of the interface defined by\n * `interfaceId`. Support of the actual ERC165 interface is automatic and\n * registering its interface id is not required.\n *\n * See {IERC165-supportsInterface}.\n *\n * Requirements:\n *\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).\n */\n function _registerInterface(bytes4 interfaceId) internal virtual {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the substraction of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n return a - b;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) return 0;\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: division by zero\");\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: modulo by zero\");\n return a % b;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {trySub}.\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryDiv}.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting with custom message when dividing by zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryMod}.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a % b;\n }\n}\n\n// File: @openzeppelin/contracts/utils/Address.sol\npragma solidity >=0.6.2 <0.8.0;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n // solhint-disable-next-line no-inline-assembly\n assembly { size := extcodesize(account) }\n return size > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: value }(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.staticcall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableSet.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) { // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n bytes32 lastvalue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastvalue;\n // Update the index for the moved value\n set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n require(set._values.length > index, \"EnumerableSet: index out of bounds\");\n return set._values[index];\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableMap.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing an enumerable variant of Solidity's\n * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n * type.\n *\n * Maps have the following properties:\n *\n * - Entries are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Entries are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableMap for EnumerableMap.UintToAddressMap;\n *\n * // Declare a set state variable\n * EnumerableMap.UintToAddressMap private myMap;\n * }\n * ```\n *\n * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n * supported.\n */\nlibrary EnumerableMap {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Map type with\n // bytes32 keys and values.\n // The Map implementation uses private functions, and user-facing\n // implementations (such as Uint256ToAddressMap) are just wrappers around\n // the underlying Map.\n // This means that we can only create new EnumerableMaps for types that fit\n // in bytes32.\n\n struct MapEntry {\n bytes32 _key;\n bytes32 _value;\n }\n\n struct Map {\n // Storage of map keys and values\n MapEntry[] _entries;\n\n // Position of the entry defined by a key in the `entries` array, plus 1\n // because index 0 means a key is not in the map.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex == 0) { // Equivalent to !contains(map, key)\n map._entries.push(MapEntry({ _key: key, _value: value }));\n // The entry is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n map._indexes[key] = map._entries.length;\n return true;\n } else {\n map._entries[keyIndex - 1]._value = value;\n return false;\n }\n }\n\n /**\n * @dev Removes a key-value pair from a map. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function _remove(Map storage map, bytes32 key) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex != 0) { // Equivalent to contains(map, key)\n // To delete a key-value pair from the _entries array in O(1), we swap the entry to delete with the last one\n // in the array, and then remove the last entry (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = keyIndex - 1;\n uint256 lastIndex = map._entries.length - 1;\n\n // When the entry to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n MapEntry storage lastEntry = map._entries[lastIndex];\n\n // Move the last entry to the index where the entry to delete is\n map._entries[toDeleteIndex] = lastEntry;\n // Update the index for the moved entry\n map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved entry was stored\n map._entries.pop();\n\n // Delete the index for the deleted slot\n delete map._indexes[key];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function _contains(Map storage map, bytes32 key) private view returns (bool) {\n return map._indexes[key] != 0;\n }\n\n /**\n * @dev Returns the number of key-value pairs in the map. O(1).\n */\n function _length(Map storage map) private view returns (uint256) {\n return map._entries.length;\n }\n\n /**\n * @dev Returns the key-value pair stored at position `index` in the map. O(1).\n *\n * Note that there are no guarantees on the ordering of entries inside the\n * array, and it may change when more entries are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) {\n require(map._entries.length > index, \"EnumerableMap: index out of bounds\");\n\n MapEntry storage entry = map._entries[index];\n return (entry._key, entry._value);\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n */\n function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) {\n uint256 keyIndex = map._indexes[key];\n if (keyIndex == 0) return (false, 0); // Equivalent to contains(map, key)\n return (true, map._entries[keyIndex - 1]._value); // All indexes are 1-based\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function _get(Map storage map, bytes32 key) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, \"EnumerableMap: nonexistent key\"); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n /**\n * @dev Same as {_get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {_tryGet}.\n */\n function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n // UintToAddressMap\n\n struct UintToAddressMap {\n Map _inner;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) {\n return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {\n return _remove(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {\n return _contains(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns the number of elements in the map. O(1).\n */\n function length(UintToAddressMap storage map) internal view returns (uint256) {\n return _length(map._inner);\n }\n\n /**\n * @dev Returns the element stored at position `index` in the set. O(1).\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {\n (bytes32 key, bytes32 value) = _at(map._inner, index);\n return (uint256(key), address(uint160(uint256(value))));\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n *\n * _Available since v3.4._\n */\n function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) {\n (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key));\n return (success, address(uint160(uint256(value))));\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key)))));\n }\n\n /**\n * @dev Same as {get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryGet}.\n */\n function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage))));\n }\n}\n\n// File: @openzeppelin/contracts/utils/Strings.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n /**\n * @dev Converts a `uint256` to its ASCII `string` representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n uint256 index = digits - 1;\n temp = value;\n while (temp != 0) {\n buffer[index--] = bytes1(uint8(48 + temp % 10));\n temp /= 10;\n }\n return string(buffer);\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 Non-Fungible Token Standard basic implementation\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable {\n using SafeMath for uint256;\n using Address for address;\n using EnumerableSet for EnumerableSet.UintSet;\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n using Strings for uint256;\n\n // Equals to `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n // which can be also obtained as `IERC721Receiver(0).onERC721Received.selector`\n bytes4 private constant _ERC721_RECEIVED = 0x150b7a02;\n\n // Mapping from holder address to their (enumerable) set of owned tokens\n mapping (address => EnumerableSet.UintSet) private _holderTokens;\n\n // Enumerable mapping from token ids to their owners\n EnumerableMap.UintToAddressMap private _tokenOwners;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Optional mapping for token URIs\n mapping (uint256 => string) private _tokenURIs;\n\n // Base URI\n string private _baseURI;\n\n /*\n * bytes4(keccak256('balanceOf(address)')) == 0x70a08231\n * bytes4(keccak256('ownerOf(uint256)')) == 0x6352211e\n * bytes4(keccak256('approve(address,uint256)')) == 0x095ea7b3\n * bytes4(keccak256('getApproved(uint256)')) == 0x081812fc\n * bytes4(keccak256('setApprovalForAll(address,bool)')) == 0xa22cb465\n * bytes4(keccak256('isApprovedForAll(address,address)')) == 0xe985e9c5\n * bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde\n *\n * => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^\n * 0xa22cb465 ^ 0xe985e9c5 ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n /*\n * bytes4(keccak256('name()')) == 0x06fdde03\n * bytes4(keccak256('symbol()')) == 0x95d89b41\n * bytes4(keccak256('tokenURI(uint256)')) == 0xc87b56dd\n *\n * => 0x06fdde03 ^ 0x95d89b41 ^ 0xc87b56dd == 0x5b5e139f\n */\n bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f;\n\n /*\n * bytes4(keccak256('totalSupply()')) == 0x18160ddd\n * bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) == 0x2f745c59\n * bytes4(keccak256('tokenByIndex(uint256)')) == 0x4f6ccce7\n *\n * => 0x18160ddd ^ 0x2f745c59 ^ 0x4f6ccce7 == 0x780e9d63\n */\n bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor (string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n return _holderTokens[owner].length();\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n return _tokenOwners.get(tokenId, \"ERC721: owner query for nonexistent token\");\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).\n if (bytes(_tokenURI).length > 0) {\n return string(abi.encodePacked(base, _tokenURI));\n }\n // If there is a baseURI but no tokenURI, concatenate the tokenID to the baseURI.\n return string(abi.encodePacked(base, tokenId.toString()));\n }\n\n /**\n * @dev Returns the base URI set via {_setBaseURI}. This will be\n * automatically added as a prefix in {tokenURI} to each token's URI, or\n * to the token ID if no specific URI is set for that token ID.\n */\n function baseURI() public view virtual returns (string memory) {\n return _baseURI;\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\n return _holderTokens[owner].at(index);\n }\n\n /**\n * @dev See {IERC721Enumerable-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n // _tokenOwners are indexed by tokenIds, so .length() returns the number of tokenIds\n return _tokenOwners.length();\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenByIndex}.\n */\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\n (uint256 tokenId, ) = _tokenOwners.at(index);\n return tokenId;\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(_msgSender() == owner || ERC721.isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n require(operator != _msgSender(), \"ERC721: approve to caller\");\n\n _operatorApprovals[_msgSender()][operator] = approved;\n emit ApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n _safeTransfer(from, to, tokenId, _data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `_data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _tokenOwners.contains(tokenId);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || ERC721.isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n d*\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory _data) internal virtual {\n _mint(to, tokenId);\n require(_checkOnERC721Received(address(0), to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId);\n\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId); // internal owner\n\n _beforeTokenTransfer(owner, address(0), tokenId);\n\n // Clear approvals\n _approve(address(0), tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n\n _holderTokens[owner].remove(tokenId);\n\n _tokenOwners.remove(tokenId);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\"); // internal owner\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId);\n\n // Clear approvals from the previous owner\n _approve(address(0), tokenId);\n\n _holderTokens[from].remove(tokenId);\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = _tokenURI;\n }\n\n /**\n * @dev Internal function to set the base URI for all token IDs. It is\n * automatically added as a prefix to the value returned in {tokenURI},\n * or to the token ID if {tokenURI} is empty.\n */\n function _setBaseURI(string memory baseURI_) internal virtual {\n _baseURI = baseURI_;\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data)\n private returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n bytes memory returndata = to.functionCall(abi.encodeWithSelector(\n IERC721Receiver(to).onERC721Received.selector,\n _msgSender(),\n from,\n tokenId,\n _data\n ), \"ERC721: transfer to non ERC721Receiver implementer\");\n bytes4 retval = abi.decode(returndata, (bytes4));\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits an {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId); // internal owner\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n * transferred to `to`.\n * - When `from` is zero, `tokenId` will be minted for `to`.\n * - When `to` is zero, ``from``'s `tokenId` will be burned.\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual { }\n}\n", + "sourcePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "ast": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "id": 3499, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 509, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "84:31:1" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 530, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 517, + "nodeType": "Block", + "src": "719:34:1", + "statements": [ + { + "expression": { + "expression": { + "id": 514, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "736:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "736:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 513, + "id": 516, + "nodeType": "Return", + "src": "729:17:1" + } + ] + }, + "id": 518, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 510, + "nodeType": "ParameterList", + "parameters": [], + "src": "668:2:1" + }, + "returnParameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 518, + "src": "702:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "702:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "701:17:1" + }, + "scope": 530, + "src": "649:104:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 528, + "nodeType": "Block", + "src": "824:165:1", + "statements": [ + { + "expression": { + "id": 523, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "834:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 524, + "nodeType": "ExpressionStatement", + "src": "834:4:1" + }, + { + "expression": { + "expression": { + "id": 525, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "974:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "src": "974:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 522, + "id": 527, + "nodeType": "Return", + "src": "967:15:1" + } + ] + }, + "id": 529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 519, + "nodeType": "ParameterList", + "parameters": [], + "src": "776:2:1" + }, + "returnParameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "810:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 520, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "810:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "809:14:1" + }, + "scope": 530, + "src": "759:230:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "617:374:1" + }, + { + "id": 531, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1053:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 532, + "nodeType": "StructuredDocumentation", + "src": "1086:279:1", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 541, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 533, + "nodeType": "StructuredDocumentation", + "src": "1390:340:1", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 540, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1762:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 534, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1762:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1761:20:1" + }, + "returnParameters": { + "id": 539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1805:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1805:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1804:6:1" + }, + "scope": 541, + "src": "1735:76:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1366:447:1" + }, + { + "id": 542, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1873:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 544, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "1996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 545, + "nodeType": "InheritanceSpecifier", + "src": "1996:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "1907:67:1", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 655, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 546, + "nodeType": "StructuredDocumentation", + "src": "2010:88:1", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 554, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 548, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2118:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 550, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2140:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2140:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 552, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2160:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2117:67:1" + }, + "src": "2103:82:1" + }, + { + "anonymous": false, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "2191:94:1", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 563, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 557, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2305:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2305:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 559, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2328:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 561, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2354:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2354:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2304:74:1" + }, + "src": "2290:89:1" + }, + { + "anonymous": false, + "documentation": { + "id": 564, + "nodeType": "StructuredDocumentation", + "src": "2385:117:1", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 572, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 566, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2528:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2528:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2551:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2551:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 570, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2577:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 569, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2577:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2527:64:1" + }, + "src": "2507:85:1" + }, + { + "documentation": { + "id": 573, + "nodeType": "StructuredDocumentation", + "src": "2598:76:1", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2698:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 574, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2698:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2697:15:1" + }, + "returnParameters": { + "id": 579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2736:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2735:17:1" + }, + "scope": 655, + "src": "2679:74:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 581, + "nodeType": "StructuredDocumentation", + "src": "2759:131:1", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 588, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 583, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2912:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2912:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2911:17:1" + }, + "returnParameters": { + "id": 587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2952:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2951:15:1" + }, + "scope": 655, + "src": "2895:72:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 589, + "nodeType": "StructuredDocumentation", + "src": "2973:690:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 598, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 591, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3694:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3694:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3708:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3708:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3720:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3720:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3693:43:1" + }, + "returnParameters": { + "id": 597, + "nodeType": "ParameterList", + "parameters": [], + "src": "3745:0:1" + }, + "scope": 655, + "src": "3668:78:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 599, + "nodeType": "StructuredDocumentation", + "src": "3752:504:1", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 608, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 601, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4283:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4283:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 603, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4297:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 602, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4297:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4309:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4309:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4282:43:1" + }, + "returnParameters": { + "id": 607, + "nodeType": "ParameterList", + "parameters": [], + "src": "4334:0:1" + }, + "scope": 655, + "src": "4261:74:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 609, + "nodeType": "StructuredDocumentation", + "src": "4341:452:1", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 616, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 611, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4815:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4815:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4827:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4814:29:1" + }, + "returnParameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [], + "src": "4852:0:1" + }, + "scope": 655, + "src": "4798:55:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 617, + "nodeType": "StructuredDocumentation", + "src": "4859:139:1", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 619, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5024:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5024:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5023:17:1" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5064:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5064:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5063:18:1" + }, + "scope": 655, + "src": "5003:79:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 625, + "nodeType": "StructuredDocumentation", + "src": "5088:309:1", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 632, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5429:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5429:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5447:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 628, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5447:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5428:34:1" + }, + "returnParameters": { + "id": 631, + "nodeType": "ParameterList", + "parameters": [], + "src": "5471:0:1" + }, + "scope": 655, + "src": "5402:70:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 633, + "nodeType": "StructuredDocumentation", + "src": "5478:138:1", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 642, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5647:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5647:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5662:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5662:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5646:33:1" + }, + "returnParameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5703:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 639, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5703:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5702:6:1" + }, + "scope": 655, + "src": "5621:88:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 643, + "nodeType": "StructuredDocumentation", + "src": "5715:568:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 654, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6314:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6314:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6328:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6340:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6340:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6357:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 650, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6357:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6313:64:1" + }, + "returnParameters": { + "id": 653, + "nodeType": "ParameterList", + "parameters": [], + "src": "6386:0:1" + }, + "scope": 655, + "src": "6288:99:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1975:4414:1" + }, + { + "id": 656, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "6457:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 658, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "6654:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 659, + "nodeType": "InheritanceSpecifier", + "src": "6654:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 657, + "nodeType": "StructuredDocumentation", + "src": "6491:133:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 680, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 660, + "nodeType": "StructuredDocumentation", + "src": "6669:58:1", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 665, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [], + "src": "6745:2:1" + }, + "returnParameters": { + "id": 664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 663, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 665, + "src": "6771:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 662, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6771:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6770:15:1" + }, + "scope": 680, + "src": "6732:54:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 666, + "nodeType": "StructuredDocumentation", + "src": "6792:60:1", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 671, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 667, + "nodeType": "ParameterList", + "parameters": [], + "src": "6872:2:1" + }, + "returnParameters": { + "id": 670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 669, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "6898:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 668, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6897:15:1" + }, + "scope": 680, + "src": "6857:56:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 672, + "nodeType": "StructuredDocumentation", + "src": "6919:90:1", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 679, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7032:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7031:17:1" + }, + "returnParameters": { + "id": 678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7072:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 676, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7072:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7071:15:1" + }, + "scope": 680, + "src": "7014:73:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "6625:464:1" + }, + { + "id": 681, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "7161:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 683, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "7363:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 684, + "nodeType": "InheritanceSpecifier", + "src": "7363:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 682, + "nodeType": "StructuredDocumentation", + "src": "7195:136:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 709, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 685, + "nodeType": "StructuredDocumentation", + "src": "7378:82:1", + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "functionSelector": "18160ddd", + "id": 690, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 686, + "nodeType": "ParameterList", + "parameters": [], + "src": "7485:2:1" + }, + "returnParameters": { + "id": 689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 688, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "7511:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 687, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7511:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7510:9:1" + }, + "scope": 709, + "src": "7465:55:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "7526:171:1", + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "functionSelector": "2f745c59", + "id": 700, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7731:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7731:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7746:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7746:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7730:30:1" + }, + "returnParameters": { + "id": 699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 698, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7784:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7784:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7783:17:1" + }, + "scope": 709, + "src": "7702:99:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 701, + "nodeType": "StructuredDocumentation", + "src": "7807:164:1", + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "functionSelector": "4f6ccce7", + "id": 708, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 703, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "7998:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7998:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7997:15:1" + }, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "8036:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8036:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8035:9:1" + }, + "scope": 709, + "src": "7976:69:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "7332:715:1" + }, + { + "id": 710, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "8117:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 711, + "nodeType": "StructuredDocumentation", + "src": "8150:152:1", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 726, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 712, + "nodeType": "StructuredDocumentation", + "src": "8335:485:1", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 725, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8851:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8851:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8869:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8883:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8900:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 719, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8900:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8850:70:1" + }, + "returnParameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8939:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 722, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8939:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "8938:8:1" + }, + "scope": 726, + "src": "8825:122:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "8303:646:1" + }, + { + "id": 727, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9009:31:1" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 729, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "9243:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 730, + "nodeType": "InheritanceSpecifier", + "src": "9243:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "documentation": { + "id": 728, + "nodeType": "StructuredDocumentation", + "src": "9043:171:1", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "fullyImplemented": true, + "id": 781, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 733, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9340:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 731, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9340:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783031666663396137", + "id": 732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "9404:82:1", + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 738, + "mutability": "mutable", + "name": "_supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9491:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 737, + "keyType": { + "id": 735, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9499:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "9491:23:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 736, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9509:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 745, + "nodeType": "Block", + "src": "9565:193:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 742, + "name": "_INTERFACE_ID_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "9730:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 741, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "9711:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9711:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 744, + "nodeType": "ExpressionStatement", + "src": "9711:40:1" + } + ] + }, + "id": 746, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 739, + "nodeType": "ParameterList", + "parameters": [], + "src": "9562:2:1" + }, + "returnParameters": { + "id": 740, + "nodeType": "ParameterList", + "parameters": [], + "src": "9565:0:1" + }, + "scope": 781, + "src": "9550:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 540 + ], + "body": { + "id": 759, + "nodeType": "Block", + "src": "9999:57:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 755, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10016:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 757, + "indexExpression": { + "id": 756, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "10037:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10016:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 754, + "id": 758, + "nodeType": "Return", + "src": "10009:40:1" + } + ] + }, + "documentation": { + "id": 747, + "nodeType": "StructuredDocumentation", + "src": "9764:139:1", + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 760, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 751, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9975:8:1" + }, + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9935:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 748, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9935:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "9934:20:1" + }, + "returnParameters": { + "id": 754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 753, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9993:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9993:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9992:6:1" + }, + "scope": 781, + "src": "9908:148:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 779, + "nodeType": "Block", + "src": "10515:133:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 767, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10533:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10548:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "10533:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10560:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + }, + "value": "ERC165: invalid interface id" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "id": 766, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "10525:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10525:66:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 772, + "nodeType": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "expression": { + "id": 777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 773, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10601:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 775, + "indexExpression": { + "id": 774, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10622:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10637:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10601:40:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 778, + "nodeType": "ExpressionStatement", + "src": "10601:40:1" + } + ] + }, + "documentation": { + "id": 761, + "nodeType": "StructuredDocumentation", + "src": "10062:383:1", + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 780, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 763, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 780, + "src": "10478:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 762, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "10478:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "10477:20:1" + }, + "returnParameters": { + "id": 765, + "nodeType": "ParameterList", + "parameters": [], + "src": "10515:0:1" + }, + "scope": 781, + "src": "10450:198:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "9215:1435:1" + }, + { + "id": 782, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10703:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 783, + "nodeType": "StructuredDocumentation", + "src": "10736:563:1", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 1135, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 813, + "nodeType": "Block", + "src": "11535:98:1", + "statements": [ + { + "assignments": [ + 796 + ], + "declarations": [ + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 813, + "src": "11545:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 795, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 800, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 797, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11557:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "11561:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11557:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 801, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11576:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 802, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11580:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11576:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 808, + "nodeType": "IfStatement", + "src": "11572:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11591:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11598:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 806, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11590:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 794, + "id": 807, + "nodeType": "Return", + "src": "11583:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11618:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 810, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11624:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 811, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11617:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 794, + "id": 812, + "nodeType": "Return", + "src": "11610:16:1" + } + ] + }, + "documentation": { + "id": 784, + "nodeType": "StructuredDocumentation", + "src": "11323:131:1", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 814, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11475:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11475:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11486:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11486:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11474:22:1" + }, + "returnParameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 791, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11526:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 792, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11526:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11519:15:1" + }, + "scope": 1135, + "src": "11459:174:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 840, + "nodeType": "Block", + "src": "11855:75:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 826, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11869:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 827, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11873:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11869:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 833, + "nodeType": "IfStatement", + "src": "11865:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11884:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 831, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11883:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 825, + "id": 832, + "nodeType": "Return", + "src": "11876:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11911:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 835, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11917:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 836, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11921:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11917:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 838, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11910:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 825, + "id": 839, + "nodeType": "Return", + "src": "11903:20:1" + } + ] + }, + "documentation": { + "id": 815, + "nodeType": "StructuredDocumentation", + "src": "11639:135:1", + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 841, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 817, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11795:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11795:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 819, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11806:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11806:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11794:22:1" + }, + "returnParameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11840:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 821, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11840:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 824, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11846:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11846:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11839:15:1" + }, + "scope": 1135, + "src": "11779:151:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 881, + "nodeType": "Block", + "src": "12154:359:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 853, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12386:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12391:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12386:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 860, + "nodeType": "IfStatement", + "src": "12382:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12402:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12408:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 858, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12401:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 859, + "nodeType": "Return", + "src": "12394:16:1" + } + }, + { + "assignments": [ + 862 + ], + "declarations": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "12420:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12420:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 866, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12432:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 864, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12436:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12432:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 867, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12451:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 868, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12455:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 870, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12460:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 876, + "nodeType": "IfStatement", + "src": "12447:33:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12471:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12478:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 874, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12470:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 875, + "nodeType": "Return", + "src": "12463:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12498:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 878, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12504:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12497:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 852, + "id": 880, + "nodeType": "Return", + "src": "12490:16:1" + } + ] + }, + "documentation": { + "id": 842, + "nodeType": "StructuredDocumentation", + "src": "11936:137:1", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 844, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12094:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12094:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 846, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12105:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12093:22:1" + }, + "returnParameters": { + "id": 852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12139:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 848, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12139:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12145:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12145:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12138:15:1" + }, + "scope": 1135, + "src": "12078:435:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 908, + "nodeType": "Block", + "src": "12738:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 894, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12752:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12757:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12752:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 901, + "nodeType": "IfStatement", + "src": "12748:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12768:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12775:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 899, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12767:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 893, + "id": 900, + "nodeType": "Return", + "src": "12760:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12795:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 903, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "12801:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 904, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12805:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12801:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 906, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12794:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 893, + "id": 907, + "nodeType": "Return", + "src": "12787:20:1" + } + ] + }, + "documentation": { + "id": 883, + "nodeType": "StructuredDocumentation", + "src": "12519:138:1", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 909, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12678:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12678:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12689:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12689:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12677:22:1" + }, + "returnParameters": { + "id": 893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12723:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 889, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12723:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12729:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12729:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12722:15:1" + }, + "scope": 1135, + "src": "12662:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 935, + "nodeType": "Block", + "src": "13049:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 921, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13063:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13068:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13063:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 928, + "nodeType": "IfStatement", + "src": "13059:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13079:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13086:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 926, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13078:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 920, + "id": 927, + "nodeType": "Return", + "src": "13071:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13106:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 930, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "13112:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 931, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13116:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13112:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13105:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 920, + "id": 934, + "nodeType": "Return", + "src": "13098:20:1" + } + ] + }, + "documentation": { + "id": 910, + "nodeType": "StructuredDocumentation", + "src": "12820:148:1", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 912, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "12989:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12989:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 914, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13000:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 913, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13000:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12988:22:1" + }, + "returnParameters": { + "id": 920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 917, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13034:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 916, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13034:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 919, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13040:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13040:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13033:15:1" + }, + "scope": 1135, + "src": "12973:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 961, + "nodeType": "Block", + "src": "13427:108:1", + "statements": [ + { + "assignments": [ + 947 + ], + "declarations": [ + { + "constant": false, + "id": 947, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "13437:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13437:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 951, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13449:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 949, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 941, + "src": "13453:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13449:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 953, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13472:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 954, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13477:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13480:29:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 952, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13464:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 958, + "nodeType": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "expression": { + "id": 959, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13527:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 945, + "id": 960, + "nodeType": "Return", + "src": "13520:8:1" + } + ] + }, + "documentation": { + "id": 937, + "nodeType": "StructuredDocumentation", + "src": "13131:224:1", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13373:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13384:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13384:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13372:22:1" + }, + "returnParameters": { + "id": 945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13418:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13418:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13417:9:1" + }, + "scope": 1135, + "src": "13360:175:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 983, + "nodeType": "Block", + "src": "13873:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 973, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13896:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13891:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13883:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 979, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13949:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 980, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13953:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13949:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 971, + "id": 982, + "nodeType": "Return", + "src": "13942:12:1" + } + ] + }, + "documentation": { + "id": 963, + "nodeType": "StructuredDocumentation", + "src": "13541:260:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 984, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13819:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 964, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 967, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13830:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13830:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13818:22:1" + }, + "returnParameters": { + "id": 971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 970, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13864:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13864:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13863:9:1" + }, + "scope": 1135, + "src": "13806:155:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "14275:148:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 994, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14289:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14294:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14289:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "IfStatement", + "src": "14285:20:1", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14304:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 993, + "id": 998, + "nodeType": "Return", + "src": "14297:8:1" + } + }, + { + "assignments": [ + 1001 + ], + "declarations": [ + { + "constant": false, + "id": 1001, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "14315:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14315:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1005, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1002, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14327:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1003, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14331:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14327:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1007, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14350:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1008, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14354:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1010, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14359:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14362:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1006, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14342:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14342:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "expression": { + "id": 1015, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14415:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 993, + "id": 1016, + "nodeType": "Return", + "src": "14408:8:1" + } + ] + }, + "documentation": { + "id": 985, + "nodeType": "StructuredDocumentation", + "src": "13967:236:1", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14221:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 989, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14232:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 988, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14232:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14220:22:1" + }, + "returnParameters": { + "id": 993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 992, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14266:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14266:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14265:9:1" + }, + "scope": 1135, + "src": "14208:215:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1039, + "nodeType": "Block", + "src": "14954:83:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1029, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "14972:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14976:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14972:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14979:28:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14964:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14964:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1034, + "nodeType": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1035, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1021, + "src": "15025:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1036, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "15029:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15025:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1027, + "id": 1038, + "nodeType": "Return", + "src": "15018:12:1" + } + ] + }, + "documentation": { + "id": 1019, + "nodeType": "StructuredDocumentation", + "src": "14429:453:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1040, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1021, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14900:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14900:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1023, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14911:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14899:22:1" + }, + "returnParameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1026, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14945:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14945:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14944:9:1" + }, + "scope": 1135, + "src": "14887:150:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1061, + "nodeType": "Block", + "src": "15557:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1051, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15575:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15579:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15582:26:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 1050, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "15567:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15567:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1056, + "nodeType": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1057, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1043, + "src": "15626:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1058, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15630:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15626:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1049, + "id": 1060, + "nodeType": "Return", + "src": "15619:12:1" + } + ] + }, + "documentation": { + "id": 1041, + "nodeType": "StructuredDocumentation", + "src": "15043:442:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1062, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1043, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15503:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1045, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15514:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15502:22:1" + }, + "returnParameters": { + "id": 1049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1048, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15548:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15548:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15547:9:1" + }, + "scope": 1135, + "src": "15490:148:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1085, + "nodeType": "Block", + "src": "16197:68:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16215:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1076, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16220:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16215:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1078, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "16223:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1074, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "16207:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16207:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1080, + "nodeType": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16253:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1082, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16257:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16253:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1073, + "id": 1084, + "nodeType": "Return", + "src": "16246:12:1" + } + ] + }, + "documentation": { + "id": 1063, + "nodeType": "StructuredDocumentation", + "src": "15644:453:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1086, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16115:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16115:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16126:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16137:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1068, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16137:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16114:50:1" + }, + "returnParameters": { + "id": 1073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16188:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16188:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16187:9:1" + }, + "scope": 1135, + "src": "16102:163:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1109, + "nodeType": "Block", + "src": "17017:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1099, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17035:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17039:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17035:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1102, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1093, + "src": "17042:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17027:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17027:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1105, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "17072:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1106, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17076:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17072:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1097, + "id": 1108, + "nodeType": "Return", + "src": "17065:12:1" + } + ] + }, + "documentation": { + "id": 1087, + "nodeType": "StructuredDocumentation", + "src": "16271:646:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16935:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16935:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16946:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16946:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1093, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16957:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1092, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16957:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16934:50:1" + }, + "returnParameters": { + "id": 1097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1096, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "17008:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17008:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17007:9:1" + }, + "scope": 1135, + "src": "16922:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1133, + "nodeType": "Block", + "src": "17825:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1123, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17843:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17847:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17843:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1126, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "17850:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17835:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1128, + "nodeType": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1129, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "17880:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1130, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17880:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1121, + "id": 1132, + "nodeType": "Return", + "src": "17873:12:1" + } + ] + }, + "documentation": { + "id": 1111, + "nodeType": "StructuredDocumentation", + "src": "17090:635:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17743:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17743:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17754:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17754:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17765:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1116, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17765:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17742:50:1" + }, + "returnParameters": { + "id": 1121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17816:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17816:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17815:9:1" + }, + "scope": 1135, + "src": "17730:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "11300:6594:1" + }, + { + "id": 1136, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "17947:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1137, + "nodeType": "StructuredDocumentation", + "src": "17980:67:1", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 1430, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1153, + "nodeType": "Block", + "src": "18706:347:1", + "statements": [ + { + "assignments": [ + 1146 + ], + "declarations": [ + { + "constant": false, + "id": 1146, + "mutability": "mutable", + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 1153, + "src": "18903:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18903:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1147, + "nodeType": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "18990:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18992:28:1", + "value": { + "arguments": [ + { + "name": "account", + "nodeType": "YulIdentifier", + "src": "19012:7:1" + } + ], + "functionName": { + "name": "extcodesize", + "nodeType": "YulIdentifier", + "src": "19000:11:1" + }, + "nodeType": "YulFunctionCall", + "src": "19000:20:1" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "18992:4:1" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "id": 1148, + "nodeType": "InlineAssembly", + "src": "18981:41:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1149, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "19038:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19045:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19038:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1144, + "id": 1152, + "nodeType": "Return", + "src": "19031:15:1" + } + ] + }, + "documentation": { + "id": 1138, + "nodeType": "StructuredDocumentation", + "src": "18070:565:1", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1154, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1140, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18660:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18660:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18659:17:1" + }, + "returnParameters": { + "id": 1144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1143, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18700:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1142, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18700:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "18699:6:1" + }, + "scope": 1430, + "src": "18640:413:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1187, + "nodeType": "Block", + "src": "20041:320:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1165, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "20067:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20059:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1163, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20059:7:1", + "typeDescriptions": {} + } + }, + "id": 1166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20059:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "20059:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1168, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20084:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20059:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20092:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 1162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20051:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1172, + "nodeType": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "assignments": [ + 1174, + null + ], + "declarations": [ + { + "constant": false, + "id": 1174, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1187, + "src": "20213:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1173, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20213:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1181, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20263:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 1175, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1157, + "src": "20231:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "20231:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1177, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20254:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "20231:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20231:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1183, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "20284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20293:60:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 1182, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20276:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20276:78:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1186, + "nodeType": "ExpressionStatement", + "src": "20276:78:1" + } + ] + }, + "documentation": { + "id": 1155, + "nodeType": "StructuredDocumentation", + "src": "19059:906:1", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1188, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1157, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "19989:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19989:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1159, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "20016:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19988:43:1" + }, + "returnParameters": { + "id": 1161, + "nodeType": "ParameterList", + "parameters": [], + "src": "20041:0:1" + }, + "scope": 1430, + "src": "19970:391:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1204, + "nodeType": "Block", + "src": "21191:82:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1199, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "21219:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1200, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "21227:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21233:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 1198, + "name": "functionCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "src": "21206:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21206:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1197, + "id": 1203, + "nodeType": "Return", + "src": "21199:67:1" + } + ] + }, + "documentation": { + "id": 1189, + "nodeType": "StructuredDocumentation", + "src": "20367:730:1", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1205, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21124:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21124:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21140:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1192, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21140:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21123:35:1" + }, + "returnParameters": { + "id": 1197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1196, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21177:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1195, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21176:14:1" + }, + "scope": 1430, + "src": "21102:171:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1224, + "nodeType": "Block", + "src": "21612:76:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1218, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "21651:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1219, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "21659:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21665:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 1221, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "21668:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1217, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "21629:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21629:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1216, + "id": 1223, + "nodeType": "Return", + "src": "21622:59:1" + } + ] + }, + "documentation": { + "id": 1206, + "nodeType": "StructuredDocumentation", + "src": "21279:211:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1208, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21517:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21517:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21533:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1209, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21533:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1212, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21552:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1211, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "21552:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "21516:63:1" + }, + "returnParameters": { + "id": 1216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1215, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21598:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1214, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21598:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21597:14:1" + }, + "scope": 1430, + "src": "21495:193:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1244, + "nodeType": "Block", + "src": "22163:111:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1238, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "22202:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1239, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "22210:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1240, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1232, + "src": "22216:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22223:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 1237, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "22180:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22180:87:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1236, + "id": 1243, + "nodeType": "Return", + "src": "22173:94:1" + } + ] + }, + "documentation": { + "id": 1226, + "nodeType": "StructuredDocumentation", + "src": "21694:351:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1245, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1228, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22081:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22081:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1230, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22097:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1229, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22097:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1232, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22116:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "22080:50:1" + }, + "returnParameters": { + "id": 1236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1235, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22149:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1234, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22149:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22148:14:1" + }, + "scope": 1430, + "src": "22050:224:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1294, + "nodeType": "Block", + "src": "22663:382:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1262, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "22689:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22681:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22681:7:1", + "typeDescriptions": {} + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22681:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "22681:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1265, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22706:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22681:30:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 1267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22713:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 1259, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22673:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22673:81:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1269, + "nodeType": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1272, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22783:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1271, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "22772:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22772:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22792:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 1270, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22764:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22764:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1276, + "nodeType": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "assignments": [ + 1278, + 1280 + ], + "declarations": [ + { + "constant": false, + "id": 1278, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22895:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1277, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22895:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1280, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22909:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1279, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22909:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1287, + "initialValue": { + "arguments": [ + { + "id": 1285, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1250, + "src": "22964:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1281, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22936:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "22936:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1283, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22956:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "22936:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22936:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1289, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "23004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1290, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1280, + "src": "23013:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1291, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "23025:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1288, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "22986:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22986:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1258, + "id": 1293, + "nodeType": "Return", + "src": "22979:59:1" + } + ] + }, + "documentation": { + "id": 1246, + "nodeType": "StructuredDocumentation", + "src": "22280:237:1", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1295, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1248, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22553:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22553:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1250, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22569:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1249, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22569:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1252, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22588:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22588:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1254, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22603:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1253, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "22603:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "22552:78:1" + }, + "returnParameters": { + "id": 1258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1257, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22649:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1256, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22649:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22648:14:1" + }, + "scope": 1430, + "src": "22522:523:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1311, + "nodeType": "Block", + "src": "23322:97:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1306, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1298, + "src": "23358:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1307, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "23366:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23372:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 1305, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "src": "23339:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23339:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1304, + "id": 1310, + "nodeType": "Return", + "src": "23332:80:1" + } + ] + }, + "documentation": { + "id": 1296, + "nodeType": "StructuredDocumentation", + "src": "23051:166:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1298, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23250:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23250:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23266:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1299, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23266:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23249:35:1" + }, + "returnParameters": { + "id": 1304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1303, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23308:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23308:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23307:14:1" + }, + "scope": 1430, + "src": "23222:197:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1346, + "nodeType": "Block", + "src": "23731:288:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1326, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1325, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "23749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23749:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23769:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + }, + "value": "Address: static call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "id": 1324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "23741:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23741:67:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1330, + "nodeType": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "assignments": [ + 1332, + 1334 + ], + "declarations": [ + { + "constant": false, + "id": 1332, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23879:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1331, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23879:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1334, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23893:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1333, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23893:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1339, + "initialValue": { + "arguments": [ + { + "id": 1337, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "23938:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1335, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23920:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "23920:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23920:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1341, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "23978:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1342, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1334, + "src": "23987:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1343, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "23999:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1340, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "23960:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23960:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1323, + "id": 1345, + "nodeType": "Return", + "src": "23953:59:1" + } + ] + }, + "documentation": { + "id": 1313, + "nodeType": "StructuredDocumentation", + "src": "23425:173:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1315, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23631:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23631:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1317, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23647:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1316, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23647:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1319, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23666:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1318, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "23666:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "23630:63:1" + }, + "returnParameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1322, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23717:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1321, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23717:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23716:14:1" + }, + "scope": 1430, + "src": "23603:416:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1363, + "nodeType": "Block", + "src": "24295:101:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1358, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "24333:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1359, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "24341:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24347:41:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 1357, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "src": "24312:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24312:77:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1356, + "id": 1362, + "nodeType": "Return", + "src": "24305:84:1" + } + ] + }, + "documentation": { + "id": 1348, + "nodeType": "StructuredDocumentation", + "src": "24025:168:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1364, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1350, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24228:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24244:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1351, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24227:35:1" + }, + "returnParameters": { + "id": 1356, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1355, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24281:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1354, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24281:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24280:14:1" + }, + "scope": 1430, + "src": "24198:198:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1398, + "nodeType": "Block", + "src": "24707:292:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1378, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24736:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1377, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "24725:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24725:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24745:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + }, + "value": "Address: delegate call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "id": 1376, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "24717:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24717:69:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1382, + "nodeType": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "assignments": [ + 1384, + 1386 + ], + "declarations": [ + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24857:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1383, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "24857:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24871:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1385, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24871:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1391, + "initialValue": { + "arguments": [ + { + "id": 1389, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1369, + "src": "24918:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1387, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "24898:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24898:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1393, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1384, + "src": "24958:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1394, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1386, + "src": "24967:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1395, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1371, + "src": "24979:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1392, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "24940:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24940:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1375, + "id": 1397, + "nodeType": "Return", + "src": "24933:59:1" + } + ] + }, + "documentation": { + "id": 1365, + "nodeType": "StructuredDocumentation", + "src": "24402:175:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1399, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1367, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24612:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24612:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1369, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24628:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1368, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24628:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1371, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24647:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1370, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "24647:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "24611:63:1" + }, + "returnParameters": { + "id": 1375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1374, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24693:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1373, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24693:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24692:14:1" + }, + "scope": 1430, + "src": "24582:417:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1428, + "nodeType": "Block", + "src": "25134:596:1", + "statements": [ + { + "condition": { + "id": 1410, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "25148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1426, + "nodeType": "Block", + "src": "25205:519:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1414, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25289:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "25289:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25309:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25289:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1424, + "nodeType": "Block", + "src": "25661:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1421, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1405, + "src": "25686:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1420, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "25679:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25679:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1423, + "nodeType": "ExpressionStatement", + "src": "25679:20:1" + } + ] + }, + "id": 1425, + "nodeType": "IfStatement", + "src": "25285:429:1", + "trueBody": { + "id": 1419, + "nodeType": "Block", + "src": "25312:343:1", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "25496:145:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "25518:40:1", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25547:10:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "25541:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "25541:17:1" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "25522:15:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25590:2:1", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25594:10:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25586:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "25586:19:1" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "25607:15:1" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "25579:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "25579:44:1" + }, + "nodeType": "YulExpressionStatement", + "src": "25579:44:1" + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "id": 1418, + "nodeType": "InlineAssembly", + "src": "25487:154:1" + } + ] + } + } + ] + }, + "id": 1427, + "nodeType": "IfStatement", + "src": "25144:580:1", + "trueBody": { + "id": 1413, + "nodeType": "Block", + "src": "25157:42:1", + "statements": [ + { + "expression": { + "id": 1411, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25178:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1409, + "id": 1412, + "nodeType": "Return", + "src": "25171:17:1" + } + ] + } + } + ] + }, + "id": 1429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1401, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25032:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1400, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "25032:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1403, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25046:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1402, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25046:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1405, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25071:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1404, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "25071:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "25031:67:1" + }, + "returnParameters": { + "id": 1409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1408, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25120:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1407, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25120:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "25119:14:1" + }, + "scope": 1430, + "src": "25005:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3499, + "src": "18048:7684:1" + }, + { + "id": 1431, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "25791:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1432, + "nodeType": "StructuredDocumentation", + "src": "25824:686:1", + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "fullyImplemented": true, + "id": 1921, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableSet.Set", + "id": 1440, + "members": [ + { + "constant": false, + "id": 1435, + "mutability": "mutable", + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27033:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1433, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27033:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1434, + "nodeType": "ArrayTypeName", + "src": "27033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1439, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27184:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1438, + "keyType": { + "id": 1436, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "27184:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "26979:249:1", + "visibility": "public" + }, + { + "body": { + "id": 1480, + "nodeType": "Block", + "src": "27467:335:1", + "statements": [ + { + "condition": { + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "27481:22:1", + "subExpression": { + "arguments": [ + { + "id": 1451, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27492:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + { + "id": 1452, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27497:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1450, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "27482:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27482:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1478, + "nodeType": "Block", + "src": "27759:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27780:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1449, + "id": 1477, + "nodeType": "Return", + "src": "27773:12:1" + } + ] + }, + "id": 1479, + "nodeType": "IfStatement", + "src": "27477:319:1", + "trueBody": { + "id": 1475, + "nodeType": "Block", + "src": "27505:248:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1460, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27536:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "expression": { + "id": 1455, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1458, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27519:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "27519:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 1461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27519:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1462, + "nodeType": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "expression": { + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1463, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27677:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "27677:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1467, + "indexExpression": { + "id": 1465, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27690:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "27677:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1468, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27699:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1469, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27699:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "27699:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27677:40:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1472, + "nodeType": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27738:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1449, + "id": 1474, + "nodeType": "Return", + "src": "27731:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1441, + "nodeType": "StructuredDocumentation", + "src": "27234:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1481, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27412:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1442, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27412:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1445, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27429:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1444, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27411:32:1" + }, + "returnParameters": { + "id": 1449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1447, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "27461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "27460:6:1" + }, + "scope": 1921, + "src": "27398:404:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1560, + "nodeType": "Block", + "src": "28042:1440:1", + "statements": [ + { + "assignments": [ + 1492 + ], + "declarations": [ + { + "constant": false, + "id": 1492, + "mutability": "mutable", + "name": "valueIndex", + "nodeType": "VariableDeclaration", + "scope": 1560, + "src": "28152:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28152:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1497, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1493, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28173:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1494, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "28173:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1496, + "indexExpression": { + "id": 1495, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "28186:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28173:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1498, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28207:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28221:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28207:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1558, + "nodeType": "Block", + "src": "29439:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29460:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1490, + "id": 1557, + "nodeType": "Return", + "src": "29453:12:1" + } + ] + }, + "id": 1559, + "nodeType": "IfStatement", + "src": "28203:1273:1", + "trueBody": { + "id": 1555, + "nodeType": "Block", + "src": "28224:1209:1", + "statements": [ + { + "assignments": [ + 1502 + ], + "declarations": [ + { + "constant": false, + "id": 1502, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28564:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28564:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1506, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1503, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28588:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28588:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "assignments": [ + 1508 + ], + "declarations": [ + { + "constant": false, + "id": 1508, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28616:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28616:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1514, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1509, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28636:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28636:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "28636:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28657:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28636:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "assignments": [ + 1516 + ], + "declarations": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "lastvalue", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28898:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1515, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28898:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1521, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1517, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28918:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1520, + "indexExpression": { + "id": 1519, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "28930:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28918:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "expression": { + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1522, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29032:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1525, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29032:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1526, + "indexExpression": { + "id": 1524, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29044:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29032:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1527, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29061:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "29032:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1529, + "nodeType": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "expression": { + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1530, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29136:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1533, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29136:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1534, + "indexExpression": { + "id": 1532, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29149:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29136:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1535, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29162:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29178:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "29162:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29136:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1539, + "nodeType": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 1540, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29285:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "29285:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29285:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1546, + "nodeType": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "expression": { + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "29370:26:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 1547, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29377:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29377:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1550, + "indexExpression": { + "id": 1549, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "29390:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29377:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1552, + "nodeType": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29418:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1490, + "id": 1554, + "nodeType": "Return", + "src": "29411:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1482, + "nodeType": "StructuredDocumentation", + "src": "27808:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1561, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "27987:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1483, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27987:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1486, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28004:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1485, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27986:32:1" + }, + "returnParameters": { + "id": 1490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28036:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1488, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "28036:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "28035:6:1" + }, + "scope": 1921, + "src": "27970:1512:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1578, + "nodeType": "Block", + "src": "29642:48:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 1571, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "29659:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29659:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1574, + "indexExpression": { + "id": 1573, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "29672:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29659:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29682:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "29659:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1570, + "id": 1577, + "nodeType": "Return", + "src": "29652:31:1" + } + ] + }, + "documentation": { + "id": 1562, + "nodeType": "StructuredDocumentation", + "src": "29488:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1579, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1564, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29582:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1563, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29582:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29599:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1565, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "29599:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "29581:32:1" + }, + "returnParameters": { + "id": 1570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29636:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "29636:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "29635:6:1" + }, + "scope": 1921, + "src": "29563:127:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1591, + "nodeType": "Block", + "src": "29836:42:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 1587, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1582, + "src": "29853:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1588, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29853:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "29853:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1586, + "id": 1590, + "nodeType": "Return", + "src": "29846:25:1" + } + ] + }, + "documentation": { + "id": 1580, + "nodeType": "StructuredDocumentation", + "src": "29696:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1582, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29788:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1581, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29788:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "src": "29787:17:1" + }, + "returnParameters": { + "id": 1586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1585, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29827:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29826:9:1" + }, + "scope": 1921, + "src": "29771:107:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1616, + "nodeType": "Block", + "src": "30286:125:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1603, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30304:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30304:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "30304:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1606, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30325:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30304:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30332:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + }, + "value": "EnumerableSet: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "id": 1602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "30296:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30296:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1610, + "nodeType": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 1611, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30386:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30386:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1614, + "indexExpression": { + "id": 1613, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30398:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30386:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1601, + "id": 1615, + "nodeType": "Return", + "src": "30379:25:1" + } + ] + }, + "documentation": { + "id": 1593, + "nodeType": "StructuredDocumentation", + "src": "29883:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1617, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1595, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30223:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1594, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30223:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30240:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30240:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30222:32:1" + }, + "returnParameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1600, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30277:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1599, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30276:9:1" + }, + "scope": 1921, + "src": "30210:201:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableSet.Bytes32Set", + "id": 1620, + "members": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "30464:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1618, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30464:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "30436:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1636, + "nodeType": "Block", + "src": "30727:47:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1631, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "30749:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "30749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1625, + "src": "30761:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1630, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "30744:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30744:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1629, + "id": 1635, + "nodeType": "Return", + "src": "30737:30:1" + } + ] + }, + "documentation": { + "id": 1621, + "nodeType": "StructuredDocumentation", + "src": "30487:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30664:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1622, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30664:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30688:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1624, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30688:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30663:39:1" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30721:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "30721:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "30720:6:1" + }, + "scope": 1921, + "src": "30651:123:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1653, + "nodeType": "Block", + "src": "31021:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1648, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "31046:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31046:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1650, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "31058:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1647, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "31038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31038:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1646, + "id": 1652, + "nodeType": "Return", + "src": "31031:33:1" + } + ] + }, + "documentation": { + "id": 1638, + "nodeType": "StructuredDocumentation", + "src": "30780:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1654, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30958:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1639, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30958:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30982:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1641, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30982:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30957:39:1" + }, + "returnParameters": { + "id": 1646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1645, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "31015:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31015:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31014:6:1" + }, + "scope": 1921, + "src": "30942:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1670, + "nodeType": "Block", + "src": "31238:52:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1665, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1657, + "src": "31265:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31265:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1667, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1659, + "src": "31277:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1664, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "31255:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31255:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1663, + "id": 1669, + "nodeType": "Return", + "src": "31248:35:1" + } + ] + }, + "documentation": { + "id": 1655, + "nodeType": "StructuredDocumentation", + "src": "31077:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1671, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1657, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31170:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1656, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31170:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31194:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1658, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31194:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31169:39:1" + }, + "returnParameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1662, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31232:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1661, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31232:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31231:6:1" + }, + "scope": 1921, + "src": "31152:138:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "31443:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1680, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1674, + "src": "31468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1681, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31468:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1679, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "31460:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31460:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1678, + "id": 1683, + "nodeType": "Return", + "src": "31453:26:1" + } + ] + }, + "documentation": { + "id": 1672, + "nodeType": "StructuredDocumentation", + "src": "31296:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1685, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1674, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31387:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1673, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + } + ], + "src": "31386:24:1" + }, + "returnParameters": { + "id": 1678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31434:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31434:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31433:9:1" + }, + "scope": 1921, + "src": "31371:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1701, + "nodeType": "Block", + "src": "31901:46:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1696, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1688, + "src": "31922:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1697, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31922:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1698, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "31934:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1695, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "31918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31918:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1694, + "id": 1700, + "nodeType": "Return", + "src": "31911:29:1" + } + ] + }, + "documentation": { + "id": 1686, + "nodeType": "StructuredDocumentation", + "src": "31491:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1688, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31830:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1687, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31830:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1690, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31854:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31854:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31829:39:1" + }, + "returnParameters": { + "id": 1694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31892:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1692, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31892:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31891:9:1" + }, + "scope": 1921, + "src": "31818:129:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.AddressSet", + "id": 1705, + "members": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1705, + "src": "32000:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1703, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "32000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "31972:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1730, + "nodeType": "Block", + "src": "32263:74:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1716, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1708, + "src": "32285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32285:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "32321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32313:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1722, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32313:7:1", + "typeDescriptions": {} + } + }, + "id": 1725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32313:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32305:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1720, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32305:7:1", + "typeDescriptions": {} + } + }, + "id": 1726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32305:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1718, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32297:7:1", + "typeDescriptions": {} + } + }, + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32297:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1715, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "32280:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32280:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1714, + "id": 1729, + "nodeType": "Return", + "src": "32273:57:1" + } + ] + }, + "documentation": { + "id": 1706, + "nodeType": "StructuredDocumentation", + "src": "32023:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1731, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1708, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32200:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1707, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32200:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32224:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32224:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32199:39:1" + }, + "returnParameters": { + "id": 1714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1713, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32257:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1712, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32257:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32256:6:1" + }, + "scope": 1921, + "src": "32187:150:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1756, + "nodeType": "Block", + "src": "32584:77:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1742, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "32609:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1743, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32609:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1750, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "32645:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32637:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1748, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32637:7:1", + "typeDescriptions": {} + } + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32637:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32629:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32629:7:1", + "typeDescriptions": {} + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32629:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32621:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1744, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32621:7:1", + "typeDescriptions": {} + } + }, + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32621:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1741, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "32601:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32601:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1740, + "id": 1755, + "nodeType": "Return", + "src": "32594:60:1" + } + ] + }, + "documentation": { + "id": 1732, + "nodeType": "StructuredDocumentation", + "src": "32343:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1757, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1734, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32521:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1733, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32521:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1736, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32545:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32545:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32520:39:1" + }, + "returnParameters": { + "id": 1740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1739, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32578:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1738, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32578:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32577:6:1" + }, + "scope": 1921, + "src": "32505:156:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1782, + "nodeType": "Block", + "src": "32828:79:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1768, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1760, + "src": "32855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1776, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1762, + "src": "32891:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1774, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32883:7:1", + "typeDescriptions": {} + } + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32883:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32875:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32875:7:1", + "typeDescriptions": {} + } + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32875:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1770, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32867:7:1", + "typeDescriptions": {} + } + }, + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32867:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1767, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "32845:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32845:55:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1766, + "id": 1781, + "nodeType": "Return", + "src": "32838:62:1" + } + ] + }, + "documentation": { + "id": 1758, + "nodeType": "StructuredDocumentation", + "src": "32667:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1783, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1760, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32760:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1759, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32760:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1762, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32784:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32784:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32759:39:1" + }, + "returnParameters": { + "id": 1766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1765, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32822:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1764, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32822:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32821:6:1" + }, + "scope": 1921, + "src": "32742:165:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1796, + "nodeType": "Block", + "src": "33060:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1792, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1786, + "src": "33085:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33085:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1791, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "33077:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33077:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1790, + "id": 1795, + "nodeType": "Return", + "src": "33070:26:1" + } + ] + }, + "documentation": { + "id": 1784, + "nodeType": "StructuredDocumentation", + "src": "32913:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1797, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1786, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33004:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1785, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33004:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + } + ], + "src": "33003:24:1" + }, + "returnParameters": { + "id": 1790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1789, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33050:9:1" + }, + "scope": 1921, + "src": "32988:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1822, + "nodeType": "Block", + "src": "33518:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1814, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "33563:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33563:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1816, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "33575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1813, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "33559:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33559:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33551:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33551:7:1", + "typeDescriptions": {} + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33551:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33543:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1809, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "33543:7:1", + "typeDescriptions": {} + } + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33543:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33535:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33535:7:1", + "typeDescriptions": {} + } + }, + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33535:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 1806, + "id": 1821, + "nodeType": "Return", + "src": "33528:56:1" + } + ] + }, + "documentation": { + "id": 1798, + "nodeType": "StructuredDocumentation", + "src": "33108:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1823, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1800, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33447:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1799, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33447:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1802, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33471:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33471:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33446:39:1" + }, + "returnParameters": { + "id": 1806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33509:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33509:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "33508:9:1" + }, + "scope": 1921, + "src": "33435:156:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.UintSet", + "id": 1826, + "members": [ + { + "constant": false, + "id": 1825, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1826, + "src": "33639:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1824, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "33639:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "UintSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "33614:42:1", + "visibility": "public" + }, + { + "body": { + "id": 1845, + "nodeType": "Block", + "src": "33899:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1837, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1829, + "src": "33921:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "33921:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1841, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "33941:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33933:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1839, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "33933:7:1", + "typeDescriptions": {} + } + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33933:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1836, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "33916:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33916:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1835, + "id": 1844, + "nodeType": "Return", + "src": "33909:39:1" + } + ] + }, + "documentation": { + "id": 1827, + "nodeType": "StructuredDocumentation", + "src": "33662:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1846, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1829, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33839:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1828, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "33839:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1831, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33860:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33860:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33838:36:1" + }, + "returnParameters": { + "id": 1835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1834, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33893:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1833, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "33893:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "33892:6:1" + }, + "scope": 1921, + "src": "33826:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1865, + "nodeType": "Block", + "src": "34199:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1857, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1849, + "src": "34224:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34224:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1861, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "34244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34236:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1859, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34236:7:1", + "typeDescriptions": {} + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34236:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1856, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "34216:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34216:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1855, + "id": 1864, + "nodeType": "Return", + "src": "34209:42:1" + } + ] + }, + "documentation": { + "id": 1847, + "nodeType": "StructuredDocumentation", + "src": "33961:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1849, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34139:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1848, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34139:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1851, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34160:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34138:36:1" + }, + "returnParameters": { + "id": 1855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1854, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34193:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1853, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34193:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34192:6:1" + }, + "scope": 1921, + "src": "34123:135:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1885, + "nodeType": "Block", + "src": "34422:61:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1877, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1869, + "src": "34449:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34449:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1881, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "34469:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1879, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34461:7:1", + "typeDescriptions": {} + } + }, + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34461:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1876, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "34439:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34439:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1875, + "id": 1884, + "nodeType": "Return", + "src": "34432:44:1" + } + ] + }, + "documentation": { + "id": 1867, + "nodeType": "StructuredDocumentation", + "src": "34264:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1886, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1869, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34357:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1868, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34378:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34378:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34356:36:1" + }, + "returnParameters": { + "id": 1875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1874, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34416:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1873, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34416:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34415:6:1" + }, + "scope": 1921, + "src": "34339:144:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1899, + "nodeType": "Block", + "src": "34633:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1895, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1889, + "src": "34658:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34658:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1894, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "34650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34650:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1893, + "id": 1898, + "nodeType": "Return", + "src": "34643:26:1" + } + ] + }, + "documentation": { + "id": 1887, + "nodeType": "StructuredDocumentation", + "src": "34489:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1900, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1889, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34580:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1888, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + } + ], + "src": "34579:21:1" + }, + "returnParameters": { + "id": 1893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34624:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34623:9:1" + }, + "scope": 1921, + "src": "34564:112:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1919, + "nodeType": "Block", + "src": "35088:55:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1913, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "35117:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "35117:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1915, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1905, + "src": "35129:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1912, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "35113:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35113:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "35105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35105:7:1", + "typeDescriptions": {} + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35105:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1909, + "id": 1918, + "nodeType": "Return", + "src": "35098:38:1" + } + ] + }, + "documentation": { + "id": 1901, + "nodeType": "StructuredDocumentation", + "src": "34681:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1920, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35020:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1902, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "35020:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1905, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35041:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35041:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35019:36:1" + }, + "returnParameters": { + "id": 1909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1908, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35079:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1907, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35079:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35078:9:1" + }, + "scope": 1921, + "src": "35008:135:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "26511:8634:1" + }, + { + "id": 1922, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "35204:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1923, + "nodeType": "StructuredDocumentation", + "src": "35237:705:1", + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "fullyImplemented": true, + "id": 2480, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableMap.MapEntry", + "id": 1928, + "members": [ + { + "constant": false, + "id": 1925, + "mutability": "mutable", + "name": "_key", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36455:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1924, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1927, + "mutability": "mutable", + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36477:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1926, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36477:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "MapEntry", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36429:69:1", + "visibility": "public" + }, + { + "canonicalName": "EnumerableMap.Map", + "id": 1936, + "members": [ + { + "constant": false, + "id": 1931, + "mutability": "mutable", + "name": "_entries", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36567:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + }, + "typeName": { + "baseType": { + "id": 1929, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "36567:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "id": 1930, + "nodeType": "ArrayTypeName", + "src": "36567:10:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1935, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36736:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1934, + "keyType": { + "id": 1932, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "36736:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "36756:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Map", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36504:276:1", + "visibility": "public" + }, + { + "body": { + "id": 1997, + "nodeType": "Block", + "src": "37089:596:1", + "statements": [ + { + "assignments": [ + 1949 + ], + "declarations": [ + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 1997, + "src": "37197:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "37197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1954, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1950, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1953, + "indexExpression": { + "id": 1952, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37229:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37216:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1955, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37248:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37260:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "37248:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1995, + "nodeType": "Block", + "src": "37587:92:1", + "statements": [ + { + "expression": { + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 1982, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37601:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1987, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37601:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1988, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1984, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37614:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37625:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "37614:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37601:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 1989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "37601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1990, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37637:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "37601:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1992, + "nodeType": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37663:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1947, + "id": 1994, + "nodeType": "Return", + "src": "37656:12:1" + } + ] + }, + "id": 1996, + "nodeType": "IfStatement", + "src": "37244:435:1", + "trueBody": { + "id": 1981, + "nodeType": "Block", + "src": "37263:318:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1964, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37349:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1965, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37362:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1963, + "name": "MapEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1928, + "src": "37332:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_MapEntry_$1928_storage_ptr_$", + "typeString": "type(struct EnumerableMap.MapEntry storage pointer)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "nodeType": "FunctionCall", + "src": "37332:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "expression": { + "expression": { + "id": 1958, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37314:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37314:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "37314:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$1928_storage_$returns$__$", + "typeString": "function (struct EnumerableMap.MapEntry storage ref)" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37314:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1968, + "nodeType": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "expression": { + "id": 1977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1969, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37506:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37506:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1973, + "indexExpression": { + "id": 1971, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "37506:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1974, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37526:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37526:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "37526:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37506:39:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1978, + "nodeType": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37566:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1947, + "id": 1980, + "nodeType": "Return", + "src": "37559:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1937, + "nodeType": "StructuredDocumentation", + "src": "36786:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1998, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37021:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 1938, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37021:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37038:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1940, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1943, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1942, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37020:45:1" + }, + "returnParameters": { + "id": 1947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1946, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37083:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1945, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37083:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37082:6:1" + }, + "scope": 2480, + "src": "37007:678:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2078, + "nodeType": "Block", + "src": "37923:1447:1", + "statements": [ + { + "assignments": [ + 2009 + ], + "declarations": [ + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2078, + "src": "38031:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2014, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2010, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38050:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2011, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "38050:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2013, + "indexExpression": { + "id": 2012, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "38063:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38050:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2015, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38082:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38094:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "38082:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2076, + "nodeType": "Block", + "src": "39327:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39348:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2007, + "id": 2075, + "nodeType": "Return", + "src": "39341:12:1" + } + ] + }, + "id": 2077, + "nodeType": "IfStatement", + "src": "38078:1286:1", + "trueBody": { + "id": 2073, + "nodeType": "Block", + "src": "38097:1224:1", + "statements": [ + { + "assignments": [ + 2019 + ], + "declarations": [ + { + "constant": false, + "id": 2019, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38438:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2023, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2020, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38462:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38473:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38462:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "assignments": [ + 2025 + ], + "declarations": [ + { + "constant": false, + "id": 2025, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38488:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38488:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2031, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2026, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38508:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38508:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "38508:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38530:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38508:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "assignments": [ + 2033 + ], + "declarations": [ + { + "constant": false, + "id": 2033, + "mutability": "mutable", + "name": "lastEntry", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38771:26:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2032, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "38771:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2038, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2034, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38800:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38800:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2037, + "indexExpression": { + "id": 2036, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2025, + "src": "38813:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38800:23:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "expression": { + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2039, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38915:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38915:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2043, + "indexExpression": { + "id": 2041, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "38928:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "38915:27:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2044, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "38945:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "src": "38915:39:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2046, + "nodeType": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2047, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2051, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39020:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2052, + "indexExpression": { + "expression": { + "id": 2049, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "39033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "39033:14:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39020:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2053, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "39051:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39067:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "39051:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39020:48:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 2058, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39174:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2061, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39174:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "39174:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "39174:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2064, + "nodeType": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "expression": { + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "39260:24:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 2065, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39267:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2066, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39267:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2068, + "indexExpression": { + "id": 2067, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "39280:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39267:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2070, + "nodeType": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39306:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2007, + "id": 2072, + "nodeType": "Return", + "src": "39299:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1999, + "nodeType": "StructuredDocumentation", + "src": "37691:157:1", + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2079, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2001, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37870:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2000, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37870:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37887:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2002, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37887:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37869:30:1" + }, + "returnParameters": { + "id": 2007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2006, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37917:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2005, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37917:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37916:6:1" + }, + "scope": 2480, + "src": "37853:1517:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2096, + "nodeType": "Block", + "src": "39526:46:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 2089, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2082, + "src": "39543:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2090, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39543:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2092, + "indexExpression": { + "id": 2091, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2084, + "src": "39556:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "39543:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39564:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "39543:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2088, + "id": 2095, + "nodeType": "Return", + "src": "39536:29:1" + } + ] + }, + "documentation": { + "id": 2080, + "nodeType": "StructuredDocumentation", + "src": "39376:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2082, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39468:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2081, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2084, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39485:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2083, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "39485:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "39467:30:1" + }, + "returnParameters": { + "id": 2088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2087, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2086, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "39520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "39519:6:1" + }, + "scope": 2480, + "src": "39449:123:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2109, + "nodeType": "Block", + "src": "39727:43:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 2105, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "39744:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39744:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "39744:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2104, + "id": 2108, + "nodeType": "Return", + "src": "39737:26:1" + } + ] + }, + "documentation": { + "id": 2098, + "nodeType": "StructuredDocumentation", + "src": "39578:79:1", + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2100, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39679:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2099, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39679:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "src": "39678:17:1" + }, + "returnParameters": { + "id": 2104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2103, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39718:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "39718:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "39717:9:1" + }, + "scope": 2480, + "src": "39662:108:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2144, + "nodeType": "Block", + "src": "40198:189:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2123, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "40216:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2126, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40216:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40245:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + }, + "value": "EnumerableMap: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "id": 2122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "40208:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "40208:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2130, + "nodeType": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "assignments": [ + 2132 + ], + "declarations": [ + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "entry", + "nodeType": "VariableDeclaration", + "scope": 2144, + "src": "40293:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2131, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "40293:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2137, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2133, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40318:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40318:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2136, + "indexExpression": { + "id": 2135, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40331:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40318:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "expression": { + "components": [ + { + "expression": { + "id": 2138, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40355:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2139, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "40355:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 2140, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40367:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40367:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40354:26:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "functionReturnParameters": 2121, + "id": 2143, + "nodeType": "Return", + "src": "40347:33:1" + } + ] + }, + "documentation": { + "id": 2111, + "nodeType": "StructuredDocumentation", + "src": "39775:333:1", + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2145, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2113, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40126:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2112, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40126:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2115, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40143:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40143:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "40125:32:1" + }, + "returnParameters": { + "id": 2121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40180:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40180:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40189:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2119, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40189:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40179:18:1" + }, + "scope": 2480, + "src": "40113:274:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2182, + "nodeType": "Block", + "src": "40613:220:1", + "statements": [ + { + "assignments": [ + 2158 + ], + "declarations": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2182, + "src": "40623:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40623:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2163, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2159, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40642:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "40642:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2162, + "indexExpression": { + "id": 2161, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2150, + "src": "40655:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40642:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2164, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40673:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40685:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "40673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2171, + "nodeType": "IfStatement", + "src": "40669:36:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40696:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40703:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2169, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40695:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2156, + "id": 2170, + "nodeType": "Return", + "src": "40688:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40759:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 2173, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40765:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2174, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40765:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2178, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2175, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40778:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40789:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "40778:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40765:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40765:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2180, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40758:41:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "functionReturnParameters": 2156, + "id": 2181, + "nodeType": "Return", + "src": "40751:48:1" + } + ] + }, + "documentation": { + "id": 2146, + "nodeType": "StructuredDocumentation", + "src": "40393:131:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2183, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2151, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40546:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2147, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40546:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2150, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40563:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2149, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40563:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40545:30:1" + }, + "returnParameters": { + "id": 2156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2153, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40598:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2152, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "40598:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2155, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40604:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2154, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40604:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40597:15:1" + }, + "scope": 2480, + "src": "40529:304:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2215, + "nodeType": "Block", + "src": "41060:232:1", + "statements": [ + { + "assignments": [ + 2194 + ], + "declarations": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2215, + "src": "41070:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41070:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2199, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2195, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41089:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2196, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41089:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2198, + "indexExpression": { + "id": 2197, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2188, + "src": "41102:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41089:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2201, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41124:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41136:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41124:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "id": 2204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41139:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + }, + "value": "EnumerableMap: nonexistent key" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "id": 2200, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41116:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2206, + "nodeType": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2207, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41225:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2208, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41225:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2212, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2209, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41238:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41249:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41238:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41225:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2213, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41225:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2192, + "id": 2214, + "nodeType": "Return", + "src": "41218:40:1" + } + ] + }, + "documentation": { + "id": 2184, + "nodeType": "StructuredDocumentation", + "src": "40839:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2186, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "40999:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2185, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40999:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2188, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41016:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2187, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40998:30:1" + }, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2190, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41050:9:1" + }, + "scope": 2480, + "src": "40985:307:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2250, + "nodeType": "Block", + "src": "41677:212:1", + "statements": [ + { + "assignments": [ + 2229 + ], + "declarations": [ + { + "constant": false, + "id": 2229, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2250, + "src": "41687:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41687:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2234, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2230, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41706:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2231, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41706:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2233, + "indexExpression": { + "id": 2232, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "41719:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41706:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2236, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41741:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41753:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41741:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2239, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2223, + "src": "41756:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2235, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41733:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41733:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2241, + "nodeType": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2242, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41822:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41822:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2247, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2244, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41835:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41846:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41835:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41822:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41822:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2227, + "id": 2249, + "nodeType": "Return", + "src": "41815:40:1" + } + ] + }, + "documentation": { + "id": 2217, + "nodeType": "StructuredDocumentation", + "src": "41298:271:1", + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2251, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2219, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41588:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2218, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41588:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2221, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41605:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2220, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2223, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41618:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2222, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "41618:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "41587:58:1" + }, + "returnParameters": { + "id": 2227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2226, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41668:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2225, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41668:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41667:9:1" + }, + "scope": 2480, + "src": "41574:315:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableMap.UintToAddressMap", + "id": 2254, + "members": [ + { + "constant": false, + "id": 2253, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 2254, + "src": "41954:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2252, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41954:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "name": "UintToAddressMap", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "41920:51:1", + "visibility": "public" + }, + { + "body": { + "id": 2285, + "nodeType": "Block", + "src": "42293:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2267, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "42315:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42315:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2271, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2259, + "src": "42335:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42327:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2269, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42327:7:1", + "typeDescriptions": {} + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42327:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2279, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2261, + "src": "42365:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2277, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "42357:7:1", + "typeDescriptions": {} + } + }, + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42357:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42349:7:1", + "typeDescriptions": {} + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42349:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42341:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42341:7:1", + "typeDescriptions": {} + } + }, + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42341:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2266, + "name": "_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1998, + "src": "42310:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42310:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2265, + "id": 2284, + "nodeType": "Return", + "src": "42303:71:1" + } + ] + }, + "documentation": { + "id": 2255, + "nodeType": "StructuredDocumentation", + "src": "41977:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2286, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2257, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42211:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2256, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42211:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2259, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42241:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2258, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42241:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2261, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42254:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "42254:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "42210:58:1" + }, + "returnParameters": { + "id": 2265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2264, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42287:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2263, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42287:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42286:6:1" + }, + "scope": 2480, + "src": "42198:183:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2305, + "nodeType": "Block", + "src": "42623:57:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2297, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2289, + "src": "42648:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2298, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42648:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2301, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2291, + "src": "42668:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42660:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2299, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42660:7:1", + "typeDescriptions": {} + } + }, + "id": 2302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42660:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2296, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2079, + "src": "42640:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)" + } + }, + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42640:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2295, + "id": 2304, + "nodeType": "Return", + "src": "42633:40:1" + } + ] + }, + "documentation": { + "id": 2287, + "nodeType": "StructuredDocumentation", + "src": "42387:148:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2289, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42556:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2288, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42556:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2291, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42586:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42586:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42555:43:1" + }, + "returnParameters": { + "id": 2295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2294, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42617:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2293, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42617:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42616:6:1" + }, + "scope": 2480, + "src": "42540:140:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2325, + "nodeType": "Block", + "src": "42849:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2317, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2309, + "src": "42876:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42876:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2321, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "42896:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42888:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2319, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42888:7:1", + "typeDescriptions": {} + } + }, + "id": 2322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42888:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2316, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2097, + "src": "42866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42866:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2315, + "id": 2324, + "nodeType": "Return", + "src": "42859:42:1" + } + ] + }, + "documentation": { + "id": 2307, + "nodeType": "StructuredDocumentation", + "src": "42686:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2326, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2309, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42777:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2308, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42777:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2311, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42807:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42807:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42776:43:1" + }, + "returnParameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2314, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42843:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42843:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42842:6:1" + }, + "scope": 2480, + "src": "42759:149:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2339, + "nodeType": "Block", + "src": "43069:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2335, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2329, + "src": "43094:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43094:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "id": 2334, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2110, + "src": "43086:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)" + } + }, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43086:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2333, + "id": 2338, + "nodeType": "Return", + "src": "43079:26:1" + } + ] + }, + "documentation": { + "id": 2327, + "nodeType": "StructuredDocumentation", + "src": "42914:72:1", + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2340, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2329, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43007:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2328, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43007:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + } + ], + "src": "43006:30:1" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43060:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43059:9:1" + }, + "scope": 2480, + "src": "42991:121:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2378, + "nodeType": "Block", + "src": "43538:135:1", + "statements": [ + { + "assignments": [ + 2353, + 2355 + ], + "declarations": [ + { + "constant": false, + "id": 2353, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43549:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2352, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43549:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2355, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43562:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2354, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43562:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2361, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2357, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "43583:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2358, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "id": 2359, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "43595:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2356, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "43579:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)" + } + }, + "id": 2360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43579:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "expression": { + "components": [ + { + "arguments": [ + { + "id": 2364, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "43627:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43619:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43619:7:1", + "typeDescriptions": {} + } + }, + "id": 2365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43619:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2372, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2355, + "src": "43657:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43649:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43649:7:1", + "typeDescriptions": {} + } + }, + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43649:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43641:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2368, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "43641:7:1", + "typeDescriptions": {} + } + }, + "id": 2374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43641:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43633:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43633:7:1", + "typeDescriptions": {} + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43633:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2376, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43618:48:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$", + "typeString": "tuple(uint256,address payable)" + } + }, + "functionReturnParameters": 2351, + "id": 2377, + "nodeType": "Return", + "src": "43611:55:1" + } + ] + }, + "documentation": { + "id": 2341, + "nodeType": "StructuredDocumentation", + "src": "43117:318:1", + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2379, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43452:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2342, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43452:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2345, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43482:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43482:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43451:45:1" + }, + "returnParameters": { + "id": 2351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2348, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43520:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43520:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2350, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43529:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43529:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43519:18:1" + }, + "scope": 2480, + "src": "43440:233:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2417, + "nodeType": "Block", + "src": "43950:142:1", + "statements": [ + { + "assignments": [ + 2392, + 2394 + ], + "declarations": [ + { + "constant": false, + "id": 2392, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43961:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43961:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43975:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2393, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2403, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2396, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "44000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44000:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2400, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2384, + "src": "44020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44012:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2398, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44012:7:1", + "typeDescriptions": {} + } + }, + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44012:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2395, + "name": "_tryGet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2183, + "src": "43992:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)" + } + }, + "id": 2402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43992:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "expression": { + "components": [ + { + "id": 2404, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2392, + "src": "44043:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2411, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "44076:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44068:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44068:7:1", + "typeDescriptions": {} + } + }, + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44068:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2407, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44060:7:1", + "typeDescriptions": {} + } + }, + "id": 2413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44060:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44052:7:1", + "typeDescriptions": {} + } + }, + "id": 2414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44052:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2415, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44042:43:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_payable_$", + "typeString": "tuple(bool,address payable)" + } + }, + "functionReturnParameters": 2390, + "id": 2416, + "nodeType": "Return", + "src": "44035:50:1" + } + ] + }, + "documentation": { + "id": 2380, + "nodeType": "StructuredDocumentation", + "src": "43679:169:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2418, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2382, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43869:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2381, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43869:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2384, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43899:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43868:43:1" + }, + "returnParameters": { + "id": 2390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2387, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43935:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2386, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2389, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43941:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43941:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43934:15:1" + }, + "scope": 2480, + "src": "43853:239:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2446, + "nodeType": "Block", + "src": "44332:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2435, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "44378:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44378:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2439, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2423, + "src": "44398:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44390:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2437, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44390:7:1", + "typeDescriptions": {} + } + }, + "id": 2440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44390:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2434, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "src": "44373:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)" + } + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44373:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44365:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44365:7:1", + "typeDescriptions": {} + } + }, + "id": 2442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44365:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2430, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44357:7:1", + "typeDescriptions": {} + } + }, + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44357:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44349:7:1", + "typeDescriptions": {} + } + }, + "id": 2444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44349:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2427, + "id": 2445, + "nodeType": "Return", + "src": "44342:64:1" + } + ] + }, + "documentation": { + "id": 2419, + "nodeType": "StructuredDocumentation", + "src": "44098:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2447, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2421, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44257:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2420, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44257:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2423, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44287:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44287:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "44256:43:1" + }, + "returnParameters": { + "id": 2427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2426, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44323:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44323:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44322:9:1" + }, + "scope": 2480, + "src": "44244:169:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2478, + "nodeType": "Block", + "src": "44809:95:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2466, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2450, + "src": "44855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2467, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2470, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2452, + "src": "44875:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2468, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44867:7:1", + "typeDescriptions": {} + } + }, + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44867:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 2472, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "44881:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2465, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "src": "44850:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)" + } + }, + "id": 2473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44850:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44842:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44842:7:1", + "typeDescriptions": {} + } + }, + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44842:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44834:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2461, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44834:7:1", + "typeDescriptions": {} + } + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44834:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44826:7:1", + "typeDescriptions": {} + } + }, + "id": 2476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44826:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2458, + "id": 2477, + "nodeType": "Return", + "src": "44819:78:1" + } + ] + }, + "documentation": { + "id": 2448, + "nodeType": "StructuredDocumentation", + "src": "44419:269:1", + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2450, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44706:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2449, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44706:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2452, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44736:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2454, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44749:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2453, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "44749:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "44705:71:1" + }, + "returnParameters": { + "id": 2458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2457, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44799:9:1" + }, + "scope": 2480, + "src": "44693:211:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "35943:8963:1" + }, + { + "id": 2481, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "44959:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2482, + "nodeType": "StructuredDocumentation", + "src": "44992:34:1", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2566, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2564, + "nodeType": "Block", + "src": "45207:654:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2490, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45409:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45418:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45409:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2496, + "nodeType": "IfStatement", + "src": "45405:51:1", + "trueBody": { + "id": 2495, + "nodeType": "Block", + "src": "45421:35:1", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45442:3:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "functionReturnParameters": 2489, + "id": 2494, + "nodeType": "Return", + "src": "45435:10:1" + } + ] + } + }, + { + "assignments": [ + 2498 + ], + "declarations": [ + { + "constant": false, + "id": 2498, + "mutability": "mutable", + "name": "temp", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45465:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2500, + "initialValue": { + "id": 2499, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45480:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "assignments": [ + 2502 + ], + "declarations": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "digits", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45495:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45495:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2503, + "nodeType": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "body": { + "id": 2514, + "nodeType": "Block", + "src": "45537:57:1", + "statements": [ + { + "expression": { + "id": 2508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "45551:8:1", + "subExpression": { + "id": 2507, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45551:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2509, + "nodeType": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "expression": { + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2510, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45581:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45573:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2513, + "nodeType": "ExpressionStatement", + "src": "45573:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2504, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45526:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45534:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45526:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2515, + "nodeType": "WhileStatement", + "src": "45519:75:1" + }, + { + "assignments": [ + 2517 + ], + "declarations": [ + { + "constant": false, + "id": 2517, + "mutability": "mutable", + "name": "buffer", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45603:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2516, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2522, + "initialValue": { + "arguments": [ + { + "id": 2520, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45635:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "45625:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2518, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45629:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45625:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "assignments": [ + 2524 + ], + "declarations": [ + { + "constant": false, + "id": 2524, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45652:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45652:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2528, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2525, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45668:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45677:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "45668:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "expression": { + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2529, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45688:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2530, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45695:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45688:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2532, + "nodeType": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "body": { + "id": 2557, + "nodeType": "Block", + "src": "45728:96:1", + "statements": [ + { + "expression": { + "id": 2551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2536, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45742:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2539, + "indexExpression": { + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "45749:7:1", + "subExpression": { + "id": 2537, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2524, + "src": "45749:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "45742:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3438", + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45773:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2545, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45778:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3130", + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45785:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45778:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45773:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45767:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2542, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "45767:5:1", + "typeDescriptions": {} + } + }, + "id": 2549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45767:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 2540, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "45760:6:1", + "typeDescriptions": {} + } + }, + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45760:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "45742:47:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2552, + "nodeType": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "expression": { + "id": 2555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2553, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45803:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45811:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45803:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2556, + "nodeType": "ExpressionStatement", + "src": "45803:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2533, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45717:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45725:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45717:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2558, + "nodeType": "WhileStatement", + "src": "45710:114:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2561, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45847:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45840:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2559, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45840:6:1", + "typeDescriptions": {} + } + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45840:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2489, + "id": 2563, + "nodeType": "Return", + "src": "45833:21:1" + } + ] + }, + "documentation": { + "id": 2483, + "nodeType": "StructuredDocumentation", + "src": "45049:82:1", + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2485, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45154:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45154:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "45153:15:1" + }, + "returnParameters": { + "id": 2489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2488, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45192:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2487, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45192:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "45191:15:1" + }, + "scope": 2566, + "src": "45136:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "45027:836:1" + }, + { + "id": 2567, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "45922:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2569, + "name": "Context", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 530, + "src": "46099:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 2570, + "nodeType": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "baseName": { + "id": 2571, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 781, + "src": "46108:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$781", + "typeString": "contract ERC165" + } + }, + "id": 2572, + "nodeType": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "baseName": { + "id": 2573, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "46116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 2574, + "nodeType": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "baseName": { + "id": 2575, + "name": "IERC721Metadata", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 680, + "src": "46125:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Metadata_$680", + "typeString": "contract IERC721Metadata" + } + }, + "id": 2576, + "nodeType": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "baseName": { + "id": 2577, + "name": "IERC721Enumerable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 709, + "src": "46142:17:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Enumerable_$709", + "typeString": "contract IERC721Enumerable" + } + }, + "id": 2578, + "nodeType": "InheritanceSpecifier", + "src": "46142:17:1" + } + ], + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "documentation": { + "id": 2568, + "nodeType": "StructuredDocumentation", + "src": "45955:124:1", + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": true, + "id": 3498, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2581, + "libraryName": { + "id": 2579, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1135, + "src": "46172:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$1135", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "46166:27:1", + "typeName": { + "id": 2580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46185:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 2584, + "libraryName": { + "id": 2582, + "name": "Address", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1430, + "src": "46204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + }, + "nodeType": "UsingForDirective", + "src": "46198:26:1", + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46216:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 2587, + "libraryName": { + "id": 2585, + "name": "EnumerableSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1921, + "src": "46235:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableSet_$1921", + "typeString": "library EnumerableSet" + } + }, + "nodeType": "UsingForDirective", + "src": "46229:46:1", + "typeName": { + "id": 2586, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46253:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + { + "id": 2590, + "libraryName": { + "id": 2588, + "name": "EnumerableMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2480, + "src": "46286:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableMap_$2480", + "typeString": "library EnumerableMap" + } + }, + "nodeType": "UsingForDirective", + "src": "46280:55:1", + "typeName": { + "id": 2589, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46304:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + } + }, + { + "id": 2593, + "libraryName": { + "id": 2591, + "name": "Strings", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2566, + "src": "46346:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Strings_$2566", + "typeString": "library Strings" + } + }, + "nodeType": "UsingForDirective", + "src": "46340:26:1", + "typeName": { + "id": 2592, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46358:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 2596, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46544:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2594, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "46544:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783135306237613032", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46587:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_353073666_by_1", + "typeString": "int_const 353073666" + }, + "value": "0x150b7a02" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2600, + "mutability": "mutable", + "name": "_holderTokens", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46681:64:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "typeName": { + "id": 2599, + "keyType": { + "id": 2597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "46681:42:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "valueType": { + "id": 2598, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46701:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2602, + "mutability": "mutable", + "name": "_tokenOwners", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46809:51:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2601, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46809:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2606, + "mutability": "mutable", + "name": "_tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46916:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 2605, + "keyType": { + "id": 2603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46925:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "46916:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 2604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46936:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2612, + "mutability": "mutable", + "name": "_operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47023:73:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 2611, + "keyType": { + "id": 2607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47023:46:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 2610, + "keyType": { + "id": 2608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47043:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2609, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "47063:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2614, + "mutability": "mutable", + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47121:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2613, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47121:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2616, + "mutability": "mutable", + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47168:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47168:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2620, + "mutability": "mutable", + "name": "_tokenURIs", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47236:46:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 2619, + "keyType": { + "id": 2617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "47245:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "47236:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 2618, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47256:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2622, + "mutability": "mutable", + "name": "_baseURI", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47305:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2621, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47305:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2625, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48204:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2623, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48204:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783830616335386364", + "id": 2624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48251:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2628, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48527:66:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2626, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48527:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783562356531333966", + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1532892063_by_1", + "typeString": "int_const 1532892063" + }, + "value": "0x5b5e139f" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2631, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48898:68:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2629, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783738306539643633", + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48956:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2014223715_by_1", + "typeString": "int_const 2014223715" + }, + "value": "0x780e9d63" + }, + "visibility": "private" + }, + { + "body": { + "id": 2659, + "nodeType": "Block", + "src": "49143:305:1", + "statements": [ + { + "expression": { + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2639, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "49153:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2640, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "49161:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49153:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2642, + "nodeType": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "expression": { + "id": 2645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2643, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "49176:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2644, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2636, + "src": "49186:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49176:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2646, + "nodeType": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2648, + "name": "_INTERFACE_ID_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "49300:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2647, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49281:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49281:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2650, + "nodeType": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2652, + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "49350:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2651, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49331:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49331:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2654, + "nodeType": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2656, + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2631, + "src": "49409:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2655, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49390:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49390:51:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2658, + "nodeType": "ExpressionStatement", + "src": "49390:51:1" + } + ] + }, + "documentation": { + "id": 2632, + "nodeType": "StructuredDocumentation", + "src": "48973:108:1", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2660, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2634, + "mutability": "mutable", + "name": "name_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49099:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2633, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49099:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2636, + "mutability": "mutable", + "name": "symbol_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49120:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2635, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49120:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "49098:44:1" + }, + "returnParameters": { + "id": 2638, + "nodeType": "ParameterList", + "parameters": [], + "src": "49143:0:1" + }, + "scope": 3498, + "src": "49086:362:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 580 + ], + "body": { + "id": 2685, + "nodeType": "Block", + "src": "49588:137:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2670, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49606:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49623:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "49615:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49615:7:1", + "typeDescriptions": {} + } + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49615:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "49606:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49627:44:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + }, + "value": "ERC721: balance query for the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "id": 2669, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "49598:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49598:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2678, + "nodeType": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 2679, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "49689:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2681, + "indexExpression": { + "id": 2680, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49703:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "49689:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2682, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "49689:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + } + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49689:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2668, + "id": 2684, + "nodeType": "Return", + "src": "49682:36:1" + } + ] + }, + "documentation": { + "id": 2661, + "nodeType": "StructuredDocumentation", + "src": "49454:48:1", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 2686, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2665, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49561:8:1" + }, + "parameters": { + "id": 2664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2663, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49526:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49526:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49525:15:1" + }, + "returnParameters": { + "id": 2668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2667, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49579:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49579:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49578:9:1" + }, + "scope": 3498, + "src": "49507:218:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 588 + ], + "body": { + "id": 2701, + "nodeType": "Block", + "src": "49863:94:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2697, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "49897:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49906:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + }, + "value": "ERC721: owner query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "expression": { + "id": 2695, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "49880:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2696, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 2479, + "src": "49880:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + } + }, + "id": 2699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49880:70:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2694, + "id": 2700, + "nodeType": "Return", + "src": "49873:77:1" + } + ] + }, + "documentation": { + "id": 2687, + "nodeType": "StructuredDocumentation", + "src": "49731:46:1", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 2702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2691, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49836:8:1" + }, + "parameters": { + "id": 2690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2689, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49799:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49799:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49798:17:1" + }, + "returnParameters": { + "id": 2694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49854:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49854:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49853:9:1" + }, + "scope": 3498, + "src": "49782:175:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 665 + ], + "body": { + "id": 2711, + "nodeType": "Block", + "src": "50088:29:1", + "statements": [ + { + "expression": { + "id": 2709, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "50105:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2708, + "id": 2710, + "nodeType": "Return", + "src": "50098:12:1" + } + ] + }, + "documentation": { + "id": 2703, + "nodeType": "StructuredDocumentation", + "src": "49963:51:1", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 2712, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2705, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50055:8:1" + }, + "parameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [], + "src": "50032:2:1" + }, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2707, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2712, + "src": "50073:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2706, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50073:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50072:15:1" + }, + "scope": 3498, + "src": "50019:98:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 671 + ], + "body": { + "id": 2721, + "nodeType": "Block", + "src": "50252:31:1", + "statements": [ + { + "expression": { + "id": 2719, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "50269:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2718, + "id": 2720, + "nodeType": "Return", + "src": "50262:14:1" + } + ] + }, + "documentation": { + "id": 2713, + "nodeType": "StructuredDocumentation", + "src": "50123:53:1", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 2722, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2715, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50219:8:1" + }, + "parameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [], + "src": "50196:2:1" + }, + "returnParameters": { + "id": 2718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2717, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2722, + "src": "50237:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2716, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50237:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50236:15:1" + }, + "scope": 3498, + "src": "50181:102:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 679 + ], + "body": { + "id": 2789, + "nodeType": "Block", + "src": "50437:688:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2733, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50463:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2732, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "50455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50455:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50473:49:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + }, + "value": "ERC721Metadata: URI query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "id": 2731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "50447:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50447:76:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "assignments": [ + 2739 + ], + "declarations": [ + { + "constant": false, + "id": 2739, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50534:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50534:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2743, + "initialValue": { + "baseExpression": { + "id": 2740, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "50560:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 2742, + "indexExpression": { + "id": 2741, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50571:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "50560:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "assignments": [ + 2745 + ], + "declarations": [ + { + "constant": false, + "id": 2745, + "mutability": "mutable", + "name": "base", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50589:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50589:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2748, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2746, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2799, + "src": "50610:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 2747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50610:9:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2751, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50698:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50692:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50692:5:1", + "typeDescriptions": {} + } + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50692:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50692:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50714:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50692:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2759, + "nodeType": "IfStatement", + "src": "50688:70:1", + "trueBody": { + "id": 2758, + "nodeType": "Block", + "src": "50717:41:1", + "statements": [ + { + "expression": { + "id": 2756, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50738:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2757, + "nodeType": "Return", + "src": "50731:16:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2762, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50860:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2760, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50860:5:1", + "typeDescriptions": {} + } + }, + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50860:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50860:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50886:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50860:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2777, + "nodeType": "IfStatement", + "src": "50856:106:1", + "trueBody": { + "id": 2776, + "nodeType": "Block", + "src": "50889:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2771, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50934:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 2772, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50940:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2769, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "50917:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "50917:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50917:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50910:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2767, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50910:6:1", + "typeDescriptions": {} + } + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50910:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2775, + "nodeType": "Return", + "src": "50903:48:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2782, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "51092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2783, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "51098:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2565, + "src": "51098:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 2785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51098:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2780, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "51075:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "51075:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51075:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "51068:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2778, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51068:6:1", + "typeDescriptions": {} + } + }, + "id": 2787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51068:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2788, + "nodeType": "Return", + "src": "51061:57:1" + } + ] + }, + "documentation": { + "id": 2723, + "nodeType": "StructuredDocumentation", + "src": "50289:55:1", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 2790, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50404:8:1" + }, + "parameters": { + "id": 2726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2725, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50367:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50367:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "50366:17:1" + }, + "returnParameters": { + "id": 2730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50422:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2728, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50422:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50421:15:1" + }, + "scope": 3498, + "src": "50349:776:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2798, + "nodeType": "Block", + "src": "51420:32:1", + "statements": [ + { + "expression": { + "id": 2796, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "51437:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2795, + "id": 2797, + "nodeType": "Return", + "src": "51430:15:1" + } + ] + }, + "documentation": { + "id": 2791, + "nodeType": "StructuredDocumentation", + "src": "51131:221:1", + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "functionSelector": "6c0360eb", + "id": 2799, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "baseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2792, + "nodeType": "ParameterList", + "parameters": [], + "src": "51373:2:1" + }, + "returnParameters": { + "id": 2795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2799, + "src": "51405:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2793, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51405:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "51404:15:1" + }, + "scope": 3498, + "src": "51357:95:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 700 + ], + "body": { + "id": 2817, + "nodeType": "Block", + "src": "51637:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2814, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "51678:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 2810, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "51654:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2812, + "indexExpression": { + "id": 2811, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2802, + "src": "51668:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "51654:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2813, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 1920, + "src": "51654:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51654:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2809, + "id": 2816, + "nodeType": "Return", + "src": "51647:37:1" + } + ] + }, + "documentation": { + "id": 2800, + "nodeType": "StructuredDocumentation", + "src": "51458:68:1", + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "functionSelector": "2f745c59", + "id": 2818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2806, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51610:8:1" + }, + "parameters": { + "id": 2805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2802, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51560:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "51560:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2804, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51575:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2803, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51575:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51559:30:1" + }, + "returnParameters": { + "id": 2809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2808, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51628:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51628:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51627:9:1" + }, + "scope": 3498, + "src": "51531:160:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 690 + ], + "body": { + "id": 2829, + "nodeType": "Block", + "src": "51832:138:1", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2825, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "51942:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 2340, + "src": "51942:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51942:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2824, + "id": 2828, + "nodeType": "Return", + "src": "51935:28:1" + } + ] + }, + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "51697:60:1", + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 2830, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2821, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51805:8:1" + }, + "parameters": { + "id": 2820, + "nodeType": "ParameterList", + "parameters": [], + "src": "51782:2:1" + }, + "returnParameters": { + "id": 2824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2823, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2830, + "src": "51823:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51823:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51822:9:1" + }, + "scope": 3498, + "src": "51762:208:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 708 + ], + "body": { + "id": 2848, + "nodeType": "Block", + "src": "52126:85:1", + "statements": [ + { + "assignments": [ + 2840, + null + ], + "declarations": [ + { + "constant": false, + "id": 2840, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2848, + "src": "52137:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2839, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52137:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2845, + "initialValue": { + "arguments": [ + { + "id": 2843, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2833, + "src": "52174:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2841, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "52158:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 2379, + "src": "52158:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + } + }, + "id": 2844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52158:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$", + "typeString": "tuple(uint256,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "expression": { + "id": 2846, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2840, + "src": "52197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2838, + "id": 2847, + "nodeType": "Return", + "src": "52190:14:1" + } + ] + }, + "documentation": { + "id": 2831, + "nodeType": "StructuredDocumentation", + "src": "51976:61:1", + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "functionSelector": "4f6ccce7", + "id": 2849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2835, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52099:8:1" + }, + "parameters": { + "id": 2834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2833, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52064:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52064:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52063:15:1" + }, + "returnParameters": { + "id": 2838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2837, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52117:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52116:9:1" + }, + "scope": 3498, + "src": "52042:169:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 616 + ], + "body": { + "id": 2892, + "nodeType": "Block", + "src": "52338:325:1", + "statements": [ + { + "assignments": [ + 2859 + ], + "declarations": [ + { + "constant": false, + "id": 2859, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2892, + "src": "52348:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52348:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2864, + "initialValue": { + "arguments": [ + { + "id": 2862, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52379:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2860, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52364:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "52364:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52364:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2866, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52405:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2867, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52411:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52405:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "id": 2869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52418:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + }, + "value": "ERC721: approval to current owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "id": 2865, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52397:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52397:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2871, + "nodeType": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2873, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52473:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52473:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2875, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52489:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52473:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 2879, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52522:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2880, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52529:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52529:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 2877, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52498:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "52498:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52498:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "52473:69:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52556:58:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + }, + "value": "ERC721: approve caller is not owner nor approved for all" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "id": 2872, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52465:159:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2886, + "nodeType": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2888, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52644:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2889, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52648:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2887, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "52635:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52635:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2891, + "nodeType": "ExpressionStatement", + "src": "52635:21:1" + } + ] + }, + "documentation": { + "id": 2850, + "nodeType": "StructuredDocumentation", + "src": "52217:46:1", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 2893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2856, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52329:8:1" + }, + "parameters": { + "id": 2855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2852, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52285:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52285:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2854, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52297:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52284:29:1" + }, + "returnParameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [], + "src": "52338:0:1" + }, + "scope": 3498, + "src": "52268:395:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 624 + ], + "body": { + "id": 2913, + "nodeType": "Block", + "src": "52809:132:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2904, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2903, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "52827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52827:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52845:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + }, + "value": "ERC721: approved query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "id": 2902, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52819:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2908, + "nodeType": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "expression": { + "baseExpression": { + "id": 2909, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "52910:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 2911, + "indexExpression": { + "id": 2910, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52926:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "52910:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2901, + "id": 2912, + "nodeType": "Return", + "src": "52903:31:1" + } + ] + }, + "documentation": { + "id": 2894, + "nodeType": "StructuredDocumentation", + "src": "52669:50:1", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 2914, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2898, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52782:8:1" + }, + "parameters": { + "id": 2897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2896, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52745:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52744:17:1" + }, + "returnParameters": { + "id": 2901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2900, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2899, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "52799:9:1" + }, + "scope": 3498, + "src": "52724:217:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 632 + ], + "body": { + "id": 2947, + "nodeType": "Block", + "src": "53092:206:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2924, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53110:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2925, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53122:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53122:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "53110:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "id": 2928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53136:27:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + }, + "value": "ERC721: approve to caller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "id": 2923, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53102:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53102:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2930, + "nodeType": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "expression": { + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 2931, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53175:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2935, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2932, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53194:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53194:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53175:32:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2936, + "indexExpression": { + "id": 2934, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53208:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "53175:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2937, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53220:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "53175:53:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2941, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53258:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53258:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2943, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53272:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2944, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53282:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2940, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "53243:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 2945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53243:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2946, + "nodeType": "EmitStatement", + "src": "53238:53:1" + } + ] + }, + "documentation": { + "id": 2915, + "nodeType": "StructuredDocumentation", + "src": "52947:56:1", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 2948, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2921, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53083:8:1" + }, + "parameters": { + "id": 2920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2917, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53035:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53035:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2919, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53053:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2918, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53053:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53034:33:1" + }, + "returnParameters": { + "id": 2922, + "nodeType": "ParameterList", + "parameters": [], + "src": "53092:0:1" + }, + "scope": 3498, + "src": "53008:290:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 642 + ], + "body": { + "id": 2965, + "nodeType": "Block", + "src": "53467:59:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 2959, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53484:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2961, + "indexExpression": { + "id": 2960, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "53503:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2963, + "indexExpression": { + "id": 2962, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "53510:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2958, + "id": 2964, + "nodeType": "Return", + "src": "53477:42:1" + } + ] + }, + "documentation": { + "id": 2949, + "nodeType": "StructuredDocumentation", + "src": "53304:55:1", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 2966, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2955, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53443:8:1" + }, + "parameters": { + "id": 2954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53390:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53390:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2953, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53405:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53405:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "53389:33:1" + }, + "returnParameters": { + "id": 2958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2957, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2956, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53460:6:1" + }, + "scope": 3498, + "src": "53364:162:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 608 + ], + "body": { + "id": 2992, + "nodeType": "Block", + "src": "53677:211:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2979, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53766:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53766:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2981, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53780:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2978, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "53747:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53747:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53790:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 2977, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53739:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53739:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2985, + "nodeType": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2987, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2969, + "src": "53863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2988, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2971, + "src": "53869:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2989, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53873:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2986, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "53853:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53853:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2991, + "nodeType": "ExpressionStatement", + "src": "53853:28:1" + } + ] + }, + "documentation": { + "id": 2967, + "nodeType": "StructuredDocumentation", + "src": "53532:51:1", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 2993, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2975, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53668:8:1" + }, + "parameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2969, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53610:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53610:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2971, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53624:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53624:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2973, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53636:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "53636:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53609:43:1" + }, + "returnParameters": { + "id": 2976, + "nodeType": "ParameterList", + "parameters": [], + "src": "53677:0:1" + }, + "scope": 3498, + "src": "53588:300:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 598 + ], + "body": { + "id": 3011, + "nodeType": "Block", + "src": "54047:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3005, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2996, + "src": "54074:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3006, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2998, + "src": "54080:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3007, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3000, + "src": "54084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54093:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3004, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "src": "54057:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54057:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3010, + "nodeType": "ExpressionStatement", + "src": "54057:39:1" + } + ] + }, + "documentation": { + "id": 2994, + "nodeType": "StructuredDocumentation", + "src": "53894:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 3012, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3002, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54038:8:1" + }, + "parameters": { + "id": 3001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2996, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53980:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53980:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2998, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53994:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2997, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53994:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3000, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "54006:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54006:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53979:43:1" + }, + "returnParameters": { + "id": 3003, + "nodeType": "ParameterList", + "parameters": [], + "src": "54047:0:1" + }, + "scope": 3498, + "src": "53954:149:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 654 + ], + "body": { + "id": 3041, + "nodeType": "Block", + "src": "54282:169:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3027, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "54319:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54319:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3029, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3026, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "54300:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 3030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54300:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 3031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54343:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 3025, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "54292:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54292:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3033, + "nodeType": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3035, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3015, + "src": "54419:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3036, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3017, + "src": "54425:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3037, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3038, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3021, + "src": "54438:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3034, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3071, + "src": "54405:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54405:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3040, + "nodeType": "ExpressionStatement", + "src": "54405:39:1" + } + ] + }, + "documentation": { + "id": 3013, + "nodeType": "StructuredDocumentation", + "src": "54109:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 3042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3023, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54273:8:1" + }, + "parameters": { + "id": 3022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3015, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54195:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54195:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3017, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54209:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3016, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54209:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3019, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54221:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3021, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54238:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3020, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "54238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "54194:63:1" + }, + "returnParameters": { + "id": 3024, + "nodeType": "ParameterList", + "parameters": [], + "src": "54282:0:1" + }, + "scope": 3498, + "src": "54169:282:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 3070, + "nodeType": "Block", + "src": "55416:166:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3055, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55436:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55442:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3057, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55446:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3054, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "55426:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55426:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3059, + "nodeType": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3062, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55495:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3063, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55501:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3064, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55505:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3065, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3051, + "src": "55514:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3061, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "55472:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55472:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55522:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3060, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "55464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55464:111:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3069, + "nodeType": "ExpressionStatement", + "src": "55464:111:1" + } + ] + }, + "documentation": { + "id": 3043, + "nodeType": "StructuredDocumentation", + "src": "54457:851:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3071, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3045, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55336:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55336:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3047, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55350:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55350:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3049, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55362:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55362:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3051, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55379:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3050, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "55379:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "55335:63:1" + }, + "returnParameters": { + "id": 3053, + "nodeType": "ParameterList", + "parameters": [], + "src": "55416:0:1" + }, + "scope": 3498, + "src": "55313:269:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3084, + "nodeType": "Block", + "src": "55956:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3081, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "55995:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3079, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "55973:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3080, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 2326, + "src": "55973:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + } + }, + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55973:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3078, + "id": 3083, + "nodeType": "Return", + "src": "55966:37:1" + } + ] + }, + "documentation": { + "id": 3072, + "nodeType": "StructuredDocumentation", + "src": "55588:292:1", + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3085, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3074, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55902:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3073, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55902:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "55901:17:1" + }, + "returnParameters": { + "id": 3078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3077, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55950:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3076, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "55950:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "55949:6:1" + }, + "scope": 3498, + "src": "55885:125:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3126, + "nodeType": "Block", + "src": "56267:252:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3097, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56293:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3096, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "56285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56285:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 3099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56303:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + }, + "value": "ERC721: operator query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "id": 3095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "56277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56277:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3101, + "nodeType": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "assignments": [ + 3103 + ], + "declarations": [ + { + "constant": false, + "id": 3103, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3126, + "src": "56360:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56360:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3108, + "initialValue": { + "arguments": [ + { + "id": 3106, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56391:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3104, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56376:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "56376:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56376:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3109, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56417:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3110, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56428:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56417:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3113, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56449:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3112, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "56437:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56437:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3115, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56437:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:51:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 3120, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56496:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3121, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3118, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "56472:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56472:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:94:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3124, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56416:96:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3094, + "id": 3125, + "nodeType": "Return", + "src": "56409:103:1" + } + ] + }, + "documentation": { + "id": 3086, + "nodeType": "StructuredDocumentation", + "src": "56016:147:1", + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3088, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56196:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56196:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3090, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56213:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56213:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56195:34:1" + }, + "returnParameters": { + "id": 3094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3093, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56261:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3092, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "56261:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "56260:6:1" + }, + "scope": 3498, + "src": "56168:351:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3141, + "nodeType": "Block", + "src": "56915:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3136, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3130, + "src": "56935:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3137, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3132, + "src": "56939:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56948:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3135, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "src": "56925:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 3139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56925:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3140, + "nodeType": "ExpressionStatement", + "src": "56925:26:1" + } + ] + }, + "documentation": { + "id": 3128, + "nodeType": "StructuredDocumentation", + "src": "56525:320:1", + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3142, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3130, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56869:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3132, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56881:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56881:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56868:29:1" + }, + "returnParameters": { + "id": 3134, + "nodeType": "ParameterList", + "parameters": [], + "src": "56915:0:1" + }, + "scope": 3498, + "src": "56850:108:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3170, + "nodeType": "Block", + "src": "57264:162:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3153, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57280:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3154, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3152, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "57274:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57274:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3156, + "nodeType": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57341:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57333:7:1", + "typeDescriptions": {} + } + }, + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57333:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3163, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57345:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3164, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3165, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "57358:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3158, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "57310:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57310:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57366:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3157, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57302:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57302:117:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3169, + "nodeType": "ExpressionStatement", + "src": "57302:117:1" + } + ] + }, + "documentation": { + "id": 3143, + "nodeType": "StructuredDocumentation", + "src": "56964:210:1", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3171, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3145, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57198:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3144, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57198:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3147, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57210:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57210:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3149, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57227:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3148, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "57227:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "57197:49:1" + }, + "returnParameters": { + "id": 3151, + "nodeType": "ParameterList", + "parameters": [], + "src": "57264:0:1" + }, + "scope": 3498, + "src": "57179:247:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3229, + "nodeType": "Block", + "src": "57809:332:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3180, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57827:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57841:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57833:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57833:7:1", + "typeDescriptions": {} + } + }, + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57833:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "57827:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57845:34:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + }, + "value": "ERC721: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "id": 3179, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57819:61:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "57898:17:1", + "subExpression": { + "arguments": [ + { + "id": 3191, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57907:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3190, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "57899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57899:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57917:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + }, + "value": "ERC721: token already minted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "id": 3189, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57890:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57890:58:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3196, + "nodeType": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57988:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57980:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57980:7:1", + "typeDescriptions": {} + } + }, + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57980:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3202, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57992:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3203, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3197, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "57959:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57959:45:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3205, + "nodeType": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3210, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58037:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3206, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58015:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3208, + "indexExpression": { + "id": 3207, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58029:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58015:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3209, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "58015:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58015:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3212, + "nodeType": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3216, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58073:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3217, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58082:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3213, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58056:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3215, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "58056:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58056:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3219, + "nodeType": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58118:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58110:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58110:7:1", + "typeDescriptions": {} + } + }, + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58110:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3225, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58122:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3226, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3220, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58101:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58101:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3228, + "nodeType": "EmitStatement", + "src": "58096:38:1" + } + ] + }, + "documentation": { + "id": 3172, + "nodeType": "StructuredDocumentation", + "src": "57432:311:1", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3174, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57763:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57763:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3176, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57775:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57775:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "57762:29:1" + }, + "returnParameters": { + "id": 3178, + "nodeType": "ParameterList", + "parameters": [], + "src": "57809:0:1" + }, + "scope": 3498, + "src": "57748:393:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3298, + "nodeType": "Block", + "src": "58407:478:1", + "statements": [ + { + "assignments": [ + 3237 + ], + "declarations": [ + { + "constant": false, + "id": 3237, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "58417:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58417:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3242, + "initialValue": { + "arguments": [ + { + "id": 3240, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58448:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3238, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "58433:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "58433:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58433:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3244, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58506:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58521:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58513:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58513:7:1", + "typeDescriptions": {} + } + }, + "id": 3248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58513:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3249, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58525:7:1", + "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": 3243, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "58485:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58485:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3251, + "nodeType": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58588:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58580:7:1", + "typeDescriptions": {} + } + }, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58580:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3257, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58592:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3252, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "58571:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58571:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3259, + "nodeType": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 3262, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58656:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3264, + "indexExpression": { + "id": 3263, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58667:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58656:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 3261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58650:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3260, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "58650:5:1", + "typeDescriptions": {} + } + }, + "id": 3265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58650:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes storage pointer" + } + }, + "id": 3266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "58650:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 3267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58687:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "58650:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3275, + "nodeType": "IfStatement", + "src": "58646:95:1", + "trueBody": { + "id": 3274, + "nodeType": "Block", + "src": "58690:51:1", + "statements": [ + { + "expression": { + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "58704:26:1", + "subExpression": { + "baseExpression": { + "id": 3269, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58711:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3271, + "indexExpression": { + "id": 3270, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58722:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "58711:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3273, + "nodeType": "ExpressionStatement", + "src": "58704:26:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 3280, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58779:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3276, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58751:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3278, + "indexExpression": { + "id": 3277, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58765:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58751:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3279, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "58751:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58751:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3282, + "nodeType": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3286, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58818:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3283, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58798:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 2306, + "src": "58798:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + } + }, + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58798:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3288, + "nodeType": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3290, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58851:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58866:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58858:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58858:7:1", + "typeDescriptions": {} + } + }, + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58858:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3295, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58870:7:1", + "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": 3289, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58842:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58842:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3297, + "nodeType": "EmitStatement", + "src": "58837:41:1" + } + ] + }, + "documentation": { + "id": 3231, + "nodeType": "StructuredDocumentation", + "src": "58147:206:1", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3299, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3233, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3299, + "src": "58373:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "58372:17:1" + }, + "returnParameters": { + "id": 3235, + "nodeType": "ParameterList", + "parameters": [], + "src": "58407:0:1" + }, + "scope": 3498, + "src": "58358:527:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3370, + "nodeType": "Block", + "src": "59288:505:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3312, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59321:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3310, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "59306:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "59306:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59306:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3314, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59333:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "59306:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59339:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + }, + "value": "ERC721: transfer of token that is not own" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "id": 3309, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59298:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59298:85:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3318, + "nodeType": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3320, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59419:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59433:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59425:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59425:7:1", + "typeDescriptions": {} + } + }, + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59425:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "59419:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59437:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + }, + "value": "ERC721: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "id": 3319, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59411:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59411:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3328, + "nodeType": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3330, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59508:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3331, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59514:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3332, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59518:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3329, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "59487:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59487:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3334, + "nodeType": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59605:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59597:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59597:7:1", + "typeDescriptions": {} + } + }, + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59597:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3340, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59609:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3335, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "59588:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59588:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3342, + "nodeType": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3347, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59655:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3343, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59628:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3345, + "indexExpression": { + "id": 3344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59642:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59628:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3346, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "59628:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59628:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3354, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59695:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3350, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3352, + "indexExpression": { + "id": 3351, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59687:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59673:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3353, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "59673:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59673:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3356, + "nodeType": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3360, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59731:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3361, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59740:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3357, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "59714:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "59714:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59714:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3363, + "nodeType": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3365, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59768:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3366, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59774:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3367, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59778:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3364, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "59759:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59759:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3369, + "nodeType": "EmitStatement", + "src": "59754:32:1" + } + ] + }, + "documentation": { + "id": 3300, + "nodeType": "StructuredDocumentation", + "src": "58891:313:1", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3302, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59228:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3304, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59242:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59242:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3306, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59254:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3305, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59254:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "59227:43:1" + }, + "returnParameters": { + "id": 3308, + "nodeType": "ParameterList", + "parameters": [], + "src": "59288:0:1" + }, + "scope": 3498, + "src": "59209:584:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3392, + "nodeType": "Block", + "src": "60021:131:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3381, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60047:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3380, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "60039:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60039:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "id": 3383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "60057:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + }, + "value": "ERC721Metadata: URI set of nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "id": 3379, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "60031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60031:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3385, + "nodeType": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "expression": { + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3386, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "60114:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3388, + "indexExpression": { + "id": 3387, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60125:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "60114:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3389, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "60136:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60114:31:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3391, + "nodeType": "ExpressionStatement", + "src": "60114:31:1" + } + ] + }, + "documentation": { + "id": 3372, + "nodeType": "StructuredDocumentation", + "src": "59799:136:1", + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setTokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3374, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59962:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59962:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3376, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59979:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3375, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "59979:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "59961:42:1" + }, + "returnParameters": { + "id": 3378, + "nodeType": "ParameterList", + "parameters": [], + "src": "60021:0:1" + }, + "scope": 3498, + "src": "59940:212:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3403, + "nodeType": "Block", + "src": "60437:36:1", + "statements": [ + { + "expression": { + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3399, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "60447:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3400, + "name": "baseURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "60458:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60447:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3402, + "nodeType": "ExpressionStatement", + "src": "60447:19:1" + } + ] + }, + "documentation": { + "id": 3394, + "nodeType": "StructuredDocumentation", + "src": "60158:212:1", + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3404, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setBaseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3396, + "mutability": "mutable", + "name": "baseURI_", + "nodeType": "VariableDeclaration", + "scope": 3404, + "src": "60396:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3395, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "60396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "60395:24:1" + }, + "returnParameters": { + "id": 3398, + "nodeType": "ParameterList", + "parameters": [], + "src": "60437:0:1" + }, + "scope": 3498, + "src": "60375:98:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3461, + "nodeType": "Block", + "src": "61156:459:1", + "statements": [ + { + "condition": { + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "61170:16:1", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3418, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61171:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 1154, + "src": "61171:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61171:15:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3425, + "nodeType": "IfStatement", + "src": "61166:58:1", + "trueBody": { + "id": 3424, + "nodeType": "Block", + "src": "61188:36:1", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 3422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61209:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3417, + "id": 3423, + "nodeType": "Return", + "src": "61202:11:1" + } + ] + } + }, + { + "assignments": [ + 3427 + ], + "declarations": [ + { + "constant": false, + "id": 3427, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61233:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3426, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61233:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3445, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 3433, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61327:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3432, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "61311:15:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$726_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 3434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61311:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$726", + "typeString": "contract IERC721Receiver" + } + }, + "id": 3435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 725, + "src": "61311:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "61311:45:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3437, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "61370:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61370:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3439, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "61396:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3440, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "61414:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3441, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3413, + "src": "61435:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3430, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61275:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "61275:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 3442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61275:175:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61452:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "expression": { + "id": 3428, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61259:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 1225, + "src": "61259:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 3444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61259:246:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "assignments": [ + 3447 + ], + "declarations": [ + { + "constant": false, + "id": 3447, + "mutability": "mutable", + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61515:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3446, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61515:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "id": 3455, + "initialValue": { + "arguments": [ + { + "id": 3450, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3427, + "src": "61542:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 3452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "61555:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 3451, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61555:6:1", + "typeDescriptions": {} + } + } + ], + "id": 3453, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61554:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "expression": { + "id": 3448, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61531:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "61531:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61531:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3456, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "61581:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3457, + "name": "_ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "61591:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "61581:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3459, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61580:28:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3417, + "id": 3460, + "nodeType": "Return", + "src": "61573:35:1" + } + ] + }, + "documentation": { + "id": 3405, + "nodeType": "StructuredDocumentation", + "src": "60479:542:1", + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3462, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3407, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61058:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61058:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3409, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61072:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61072:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3411, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61084:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3410, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3413, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61101:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3412, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61101:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "61057:63:1" + }, + "returnParameters": { + "id": 3417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3416, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61146:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3415, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "61146:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "61145:6:1" + }, + "scope": 3498, + "src": "61026:589:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3485, + "nodeType": "Block", + "src": "61791:125:1", + "statements": [ + { + "expression": { + "id": 3474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3470, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "61801:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 3472, + "indexExpression": { + "id": 3471, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61817:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "61801:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3473, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61828:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "61801:29:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3475, + "nodeType": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 3479, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61869:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3477, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "61854:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "61854:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61854:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3481, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61879:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3482, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3476, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "61845:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61845:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3484, + "nodeType": "EmitStatement", + "src": "61840:51:1" + } + ] + }, + "documentation": { + "id": 3463, + "nodeType": "StructuredDocumentation", + "src": "61621:101:1", + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3486, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3465, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61745:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61745:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3467, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61757:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61757:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "61744:29:1" + }, + "returnParameters": { + "id": 3469, + "nodeType": "ParameterList", + "parameters": [], + "src": "61791:0:1" + }, + "scope": 3498, + "src": "61727:189:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3496, + "nodeType": "Block", + "src": "62602:3:1", + "statements": [] + }, + "documentation": { + "id": 3487, + "nodeType": "StructuredDocumentation", + "src": "61922:585:1", + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3497, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3489, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62542:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62542:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3491, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62556:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62556:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3493, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62568:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "62568:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "62541:43:1" + }, + "returnParameters": { + "id": 3495, + "nodeType": "ParameterList", + "parameters": [], + "src": "62602:0:1" + }, + "scope": 3498, + "src": "62512:93:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "46080:16527:1" + } + ], + "src": "84:62524:1" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "license": "MIT" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 509, + "name": "PragmaDirective", + "src": "84:31:1" + }, + { + "attributes": { + "abstract": true, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgSender", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 510, + "name": "ParameterList", + "src": "668:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 518, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 511, + "name": "ElementaryTypeName", + "src": "702:15:1" + } + ], + "id": 512, + "name": "VariableDeclaration", + "src": "702:15:1" + } + ], + "id": 513, + "name": "ParameterList", + "src": "701:17:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 513 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 514, + "name": "Identifier", + "src": "736:3:1" + } + ], + "id": 515, + "name": "MemberAccess", + "src": "736:10:1" + } + ], + "id": 516, + "name": "Return", + "src": "729:17:1" + } + ], + "id": 517, + "name": "Block", + "src": "719:34:1" + } + ], + "id": 518, + "name": "FunctionDefinition", + "src": "649:104:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgData", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 519, + "name": "ParameterList", + "src": "776:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 529, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 520, + "name": "ElementaryTypeName", + "src": "810:5:1" + } + ], + "id": 521, + "name": "VariableDeclaration", + "src": "810:12:1" + } + ], + "id": 522, + "name": "ParameterList", + "src": "809:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "contract Context", + "value": "this" + }, + "id": 523, + "name": "Identifier", + "src": "834:4:1" + } + ], + "id": 524, + "name": "ExpressionStatement", + "src": "834:4:1" + }, + { + "attributes": { + "functionReturnParameters": 522 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "data", + "type": "bytes calldata" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 525, + "name": "Identifier", + "src": "974:3:1" + } + ], + "id": 526, + "name": "MemberAccess", + "src": "974:8:1" + } + ], + "id": 527, + "name": "Return", + "src": "967:15:1" + } + ], + "id": 528, + "name": "Block", + "src": "824:165:1" + } + ], + "id": 529, + "name": "FunctionDefinition", + "src": "759:230:1" + } + ], + "id": 530, + "name": "ContractDefinition", + "src": "617:374:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 531, + "name": "PragmaDirective", + "src": "1053:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "id": 532, + "name": "StructuredDocumentation", + "src": "1086:279:1" + }, + { + "attributes": { + "functionSelector": "01ffc9a7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 541, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "id": 533, + "name": "StructuredDocumentation", + "src": "1390:340:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 534, + "name": "ElementaryTypeName", + "src": "1762:6:1" + } + ], + "id": 535, + "name": "VariableDeclaration", + "src": "1762:18:1" + } + ], + "id": 536, + "name": "ParameterList", + "src": "1761:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 537, + "name": "ElementaryTypeName", + "src": "1805:4:1" + } + ], + "id": 538, + "name": "VariableDeclaration", + "src": "1805:4:1" + } + ], + "id": 539, + "name": "ParameterList", + "src": "1804:6:1" + } + ], + "id": 540, + "name": "FunctionDefinition", + "src": "1735:76:1" + } + ], + "id": 541, + "name": "ContractDefinition", + "src": "1366:447:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 542, + "name": "PragmaDirective", + "src": "1873:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "id": 543, + "name": "StructuredDocumentation", + "src": "1907:67:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 544, + "name": "UserDefinedTypeName", + "src": "1996:7:1" + } + ], + "id": 545, + "name": "InheritanceSpecifier", + "src": "1996:7:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Transfer" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 546, + "name": "StructuredDocumentation", + "src": "2010:88:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "from", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 547, + "name": "ElementaryTypeName", + "src": "2118:7:1" + } + ], + "id": 548, + "name": "VariableDeclaration", + "src": "2118:20:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "to", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 549, + "name": "ElementaryTypeName", + "src": "2140:7:1" + } + ], + "id": 550, + "name": "VariableDeclaration", + "src": "2140:18:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 551, + "name": "ElementaryTypeName", + "src": "2160:7:1" + } + ], + "id": 552, + "name": "VariableDeclaration", + "src": "2160:23:1" + } + ], + "id": 553, + "name": "ParameterList", + "src": "2117:67:1" + } + ], + "id": 554, + "name": "EventDefinition", + "src": "2103:82:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Approval" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 555, + "name": "StructuredDocumentation", + "src": "2191:94:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 556, + "name": "ElementaryTypeName", + "src": "2305:7:1" + } + ], + "id": 557, + "name": "VariableDeclaration", + "src": "2305:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 558, + "name": "ElementaryTypeName", + "src": "2328:7:1" + } + ], + "id": 559, + "name": "VariableDeclaration", + "src": "2328:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 560, + "name": "ElementaryTypeName", + "src": "2354:7:1" + } + ], + "id": 561, + "name": "VariableDeclaration", + "src": "2354:23:1" + } + ], + "id": 562, + "name": "ParameterList", + "src": "2304:74:1" + } + ], + "id": 563, + "name": "EventDefinition", + "src": "2290:89:1" + }, + { + "attributes": { + "anonymous": false, + "name": "ApprovalForAll" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 564, + "name": "StructuredDocumentation", + "src": "2385:117:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 565, + "name": "ElementaryTypeName", + "src": "2528:7:1" + } + ], + "id": 566, + "name": "VariableDeclaration", + "src": "2528:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 567, + "name": "ElementaryTypeName", + "src": "2551:7:1" + } + ], + "id": 568, + "name": "VariableDeclaration", + "src": "2551:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 569, + "name": "ElementaryTypeName", + "src": "2577:4:1" + } + ], + "id": 570, + "name": "VariableDeclaration", + "src": "2577:13:1" + } + ], + "id": 571, + "name": "ParameterList", + "src": "2527:64:1" + } + ], + "id": 572, + "name": "EventDefinition", + "src": "2507:85:1" + }, + { + "attributes": { + "functionSelector": "70a08231", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "id": 573, + "name": "StructuredDocumentation", + "src": "2598:76:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 574, + "name": "ElementaryTypeName", + "src": "2698:7:1" + } + ], + "id": 575, + "name": "VariableDeclaration", + "src": "2698:13:1" + } + ], + "id": 576, + "name": "ParameterList", + "src": "2697:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "balance", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 577, + "name": "ElementaryTypeName", + "src": "2736:7:1" + } + ], + "id": 578, + "name": "VariableDeclaration", + "src": "2736:15:1" + } + ], + "id": 579, + "name": "ParameterList", + "src": "2735:17:1" + } + ], + "id": 580, + "name": "FunctionDefinition", + "src": "2679:74:1" + }, + { + "attributes": { + "functionSelector": "6352211e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 581, + "name": "StructuredDocumentation", + "src": "2759:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 582, + "name": "ElementaryTypeName", + "src": "2912:7:1" + } + ], + "id": 583, + "name": "VariableDeclaration", + "src": "2912:15:1" + } + ], + "id": 584, + "name": "ParameterList", + "src": "2911:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 585, + "name": "ElementaryTypeName", + "src": "2952:7:1" + } + ], + "id": 586, + "name": "VariableDeclaration", + "src": "2952:13:1" + } + ], + "id": 587, + "name": "ParameterList", + "src": "2951:15:1" + } + ], + "id": 588, + "name": "FunctionDefinition", + "src": "2895:72:1" + }, + { + "attributes": { + "functionSelector": "42842e0e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 589, + "name": "StructuredDocumentation", + "src": "2973:690:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 590, + "name": "ElementaryTypeName", + "src": "3694:7:1" + } + ], + "id": 591, + "name": "VariableDeclaration", + "src": "3694:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 592, + "name": "ElementaryTypeName", + "src": "3708:7:1" + } + ], + "id": 593, + "name": "VariableDeclaration", + "src": "3708:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 594, + "name": "ElementaryTypeName", + "src": "3720:7:1" + } + ], + "id": 595, + "name": "VariableDeclaration", + "src": "3720:15:1" + } + ], + "id": 596, + "name": "ParameterList", + "src": "3693:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 597, + "name": "ParameterList", + "src": "3745:0:1" + } + ], + "id": 598, + "name": "FunctionDefinition", + "src": "3668:78:1" + }, + { + "attributes": { + "functionSelector": "23b872dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "id": 599, + "name": "StructuredDocumentation", + "src": "3752:504:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 600, + "name": "ElementaryTypeName", + "src": "4283:7:1" + } + ], + "id": 601, + "name": "VariableDeclaration", + "src": "4283:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 602, + "name": "ElementaryTypeName", + "src": "4297:7:1" + } + ], + "id": 603, + "name": "VariableDeclaration", + "src": "4297:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 604, + "name": "ElementaryTypeName", + "src": "4309:7:1" + } + ], + "id": 605, + "name": "VariableDeclaration", + "src": "4309:15:1" + } + ], + "id": 606, + "name": "ParameterList", + "src": "4282:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 607, + "name": "ParameterList", + "src": "4334:0:1" + } + ], + "id": 608, + "name": "FunctionDefinition", + "src": "4261:74:1" + }, + { + "attributes": { + "functionSelector": "095ea7b3", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "id": 609, + "name": "StructuredDocumentation", + "src": "4341:452:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 610, + "name": "ElementaryTypeName", + "src": "4815:7:1" + } + ], + "id": 611, + "name": "VariableDeclaration", + "src": "4815:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 612, + "name": "ElementaryTypeName", + "src": "4827:7:1" + } + ], + "id": 613, + "name": "VariableDeclaration", + "src": "4827:15:1" + } + ], + "id": 614, + "name": "ParameterList", + "src": "4814:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 615, + "name": "ParameterList", + "src": "4852:0:1" + } + ], + "id": 616, + "name": "FunctionDefinition", + "src": "4798:55:1" + }, + { + "attributes": { + "functionSelector": "081812fc", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 617, + "name": "StructuredDocumentation", + "src": "4859:139:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 618, + "name": "ElementaryTypeName", + "src": "5024:7:1" + } + ], + "id": 619, + "name": "VariableDeclaration", + "src": "5024:15:1" + } + ], + "id": 620, + "name": "ParameterList", + "src": "5023:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 621, + "name": "ElementaryTypeName", + "src": "5064:7:1" + } + ], + "id": 622, + "name": "VariableDeclaration", + "src": "5064:16:1" + } + ], + "id": 623, + "name": "ParameterList", + "src": "5063:18:1" + } + ], + "id": 624, + "name": "FunctionDefinition", + "src": "5003:79:1" + }, + { + "attributes": { + "functionSelector": "a22cb465", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "id": 625, + "name": "StructuredDocumentation", + "src": "5088:309:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 626, + "name": "ElementaryTypeName", + "src": "5429:7:1" + } + ], + "id": 627, + "name": "VariableDeclaration", + "src": "5429:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_approved", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 628, + "name": "ElementaryTypeName", + "src": "5447:4:1" + } + ], + "id": 629, + "name": "VariableDeclaration", + "src": "5447:14:1" + } + ], + "id": 630, + "name": "ParameterList", + "src": "5428:34:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 631, + "name": "ParameterList", + "src": "5471:0:1" + } + ], + "id": 632, + "name": "FunctionDefinition", + "src": "5402:70:1" + }, + { + "attributes": { + "functionSelector": "e985e9c5", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "id": 633, + "name": "StructuredDocumentation", + "src": "5478:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 634, + "name": "ElementaryTypeName", + "src": "5647:7:1" + } + ], + "id": 635, + "name": "VariableDeclaration", + "src": "5647:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 636, + "name": "ElementaryTypeName", + "src": "5662:7:1" + } + ], + "id": 637, + "name": "VariableDeclaration", + "src": "5662:16:1" + } + ], + "id": 638, + "name": "ParameterList", + "src": "5646:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 639, + "name": "ElementaryTypeName", + "src": "5703:4:1" + } + ], + "id": 640, + "name": "VariableDeclaration", + "src": "5703:4:1" + } + ], + "id": 641, + "name": "ParameterList", + "src": "5702:6:1" + } + ], + "id": 642, + "name": "FunctionDefinition", + "src": "5621:88:1" + }, + { + "attributes": { + "functionSelector": "b88d4fde", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 643, + "name": "StructuredDocumentation", + "src": "5715:568:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 644, + "name": "ElementaryTypeName", + "src": "6314:7:1" + } + ], + "id": 645, + "name": "VariableDeclaration", + "src": "6314:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 646, + "name": "ElementaryTypeName", + "src": "6328:7:1" + } + ], + "id": 647, + "name": "VariableDeclaration", + "src": "6328:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 648, + "name": "ElementaryTypeName", + "src": "6340:7:1" + } + ], + "id": 649, + "name": "VariableDeclaration", + "src": "6340:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 654, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 650, + "name": "ElementaryTypeName", + "src": "6357:5:1" + } + ], + "id": 651, + "name": "VariableDeclaration", + "src": "6357:19:1" + } + ], + "id": 652, + "name": "ParameterList", + "src": "6313:64:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 653, + "name": "ParameterList", + "src": "6386:0:1" + } + ], + "id": 654, + "name": "FunctionDefinition", + "src": "6288:99:1" + } + ], + "id": 655, + "name": "ContractDefinition", + "src": "1975:4414:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 656, + "name": "PragmaDirective", + "src": "6457:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 657, + "name": "StructuredDocumentation", + "src": "6491:133:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 658, + "name": "UserDefinedTypeName", + "src": "6654:7:1" + } + ], + "id": 659, + "name": "InheritanceSpecifier", + "src": "6654:7:1" + }, + { + "attributes": { + "functionSelector": "06fdde03", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection name." + }, + "id": 660, + "name": "StructuredDocumentation", + "src": "6669:58:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 661, + "name": "ParameterList", + "src": "6745:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 665, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 662, + "name": "ElementaryTypeName", + "src": "6771:6:1" + } + ], + "id": 663, + "name": "VariableDeclaration", + "src": "6771:13:1" + } + ], + "id": 664, + "name": "ParameterList", + "src": "6770:15:1" + } + ], + "id": 665, + "name": "FunctionDefinition", + "src": "6732:54:1" + }, + { + "attributes": { + "functionSelector": "95d89b41", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection symbol." + }, + "id": 666, + "name": "StructuredDocumentation", + "src": "6792:60:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 667, + "name": "ParameterList", + "src": "6872:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 671, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 668, + "name": "ElementaryTypeName", + "src": "6898:6:1" + } + ], + "id": 669, + "name": "VariableDeclaration", + "src": "6898:13:1" + } + ], + "id": 670, + "name": "ParameterList", + "src": "6897:15:1" + } + ], + "id": 671, + "name": "FunctionDefinition", + "src": "6857:56:1" + }, + { + "attributes": { + "functionSelector": "c87b56dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "id": 672, + "name": "StructuredDocumentation", + "src": "6919:90:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 679, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 673, + "name": "ElementaryTypeName", + "src": "7032:7:1" + } + ], + "id": 674, + "name": "VariableDeclaration", + "src": "7032:15:1" + } + ], + "id": 675, + "name": "ParameterList", + "src": "7031:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 679, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 676, + "name": "ElementaryTypeName", + "src": "7072:6:1" + } + ], + "id": 677, + "name": "VariableDeclaration", + "src": "7072:13:1" + } + ], + "id": 678, + "name": "ParameterList", + "src": "7071:15:1" + } + ], + "id": 679, + "name": "FunctionDefinition", + "src": "7014:73:1" + } + ], + "id": 680, + "name": "ContractDefinition", + "src": "6625:464:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 681, + "name": "PragmaDirective", + "src": "7161:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 682, + "name": "StructuredDocumentation", + "src": "7195:136:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 683, + "name": "UserDefinedTypeName", + "src": "7363:7:1" + } + ], + "id": 684, + "name": "InheritanceSpecifier", + "src": "7363:7:1" + }, + { + "attributes": { + "functionSelector": "18160ddd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "id": 685, + "name": "StructuredDocumentation", + "src": "7378:82:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 686, + "name": "ParameterList", + "src": "7485:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 690, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 687, + "name": "ElementaryTypeName", + "src": "7511:7:1" + } + ], + "id": 688, + "name": "VariableDeclaration", + "src": "7511:7:1" + } + ], + "id": 689, + "name": "ParameterList", + "src": "7510:9:1" + } + ], + "id": 690, + "name": "FunctionDefinition", + "src": "7465:55:1" + }, + { + "attributes": { + "functionSelector": "2f745c59", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "id": 691, + "name": "StructuredDocumentation", + "src": "7526:171:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 692, + "name": "ElementaryTypeName", + "src": "7731:7:1" + } + ], + "id": 693, + "name": "VariableDeclaration", + "src": "7731:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 694, + "name": "ElementaryTypeName", + "src": "7746:7:1" + } + ], + "id": 695, + "name": "VariableDeclaration", + "src": "7746:13:1" + } + ], + "id": 696, + "name": "ParameterList", + "src": "7730:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 697, + "name": "ElementaryTypeName", + "src": "7784:7:1" + } + ], + "id": 698, + "name": "VariableDeclaration", + "src": "7784:15:1" + } + ], + "id": 699, + "name": "ParameterList", + "src": "7783:17:1" + } + ], + "id": 700, + "name": "FunctionDefinition", + "src": "7702:99:1" + }, + { + "attributes": { + "functionSelector": "4f6ccce7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "id": 701, + "name": "StructuredDocumentation", + "src": "7807:164:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 702, + "name": "ElementaryTypeName", + "src": "7998:7:1" + } + ], + "id": 703, + "name": "VariableDeclaration", + "src": "7998:13:1" + } + ], + "id": 704, + "name": "ParameterList", + "src": "7997:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 705, + "name": "ElementaryTypeName", + "src": "8036:7:1" + } + ], + "id": 706, + "name": "VariableDeclaration", + "src": "8036:7:1" + } + ], + "id": 707, + "name": "ParameterList", + "src": "8035:9:1" + } + ], + "id": 708, + "name": "FunctionDefinition", + "src": "7976:69:1" + } + ], + "id": 709, + "name": "ContractDefinition", + "src": "7332:715:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 710, + "name": "PragmaDirective", + "src": "8117:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "id": 711, + "name": "StructuredDocumentation", + "src": "8150:152:1" + }, + { + "attributes": { + "functionSelector": "150b7a02", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "onERC721Received", + "scope": 726, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "id": 712, + "name": "StructuredDocumentation", + "src": "8335:485:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 713, + "name": "ElementaryTypeName", + "src": "8851:7:1" + } + ], + "id": 714, + "name": "VariableDeclaration", + "src": "8851:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 715, + "name": "ElementaryTypeName", + "src": "8869:7:1" + } + ], + "id": 716, + "name": "VariableDeclaration", + "src": "8869:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 717, + "name": "ElementaryTypeName", + "src": "8883:7:1" + } + ], + "id": 718, + "name": "VariableDeclaration", + "src": "8883:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 725, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 719, + "name": "ElementaryTypeName", + "src": "8900:5:1" + } + ], + "id": 720, + "name": "VariableDeclaration", + "src": "8900:19:1" + } + ], + "id": 721, + "name": "ParameterList", + "src": "8850:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 722, + "name": "ElementaryTypeName", + "src": "8939:6:1" + } + ], + "id": 723, + "name": "VariableDeclaration", + "src": "8939:6:1" + } + ], + "id": 724, + "name": "ParameterList", + "src": "8938:8:1" + } + ], + "id": 725, + "name": "FunctionDefinition", + "src": "8825:122:1" + } + ], + "id": 726, + "name": "ContractDefinition", + "src": "8303:646:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 727, + "name": "PragmaDirective", + "src": "9009:31:1" + }, + { + "attributes": { + "abstract": true, + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "id": 728, + "name": "StructuredDocumentation", + "src": "9043:171:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 729, + "name": "UserDefinedTypeName", + "src": "9243:7:1" + } + ], + "id": 730, + "name": "InheritanceSpecifier", + "src": "9243:7:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 731, + "name": "ElementaryTypeName", + "src": "9340:6:1" + }, + { + "attributes": { + "hexvalue": "30783031666663396137", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 33540519", + "value": "0x01ffc9a7" + }, + "id": 732, + "name": "Literal", + "src": "9387:10:1" + } + ], + "id": 733, + "name": "VariableDeclaration", + "src": "9340:57:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_supportedInterfaces", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes4 => bool)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes4 => bool)" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 735, + "name": "ElementaryTypeName", + "src": "9499:6:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 736, + "name": "ElementaryTypeName", + "src": "9509:4:1" + } + ], + "id": 737, + "name": "Mapping", + "src": "9491:23:1" + }, + { + "attributes": { + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 734, + "name": "StructuredDocumentation", + "src": "9404:82:1" + } + ], + "id": 738, + "name": "VariableDeclaration", + "src": "9491:52:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 739, + "name": "ParameterList", + "src": "9562:2:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 740, + "name": "ParameterList", + "src": "9565:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 741, + "name": "Identifier", + "src": "9711:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 733, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC165" + }, + "id": 742, + "name": "Identifier", + "src": "9730:20:1" + } + ], + "id": 743, + "name": "FunctionCall", + "src": "9711:40:1" + } + ], + "id": 744, + "name": "ExpressionStatement", + "src": "9711:40:1" + } + ], + "id": 745, + "name": "Block", + "src": "9565:193:1" + } + ], + "id": 746, + "name": "FunctionDefinition", + "src": "9550:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 540 + ], + "functionSelector": "01ffc9a7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 781, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "id": 747, + "name": "StructuredDocumentation", + "src": "9764:139:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 751, + "name": "OverrideSpecifier", + "src": "9975:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 748, + "name": "ElementaryTypeName", + "src": "9935:6:1" + } + ], + "id": 749, + "name": "VariableDeclaration", + "src": "9935:18:1" + } + ], + "id": 750, + "name": "ParameterList", + "src": "9934:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 752, + "name": "ElementaryTypeName", + "src": "9993:4:1" + } + ], + "id": 753, + "name": "VariableDeclaration", + "src": "9993:4:1" + } + ], + "id": 754, + "name": "ParameterList", + "src": "9992:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 754 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 755, + "name": "Identifier", + "src": "10016:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 749, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 756, + "name": "Identifier", + "src": "10037:11:1" + } + ], + "id": 757, + "name": "IndexAccess", + "src": "10016:33:1" + } + ], + "id": 758, + "name": "Return", + "src": "10009:40:1" + } + ], + "id": 759, + "name": "Block", + "src": "9999:57:1" + } + ], + "id": 760, + "name": "FunctionDefinition", + "src": "9908:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_registerInterface", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 761, + "name": "StructuredDocumentation", + "src": "10062:383:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 780, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 762, + "name": "ElementaryTypeName", + "src": "10478:6:1" + } + ], + "id": 763, + "name": "VariableDeclaration", + "src": "10478:18:1" + } + ], + "id": 764, + "name": "ParameterList", + "src": "10477:20:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 765, + "name": "ParameterList", + "src": "10515:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 766, + "name": "Identifier", + "src": "10525:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 767, + "name": "Identifier", + "src": "10533:11:1" + }, + { + "attributes": { + "hexvalue": "30786666666666666666", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4294967295", + "value": "0xffffffff" + }, + "id": 768, + "name": "Literal", + "src": "10548:10:1" + } + ], + "id": 769, + "name": "BinaryOperation", + "src": "10533:25:1" + }, + { + "attributes": { + "hexvalue": "4552433136353a20696e76616c696420696e74657266616365206964", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC165: invalid interface id\"", + "value": "ERC165: invalid interface id" + }, + "id": 770, + "name": "Literal", + "src": "10560:30:1" + } + ], + "id": 771, + "name": "FunctionCall", + "src": "10525:66:1" + } + ], + "id": 772, + "name": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 773, + "name": "Identifier", + "src": "10601:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 774, + "name": "Identifier", + "src": "10622:11:1" + } + ], + "id": 775, + "name": "IndexAccess", + "src": "10601:33:1" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 776, + "name": "Literal", + "src": "10637:4:1" + } + ], + "id": 777, + "name": "Assignment", + "src": "10601:40:1" + } + ], + "id": 778, + "name": "ExpressionStatement", + "src": "10601:40:1" + } + ], + "id": 779, + "name": "Block", + "src": "10515:133:1" + } + ], + "id": 780, + "name": "FunctionDefinition", + "src": "10450:198:1" + } + ], + "id": 781, + "name": "ContractDefinition", + "src": "9215:1435:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 782, + "name": "PragmaDirective", + "src": "10703:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "id": 783, + "name": "StructuredDocumentation", + "src": "10736:563:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryAdd", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 784, + "name": "StructuredDocumentation", + "src": "11323:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 785, + "name": "ElementaryTypeName", + "src": "11475:7:1" + } + ], + "id": 786, + "name": "VariableDeclaration", + "src": "11475:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 787, + "name": "ElementaryTypeName", + "src": "11486:7:1" + } + ], + "id": 788, + "name": "VariableDeclaration", + "src": "11486:9:1" + } + ], + "id": 789, + "name": "ParameterList", + "src": "11474:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 790, + "name": "ElementaryTypeName", + "src": "11520:4:1" + } + ], + "id": 791, + "name": "VariableDeclaration", + "src": "11520:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 792, + "name": "ElementaryTypeName", + "src": "11526:7:1" + } + ], + "id": 793, + "name": "VariableDeclaration", + "src": "11526:7:1" + } + ], + "id": 794, + "name": "ParameterList", + "src": "11519:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 796 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 813, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 795, + "name": "ElementaryTypeName", + "src": "11545:7:1" + } + ], + "id": 796, + "name": "VariableDeclaration", + "src": "11545:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 797, + "name": "Identifier", + "src": "11557:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 788, + "type": "uint256", + "value": "b" + }, + "id": 798, + "name": "Identifier", + "src": "11561:1:1" + } + ], + "id": 799, + "name": "BinaryOperation", + "src": "11557:5:1" + } + ], + "id": 800, + "name": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 801, + "name": "Identifier", + "src": "11576:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 802, + "name": "Identifier", + "src": "11580:1:1" + } + ], + "id": 803, + "name": "BinaryOperation", + "src": "11576:5:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 804, + "name": "Literal", + "src": "11591:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 805, + "name": "Literal", + "src": "11598:1:1" + } + ], + "id": 806, + "name": "TupleExpression", + "src": "11590:10:1" + } + ], + "id": 807, + "name": "Return", + "src": "11583:17:1" + } + ], + "id": 808, + "name": "IfStatement", + "src": "11572:28:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 809, + "name": "Literal", + "src": "11618:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 810, + "name": "Identifier", + "src": "11624:1:1" + } + ], + "id": 811, + "name": "TupleExpression", + "src": "11617:9:1" + } + ], + "id": 812, + "name": "Return", + "src": "11610:16:1" + } + ], + "id": 813, + "name": "Block", + "src": "11535:98:1" + } + ], + "id": 814, + "name": "FunctionDefinition", + "src": "11459:174:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "trySub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 815, + "name": "StructuredDocumentation", + "src": "11639:135:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 816, + "name": "ElementaryTypeName", + "src": "11795:7:1" + } + ], + "id": 817, + "name": "VariableDeclaration", + "src": "11795:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 818, + "name": "ElementaryTypeName", + "src": "11806:7:1" + } + ], + "id": 819, + "name": "VariableDeclaration", + "src": "11806:9:1" + } + ], + "id": 820, + "name": "ParameterList", + "src": "11794:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 821, + "name": "ElementaryTypeName", + "src": "11840:4:1" + } + ], + "id": 822, + "name": "VariableDeclaration", + "src": "11840:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 823, + "name": "ElementaryTypeName", + "src": "11846:7:1" + } + ], + "id": 824, + "name": "VariableDeclaration", + "src": "11846:7:1" + } + ], + "id": 825, + "name": "ParameterList", + "src": "11839:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 826, + "name": "Identifier", + "src": "11869:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 827, + "name": "Identifier", + "src": "11873:1:1" + } + ], + "id": 828, + "name": "BinaryOperation", + "src": "11869:5:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 829, + "name": "Literal", + "src": "11884:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 830, + "name": "Literal", + "src": "11891:1:1" + } + ], + "id": 831, + "name": "TupleExpression", + "src": "11883:10:1" + } + ], + "id": 832, + "name": "Return", + "src": "11876:17:1" + } + ], + "id": 833, + "name": "IfStatement", + "src": "11865:28:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 834, + "name": "Literal", + "src": "11911:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 835, + "name": "Identifier", + "src": "11917:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 836, + "name": "Identifier", + "src": "11921:1:1" + } + ], + "id": 837, + "name": "BinaryOperation", + "src": "11917:5:1" + } + ], + "id": 838, + "name": "TupleExpression", + "src": "11910:13:1" + } + ], + "id": 839, + "name": "Return", + "src": "11903:20:1" + } + ], + "id": 840, + "name": "Block", + "src": "11855:75:1" + } + ], + "id": 841, + "name": "FunctionDefinition", + "src": "11779:151:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 842, + "name": "StructuredDocumentation", + "src": "11936:137:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 843, + "name": "ElementaryTypeName", + "src": "12094:7:1" + } + ], + "id": 844, + "name": "VariableDeclaration", + "src": "12094:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 845, + "name": "ElementaryTypeName", + "src": "12105:7:1" + } + ], + "id": 846, + "name": "VariableDeclaration", + "src": "12105:9:1" + } + ], + "id": 847, + "name": "ParameterList", + "src": "12093:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 848, + "name": "ElementaryTypeName", + "src": "12139:4:1" + } + ], + "id": 849, + "name": "VariableDeclaration", + "src": "12139:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 850, + "name": "ElementaryTypeName", + "src": "12145:7:1" + } + ], + "id": 851, + "name": "VariableDeclaration", + "src": "12145:7:1" + } + ], + "id": 852, + "name": "ParameterList", + "src": "12138:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 853, + "name": "Identifier", + "src": "12386:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 854, + "name": "Literal", + "src": "12391:1:1" + } + ], + "id": 855, + "name": "BinaryOperation", + "src": "12386:6:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 856, + "name": "Literal", + "src": "12402:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 857, + "name": "Literal", + "src": "12408:1:1" + } + ], + "id": 858, + "name": "TupleExpression", + "src": "12401:9:1" + } + ], + "id": 859, + "name": "Return", + "src": "12394:16:1" + } + ], + "id": 860, + "name": "IfStatement", + "src": "12382:28:1" + }, + { + "attributes": { + "assignments": [ + 862 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 881, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 861, + "name": "ElementaryTypeName", + "src": "12420:7:1" + } + ], + "id": 862, + "name": "VariableDeclaration", + "src": "12420:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 863, + "name": "Identifier", + "src": "12432:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 864, + "name": "Identifier", + "src": "12436:1:1" + } + ], + "id": 865, + "name": "BinaryOperation", + "src": "12432:5:1" + } + ], + "id": 866, + "name": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 867, + "name": "Identifier", + "src": "12451:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 868, + "name": "Identifier", + "src": "12455:1:1" + } + ], + "id": 869, + "name": "BinaryOperation", + "src": "12451:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 870, + "name": "Identifier", + "src": "12460:1:1" + } + ], + "id": 871, + "name": "BinaryOperation", + "src": "12451:10:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 872, + "name": "Literal", + "src": "12471:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 873, + "name": "Literal", + "src": "12478:1:1" + } + ], + "id": 874, + "name": "TupleExpression", + "src": "12470:10:1" + } + ], + "id": 875, + "name": "Return", + "src": "12463:17:1" + } + ], + "id": 876, + "name": "IfStatement", + "src": "12447:33:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 877, + "name": "Literal", + "src": "12498:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 878, + "name": "Identifier", + "src": "12504:1:1" + } + ], + "id": 879, + "name": "TupleExpression", + "src": "12497:9:1" + } + ], + "id": 880, + "name": "Return", + "src": "12490:16:1" + } + ], + "id": 881, + "name": "Block", + "src": "12154:359:1" + } + ], + "id": 882, + "name": "FunctionDefinition", + "src": "12078:435:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryDiv", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 883, + "name": "StructuredDocumentation", + "src": "12519:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 884, + "name": "ElementaryTypeName", + "src": "12678:7:1" + } + ], + "id": 885, + "name": "VariableDeclaration", + "src": "12678:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 886, + "name": "ElementaryTypeName", + "src": "12689:7:1" + } + ], + "id": 887, + "name": "VariableDeclaration", + "src": "12689:9:1" + } + ], + "id": 888, + "name": "ParameterList", + "src": "12677:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 889, + "name": "ElementaryTypeName", + "src": "12723:4:1" + } + ], + "id": 890, + "name": "VariableDeclaration", + "src": "12723:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 891, + "name": "ElementaryTypeName", + "src": "12729:7:1" + } + ], + "id": 892, + "name": "VariableDeclaration", + "src": "12729:7:1" + } + ], + "id": 893, + "name": "ParameterList", + "src": "12722:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 894, + "name": "Identifier", + "src": "12752:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 895, + "name": "Literal", + "src": "12757:1:1" + } + ], + "id": 896, + "name": "BinaryOperation", + "src": "12752:6:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 897, + "name": "Literal", + "src": "12768:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 898, + "name": "Literal", + "src": "12775:1:1" + } + ], + "id": 899, + "name": "TupleExpression", + "src": "12767:10:1" + } + ], + "id": 900, + "name": "Return", + "src": "12760:17:1" + } + ], + "id": 901, + "name": "IfStatement", + "src": "12748:29:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 902, + "name": "Literal", + "src": "12795:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 885, + "type": "uint256", + "value": "a" + }, + "id": 903, + "name": "Identifier", + "src": "12801:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 904, + "name": "Identifier", + "src": "12805:1:1" + } + ], + "id": 905, + "name": "BinaryOperation", + "src": "12801:5:1" + } + ], + "id": 906, + "name": "TupleExpression", + "src": "12794:13:1" + } + ], + "id": 907, + "name": "Return", + "src": "12787:20:1" + } + ], + "id": 908, + "name": "Block", + "src": "12738:76:1" + } + ], + "id": 909, + "name": "FunctionDefinition", + "src": "12662:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 910, + "name": "StructuredDocumentation", + "src": "12820:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 911, + "name": "ElementaryTypeName", + "src": "12989:7:1" + } + ], + "id": 912, + "name": "VariableDeclaration", + "src": "12989:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 913, + "name": "ElementaryTypeName", + "src": "13000:7:1" + } + ], + "id": 914, + "name": "VariableDeclaration", + "src": "13000:9:1" + } + ], + "id": 915, + "name": "ParameterList", + "src": "12988:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 916, + "name": "ElementaryTypeName", + "src": "13034:4:1" + } + ], + "id": 917, + "name": "VariableDeclaration", + "src": "13034:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 918, + "name": "ElementaryTypeName", + "src": "13040:7:1" + } + ], + "id": 919, + "name": "VariableDeclaration", + "src": "13040:7:1" + } + ], + "id": 920, + "name": "ParameterList", + "src": "13033:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 921, + "name": "Identifier", + "src": "13063:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 922, + "name": "Literal", + "src": "13068:1:1" + } + ], + "id": 923, + "name": "BinaryOperation", + "src": "13063:6:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 924, + "name": "Literal", + "src": "13079:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 925, + "name": "Literal", + "src": "13086:1:1" + } + ], + "id": 926, + "name": "TupleExpression", + "src": "13078:10:1" + } + ], + "id": 927, + "name": "Return", + "src": "13071:17:1" + } + ], + "id": 928, + "name": "IfStatement", + "src": "13059:29:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 929, + "name": "Literal", + "src": "13106:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 912, + "type": "uint256", + "value": "a" + }, + "id": 930, + "name": "Identifier", + "src": "13112:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 931, + "name": "Identifier", + "src": "13116:1:1" + } + ], + "id": 932, + "name": "BinaryOperation", + "src": "13112:5:1" + } + ], + "id": 933, + "name": "TupleExpression", + "src": "13105:13:1" + } + ], + "id": 934, + "name": "Return", + "src": "13098:20:1" + } + ], + "id": 935, + "name": "Block", + "src": "13049:76:1" + } + ], + "id": 936, + "name": "FunctionDefinition", + "src": "12973:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 937, + "name": "StructuredDocumentation", + "src": "13131:224:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 938, + "name": "ElementaryTypeName", + "src": "13373:7:1" + } + ], + "id": 939, + "name": "VariableDeclaration", + "src": "13373:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 940, + "name": "ElementaryTypeName", + "src": "13384:7:1" + } + ], + "id": 941, + "name": "VariableDeclaration", + "src": "13384:9:1" + } + ], + "id": 942, + "name": "ParameterList", + "src": "13372:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 943, + "name": "ElementaryTypeName", + "src": "13418:7:1" + } + ], + "id": 944, + "name": "VariableDeclaration", + "src": "13418:7:1" + } + ], + "id": 945, + "name": "ParameterList", + "src": "13417:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 947 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 961, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 946, + "name": "ElementaryTypeName", + "src": "13437:7:1" + } + ], + "id": 947, + "name": "VariableDeclaration", + "src": "13437:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 948, + "name": "Identifier", + "src": "13449:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 941, + "type": "uint256", + "value": "b" + }, + "id": 949, + "name": "Identifier", + "src": "13453:1:1" + } + ], + "id": 950, + "name": "BinaryOperation", + "src": "13449:5:1" + } + ], + "id": 951, + "name": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 952, + "name": "Identifier", + "src": "13464:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 953, + "name": "Identifier", + "src": "13472:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 954, + "name": "Identifier", + "src": "13477:1:1" + } + ], + "id": 955, + "name": "BinaryOperation", + "src": "13472:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: addition overflow\"", + "value": "SafeMath: addition overflow" + }, + "id": 956, + "name": "Literal", + "src": "13480:29:1" + } + ], + "id": 957, + "name": "FunctionCall", + "src": "13464:46:1" + } + ], + "id": 958, + "name": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "attributes": { + "functionReturnParameters": 945 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 959, + "name": "Identifier", + "src": "13527:1:1" + } + ], + "id": 960, + "name": "Return", + "src": "13520:8:1" + } + ], + "id": 961, + "name": "Block", + "src": "13427:108:1" + } + ], + "id": 962, + "name": "FunctionDefinition", + "src": "13360:175:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 963, + "name": "StructuredDocumentation", + "src": "13541:260:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 964, + "name": "ElementaryTypeName", + "src": "13819:7:1" + } + ], + "id": 965, + "name": "VariableDeclaration", + "src": "13819:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 966, + "name": "ElementaryTypeName", + "src": "13830:7:1" + } + ], + "id": 967, + "name": "VariableDeclaration", + "src": "13830:9:1" + } + ], + "id": 968, + "name": "ParameterList", + "src": "13818:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 969, + "name": "ElementaryTypeName", + "src": "13864:7:1" + } + ], + "id": 970, + "name": "VariableDeclaration", + "src": "13864:7:1" + } + ], + "id": 971, + "name": "ParameterList", + "src": "13863:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 972, + "name": "Identifier", + "src": "13883:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 973, + "name": "Identifier", + "src": "13891:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 974, + "name": "Identifier", + "src": "13896:1:1" + } + ], + "id": 975, + "name": "BinaryOperation", + "src": "13891:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: subtraction overflow\"", + "value": "SafeMath: subtraction overflow" + }, + "id": 976, + "name": "Literal", + "src": "13899:32:1" + } + ], + "id": 977, + "name": "FunctionCall", + "src": "13883:49:1" + } + ], + "id": 978, + "name": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "attributes": { + "functionReturnParameters": 971 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 979, + "name": "Identifier", + "src": "13949:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 980, + "name": "Identifier", + "src": "13953:1:1" + } + ], + "id": 981, + "name": "BinaryOperation", + "src": "13949:5:1" + } + ], + "id": 982, + "name": "Return", + "src": "13942:12:1" + } + ], + "id": 983, + "name": "Block", + "src": "13873:88:1" + } + ], + "id": 984, + "name": "FunctionDefinition", + "src": "13806:155:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 985, + "name": "StructuredDocumentation", + "src": "13967:236:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 986, + "name": "ElementaryTypeName", + "src": "14221:7:1" + } + ], + "id": 987, + "name": "VariableDeclaration", + "src": "14221:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 988, + "name": "ElementaryTypeName", + "src": "14232:7:1" + } + ], + "id": 989, + "name": "VariableDeclaration", + "src": "14232:9:1" + } + ], + "id": 990, + "name": "ParameterList", + "src": "14220:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 991, + "name": "ElementaryTypeName", + "src": "14266:7:1" + } + ], + "id": 992, + "name": "VariableDeclaration", + "src": "14266:7:1" + } + ], + "id": 993, + "name": "ParameterList", + "src": "14265:9:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 994, + "name": "Identifier", + "src": "14289:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 995, + "name": "Literal", + "src": "14294:1:1" + } + ], + "id": 996, + "name": "BinaryOperation", + "src": "14289:6:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 997, + "name": "Literal", + "src": "14304:1:1" + } + ], + "id": 998, + "name": "Return", + "src": "14297:8:1" + } + ], + "id": 999, + "name": "IfStatement", + "src": "14285:20:1" + }, + { + "attributes": { + "assignments": [ + 1001 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 1017, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1000, + "name": "ElementaryTypeName", + "src": "14315:7:1" + } + ], + "id": 1001, + "name": "VariableDeclaration", + "src": "14315:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1002, + "name": "Identifier", + "src": "14327:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1003, + "name": "Identifier", + "src": "14331:1:1" + } + ], + "id": 1004, + "name": "BinaryOperation", + "src": "14327:5:1" + } + ], + "id": 1005, + "name": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1006, + "name": "Identifier", + "src": "14342:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1007, + "name": "Identifier", + "src": "14350:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1008, + "name": "Identifier", + "src": "14354:1:1" + } + ], + "id": 1009, + "name": "BinaryOperation", + "src": "14350:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1010, + "name": "Identifier", + "src": "14359:1:1" + } + ], + "id": 1011, + "name": "BinaryOperation", + "src": "14350:10:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: multiplication overflow\"", + "value": "SafeMath: multiplication overflow" + }, + "id": 1012, + "name": "Literal", + "src": "14362:35:1" + } + ], + "id": 1013, + "name": "FunctionCall", + "src": "14342:56:1" + } + ], + "id": 1014, + "name": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1015, + "name": "Identifier", + "src": "14415:1:1" + } + ], + "id": 1016, + "name": "Return", + "src": "14408:8:1" + } + ], + "id": 1017, + "name": "Block", + "src": "14275:148:1" + } + ], + "id": 1018, + "name": "FunctionDefinition", + "src": "14208:215:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1019, + "name": "StructuredDocumentation", + "src": "14429:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1020, + "name": "ElementaryTypeName", + "src": "14900:7:1" + } + ], + "id": 1021, + "name": "VariableDeclaration", + "src": "14900:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1022, + "name": "ElementaryTypeName", + "src": "14911:7:1" + } + ], + "id": 1023, + "name": "VariableDeclaration", + "src": "14911:9:1" + } + ], + "id": 1024, + "name": "ParameterList", + "src": "14899:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1025, + "name": "ElementaryTypeName", + "src": "14945:7:1" + } + ], + "id": 1026, + "name": "VariableDeclaration", + "src": "14945:7:1" + } + ], + "id": 1027, + "name": "ParameterList", + "src": "14944:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1028, + "name": "Identifier", + "src": "14964:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1029, + "name": "Identifier", + "src": "14972:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1030, + "name": "Literal", + "src": "14976:1:1" + } + ], + "id": 1031, + "name": "BinaryOperation", + "src": "14972:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206469766973696f6e206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: division by zero\"", + "value": "SafeMath: division by zero" + }, + "id": 1032, + "name": "Literal", + "src": "14979:28:1" + } + ], + "id": 1033, + "name": "FunctionCall", + "src": "14964:44:1" + } + ], + "id": 1034, + "name": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "attributes": { + "functionReturnParameters": 1027 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1021, + "type": "uint256", + "value": "a" + }, + "id": 1035, + "name": "Identifier", + "src": "15025:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1036, + "name": "Identifier", + "src": "15029:1:1" + } + ], + "id": 1037, + "name": "BinaryOperation", + "src": "15025:5:1" + } + ], + "id": 1038, + "name": "Return", + "src": "15018:12:1" + } + ], + "id": 1039, + "name": "Block", + "src": "14954:83:1" + } + ], + "id": 1040, + "name": "FunctionDefinition", + "src": "14887:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1041, + "name": "StructuredDocumentation", + "src": "15043:442:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1042, + "name": "ElementaryTypeName", + "src": "15503:7:1" + } + ], + "id": 1043, + "name": "VariableDeclaration", + "src": "15503:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1044, + "name": "ElementaryTypeName", + "src": "15514:7:1" + } + ], + "id": 1045, + "name": "VariableDeclaration", + "src": "15514:9:1" + } + ], + "id": 1046, + "name": "ParameterList", + "src": "15502:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1047, + "name": "ElementaryTypeName", + "src": "15548:7:1" + } + ], + "id": 1048, + "name": "VariableDeclaration", + "src": "15548:7:1" + } + ], + "id": 1049, + "name": "ParameterList", + "src": "15547:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1050, + "name": "Identifier", + "src": "15567:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1051, + "name": "Identifier", + "src": "15575:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1052, + "name": "Literal", + "src": "15579:1:1" + } + ], + "id": 1053, + "name": "BinaryOperation", + "src": "15575:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: modulo by zero\"", + "value": "SafeMath: modulo by zero" + }, + "id": 1054, + "name": "Literal", + "src": "15582:26:1" + } + ], + "id": 1055, + "name": "FunctionCall", + "src": "15567:42:1" + } + ], + "id": 1056, + "name": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "attributes": { + "functionReturnParameters": 1049 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1043, + "type": "uint256", + "value": "a" + }, + "id": 1057, + "name": "Identifier", + "src": "15626:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1058, + "name": "Identifier", + "src": "15630:1:1" + } + ], + "id": 1059, + "name": "BinaryOperation", + "src": "15626:5:1" + } + ], + "id": 1060, + "name": "Return", + "src": "15619:12:1" + } + ], + "id": 1061, + "name": "Block", + "src": "15557:81:1" + } + ], + "id": 1062, + "name": "FunctionDefinition", + "src": "15490:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1063, + "name": "StructuredDocumentation", + "src": "15644:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1064, + "name": "ElementaryTypeName", + "src": "16115:7:1" + } + ], + "id": 1065, + "name": "VariableDeclaration", + "src": "16115:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1066, + "name": "ElementaryTypeName", + "src": "16126:7:1" + } + ], + "id": 1067, + "name": "VariableDeclaration", + "src": "16126:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1086, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1068, + "name": "ElementaryTypeName", + "src": "16137:6:1" + } + ], + "id": 1069, + "name": "VariableDeclaration", + "src": "16137:26:1" + } + ], + "id": 1070, + "name": "ParameterList", + "src": "16114:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1071, + "name": "ElementaryTypeName", + "src": "16188:7:1" + } + ], + "id": 1072, + "name": "VariableDeclaration", + "src": "16188:7:1" + } + ], + "id": 1073, + "name": "ParameterList", + "src": "16187:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1074, + "name": "Identifier", + "src": "16207:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1075, + "name": "Identifier", + "src": "16215:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1076, + "name": "Identifier", + "src": "16220:1:1" + } + ], + "id": 1077, + "name": "BinaryOperation", + "src": "16215:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1069, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1078, + "name": "Identifier", + "src": "16223:12:1" + } + ], + "id": 1079, + "name": "FunctionCall", + "src": "16207:29:1" + } + ], + "id": 1080, + "name": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "attributes": { + "functionReturnParameters": 1073 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1081, + "name": "Identifier", + "src": "16253:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1082, + "name": "Identifier", + "src": "16257:1:1" + } + ], + "id": 1083, + "name": "BinaryOperation", + "src": "16253:5:1" + } + ], + "id": 1084, + "name": "Return", + "src": "16246:12:1" + } + ], + "id": 1085, + "name": "Block", + "src": "16197:68:1" + } + ], + "id": 1086, + "name": "FunctionDefinition", + "src": "16102:163:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1087, + "name": "StructuredDocumentation", + "src": "16271:646:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1088, + "name": "ElementaryTypeName", + "src": "16935:7:1" + } + ], + "id": 1089, + "name": "VariableDeclaration", + "src": "16935:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1090, + "name": "ElementaryTypeName", + "src": "16946:7:1" + } + ], + "id": 1091, + "name": "VariableDeclaration", + "src": "16946:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1110, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1092, + "name": "ElementaryTypeName", + "src": "16957:6:1" + } + ], + "id": 1093, + "name": "VariableDeclaration", + "src": "16957:26:1" + } + ], + "id": 1094, + "name": "ParameterList", + "src": "16934:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1095, + "name": "ElementaryTypeName", + "src": "17008:7:1" + } + ], + "id": 1096, + "name": "VariableDeclaration", + "src": "17008:7:1" + } + ], + "id": 1097, + "name": "ParameterList", + "src": "17007:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1098, + "name": "Identifier", + "src": "17027:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1099, + "name": "Identifier", + "src": "17035:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1100, + "name": "Literal", + "src": "17039:1:1" + } + ], + "id": 1101, + "name": "BinaryOperation", + "src": "17035:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1093, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1102, + "name": "Identifier", + "src": "17042:12:1" + } + ], + "id": 1103, + "name": "FunctionCall", + "src": "17027:28:1" + } + ], + "id": 1104, + "name": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1097 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1089, + "type": "uint256", + "value": "a" + }, + "id": 1105, + "name": "Identifier", + "src": "17072:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1106, + "name": "Identifier", + "src": "17076:1:1" + } + ], + "id": 1107, + "name": "BinaryOperation", + "src": "17072:5:1" + } + ], + "id": 1108, + "name": "Return", + "src": "17065:12:1" + } + ], + "id": 1109, + "name": "Block", + "src": "17017:67:1" + } + ], + "id": 1110, + "name": "FunctionDefinition", + "src": "16922:162:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1111, + "name": "StructuredDocumentation", + "src": "17090:635:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1112, + "name": "ElementaryTypeName", + "src": "17743:7:1" + } + ], + "id": 1113, + "name": "VariableDeclaration", + "src": "17743:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1114, + "name": "ElementaryTypeName", + "src": "17754:7:1" + } + ], + "id": 1115, + "name": "VariableDeclaration", + "src": "17754:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1134, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1116, + "name": "ElementaryTypeName", + "src": "17765:6:1" + } + ], + "id": 1117, + "name": "VariableDeclaration", + "src": "17765:26:1" + } + ], + "id": 1118, + "name": "ParameterList", + "src": "17742:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1119, + "name": "ElementaryTypeName", + "src": "17816:7:1" + } + ], + "id": 1120, + "name": "VariableDeclaration", + "src": "17816:7:1" + } + ], + "id": 1121, + "name": "ParameterList", + "src": "17815:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1122, + "name": "Identifier", + "src": "17835:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1123, + "name": "Identifier", + "src": "17843:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1124, + "name": "Literal", + "src": "17847:1:1" + } + ], + "id": 1125, + "name": "BinaryOperation", + "src": "17843:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1117, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1126, + "name": "Identifier", + "src": "17850:12:1" + } + ], + "id": 1127, + "name": "FunctionCall", + "src": "17835:28:1" + } + ], + "id": 1128, + "name": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1121 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "uint256", + "value": "a" + }, + "id": 1129, + "name": "Identifier", + "src": "17880:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1130, + "name": "Identifier", + "src": "17884:1:1" + } + ], + "id": 1131, + "name": "BinaryOperation", + "src": "17880:5:1" + } + ], + "id": 1132, + "name": "Return", + "src": "17873:12:1" + } + ], + "id": 1133, + "name": "Block", + "src": "17825:67:1" + } + ], + "id": 1134, + "name": "FunctionDefinition", + "src": "17730:162:1" + } + ], + "id": 1135, + "name": "ContractDefinition", + "src": "11300:6594:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 1136, + "name": "PragmaDirective", + "src": "17947:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Collection of functions related to the address type" + }, + "id": 1137, + "name": "StructuredDocumentation", + "src": "17980:67:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isContract", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1138, + "name": "StructuredDocumentation", + "src": "18070:565:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "account", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1139, + "name": "ElementaryTypeName", + "src": "18660:7:1" + } + ], + "id": 1140, + "name": "VariableDeclaration", + "src": "18660:15:1" + } + ], + "id": 1141, + "name": "ParameterList", + "src": "18659:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1142, + "name": "ElementaryTypeName", + "src": "18700:4:1" + } + ], + "id": 1143, + "name": "VariableDeclaration", + "src": "18700:4:1" + } + ], + "id": 1144, + "name": "ParameterList", + "src": "18699:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1146 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "size", + "scope": 1153, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1145, + "name": "ElementaryTypeName", + "src": "18903:7:1" + } + ], + "id": 1146, + "name": "VariableDeclaration", + "src": "18903:12:1" + } + ], + "id": 1147, + "name": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "operations": "{ size := extcodesize(account) }" + }, + "children": [], + "id": 1148, + "name": "InlineAssembly", + "src": "18981:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1144 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1146, + "type": "uint256", + "value": "size" + }, + "id": 1149, + "name": "Identifier", + "src": "19038:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1150, + "name": "Literal", + "src": "19045:1:1" + } + ], + "id": 1151, + "name": "BinaryOperation", + "src": "19038:8:1" + } + ], + "id": 1152, + "name": "Return", + "src": "19031:15:1" + } + ], + "id": 1153, + "name": "Block", + "src": "18706:347:1" + } + ], + "id": 1154, + "name": "FunctionDefinition", + "src": "18640:413:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sendValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1155, + "name": "StructuredDocumentation", + "src": "19059:906:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "recipient", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 1156, + "name": "ElementaryTypeName", + "src": "19989:15:1" + } + ], + "id": 1157, + "name": "VariableDeclaration", + "src": "19989:25:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "amount", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1158, + "name": "ElementaryTypeName", + "src": "20016:7:1" + } + ], + "id": 1159, + "name": "VariableDeclaration", + "src": "20016:14:1" + } + ], + "id": 1160, + "name": "ParameterList", + "src": "19988:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1161, + "name": "ParameterList", + "src": "20041:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1162, + "name": "Identifier", + "src": "20051:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1163, + "name": "ElementaryTypeName", + "src": "20059:7:1" + } + ], + "id": 1164, + "name": "ElementaryTypeNameExpression", + "src": "20059:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1165, + "name": "Identifier", + "src": "20067:4:1" + } + ], + "id": 1166, + "name": "FunctionCall", + "src": "20059:13:1" + } + ], + "id": 1167, + "name": "MemberAccess", + "src": "20059:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1168, + "name": "Identifier", + "src": "20084:6:1" + } + ], + "id": 1169, + "name": "BinaryOperation", + "src": "20059:31:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance\"", + "value": "Address: insufficient balance" + }, + "id": 1170, + "name": "Literal", + "src": "20092:31:1" + } + ], + "id": 1171, + "name": "FunctionCall", + "src": "20051:73:1" + } + ], + "id": 1172, + "name": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "attributes": { + "assignments": [ + 1174, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1187, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1173, + "name": "ElementaryTypeName", + "src": "20213:4:1" + } + ], + "id": 1174, + "name": "VariableDeclaration", + "src": "20213:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1157, + "type": "address payable", + "value": "recipient" + }, + "id": 1175, + "name": "Identifier", + "src": "20231:9:1" + } + ], + "id": 1176, + "name": "MemberAccess", + "src": "20231:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1177, + "name": "Identifier", + "src": "20254:6:1" + } + ], + "id": 1178, + "name": "FunctionCallOptions", + "src": "20231:31:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 1179, + "name": "Literal", + "src": "20263:2:1" + } + ], + "id": 1180, + "name": "FunctionCall", + "src": "20231:35:1" + } + ], + "id": 1181, + "name": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1182, + "name": "Identifier", + "src": "20276:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1174, + "type": "bool", + "value": "success" + }, + "id": 1183, + "name": "Identifier", + "src": "20284:7:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: unable to send value, recipient may have reverted\"", + "value": "Address: unable to send value, recipient may have reverted" + }, + "id": 1184, + "name": "Literal", + "src": "20293:60:1" + } + ], + "id": 1185, + "name": "FunctionCall", + "src": "20276:78:1" + } + ], + "id": 1186, + "name": "ExpressionStatement", + "src": "20276:78:1" + } + ], + "id": 1187, + "name": "Block", + "src": "20041:320:1" + } + ], + "id": 1188, + "name": "FunctionDefinition", + "src": "19970:391:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1189, + "name": "StructuredDocumentation", + "src": "20367:730:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1205, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1190, + "name": "ElementaryTypeName", + "src": "21124:7:1" + } + ], + "id": 1191, + "name": "VariableDeclaration", + "src": "21124:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1192, + "name": "ElementaryTypeName", + "src": "21140:5:1" + } + ], + "id": 1193, + "name": "VariableDeclaration", + "src": "21140:17:1" + } + ], + "id": 1194, + "name": "ParameterList", + "src": "21123:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1195, + "name": "ElementaryTypeName", + "src": "21177:5:1" + } + ], + "id": 1196, + "name": "VariableDeclaration", + "src": "21177:12:1" + } + ], + "id": 1197, + "name": "ParameterList", + "src": "21176:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1197 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionCall" + }, + "id": 1198, + "name": "Identifier", + "src": "21206:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1191, + "type": "address", + "value": "target" + }, + "id": 1199, + "name": "Identifier", + "src": "21219:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1193, + "type": "bytes memory", + "value": "data" + }, + "id": 1200, + "name": "Identifier", + "src": "21227:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call failed\"", + "value": "Address: low-level call failed" + }, + "id": 1201, + "name": "Literal", + "src": "21233:32:1" + } + ], + "id": 1202, + "name": "FunctionCall", + "src": "21206:60:1" + } + ], + "id": 1203, + "name": "Return", + "src": "21199:67:1" + } + ], + "id": 1204, + "name": "Block", + "src": "21191:82:1" + } + ], + "id": 1205, + "name": "FunctionDefinition", + "src": "21102:171:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1206, + "name": "StructuredDocumentation", + "src": "21279:211:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1225, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1207, + "name": "ElementaryTypeName", + "src": "21517:7:1" + } + ], + "id": 1208, + "name": "VariableDeclaration", + "src": "21517:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1209, + "name": "ElementaryTypeName", + "src": "21533:5:1" + } + ], + "id": 1210, + "name": "VariableDeclaration", + "src": "21533:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1211, + "name": "ElementaryTypeName", + "src": "21552:6:1" + } + ], + "id": 1212, + "name": "VariableDeclaration", + "src": "21552:26:1" + } + ], + "id": 1213, + "name": "ParameterList", + "src": "21516:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1214, + "name": "ElementaryTypeName", + "src": "21598:5:1" + } + ], + "id": 1215, + "name": "VariableDeclaration", + "src": "21598:12:1" + } + ], + "id": 1216, + "name": "ParameterList", + "src": "21597:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1216 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1217, + "name": "Identifier", + "src": "21629:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1208, + "type": "address", + "value": "target" + }, + "id": 1218, + "name": "Identifier", + "src": "21651:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1210, + "type": "bytes memory", + "value": "data" + }, + "id": 1219, + "name": "Identifier", + "src": "21659:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1220, + "name": "Literal", + "src": "21665:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1212, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1221, + "name": "Identifier", + "src": "21668:12:1" + } + ], + "id": 1222, + "name": "FunctionCall", + "src": "21629:52:1" + } + ], + "id": 1223, + "name": "Return", + "src": "21622:59:1" + } + ], + "id": 1224, + "name": "Block", + "src": "21612:76:1" + } + ], + "id": 1225, + "name": "FunctionDefinition", + "src": "21495:193:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1226, + "name": "StructuredDocumentation", + "src": "21694:351:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1227, + "name": "ElementaryTypeName", + "src": "22081:7:1" + } + ], + "id": 1228, + "name": "VariableDeclaration", + "src": "22081:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1229, + "name": "ElementaryTypeName", + "src": "22097:5:1" + } + ], + "id": 1230, + "name": "VariableDeclaration", + "src": "22097:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1231, + "name": "ElementaryTypeName", + "src": "22116:7:1" + } + ], + "id": 1232, + "name": "VariableDeclaration", + "src": "22116:13:1" + } + ], + "id": 1233, + "name": "ParameterList", + "src": "22080:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1234, + "name": "ElementaryTypeName", + "src": "22149:5:1" + } + ], + "id": 1235, + "name": "VariableDeclaration", + "src": "22149:12:1" + } + ], + "id": 1236, + "name": "ParameterList", + "src": "22148:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1236 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1237, + "name": "Identifier", + "src": "22180:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1228, + "type": "address", + "value": "target" + }, + "id": 1238, + "name": "Identifier", + "src": "22202:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1230, + "type": "bytes memory", + "value": "data" + }, + "id": 1239, + "name": "Identifier", + "src": "22210:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1232, + "type": "uint256", + "value": "value" + }, + "id": 1240, + "name": "Identifier", + "src": "22216:5:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call with value failed\"", + "value": "Address: low-level call with value failed" + }, + "id": 1241, + "name": "Literal", + "src": "22223:43:1" + } + ], + "id": 1242, + "name": "FunctionCall", + "src": "22180:87:1" + } + ], + "id": 1243, + "name": "Return", + "src": "22173:94:1" + } + ], + "id": 1244, + "name": "Block", + "src": "22163:111:1" + } + ], + "id": 1245, + "name": "FunctionDefinition", + "src": "22050:224:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1246, + "name": "StructuredDocumentation", + "src": "22280:237:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1247, + "name": "ElementaryTypeName", + "src": "22553:7:1" + } + ], + "id": 1248, + "name": "VariableDeclaration", + "src": "22553:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1249, + "name": "ElementaryTypeName", + "src": "22569:5:1" + } + ], + "id": 1250, + "name": "VariableDeclaration", + "src": "22569:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1251, + "name": "ElementaryTypeName", + "src": "22588:7:1" + } + ], + "id": 1252, + "name": "VariableDeclaration", + "src": "22588:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1253, + "name": "ElementaryTypeName", + "src": "22603:6:1" + } + ], + "id": 1254, + "name": "VariableDeclaration", + "src": "22603:26:1" + } + ], + "id": 1255, + "name": "ParameterList", + "src": "22552:78:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1256, + "name": "ElementaryTypeName", + "src": "22649:5:1" + } + ], + "id": 1257, + "name": "VariableDeclaration", + "src": "22649:12:1" + } + ], + "id": 1258, + "name": "ParameterList", + "src": "22648:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1259, + "name": "Identifier", + "src": "22673:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1260, + "name": "ElementaryTypeName", + "src": "22681:7:1" + } + ], + "id": 1261, + "name": "ElementaryTypeNameExpression", + "src": "22681:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1262, + "name": "Identifier", + "src": "22689:4:1" + } + ], + "id": 1263, + "name": "FunctionCall", + "src": "22681:13:1" + } + ], + "id": 1264, + "name": "MemberAccess", + "src": "22681:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1265, + "name": "Identifier", + "src": "22706:5:1" + } + ], + "id": 1266, + "name": "BinaryOperation", + "src": "22681:30:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance for call\"", + "value": "Address: insufficient balance for call" + }, + "id": 1267, + "name": "Literal", + "src": "22713:40:1" + } + ], + "id": 1268, + "name": "FunctionCall", + "src": "22673:81:1" + } + ], + "id": 1269, + "name": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1270, + "name": "Identifier", + "src": "22764:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1271, + "name": "Identifier", + "src": "22772:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1272, + "name": "Identifier", + "src": "22783:6:1" + } + ], + "id": 1273, + "name": "FunctionCall", + "src": "22772:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: call to non-contract\"", + "value": "Address: call to non-contract" + }, + "id": 1274, + "name": "Literal", + "src": "22792:31:1" + } + ], + "id": 1275, + "name": "FunctionCall", + "src": "22764:60:1" + } + ], + "id": 1276, + "name": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "attributes": { + "assignments": [ + 1278, + 1280 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1294, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1277, + "name": "ElementaryTypeName", + "src": "22895:4:1" + } + ], + "id": 1278, + "name": "VariableDeclaration", + "src": "22895:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1279, + "name": "ElementaryTypeName", + "src": "22909:5:1" + } + ], + "id": 1280, + "name": "VariableDeclaration", + "src": "22909:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1281, + "name": "Identifier", + "src": "22936:6:1" + } + ], + "id": 1282, + "name": "MemberAccess", + "src": "22936:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1283, + "name": "Identifier", + "src": "22956:5:1" + } + ], + "id": 1284, + "name": "FunctionCallOptions", + "src": "22936:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1250, + "type": "bytes memory", + "value": "data" + }, + "id": 1285, + "name": "Identifier", + "src": "22964:4:1" + } + ], + "id": 1286, + "name": "FunctionCall", + "src": "22936:33:1" + } + ], + "id": 1287, + "name": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "attributes": { + "functionReturnParameters": 1258 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1288, + "name": "Identifier", + "src": "22986:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1278, + "type": "bool", + "value": "success" + }, + "id": 1289, + "name": "Identifier", + "src": "23004:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1280, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1290, + "name": "Identifier", + "src": "23013:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1254, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1291, + "name": "Identifier", + "src": "23025:12:1" + } + ], + "id": 1292, + "name": "FunctionCall", + "src": "22986:52:1" + } + ], + "id": 1293, + "name": "Return", + "src": "22979:59:1" + } + ], + "id": 1294, + "name": "Block", + "src": "22663:382:1" + } + ], + "id": 1295, + "name": "FunctionDefinition", + "src": "22522:523:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1296, + "name": "StructuredDocumentation", + "src": "23051:166:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1312, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1297, + "name": "ElementaryTypeName", + "src": "23250:7:1" + } + ], + "id": 1298, + "name": "VariableDeclaration", + "src": "23250:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1299, + "name": "ElementaryTypeName", + "src": "23266:5:1" + } + ], + "id": 1300, + "name": "VariableDeclaration", + "src": "23266:17:1" + } + ], + "id": 1301, + "name": "ParameterList", + "src": "23249:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1302, + "name": "ElementaryTypeName", + "src": "23308:5:1" + } + ], + "id": 1303, + "name": "VariableDeclaration", + "src": "23308:12:1" + } + ], + "id": 1304, + "name": "ParameterList", + "src": "23307:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1304 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "type": "function (address,bytes memory,string memory) view returns (bytes memory)", + "value": "functionStaticCall" + }, + "id": 1305, + "name": "Identifier", + "src": "23339:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1298, + "type": "address", + "value": "target" + }, + "id": 1306, + "name": "Identifier", + "src": "23358:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1300, + "type": "bytes memory", + "value": "data" + }, + "id": 1307, + "name": "Identifier", + "src": "23366:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level static call failed\"", + "value": "Address: low-level static call failed" + }, + "id": 1308, + "name": "Literal", + "src": "23372:39:1" + } + ], + "id": 1309, + "name": "FunctionCall", + "src": "23339:73:1" + } + ], + "id": 1310, + "name": "Return", + "src": "23332:80:1" + } + ], + "id": 1311, + "name": "Block", + "src": "23322:97:1" + } + ], + "id": 1312, + "name": "FunctionDefinition", + "src": "23222:197:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1313, + "name": "StructuredDocumentation", + "src": "23425:173:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1347, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1314, + "name": "ElementaryTypeName", + "src": "23631:7:1" + } + ], + "id": 1315, + "name": "VariableDeclaration", + "src": "23631:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1316, + "name": "ElementaryTypeName", + "src": "23647:5:1" + } + ], + "id": 1317, + "name": "VariableDeclaration", + "src": "23647:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1318, + "name": "ElementaryTypeName", + "src": "23666:6:1" + } + ], + "id": 1319, + "name": "VariableDeclaration", + "src": "23666:26:1" + } + ], + "id": 1320, + "name": "ParameterList", + "src": "23630:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1321, + "name": "ElementaryTypeName", + "src": "23717:5:1" + } + ], + "id": 1322, + "name": "VariableDeclaration", + "src": "23717:12:1" + } + ], + "id": 1323, + "name": "ParameterList", + "src": "23716:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1324, + "name": "Identifier", + "src": "23741:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1325, + "name": "Identifier", + "src": "23749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1326, + "name": "Identifier", + "src": "23760:6:1" + } + ], + "id": 1327, + "name": "FunctionCall", + "src": "23749:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: static call to non-contract\"", + "value": "Address: static call to non-contract" + }, + "id": 1328, + "name": "Literal", + "src": "23769:38:1" + } + ], + "id": 1329, + "name": "FunctionCall", + "src": "23741:67:1" + } + ], + "id": 1330, + "name": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "attributes": { + "assignments": [ + 1332, + 1334 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1346, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1331, + "name": "ElementaryTypeName", + "src": "23879:4:1" + } + ], + "id": 1332, + "name": "VariableDeclaration", + "src": "23879:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1346, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1333, + "name": "ElementaryTypeName", + "src": "23893:5:1" + } + ], + "id": 1334, + "name": "VariableDeclaration", + "src": "23893:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "staticcall", + "type": "function (bytes memory) view returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1335, + "name": "Identifier", + "src": "23920:6:1" + } + ], + "id": 1336, + "name": "MemberAccess", + "src": "23920:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1317, + "type": "bytes memory", + "value": "data" + }, + "id": 1337, + "name": "Identifier", + "src": "23938:4:1" + } + ], + "id": 1338, + "name": "FunctionCall", + "src": "23920:23:1" + } + ], + "id": 1339, + "name": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "attributes": { + "functionReturnParameters": 1323 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1340, + "name": "Identifier", + "src": "23960:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1332, + "type": "bool", + "value": "success" + }, + "id": 1341, + "name": "Identifier", + "src": "23978:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1334, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1342, + "name": "Identifier", + "src": "23987:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1319, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1343, + "name": "Identifier", + "src": "23999:12:1" + } + ], + "id": 1344, + "name": "FunctionCall", + "src": "23960:52:1" + } + ], + "id": 1345, + "name": "Return", + "src": "23953:59:1" + } + ], + "id": 1346, + "name": "Block", + "src": "23731:288:1" + } + ], + "id": 1347, + "name": "FunctionDefinition", + "src": "23603:416:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1348, + "name": "StructuredDocumentation", + "src": "24025:168:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1364, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1349, + "name": "ElementaryTypeName", + "src": "24228:7:1" + } + ], + "id": 1350, + "name": "VariableDeclaration", + "src": "24228:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1351, + "name": "ElementaryTypeName", + "src": "24244:5:1" + } + ], + "id": 1352, + "name": "VariableDeclaration", + "src": "24244:17:1" + } + ], + "id": 1353, + "name": "ParameterList", + "src": "24227:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1354, + "name": "ElementaryTypeName", + "src": "24281:5:1" + } + ], + "id": 1355, + "name": "VariableDeclaration", + "src": "24281:12:1" + } + ], + "id": 1356, + "name": "ParameterList", + "src": "24280:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1356 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionDelegateCall" + }, + "id": 1357, + "name": "Identifier", + "src": "24312:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1350, + "type": "address", + "value": "target" + }, + "id": 1358, + "name": "Identifier", + "src": "24333:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1352, + "type": "bytes memory", + "value": "data" + }, + "id": 1359, + "name": "Identifier", + "src": "24341:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level delegate call failed\"", + "value": "Address: low-level delegate call failed" + }, + "id": 1360, + "name": "Literal", + "src": "24347:41:1" + } + ], + "id": 1361, + "name": "FunctionCall", + "src": "24312:77:1" + } + ], + "id": 1362, + "name": "Return", + "src": "24305:84:1" + } + ], + "id": 1363, + "name": "Block", + "src": "24295:101:1" + } + ], + "id": 1364, + "name": "FunctionDefinition", + "src": "24198:198:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1365, + "name": "StructuredDocumentation", + "src": "24402:175:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1399, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1366, + "name": "ElementaryTypeName", + "src": "24612:7:1" + } + ], + "id": 1367, + "name": "VariableDeclaration", + "src": "24612:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1368, + "name": "ElementaryTypeName", + "src": "24628:5:1" + } + ], + "id": 1369, + "name": "VariableDeclaration", + "src": "24628:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1370, + "name": "ElementaryTypeName", + "src": "24647:6:1" + } + ], + "id": 1371, + "name": "VariableDeclaration", + "src": "24647:26:1" + } + ], + "id": 1372, + "name": "ParameterList", + "src": "24611:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1373, + "name": "ElementaryTypeName", + "src": "24693:5:1" + } + ], + "id": 1374, + "name": "VariableDeclaration", + "src": "24693:12:1" + } + ], + "id": 1375, + "name": "ParameterList", + "src": "24692:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1376, + "name": "Identifier", + "src": "24717:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1377, + "name": "Identifier", + "src": "24725:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1378, + "name": "Identifier", + "src": "24736:6:1" + } + ], + "id": 1379, + "name": "FunctionCall", + "src": "24725:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: delegate call to non-contract\"", + "value": "Address: delegate call to non-contract" + }, + "id": 1380, + "name": "Literal", + "src": "24745:40:1" + } + ], + "id": 1381, + "name": "FunctionCall", + "src": "24717:69:1" + } + ], + "id": 1382, + "name": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "attributes": { + "assignments": [ + 1384, + 1386 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1398, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1383, + "name": "ElementaryTypeName", + "src": "24857:4:1" + } + ], + "id": 1384, + "name": "VariableDeclaration", + "src": "24857:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1398, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1385, + "name": "ElementaryTypeName", + "src": "24871:5:1" + } + ], + "id": 1386, + "name": "VariableDeclaration", + "src": "24871:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "delegatecall", + "type": "function (bytes memory) returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1387, + "name": "Identifier", + "src": "24898:6:1" + } + ], + "id": 1388, + "name": "MemberAccess", + "src": "24898:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1369, + "type": "bytes memory", + "value": "data" + }, + "id": 1389, + "name": "Identifier", + "src": "24918:4:1" + } + ], + "id": 1390, + "name": "FunctionCall", + "src": "24898:25:1" + } + ], + "id": 1391, + "name": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "attributes": { + "functionReturnParameters": 1375 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1392, + "name": "Identifier", + "src": "24940:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1384, + "type": "bool", + "value": "success" + }, + "id": 1393, + "name": "Identifier", + "src": "24958:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1386, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1394, + "name": "Identifier", + "src": "24967:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1371, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1395, + "name": "Identifier", + "src": "24979:12:1" + } + ], + "id": 1396, + "name": "FunctionCall", + "src": "24940:52:1" + } + ], + "id": 1397, + "name": "Return", + "src": "24933:59:1" + } + ], + "id": 1398, + "name": "Block", + "src": "24707:292:1" + } + ], + "id": 1399, + "name": "FunctionDefinition", + "src": "24582:417:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_verifyCallResult", + "scope": 1430, + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1429, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1400, + "name": "ElementaryTypeName", + "src": "25032:4:1" + } + ], + "id": 1401, + "name": "VariableDeclaration", + "src": "25032:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1402, + "name": "ElementaryTypeName", + "src": "25046:5:1" + } + ], + "id": 1403, + "name": "VariableDeclaration", + "src": "25046:23:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1404, + "name": "ElementaryTypeName", + "src": "25071:6:1" + } + ], + "id": 1405, + "name": "VariableDeclaration", + "src": "25071:26:1" + } + ], + "id": 1406, + "name": "ParameterList", + "src": "25031:67:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1407, + "name": "ElementaryTypeName", + "src": "25120:5:1" + } + ], + "id": 1408, + "name": "VariableDeclaration", + "src": "25120:12:1" + } + ], + "id": 1409, + "name": "ParameterList", + "src": "25119:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1401, + "type": "bool", + "value": "success" + }, + "id": 1410, + "name": "Identifier", + "src": "25148:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1409 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1411, + "name": "Identifier", + "src": "25178:10:1" + } + ], + "id": 1412, + "name": "Return", + "src": "25171:17:1" + } + ], + "id": 1413, + "name": "Block", + "src": "25157:42:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1414, + "name": "Identifier", + "src": "25289:10:1" + } + ], + "id": 1415, + "name": "MemberAccess", + "src": "25289:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1416, + "name": "Literal", + "src": "25309:1:1" + } + ], + "id": 1417, + "name": "BinaryOperation", + "src": "25289:21:1" + }, + { + "children": [ + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "operations": "{\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n}" + }, + "children": [], + "id": 1418, + "name": "InlineAssembly", + "src": "25487:154:1" + } + ], + "id": 1419, + "name": "Block", + "src": "25312:343:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "type": "function (string memory) pure", + "value": "revert" + }, + "id": 1420, + "name": "Identifier", + "src": "25679:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1405, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1421, + "name": "Identifier", + "src": "25686:12:1" + } + ], + "id": 1422, + "name": "FunctionCall", + "src": "25679:20:1" + } + ], + "id": 1423, + "name": "ExpressionStatement", + "src": "25679:20:1" + } + ], + "id": 1424, + "name": "Block", + "src": "25661:53:1" + } + ], + "id": 1425, + "name": "IfStatement", + "src": "25285:429:1" + } + ], + "id": 1426, + "name": "Block", + "src": "25205:519:1" + } + ], + "id": 1427, + "name": "IfStatement", + "src": "25144:580:1" + } + ], + "id": 1428, + "name": "Block", + "src": "25134:596:1" + } + ], + "id": 1429, + "name": "FunctionDefinition", + "src": "25005:725:1" + } + ], + "id": 1430, + "name": "ContractDefinition", + "src": "18048:7684:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1431, + "name": "PragmaDirective", + "src": "25791:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "id": 1432, + "name": "StructuredDocumentation", + "src": "25824:686:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Set", + "name": "Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_values", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "bytes32[]" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1433, + "name": "ElementaryTypeName", + "src": "27033:7:1" + } + ], + "id": 1434, + "name": "ArrayTypeName", + "src": "27033:9:1" + } + ], + "id": 1435, + "name": "VariableDeclaration", + "src": "27033:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1436, + "name": "ElementaryTypeName", + "src": "27193:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1437, + "name": "ElementaryTypeName", + "src": "27204:7:1" + } + ], + "id": 1438, + "name": "Mapping", + "src": "27184:28:1" + } + ], + "id": 1439, + "name": "VariableDeclaration", + "src": "27184:37:1" + } + ], + "id": 1440, + "name": "StructDefinition", + "src": "26979:249:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1441, + "name": "StructuredDocumentation", + "src": "27234:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1481, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1442, + "name": "UserDefinedTypeName", + "src": "27412:3:1" + } + ], + "id": 1443, + "name": "VariableDeclaration", + "src": "27412:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1444, + "name": "ElementaryTypeName", + "src": "27429:7:1" + } + ], + "id": 1445, + "name": "VariableDeclaration", + "src": "27429:13:1" + } + ], + "id": 1446, + "name": "ParameterList", + "src": "27411:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1447, + "name": "ElementaryTypeName", + "src": "27461:4:1" + } + ], + "id": 1448, + "name": "VariableDeclaration", + "src": "27461:4:1" + } + ], + "id": 1449, + "name": "ParameterList", + "src": "27460:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1450, + "name": "Identifier", + "src": "27482:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1451, + "name": "Identifier", + "src": "27492:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1452, + "name": "Identifier", + "src": "27497:5:1" + } + ], + "id": 1453, + "name": "FunctionCall", + "src": "27482:21:1" + } + ], + "id": 1454, + "name": "UnaryOperation", + "src": "27481:22:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1455, + "name": "Identifier", + "src": "27519:3:1" + } + ], + "id": 1458, + "name": "MemberAccess", + "src": "27519:11:1" + } + ], + "id": 1459, + "name": "MemberAccess", + "src": "27519:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1460, + "name": "Identifier", + "src": "27536:5:1" + } + ], + "id": 1461, + "name": "FunctionCall", + "src": "27519:23:1" + } + ], + "id": 1462, + "name": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1463, + "name": "Identifier", + "src": "27677:3:1" + } + ], + "id": 1466, + "name": "MemberAccess", + "src": "27677:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1465, + "name": "Identifier", + "src": "27690:5:1" + } + ], + "id": 1467, + "name": "IndexAccess", + "src": "27677:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1468, + "name": "Identifier", + "src": "27699:3:1" + } + ], + "id": 1469, + "name": "MemberAccess", + "src": "27699:11:1" + } + ], + "id": 1470, + "name": "MemberAccess", + "src": "27699:18:1" + } + ], + "id": 1471, + "name": "Assignment", + "src": "27677:40:1" + } + ], + "id": 1472, + "name": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1473, + "name": "Literal", + "src": "27738:4:1" + } + ], + "id": 1474, + "name": "Return", + "src": "27731:11:1" + } + ], + "id": 1475, + "name": "Block", + "src": "27505:248:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1476, + "name": "Literal", + "src": "27780:5:1" + } + ], + "id": 1477, + "name": "Return", + "src": "27773:12:1" + } + ], + "id": 1478, + "name": "Block", + "src": "27759:37:1" + } + ], + "id": 1479, + "name": "IfStatement", + "src": "27477:319:1" + } + ], + "id": 1480, + "name": "Block", + "src": "27467:335:1" + } + ], + "id": 1481, + "name": "FunctionDefinition", + "src": "27398:404:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1482, + "name": "StructuredDocumentation", + "src": "27808:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1561, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1483, + "name": "UserDefinedTypeName", + "src": "27987:3:1" + } + ], + "id": 1484, + "name": "VariableDeclaration", + "src": "27987:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1485, + "name": "ElementaryTypeName", + "src": "28004:7:1" + } + ], + "id": 1486, + "name": "VariableDeclaration", + "src": "28004:13:1" + } + ], + "id": 1487, + "name": "ParameterList", + "src": "27986:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1488, + "name": "ElementaryTypeName", + "src": "28036:4:1" + } + ], + "id": 1489, + "name": "VariableDeclaration", + "src": "28036:4:1" + } + ], + "id": 1490, + "name": "ParameterList", + "src": "28035:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1492 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "valueIndex", + "scope": 1560, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1491, + "name": "ElementaryTypeName", + "src": "28152:7:1" + } + ], + "id": 1492, + "name": "VariableDeclaration", + "src": "28152:18:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1493, + "name": "Identifier", + "src": "28173:3:1" + } + ], + "id": 1494, + "name": "MemberAccess", + "src": "28173:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1495, + "name": "Identifier", + "src": "28186:5:1" + } + ], + "id": 1496, + "name": "IndexAccess", + "src": "28173:19:1" + } + ], + "id": 1497, + "name": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1498, + "name": "Identifier", + "src": "28207:10:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1499, + "name": "Literal", + "src": "28221:1:1" + } + ], + "id": 1500, + "name": "BinaryOperation", + "src": "28207:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1501, + "name": "ElementaryTypeName", + "src": "28564:7:1" + } + ], + "id": 1502, + "name": "VariableDeclaration", + "src": "28564:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1503, + "name": "Identifier", + "src": "28588:10:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1504, + "name": "Literal", + "src": "28601:1:1" + } + ], + "id": 1505, + "name": "BinaryOperation", + "src": "28588:14:1" + } + ], + "id": 1506, + "name": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "attributes": { + "assignments": [ + 1508 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1507, + "name": "ElementaryTypeName", + "src": "28616:7:1" + } + ], + "id": 1508, + "name": "VariableDeclaration", + "src": "28616:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1509, + "name": "Identifier", + "src": "28636:3:1" + } + ], + "id": 1510, + "name": "MemberAccess", + "src": "28636:11:1" + } + ], + "id": 1511, + "name": "MemberAccess", + "src": "28636:18:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1512, + "name": "Literal", + "src": "28657:1:1" + } + ], + "id": 1513, + "name": "BinaryOperation", + "src": "28636:22:1" + } + ], + "id": 1514, + "name": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "attributes": { + "assignments": [ + 1516 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastvalue", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1515, + "name": "ElementaryTypeName", + "src": "28898:7:1" + } + ], + "id": 1516, + "name": "VariableDeclaration", + "src": "28898:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1517, + "name": "Identifier", + "src": "28918:3:1" + } + ], + "id": 1518, + "name": "MemberAccess", + "src": "28918:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1508, + "type": "uint256", + "value": "lastIndex" + }, + "id": 1519, + "name": "Identifier", + "src": "28930:9:1" + } + ], + "id": 1520, + "name": "IndexAccess", + "src": "28918:22:1" + } + ], + "id": 1521, + "name": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1522, + "name": "Identifier", + "src": "29032:3:1" + } + ], + "id": 1525, + "name": "MemberAccess", + "src": "29032:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1524, + "name": "Identifier", + "src": "29044:13:1" + } + ], + "id": 1526, + "name": "IndexAccess", + "src": "29032:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1527, + "name": "Identifier", + "src": "29061:9:1" + } + ], + "id": 1528, + "name": "Assignment", + "src": "29032:38:1" + } + ], + "id": 1529, + "name": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1530, + "name": "Identifier", + "src": "29136:3:1" + } + ], + "id": 1533, + "name": "MemberAccess", + "src": "29136:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1532, + "name": "Identifier", + "src": "29149:9:1" + } + ], + "id": 1534, + "name": "IndexAccess", + "src": "29136:23:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1535, + "name": "Identifier", + "src": "29162:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1536, + "name": "Literal", + "src": "29178:1:1" + } + ], + "id": 1537, + "name": "BinaryOperation", + "src": "29162:17:1" + } + ], + "id": 1538, + "name": "Assignment", + "src": "29136:43:1" + } + ], + "id": 1539, + "name": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1540, + "name": "Identifier", + "src": "29285:3:1" + } + ], + "id": 1543, + "name": "MemberAccess", + "src": "29285:11:1" + } + ], + "id": 1544, + "name": "MemberAccess", + "src": "29285:15:1" + } + ], + "id": 1545, + "name": "FunctionCall", + "src": "29285:17:1" + } + ], + "id": 1546, + "name": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1547, + "name": "Identifier", + "src": "29377:3:1" + } + ], + "id": 1548, + "name": "MemberAccess", + "src": "29377:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1549, + "name": "Identifier", + "src": "29390:5:1" + } + ], + "id": 1550, + "name": "IndexAccess", + "src": "29377:19:1" + } + ], + "id": 1551, + "name": "UnaryOperation", + "src": "29370:26:1" + } + ], + "id": 1552, + "name": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1553, + "name": "Literal", + "src": "29418:4:1" + } + ], + "id": 1554, + "name": "Return", + "src": "29411:11:1" + } + ], + "id": 1555, + "name": "Block", + "src": "28224:1209:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1556, + "name": "Literal", + "src": "29460:5:1" + } + ], + "id": 1557, + "name": "Return", + "src": "29453:12:1" + } + ], + "id": 1558, + "name": "Block", + "src": "29439:37:1" + } + ], + "id": 1559, + "name": "IfStatement", + "src": "28203:1273:1" + } + ], + "id": 1560, + "name": "Block", + "src": "28042:1440:1" + } + ], + "id": 1561, + "name": "FunctionDefinition", + "src": "27970:1512:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1562, + "name": "StructuredDocumentation", + "src": "29488:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1579, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1563, + "name": "UserDefinedTypeName", + "src": "29582:3:1" + } + ], + "id": 1564, + "name": "VariableDeclaration", + "src": "29582:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1565, + "name": "ElementaryTypeName", + "src": "29599:7:1" + } + ], + "id": 1566, + "name": "VariableDeclaration", + "src": "29599:13:1" + } + ], + "id": 1567, + "name": "ParameterList", + "src": "29581:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1568, + "name": "ElementaryTypeName", + "src": "29636:4:1" + } + ], + "id": 1569, + "name": "VariableDeclaration", + "src": "29636:4:1" + } + ], + "id": 1570, + "name": "ParameterList", + "src": "29635:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1570 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1564, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1571, + "name": "Identifier", + "src": "29659:3:1" + } + ], + "id": 1572, + "name": "MemberAccess", + "src": "29659:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1566, + "type": "bytes32", + "value": "value" + }, + "id": 1573, + "name": "Identifier", + "src": "29672:5:1" + } + ], + "id": 1574, + "name": "IndexAccess", + "src": "29659:19:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1575, + "name": "Literal", + "src": "29682:1:1" + } + ], + "id": 1576, + "name": "BinaryOperation", + "src": "29659:24:1" + } + ], + "id": 1577, + "name": "Return", + "src": "29652:31:1" + } + ], + "id": 1578, + "name": "Block", + "src": "29642:48:1" + } + ], + "id": 1579, + "name": "FunctionDefinition", + "src": "29563:127:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1580, + "name": "StructuredDocumentation", + "src": "29696:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1592, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1581, + "name": "UserDefinedTypeName", + "src": "29788:3:1" + } + ], + "id": 1582, + "name": "VariableDeclaration", + "src": "29788:15:1" + } + ], + "id": 1583, + "name": "ParameterList", + "src": "29787:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1592, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1584, + "name": "ElementaryTypeName", + "src": "29827:7:1" + } + ], + "id": 1585, + "name": "VariableDeclaration", + "src": "29827:7:1" + } + ], + "id": 1586, + "name": "ParameterList", + "src": "29826:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1586 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1582, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1587, + "name": "Identifier", + "src": "29853:3:1" + } + ], + "id": 1588, + "name": "MemberAccess", + "src": "29853:11:1" + } + ], + "id": 1589, + "name": "MemberAccess", + "src": "29853:18:1" + } + ], + "id": 1590, + "name": "Return", + "src": "29846:25:1" + } + ], + "id": 1591, + "name": "Block", + "src": "29836:42:1" + } + ], + "id": 1592, + "name": "FunctionDefinition", + "src": "29771:107:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1593, + "name": "StructuredDocumentation", + "src": "29883:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1617, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1594, + "name": "UserDefinedTypeName", + "src": "30223:3:1" + } + ], + "id": 1595, + "name": "VariableDeclaration", + "src": "30223:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1596, + "name": "ElementaryTypeName", + "src": "30240:7:1" + } + ], + "id": 1597, + "name": "VariableDeclaration", + "src": "30240:13:1" + } + ], + "id": 1598, + "name": "ParameterList", + "src": "30222:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1599, + "name": "ElementaryTypeName", + "src": "30277:7:1" + } + ], + "id": 1600, + "name": "VariableDeclaration", + "src": "30277:7:1" + } + ], + "id": 1601, + "name": "ParameterList", + "src": "30276:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1602, + "name": "Identifier", + "src": "30296:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1603, + "name": "Identifier", + "src": "30304:3:1" + } + ], + "id": 1604, + "name": "MemberAccess", + "src": "30304:11:1" + } + ], + "id": 1605, + "name": "MemberAccess", + "src": "30304:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1606, + "name": "Identifier", + "src": "30325:5:1" + } + ], + "id": 1607, + "name": "BinaryOperation", + "src": "30304:26:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableSet: index out of bounds\"", + "value": "EnumerableSet: index out of bounds" + }, + "id": 1608, + "name": "Literal", + "src": "30332:36:1" + } + ], + "id": 1609, + "name": "FunctionCall", + "src": "30296:73:1" + } + ], + "id": 1610, + "name": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "attributes": { + "functionReturnParameters": 1601 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1611, + "name": "Identifier", + "src": "30386:3:1" + } + ], + "id": 1612, + "name": "MemberAccess", + "src": "30386:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1613, + "name": "Identifier", + "src": "30398:5:1" + } + ], + "id": 1614, + "name": "IndexAccess", + "src": "30386:18:1" + } + ], + "id": 1615, + "name": "Return", + "src": "30379:25:1" + } + ], + "id": 1616, + "name": "Block", + "src": "30286:125:1" + } + ], + "id": 1617, + "name": "FunctionDefinition", + "src": "30210:201:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Bytes32Set", + "name": "Bytes32Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1620, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1618, + "name": "UserDefinedTypeName", + "src": "30464:3:1" + } + ], + "id": 1619, + "name": "VariableDeclaration", + "src": "30464:10:1" + } + ], + "id": 1620, + "name": "StructDefinition", + "src": "30436:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1621, + "name": "StructuredDocumentation", + "src": "30487:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1637, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1622, + "name": "UserDefinedTypeName", + "src": "30664:10:1" + } + ], + "id": 1623, + "name": "VariableDeclaration", + "src": "30664:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1624, + "name": "ElementaryTypeName", + "src": "30688:7:1" + } + ], + "id": 1625, + "name": "VariableDeclaration", + "src": "30688:13:1" + } + ], + "id": 1626, + "name": "ParameterList", + "src": "30663:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1627, + "name": "ElementaryTypeName", + "src": "30721:4:1" + } + ], + "id": 1628, + "name": "VariableDeclaration", + "src": "30721:4:1" + } + ], + "id": 1629, + "name": "ParameterList", + "src": "30720:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1629 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1630, + "name": "Identifier", + "src": "30744:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1623, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1631, + "name": "Identifier", + "src": "30749:3:1" + } + ], + "id": 1632, + "name": "MemberAccess", + "src": "30749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1625, + "type": "bytes32", + "value": "value" + }, + "id": 1633, + "name": "Identifier", + "src": "30761:5:1" + } + ], + "id": 1634, + "name": "FunctionCall", + "src": "30744:23:1" + } + ], + "id": 1635, + "name": "Return", + "src": "30737:30:1" + } + ], + "id": 1636, + "name": "Block", + "src": "30727:47:1" + } + ], + "id": 1637, + "name": "FunctionDefinition", + "src": "30651:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1638, + "name": "StructuredDocumentation", + "src": "30780:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1654, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1639, + "name": "UserDefinedTypeName", + "src": "30958:10:1" + } + ], + "id": 1640, + "name": "VariableDeclaration", + "src": "30958:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1641, + "name": "ElementaryTypeName", + "src": "30982:7:1" + } + ], + "id": 1642, + "name": "VariableDeclaration", + "src": "30982:13:1" + } + ], + "id": 1643, + "name": "ParameterList", + "src": "30957:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1644, + "name": "ElementaryTypeName", + "src": "31015:4:1" + } + ], + "id": 1645, + "name": "VariableDeclaration", + "src": "31015:4:1" + } + ], + "id": 1646, + "name": "ParameterList", + "src": "31014:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1646 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1647, + "name": "Identifier", + "src": "31038:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1640, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1648, + "name": "Identifier", + "src": "31046:3:1" + } + ], + "id": 1649, + "name": "MemberAccess", + "src": "31046:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1642, + "type": "bytes32", + "value": "value" + }, + "id": 1650, + "name": "Identifier", + "src": "31058:5:1" + } + ], + "id": 1651, + "name": "FunctionCall", + "src": "31038:26:1" + } + ], + "id": 1652, + "name": "Return", + "src": "31031:33:1" + } + ], + "id": 1653, + "name": "Block", + "src": "31021:50:1" + } + ], + "id": 1654, + "name": "FunctionDefinition", + "src": "30942:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1655, + "name": "StructuredDocumentation", + "src": "31077:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1671, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1656, + "name": "UserDefinedTypeName", + "src": "31170:10:1" + } + ], + "id": 1657, + "name": "VariableDeclaration", + "src": "31170:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1658, + "name": "ElementaryTypeName", + "src": "31194:7:1" + } + ], + "id": 1659, + "name": "VariableDeclaration", + "src": "31194:13:1" + } + ], + "id": 1660, + "name": "ParameterList", + "src": "31169:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1661, + "name": "ElementaryTypeName", + "src": "31232:4:1" + } + ], + "id": 1662, + "name": "VariableDeclaration", + "src": "31232:4:1" + } + ], + "id": 1663, + "name": "ParameterList", + "src": "31231:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1663 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1664, + "name": "Identifier", + "src": "31255:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1657, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1665, + "name": "Identifier", + "src": "31265:3:1" + } + ], + "id": 1666, + "name": "MemberAccess", + "src": "31265:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1659, + "type": "bytes32", + "value": "value" + }, + "id": 1667, + "name": "Identifier", + "src": "31277:5:1" + } + ], + "id": 1668, + "name": "FunctionCall", + "src": "31255:28:1" + } + ], + "id": 1669, + "name": "Return", + "src": "31248:35:1" + } + ], + "id": 1670, + "name": "Block", + "src": "31238:52:1" + } + ], + "id": 1671, + "name": "FunctionDefinition", + "src": "31152:138:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1672, + "name": "StructuredDocumentation", + "src": "31296:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1685, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1673, + "name": "UserDefinedTypeName", + "src": "31387:10:1" + } + ], + "id": 1674, + "name": "VariableDeclaration", + "src": "31387:22:1" + } + ], + "id": 1675, + "name": "ParameterList", + "src": "31386:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1685, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1676, + "name": "ElementaryTypeName", + "src": "31434:7:1" + } + ], + "id": 1677, + "name": "VariableDeclaration", + "src": "31434:7:1" + } + ], + "id": 1678, + "name": "ParameterList", + "src": "31433:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1678 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1679, + "name": "Identifier", + "src": "31460:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1674, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1680, + "name": "Identifier", + "src": "31468:3:1" + } + ], + "id": 1681, + "name": "MemberAccess", + "src": "31468:10:1" + } + ], + "id": 1682, + "name": "FunctionCall", + "src": "31460:19:1" + } + ], + "id": 1683, + "name": "Return", + "src": "31453:26:1" + } + ], + "id": 1684, + "name": "Block", + "src": "31443:43:1" + } + ], + "id": 1685, + "name": "FunctionDefinition", + "src": "31371:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1686, + "name": "StructuredDocumentation", + "src": "31491:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1702, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1687, + "name": "UserDefinedTypeName", + "src": "31830:10:1" + } + ], + "id": 1688, + "name": "VariableDeclaration", + "src": "31830:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1689, + "name": "ElementaryTypeName", + "src": "31854:7:1" + } + ], + "id": 1690, + "name": "VariableDeclaration", + "src": "31854:13:1" + } + ], + "id": 1691, + "name": "ParameterList", + "src": "31829:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1692, + "name": "ElementaryTypeName", + "src": "31892:7:1" + } + ], + "id": 1693, + "name": "VariableDeclaration", + "src": "31892:7:1" + } + ], + "id": 1694, + "name": "ParameterList", + "src": "31891:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1695, + "name": "Identifier", + "src": "31918:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1688, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1696, + "name": "Identifier", + "src": "31922:3:1" + } + ], + "id": 1697, + "name": "MemberAccess", + "src": "31922:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1690, + "type": "uint256", + "value": "index" + }, + "id": 1698, + "name": "Identifier", + "src": "31934:5:1" + } + ], + "id": 1699, + "name": "FunctionCall", + "src": "31918:22:1" + } + ], + "id": 1700, + "name": "Return", + "src": "31911:29:1" + } + ], + "id": 1701, + "name": "Block", + "src": "31901:46:1" + } + ], + "id": 1702, + "name": "FunctionDefinition", + "src": "31818:129:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.AddressSet", + "name": "AddressSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1705, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1703, + "name": "UserDefinedTypeName", + "src": "32000:3:1" + } + ], + "id": 1704, + "name": "VariableDeclaration", + "src": "32000:10:1" + } + ], + "id": 1705, + "name": "StructDefinition", + "src": "31972:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1706, + "name": "StructuredDocumentation", + "src": "32023:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1731, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1707, + "name": "UserDefinedTypeName", + "src": "32200:10:1" + } + ], + "id": 1708, + "name": "VariableDeclaration", + "src": "32200:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1709, + "name": "ElementaryTypeName", + "src": "32224:7:1" + } + ], + "id": 1710, + "name": "VariableDeclaration", + "src": "32224:13:1" + } + ], + "id": 1711, + "name": "ParameterList", + "src": "32199:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1712, + "name": "ElementaryTypeName", + "src": "32257:4:1" + } + ], + "id": 1713, + "name": "VariableDeclaration", + "src": "32257:4:1" + } + ], + "id": 1714, + "name": "ParameterList", + "src": "32256:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1714 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1715, + "name": "Identifier", + "src": "32280:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1708, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1716, + "name": "Identifier", + "src": "32285:3:1" + } + ], + "id": 1717, + "name": "MemberAccess", + "src": "32285:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1718, + "name": "ElementaryTypeName", + "src": "32297:7:1" + } + ], + "id": 1719, + "name": "ElementaryTypeNameExpression", + "src": "32297:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1720, + "name": "ElementaryTypeName", + "src": "32305:7:1" + } + ], + "id": 1721, + "name": "ElementaryTypeNameExpression", + "src": "32305:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1722, + "name": "ElementaryTypeName", + "src": "32313:7:1" + } + ], + "id": 1723, + "name": "ElementaryTypeNameExpression", + "src": "32313:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1710, + "type": "address", + "value": "value" + }, + "id": 1724, + "name": "Identifier", + "src": "32321:5:1" + } + ], + "id": 1725, + "name": "FunctionCall", + "src": "32313:14:1" + } + ], + "id": 1726, + "name": "FunctionCall", + "src": "32305:23:1" + } + ], + "id": 1727, + "name": "FunctionCall", + "src": "32297:32:1" + } + ], + "id": 1728, + "name": "FunctionCall", + "src": "32280:50:1" + } + ], + "id": 1729, + "name": "Return", + "src": "32273:57:1" + } + ], + "id": 1730, + "name": "Block", + "src": "32263:74:1" + } + ], + "id": 1731, + "name": "FunctionDefinition", + "src": "32187:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1732, + "name": "StructuredDocumentation", + "src": "32343:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1757, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1733, + "name": "UserDefinedTypeName", + "src": "32521:10:1" + } + ], + "id": 1734, + "name": "VariableDeclaration", + "src": "32521:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1735, + "name": "ElementaryTypeName", + "src": "32545:7:1" + } + ], + "id": 1736, + "name": "VariableDeclaration", + "src": "32545:13:1" + } + ], + "id": 1737, + "name": "ParameterList", + "src": "32520:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1738, + "name": "ElementaryTypeName", + "src": "32578:4:1" + } + ], + "id": 1739, + "name": "VariableDeclaration", + "src": "32578:4:1" + } + ], + "id": 1740, + "name": "ParameterList", + "src": "32577:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1740 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1741, + "name": "Identifier", + "src": "32601:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1734, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1742, + "name": "Identifier", + "src": "32609:3:1" + } + ], + "id": 1743, + "name": "MemberAccess", + "src": "32609:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1744, + "name": "ElementaryTypeName", + "src": "32621:7:1" + } + ], + "id": 1745, + "name": "ElementaryTypeNameExpression", + "src": "32621:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1746, + "name": "ElementaryTypeName", + "src": "32629:7:1" + } + ], + "id": 1747, + "name": "ElementaryTypeNameExpression", + "src": "32629:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1748, + "name": "ElementaryTypeName", + "src": "32637:7:1" + } + ], + "id": 1749, + "name": "ElementaryTypeNameExpression", + "src": "32637:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1736, + "type": "address", + "value": "value" + }, + "id": 1750, + "name": "Identifier", + "src": "32645:5:1" + } + ], + "id": 1751, + "name": "FunctionCall", + "src": "32637:14:1" + } + ], + "id": 1752, + "name": "FunctionCall", + "src": "32629:23:1" + } + ], + "id": 1753, + "name": "FunctionCall", + "src": "32621:32:1" + } + ], + "id": 1754, + "name": "FunctionCall", + "src": "32601:53:1" + } + ], + "id": 1755, + "name": "Return", + "src": "32594:60:1" + } + ], + "id": 1756, + "name": "Block", + "src": "32584:77:1" + } + ], + "id": 1757, + "name": "FunctionDefinition", + "src": "32505:156:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1758, + "name": "StructuredDocumentation", + "src": "32667:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1783, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1759, + "name": "UserDefinedTypeName", + "src": "32760:10:1" + } + ], + "id": 1760, + "name": "VariableDeclaration", + "src": "32760:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1761, + "name": "ElementaryTypeName", + "src": "32784:7:1" + } + ], + "id": 1762, + "name": "VariableDeclaration", + "src": "32784:13:1" + } + ], + "id": 1763, + "name": "ParameterList", + "src": "32759:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1764, + "name": "ElementaryTypeName", + "src": "32822:4:1" + } + ], + "id": 1765, + "name": "VariableDeclaration", + "src": "32822:4:1" + } + ], + "id": 1766, + "name": "ParameterList", + "src": "32821:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1766 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1767, + "name": "Identifier", + "src": "32845:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1760, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1768, + "name": "Identifier", + "src": "32855:3:1" + } + ], + "id": 1769, + "name": "MemberAccess", + "src": "32855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1770, + "name": "ElementaryTypeName", + "src": "32867:7:1" + } + ], + "id": 1771, + "name": "ElementaryTypeNameExpression", + "src": "32867:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1772, + "name": "ElementaryTypeName", + "src": "32875:7:1" + } + ], + "id": 1773, + "name": "ElementaryTypeNameExpression", + "src": "32875:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1774, + "name": "ElementaryTypeName", + "src": "32883:7:1" + } + ], + "id": 1775, + "name": "ElementaryTypeNameExpression", + "src": "32883:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1762, + "type": "address", + "value": "value" + }, + "id": 1776, + "name": "Identifier", + "src": "32891:5:1" + } + ], + "id": 1777, + "name": "FunctionCall", + "src": "32883:14:1" + } + ], + "id": 1778, + "name": "FunctionCall", + "src": "32875:23:1" + } + ], + "id": 1779, + "name": "FunctionCall", + "src": "32867:32:1" + } + ], + "id": 1780, + "name": "FunctionCall", + "src": "32845:55:1" + } + ], + "id": 1781, + "name": "Return", + "src": "32838:62:1" + } + ], + "id": 1782, + "name": "Block", + "src": "32828:79:1" + } + ], + "id": 1783, + "name": "FunctionDefinition", + "src": "32742:165:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1784, + "name": "StructuredDocumentation", + "src": "32913:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1797, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1785, + "name": "UserDefinedTypeName", + "src": "33004:10:1" + } + ], + "id": 1786, + "name": "VariableDeclaration", + "src": "33004:22:1" + } + ], + "id": 1787, + "name": "ParameterList", + "src": "33003:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1797, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1788, + "name": "ElementaryTypeName", + "src": "33051:7:1" + } + ], + "id": 1789, + "name": "VariableDeclaration", + "src": "33051:7:1" + } + ], + "id": 1790, + "name": "ParameterList", + "src": "33050:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1790 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1791, + "name": "Identifier", + "src": "33077:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1786, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1792, + "name": "Identifier", + "src": "33085:3:1" + } + ], + "id": 1793, + "name": "MemberAccess", + "src": "33085:10:1" + } + ], + "id": 1794, + "name": "FunctionCall", + "src": "33077:19:1" + } + ], + "id": 1795, + "name": "Return", + "src": "33070:26:1" + } + ], + "id": 1796, + "name": "Block", + "src": "33060:43:1" + } + ], + "id": 1797, + "name": "FunctionDefinition", + "src": "32988:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1798, + "name": "StructuredDocumentation", + "src": "33108:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1823, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1799, + "name": "UserDefinedTypeName", + "src": "33447:10:1" + } + ], + "id": 1800, + "name": "VariableDeclaration", + "src": "33447:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1801, + "name": "ElementaryTypeName", + "src": "33471:7:1" + } + ], + "id": 1802, + "name": "VariableDeclaration", + "src": "33471:13:1" + } + ], + "id": 1803, + "name": "ParameterList", + "src": "33446:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1804, + "name": "ElementaryTypeName", + "src": "33509:7:1" + } + ], + "id": 1805, + "name": "VariableDeclaration", + "src": "33509:7:1" + } + ], + "id": 1806, + "name": "ParameterList", + "src": "33508:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1806 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1807, + "name": "ElementaryTypeName", + "src": "33535:7:1" + } + ], + "id": 1808, + "name": "ElementaryTypeNameExpression", + "src": "33535:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1809, + "name": "ElementaryTypeName", + "src": "33543:7:1" + } + ], + "id": 1810, + "name": "ElementaryTypeNameExpression", + "src": "33543:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1811, + "name": "ElementaryTypeName", + "src": "33551:7:1" + } + ], + "id": 1812, + "name": "ElementaryTypeNameExpression", + "src": "33551:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1813, + "name": "Identifier", + "src": "33559:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1800, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1814, + "name": "Identifier", + "src": "33563:3:1" + } + ], + "id": 1815, + "name": "MemberAccess", + "src": "33563:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1802, + "type": "uint256", + "value": "index" + }, + "id": 1816, + "name": "Identifier", + "src": "33575:5:1" + } + ], + "id": 1817, + "name": "FunctionCall", + "src": "33559:22:1" + } + ], + "id": 1818, + "name": "FunctionCall", + "src": "33551:31:1" + } + ], + "id": 1819, + "name": "FunctionCall", + "src": "33543:40:1" + } + ], + "id": 1820, + "name": "FunctionCall", + "src": "33535:49:1" + } + ], + "id": 1821, + "name": "Return", + "src": "33528:56:1" + } + ], + "id": 1822, + "name": "Block", + "src": "33518:73:1" + } + ], + "id": 1823, + "name": "FunctionDefinition", + "src": "33435:156:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.UintSet", + "name": "UintSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1826, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1824, + "name": "UserDefinedTypeName", + "src": "33639:3:1" + } + ], + "id": 1825, + "name": "VariableDeclaration", + "src": "33639:10:1" + } + ], + "id": 1826, + "name": "StructDefinition", + "src": "33614:42:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1827, + "name": "StructuredDocumentation", + "src": "33662:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1846, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1828, + "name": "UserDefinedTypeName", + "src": "33839:7:1" + } + ], + "id": 1829, + "name": "VariableDeclaration", + "src": "33839:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1830, + "name": "ElementaryTypeName", + "src": "33860:7:1" + } + ], + "id": 1831, + "name": "VariableDeclaration", + "src": "33860:13:1" + } + ], + "id": 1832, + "name": "ParameterList", + "src": "33838:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1833, + "name": "ElementaryTypeName", + "src": "33893:4:1" + } + ], + "id": 1834, + "name": "VariableDeclaration", + "src": "33893:4:1" + } + ], + "id": 1835, + "name": "ParameterList", + "src": "33892:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1835 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1836, + "name": "Identifier", + "src": "33916:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1829, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1837, + "name": "Identifier", + "src": "33921:3:1" + } + ], + "id": 1838, + "name": "MemberAccess", + "src": "33921:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1839, + "name": "ElementaryTypeName", + "src": "33933:7:1" + } + ], + "id": 1840, + "name": "ElementaryTypeNameExpression", + "src": "33933:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1831, + "type": "uint256", + "value": "value" + }, + "id": 1841, + "name": "Identifier", + "src": "33941:5:1" + } + ], + "id": 1842, + "name": "FunctionCall", + "src": "33933:14:1" + } + ], + "id": 1843, + "name": "FunctionCall", + "src": "33916:32:1" + } + ], + "id": 1844, + "name": "Return", + "src": "33909:39:1" + } + ], + "id": 1845, + "name": "Block", + "src": "33899:56:1" + } + ], + "id": 1846, + "name": "FunctionDefinition", + "src": "33826:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1847, + "name": "StructuredDocumentation", + "src": "33961:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1866, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1848, + "name": "UserDefinedTypeName", + "src": "34139:7:1" + } + ], + "id": 1849, + "name": "VariableDeclaration", + "src": "34139:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1850, + "name": "ElementaryTypeName", + "src": "34160:7:1" + } + ], + "id": 1851, + "name": "VariableDeclaration", + "src": "34160:13:1" + } + ], + "id": 1852, + "name": "ParameterList", + "src": "34138:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1853, + "name": "ElementaryTypeName", + "src": "34193:4:1" + } + ], + "id": 1854, + "name": "VariableDeclaration", + "src": "34193:4:1" + } + ], + "id": 1855, + "name": "ParameterList", + "src": "34192:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1855 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1856, + "name": "Identifier", + "src": "34216:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1849, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1857, + "name": "Identifier", + "src": "34224:3:1" + } + ], + "id": 1858, + "name": "MemberAccess", + "src": "34224:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1859, + "name": "ElementaryTypeName", + "src": "34236:7:1" + } + ], + "id": 1860, + "name": "ElementaryTypeNameExpression", + "src": "34236:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1851, + "type": "uint256", + "value": "value" + }, + "id": 1861, + "name": "Identifier", + "src": "34244:5:1" + } + ], + "id": 1862, + "name": "FunctionCall", + "src": "34236:14:1" + } + ], + "id": 1863, + "name": "FunctionCall", + "src": "34216:35:1" + } + ], + "id": 1864, + "name": "Return", + "src": "34209:42:1" + } + ], + "id": 1865, + "name": "Block", + "src": "34199:59:1" + } + ], + "id": 1866, + "name": "FunctionDefinition", + "src": "34123:135:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1867, + "name": "StructuredDocumentation", + "src": "34264:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1886, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1868, + "name": "UserDefinedTypeName", + "src": "34357:7:1" + } + ], + "id": 1869, + "name": "VariableDeclaration", + "src": "34357:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1870, + "name": "ElementaryTypeName", + "src": "34378:7:1" + } + ], + "id": 1871, + "name": "VariableDeclaration", + "src": "34378:13:1" + } + ], + "id": 1872, + "name": "ParameterList", + "src": "34356:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1873, + "name": "ElementaryTypeName", + "src": "34416:4:1" + } + ], + "id": 1874, + "name": "VariableDeclaration", + "src": "34416:4:1" + } + ], + "id": 1875, + "name": "ParameterList", + "src": "34415:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1875 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1876, + "name": "Identifier", + "src": "34439:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1869, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1877, + "name": "Identifier", + "src": "34449:3:1" + } + ], + "id": 1878, + "name": "MemberAccess", + "src": "34449:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1879, + "name": "ElementaryTypeName", + "src": "34461:7:1" + } + ], + "id": 1880, + "name": "ElementaryTypeNameExpression", + "src": "34461:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1871, + "type": "uint256", + "value": "value" + }, + "id": 1881, + "name": "Identifier", + "src": "34469:5:1" + } + ], + "id": 1882, + "name": "FunctionCall", + "src": "34461:14:1" + } + ], + "id": 1883, + "name": "FunctionCall", + "src": "34439:37:1" + } + ], + "id": 1884, + "name": "Return", + "src": "34432:44:1" + } + ], + "id": 1885, + "name": "Block", + "src": "34422:61:1" + } + ], + "id": 1886, + "name": "FunctionDefinition", + "src": "34339:144:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1887, + "name": "StructuredDocumentation", + "src": "34489:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1900, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1888, + "name": "UserDefinedTypeName", + "src": "34580:7:1" + } + ], + "id": 1889, + "name": "VariableDeclaration", + "src": "34580:19:1" + } + ], + "id": 1890, + "name": "ParameterList", + "src": "34579:21:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1900, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1891, + "name": "ElementaryTypeName", + "src": "34624:7:1" + } + ], + "id": 1892, + "name": "VariableDeclaration", + "src": "34624:7:1" + } + ], + "id": 1893, + "name": "ParameterList", + "src": "34623:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1894, + "name": "Identifier", + "src": "34650:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1889, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1895, + "name": "Identifier", + "src": "34658:3:1" + } + ], + "id": 1896, + "name": "MemberAccess", + "src": "34658:10:1" + } + ], + "id": 1897, + "name": "FunctionCall", + "src": "34650:19:1" + } + ], + "id": 1898, + "name": "Return", + "src": "34643:26:1" + } + ], + "id": 1899, + "name": "Block", + "src": "34633:43:1" + } + ], + "id": 1900, + "name": "FunctionDefinition", + "src": "34564:112:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1901, + "name": "StructuredDocumentation", + "src": "34681:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1920, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1902, + "name": "UserDefinedTypeName", + "src": "35020:7:1" + } + ], + "id": 1903, + "name": "VariableDeclaration", + "src": "35020:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1904, + "name": "ElementaryTypeName", + "src": "35041:7:1" + } + ], + "id": 1905, + "name": "VariableDeclaration", + "src": "35041:13:1" + } + ], + "id": 1906, + "name": "ParameterList", + "src": "35019:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1907, + "name": "ElementaryTypeName", + "src": "35079:7:1" + } + ], + "id": 1908, + "name": "VariableDeclaration", + "src": "35079:7:1" + } + ], + "id": 1909, + "name": "ParameterList", + "src": "35078:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1909 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1910, + "name": "ElementaryTypeName", + "src": "35105:7:1" + } + ], + "id": 1911, + "name": "ElementaryTypeNameExpression", + "src": "35105:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1912, + "name": "Identifier", + "src": "35113:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1903, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1913, + "name": "Identifier", + "src": "35117:3:1" + } + ], + "id": 1914, + "name": "MemberAccess", + "src": "35117:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1905, + "type": "uint256", + "value": "index" + }, + "id": 1915, + "name": "Identifier", + "src": "35129:5:1" + } + ], + "id": 1916, + "name": "FunctionCall", + "src": "35113:22:1" + } + ], + "id": 1917, + "name": "FunctionCall", + "src": "35105:31:1" + } + ], + "id": 1918, + "name": "Return", + "src": "35098:38:1" + } + ], + "id": 1919, + "name": "Block", + "src": "35088:55:1" + } + ], + "id": 1920, + "name": "FunctionDefinition", + "src": "35008:135:1" + } + ], + "id": 1921, + "name": "ContractDefinition", + "src": "26511:8634:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1922, + "name": "PragmaDirective", + "src": "35204:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "id": 1923, + "name": "StructuredDocumentation", + "src": "35237:705:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.MapEntry", + "name": "MapEntry", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_key", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1924, + "name": "ElementaryTypeName", + "src": "36455:7:1" + } + ], + "id": 1925, + "name": "VariableDeclaration", + "src": "36455:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_value", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1926, + "name": "ElementaryTypeName", + "src": "36477:7:1" + } + ], + "id": 1927, + "name": "VariableDeclaration", + "src": "36477:14:1" + } + ], + "id": 1928, + "name": "StructDefinition", + "src": "36429:69:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.Map", + "name": "Map", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_entries", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.MapEntry[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "struct EnumerableMap.MapEntry[]" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 1929, + "name": "UserDefinedTypeName", + "src": "36567:8:1" + } + ], + "id": 1930, + "name": "ArrayTypeName", + "src": "36567:10:1" + } + ], + "id": 1931, + "name": "VariableDeclaration", + "src": "36567:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1932, + "name": "ElementaryTypeName", + "src": "36745:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1933, + "name": "ElementaryTypeName", + "src": "36756:7:1" + } + ], + "id": 1934, + "name": "Mapping", + "src": "36736:28:1" + } + ], + "id": 1935, + "name": "VariableDeclaration", + "src": "36736:37:1" + } + ], + "id": 1936, + "name": "StructDefinition", + "src": "36504:276:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1937, + "name": "StructuredDocumentation", + "src": "36786:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 1998, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 1938, + "name": "UserDefinedTypeName", + "src": "37021:3:1" + } + ], + "id": 1939, + "name": "VariableDeclaration", + "src": "37021:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1940, + "name": "ElementaryTypeName", + "src": "37038:7:1" + } + ], + "id": 1941, + "name": "VariableDeclaration", + "src": "37038:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1942, + "name": "ElementaryTypeName", + "src": "37051:7:1" + } + ], + "id": 1943, + "name": "VariableDeclaration", + "src": "37051:13:1" + } + ], + "id": 1944, + "name": "ParameterList", + "src": "37020:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1945, + "name": "ElementaryTypeName", + "src": "37083:4:1" + } + ], + "id": 1946, + "name": "VariableDeclaration", + "src": "37083:4:1" + } + ], + "id": 1947, + "name": "ParameterList", + "src": "37082:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1949 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 1997, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1948, + "name": "ElementaryTypeName", + "src": "37197:7:1" + } + ], + "id": 1949, + "name": "VariableDeclaration", + "src": "37197:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1950, + "name": "Identifier", + "src": "37216:3:1" + } + ], + "id": 1951, + "name": "MemberAccess", + "src": "37216:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1952, + "name": "Identifier", + "src": "37229:3:1" + } + ], + "id": 1953, + "name": "IndexAccess", + "src": "37216:17:1" + } + ], + "id": 1954, + "name": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1955, + "name": "Identifier", + "src": "37248:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1956, + "name": "Literal", + "src": "37260:1:1" + } + ], + "id": 1957, + "name": "BinaryOperation", + "src": "37248:13:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (struct EnumerableMap.MapEntry storage ref)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1958, + "name": "Identifier", + "src": "37314:3:1" + } + ], + "id": 1961, + "name": "MemberAccess", + "src": "37314:12:1" + } + ], + "id": 1962, + "name": "MemberAccess", + "src": "37314:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": true, + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "tryCall": false, + "type": "struct EnumerableMap.MapEntry memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1928, + "type": "type(struct EnumerableMap.MapEntry storage pointer)", + "value": "MapEntry" + }, + "id": 1963, + "name": "Identifier", + "src": "37332:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1964, + "name": "Identifier", + "src": "37349:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1965, + "name": "Identifier", + "src": "37362:5:1" + } + ], + "id": 1966, + "name": "FunctionCall", + "src": "37332:38:1" + } + ], + "id": 1967, + "name": "FunctionCall", + "src": "37314:57:1" + } + ], + "id": 1968, + "name": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1969, + "name": "Identifier", + "src": "37506:3:1" + } + ], + "id": 1972, + "name": "MemberAccess", + "src": "37506:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1971, + "name": "Identifier", + "src": "37519:3:1" + } + ], + "id": 1973, + "name": "IndexAccess", + "src": "37506:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1974, + "name": "Identifier", + "src": "37526:3:1" + } + ], + "id": 1975, + "name": "MemberAccess", + "src": "37526:12:1" + } + ], + "id": 1976, + "name": "MemberAccess", + "src": "37526:19:1" + } + ], + "id": 1977, + "name": "Assignment", + "src": "37506:39:1" + } + ], + "id": 1978, + "name": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1979, + "name": "Literal", + "src": "37566:4:1" + } + ], + "id": 1980, + "name": "Return", + "src": "37559:11:1" + } + ], + "id": 1981, + "name": "Block", + "src": "37263:318:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1982, + "name": "Identifier", + "src": "37601:3:1" + } + ], + "id": 1987, + "name": "MemberAccess", + "src": "37601:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1984, + "name": "Identifier", + "src": "37614:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1985, + "name": "Literal", + "src": "37625:1:1" + } + ], + "id": 1986, + "name": "BinaryOperation", + "src": "37614:12:1" + } + ], + "id": 1988, + "name": "IndexAccess", + "src": "37601:26:1" + } + ], + "id": 1989, + "name": "MemberAccess", + "src": "37601:33:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1990, + "name": "Identifier", + "src": "37637:5:1" + } + ], + "id": 1991, + "name": "Assignment", + "src": "37601:41:1" + } + ], + "id": 1992, + "name": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1993, + "name": "Literal", + "src": "37663:5:1" + } + ], + "id": 1994, + "name": "Return", + "src": "37656:12:1" + } + ], + "id": 1995, + "name": "Block", + "src": "37587:92:1" + } + ], + "id": 1996, + "name": "IfStatement", + "src": "37244:435:1" + } + ], + "id": 1997, + "name": "Block", + "src": "37089:596:1" + } + ], + "id": 1998, + "name": "FunctionDefinition", + "src": "37007:678:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 1999, + "name": "StructuredDocumentation", + "src": "37691:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2079, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2000, + "name": "UserDefinedTypeName", + "src": "37870:3:1" + } + ], + "id": 2001, + "name": "VariableDeclaration", + "src": "37870:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2002, + "name": "ElementaryTypeName", + "src": "37887:7:1" + } + ], + "id": 2003, + "name": "VariableDeclaration", + "src": "37887:11:1" + } + ], + "id": 2004, + "name": "ParameterList", + "src": "37869:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2005, + "name": "ElementaryTypeName", + "src": "37917:4:1" + } + ], + "id": 2006, + "name": "VariableDeclaration", + "src": "37917:4:1" + } + ], + "id": 2007, + "name": "ParameterList", + "src": "37916:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2009 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2078, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2008, + "name": "ElementaryTypeName", + "src": "38031:7:1" + } + ], + "id": 2009, + "name": "VariableDeclaration", + "src": "38031:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2010, + "name": "Identifier", + "src": "38050:3:1" + } + ], + "id": 2011, + "name": "MemberAccess", + "src": "38050:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2012, + "name": "Identifier", + "src": "38063:3:1" + } + ], + "id": 2013, + "name": "IndexAccess", + "src": "38050:17:1" + } + ], + "id": 2014, + "name": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2015, + "name": "Identifier", + "src": "38082:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2016, + "name": "Literal", + "src": "38094:1:1" + } + ], + "id": 2017, + "name": "BinaryOperation", + "src": "38082:13:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2019 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2018, + "name": "ElementaryTypeName", + "src": "38438:7:1" + } + ], + "id": 2019, + "name": "VariableDeclaration", + "src": "38438:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2020, + "name": "Identifier", + "src": "38462:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2021, + "name": "Literal", + "src": "38473:1:1" + } + ], + "id": 2022, + "name": "BinaryOperation", + "src": "38462:12:1" + } + ], + "id": 2023, + "name": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "attributes": { + "assignments": [ + 2025 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2024, + "name": "ElementaryTypeName", + "src": "38488:7:1" + } + ], + "id": 2025, + "name": "VariableDeclaration", + "src": "38488:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2026, + "name": "Identifier", + "src": "38508:3:1" + } + ], + "id": 2027, + "name": "MemberAccess", + "src": "38508:12:1" + } + ], + "id": 2028, + "name": "MemberAccess", + "src": "38508:19:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2029, + "name": "Literal", + "src": "38530:1:1" + } + ], + "id": 2030, + "name": "BinaryOperation", + "src": "38508:23:1" + } + ], + "id": 2031, + "name": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "attributes": { + "assignments": [ + 2033 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastEntry", + "scope": 2073, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2032, + "name": "UserDefinedTypeName", + "src": "38771:8:1" + } + ], + "id": 2033, + "name": "VariableDeclaration", + "src": "38771:26:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2034, + "name": "Identifier", + "src": "38800:3:1" + } + ], + "id": 2035, + "name": "MemberAccess", + "src": "38800:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2025, + "type": "uint256", + "value": "lastIndex" + }, + "id": 2036, + "name": "Identifier", + "src": "38813:9:1" + } + ], + "id": 2037, + "name": "IndexAccess", + "src": "38800:23:1" + } + ], + "id": 2038, + "name": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2039, + "name": "Identifier", + "src": "38915:3:1" + } + ], + "id": 2042, + "name": "MemberAccess", + "src": "38915:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2041, + "name": "Identifier", + "src": "38928:13:1" + } + ], + "id": 2043, + "name": "IndexAccess", + "src": "38915:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2044, + "name": "Identifier", + "src": "38945:9:1" + } + ], + "id": 2045, + "name": "Assignment", + "src": "38915:39:1" + } + ], + "id": 2046, + "name": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2047, + "name": "Identifier", + "src": "39020:3:1" + } + ], + "id": 2051, + "name": "MemberAccess", + "src": "39020:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2049, + "name": "Identifier", + "src": "39033:9:1" + } + ], + "id": 2050, + "name": "MemberAccess", + "src": "39033:14:1" + } + ], + "id": 2052, + "name": "IndexAccess", + "src": "39020:28:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2053, + "name": "Identifier", + "src": "39051:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2054, + "name": "Literal", + "src": "39067:1:1" + } + ], + "id": 2055, + "name": "BinaryOperation", + "src": "39051:17:1" + } + ], + "id": 2056, + "name": "Assignment", + "src": "39020:48:1" + } + ], + "id": 2057, + "name": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2058, + "name": "Identifier", + "src": "39174:3:1" + } + ], + "id": 2061, + "name": "MemberAccess", + "src": "39174:12:1" + } + ], + "id": 2062, + "name": "MemberAccess", + "src": "39174:16:1" + } + ], + "id": 2063, + "name": "FunctionCall", + "src": "39174:18:1" + } + ], + "id": 2064, + "name": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2065, + "name": "Identifier", + "src": "39267:3:1" + } + ], + "id": 2066, + "name": "MemberAccess", + "src": "39267:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2067, + "name": "Identifier", + "src": "39280:3:1" + } + ], + "id": 2068, + "name": "IndexAccess", + "src": "39267:17:1" + } + ], + "id": 2069, + "name": "UnaryOperation", + "src": "39260:24:1" + } + ], + "id": 2070, + "name": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2071, + "name": "Literal", + "src": "39306:4:1" + } + ], + "id": 2072, + "name": "Return", + "src": "39299:11:1" + } + ], + "id": 2073, + "name": "Block", + "src": "38097:1224:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2074, + "name": "Literal", + "src": "39348:5:1" + } + ], + "id": 2075, + "name": "Return", + "src": "39341:12:1" + } + ], + "id": 2076, + "name": "Block", + "src": "39327:37:1" + } + ], + "id": 2077, + "name": "IfStatement", + "src": "38078:1286:1" + } + ], + "id": 2078, + "name": "Block", + "src": "37923:1447:1" + } + ], + "id": 2079, + "name": "FunctionDefinition", + "src": "37853:1517:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2080, + "name": "StructuredDocumentation", + "src": "39376:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2097, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2081, + "name": "UserDefinedTypeName", + "src": "39468:3:1" + } + ], + "id": 2082, + "name": "VariableDeclaration", + "src": "39468:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2083, + "name": "ElementaryTypeName", + "src": "39485:7:1" + } + ], + "id": 2084, + "name": "VariableDeclaration", + "src": "39485:11:1" + } + ], + "id": 2085, + "name": "ParameterList", + "src": "39467:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2086, + "name": "ElementaryTypeName", + "src": "39520:4:1" + } + ], + "id": 2087, + "name": "VariableDeclaration", + "src": "39520:4:1" + } + ], + "id": 2088, + "name": "ParameterList", + "src": "39519:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2088 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2082, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2089, + "name": "Identifier", + "src": "39543:3:1" + } + ], + "id": 2090, + "name": "MemberAccess", + "src": "39543:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2084, + "type": "bytes32", + "value": "key" + }, + "id": 2091, + "name": "Identifier", + "src": "39556:3:1" + } + ], + "id": 2092, + "name": "IndexAccess", + "src": "39543:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2093, + "name": "Literal", + "src": "39564:1:1" + } + ], + "id": 2094, + "name": "BinaryOperation", + "src": "39543:22:1" + } + ], + "id": 2095, + "name": "Return", + "src": "39536:29:1" + } + ], + "id": 2096, + "name": "Block", + "src": "39526:46:1" + } + ], + "id": 2097, + "name": "FunctionDefinition", + "src": "39449:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2098, + "name": "StructuredDocumentation", + "src": "39578:79:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2110, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2099, + "name": "UserDefinedTypeName", + "src": "39679:3:1" + } + ], + "id": 2100, + "name": "VariableDeclaration", + "src": "39679:15:1" + } + ], + "id": 2101, + "name": "ParameterList", + "src": "39678:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2102, + "name": "ElementaryTypeName", + "src": "39718:7:1" + } + ], + "id": 2103, + "name": "VariableDeclaration", + "src": "39718:7:1" + } + ], + "id": 2104, + "name": "ParameterList", + "src": "39717:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2104 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2100, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2105, + "name": "Identifier", + "src": "39744:3:1" + } + ], + "id": 2106, + "name": "MemberAccess", + "src": "39744:12:1" + } + ], + "id": 2107, + "name": "MemberAccess", + "src": "39744:19:1" + } + ], + "id": 2108, + "name": "Return", + "src": "39737:26:1" + } + ], + "id": 2109, + "name": "Block", + "src": "39727:43:1" + } + ], + "id": 2110, + "name": "FunctionDefinition", + "src": "39662:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2111, + "name": "StructuredDocumentation", + "src": "39775:333:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2145, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2112, + "name": "UserDefinedTypeName", + "src": "40126:3:1" + } + ], + "id": 2113, + "name": "VariableDeclaration", + "src": "40126:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2114, + "name": "ElementaryTypeName", + "src": "40143:7:1" + } + ], + "id": 2115, + "name": "VariableDeclaration", + "src": "40143:13:1" + } + ], + "id": 2116, + "name": "ParameterList", + "src": "40125:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2117, + "name": "ElementaryTypeName", + "src": "40180:7:1" + } + ], + "id": 2118, + "name": "VariableDeclaration", + "src": "40180:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2119, + "name": "ElementaryTypeName", + "src": "40189:7:1" + } + ], + "id": 2120, + "name": "VariableDeclaration", + "src": "40189:7:1" + } + ], + "id": 2121, + "name": "ParameterList", + "src": "40179:18:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2122, + "name": "Identifier", + "src": "40208:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2123, + "name": "Identifier", + "src": "40216:3:1" + } + ], + "id": 2124, + "name": "MemberAccess", + "src": "40216:12:1" + } + ], + "id": 2125, + "name": "MemberAccess", + "src": "40216:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2126, + "name": "Identifier", + "src": "40238:5:1" + } + ], + "id": 2127, + "name": "BinaryOperation", + "src": "40216:27:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: index out of bounds\"", + "value": "EnumerableMap: index out of bounds" + }, + "id": 2128, + "name": "Literal", + "src": "40245:36:1" + } + ], + "id": 2129, + "name": "FunctionCall", + "src": "40208:74:1" + } + ], + "id": 2130, + "name": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "attributes": { + "assignments": [ + 2132 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "entry", + "scope": 2144, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2131, + "name": "UserDefinedTypeName", + "src": "40293:8:1" + } + ], + "id": 2132, + "name": "VariableDeclaration", + "src": "40293:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2133, + "name": "Identifier", + "src": "40318:3:1" + } + ], + "id": 2134, + "name": "MemberAccess", + "src": "40318:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2135, + "name": "Identifier", + "src": "40331:5:1" + } + ], + "id": 2136, + "name": "IndexAccess", + "src": "40318:19:1" + } + ], + "id": 2137, + "name": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2121 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bytes32,bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2138, + "name": "Identifier", + "src": "40355:5:1" + } + ], + "id": 2139, + "name": "MemberAccess", + "src": "40355:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2140, + "name": "Identifier", + "src": "40367:5:1" + } + ], + "id": 2141, + "name": "MemberAccess", + "src": "40367:12:1" + } + ], + "id": 2142, + "name": "TupleExpression", + "src": "40354:26:1" + } + ], + "id": 2143, + "name": "Return", + "src": "40347:33:1" + } + ], + "id": 2144, + "name": "Block", + "src": "40198:189:1" + } + ], + "id": 2145, + "name": "FunctionDefinition", + "src": "40113:274:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2146, + "name": "StructuredDocumentation", + "src": "40393:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2183, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2147, + "name": "UserDefinedTypeName", + "src": "40546:3:1" + } + ], + "id": 2148, + "name": "VariableDeclaration", + "src": "40546:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2149, + "name": "ElementaryTypeName", + "src": "40563:7:1" + } + ], + "id": 2150, + "name": "VariableDeclaration", + "src": "40563:11:1" + } + ], + "id": 2151, + "name": "ParameterList", + "src": "40545:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2152, + "name": "ElementaryTypeName", + "src": "40598:4:1" + } + ], + "id": 2153, + "name": "VariableDeclaration", + "src": "40598:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2154, + "name": "ElementaryTypeName", + "src": "40604:7:1" + } + ], + "id": 2155, + "name": "VariableDeclaration", + "src": "40604:7:1" + } + ], + "id": 2156, + "name": "ParameterList", + "src": "40597:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2158 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2182, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2157, + "name": "ElementaryTypeName", + "src": "40623:7:1" + } + ], + "id": 2158, + "name": "VariableDeclaration", + "src": "40623:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2159, + "name": "Identifier", + "src": "40642:3:1" + } + ], + "id": 2160, + "name": "MemberAccess", + "src": "40642:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2150, + "type": "bytes32", + "value": "key" + }, + "id": 2161, + "name": "Identifier", + "src": "40655:3:1" + } + ], + "id": 2162, + "name": "IndexAccess", + "src": "40642:17:1" + } + ], + "id": 2163, + "name": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2164, + "name": "Identifier", + "src": "40673:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2165, + "name": "Literal", + "src": "40685:1:1" + } + ], + "id": 2166, + "name": "BinaryOperation", + "src": "40673:13:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2167, + "name": "Literal", + "src": "40696:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2168, + "name": "Literal", + "src": "40703:1:1" + } + ], + "id": 2169, + "name": "TupleExpression", + "src": "40695:10:1" + } + ], + "id": 2170, + "name": "Return", + "src": "40688:17:1" + } + ], + "id": 2171, + "name": "IfStatement", + "src": "40669:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,bytes32)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2172, + "name": "Literal", + "src": "40759:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2173, + "name": "Identifier", + "src": "40765:3:1" + } + ], + "id": 2174, + "name": "MemberAccess", + "src": "40765:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2175, + "name": "Identifier", + "src": "40778:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2176, + "name": "Literal", + "src": "40789:1:1" + } + ], + "id": 2177, + "name": "BinaryOperation", + "src": "40778:12:1" + } + ], + "id": 2178, + "name": "IndexAccess", + "src": "40765:26:1" + } + ], + "id": 2179, + "name": "MemberAccess", + "src": "40765:33:1" + } + ], + "id": 2180, + "name": "TupleExpression", + "src": "40758:41:1" + } + ], + "id": 2181, + "name": "Return", + "src": "40751:48:1" + } + ], + "id": 2182, + "name": "Block", + "src": "40613:220:1" + } + ], + "id": 2183, + "name": "FunctionDefinition", + "src": "40529:304:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2184, + "name": "StructuredDocumentation", + "src": "40839:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2216, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2185, + "name": "UserDefinedTypeName", + "src": "40999:3:1" + } + ], + "id": 2186, + "name": "VariableDeclaration", + "src": "40999:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2187, + "name": "ElementaryTypeName", + "src": "41016:7:1" + } + ], + "id": 2188, + "name": "VariableDeclaration", + "src": "41016:11:1" + } + ], + "id": 2189, + "name": "ParameterList", + "src": "40998:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2190, + "name": "ElementaryTypeName", + "src": "41051:7:1" + } + ], + "id": 2191, + "name": "VariableDeclaration", + "src": "41051:7:1" + } + ], + "id": 2192, + "name": "ParameterList", + "src": "41050:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2194 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2215, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2193, + "name": "ElementaryTypeName", + "src": "41070:7:1" + } + ], + "id": 2194, + "name": "VariableDeclaration", + "src": "41070:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2195, + "name": "Identifier", + "src": "41089:3:1" + } + ], + "id": 2196, + "name": "MemberAccess", + "src": "41089:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2188, + "type": "bytes32", + "value": "key" + }, + "id": 2197, + "name": "Identifier", + "src": "41102:3:1" + } + ], + "id": 2198, + "name": "IndexAccess", + "src": "41089:17:1" + } + ], + "id": 2199, + "name": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2200, + "name": "Identifier", + "src": "41116:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2201, + "name": "Identifier", + "src": "41124:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2202, + "name": "Literal", + "src": "41136:1:1" + } + ], + "id": 2203, + "name": "BinaryOperation", + "src": "41124:13:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: nonexistent key\"", + "value": "EnumerableMap: nonexistent key" + }, + "id": 2204, + "name": "Literal", + "src": "41139:32:1" + } + ], + "id": 2205, + "name": "FunctionCall", + "src": "41116:56:1" + } + ], + "id": 2206, + "name": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "attributes": { + "functionReturnParameters": 2192 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2207, + "name": "Identifier", + "src": "41225:3:1" + } + ], + "id": 2208, + "name": "MemberAccess", + "src": "41225:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2209, + "name": "Identifier", + "src": "41238:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2210, + "name": "Literal", + "src": "41249:1:1" + } + ], + "id": 2211, + "name": "BinaryOperation", + "src": "41238:12:1" + } + ], + "id": 2212, + "name": "IndexAccess", + "src": "41225:26:1" + } + ], + "id": 2213, + "name": "MemberAccess", + "src": "41225:33:1" + } + ], + "id": 2214, + "name": "Return", + "src": "41218:40:1" + } + ], + "id": 2215, + "name": "Block", + "src": "41060:232:1" + } + ], + "id": 2216, + "name": "FunctionDefinition", + "src": "40985:307:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2217, + "name": "StructuredDocumentation", + "src": "41298:271:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2251, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2218, + "name": "UserDefinedTypeName", + "src": "41588:3:1" + } + ], + "id": 2219, + "name": "VariableDeclaration", + "src": "41588:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2220, + "name": "ElementaryTypeName", + "src": "41605:7:1" + } + ], + "id": 2221, + "name": "VariableDeclaration", + "src": "41605:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2251, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2222, + "name": "ElementaryTypeName", + "src": "41618:6:1" + } + ], + "id": 2223, + "name": "VariableDeclaration", + "src": "41618:26:1" + } + ], + "id": 2224, + "name": "ParameterList", + "src": "41587:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2225, + "name": "ElementaryTypeName", + "src": "41668:7:1" + } + ], + "id": 2226, + "name": "VariableDeclaration", + "src": "41668:7:1" + } + ], + "id": 2227, + "name": "ParameterList", + "src": "41667:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2229 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2250, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2228, + "name": "ElementaryTypeName", + "src": "41687:7:1" + } + ], + "id": 2229, + "name": "VariableDeclaration", + "src": "41687:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2230, + "name": "Identifier", + "src": "41706:3:1" + } + ], + "id": 2231, + "name": "MemberAccess", + "src": "41706:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2221, + "type": "bytes32", + "value": "key" + }, + "id": 2232, + "name": "Identifier", + "src": "41719:3:1" + } + ], + "id": 2233, + "name": "IndexAccess", + "src": "41706:17:1" + } + ], + "id": 2234, + "name": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2235, + "name": "Identifier", + "src": "41733:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2236, + "name": "Identifier", + "src": "41741:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2237, + "name": "Literal", + "src": "41753:1:1" + } + ], + "id": 2238, + "name": "BinaryOperation", + "src": "41741:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2223, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2239, + "name": "Identifier", + "src": "41756:12:1" + } + ], + "id": 2240, + "name": "FunctionCall", + "src": "41733:36:1" + } + ], + "id": 2241, + "name": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2227 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2242, + "name": "Identifier", + "src": "41822:3:1" + } + ], + "id": 2243, + "name": "MemberAccess", + "src": "41822:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2244, + "name": "Identifier", + "src": "41835:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2245, + "name": "Literal", + "src": "41846:1:1" + } + ], + "id": 2246, + "name": "BinaryOperation", + "src": "41835:12:1" + } + ], + "id": 2247, + "name": "IndexAccess", + "src": "41822:26:1" + } + ], + "id": 2248, + "name": "MemberAccess", + "src": "41822:33:1" + } + ], + "id": 2249, + "name": "Return", + "src": "41815:40:1" + } + ], + "id": 2250, + "name": "Block", + "src": "41677:212:1" + } + ], + "id": 2251, + "name": "FunctionDefinition", + "src": "41574:315:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.UintToAddressMap", + "name": "UintToAddressMap", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 2254, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2252, + "name": "UserDefinedTypeName", + "src": "41954:3:1" + } + ], + "id": 2253, + "name": "VariableDeclaration", + "src": "41954:10:1" + } + ], + "id": 2254, + "name": "StructDefinition", + "src": "41920:51:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2255, + "name": "StructuredDocumentation", + "src": "41977:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2286, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2256, + "name": "UserDefinedTypeName", + "src": "42211:16:1" + } + ], + "id": 2257, + "name": "VariableDeclaration", + "src": "42211:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2258, + "name": "ElementaryTypeName", + "src": "42241:7:1" + } + ], + "id": 2259, + "name": "VariableDeclaration", + "src": "42241:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2260, + "name": "ElementaryTypeName", + "src": "42254:7:1" + } + ], + "id": 2261, + "name": "VariableDeclaration", + "src": "42254:13:1" + } + ], + "id": 2262, + "name": "ParameterList", + "src": "42210:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2263, + "name": "ElementaryTypeName", + "src": "42287:4:1" + } + ], + "id": 2264, + "name": "VariableDeclaration", + "src": "42287:4:1" + } + ], + "id": 2265, + "name": "ParameterList", + "src": "42286:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2265 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1998, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)", + "value": "_set" + }, + "id": 2266, + "name": "Identifier", + "src": "42310:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2257, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2267, + "name": "Identifier", + "src": "42315:3:1" + } + ], + "id": 2268, + "name": "MemberAccess", + "src": "42315:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2269, + "name": "ElementaryTypeName", + "src": "42327:7:1" + } + ], + "id": 2270, + "name": "ElementaryTypeNameExpression", + "src": "42327:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2259, + "type": "uint256", + "value": "key" + }, + "id": 2271, + "name": "Identifier", + "src": "42335:3:1" + } + ], + "id": 2272, + "name": "FunctionCall", + "src": "42327:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2273, + "name": "ElementaryTypeName", + "src": "42341:7:1" + } + ], + "id": 2274, + "name": "ElementaryTypeNameExpression", + "src": "42341:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2275, + "name": "ElementaryTypeName", + "src": "42349:7:1" + } + ], + "id": 2276, + "name": "ElementaryTypeNameExpression", + "src": "42349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2277, + "name": "ElementaryTypeName", + "src": "42357:7:1" + } + ], + "id": 2278, + "name": "ElementaryTypeNameExpression", + "src": "42357:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2261, + "type": "address", + "value": "value" + }, + "id": 2279, + "name": "Identifier", + "src": "42365:5:1" + } + ], + "id": 2280, + "name": "FunctionCall", + "src": "42357:14:1" + } + ], + "id": 2281, + "name": "FunctionCall", + "src": "42349:23:1" + } + ], + "id": 2282, + "name": "FunctionCall", + "src": "42341:32:1" + } + ], + "id": 2283, + "name": "FunctionCall", + "src": "42310:64:1" + } + ], + "id": 2284, + "name": "Return", + "src": "42303:71:1" + } + ], + "id": 2285, + "name": "Block", + "src": "42293:88:1" + } + ], + "id": 2286, + "name": "FunctionDefinition", + "src": "42198:183:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2287, + "name": "StructuredDocumentation", + "src": "42387:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2306, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2288, + "name": "UserDefinedTypeName", + "src": "42556:16:1" + } + ], + "id": 2289, + "name": "VariableDeclaration", + "src": "42556:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2290, + "name": "ElementaryTypeName", + "src": "42586:7:1" + } + ], + "id": 2291, + "name": "VariableDeclaration", + "src": "42586:11:1" + } + ], + "id": 2292, + "name": "ParameterList", + "src": "42555:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2293, + "name": "ElementaryTypeName", + "src": "42617:4:1" + } + ], + "id": 2294, + "name": "VariableDeclaration", + "src": "42617:4:1" + } + ], + "id": 2295, + "name": "ParameterList", + "src": "42616:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2295 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2079, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 2296, + "name": "Identifier", + "src": "42640:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2289, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2297, + "name": "Identifier", + "src": "42648:3:1" + } + ], + "id": 2298, + "name": "MemberAccess", + "src": "42648:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2299, + "name": "ElementaryTypeName", + "src": "42660:7:1" + } + ], + "id": 2300, + "name": "ElementaryTypeNameExpression", + "src": "42660:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2291, + "type": "uint256", + "value": "key" + }, + "id": 2301, + "name": "Identifier", + "src": "42668:3:1" + } + ], + "id": 2302, + "name": "FunctionCall", + "src": "42660:12:1" + } + ], + "id": 2303, + "name": "FunctionCall", + "src": "42640:33:1" + } + ], + "id": 2304, + "name": "Return", + "src": "42633:40:1" + } + ], + "id": 2305, + "name": "Block", + "src": "42623:57:1" + } + ], + "id": 2306, + "name": "FunctionDefinition", + "src": "42540:140:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2307, + "name": "StructuredDocumentation", + "src": "42686:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2326, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2308, + "name": "UserDefinedTypeName", + "src": "42777:16:1" + } + ], + "id": 2309, + "name": "VariableDeclaration", + "src": "42777:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2310, + "name": "ElementaryTypeName", + "src": "42807:7:1" + } + ], + "id": 2311, + "name": "VariableDeclaration", + "src": "42807:11:1" + } + ], + "id": 2312, + "name": "ParameterList", + "src": "42776:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2313, + "name": "ElementaryTypeName", + "src": "42843:4:1" + } + ], + "id": 2314, + "name": "VariableDeclaration", + "src": "42843:4:1" + } + ], + "id": 2315, + "name": "ParameterList", + "src": "42842:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2315 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2097, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 2316, + "name": "Identifier", + "src": "42866:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2309, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2317, + "name": "Identifier", + "src": "42876:3:1" + } + ], + "id": 2318, + "name": "MemberAccess", + "src": "42876:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2319, + "name": "ElementaryTypeName", + "src": "42888:7:1" + } + ], + "id": 2320, + "name": "ElementaryTypeNameExpression", + "src": "42888:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2311, + "type": "uint256", + "value": "key" + }, + "id": 2321, + "name": "Identifier", + "src": "42896:3:1" + } + ], + "id": 2322, + "name": "FunctionCall", + "src": "42888:12:1" + } + ], + "id": 2323, + "name": "FunctionCall", + "src": "42866:35:1" + } + ], + "id": 2324, + "name": "Return", + "src": "42859:42:1" + } + ], + "id": 2325, + "name": "Block", + "src": "42849:59:1" + } + ], + "id": 2326, + "name": "FunctionDefinition", + "src": "42759:149:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2327, + "name": "StructuredDocumentation", + "src": "42914:72:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2340, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2328, + "name": "UserDefinedTypeName", + "src": "43007:16:1" + } + ], + "id": 2329, + "name": "VariableDeclaration", + "src": "43007:28:1" + } + ], + "id": 2330, + "name": "ParameterList", + "src": "43006:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2340, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2331, + "name": "ElementaryTypeName", + "src": "43060:7:1" + } + ], + "id": 2332, + "name": "VariableDeclaration", + "src": "43060:7:1" + } + ], + "id": 2333, + "name": "ParameterList", + "src": "43059:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2333 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2110, + "type": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 2334, + "name": "Identifier", + "src": "43086:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2329, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2335, + "name": "Identifier", + "src": "43094:3:1" + } + ], + "id": 2336, + "name": "MemberAccess", + "src": "43094:10:1" + } + ], + "id": 2337, + "name": "FunctionCall", + "src": "43086:19:1" + } + ], + "id": 2338, + "name": "Return", + "src": "43079:26:1" + } + ], + "id": 2339, + "name": "Block", + "src": "43069:43:1" + } + ], + "id": 2340, + "name": "FunctionDefinition", + "src": "42991:121:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2341, + "name": "StructuredDocumentation", + "src": "43117:318:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2379, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2342, + "name": "UserDefinedTypeName", + "src": "43452:16:1" + } + ], + "id": 2343, + "name": "VariableDeclaration", + "src": "43452:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2344, + "name": "ElementaryTypeName", + "src": "43482:7:1" + } + ], + "id": 2345, + "name": "VariableDeclaration", + "src": "43482:13:1" + } + ], + "id": 2346, + "name": "ParameterList", + "src": "43451:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2347, + "name": "ElementaryTypeName", + "src": "43520:7:1" + } + ], + "id": 2348, + "name": "VariableDeclaration", + "src": "43520:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2349, + "name": "ElementaryTypeName", + "src": "43529:7:1" + } + ], + "id": 2350, + "name": "VariableDeclaration", + "src": "43529:7:1" + } + ], + "id": 2351, + "name": "ParameterList", + "src": "43519:18:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2353, + 2355 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2352, + "name": "ElementaryTypeName", + "src": "43549:7:1" + } + ], + "id": 2353, + "name": "VariableDeclaration", + "src": "43549:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2354, + "name": "ElementaryTypeName", + "src": "43562:7:1" + } + ], + "id": 2355, + "name": "VariableDeclaration", + "src": "43562:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bytes32,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2145, + "type": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)", + "value": "_at" + }, + "id": 2356, + "name": "Identifier", + "src": "43579:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2343, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2357, + "name": "Identifier", + "src": "43583:3:1" + } + ], + "id": 2358, + "name": "MemberAccess", + "src": "43583:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2345, + "type": "uint256", + "value": "index" + }, + "id": 2359, + "name": "Identifier", + "src": "43595:5:1" + } + ], + "id": 2360, + "name": "FunctionCall", + "src": "43579:22:1" + } + ], + "id": 2361, + "name": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "attributes": { + "functionReturnParameters": 2351 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(uint256,address payable)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2362, + "name": "ElementaryTypeName", + "src": "43619:7:1" + } + ], + "id": 2363, + "name": "ElementaryTypeNameExpression", + "src": "43619:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2353, + "type": "bytes32", + "value": "key" + }, + "id": 2364, + "name": "Identifier", + "src": "43627:3:1" + } + ], + "id": 2365, + "name": "FunctionCall", + "src": "43619:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2366, + "name": "ElementaryTypeName", + "src": "43633:7:1" + } + ], + "id": 2367, + "name": "ElementaryTypeNameExpression", + "src": "43633:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2368, + "name": "ElementaryTypeName", + "src": "43641:7:1" + } + ], + "id": 2369, + "name": "ElementaryTypeNameExpression", + "src": "43641:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2370, + "name": "ElementaryTypeName", + "src": "43649:7:1" + } + ], + "id": 2371, + "name": "ElementaryTypeNameExpression", + "src": "43649:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2355, + "type": "bytes32", + "value": "value" + }, + "id": 2372, + "name": "Identifier", + "src": "43657:5:1" + } + ], + "id": 2373, + "name": "FunctionCall", + "src": "43649:14:1" + } + ], + "id": 2374, + "name": "FunctionCall", + "src": "43641:23:1" + } + ], + "id": 2375, + "name": "FunctionCall", + "src": "43633:32:1" + } + ], + "id": 2376, + "name": "TupleExpression", + "src": "43618:48:1" + } + ], + "id": 2377, + "name": "Return", + "src": "43611:55:1" + } + ], + "id": 2378, + "name": "Block", + "src": "43538:135:1" + } + ], + "id": 2379, + "name": "FunctionDefinition", + "src": "43440:233:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2380, + "name": "StructuredDocumentation", + "src": "43679:169:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2418, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2381, + "name": "UserDefinedTypeName", + "src": "43869:16:1" + } + ], + "id": 2382, + "name": "VariableDeclaration", + "src": "43869:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2383, + "name": "ElementaryTypeName", + "src": "43899:7:1" + } + ], + "id": 2384, + "name": "VariableDeclaration", + "src": "43899:11:1" + } + ], + "id": 2385, + "name": "ParameterList", + "src": "43868:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2386, + "name": "ElementaryTypeName", + "src": "43935:4:1" + } + ], + "id": 2387, + "name": "VariableDeclaration", + "src": "43935:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2388, + "name": "ElementaryTypeName", + "src": "43941:7:1" + } + ], + "id": 2389, + "name": "VariableDeclaration", + "src": "43941:7:1" + } + ], + "id": 2390, + "name": "ParameterList", + "src": "43934:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2392, + 2394 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "43961:4:1" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "43961:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "43975:7:1" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "43975:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2183, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)", + "value": "_tryGet" + }, + "id": 2395, + "name": "Identifier", + "src": "43992:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2382, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2396, + "name": "Identifier", + "src": "44000:3:1" + } + ], + "id": 2397, + "name": "MemberAccess", + "src": "44000:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "44012:7:1" + } + ], + "id": 2399, + "name": "ElementaryTypeNameExpression", + "src": "44012:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2384, + "type": "uint256", + "value": "key" + }, + "id": 2400, + "name": "Identifier", + "src": "44020:3:1" + } + ], + "id": 2401, + "name": "FunctionCall", + "src": "44012:12:1" + } + ], + "id": 2402, + "name": "FunctionCall", + "src": "43992:33:1" + } + ], + "id": 2403, + "name": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "attributes": { + "functionReturnParameters": 2390 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,address payable)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2392, + "type": "bool", + "value": "success" + }, + "id": 2404, + "name": "Identifier", + "src": "44043:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2405, + "name": "ElementaryTypeName", + "src": "44052:7:1" + } + ], + "id": 2406, + "name": "ElementaryTypeNameExpression", + "src": "44052:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "44060:7:1" + } + ], + "id": 2408, + "name": "ElementaryTypeNameExpression", + "src": "44060:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "44068:7:1" + } + ], + "id": 2410, + "name": "ElementaryTypeNameExpression", + "src": "44068:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2394, + "type": "bytes32", + "value": "value" + }, + "id": 2411, + "name": "Identifier", + "src": "44076:5:1" + } + ], + "id": 2412, + "name": "FunctionCall", + "src": "44068:14:1" + } + ], + "id": 2413, + "name": "FunctionCall", + "src": "44060:23:1" + } + ], + "id": 2414, + "name": "FunctionCall", + "src": "44052:32:1" + } + ], + "id": 2415, + "name": "TupleExpression", + "src": "44042:43:1" + } + ], + "id": 2416, + "name": "Return", + "src": "44035:50:1" + } + ], + "id": 2417, + "name": "Block", + "src": "43950:142:1" + } + ], + "id": 2418, + "name": "FunctionDefinition", + "src": "43853:239:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2419, + "name": "StructuredDocumentation", + "src": "44098:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2447, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2420, + "name": "UserDefinedTypeName", + "src": "44257:16:1" + } + ], + "id": 2421, + "name": "VariableDeclaration", + "src": "44257:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2422, + "name": "ElementaryTypeName", + "src": "44287:7:1" + } + ], + "id": 2423, + "name": "VariableDeclaration", + "src": "44287:11:1" + } + ], + "id": 2424, + "name": "ParameterList", + "src": "44256:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2425, + "name": "ElementaryTypeName", + "src": "44323:7:1" + } + ], + "id": 2426, + "name": "VariableDeclaration", + "src": "44323:7:1" + } + ], + "id": 2427, + "name": "ParameterList", + "src": "44322:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2427 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2428, + "name": "ElementaryTypeName", + "src": "44349:7:1" + } + ], + "id": 2429, + "name": "ElementaryTypeNameExpression", + "src": "44349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2430, + "name": "ElementaryTypeName", + "src": "44357:7:1" + } + ], + "id": 2431, + "name": "ElementaryTypeNameExpression", + "src": "44357:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2432, + "name": "ElementaryTypeName", + "src": "44365:7:1" + } + ], + "id": 2433, + "name": "ElementaryTypeNameExpression", + "src": "44365:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)", + "value": "_get" + }, + "id": 2434, + "name": "Identifier", + "src": "44373:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2421, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2435, + "name": "Identifier", + "src": "44378:3:1" + } + ], + "id": 2436, + "name": "MemberAccess", + "src": "44378:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "44390:7:1" + } + ], + "id": 2438, + "name": "ElementaryTypeNameExpression", + "src": "44390:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2423, + "type": "uint256", + "value": "key" + }, + "id": 2439, + "name": "Identifier", + "src": "44398:3:1" + } + ], + "id": 2440, + "name": "FunctionCall", + "src": "44390:12:1" + } + ], + "id": 2441, + "name": "FunctionCall", + "src": "44373:30:1" + } + ], + "id": 2442, + "name": "FunctionCall", + "src": "44365:39:1" + } + ], + "id": 2443, + "name": "FunctionCall", + "src": "44357:48:1" + } + ], + "id": 2444, + "name": "FunctionCall", + "src": "44349:57:1" + } + ], + "id": 2445, + "name": "Return", + "src": "44342:64:1" + } + ], + "id": 2446, + "name": "Block", + "src": "44332:81:1" + } + ], + "id": 2447, + "name": "FunctionDefinition", + "src": "44244:169:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2448, + "name": "StructuredDocumentation", + "src": "44419:269:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2479, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2449, + "name": "UserDefinedTypeName", + "src": "44706:16:1" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "44706:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2451, + "name": "ElementaryTypeName", + "src": "44736:7:1" + } + ], + "id": 2452, + "name": "VariableDeclaration", + "src": "44736:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2479, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "44749:6:1" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "44749:26:1" + } + ], + "id": 2455, + "name": "ParameterList", + "src": "44705:71:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2456, + "name": "ElementaryTypeName", + "src": "44800:7:1" + } + ], + "id": 2457, + "name": "VariableDeclaration", + "src": "44800:7:1" + } + ], + "id": 2458, + "name": "ParameterList", + "src": "44799:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2458 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "44826:7:1" + } + ], + "id": 2460, + "name": "ElementaryTypeNameExpression", + "src": "44826:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "44834:7:1" + } + ], + "id": 2462, + "name": "ElementaryTypeNameExpression", + "src": "44834:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2463, + "name": "ElementaryTypeName", + "src": "44842:7:1" + } + ], + "id": 2464, + "name": "ElementaryTypeNameExpression", + "src": "44842:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)", + "value": "_get" + }, + "id": 2465, + "name": "Identifier", + "src": "44850:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2450, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2466, + "name": "Identifier", + "src": "44855:3:1" + } + ], + "id": 2467, + "name": "MemberAccess", + "src": "44855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2468, + "name": "ElementaryTypeName", + "src": "44867:7:1" + } + ], + "id": 2469, + "name": "ElementaryTypeNameExpression", + "src": "44867:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2452, + "type": "uint256", + "value": "key" + }, + "id": 2470, + "name": "Identifier", + "src": "44875:3:1" + } + ], + "id": 2471, + "name": "FunctionCall", + "src": "44867:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2454, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2472, + "name": "Identifier", + "src": "44881:12:1" + } + ], + "id": 2473, + "name": "FunctionCall", + "src": "44850:44:1" + } + ], + "id": 2474, + "name": "FunctionCall", + "src": "44842:53:1" + } + ], + "id": 2475, + "name": "FunctionCall", + "src": "44834:62:1" + } + ], + "id": 2476, + "name": "FunctionCall", + "src": "44826:71:1" + } + ], + "id": 2477, + "name": "Return", + "src": "44819:78:1" + } + ], + "id": 2478, + "name": "Block", + "src": "44809:95:1" + } + ], + "id": 2479, + "name": "FunctionDefinition", + "src": "44693:211:1" + } + ], + "id": 2480, + "name": "ContractDefinition", + "src": "35943:8963:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2481, + "name": "PragmaDirective", + "src": "44959:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev String operations." + }, + "id": 2482, + "name": "StructuredDocumentation", + "src": "44992:34:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toString", + "scope": 2566, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2483, + "name": "StructuredDocumentation", + "src": "45049:82:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2565, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2484, + "name": "ElementaryTypeName", + "src": "45154:7:1" + } + ], + "id": 2485, + "name": "VariableDeclaration", + "src": "45154:13:1" + } + ], + "id": 2486, + "name": "ParameterList", + "src": "45153:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2565, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "45192:6:1" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "45192:13:1" + } + ], + "id": 2489, + "name": "ParameterList", + "src": "45191:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2490, + "name": "Identifier", + "src": "45409:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2491, + "name": "Literal", + "src": "45418:1:1" + } + ], + "id": 2492, + "name": "BinaryOperation", + "src": "45409:10:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"0\"", + "value": "0" + }, + "id": 2493, + "name": "Literal", + "src": "45442:3:1" + } + ], + "id": 2494, + "name": "Return", + "src": "45435:10:1" + } + ], + "id": 2495, + "name": "Block", + "src": "45421:35:1" + } + ], + "id": 2496, + "name": "IfStatement", + "src": "45405:51:1" + }, + { + "attributes": { + "assignments": [ + 2498 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "temp", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2497, + "name": "ElementaryTypeName", + "src": "45465:7:1" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "45465:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2499, + "name": "Identifier", + "src": "45480:5:1" + } + ], + "id": 2500, + "name": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "attributes": { + "assignments": [ + 2502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "digits", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "45495:7:1" + } + ], + "id": 2502, + "name": "VariableDeclaration", + "src": "45495:14:1" + } + ], + "id": 2503, + "name": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2504, + "name": "Identifier", + "src": "45526:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2505, + "name": "Literal", + "src": "45534:1:1" + } + ], + "id": 2506, + "name": "BinaryOperation", + "src": "45526:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2507, + "name": "Identifier", + "src": "45551:6:1" + } + ], + "id": 2508, + "name": "UnaryOperation", + "src": "45551:8:1" + } + ], + "id": 2509, + "name": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2510, + "name": "Identifier", + "src": "45573:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2511, + "name": "Literal", + "src": "45581:2:1" + } + ], + "id": 2512, + "name": "Assignment", + "src": "45573:10:1" + } + ], + "id": 2513, + "name": "ExpressionStatement", + "src": "45573:10:1" + } + ], + "id": 2514, + "name": "Block", + "src": "45537:57:1" + } + ], + "id": 2515, + "name": "WhileStatement", + "src": "45519:75:1" + }, + { + "attributes": { + "assignments": [ + 2517 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "buffer", + "scope": 2564, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2516, + "name": "ElementaryTypeName", + "src": "45603:5:1" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "45603:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "function (uint256) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "45629:5:1" + } + ], + "id": 2519, + "name": "NewExpression", + "src": "45625:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2520, + "name": "Identifier", + "src": "45635:6:1" + } + ], + "id": 2521, + "name": "FunctionCall", + "src": "45625:17:1" + } + ], + "id": 2522, + "name": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "attributes": { + "assignments": [ + 2524 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2523, + "name": "ElementaryTypeName", + "src": "45652:7:1" + } + ], + "id": 2524, + "name": "VariableDeclaration", + "src": "45652:13:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2525, + "name": "Identifier", + "src": "45668:6:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2526, + "name": "Literal", + "src": "45677:1:1" + } + ], + "id": 2527, + "name": "BinaryOperation", + "src": "45668:10:1" + } + ], + "id": 2528, + "name": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2529, + "name": "Identifier", + "src": "45688:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2530, + "name": "Identifier", + "src": "45695:5:1" + } + ], + "id": 2531, + "name": "Assignment", + "src": "45688:12:1" + } + ], + "id": 2532, + "name": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2533, + "name": "Identifier", + "src": "45717:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2534, + "name": "Literal", + "src": "45725:1:1" + } + ], + "id": 2535, + "name": "BinaryOperation", + "src": "45717:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2536, + "name": "Identifier", + "src": "45742:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "--", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2524, + "type": "uint256", + "value": "index" + }, + "id": 2537, + "name": "Identifier", + "src": "45749:5:1" + } + ], + "id": 2538, + "name": "UnaryOperation", + "src": "45749:7:1" + } + ], + "id": 2539, + "name": "IndexAccess", + "src": "45742:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes1", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes1)" + }, + "children": [ + { + "attributes": { + "name": "bytes1" + }, + "id": 2540, + "name": "ElementaryTypeName", + "src": "45760:6:1" + } + ], + "id": 2541, + "name": "ElementaryTypeNameExpression", + "src": "45760:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 2542, + "name": "ElementaryTypeName", + "src": "45767:5:1" + } + ], + "id": 2543, + "name": "ElementaryTypeNameExpression", + "src": "45767:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "hexvalue": "3438", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 48", + "value": "48" + }, + "id": 2544, + "name": "Literal", + "src": "45773:2:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2545, + "name": "Identifier", + "src": "45778:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2546, + "name": "Literal", + "src": "45785:2:1" + } + ], + "id": 2547, + "name": "BinaryOperation", + "src": "45778:9:1" + } + ], + "id": 2548, + "name": "BinaryOperation", + "src": "45773:14:1" + } + ], + "id": 2549, + "name": "FunctionCall", + "src": "45767:21:1" + } + ], + "id": 2550, + "name": "FunctionCall", + "src": "45760:29:1" + } + ], + "id": 2551, + "name": "Assignment", + "src": "45742:47:1" + } + ], + "id": 2552, + "name": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2553, + "name": "Identifier", + "src": "45803:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2554, + "name": "Literal", + "src": "45811:2:1" + } + ], + "id": 2555, + "name": "Assignment", + "src": "45803:10:1" + } + ], + "id": 2556, + "name": "ExpressionStatement", + "src": "45803:10:1" + } + ], + "id": 2557, + "name": "Block", + "src": "45728:96:1" + } + ], + "id": 2558, + "name": "WhileStatement", + "src": "45710:114:1" + }, + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2559, + "name": "ElementaryTypeName", + "src": "45840:6:1" + } + ], + "id": 2560, + "name": "ElementaryTypeNameExpression", + "src": "45840:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2561, + "name": "Identifier", + "src": "45847:6:1" + } + ], + "id": 2562, + "name": "FunctionCall", + "src": "45840:14:1" + } + ], + "id": 2563, + "name": "Return", + "src": "45833:21:1" + } + ], + "id": 2564, + "name": "Block", + "src": "45207:654:1" + } + ], + "id": 2565, + "name": "FunctionDefinition", + "src": "45136:725:1" + } + ], + "id": 2566, + "name": "ContractDefinition", + "src": "45027:836:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2567, + "name": "PragmaDirective", + "src": "45922:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 2568, + "name": "StructuredDocumentation", + "src": "45955:124:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "Context", + "referencedDeclaration": 530, + "type": "contract Context" + }, + "id": 2569, + "name": "UserDefinedTypeName", + "src": "46099:7:1" + } + ], + "id": 2570, + "name": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "ERC165", + "referencedDeclaration": 781, + "type": "contract ERC165" + }, + "id": 2571, + "name": "UserDefinedTypeName", + "src": "46108:6:1" + } + ], + "id": 2572, + "name": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 2573, + "name": "UserDefinedTypeName", + "src": "46116:7:1" + } + ], + "id": 2574, + "name": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Metadata", + "referencedDeclaration": 680, + "type": "contract IERC721Metadata" + }, + "id": 2575, + "name": "UserDefinedTypeName", + "src": "46125:15:1" + } + ], + "id": 2576, + "name": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Enumerable", + "referencedDeclaration": 709, + "type": "contract IERC721Enumerable" + }, + "id": 2577, + "name": "UserDefinedTypeName", + "src": "46142:17:1" + } + ], + "id": 2578, + "name": "InheritanceSpecifier", + "src": "46142:17:1" + }, + { + "children": [ + { + "attributes": { + "name": "SafeMath", + "referencedDeclaration": 1135, + "type": "library SafeMath" + }, + "id": 2579, + "name": "UserDefinedTypeName", + "src": "46172:8:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2580, + "name": "ElementaryTypeName", + "src": "46185:7:1" + } + ], + "id": 2581, + "name": "UsingForDirective", + "src": "46166:27:1" + }, + { + "children": [ + { + "attributes": { + "name": "Address", + "referencedDeclaration": 1430, + "type": "library Address" + }, + "id": 2582, + "name": "UserDefinedTypeName", + "src": "46204:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "46216:7:1" + } + ], + "id": 2584, + "name": "UsingForDirective", + "src": "46198:26:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableSet", + "referencedDeclaration": 1921, + "type": "library EnumerableSet" + }, + "id": 2585, + "name": "UserDefinedTypeName", + "src": "46235:13:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2586, + "name": "UserDefinedTypeName", + "src": "46253:21:1" + } + ], + "id": 2587, + "name": "UsingForDirective", + "src": "46229:46:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableMap", + "referencedDeclaration": 2480, + "type": "library EnumerableMap" + }, + "id": 2588, + "name": "UserDefinedTypeName", + "src": "46286:13:1" + }, + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2589, + "name": "UserDefinedTypeName", + "src": "46304:30:1" + } + ], + "id": 2590, + "name": "UsingForDirective", + "src": "46280:55:1" + }, + { + "children": [ + { + "attributes": { + "name": "Strings", + "referencedDeclaration": 2566, + "type": "library Strings" + }, + "id": 2591, + "name": "UserDefinedTypeName", + "src": "46346:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2592, + "name": "ElementaryTypeName", + "src": "46358:7:1" + } + ], + "id": 2593, + "name": "UsingForDirective", + "src": "46340:26:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "46544:6:1" + }, + { + "attributes": { + "hexvalue": "30783135306237613032", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 353073666", + "value": "0x150b7a02" + }, + "id": 2595, + "name": "Literal", + "src": "46587:10:1" + } + ], + "id": 2596, + "name": "VariableDeclaration", + "src": "46544:53:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_holderTokens", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => struct EnumerableSet.UintSet)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct EnumerableSet.UintSet)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2597, + "name": "ElementaryTypeName", + "src": "46690:7:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2598, + "name": "UserDefinedTypeName", + "src": "46701:21:1" + } + ], + "id": 2599, + "name": "Mapping", + "src": "46681:42:1" + } + ], + "id": 2600, + "name": "VariableDeclaration", + "src": "46681:64:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenOwners", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2601, + "name": "UserDefinedTypeName", + "src": "46809:30:1" + } + ], + "id": 2602, + "name": "VariableDeclaration", + "src": "46809:51:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => address)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => address)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2603, + "name": "ElementaryTypeName", + "src": "46925:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "46936:7:1" + } + ], + "id": 2605, + "name": "Mapping", + "src": "46916:28:1" + } + ], + "id": 2606, + "name": "VariableDeclaration", + "src": "46916:52:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_operatorApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => mapping(address => bool))", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => mapping(address => bool))" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2607, + "name": "ElementaryTypeName", + "src": "47032:7:1" + }, + { + "attributes": { + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2608, + "name": "ElementaryTypeName", + "src": "47052:7:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2609, + "name": "ElementaryTypeName", + "src": "47063:4:1" + } + ], + "id": 2610, + "name": "Mapping", + "src": "47043:25:1" + } + ], + "id": 2611, + "name": "Mapping", + "src": "47023:46:1" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "47023:73:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_name", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "47121:6:1" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "47121:20:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_symbol", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "47168:6:1" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "47168:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURIs", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => string)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => string)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "47245:7:1" + }, + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2618, + "name": "ElementaryTypeName", + "src": "47256:6:1" + } + ], + "id": 2619, + "name": "Mapping", + "src": "47236:27:1" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "47236:46:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_baseURI", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2621, + "name": "ElementaryTypeName", + "src": "47305:6:1" + } + ], + "id": 2622, + "name": "VariableDeclaration", + "src": "47305:23:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2623, + "name": "ElementaryTypeName", + "src": "48204:6:1" + }, + { + "attributes": { + "hexvalue": "30783830616335386364", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2158778573", + "value": "0x80ac58cd" + }, + "id": 2624, + "name": "Literal", + "src": "48251:10:1" + } + ], + "id": 2625, + "name": "VariableDeclaration", + "src": "48204:57:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2626, + "name": "ElementaryTypeName", + "src": "48527:6:1" + }, + { + "attributes": { + "hexvalue": "30783562356531333966", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1532892063", + "value": "0x5b5e139f" + }, + "id": 2627, + "name": "Literal", + "src": "48583:10:1" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "48527:66:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "48898:6:1" + }, + { + "attributes": { + "hexvalue": "30783738306539643633", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2014223715", + "value": "0x780e9d63" + }, + "id": 2630, + "name": "Literal", + "src": "48956:10:1" + } + ], + "id": 2631, + "name": "VariableDeclaration", + "src": "48898:68:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2632, + "name": "StructuredDocumentation", + "src": "48973:108:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "name_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2633, + "name": "ElementaryTypeName", + "src": "49099:6:1" + } + ], + "id": 2634, + "name": "VariableDeclaration", + "src": "49099:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "symbol_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2635, + "name": "ElementaryTypeName", + "src": "49120:6:1" + } + ], + "id": 2636, + "name": "VariableDeclaration", + "src": "49120:21:1" + } + ], + "id": 2637, + "name": "ParameterList", + "src": "49098:44:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2638, + "name": "ParameterList", + "src": "49143:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2639, + "name": "Identifier", + "src": "49153:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2634, + "type": "string memory", + "value": "name_" + }, + "id": 2640, + "name": "Identifier", + "src": "49161:5:1" + } + ], + "id": 2641, + "name": "Assignment", + "src": "49153:13:1" + } + ], + "id": 2642, + "name": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2643, + "name": "Identifier", + "src": "49176:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2636, + "type": "string memory", + "value": "symbol_" + }, + "id": 2644, + "name": "Identifier", + "src": "49186:7:1" + } + ], + "id": 2645, + "name": "Assignment", + "src": "49176:17:1" + } + ], + "id": 2646, + "name": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2647, + "name": "Identifier", + "src": "49281:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2625, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721" + }, + "id": 2648, + "name": "Identifier", + "src": "49300:20:1" + } + ], + "id": 2649, + "name": "FunctionCall", + "src": "49281:40:1" + } + ], + "id": 2650, + "name": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2651, + "name": "Identifier", + "src": "49331:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2628, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_METADATA" + }, + "id": 2652, + "name": "Identifier", + "src": "49350:29:1" + } + ], + "id": 2653, + "name": "FunctionCall", + "src": "49331:49:1" + } + ], + "id": 2654, + "name": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2655, + "name": "Identifier", + "src": "49390:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2631, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_ENUMERABLE" + }, + "id": 2656, + "name": "Identifier", + "src": "49409:31:1" + } + ], + "id": 2657, + "name": "FunctionCall", + "src": "49390:51:1" + } + ], + "id": 2658, + "name": "ExpressionStatement", + "src": "49390:51:1" + } + ], + "id": 2659, + "name": "Block", + "src": "49143:305:1" + } + ], + "id": 2660, + "name": "FunctionDefinition", + "src": "49086:362:1" + }, + { + "attributes": { + "baseFunctions": [ + 580 + ], + "functionSelector": "70a08231", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-balanceOf}." + }, + "id": 2661, + "name": "StructuredDocumentation", + "src": "49454:48:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2665, + "name": "OverrideSpecifier", + "src": "49561:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2662, + "name": "ElementaryTypeName", + "src": "49526:7:1" + } + ], + "id": 2663, + "name": "VariableDeclaration", + "src": "49526:13:1" + } + ], + "id": 2664, + "name": "ParameterList", + "src": "49525:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2666, + "name": "ElementaryTypeName", + "src": "49579:7:1" + } + ], + "id": 2667, + "name": "VariableDeclaration", + "src": "49579:7:1" + } + ], + "id": 2668, + "name": "ParameterList", + "src": "49578:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2669, + "name": "Identifier", + "src": "49598:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2670, + "name": "Identifier", + "src": "49606:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2671, + "name": "ElementaryTypeName", + "src": "49615:7:1" + } + ], + "id": 2672, + "name": "ElementaryTypeNameExpression", + "src": "49615:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2673, + "name": "Literal", + "src": "49623:1:1" + } + ], + "id": 2674, + "name": "FunctionCall", + "src": "49615:10:1" + } + ], + "id": 2675, + "name": "BinaryOperation", + "src": "49606:19:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: balance query for the zero address\"", + "value": "ERC721: balance query for the zero address" + }, + "id": 2676, + "name": "Literal", + "src": "49627:44:1" + } + ], + "id": 2677, + "name": "FunctionCall", + "src": "49598:74:1" + } + ], + "id": 2678, + "name": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "attributes": { + "functionReturnParameters": 2668 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 1900, + "type": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2679, + "name": "Identifier", + "src": "49689:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2680, + "name": "Identifier", + "src": "49703:5:1" + } + ], + "id": 2681, + "name": "IndexAccess", + "src": "49689:20:1" + } + ], + "id": 2682, + "name": "MemberAccess", + "src": "49689:27:1" + } + ], + "id": 2683, + "name": "FunctionCall", + "src": "49689:29:1" + } + ], + "id": 2684, + "name": "Return", + "src": "49682:36:1" + } + ], + "id": 2685, + "name": "Block", + "src": "49588:137:1" + } + ], + "id": 2686, + "name": "FunctionDefinition", + "src": "49507:218:1" + }, + { + "attributes": { + "baseFunctions": [ + 588 + ], + "functionSelector": "6352211e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-ownerOf}." + }, + "id": 2687, + "name": "StructuredDocumentation", + "src": "49731:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2691, + "name": "OverrideSpecifier", + "src": "49836:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2688, + "name": "ElementaryTypeName", + "src": "49799:7:1" + } + ], + "id": 2689, + "name": "VariableDeclaration", + "src": "49799:15:1" + } + ], + "id": 2690, + "name": "ParameterList", + "src": "49798:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2692, + "name": "ElementaryTypeName", + "src": "49854:7:1" + } + ], + "id": 2693, + "name": "VariableDeclaration", + "src": "49854:7:1" + } + ], + "id": 2694, + "name": "ParameterList", + "src": "49853:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "get", + "referencedDeclaration": 2479, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2695, + "name": "Identifier", + "src": "49880:12:1" + } + ], + "id": 2696, + "name": "MemberAccess", + "src": "49880:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2689, + "type": "uint256", + "value": "tokenId" + }, + "id": 2697, + "name": "Identifier", + "src": "49897:7:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: owner query for nonexistent token\"", + "value": "ERC721: owner query for nonexistent token" + }, + "id": 2698, + "name": "Literal", + "src": "49906:43:1" + } + ], + "id": 2699, + "name": "FunctionCall", + "src": "49880:70:1" + } + ], + "id": 2700, + "name": "Return", + "src": "49873:77:1" + } + ], + "id": 2701, + "name": "Block", + "src": "49863:94:1" + } + ], + "id": 2702, + "name": "FunctionDefinition", + "src": "49782:175:1" + }, + { + "attributes": { + "baseFunctions": [ + 665 + ], + "functionSelector": "06fdde03", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-name}." + }, + "id": 2703, + "name": "StructuredDocumentation", + "src": "49963:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2705, + "name": "OverrideSpecifier", + "src": "50055:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2704, + "name": "ParameterList", + "src": "50032:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2712, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2706, + "name": "ElementaryTypeName", + "src": "50073:6:1" + } + ], + "id": 2707, + "name": "VariableDeclaration", + "src": "50073:13:1" + } + ], + "id": 2708, + "name": "ParameterList", + "src": "50072:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2708 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2709, + "name": "Identifier", + "src": "50105:5:1" + } + ], + "id": 2710, + "name": "Return", + "src": "50098:12:1" + } + ], + "id": 2711, + "name": "Block", + "src": "50088:29:1" + } + ], + "id": 2712, + "name": "FunctionDefinition", + "src": "50019:98:1" + }, + { + "attributes": { + "baseFunctions": [ + 671 + ], + "functionSelector": "95d89b41", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-symbol}." + }, + "id": 2713, + "name": "StructuredDocumentation", + "src": "50123:53:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2715, + "name": "OverrideSpecifier", + "src": "50219:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2714, + "name": "ParameterList", + "src": "50196:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2722, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2716, + "name": "ElementaryTypeName", + "src": "50237:6:1" + } + ], + "id": 2717, + "name": "VariableDeclaration", + "src": "50237:13:1" + } + ], + "id": 2718, + "name": "ParameterList", + "src": "50236:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2718 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2719, + "name": "Identifier", + "src": "50269:7:1" + } + ], + "id": 2720, + "name": "Return", + "src": "50262:14:1" + } + ], + "id": 2721, + "name": "Block", + "src": "50252:31:1" + } + ], + "id": 2722, + "name": "FunctionDefinition", + "src": "50181:102:1" + }, + { + "attributes": { + "baseFunctions": [ + 679 + ], + "functionSelector": "c87b56dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "id": 2723, + "name": "StructuredDocumentation", + "src": "50289:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2727, + "name": "OverrideSpecifier", + "src": "50404:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2790, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2724, + "name": "ElementaryTypeName", + "src": "50367:7:1" + } + ], + "id": 2725, + "name": "VariableDeclaration", + "src": "50367:15:1" + } + ], + "id": 2726, + "name": "ParameterList", + "src": "50366:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2790, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2728, + "name": "ElementaryTypeName", + "src": "50422:6:1" + } + ], + "id": 2729, + "name": "VariableDeclaration", + "src": "50422:13:1" + } + ], + "id": 2730, + "name": "ParameterList", + "src": "50421:15:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2731, + "name": "Identifier", + "src": "50447:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2732, + "name": "Identifier", + "src": "50455:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2733, + "name": "Identifier", + "src": "50463:7:1" + } + ], + "id": 2734, + "name": "FunctionCall", + "src": "50455:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI query for nonexistent token\"", + "value": "ERC721Metadata: URI query for nonexistent token" + }, + "id": 2735, + "name": "Literal", + "src": "50473:49:1" + } + ], + "id": 2736, + "name": "FunctionCall", + "src": "50447:76:1" + } + ], + "id": 2737, + "name": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "attributes": { + "assignments": [ + 2739 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2738, + "name": "ElementaryTypeName", + "src": "50534:6:1" + } + ], + "id": 2739, + "name": "VariableDeclaration", + "src": "50534:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 2740, + "name": "Identifier", + "src": "50560:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2741, + "name": "Identifier", + "src": "50571:7:1" + } + ], + "id": 2742, + "name": "IndexAccess", + "src": "50560:19:1" + } + ], + "id": 2743, + "name": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "attributes": { + "assignments": [ + 2745 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "base", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2744, + "name": "ElementaryTypeName", + "src": "50589:6:1" + } + ], + "id": 2745, + "name": "VariableDeclaration", + "src": "50589:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2799, + "type": "function () view returns (string memory)", + "value": "baseURI" + }, + "id": 2746, + "name": "Identifier", + "src": "50610:7:1" + } + ], + "id": 2747, + "name": "FunctionCall", + "src": "50610:9:1" + } + ], + "id": 2748, + "name": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2749, + "name": "ElementaryTypeName", + "src": "50692:5:1" + } + ], + "id": 2750, + "name": "ElementaryTypeNameExpression", + "src": "50692:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2751, + "name": "Identifier", + "src": "50698:4:1" + } + ], + "id": 2752, + "name": "FunctionCall", + "src": "50692:11:1" + } + ], + "id": 2753, + "name": "MemberAccess", + "src": "50692:18:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2754, + "name": "Literal", + "src": "50714:1:1" + } + ], + "id": 2755, + "name": "BinaryOperation", + "src": "50692:23:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2756, + "name": "Identifier", + "src": "50738:9:1" + } + ], + "id": 2757, + "name": "Return", + "src": "50731:16:1" + } + ], + "id": 2758, + "name": "Block", + "src": "50717:41:1" + } + ], + "id": 2759, + "name": "IfStatement", + "src": "50688:70:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2760, + "name": "ElementaryTypeName", + "src": "50860:5:1" + } + ], + "id": 2761, + "name": "ElementaryTypeNameExpression", + "src": "50860:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2762, + "name": "Identifier", + "src": "50866:9:1" + } + ], + "id": 2763, + "name": "FunctionCall", + "src": "50860:16:1" + } + ], + "id": 2764, + "name": "MemberAccess", + "src": "50860:23:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2765, + "name": "Literal", + "src": "50886:1:1" + } + ], + "id": 2766, + "name": "BinaryOperation", + "src": "50860:27:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2767, + "name": "ElementaryTypeName", + "src": "50910:6:1" + } + ], + "id": 2768, + "name": "ElementaryTypeNameExpression", + "src": "50910:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2769, + "name": "Identifier", + "src": "50917:3:1" + } + ], + "id": 2770, + "name": "MemberAccess", + "src": "50917:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2771, + "name": "Identifier", + "src": "50934:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2772, + "name": "Identifier", + "src": "50940:9:1" + } + ], + "id": 2773, + "name": "FunctionCall", + "src": "50917:33:1" + } + ], + "id": 2774, + "name": "FunctionCall", + "src": "50910:41:1" + } + ], + "id": 2775, + "name": "Return", + "src": "50903:48:1" + } + ], + "id": 2776, + "name": "Block", + "src": "50889:73:1" + } + ], + "id": 2777, + "name": "IfStatement", + "src": "50856:106:1" + }, + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2778, + "name": "ElementaryTypeName", + "src": "51068:6:1" + } + ], + "id": 2779, + "name": "ElementaryTypeNameExpression", + "src": "51068:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2780, + "name": "Identifier", + "src": "51075:3:1" + } + ], + "id": 2781, + "name": "MemberAccess", + "src": "51075:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2782, + "name": "Identifier", + "src": "51092:4:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "toString", + "referencedDeclaration": 2565, + "type": "function (uint256) pure returns (string memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2783, + "name": "Identifier", + "src": "51098:7:1" + } + ], + "id": 2784, + "name": "MemberAccess", + "src": "51098:16:1" + } + ], + "id": 2785, + "name": "FunctionCall", + "src": "51098:18:1" + } + ], + "id": 2786, + "name": "FunctionCall", + "src": "51075:42:1" + } + ], + "id": 2787, + "name": "FunctionCall", + "src": "51068:50:1" + } + ], + "id": 2788, + "name": "Return", + "src": "51061:57:1" + } + ], + "id": 2789, + "name": "Block", + "src": "50437:688:1" + } + ], + "id": 2790, + "name": "FunctionDefinition", + "src": "50349:776:1" + }, + { + "attributes": { + "functionSelector": "6c0360eb", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "baseURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "id": 2791, + "name": "StructuredDocumentation", + "src": "51131:221:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2792, + "name": "ParameterList", + "src": "51373:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2799, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2793, + "name": "ElementaryTypeName", + "src": "51405:6:1" + } + ], + "id": 2794, + "name": "VariableDeclaration", + "src": "51405:13:1" + } + ], + "id": 2795, + "name": "ParameterList", + "src": "51404:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2795 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 2796, + "name": "Identifier", + "src": "51437:8:1" + } + ], + "id": 2797, + "name": "Return", + "src": "51430:15:1" + } + ], + "id": 2798, + "name": "Block", + "src": "51420:32:1" + } + ], + "id": 2799, + "name": "FunctionDefinition", + "src": "51357:95:1" + }, + { + "attributes": { + "baseFunctions": [ + 700 + ], + "functionSelector": "2f745c59", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "id": 2800, + "name": "StructuredDocumentation", + "src": "51458:68:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2806, + "name": "OverrideSpecifier", + "src": "51610:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2801, + "name": "ElementaryTypeName", + "src": "51560:7:1" + } + ], + "id": 2802, + "name": "VariableDeclaration", + "src": "51560:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2803, + "name": "ElementaryTypeName", + "src": "51575:7:1" + } + ], + "id": 2804, + "name": "VariableDeclaration", + "src": "51575:13:1" + } + ], + "id": 2805, + "name": "ParameterList", + "src": "51559:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2807, + "name": "ElementaryTypeName", + "src": "51628:7:1" + } + ], + "id": 2808, + "name": "VariableDeclaration", + "src": "51628:7:1" + } + ], + "id": 2809, + "name": "ParameterList", + "src": "51627:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2809 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 1920, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2810, + "name": "Identifier", + "src": "51654:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2802, + "type": "address", + "value": "owner" + }, + "id": 2811, + "name": "Identifier", + "src": "51668:5:1" + } + ], + "id": 2812, + "name": "IndexAccess", + "src": "51654:20:1" + } + ], + "id": 2813, + "name": "MemberAccess", + "src": "51654:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2804, + "type": "uint256", + "value": "index" + }, + "id": 2814, + "name": "Identifier", + "src": "51678:5:1" + } + ], + "id": 2815, + "name": "FunctionCall", + "src": "51654:30:1" + } + ], + "id": 2816, + "name": "Return", + "src": "51647:37:1" + } + ], + "id": 2817, + "name": "Block", + "src": "51637:54:1" + } + ], + "id": 2818, + "name": "FunctionDefinition", + "src": "51531:160:1" + }, + { + "attributes": { + "baseFunctions": [ + 690 + ], + "functionSelector": "18160ddd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "id": 2819, + "name": "StructuredDocumentation", + "src": "51697:60:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2821, + "name": "OverrideSpecifier", + "src": "51805:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2820, + "name": "ParameterList", + "src": "51782:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2830, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2822, + "name": "ElementaryTypeName", + "src": "51823:7:1" + } + ], + "id": 2823, + "name": "VariableDeclaration", + "src": "51823:7:1" + } + ], + "id": 2824, + "name": "ParameterList", + "src": "51822:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2824 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 2340, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2825, + "name": "Identifier", + "src": "51942:12:1" + } + ], + "id": 2826, + "name": "MemberAccess", + "src": "51942:19:1" + } + ], + "id": 2827, + "name": "FunctionCall", + "src": "51942:21:1" + } + ], + "id": 2828, + "name": "Return", + "src": "51935:28:1" + } + ], + "id": 2829, + "name": "Block", + "src": "51832:138:1" + } + ], + "id": 2830, + "name": "FunctionDefinition", + "src": "51762:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 708 + ], + "functionSelector": "4f6ccce7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "id": 2831, + "name": "StructuredDocumentation", + "src": "51976:61:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2835, + "name": "OverrideSpecifier", + "src": "52099:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2832, + "name": "ElementaryTypeName", + "src": "52064:7:1" + } + ], + "id": 2833, + "name": "VariableDeclaration", + "src": "52064:13:1" + } + ], + "id": 2834, + "name": "ParameterList", + "src": "52063:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2836, + "name": "ElementaryTypeName", + "src": "52117:7:1" + } + ], + "id": 2837, + "name": "VariableDeclaration", + "src": "52117:7:1" + } + ], + "id": 2838, + "name": "ParameterList", + "src": "52116:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2840, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2848, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2839, + "name": "ElementaryTypeName", + "src": "52137:7:1" + } + ], + "id": 2840, + "name": "VariableDeclaration", + "src": "52137:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(uint256,address)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 2379, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2841, + "name": "Identifier", + "src": "52158:12:1" + } + ], + "id": 2842, + "name": "MemberAccess", + "src": "52158:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2833, + "type": "uint256", + "value": "index" + }, + "id": 2843, + "name": "Identifier", + "src": "52174:5:1" + } + ], + "id": 2844, + "name": "FunctionCall", + "src": "52158:22:1" + } + ], + "id": 2845, + "name": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2838 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2840, + "type": "uint256", + "value": "tokenId" + }, + "id": 2846, + "name": "Identifier", + "src": "52197:7:1" + } + ], + "id": 2847, + "name": "Return", + "src": "52190:14:1" + } + ], + "id": 2848, + "name": "Block", + "src": "52126:85:1" + } + ], + "id": 2849, + "name": "FunctionDefinition", + "src": "52042:169:1" + }, + { + "attributes": { + "baseFunctions": [ + 616 + ], + "functionSelector": "095ea7b3", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-approve}." + }, + "id": 2850, + "name": "StructuredDocumentation", + "src": "52217:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2856, + "name": "OverrideSpecifier", + "src": "52329:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2851, + "name": "ElementaryTypeName", + "src": "52285:7:1" + } + ], + "id": 2852, + "name": "VariableDeclaration", + "src": "52285:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2853, + "name": "ElementaryTypeName", + "src": "52297:7:1" + } + ], + "id": 2854, + "name": "VariableDeclaration", + "src": "52297:15:1" + } + ], + "id": 2855, + "name": "ParameterList", + "src": "52284:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2857, + "name": "ParameterList", + "src": "52338:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2859 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2892, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2858, + "name": "ElementaryTypeName", + "src": "52348:7:1" + } + ], + "id": 2859, + "name": "VariableDeclaration", + "src": "52348:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2860, + "name": "Identifier", + "src": "52364:6:1" + } + ], + "id": 2861, + "name": "MemberAccess", + "src": "52364:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2862, + "name": "Identifier", + "src": "52379:7:1" + } + ], + "id": 2863, + "name": "FunctionCall", + "src": "52364:23:1" + } + ], + "id": 2864, + "name": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2865, + "name": "Identifier", + "src": "52397:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2866, + "name": "Identifier", + "src": "52405:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2867, + "name": "Identifier", + "src": "52411:5:1" + } + ], + "id": 2868, + "name": "BinaryOperation", + "src": "52405:11:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approval to current owner\"", + "value": "ERC721: approval to current owner" + }, + "id": 2869, + "name": "Literal", + "src": "52418:35:1" + } + ], + "id": 2870, + "name": "FunctionCall", + "src": "52397:57:1" + } + ], + "id": 2871, + "name": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2872, + "name": "Identifier", + "src": "52465:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2873, + "name": "Identifier", + "src": "52473:10:1" + } + ], + "id": 2874, + "name": "FunctionCall", + "src": "52473:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2875, + "name": "Identifier", + "src": "52489:5:1" + } + ], + "id": 2876, + "name": "BinaryOperation", + "src": "52473:21:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2877, + "name": "Identifier", + "src": "52498:6:1" + } + ], + "id": 2878, + "name": "MemberAccess", + "src": "52498:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2879, + "name": "Identifier", + "src": "52522:5:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2880, + "name": "Identifier", + "src": "52529:10:1" + } + ], + "id": 2881, + "name": "FunctionCall", + "src": "52529:12:1" + } + ], + "id": 2882, + "name": "FunctionCall", + "src": "52498:44:1" + } + ], + "id": 2883, + "name": "BinaryOperation", + "src": "52473:69:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve caller is not owner nor approved for all\"", + "value": "ERC721: approve caller is not owner nor approved for all" + }, + "id": 2884, + "name": "Literal", + "src": "52556:58:1" + } + ], + "id": 2885, + "name": "FunctionCall", + "src": "52465:159:1" + } + ], + "id": 2886, + "name": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 2887, + "name": "Identifier", + "src": "52635:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2888, + "name": "Identifier", + "src": "52644:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2889, + "name": "Identifier", + "src": "52648:7:1" + } + ], + "id": 2890, + "name": "FunctionCall", + "src": "52635:21:1" + } + ], + "id": 2891, + "name": "ExpressionStatement", + "src": "52635:21:1" + } + ], + "id": 2892, + "name": "Block", + "src": "52338:325:1" + } + ], + "id": 2893, + "name": "FunctionDefinition", + "src": "52268:395:1" + }, + { + "attributes": { + "baseFunctions": [ + 624 + ], + "functionSelector": "081812fc", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-getApproved}." + }, + "id": 2894, + "name": "StructuredDocumentation", + "src": "52669:50:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2898, + "name": "OverrideSpecifier", + "src": "52782:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2895, + "name": "ElementaryTypeName", + "src": "52745:7:1" + } + ], + "id": 2896, + "name": "VariableDeclaration", + "src": "52745:15:1" + } + ], + "id": 2897, + "name": "ParameterList", + "src": "52744:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2899, + "name": "ElementaryTypeName", + "src": "52800:7:1" + } + ], + "id": 2900, + "name": "VariableDeclaration", + "src": "52800:7:1" + } + ], + "id": 2901, + "name": "ParameterList", + "src": "52799:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2902, + "name": "Identifier", + "src": "52819:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2903, + "name": "Identifier", + "src": "52827:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2904, + "name": "Identifier", + "src": "52835:7:1" + } + ], + "id": 2905, + "name": "FunctionCall", + "src": "52827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approved query for nonexistent token\"", + "value": "ERC721: approved query for nonexistent token" + }, + "id": 2906, + "name": "Literal", + "src": "52845:46:1" + } + ], + "id": 2907, + "name": "FunctionCall", + "src": "52819:73:1" + } + ], + "id": 2908, + "name": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "attributes": { + "functionReturnParameters": 2901 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 2909, + "name": "Identifier", + "src": "52910:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2910, + "name": "Identifier", + "src": "52926:7:1" + } + ], + "id": 2911, + "name": "IndexAccess", + "src": "52910:24:1" + } + ], + "id": 2912, + "name": "Return", + "src": "52903:31:1" + } + ], + "id": 2913, + "name": "Block", + "src": "52809:132:1" + } + ], + "id": 2914, + "name": "FunctionDefinition", + "src": "52724:217:1" + }, + { + "attributes": { + "baseFunctions": [ + 632 + ], + "functionSelector": "a22cb465", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "id": 2915, + "name": "StructuredDocumentation", + "src": "52947:56:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2921, + "name": "OverrideSpecifier", + "src": "53083:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2916, + "name": "ElementaryTypeName", + "src": "53035:7:1" + } + ], + "id": 2917, + "name": "VariableDeclaration", + "src": "53035:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "approved", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2918, + "name": "ElementaryTypeName", + "src": "53053:4:1" + } + ], + "id": 2919, + "name": "VariableDeclaration", + "src": "53053:13:1" + } + ], + "id": 2920, + "name": "ParameterList", + "src": "53034:33:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2922, + "name": "ParameterList", + "src": "53092:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2923, + "name": "Identifier", + "src": "53102:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2924, + "name": "Identifier", + "src": "53110:8:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2925, + "name": "Identifier", + "src": "53122:10:1" + } + ], + "id": 2926, + "name": "FunctionCall", + "src": "53122:12:1" + } + ], + "id": 2927, + "name": "BinaryOperation", + "src": "53110:24:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f766520746f2063616c6c6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve to caller\"", + "value": "ERC721: approve to caller" + }, + "id": 2928, + "name": "Literal", + "src": "53136:27:1" + } + ], + "id": 2929, + "name": "FunctionCall", + "src": "53102:62:1" + } + ], + "id": 2930, + "name": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2931, + "name": "Identifier", + "src": "53175:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2932, + "name": "Identifier", + "src": "53194:10:1" + } + ], + "id": 2933, + "name": "FunctionCall", + "src": "53194:12:1" + } + ], + "id": 2935, + "name": "IndexAccess", + "src": "53175:32:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2934, + "name": "Identifier", + "src": "53208:8:1" + } + ], + "id": 2936, + "name": "IndexAccess", + "src": "53175:42:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2937, + "name": "Identifier", + "src": "53220:8:1" + } + ], + "id": 2938, + "name": "Assignment", + "src": "53175:53:1" + } + ], + "id": 2939, + "name": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 572, + "type": "function (address,address,bool)", + "value": "ApprovalForAll" + }, + "id": 2940, + "name": "Identifier", + "src": "53243:14:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2941, + "name": "Identifier", + "src": "53258:10:1" + } + ], + "id": 2942, + "name": "FunctionCall", + "src": "53258:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2943, + "name": "Identifier", + "src": "53272:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2944, + "name": "Identifier", + "src": "53282:8:1" + } + ], + "id": 2945, + "name": "FunctionCall", + "src": "53243:48:1" + } + ], + "id": 2946, + "name": "EmitStatement", + "src": "53238:53:1" + } + ], + "id": 2947, + "name": "Block", + "src": "53092:206:1" + } + ], + "id": 2948, + "name": "FunctionDefinition", + "src": "53008:290:1" + }, + { + "attributes": { + "baseFunctions": [ + 642 + ], + "functionSelector": "e985e9c5", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "id": 2949, + "name": "StructuredDocumentation", + "src": "53304:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2955, + "name": "OverrideSpecifier", + "src": "53443:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2950, + "name": "ElementaryTypeName", + "src": "53390:7:1" + } + ], + "id": 2951, + "name": "VariableDeclaration", + "src": "53390:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2952, + "name": "ElementaryTypeName", + "src": "53405:7:1" + } + ], + "id": 2953, + "name": "VariableDeclaration", + "src": "53405:16:1" + } + ], + "id": 2954, + "name": "ParameterList", + "src": "53389:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2956, + "name": "ElementaryTypeName", + "src": "53461:4:1" + } + ], + "id": 2957, + "name": "VariableDeclaration", + "src": "53461:4:1" + } + ], + "id": 2958, + "name": "ParameterList", + "src": "53460:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2958 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2959, + "name": "Identifier", + "src": "53484:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2951, + "type": "address", + "value": "owner" + }, + "id": 2960, + "name": "Identifier", + "src": "53503:5:1" + } + ], + "id": 2961, + "name": "IndexAccess", + "src": "53484:25:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2953, + "type": "address", + "value": "operator" + }, + "id": 2962, + "name": "Identifier", + "src": "53510:8:1" + } + ], + "id": 2963, + "name": "IndexAccess", + "src": "53484:35:1" + } + ], + "id": 2964, + "name": "Return", + "src": "53477:42:1" + } + ], + "id": 2965, + "name": "Block", + "src": "53467:59:1" + } + ], + "id": 2966, + "name": "FunctionDefinition", + "src": "53364:162:1" + }, + { + "attributes": { + "baseFunctions": [ + 608 + ], + "functionSelector": "23b872dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-transferFrom}." + }, + "id": 2967, + "name": "StructuredDocumentation", + "src": "53532:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2975, + "name": "OverrideSpecifier", + "src": "53668:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2968, + "name": "ElementaryTypeName", + "src": "53610:7:1" + } + ], + "id": 2969, + "name": "VariableDeclaration", + "src": "53610:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2970, + "name": "ElementaryTypeName", + "src": "53624:7:1" + } + ], + "id": 2971, + "name": "VariableDeclaration", + "src": "53624:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2972, + "name": "ElementaryTypeName", + "src": "53636:7:1" + } + ], + "id": 2973, + "name": "VariableDeclaration", + "src": "53636:15:1" + } + ], + "id": 2974, + "name": "ParameterList", + "src": "53609:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2976, + "name": "ParameterList", + "src": "53677:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2977, + "name": "Identifier", + "src": "53739:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 2978, + "name": "Identifier", + "src": "53747:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2979, + "name": "Identifier", + "src": "53766:10:1" + } + ], + "id": 2980, + "name": "FunctionCall", + "src": "53766:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2981, + "name": "Identifier", + "src": "53780:7:1" + } + ], + "id": 2982, + "name": "FunctionCall", + "src": "53747:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 2983, + "name": "Literal", + "src": "53790:51:1" + } + ], + "id": 2984, + "name": "FunctionCall", + "src": "53739:103:1" + } + ], + "id": 2985, + "name": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 2986, + "name": "Identifier", + "src": "53853:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2969, + "type": "address", + "value": "from" + }, + "id": 2987, + "name": "Identifier", + "src": "53863:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2971, + "type": "address", + "value": "to" + }, + "id": 2988, + "name": "Identifier", + "src": "53869:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2989, + "name": "Identifier", + "src": "53873:7:1" + } + ], + "id": 2990, + "name": "FunctionCall", + "src": "53853:28:1" + } + ], + "id": 2991, + "name": "ExpressionStatement", + "src": "53853:28:1" + } + ], + "id": 2992, + "name": "Block", + "src": "53677:211:1" + } + ], + "id": 2993, + "name": "FunctionDefinition", + "src": "53588:300:1" + }, + { + "attributes": { + "baseFunctions": [ + 598 + ], + "functionSelector": "42842e0e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 2994, + "name": "StructuredDocumentation", + "src": "53894:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3002, + "name": "OverrideSpecifier", + "src": "54038:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2995, + "name": "ElementaryTypeName", + "src": "53980:7:1" + } + ], + "id": 2996, + "name": "VariableDeclaration", + "src": "53980:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2997, + "name": "ElementaryTypeName", + "src": "53994:7:1" + } + ], + "id": 2998, + "name": "VariableDeclaration", + "src": "53994:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2999, + "name": "ElementaryTypeName", + "src": "54006:7:1" + } + ], + "id": 3000, + "name": "VariableDeclaration", + "src": "54006:15:1" + } + ], + "id": 3001, + "name": "ParameterList", + "src": "53979:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3003, + "name": "ParameterList", + "src": "54047:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "type": "function (address,address,uint256,bytes memory)", + "value": "safeTransferFrom" + }, + "id": 3004, + "name": "Identifier", + "src": "54057:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2996, + "type": "address", + "value": "from" + }, + "id": 3005, + "name": "Identifier", + "src": "54074:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2998, + "type": "address", + "value": "to" + }, + "id": 3006, + "name": "Identifier", + "src": "54080:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3000, + "type": "uint256", + "value": "tokenId" + }, + "id": 3007, + "name": "Identifier", + "src": "54084:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3008, + "name": "Literal", + "src": "54093:2:1" + } + ], + "id": 3009, + "name": "FunctionCall", + "src": "54057:39:1" + } + ], + "id": 3010, + "name": "ExpressionStatement", + "src": "54057:39:1" + } + ], + "id": 3011, + "name": "Block", + "src": "54047:56:1" + } + ], + "id": 3012, + "name": "FunctionDefinition", + "src": "53954:149:1" + }, + { + "attributes": { + "baseFunctions": [ + 654 + ], + "functionSelector": "b88d4fde", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 3013, + "name": "StructuredDocumentation", + "src": "54109:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3023, + "name": "OverrideSpecifier", + "src": "54273:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3014, + "name": "ElementaryTypeName", + "src": "54195:7:1" + } + ], + "id": 3015, + "name": "VariableDeclaration", + "src": "54195:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3016, + "name": "ElementaryTypeName", + "src": "54209:7:1" + } + ], + "id": 3017, + "name": "VariableDeclaration", + "src": "54209:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3018, + "name": "ElementaryTypeName", + "src": "54221:7:1" + } + ], + "id": 3019, + "name": "VariableDeclaration", + "src": "54221:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3042, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3020, + "name": "ElementaryTypeName", + "src": "54238:5:1" + } + ], + "id": 3021, + "name": "VariableDeclaration", + "src": "54238:18:1" + } + ], + "id": 3022, + "name": "ParameterList", + "src": "54194:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3024, + "name": "ParameterList", + "src": "54282:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3025, + "name": "Identifier", + "src": "54292:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 3026, + "name": "Identifier", + "src": "54300:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3027, + "name": "Identifier", + "src": "54319:10:1" + } + ], + "id": 3028, + "name": "FunctionCall", + "src": "54319:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3029, + "name": "Identifier", + "src": "54333:7:1" + } + ], + "id": 3030, + "name": "FunctionCall", + "src": "54300:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 3031, + "name": "Literal", + "src": "54343:51:1" + } + ], + "id": 3032, + "name": "FunctionCall", + "src": "54292:103:1" + } + ], + "id": 3033, + "name": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3071, + "type": "function (address,address,uint256,bytes memory)", + "value": "_safeTransfer" + }, + "id": 3034, + "name": "Identifier", + "src": "54405:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3015, + "type": "address", + "value": "from" + }, + "id": 3035, + "name": "Identifier", + "src": "54419:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3017, + "type": "address", + "value": "to" + }, + "id": 3036, + "name": "Identifier", + "src": "54425:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3037, + "name": "Identifier", + "src": "54429:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3021, + "type": "bytes memory", + "value": "_data" + }, + "id": 3038, + "name": "Identifier", + "src": "54438:5:1" + } + ], + "id": 3039, + "name": "FunctionCall", + "src": "54405:39:1" + } + ], + "id": 3040, + "name": "ExpressionStatement", + "src": "54405:39:1" + } + ], + "id": 3041, + "name": "Block", + "src": "54282:169:1" + } + ], + "id": 3042, + "name": "FunctionDefinition", + "src": "54169:282:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3043, + "name": "StructuredDocumentation", + "src": "54457:851:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3044, + "name": "ElementaryTypeName", + "src": "55336:7:1" + } + ], + "id": 3045, + "name": "VariableDeclaration", + "src": "55336:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3046, + "name": "ElementaryTypeName", + "src": "55350:7:1" + } + ], + "id": 3047, + "name": "VariableDeclaration", + "src": "55350:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3048, + "name": "ElementaryTypeName", + "src": "55362:7:1" + } + ], + "id": 3049, + "name": "VariableDeclaration", + "src": "55362:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3071, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3050, + "name": "ElementaryTypeName", + "src": "55379:5:1" + } + ], + "id": 3051, + "name": "VariableDeclaration", + "src": "55379:18:1" + } + ], + "id": 3052, + "name": "ParameterList", + "src": "55335:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3053, + "name": "ParameterList", + "src": "55416:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 3054, + "name": "Identifier", + "src": "55426:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3055, + "name": "Identifier", + "src": "55436:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3056, + "name": "Identifier", + "src": "55442:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3057, + "name": "Identifier", + "src": "55446:7:1" + } + ], + "id": 3058, + "name": "FunctionCall", + "src": "55426:28:1" + } + ], + "id": 3059, + "name": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3060, + "name": "Identifier", + "src": "55464:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3061, + "name": "Identifier", + "src": "55472:22:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3062, + "name": "Identifier", + "src": "55495:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3063, + "name": "Identifier", + "src": "55501:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3064, + "name": "Identifier", + "src": "55505:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3051, + "type": "bytes memory", + "value": "_data" + }, + "id": 3065, + "name": "Identifier", + "src": "55514:5:1" + } + ], + "id": 3066, + "name": "FunctionCall", + "src": "55472:48:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3067, + "name": "Literal", + "src": "55522:52:1" + } + ], + "id": 3068, + "name": "FunctionCall", + "src": "55464:111:1" + } + ], + "id": 3069, + "name": "ExpressionStatement", + "src": "55464:111:1" + } + ], + "id": 3070, + "name": "Block", + "src": "55416:166:1" + } + ], + "id": 3071, + "name": "FunctionDefinition", + "src": "55313:269:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_exists", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3072, + "name": "StructuredDocumentation", + "src": "55588:292:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3073, + "name": "ElementaryTypeName", + "src": "55902:7:1" + } + ], + "id": 3074, + "name": "VariableDeclaration", + "src": "55902:15:1" + } + ], + "id": 3075, + "name": "ParameterList", + "src": "55901:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3076, + "name": "ElementaryTypeName", + "src": "55950:4:1" + } + ], + "id": 3077, + "name": "VariableDeclaration", + "src": "55950:4:1" + } + ], + "id": 3078, + "name": "ParameterList", + "src": "55949:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3078 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "contains", + "referencedDeclaration": 2326, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3079, + "name": "Identifier", + "src": "55973:12:1" + } + ], + "id": 3080, + "name": "MemberAccess", + "src": "55973:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3074, + "type": "uint256", + "value": "tokenId" + }, + "id": 3081, + "name": "Identifier", + "src": "55995:7:1" + } + ], + "id": 3082, + "name": "FunctionCall", + "src": "55973:30:1" + } + ], + "id": 3083, + "name": "Return", + "src": "55966:37:1" + } + ], + "id": 3084, + "name": "Block", + "src": "55956:54:1" + } + ], + "id": 3085, + "name": "FunctionDefinition", + "src": "55885:125:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_isApprovedOrOwner", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3086, + "name": "StructuredDocumentation", + "src": "56016:147:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "spender", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3087, + "name": "ElementaryTypeName", + "src": "56196:7:1" + } + ], + "id": 3088, + "name": "VariableDeclaration", + "src": "56196:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3089, + "name": "ElementaryTypeName", + "src": "56213:7:1" + } + ], + "id": 3090, + "name": "VariableDeclaration", + "src": "56213:15:1" + } + ], + "id": 3091, + "name": "ParameterList", + "src": "56195:34:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3092, + "name": "ElementaryTypeName", + "src": "56261:4:1" + } + ], + "id": 3093, + "name": "VariableDeclaration", + "src": "56261:4:1" + } + ], + "id": 3094, + "name": "ParameterList", + "src": "56260:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3095, + "name": "Identifier", + "src": "56277:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3096, + "name": "Identifier", + "src": "56285:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3097, + "name": "Identifier", + "src": "56293:7:1" + } + ], + "id": 3098, + "name": "FunctionCall", + "src": "56285:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: operator query for nonexistent token\"", + "value": "ERC721: operator query for nonexistent token" + }, + "id": 3099, + "name": "Literal", + "src": "56303:46:1" + } + ], + "id": 3100, + "name": "FunctionCall", + "src": "56277:73:1" + } + ], + "id": 3101, + "name": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "attributes": { + "assignments": [ + 3103 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3126, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3102, + "name": "ElementaryTypeName", + "src": "56360:7:1" + } + ], + "id": 3103, + "name": "VariableDeclaration", + "src": "56360:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3104, + "name": "Identifier", + "src": "56376:6:1" + } + ], + "id": 3105, + "name": "MemberAccess", + "src": "56376:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3106, + "name": "Identifier", + "src": "56391:7:1" + } + ], + "id": 3107, + "name": "FunctionCall", + "src": "56376:23:1" + } + ], + "id": 3108, + "name": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "attributes": { + "functionReturnParameters": 3094 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3109, + "name": "Identifier", + "src": "56417:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3110, + "name": "Identifier", + "src": "56428:5:1" + } + ], + "id": 3111, + "name": "BinaryOperation", + "src": "56417:16:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2914, + "type": "function (uint256) view returns (address)", + "value": "getApproved" + }, + "id": 3112, + "name": "Identifier", + "src": "56437:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3113, + "name": "Identifier", + "src": "56449:7:1" + } + ], + "id": 3114, + "name": "FunctionCall", + "src": "56437:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3115, + "name": "Identifier", + "src": "56461:7:1" + } + ], + "id": 3116, + "name": "BinaryOperation", + "src": "56437:31:1" + } + ], + "id": 3117, + "name": "BinaryOperation", + "src": "56417:51:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3118, + "name": "Identifier", + "src": "56472:6:1" + } + ], + "id": 3119, + "name": "MemberAccess", + "src": "56472:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3120, + "name": "Identifier", + "src": "56496:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3121, + "name": "Identifier", + "src": "56503:7:1" + } + ], + "id": 3122, + "name": "FunctionCall", + "src": "56472:39:1" + } + ], + "id": 3123, + "name": "BinaryOperation", + "src": "56417:94:1" + } + ], + "id": 3124, + "name": "TupleExpression", + "src": "56416:96:1" + } + ], + "id": 3125, + "name": "Return", + "src": "56409:103:1" + } + ], + "id": 3126, + "name": "Block", + "src": "56267:252:1" + } + ], + "id": 3127, + "name": "FunctionDefinition", + "src": "56168:351:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3128, + "name": "StructuredDocumentation", + "src": "56525:320:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3129, + "name": "ElementaryTypeName", + "src": "56869:7:1" + } + ], + "id": 3130, + "name": "VariableDeclaration", + "src": "56869:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3131, + "name": "ElementaryTypeName", + "src": "56881:7:1" + } + ], + "id": 3132, + "name": "VariableDeclaration", + "src": "56881:15:1" + } + ], + "id": 3133, + "name": "ParameterList", + "src": "56868:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3134, + "name": "ParameterList", + "src": "56915:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "type": "function (address,uint256,bytes memory)", + "value": "_safeMint" + }, + "id": 3135, + "name": "Identifier", + "src": "56925:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3130, + "type": "address", + "value": "to" + }, + "id": 3136, + "name": "Identifier", + "src": "56935:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3132, + "type": "uint256", + "value": "tokenId" + }, + "id": 3137, + "name": "Identifier", + "src": "56939:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3138, + "name": "Literal", + "src": "56948:2:1" + } + ], + "id": 3139, + "name": "FunctionCall", + "src": "56925:26:1" + } + ], + "id": 3140, + "name": "ExpressionStatement", + "src": "56925:26:1" + } + ], + "id": 3141, + "name": "Block", + "src": "56915:43:1" + } + ], + "id": 3142, + "name": "FunctionDefinition", + "src": "56850:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3143, + "name": "StructuredDocumentation", + "src": "56964:210:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3144, + "name": "ElementaryTypeName", + "src": "57198:7:1" + } + ], + "id": 3145, + "name": "VariableDeclaration", + "src": "57198:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3146, + "name": "ElementaryTypeName", + "src": "57210:7:1" + } + ], + "id": 3147, + "name": "VariableDeclaration", + "src": "57210:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3171, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3148, + "name": "ElementaryTypeName", + "src": "57227:5:1" + } + ], + "id": 3149, + "name": "VariableDeclaration", + "src": "57227:18:1" + } + ], + "id": 3150, + "name": "ParameterList", + "src": "57197:49:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3151, + "name": "ParameterList", + "src": "57264:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3230, + "type": "function (address,uint256)", + "value": "_mint" + }, + "id": 3152, + "name": "Identifier", + "src": "57274:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3153, + "name": "Identifier", + "src": "57280:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3154, + "name": "Identifier", + "src": "57284:7:1" + } + ], + "id": 3155, + "name": "FunctionCall", + "src": "57274:18:1" + } + ], + "id": 3156, + "name": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3157, + "name": "Identifier", + "src": "57302:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3158, + "name": "Identifier", + "src": "57310:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3159, + "name": "ElementaryTypeName", + "src": "57333:7:1" + } + ], + "id": 3160, + "name": "ElementaryTypeNameExpression", + "src": "57333:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3161, + "name": "Literal", + "src": "57341:1:1" + } + ], + "id": 3162, + "name": "FunctionCall", + "src": "57333:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3163, + "name": "Identifier", + "src": "57345:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3164, + "name": "Identifier", + "src": "57349:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3149, + "type": "bytes memory", + "value": "_data" + }, + "id": 3165, + "name": "Identifier", + "src": "57358:5:1" + } + ], + "id": 3166, + "name": "FunctionCall", + "src": "57310:54:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3167, + "name": "Literal", + "src": "57366:52:1" + } + ], + "id": 3168, + "name": "FunctionCall", + "src": "57302:117:1" + } + ], + "id": 3169, + "name": "ExpressionStatement", + "src": "57302:117:1" + } + ], + "id": 3170, + "name": "Block", + "src": "57264:162:1" + } + ], + "id": 3171, + "name": "FunctionDefinition", + "src": "57179:247:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_mint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3172, + "name": "StructuredDocumentation", + "src": "57432:311:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3173, + "name": "ElementaryTypeName", + "src": "57763:7:1" + } + ], + "id": 3174, + "name": "VariableDeclaration", + "src": "57763:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3175, + "name": "ElementaryTypeName", + "src": "57775:7:1" + } + ], + "id": 3176, + "name": "VariableDeclaration", + "src": "57775:15:1" + } + ], + "id": 3177, + "name": "ParameterList", + "src": "57762:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3178, + "name": "ParameterList", + "src": "57809:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3179, + "name": "Identifier", + "src": "57819:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3180, + "name": "Identifier", + "src": "57827:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3181, + "name": "ElementaryTypeName", + "src": "57833:7:1" + } + ], + "id": 3182, + "name": "ElementaryTypeNameExpression", + "src": "57833:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3183, + "name": "Literal", + "src": "57841:1:1" + } + ], + "id": 3184, + "name": "FunctionCall", + "src": "57833:10:1" + } + ], + "id": 3185, + "name": "BinaryOperation", + "src": "57827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: mint to the zero address\"", + "value": "ERC721: mint to the zero address" + }, + "id": 3186, + "name": "Literal", + "src": "57845:34:1" + } + ], + "id": 3187, + "name": "FunctionCall", + "src": "57819:61:1" + } + ], + "id": 3188, + "name": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3189, + "name": "Identifier", + "src": "57890:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3190, + "name": "Identifier", + "src": "57899:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3191, + "name": "Identifier", + "src": "57907:7:1" + } + ], + "id": 3192, + "name": "FunctionCall", + "src": "57899:16:1" + } + ], + "id": 3193, + "name": "UnaryOperation", + "src": "57898:17:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: token already minted\"", + "value": "ERC721: token already minted" + }, + "id": 3194, + "name": "Literal", + "src": "57917:30:1" + } + ], + "id": 3195, + "name": "FunctionCall", + "src": "57890:58:1" + } + ], + "id": 3196, + "name": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3197, + "name": "Identifier", + "src": "57959:20:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3198, + "name": "ElementaryTypeName", + "src": "57980:7:1" + } + ], + "id": 3199, + "name": "ElementaryTypeNameExpression", + "src": "57980:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3200, + "name": "Literal", + "src": "57988:1:1" + } + ], + "id": 3201, + "name": "FunctionCall", + "src": "57980:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3202, + "name": "Identifier", + "src": "57992:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3203, + "name": "Identifier", + "src": "57996:7:1" + } + ], + "id": 3204, + "name": "FunctionCall", + "src": "57959:45:1" + } + ], + "id": 3205, + "name": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3206, + "name": "Identifier", + "src": "58015:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3207, + "name": "Identifier", + "src": "58029:2:1" + } + ], + "id": 3208, + "name": "IndexAccess", + "src": "58015:17:1" + } + ], + "id": 3209, + "name": "MemberAccess", + "src": "58015:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3210, + "name": "Identifier", + "src": "58037:7:1" + } + ], + "id": 3211, + "name": "FunctionCall", + "src": "58015:30:1" + } + ], + "id": 3212, + "name": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3213, + "name": "Identifier", + "src": "58056:12:1" + } + ], + "id": 3215, + "name": "MemberAccess", + "src": "58056:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3216, + "name": "Identifier", + "src": "58073:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3217, + "name": "Identifier", + "src": "58082:2:1" + } + ], + "id": 3218, + "name": "FunctionCall", + "src": "58056:29:1" + } + ], + "id": 3219, + "name": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3220, + "name": "Identifier", + "src": "58101:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3221, + "name": "ElementaryTypeName", + "src": "58110:7:1" + } + ], + "id": 3222, + "name": "ElementaryTypeNameExpression", + "src": "58110:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3223, + "name": "Literal", + "src": "58118:1:1" + } + ], + "id": 3224, + "name": "FunctionCall", + "src": "58110:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3225, + "name": "Identifier", + "src": "58122:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3226, + "name": "Identifier", + "src": "58126:7:1" + } + ], + "id": 3227, + "name": "FunctionCall", + "src": "58101:33:1" + } + ], + "id": 3228, + "name": "EmitStatement", + "src": "58096:38:1" + } + ], + "id": 3229, + "name": "Block", + "src": "57809:332:1" + } + ], + "id": 3230, + "name": "FunctionDefinition", + "src": "57748:393:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_burn", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3231, + "name": "StructuredDocumentation", + "src": "58147:206:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3299, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3232, + "name": "ElementaryTypeName", + "src": "58373:7:1" + } + ], + "id": 3233, + "name": "VariableDeclaration", + "src": "58373:15:1" + } + ], + "id": 3234, + "name": "ParameterList", + "src": "58372:17:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3235, + "name": "ParameterList", + "src": "58407:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 3237 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3298, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3236, + "name": "ElementaryTypeName", + "src": "58417:7:1" + } + ], + "id": 3237, + "name": "VariableDeclaration", + "src": "58417:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3238, + "name": "Identifier", + "src": "58433:6:1" + } + ], + "id": 3239, + "name": "MemberAccess", + "src": "58433:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3240, + "name": "Identifier", + "src": "58448:7:1" + } + ], + "id": 3241, + "name": "FunctionCall", + "src": "58433:23:1" + } + ], + "id": 3242, + "name": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3243, + "name": "Identifier", + "src": "58485:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3244, + "name": "Identifier", + "src": "58506:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3245, + "name": "ElementaryTypeName", + "src": "58513:7:1" + } + ], + "id": 3246, + "name": "ElementaryTypeNameExpression", + "src": "58513:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3247, + "name": "Literal", + "src": "58521:1:1" + } + ], + "id": 3248, + "name": "FunctionCall", + "src": "58513:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3249, + "name": "Identifier", + "src": "58525:7:1" + } + ], + "id": 3250, + "name": "FunctionCall", + "src": "58485:48:1" + } + ], + "id": 3251, + "name": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3252, + "name": "Identifier", + "src": "58571:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3253, + "name": "ElementaryTypeName", + "src": "58580:7:1" + } + ], + "id": 3254, + "name": "ElementaryTypeNameExpression", + "src": "58580:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3255, + "name": "Literal", + "src": "58588:1:1" + } + ], + "id": 3256, + "name": "FunctionCall", + "src": "58580:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3257, + "name": "Identifier", + "src": "58592:7:1" + } + ], + "id": 3258, + "name": "FunctionCall", + "src": "58571:29:1" + } + ], + "id": 3259, + "name": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes storage pointer", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 3260, + "name": "ElementaryTypeName", + "src": "58650:5:1" + } + ], + "id": 3261, + "name": "ElementaryTypeNameExpression", + "src": "58650:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3262, + "name": "Identifier", + "src": "58656:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3263, + "name": "Identifier", + "src": "58667:7:1" + } + ], + "id": 3264, + "name": "IndexAccess", + "src": "58656:19:1" + } + ], + "id": 3265, + "name": "FunctionCall", + "src": "58650:26:1" + } + ], + "id": 3266, + "name": "MemberAccess", + "src": "58650:33:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3267, + "name": "Literal", + "src": "58687:1:1" + } + ], + "id": 3268, + "name": "BinaryOperation", + "src": "58650:38:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3269, + "name": "Identifier", + "src": "58711:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3270, + "name": "Identifier", + "src": "58722:7:1" + } + ], + "id": 3271, + "name": "IndexAccess", + "src": "58711:19:1" + } + ], + "id": 3272, + "name": "UnaryOperation", + "src": "58704:26:1" + } + ], + "id": 3273, + "name": "ExpressionStatement", + "src": "58704:26:1" + } + ], + "id": 3274, + "name": "Block", + "src": "58690:51:1" + } + ], + "id": 3275, + "name": "IfStatement", + "src": "58646:95:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3276, + "name": "Identifier", + "src": "58751:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3277, + "name": "Identifier", + "src": "58765:5:1" + } + ], + "id": 3278, + "name": "IndexAccess", + "src": "58751:20:1" + } + ], + "id": 3279, + "name": "MemberAccess", + "src": "58751:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3280, + "name": "Identifier", + "src": "58779:7:1" + } + ], + "id": 3281, + "name": "FunctionCall", + "src": "58751:36:1" + } + ], + "id": 3282, + "name": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 2306, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3283, + "name": "Identifier", + "src": "58798:12:1" + } + ], + "id": 3285, + "name": "MemberAccess", + "src": "58798:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3286, + "name": "Identifier", + "src": "58818:7:1" + } + ], + "id": 3287, + "name": "FunctionCall", + "src": "58798:28:1" + } + ], + "id": 3288, + "name": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3289, + "name": "Identifier", + "src": "58842:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3290, + "name": "Identifier", + "src": "58851:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3291, + "name": "ElementaryTypeName", + "src": "58858:7:1" + } + ], + "id": 3292, + "name": "ElementaryTypeNameExpression", + "src": "58858:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3293, + "name": "Literal", + "src": "58866:1:1" + } + ], + "id": 3294, + "name": "FunctionCall", + "src": "58858:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3295, + "name": "Identifier", + "src": "58870:7:1" + } + ], + "id": 3296, + "name": "FunctionCall", + "src": "58842:36:1" + } + ], + "id": 3297, + "name": "EmitStatement", + "src": "58837:41:1" + } + ], + "id": 3298, + "name": "Block", + "src": "58407:478:1" + } + ], + "id": 3299, + "name": "FunctionDefinition", + "src": "58358:527:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_transfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3300, + "name": "StructuredDocumentation", + "src": "58891:313:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3301, + "name": "ElementaryTypeName", + "src": "59228:7:1" + } + ], + "id": 3302, + "name": "VariableDeclaration", + "src": "59228:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3303, + "name": "ElementaryTypeName", + "src": "59242:7:1" + } + ], + "id": 3304, + "name": "VariableDeclaration", + "src": "59242:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3305, + "name": "ElementaryTypeName", + "src": "59254:7:1" + } + ], + "id": 3306, + "name": "VariableDeclaration", + "src": "59254:15:1" + } + ], + "id": 3307, + "name": "ParameterList", + "src": "59227:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3308, + "name": "ParameterList", + "src": "59288:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3309, + "name": "Identifier", + "src": "59298:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3310, + "name": "Identifier", + "src": "59306:6:1" + } + ], + "id": 3311, + "name": "MemberAccess", + "src": "59306:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3312, + "name": "Identifier", + "src": "59321:7:1" + } + ], + "id": 3313, + "name": "FunctionCall", + "src": "59306:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3314, + "name": "Identifier", + "src": "59333:4:1" + } + ], + "id": 3315, + "name": "BinaryOperation", + "src": "59306:31:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer of token that is not own\"", + "value": "ERC721: transfer of token that is not own" + }, + "id": 3316, + "name": "Literal", + "src": "59339:43:1" + } + ], + "id": 3317, + "name": "FunctionCall", + "src": "59298:85:1" + } + ], + "id": 3318, + "name": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3319, + "name": "Identifier", + "src": "59411:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3320, + "name": "Identifier", + "src": "59419:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3321, + "name": "ElementaryTypeName", + "src": "59425:7:1" + } + ], + "id": 3322, + "name": "ElementaryTypeNameExpression", + "src": "59425:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3323, + "name": "Literal", + "src": "59433:1:1" + } + ], + "id": 3324, + "name": "FunctionCall", + "src": "59425:10:1" + } + ], + "id": 3325, + "name": "BinaryOperation", + "src": "59419:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to the zero address\"", + "value": "ERC721: transfer to the zero address" + }, + "id": 3326, + "name": "Literal", + "src": "59437:38:1" + } + ], + "id": 3327, + "name": "FunctionCall", + "src": "59411:65:1" + } + ], + "id": 3328, + "name": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3329, + "name": "Identifier", + "src": "59487:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3330, + "name": "Identifier", + "src": "59508:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3331, + "name": "Identifier", + "src": "59514:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3332, + "name": "Identifier", + "src": "59518:7:1" + } + ], + "id": 3333, + "name": "FunctionCall", + "src": "59487:39:1" + } + ], + "id": 3334, + "name": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3335, + "name": "Identifier", + "src": "59588:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3336, + "name": "ElementaryTypeName", + "src": "59597:7:1" + } + ], + "id": 3337, + "name": "ElementaryTypeNameExpression", + "src": "59597:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3338, + "name": "Literal", + "src": "59605:1:1" + } + ], + "id": 3339, + "name": "FunctionCall", + "src": "59597:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3340, + "name": "Identifier", + "src": "59609:7:1" + } + ], + "id": 3341, + "name": "FunctionCall", + "src": "59588:29:1" + } + ], + "id": 3342, + "name": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3343, + "name": "Identifier", + "src": "59628:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3344, + "name": "Identifier", + "src": "59642:4:1" + } + ], + "id": 3345, + "name": "IndexAccess", + "src": "59628:19:1" + } + ], + "id": 3346, + "name": "MemberAccess", + "src": "59628:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3347, + "name": "Identifier", + "src": "59655:7:1" + } + ], + "id": 3348, + "name": "FunctionCall", + "src": "59628:35:1" + } + ], + "id": 3349, + "name": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3350, + "name": "Identifier", + "src": "59673:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3351, + "name": "Identifier", + "src": "59687:2:1" + } + ], + "id": 3352, + "name": "IndexAccess", + "src": "59673:17:1" + } + ], + "id": 3353, + "name": "MemberAccess", + "src": "59673:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3354, + "name": "Identifier", + "src": "59695:7:1" + } + ], + "id": 3355, + "name": "FunctionCall", + "src": "59673:30:1" + } + ], + "id": 3356, + "name": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3357, + "name": "Identifier", + "src": "59714:12:1" + } + ], + "id": 3359, + "name": "MemberAccess", + "src": "59714:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3360, + "name": "Identifier", + "src": "59731:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3361, + "name": "Identifier", + "src": "59740:2:1" + } + ], + "id": 3362, + "name": "FunctionCall", + "src": "59714:29:1" + } + ], + "id": 3363, + "name": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3364, + "name": "Identifier", + "src": "59759:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3365, + "name": "Identifier", + "src": "59768:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3366, + "name": "Identifier", + "src": "59774:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3367, + "name": "Identifier", + "src": "59778:7:1" + } + ], + "id": 3368, + "name": "FunctionCall", + "src": "59759:27:1" + } + ], + "id": 3369, + "name": "EmitStatement", + "src": "59754:32:1" + } + ], + "id": 3370, + "name": "Block", + "src": "59288:505:1" + } + ], + "id": 3371, + "name": "FunctionDefinition", + "src": "59209:584:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setTokenURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3372, + "name": "StructuredDocumentation", + "src": "59799:136:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3393, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3373, + "name": "ElementaryTypeName", + "src": "59962:7:1" + } + ], + "id": 3374, + "name": "VariableDeclaration", + "src": "59962:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 3393, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3375, + "name": "ElementaryTypeName", + "src": "59979:6:1" + } + ], + "id": 3376, + "name": "VariableDeclaration", + "src": "59979:23:1" + } + ], + "id": 3377, + "name": "ParameterList", + "src": "59961:42:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3378, + "name": "ParameterList", + "src": "60021:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3379, + "name": "Identifier", + "src": "60031:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3380, + "name": "Identifier", + "src": "60039:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3381, + "name": "Identifier", + "src": "60047:7:1" + } + ], + "id": 3382, + "name": "FunctionCall", + "src": "60039:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI set of nonexistent token\"", + "value": "ERC721Metadata: URI set of nonexistent token" + }, + "id": 3383, + "name": "Literal", + "src": "60057:46:1" + } + ], + "id": 3384, + "name": "FunctionCall", + "src": "60031:73:1" + } + ], + "id": 3385, + "name": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3386, + "name": "Identifier", + "src": "60114:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3387, + "name": "Identifier", + "src": "60125:7:1" + } + ], + "id": 3388, + "name": "IndexAccess", + "src": "60114:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3376, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 3389, + "name": "Identifier", + "src": "60136:9:1" + } + ], + "id": 3390, + "name": "Assignment", + "src": "60114:31:1" + } + ], + "id": 3391, + "name": "ExpressionStatement", + "src": "60114:31:1" + } + ], + "id": 3392, + "name": "Block", + "src": "60021:131:1" + } + ], + "id": 3393, + "name": "FunctionDefinition", + "src": "59940:212:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setBaseURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3394, + "name": "StructuredDocumentation", + "src": "60158:212:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "baseURI_", + "scope": 3404, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3395, + "name": "ElementaryTypeName", + "src": "60396:6:1" + } + ], + "id": 3396, + "name": "VariableDeclaration", + "src": "60396:22:1" + } + ], + "id": 3397, + "name": "ParameterList", + "src": "60395:24:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3398, + "name": "ParameterList", + "src": "60437:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 3399, + "name": "Identifier", + "src": "60447:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3396, + "type": "string memory", + "value": "baseURI_" + }, + "id": 3400, + "name": "Identifier", + "src": "60458:8:1" + } + ], + "id": 3401, + "name": "Assignment", + "src": "60447:19:1" + } + ], + "id": 3402, + "name": "ExpressionStatement", + "src": "60447:19:1" + } + ], + "id": 3403, + "name": "Block", + "src": "60437:36:1" + } + ], + "id": 3404, + "name": "FunctionDefinition", + "src": "60375:98:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_checkOnERC721Received", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3405, + "name": "StructuredDocumentation", + "src": "60479:542:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3406, + "name": "ElementaryTypeName", + "src": "61058:7:1" + } + ], + "id": 3407, + "name": "VariableDeclaration", + "src": "61058:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3408, + "name": "ElementaryTypeName", + "src": "61072:7:1" + } + ], + "id": 3409, + "name": "VariableDeclaration", + "src": "61072:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3410, + "name": "ElementaryTypeName", + "src": "61084:7:1" + } + ], + "id": 3411, + "name": "VariableDeclaration", + "src": "61084:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3462, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3412, + "name": "ElementaryTypeName", + "src": "61101:5:1" + } + ], + "id": 3413, + "name": "VariableDeclaration", + "src": "61101:18:1" + } + ], + "id": 3414, + "name": "ParameterList", + "src": "61057:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3415, + "name": "ElementaryTypeName", + "src": "61146:4:1" + } + ], + "id": 3416, + "name": "VariableDeclaration", + "src": "61146:4:1" + } + ], + "id": 3417, + "name": "ParameterList", + "src": "61145:6:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isContract", + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3418, + "name": "Identifier", + "src": "61171:2:1" + } + ], + "id": 3419, + "name": "MemberAccess", + "src": "61171:13:1" + } + ], + "id": 3420, + "name": "FunctionCall", + "src": "61171:15:1" + } + ], + "id": 3421, + "name": "UnaryOperation", + "src": "61170:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 3422, + "name": "Literal", + "src": "61209:4:1" + } + ], + "id": 3423, + "name": "Return", + "src": "61202:11:1" + } + ], + "id": 3424, + "name": "Block", + "src": "61188:36:1" + } + ], + "id": 3425, + "name": "IfStatement", + "src": "61166:58:1" + }, + { + "attributes": { + "assignments": [ + 3427 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 3461, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3426, + "name": "ElementaryTypeName", + "src": "61233:5:1" + } + ], + "id": 3427, + "name": "VariableDeclaration", + "src": "61233:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "functionCall", + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3428, + "name": "Identifier", + "src": "61259:2:1" + } + ], + "id": 3429, + "name": "MemberAccess", + "src": "61259:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodeWithSelector", + "type": "function (bytes4) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3430, + "name": "Identifier", + "src": "61275:3:1" + } + ], + "id": 3431, + "name": "MemberAccess", + "src": "61275:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "selector", + "type": "bytes4" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "onERC721Received", + "referencedDeclaration": 725, + "type": "function (address,address,uint256,bytes memory) external returns (bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "contract IERC721Receiver", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 726, + "type": "type(contract IERC721Receiver)", + "value": "IERC721Receiver" + }, + "id": 3432, + "name": "Identifier", + "src": "61311:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3433, + "name": "Identifier", + "src": "61327:2:1" + } + ], + "id": 3434, + "name": "FunctionCall", + "src": "61311:19:1" + } + ], + "id": 3435, + "name": "MemberAccess", + "src": "61311:36:1" + } + ], + "id": 3436, + "name": "MemberAccess", + "src": "61311:45:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3437, + "name": "Identifier", + "src": "61370:10:1" + } + ], + "id": 3438, + "name": "FunctionCall", + "src": "61370:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3407, + "type": "address", + "value": "from" + }, + "id": 3439, + "name": "Identifier", + "src": "61396:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3411, + "type": "uint256", + "value": "tokenId" + }, + "id": 3440, + "name": "Identifier", + "src": "61414:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3413, + "type": "bytes memory", + "value": "_data" + }, + "id": 3441, + "name": "Identifier", + "src": "61435:5:1" + } + ], + "id": 3442, + "name": "FunctionCall", + "src": "61275:175:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3443, + "name": "Literal", + "src": "61452:52:1" + } + ], + "id": 3444, + "name": "FunctionCall", + "src": "61259:246:1" + } + ], + "id": 3445, + "name": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "attributes": { + "assignments": [ + 3447 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "retval", + "scope": 3461, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 3446, + "name": "ElementaryTypeName", + "src": "61515:6:1" + } + ], + "id": 3447, + "name": "VariableDeclaration", + "src": "61515:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes4", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "decode", + "type": "function () pure" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3448, + "name": "Identifier", + "src": "61531:3:1" + } + ], + "id": 3449, + "name": "MemberAccess", + "src": "61531:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3427, + "type": "bytes memory", + "value": "returndata" + }, + "id": 3450, + "name": "Identifier", + "src": "61542:10:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "name": "bytes4" + }, + "id": 3451, + "name": "ElementaryTypeName", + "src": "61555:6:1" + } + ], + "id": 3452, + "name": "ElementaryTypeNameExpression", + "src": "61555:6:1" + } + ], + "id": 3453, + "name": "TupleExpression", + "src": "61554:8:1" + } + ], + "id": 3454, + "name": "FunctionCall", + "src": "61531:32:1" + } + ], + "id": 3455, + "name": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3447, + "type": "bytes4", + "value": "retval" + }, + "id": 3456, + "name": "Identifier", + "src": "61581:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2596, + "type": "bytes4", + "value": "_ERC721_RECEIVED" + }, + "id": 3457, + "name": "Identifier", + "src": "61591:16:1" + } + ], + "id": 3458, + "name": "BinaryOperation", + "src": "61581:26:1" + } + ], + "id": 3459, + "name": "TupleExpression", + "src": "61580:28:1" + } + ], + "id": 3460, + "name": "Return", + "src": "61573:35:1" + } + ], + "id": 3461, + "name": "Block", + "src": "61156:459:1" + } + ], + "id": 3462, + "name": "FunctionDefinition", + "src": "61026:589:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3463, + "name": "StructuredDocumentation", + "src": "61621:101:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3464, + "name": "ElementaryTypeName", + "src": "61745:7:1" + } + ], + "id": 3465, + "name": "VariableDeclaration", + "src": "61745:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3466, + "name": "ElementaryTypeName", + "src": "61757:7:1" + } + ], + "id": 3467, + "name": "VariableDeclaration", + "src": "61757:15:1" + } + ], + "id": 3468, + "name": "ParameterList", + "src": "61744:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3469, + "name": "ParameterList", + "src": "61791:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 3470, + "name": "Identifier", + "src": "61801:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3471, + "name": "Identifier", + "src": "61817:7:1" + } + ], + "id": 3472, + "name": "IndexAccess", + "src": "61801:24:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3473, + "name": "Identifier", + "src": "61828:2:1" + } + ], + "id": 3474, + "name": "Assignment", + "src": "61801:29:1" + } + ], + "id": 3475, + "name": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 563, + "type": "function (address,address,uint256)", + "value": "Approval" + }, + "id": 3476, + "name": "Identifier", + "src": "61845:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3477, + "name": "Identifier", + "src": "61854:6:1" + } + ], + "id": 3478, + "name": "MemberAccess", + "src": "61854:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3479, + "name": "Identifier", + "src": "61869:7:1" + } + ], + "id": 3480, + "name": "FunctionCall", + "src": "61854:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3481, + "name": "Identifier", + "src": "61879:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3482, + "name": "Identifier", + "src": "61883:7:1" + } + ], + "id": 3483, + "name": "FunctionCall", + "src": "61845:46:1" + } + ], + "id": 3484, + "name": "EmitStatement", + "src": "61840:51:1" + } + ], + "id": 3485, + "name": "Block", + "src": "61791:125:1" + } + ], + "id": 3486, + "name": "FunctionDefinition", + "src": "61727:189:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_beforeTokenTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3487, + "name": "StructuredDocumentation", + "src": "61922:585:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3488, + "name": "ElementaryTypeName", + "src": "62542:7:1" + } + ], + "id": 3489, + "name": "VariableDeclaration", + "src": "62542:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3490, + "name": "ElementaryTypeName", + "src": "62556:7:1" + } + ], + "id": 3491, + "name": "VariableDeclaration", + "src": "62556:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3492, + "name": "ElementaryTypeName", + "src": "62568:7:1" + } + ], + "id": 3493, + "name": "VariableDeclaration", + "src": "62568:15:1" + } + ], + "id": 3494, + "name": "ParameterList", + "src": "62541:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3495, + "name": "ParameterList", + "src": "62602:0:1" + }, + { + "attributes": { + "statements": [ + null + ] + }, + "children": [], + "id": 3496, + "name": "Block", + "src": "62602:3:1" + } + ], + "id": 3497, + "name": "FunctionDefinition", + "src": "62512:93:1" + } + ], + "id": 3498, + "name": "ContractDefinition", + "src": "46080:16527:1" + } + ], + "id": 3499, + "name": "SourceUnit", + "src": "84:62524:1" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-13T11:18:08.005Z", + "devdoc": { + "details": "See https://eips.ethereum.org/EIPS/eip-721", + "kind": "dev", + "methods": { + "approve(address,uint256)": { + "details": "Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event." + }, + "balanceOf(address)": { + "details": "Returns the number of tokens in ``owner``'s account." + }, + "getApproved(uint256)": { + "details": "Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist." + }, + "isApprovedForAll(address,address)": { + "details": "Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}" + }, + "ownerOf(uint256)": { + "details": "Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist." + }, + "safeTransferFrom(address,address,uint256)": { + "details": "Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event." + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event." + }, + "setApprovalForAll(address,bool)": { + "details": "Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event." + }, + "supportsInterface(bytes4)": { + "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas." + }, + "tokenByIndex(uint256)": { + "details": "Returns a token ID at a given `index` of all the tokens stored by the contract. Use along with {totalSupply} to enumerate all tokens." + }, + "tokenOfOwnerByIndex(address,uint256)": { + "details": "Returns a token ID owned by `owner` at a given `index` of its token list. Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "totalSupply()": { + "details": "Returns the total amount of tokens stored by the contract." + }, + "transferFrom(address,address,uint256)": { + "details": "Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event." + } + }, + "title": "ERC-721 Non-Fungible Token Standard, optional enumeration extension", + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/abis/IERC721Metadata.json b/src/abis/IERC721Metadata.json new file mode 100644 index 0000000..1b79b6b --- /dev/null +++ b/src/abis/IERC721Metadata.json @@ -0,0 +1,77930 @@ +{ + "contractName": "IERC721Metadata", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "approved", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Approval", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "approved", + "type": "bool" + } + ], + "name": "ApprovalForAll", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": true, + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "Transfer", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "approve", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "balanceOf", + "outputs": [ + { + "internalType": "uint256", + "name": "balance", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "getApproved", + "outputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "address", + "name": "operator", + "type": "address" + } + ], + "name": "isApprovedForAll", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "ownerOf", + "outputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "safeTransferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "bool", + "name": "_approved", + "type": "bool" + } + ], + "name": "setApprovalForAll", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "transferFrom", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "name", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "symbol", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + } + ], + "name": "tokenURI", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"balance\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"See https://eips.ethereum.org/EIPS/eip-721\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the number of tokens in ``owner``'s account.\"},\"getApproved(uint256)\":{\"details\":\"Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist.\"},\"isApprovedForAll(address,address)\":{\"details\":\"Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}\"},\"name()\":{\"details\":\"Returns the token collection name.\"},\"ownerOf(uint256)\":{\"details\":\"Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas.\"},\"symbol()\":{\"details\":\"Returns the token collection symbol.\"},\"tokenURI(uint256)\":{\"details\":\"Returns the Uniform Resource Identifier (URI) for `tokenId` token.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event.\"}},\"title\":\"ERC-721 Non-Fungible Token Standard, optional metadata extension\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":\"IERC721Metadata\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":{\"keccak256\":\"0xac9220652f9879c5fb3116025d59e8fbf6c2c3d149aed9f617b88edd31402044\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48de100723de94a6590c6db5bae5098a93445194389c3f3eeb104c7239ef3044\",\"dweb:/ipfs/QmVHLEtfLqBqX7XQRHfLuuwtufRBFJFHfgY4zbFRpaZwXC\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "", + "deployedSourceMap": "", + "source": "// SPDX-License-Identifier: MIT\n\n// File: @openzeppelin/contracts/utils/Context.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\n\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Enumerable is IERC721 {\n\n /**\n * @dev Returns the total amount of tokens stored by the contract.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);\n\n /**\n * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n * Use along with {totalSupply} to enumerate all tokens.\n */\n function tokenByIndex(uint256 index) external view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\npragma solidity >=0.6.0 <0.8.0;\n\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts may inherit from this and call {_registerInterface} to declare\n * their support of an interface.\n */\nabstract contract ERC165 is IERC165 {\n /*\n * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7\n */\n bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;\n\n /**\n * @dev Mapping of interface ids to whether or not it's supported.\n */\n mapping(bytes4 => bool) private _supportedInterfaces;\n\n constructor () {\n // Derived contracts need only register support for their own interfaces,\n // we register support for ERC165 itself here\n _registerInterface(_INTERFACE_ID_ERC165);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n *\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return _supportedInterfaces[interfaceId];\n }\n\n /**\n * @dev Registers the contract as an implementer of the interface defined by\n * `interfaceId`. Support of the actual ERC165 interface is automatic and\n * registering its interface id is not required.\n *\n * See {IERC165-supportsInterface}.\n *\n * Requirements:\n *\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).\n */\n function _registerInterface(bytes4 interfaceId) internal virtual {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the substraction of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n return a - b;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) return 0;\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: division by zero\");\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: modulo by zero\");\n return a % b;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {trySub}.\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryDiv}.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting with custom message when dividing by zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryMod}.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a % b;\n }\n}\n\n// File: @openzeppelin/contracts/utils/Address.sol\npragma solidity >=0.6.2 <0.8.0;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n // solhint-disable-next-line no-inline-assembly\n assembly { size := extcodesize(account) }\n return size > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: value }(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.staticcall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableSet.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) { // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n bytes32 lastvalue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastvalue;\n // Update the index for the moved value\n set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n require(set._values.length > index, \"EnumerableSet: index out of bounds\");\n return set._values[index];\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableMap.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing an enumerable variant of Solidity's\n * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n * type.\n *\n * Maps have the following properties:\n *\n * - Entries are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Entries are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableMap for EnumerableMap.UintToAddressMap;\n *\n * // Declare a set state variable\n * EnumerableMap.UintToAddressMap private myMap;\n * }\n * ```\n *\n * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n * supported.\n */\nlibrary EnumerableMap {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Map type with\n // bytes32 keys and values.\n // The Map implementation uses private functions, and user-facing\n // implementations (such as Uint256ToAddressMap) are just wrappers around\n // the underlying Map.\n // This means that we can only create new EnumerableMaps for types that fit\n // in bytes32.\n\n struct MapEntry {\n bytes32 _key;\n bytes32 _value;\n }\n\n struct Map {\n // Storage of map keys and values\n MapEntry[] _entries;\n\n // Position of the entry defined by a key in the `entries` array, plus 1\n // because index 0 means a key is not in the map.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex == 0) { // Equivalent to !contains(map, key)\n map._entries.push(MapEntry({ _key: key, _value: value }));\n // The entry is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n map._indexes[key] = map._entries.length;\n return true;\n } else {\n map._entries[keyIndex - 1]._value = value;\n return false;\n }\n }\n\n /**\n * @dev Removes a key-value pair from a map. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function _remove(Map storage map, bytes32 key) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex != 0) { // Equivalent to contains(map, key)\n // To delete a key-value pair from the _entries array in O(1), we swap the entry to delete with the last one\n // in the array, and then remove the last entry (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = keyIndex - 1;\n uint256 lastIndex = map._entries.length - 1;\n\n // When the entry to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n MapEntry storage lastEntry = map._entries[lastIndex];\n\n // Move the last entry to the index where the entry to delete is\n map._entries[toDeleteIndex] = lastEntry;\n // Update the index for the moved entry\n map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved entry was stored\n map._entries.pop();\n\n // Delete the index for the deleted slot\n delete map._indexes[key];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function _contains(Map storage map, bytes32 key) private view returns (bool) {\n return map._indexes[key] != 0;\n }\n\n /**\n * @dev Returns the number of key-value pairs in the map. O(1).\n */\n function _length(Map storage map) private view returns (uint256) {\n return map._entries.length;\n }\n\n /**\n * @dev Returns the key-value pair stored at position `index` in the map. O(1).\n *\n * Note that there are no guarantees on the ordering of entries inside the\n * array, and it may change when more entries are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) {\n require(map._entries.length > index, \"EnumerableMap: index out of bounds\");\n\n MapEntry storage entry = map._entries[index];\n return (entry._key, entry._value);\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n */\n function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) {\n uint256 keyIndex = map._indexes[key];\n if (keyIndex == 0) return (false, 0); // Equivalent to contains(map, key)\n return (true, map._entries[keyIndex - 1]._value); // All indexes are 1-based\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function _get(Map storage map, bytes32 key) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, \"EnumerableMap: nonexistent key\"); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n /**\n * @dev Same as {_get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {_tryGet}.\n */\n function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n // UintToAddressMap\n\n struct UintToAddressMap {\n Map _inner;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) {\n return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {\n return _remove(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {\n return _contains(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns the number of elements in the map. O(1).\n */\n function length(UintToAddressMap storage map) internal view returns (uint256) {\n return _length(map._inner);\n }\n\n /**\n * @dev Returns the element stored at position `index` in the set. O(1).\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {\n (bytes32 key, bytes32 value) = _at(map._inner, index);\n return (uint256(key), address(uint160(uint256(value))));\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n *\n * _Available since v3.4._\n */\n function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) {\n (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key));\n return (success, address(uint160(uint256(value))));\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key)))));\n }\n\n /**\n * @dev Same as {get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryGet}.\n */\n function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage))));\n }\n}\n\n// File: @openzeppelin/contracts/utils/Strings.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n /**\n * @dev Converts a `uint256` to its ASCII `string` representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n uint256 index = digits - 1;\n temp = value;\n while (temp != 0) {\n buffer[index--] = bytes1(uint8(48 + temp % 10));\n temp /= 10;\n }\n return string(buffer);\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 Non-Fungible Token Standard basic implementation\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable {\n using SafeMath for uint256;\n using Address for address;\n using EnumerableSet for EnumerableSet.UintSet;\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n using Strings for uint256;\n\n // Equals to `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n // which can be also obtained as `IERC721Receiver(0).onERC721Received.selector`\n bytes4 private constant _ERC721_RECEIVED = 0x150b7a02;\n\n // Mapping from holder address to their (enumerable) set of owned tokens\n mapping (address => EnumerableSet.UintSet) private _holderTokens;\n\n // Enumerable mapping from token ids to their owners\n EnumerableMap.UintToAddressMap private _tokenOwners;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Optional mapping for token URIs\n mapping (uint256 => string) private _tokenURIs;\n\n // Base URI\n string private _baseURI;\n\n /*\n * bytes4(keccak256('balanceOf(address)')) == 0x70a08231\n * bytes4(keccak256('ownerOf(uint256)')) == 0x6352211e\n * bytes4(keccak256('approve(address,uint256)')) == 0x095ea7b3\n * bytes4(keccak256('getApproved(uint256)')) == 0x081812fc\n * bytes4(keccak256('setApprovalForAll(address,bool)')) == 0xa22cb465\n * bytes4(keccak256('isApprovedForAll(address,address)')) == 0xe985e9c5\n * bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde\n *\n * => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^\n * 0xa22cb465 ^ 0xe985e9c5 ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n /*\n * bytes4(keccak256('name()')) == 0x06fdde03\n * bytes4(keccak256('symbol()')) == 0x95d89b41\n * bytes4(keccak256('tokenURI(uint256)')) == 0xc87b56dd\n *\n * => 0x06fdde03 ^ 0x95d89b41 ^ 0xc87b56dd == 0x5b5e139f\n */\n bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f;\n\n /*\n * bytes4(keccak256('totalSupply()')) == 0x18160ddd\n * bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) == 0x2f745c59\n * bytes4(keccak256('tokenByIndex(uint256)')) == 0x4f6ccce7\n *\n * => 0x18160ddd ^ 0x2f745c59 ^ 0x4f6ccce7 == 0x780e9d63\n */\n bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor (string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n return _holderTokens[owner].length();\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n return _tokenOwners.get(tokenId, \"ERC721: owner query for nonexistent token\");\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).\n if (bytes(_tokenURI).length > 0) {\n return string(abi.encodePacked(base, _tokenURI));\n }\n // If there is a baseURI but no tokenURI, concatenate the tokenID to the baseURI.\n return string(abi.encodePacked(base, tokenId.toString()));\n }\n\n /**\n * @dev Returns the base URI set via {_setBaseURI}. This will be\n * automatically added as a prefix in {tokenURI} to each token's URI, or\n * to the token ID if no specific URI is set for that token ID.\n */\n function baseURI() public view virtual returns (string memory) {\n return _baseURI;\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\n return _holderTokens[owner].at(index);\n }\n\n /**\n * @dev See {IERC721Enumerable-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n // _tokenOwners are indexed by tokenIds, so .length() returns the number of tokenIds\n return _tokenOwners.length();\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenByIndex}.\n */\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\n (uint256 tokenId, ) = _tokenOwners.at(index);\n return tokenId;\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(_msgSender() == owner || ERC721.isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n require(operator != _msgSender(), \"ERC721: approve to caller\");\n\n _operatorApprovals[_msgSender()][operator] = approved;\n emit ApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n _safeTransfer(from, to, tokenId, _data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `_data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _tokenOwners.contains(tokenId);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || ERC721.isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n d*\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory _data) internal virtual {\n _mint(to, tokenId);\n require(_checkOnERC721Received(address(0), to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId);\n\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId); // internal owner\n\n _beforeTokenTransfer(owner, address(0), tokenId);\n\n // Clear approvals\n _approve(address(0), tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n\n _holderTokens[owner].remove(tokenId);\n\n _tokenOwners.remove(tokenId);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\"); // internal owner\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId);\n\n // Clear approvals from the previous owner\n _approve(address(0), tokenId);\n\n _holderTokens[from].remove(tokenId);\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = _tokenURI;\n }\n\n /**\n * @dev Internal function to set the base URI for all token IDs. It is\n * automatically added as a prefix to the value returned in {tokenURI},\n * or to the token ID if {tokenURI} is empty.\n */\n function _setBaseURI(string memory baseURI_) internal virtual {\n _baseURI = baseURI_;\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data)\n private returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n bytes memory returndata = to.functionCall(abi.encodeWithSelector(\n IERC721Receiver(to).onERC721Received.selector,\n _msgSender(),\n from,\n tokenId,\n _data\n ), \"ERC721: transfer to non ERC721Receiver implementer\");\n bytes4 retval = abi.decode(returndata, (bytes4));\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits an {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId); // internal owner\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n * transferred to `to`.\n * - When `from` is zero, `tokenId` will be minted for `to`.\n * - When `to` is zero, ``from``'s `tokenId` will be burned.\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual { }\n}\n", + "sourcePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "ast": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "id": 3499, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 509, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "84:31:1" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 530, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 517, + "nodeType": "Block", + "src": "719:34:1", + "statements": [ + { + "expression": { + "expression": { + "id": 514, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "736:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "736:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 513, + "id": 516, + "nodeType": "Return", + "src": "729:17:1" + } + ] + }, + "id": 518, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 510, + "nodeType": "ParameterList", + "parameters": [], + "src": "668:2:1" + }, + "returnParameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 518, + "src": "702:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "702:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "701:17:1" + }, + "scope": 530, + "src": "649:104:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 528, + "nodeType": "Block", + "src": "824:165:1", + "statements": [ + { + "expression": { + "id": 523, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "834:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 524, + "nodeType": "ExpressionStatement", + "src": "834:4:1" + }, + { + "expression": { + "expression": { + "id": 525, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "974:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "src": "974:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 522, + "id": 527, + "nodeType": "Return", + "src": "967:15:1" + } + ] + }, + "id": 529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 519, + "nodeType": "ParameterList", + "parameters": [], + "src": "776:2:1" + }, + "returnParameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "810:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 520, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "810:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "809:14:1" + }, + "scope": 530, + "src": "759:230:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "617:374:1" + }, + { + "id": 531, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1053:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 532, + "nodeType": "StructuredDocumentation", + "src": "1086:279:1", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 541, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 533, + "nodeType": "StructuredDocumentation", + "src": "1390:340:1", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 540, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1762:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 534, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1762:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1761:20:1" + }, + "returnParameters": { + "id": 539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1805:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1805:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1804:6:1" + }, + "scope": 541, + "src": "1735:76:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1366:447:1" + }, + { + "id": 542, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1873:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 544, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "1996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 545, + "nodeType": "InheritanceSpecifier", + "src": "1996:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "1907:67:1", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 655, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 546, + "nodeType": "StructuredDocumentation", + "src": "2010:88:1", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 554, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 548, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2118:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 550, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2140:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2140:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 552, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2160:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2117:67:1" + }, + "src": "2103:82:1" + }, + { + "anonymous": false, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "2191:94:1", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 563, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 557, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2305:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2305:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 559, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2328:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 561, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2354:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2354:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2304:74:1" + }, + "src": "2290:89:1" + }, + { + "anonymous": false, + "documentation": { + "id": 564, + "nodeType": "StructuredDocumentation", + "src": "2385:117:1", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 572, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 566, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2528:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2528:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2551:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2551:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 570, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2577:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 569, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2577:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2527:64:1" + }, + "src": "2507:85:1" + }, + { + "documentation": { + "id": 573, + "nodeType": "StructuredDocumentation", + "src": "2598:76:1", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2698:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 574, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2698:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2697:15:1" + }, + "returnParameters": { + "id": 579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2736:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2735:17:1" + }, + "scope": 655, + "src": "2679:74:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 581, + "nodeType": "StructuredDocumentation", + "src": "2759:131:1", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 588, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 583, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2912:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2912:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2911:17:1" + }, + "returnParameters": { + "id": 587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2952:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2951:15:1" + }, + "scope": 655, + "src": "2895:72:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 589, + "nodeType": "StructuredDocumentation", + "src": "2973:690:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 598, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 591, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3694:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3694:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3708:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3708:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3720:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3720:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3693:43:1" + }, + "returnParameters": { + "id": 597, + "nodeType": "ParameterList", + "parameters": [], + "src": "3745:0:1" + }, + "scope": 655, + "src": "3668:78:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 599, + "nodeType": "StructuredDocumentation", + "src": "3752:504:1", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 608, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 601, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4283:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4283:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 603, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4297:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 602, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4297:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4309:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4309:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4282:43:1" + }, + "returnParameters": { + "id": 607, + "nodeType": "ParameterList", + "parameters": [], + "src": "4334:0:1" + }, + "scope": 655, + "src": "4261:74:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 609, + "nodeType": "StructuredDocumentation", + "src": "4341:452:1", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 616, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 611, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4815:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4815:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4827:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4814:29:1" + }, + "returnParameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [], + "src": "4852:0:1" + }, + "scope": 655, + "src": "4798:55:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 617, + "nodeType": "StructuredDocumentation", + "src": "4859:139:1", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 619, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5024:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5024:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5023:17:1" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5064:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5064:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5063:18:1" + }, + "scope": 655, + "src": "5003:79:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 625, + "nodeType": "StructuredDocumentation", + "src": "5088:309:1", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 632, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5429:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5429:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5447:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 628, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5447:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5428:34:1" + }, + "returnParameters": { + "id": 631, + "nodeType": "ParameterList", + "parameters": [], + "src": "5471:0:1" + }, + "scope": 655, + "src": "5402:70:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 633, + "nodeType": "StructuredDocumentation", + "src": "5478:138:1", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 642, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5647:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5647:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5662:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5662:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5646:33:1" + }, + "returnParameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5703:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 639, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5703:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5702:6:1" + }, + "scope": 655, + "src": "5621:88:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 643, + "nodeType": "StructuredDocumentation", + "src": "5715:568:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 654, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6314:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6314:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6328:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6340:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6340:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6357:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 650, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6357:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6313:64:1" + }, + "returnParameters": { + "id": 653, + "nodeType": "ParameterList", + "parameters": [], + "src": "6386:0:1" + }, + "scope": 655, + "src": "6288:99:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1975:4414:1" + }, + { + "id": 656, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "6457:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 658, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "6654:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 659, + "nodeType": "InheritanceSpecifier", + "src": "6654:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 657, + "nodeType": "StructuredDocumentation", + "src": "6491:133:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 680, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 660, + "nodeType": "StructuredDocumentation", + "src": "6669:58:1", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 665, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [], + "src": "6745:2:1" + }, + "returnParameters": { + "id": 664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 663, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 665, + "src": "6771:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 662, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6771:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6770:15:1" + }, + "scope": 680, + "src": "6732:54:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 666, + "nodeType": "StructuredDocumentation", + "src": "6792:60:1", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 671, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 667, + "nodeType": "ParameterList", + "parameters": [], + "src": "6872:2:1" + }, + "returnParameters": { + "id": 670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 669, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "6898:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 668, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6897:15:1" + }, + "scope": 680, + "src": "6857:56:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 672, + "nodeType": "StructuredDocumentation", + "src": "6919:90:1", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 679, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7032:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7031:17:1" + }, + "returnParameters": { + "id": 678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7072:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 676, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7072:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7071:15:1" + }, + "scope": 680, + "src": "7014:73:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "6625:464:1" + }, + { + "id": 681, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "7161:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 683, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "7363:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 684, + "nodeType": "InheritanceSpecifier", + "src": "7363:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 682, + "nodeType": "StructuredDocumentation", + "src": "7195:136:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 709, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 685, + "nodeType": "StructuredDocumentation", + "src": "7378:82:1", + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "functionSelector": "18160ddd", + "id": 690, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 686, + "nodeType": "ParameterList", + "parameters": [], + "src": "7485:2:1" + }, + "returnParameters": { + "id": 689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 688, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "7511:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 687, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7511:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7510:9:1" + }, + "scope": 709, + "src": "7465:55:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "7526:171:1", + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "functionSelector": "2f745c59", + "id": 700, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7731:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7731:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7746:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7746:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7730:30:1" + }, + "returnParameters": { + "id": 699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 698, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7784:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7784:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7783:17:1" + }, + "scope": 709, + "src": "7702:99:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 701, + "nodeType": "StructuredDocumentation", + "src": "7807:164:1", + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "functionSelector": "4f6ccce7", + "id": 708, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 703, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "7998:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7998:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7997:15:1" + }, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "8036:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8036:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8035:9:1" + }, + "scope": 709, + "src": "7976:69:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "7332:715:1" + }, + { + "id": 710, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "8117:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 711, + "nodeType": "StructuredDocumentation", + "src": "8150:152:1", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 726, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 712, + "nodeType": "StructuredDocumentation", + "src": "8335:485:1", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 725, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8851:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8851:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8869:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8883:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8900:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 719, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8900:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8850:70:1" + }, + "returnParameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8939:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 722, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8939:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "8938:8:1" + }, + "scope": 726, + "src": "8825:122:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "8303:646:1" + }, + { + "id": 727, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9009:31:1" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 729, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "9243:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 730, + "nodeType": "InheritanceSpecifier", + "src": "9243:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "documentation": { + "id": 728, + "nodeType": "StructuredDocumentation", + "src": "9043:171:1", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "fullyImplemented": true, + "id": 781, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 733, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9340:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 731, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9340:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783031666663396137", + "id": 732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "9404:82:1", + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 738, + "mutability": "mutable", + "name": "_supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9491:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 737, + "keyType": { + "id": 735, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9499:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "9491:23:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 736, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9509:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 745, + "nodeType": "Block", + "src": "9565:193:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 742, + "name": "_INTERFACE_ID_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "9730:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 741, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "9711:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9711:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 744, + "nodeType": "ExpressionStatement", + "src": "9711:40:1" + } + ] + }, + "id": 746, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 739, + "nodeType": "ParameterList", + "parameters": [], + "src": "9562:2:1" + }, + "returnParameters": { + "id": 740, + "nodeType": "ParameterList", + "parameters": [], + "src": "9565:0:1" + }, + "scope": 781, + "src": "9550:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 540 + ], + "body": { + "id": 759, + "nodeType": "Block", + "src": "9999:57:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 755, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10016:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 757, + "indexExpression": { + "id": 756, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "10037:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10016:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 754, + "id": 758, + "nodeType": "Return", + "src": "10009:40:1" + } + ] + }, + "documentation": { + "id": 747, + "nodeType": "StructuredDocumentation", + "src": "9764:139:1", + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 760, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 751, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9975:8:1" + }, + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9935:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 748, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9935:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "9934:20:1" + }, + "returnParameters": { + "id": 754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 753, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9993:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9993:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9992:6:1" + }, + "scope": 781, + "src": "9908:148:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 779, + "nodeType": "Block", + "src": "10515:133:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 767, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10533:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10548:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "10533:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10560:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + }, + "value": "ERC165: invalid interface id" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "id": 766, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "10525:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10525:66:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 772, + "nodeType": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "expression": { + "id": 777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 773, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10601:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 775, + "indexExpression": { + "id": 774, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10622:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10637:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10601:40:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 778, + "nodeType": "ExpressionStatement", + "src": "10601:40:1" + } + ] + }, + "documentation": { + "id": 761, + "nodeType": "StructuredDocumentation", + "src": "10062:383:1", + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 780, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 763, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 780, + "src": "10478:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 762, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "10478:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "10477:20:1" + }, + "returnParameters": { + "id": 765, + "nodeType": "ParameterList", + "parameters": [], + "src": "10515:0:1" + }, + "scope": 781, + "src": "10450:198:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "9215:1435:1" + }, + { + "id": 782, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10703:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 783, + "nodeType": "StructuredDocumentation", + "src": "10736:563:1", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 1135, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 813, + "nodeType": "Block", + "src": "11535:98:1", + "statements": [ + { + "assignments": [ + 796 + ], + "declarations": [ + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 813, + "src": "11545:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 795, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 800, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 797, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11557:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "11561:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11557:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 801, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11576:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 802, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11580:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11576:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 808, + "nodeType": "IfStatement", + "src": "11572:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11591:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11598:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 806, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11590:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 794, + "id": 807, + "nodeType": "Return", + "src": "11583:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11618:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 810, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11624:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 811, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11617:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 794, + "id": 812, + "nodeType": "Return", + "src": "11610:16:1" + } + ] + }, + "documentation": { + "id": 784, + "nodeType": "StructuredDocumentation", + "src": "11323:131:1", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 814, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11475:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11475:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11486:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11486:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11474:22:1" + }, + "returnParameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 791, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11526:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 792, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11526:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11519:15:1" + }, + "scope": 1135, + "src": "11459:174:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 840, + "nodeType": "Block", + "src": "11855:75:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 826, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11869:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 827, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11873:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11869:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 833, + "nodeType": "IfStatement", + "src": "11865:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11884:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 831, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11883:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 825, + "id": 832, + "nodeType": "Return", + "src": "11876:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11911:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 835, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11917:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 836, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11921:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11917:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 838, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11910:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 825, + "id": 839, + "nodeType": "Return", + "src": "11903:20:1" + } + ] + }, + "documentation": { + "id": 815, + "nodeType": "StructuredDocumentation", + "src": "11639:135:1", + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 841, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 817, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11795:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11795:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 819, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11806:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11806:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11794:22:1" + }, + "returnParameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11840:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 821, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11840:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 824, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11846:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11846:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11839:15:1" + }, + "scope": 1135, + "src": "11779:151:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 881, + "nodeType": "Block", + "src": "12154:359:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 853, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12386:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12391:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12386:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 860, + "nodeType": "IfStatement", + "src": "12382:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12402:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12408:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 858, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12401:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 859, + "nodeType": "Return", + "src": "12394:16:1" + } + }, + { + "assignments": [ + 862 + ], + "declarations": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "12420:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12420:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 866, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12432:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 864, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12436:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12432:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 867, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12451:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 868, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12455:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 870, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12460:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 876, + "nodeType": "IfStatement", + "src": "12447:33:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12471:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12478:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 874, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12470:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 875, + "nodeType": "Return", + "src": "12463:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12498:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 878, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12504:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12497:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 852, + "id": 880, + "nodeType": "Return", + "src": "12490:16:1" + } + ] + }, + "documentation": { + "id": 842, + "nodeType": "StructuredDocumentation", + "src": "11936:137:1", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 844, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12094:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12094:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 846, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12105:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12093:22:1" + }, + "returnParameters": { + "id": 852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12139:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 848, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12139:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12145:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12145:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12138:15:1" + }, + "scope": 1135, + "src": "12078:435:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 908, + "nodeType": "Block", + "src": "12738:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 894, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12752:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12757:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12752:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 901, + "nodeType": "IfStatement", + "src": "12748:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12768:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12775:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 899, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12767:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 893, + "id": 900, + "nodeType": "Return", + "src": "12760:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12795:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 903, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "12801:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 904, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12805:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12801:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 906, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12794:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 893, + "id": 907, + "nodeType": "Return", + "src": "12787:20:1" + } + ] + }, + "documentation": { + "id": 883, + "nodeType": "StructuredDocumentation", + "src": "12519:138:1", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 909, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12678:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12678:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12689:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12689:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12677:22:1" + }, + "returnParameters": { + "id": 893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12723:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 889, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12723:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12729:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12729:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12722:15:1" + }, + "scope": 1135, + "src": "12662:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 935, + "nodeType": "Block", + "src": "13049:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 921, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13063:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13068:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13063:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 928, + "nodeType": "IfStatement", + "src": "13059:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13079:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13086:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 926, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13078:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 920, + "id": 927, + "nodeType": "Return", + "src": "13071:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13106:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 930, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "13112:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 931, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13116:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13112:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13105:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 920, + "id": 934, + "nodeType": "Return", + "src": "13098:20:1" + } + ] + }, + "documentation": { + "id": 910, + "nodeType": "StructuredDocumentation", + "src": "12820:148:1", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 912, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "12989:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12989:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 914, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13000:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 913, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13000:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12988:22:1" + }, + "returnParameters": { + "id": 920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 917, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13034:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 916, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13034:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 919, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13040:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13040:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13033:15:1" + }, + "scope": 1135, + "src": "12973:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 961, + "nodeType": "Block", + "src": "13427:108:1", + "statements": [ + { + "assignments": [ + 947 + ], + "declarations": [ + { + "constant": false, + "id": 947, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "13437:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13437:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 951, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13449:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 949, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 941, + "src": "13453:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13449:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 953, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13472:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 954, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13477:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13480:29:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 952, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13464:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 958, + "nodeType": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "expression": { + "id": 959, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13527:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 945, + "id": 960, + "nodeType": "Return", + "src": "13520:8:1" + } + ] + }, + "documentation": { + "id": 937, + "nodeType": "StructuredDocumentation", + "src": "13131:224:1", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13373:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13384:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13384:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13372:22:1" + }, + "returnParameters": { + "id": 945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13418:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13418:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13417:9:1" + }, + "scope": 1135, + "src": "13360:175:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 983, + "nodeType": "Block", + "src": "13873:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 973, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13896:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13891:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13883:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 979, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13949:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 980, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13953:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13949:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 971, + "id": 982, + "nodeType": "Return", + "src": "13942:12:1" + } + ] + }, + "documentation": { + "id": 963, + "nodeType": "StructuredDocumentation", + "src": "13541:260:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 984, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13819:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 964, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 967, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13830:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13830:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13818:22:1" + }, + "returnParameters": { + "id": 971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 970, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13864:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13864:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13863:9:1" + }, + "scope": 1135, + "src": "13806:155:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "14275:148:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 994, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14289:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14294:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14289:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "IfStatement", + "src": "14285:20:1", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14304:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 993, + "id": 998, + "nodeType": "Return", + "src": "14297:8:1" + } + }, + { + "assignments": [ + 1001 + ], + "declarations": [ + { + "constant": false, + "id": 1001, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "14315:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14315:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1005, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1002, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14327:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1003, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14331:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14327:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1007, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14350:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1008, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14354:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1010, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14359:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14362:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1006, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14342:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14342:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "expression": { + "id": 1015, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14415:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 993, + "id": 1016, + "nodeType": "Return", + "src": "14408:8:1" + } + ] + }, + "documentation": { + "id": 985, + "nodeType": "StructuredDocumentation", + "src": "13967:236:1", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14221:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 989, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14232:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 988, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14232:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14220:22:1" + }, + "returnParameters": { + "id": 993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 992, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14266:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14266:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14265:9:1" + }, + "scope": 1135, + "src": "14208:215:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1039, + "nodeType": "Block", + "src": "14954:83:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1029, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "14972:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14976:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14972:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14979:28:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14964:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14964:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1034, + "nodeType": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1035, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1021, + "src": "15025:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1036, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "15029:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15025:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1027, + "id": 1038, + "nodeType": "Return", + "src": "15018:12:1" + } + ] + }, + "documentation": { + "id": 1019, + "nodeType": "StructuredDocumentation", + "src": "14429:453:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1040, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1021, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14900:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14900:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1023, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14911:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14899:22:1" + }, + "returnParameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1026, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14945:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14945:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14944:9:1" + }, + "scope": 1135, + "src": "14887:150:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1061, + "nodeType": "Block", + "src": "15557:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1051, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15575:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15579:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15582:26:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 1050, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "15567:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15567:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1056, + "nodeType": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1057, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1043, + "src": "15626:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1058, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15630:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15626:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1049, + "id": 1060, + "nodeType": "Return", + "src": "15619:12:1" + } + ] + }, + "documentation": { + "id": 1041, + "nodeType": "StructuredDocumentation", + "src": "15043:442:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1062, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1043, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15503:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1045, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15514:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15502:22:1" + }, + "returnParameters": { + "id": 1049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1048, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15548:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15548:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15547:9:1" + }, + "scope": 1135, + "src": "15490:148:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1085, + "nodeType": "Block", + "src": "16197:68:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16215:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1076, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16220:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16215:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1078, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "16223:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1074, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "16207:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16207:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1080, + "nodeType": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16253:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1082, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16257:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16253:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1073, + "id": 1084, + "nodeType": "Return", + "src": "16246:12:1" + } + ] + }, + "documentation": { + "id": 1063, + "nodeType": "StructuredDocumentation", + "src": "15644:453:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1086, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16115:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16115:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16126:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16137:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1068, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16137:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16114:50:1" + }, + "returnParameters": { + "id": 1073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16188:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16188:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16187:9:1" + }, + "scope": 1135, + "src": "16102:163:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1109, + "nodeType": "Block", + "src": "17017:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1099, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17035:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17039:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17035:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1102, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1093, + "src": "17042:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17027:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17027:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1105, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "17072:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1106, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17076:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17072:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1097, + "id": 1108, + "nodeType": "Return", + "src": "17065:12:1" + } + ] + }, + "documentation": { + "id": 1087, + "nodeType": "StructuredDocumentation", + "src": "16271:646:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16935:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16935:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16946:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16946:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1093, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16957:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1092, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16957:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16934:50:1" + }, + "returnParameters": { + "id": 1097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1096, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "17008:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17008:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17007:9:1" + }, + "scope": 1135, + "src": "16922:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1133, + "nodeType": "Block", + "src": "17825:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1123, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17843:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17847:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17843:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1126, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "17850:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17835:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1128, + "nodeType": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1129, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "17880:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1130, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17880:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1121, + "id": 1132, + "nodeType": "Return", + "src": "17873:12:1" + } + ] + }, + "documentation": { + "id": 1111, + "nodeType": "StructuredDocumentation", + "src": "17090:635:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17743:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17743:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17754:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17754:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17765:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1116, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17765:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17742:50:1" + }, + "returnParameters": { + "id": 1121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17816:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17816:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17815:9:1" + }, + "scope": 1135, + "src": "17730:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "11300:6594:1" + }, + { + "id": 1136, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "17947:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1137, + "nodeType": "StructuredDocumentation", + "src": "17980:67:1", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 1430, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1153, + "nodeType": "Block", + "src": "18706:347:1", + "statements": [ + { + "assignments": [ + 1146 + ], + "declarations": [ + { + "constant": false, + "id": 1146, + "mutability": "mutable", + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 1153, + "src": "18903:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18903:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1147, + "nodeType": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "18990:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18992:28:1", + "value": { + "arguments": [ + { + "name": "account", + "nodeType": "YulIdentifier", + "src": "19012:7:1" + } + ], + "functionName": { + "name": "extcodesize", + "nodeType": "YulIdentifier", + "src": "19000:11:1" + }, + "nodeType": "YulFunctionCall", + "src": "19000:20:1" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "18992:4:1" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "id": 1148, + "nodeType": "InlineAssembly", + "src": "18981:41:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1149, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "19038:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19045:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19038:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1144, + "id": 1152, + "nodeType": "Return", + "src": "19031:15:1" + } + ] + }, + "documentation": { + "id": 1138, + "nodeType": "StructuredDocumentation", + "src": "18070:565:1", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1154, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1140, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18660:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18660:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18659:17:1" + }, + "returnParameters": { + "id": 1144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1143, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18700:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1142, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18700:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "18699:6:1" + }, + "scope": 1430, + "src": "18640:413:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1187, + "nodeType": "Block", + "src": "20041:320:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1165, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "20067:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20059:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1163, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20059:7:1", + "typeDescriptions": {} + } + }, + "id": 1166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20059:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "20059:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1168, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20084:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20059:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20092:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 1162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20051:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1172, + "nodeType": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "assignments": [ + 1174, + null + ], + "declarations": [ + { + "constant": false, + "id": 1174, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1187, + "src": "20213:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1173, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20213:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1181, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20263:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 1175, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1157, + "src": "20231:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "20231:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1177, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20254:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "20231:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20231:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1183, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "20284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20293:60:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 1182, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20276:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20276:78:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1186, + "nodeType": "ExpressionStatement", + "src": "20276:78:1" + } + ] + }, + "documentation": { + "id": 1155, + "nodeType": "StructuredDocumentation", + "src": "19059:906:1", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1188, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1157, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "19989:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19989:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1159, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "20016:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19988:43:1" + }, + "returnParameters": { + "id": 1161, + "nodeType": "ParameterList", + "parameters": [], + "src": "20041:0:1" + }, + "scope": 1430, + "src": "19970:391:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1204, + "nodeType": "Block", + "src": "21191:82:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1199, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "21219:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1200, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "21227:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21233:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 1198, + "name": "functionCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "src": "21206:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21206:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1197, + "id": 1203, + "nodeType": "Return", + "src": "21199:67:1" + } + ] + }, + "documentation": { + "id": 1189, + "nodeType": "StructuredDocumentation", + "src": "20367:730:1", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1205, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21124:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21124:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21140:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1192, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21140:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21123:35:1" + }, + "returnParameters": { + "id": 1197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1196, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21177:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1195, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21176:14:1" + }, + "scope": 1430, + "src": "21102:171:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1224, + "nodeType": "Block", + "src": "21612:76:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1218, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "21651:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1219, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "21659:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21665:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 1221, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "21668:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1217, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "21629:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21629:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1216, + "id": 1223, + "nodeType": "Return", + "src": "21622:59:1" + } + ] + }, + "documentation": { + "id": 1206, + "nodeType": "StructuredDocumentation", + "src": "21279:211:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1208, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21517:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21517:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21533:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1209, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21533:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1212, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21552:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1211, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "21552:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "21516:63:1" + }, + "returnParameters": { + "id": 1216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1215, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21598:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1214, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21598:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21597:14:1" + }, + "scope": 1430, + "src": "21495:193:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1244, + "nodeType": "Block", + "src": "22163:111:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1238, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "22202:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1239, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "22210:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1240, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1232, + "src": "22216:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22223:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 1237, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "22180:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22180:87:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1236, + "id": 1243, + "nodeType": "Return", + "src": "22173:94:1" + } + ] + }, + "documentation": { + "id": 1226, + "nodeType": "StructuredDocumentation", + "src": "21694:351:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1245, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1228, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22081:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22081:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1230, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22097:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1229, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22097:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1232, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22116:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "22080:50:1" + }, + "returnParameters": { + "id": 1236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1235, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22149:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1234, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22149:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22148:14:1" + }, + "scope": 1430, + "src": "22050:224:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1294, + "nodeType": "Block", + "src": "22663:382:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1262, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "22689:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22681:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22681:7:1", + "typeDescriptions": {} + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22681:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "22681:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1265, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22706:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22681:30:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 1267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22713:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 1259, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22673:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22673:81:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1269, + "nodeType": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1272, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22783:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1271, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "22772:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22772:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22792:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 1270, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22764:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22764:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1276, + "nodeType": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "assignments": [ + 1278, + 1280 + ], + "declarations": [ + { + "constant": false, + "id": 1278, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22895:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1277, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22895:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1280, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22909:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1279, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22909:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1287, + "initialValue": { + "arguments": [ + { + "id": 1285, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1250, + "src": "22964:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1281, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22936:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "22936:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1283, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22956:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "22936:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22936:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1289, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "23004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1290, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1280, + "src": "23013:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1291, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "23025:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1288, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "22986:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22986:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1258, + "id": 1293, + "nodeType": "Return", + "src": "22979:59:1" + } + ] + }, + "documentation": { + "id": 1246, + "nodeType": "StructuredDocumentation", + "src": "22280:237:1", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1295, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1248, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22553:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22553:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1250, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22569:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1249, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22569:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1252, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22588:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22588:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1254, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22603:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1253, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "22603:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "22552:78:1" + }, + "returnParameters": { + "id": 1258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1257, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22649:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1256, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22649:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22648:14:1" + }, + "scope": 1430, + "src": "22522:523:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1311, + "nodeType": "Block", + "src": "23322:97:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1306, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1298, + "src": "23358:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1307, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "23366:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23372:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 1305, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "src": "23339:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23339:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1304, + "id": 1310, + "nodeType": "Return", + "src": "23332:80:1" + } + ] + }, + "documentation": { + "id": 1296, + "nodeType": "StructuredDocumentation", + "src": "23051:166:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1298, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23250:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23250:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23266:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1299, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23266:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23249:35:1" + }, + "returnParameters": { + "id": 1304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1303, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23308:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23308:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23307:14:1" + }, + "scope": 1430, + "src": "23222:197:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1346, + "nodeType": "Block", + "src": "23731:288:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1326, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1325, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "23749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23749:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23769:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + }, + "value": "Address: static call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "id": 1324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "23741:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23741:67:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1330, + "nodeType": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "assignments": [ + 1332, + 1334 + ], + "declarations": [ + { + "constant": false, + "id": 1332, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23879:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1331, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23879:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1334, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23893:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1333, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23893:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1339, + "initialValue": { + "arguments": [ + { + "id": 1337, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "23938:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1335, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23920:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "23920:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23920:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1341, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "23978:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1342, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1334, + "src": "23987:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1343, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "23999:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1340, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "23960:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23960:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1323, + "id": 1345, + "nodeType": "Return", + "src": "23953:59:1" + } + ] + }, + "documentation": { + "id": 1313, + "nodeType": "StructuredDocumentation", + "src": "23425:173:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1315, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23631:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23631:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1317, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23647:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1316, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23647:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1319, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23666:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1318, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "23666:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "23630:63:1" + }, + "returnParameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1322, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23717:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1321, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23717:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23716:14:1" + }, + "scope": 1430, + "src": "23603:416:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1363, + "nodeType": "Block", + "src": "24295:101:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1358, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "24333:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1359, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "24341:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24347:41:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 1357, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "src": "24312:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24312:77:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1356, + "id": 1362, + "nodeType": "Return", + "src": "24305:84:1" + } + ] + }, + "documentation": { + "id": 1348, + "nodeType": "StructuredDocumentation", + "src": "24025:168:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1364, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1350, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24228:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24244:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1351, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24227:35:1" + }, + "returnParameters": { + "id": 1356, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1355, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24281:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1354, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24281:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24280:14:1" + }, + "scope": 1430, + "src": "24198:198:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1398, + "nodeType": "Block", + "src": "24707:292:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1378, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24736:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1377, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "24725:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24725:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24745:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + }, + "value": "Address: delegate call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "id": 1376, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "24717:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24717:69:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1382, + "nodeType": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "assignments": [ + 1384, + 1386 + ], + "declarations": [ + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24857:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1383, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "24857:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24871:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1385, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24871:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1391, + "initialValue": { + "arguments": [ + { + "id": 1389, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1369, + "src": "24918:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1387, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "24898:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24898:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1393, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1384, + "src": "24958:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1394, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1386, + "src": "24967:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1395, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1371, + "src": "24979:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1392, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "24940:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24940:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1375, + "id": 1397, + "nodeType": "Return", + "src": "24933:59:1" + } + ] + }, + "documentation": { + "id": 1365, + "nodeType": "StructuredDocumentation", + "src": "24402:175:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1399, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1367, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24612:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24612:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1369, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24628:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1368, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24628:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1371, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24647:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1370, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "24647:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "24611:63:1" + }, + "returnParameters": { + "id": 1375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1374, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24693:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1373, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24693:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24692:14:1" + }, + "scope": 1430, + "src": "24582:417:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1428, + "nodeType": "Block", + "src": "25134:596:1", + "statements": [ + { + "condition": { + "id": 1410, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "25148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1426, + "nodeType": "Block", + "src": "25205:519:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1414, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25289:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "25289:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25309:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25289:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1424, + "nodeType": "Block", + "src": "25661:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1421, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1405, + "src": "25686:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1420, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "25679:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25679:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1423, + "nodeType": "ExpressionStatement", + "src": "25679:20:1" + } + ] + }, + "id": 1425, + "nodeType": "IfStatement", + "src": "25285:429:1", + "trueBody": { + "id": 1419, + "nodeType": "Block", + "src": "25312:343:1", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "25496:145:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "25518:40:1", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25547:10:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "25541:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "25541:17:1" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "25522:15:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25590:2:1", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25594:10:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25586:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "25586:19:1" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "25607:15:1" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "25579:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "25579:44:1" + }, + "nodeType": "YulExpressionStatement", + "src": "25579:44:1" + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "id": 1418, + "nodeType": "InlineAssembly", + "src": "25487:154:1" + } + ] + } + } + ] + }, + "id": 1427, + "nodeType": "IfStatement", + "src": "25144:580:1", + "trueBody": { + "id": 1413, + "nodeType": "Block", + "src": "25157:42:1", + "statements": [ + { + "expression": { + "id": 1411, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25178:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1409, + "id": 1412, + "nodeType": "Return", + "src": "25171:17:1" + } + ] + } + } + ] + }, + "id": 1429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1401, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25032:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1400, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "25032:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1403, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25046:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1402, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25046:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1405, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25071:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1404, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "25071:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "25031:67:1" + }, + "returnParameters": { + "id": 1409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1408, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25120:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1407, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25120:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "25119:14:1" + }, + "scope": 1430, + "src": "25005:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3499, + "src": "18048:7684:1" + }, + { + "id": 1431, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "25791:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1432, + "nodeType": "StructuredDocumentation", + "src": "25824:686:1", + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "fullyImplemented": true, + "id": 1921, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableSet.Set", + "id": 1440, + "members": [ + { + "constant": false, + "id": 1435, + "mutability": "mutable", + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27033:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1433, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27033:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1434, + "nodeType": "ArrayTypeName", + "src": "27033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1439, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27184:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1438, + "keyType": { + "id": 1436, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "27184:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "26979:249:1", + "visibility": "public" + }, + { + "body": { + "id": 1480, + "nodeType": "Block", + "src": "27467:335:1", + "statements": [ + { + "condition": { + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "27481:22:1", + "subExpression": { + "arguments": [ + { + "id": 1451, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27492:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + { + "id": 1452, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27497:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1450, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "27482:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27482:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1478, + "nodeType": "Block", + "src": "27759:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27780:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1449, + "id": 1477, + "nodeType": "Return", + "src": "27773:12:1" + } + ] + }, + "id": 1479, + "nodeType": "IfStatement", + "src": "27477:319:1", + "trueBody": { + "id": 1475, + "nodeType": "Block", + "src": "27505:248:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1460, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27536:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "expression": { + "id": 1455, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1458, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27519:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "27519:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 1461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27519:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1462, + "nodeType": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "expression": { + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1463, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27677:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "27677:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1467, + "indexExpression": { + "id": 1465, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27690:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "27677:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1468, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27699:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1469, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27699:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "27699:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27677:40:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1472, + "nodeType": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27738:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1449, + "id": 1474, + "nodeType": "Return", + "src": "27731:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1441, + "nodeType": "StructuredDocumentation", + "src": "27234:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1481, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27412:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1442, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27412:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1445, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27429:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1444, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27411:32:1" + }, + "returnParameters": { + "id": 1449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1447, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "27461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "27460:6:1" + }, + "scope": 1921, + "src": "27398:404:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1560, + "nodeType": "Block", + "src": "28042:1440:1", + "statements": [ + { + "assignments": [ + 1492 + ], + "declarations": [ + { + "constant": false, + "id": 1492, + "mutability": "mutable", + "name": "valueIndex", + "nodeType": "VariableDeclaration", + "scope": 1560, + "src": "28152:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28152:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1497, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1493, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28173:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1494, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "28173:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1496, + "indexExpression": { + "id": 1495, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "28186:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28173:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1498, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28207:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28221:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28207:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1558, + "nodeType": "Block", + "src": "29439:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29460:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1490, + "id": 1557, + "nodeType": "Return", + "src": "29453:12:1" + } + ] + }, + "id": 1559, + "nodeType": "IfStatement", + "src": "28203:1273:1", + "trueBody": { + "id": 1555, + "nodeType": "Block", + "src": "28224:1209:1", + "statements": [ + { + "assignments": [ + 1502 + ], + "declarations": [ + { + "constant": false, + "id": 1502, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28564:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28564:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1506, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1503, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28588:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28588:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "assignments": [ + 1508 + ], + "declarations": [ + { + "constant": false, + "id": 1508, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28616:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28616:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1514, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1509, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28636:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28636:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "28636:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28657:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28636:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "assignments": [ + 1516 + ], + "declarations": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "lastvalue", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28898:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1515, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28898:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1521, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1517, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28918:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1520, + "indexExpression": { + "id": 1519, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "28930:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28918:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "expression": { + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1522, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29032:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1525, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29032:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1526, + "indexExpression": { + "id": 1524, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29044:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29032:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1527, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29061:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "29032:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1529, + "nodeType": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "expression": { + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1530, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29136:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1533, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29136:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1534, + "indexExpression": { + "id": 1532, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29149:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29136:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1535, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29162:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29178:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "29162:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29136:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1539, + "nodeType": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 1540, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29285:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "29285:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29285:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1546, + "nodeType": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "expression": { + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "29370:26:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 1547, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29377:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29377:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1550, + "indexExpression": { + "id": 1549, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "29390:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29377:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1552, + "nodeType": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29418:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1490, + "id": 1554, + "nodeType": "Return", + "src": "29411:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1482, + "nodeType": "StructuredDocumentation", + "src": "27808:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1561, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "27987:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1483, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27987:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1486, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28004:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1485, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27986:32:1" + }, + "returnParameters": { + "id": 1490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28036:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1488, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "28036:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "28035:6:1" + }, + "scope": 1921, + "src": "27970:1512:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1578, + "nodeType": "Block", + "src": "29642:48:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 1571, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "29659:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29659:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1574, + "indexExpression": { + "id": 1573, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "29672:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29659:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29682:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "29659:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1570, + "id": 1577, + "nodeType": "Return", + "src": "29652:31:1" + } + ] + }, + "documentation": { + "id": 1562, + "nodeType": "StructuredDocumentation", + "src": "29488:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1579, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1564, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29582:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1563, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29582:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29599:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1565, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "29599:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "29581:32:1" + }, + "returnParameters": { + "id": 1570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29636:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "29636:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "29635:6:1" + }, + "scope": 1921, + "src": "29563:127:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1591, + "nodeType": "Block", + "src": "29836:42:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 1587, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1582, + "src": "29853:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1588, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29853:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "29853:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1586, + "id": 1590, + "nodeType": "Return", + "src": "29846:25:1" + } + ] + }, + "documentation": { + "id": 1580, + "nodeType": "StructuredDocumentation", + "src": "29696:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1582, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29788:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1581, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29788:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "src": "29787:17:1" + }, + "returnParameters": { + "id": 1586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1585, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29827:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29826:9:1" + }, + "scope": 1921, + "src": "29771:107:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1616, + "nodeType": "Block", + "src": "30286:125:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1603, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30304:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30304:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "30304:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1606, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30325:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30304:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30332:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + }, + "value": "EnumerableSet: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "id": 1602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "30296:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30296:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1610, + "nodeType": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 1611, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30386:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30386:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1614, + "indexExpression": { + "id": 1613, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30398:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30386:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1601, + "id": 1615, + "nodeType": "Return", + "src": "30379:25:1" + } + ] + }, + "documentation": { + "id": 1593, + "nodeType": "StructuredDocumentation", + "src": "29883:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1617, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1595, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30223:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1594, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30223:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30240:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30240:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30222:32:1" + }, + "returnParameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1600, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30277:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1599, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30276:9:1" + }, + "scope": 1921, + "src": "30210:201:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableSet.Bytes32Set", + "id": 1620, + "members": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "30464:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1618, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30464:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "30436:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1636, + "nodeType": "Block", + "src": "30727:47:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1631, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "30749:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "30749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1625, + "src": "30761:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1630, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "30744:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30744:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1629, + "id": 1635, + "nodeType": "Return", + "src": "30737:30:1" + } + ] + }, + "documentation": { + "id": 1621, + "nodeType": "StructuredDocumentation", + "src": "30487:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30664:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1622, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30664:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30688:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1624, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30688:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30663:39:1" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30721:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "30721:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "30720:6:1" + }, + "scope": 1921, + "src": "30651:123:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1653, + "nodeType": "Block", + "src": "31021:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1648, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "31046:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31046:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1650, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "31058:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1647, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "31038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31038:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1646, + "id": 1652, + "nodeType": "Return", + "src": "31031:33:1" + } + ] + }, + "documentation": { + "id": 1638, + "nodeType": "StructuredDocumentation", + "src": "30780:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1654, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30958:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1639, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30958:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30982:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1641, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30982:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30957:39:1" + }, + "returnParameters": { + "id": 1646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1645, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "31015:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31015:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31014:6:1" + }, + "scope": 1921, + "src": "30942:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1670, + "nodeType": "Block", + "src": "31238:52:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1665, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1657, + "src": "31265:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31265:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1667, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1659, + "src": "31277:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1664, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "31255:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31255:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1663, + "id": 1669, + "nodeType": "Return", + "src": "31248:35:1" + } + ] + }, + "documentation": { + "id": 1655, + "nodeType": "StructuredDocumentation", + "src": "31077:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1671, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1657, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31170:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1656, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31170:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31194:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1658, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31194:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31169:39:1" + }, + "returnParameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1662, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31232:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1661, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31232:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31231:6:1" + }, + "scope": 1921, + "src": "31152:138:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "31443:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1680, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1674, + "src": "31468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1681, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31468:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1679, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "31460:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31460:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1678, + "id": 1683, + "nodeType": "Return", + "src": "31453:26:1" + } + ] + }, + "documentation": { + "id": 1672, + "nodeType": "StructuredDocumentation", + "src": "31296:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1685, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1674, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31387:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1673, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + } + ], + "src": "31386:24:1" + }, + "returnParameters": { + "id": 1678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31434:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31434:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31433:9:1" + }, + "scope": 1921, + "src": "31371:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1701, + "nodeType": "Block", + "src": "31901:46:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1696, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1688, + "src": "31922:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1697, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31922:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1698, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "31934:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1695, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "31918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31918:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1694, + "id": 1700, + "nodeType": "Return", + "src": "31911:29:1" + } + ] + }, + "documentation": { + "id": 1686, + "nodeType": "StructuredDocumentation", + "src": "31491:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1688, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31830:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1687, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31830:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1690, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31854:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31854:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31829:39:1" + }, + "returnParameters": { + "id": 1694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31892:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1692, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31892:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31891:9:1" + }, + "scope": 1921, + "src": "31818:129:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.AddressSet", + "id": 1705, + "members": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1705, + "src": "32000:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1703, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "32000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "31972:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1730, + "nodeType": "Block", + "src": "32263:74:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1716, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1708, + "src": "32285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32285:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "32321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32313:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1722, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32313:7:1", + "typeDescriptions": {} + } + }, + "id": 1725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32313:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32305:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1720, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32305:7:1", + "typeDescriptions": {} + } + }, + "id": 1726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32305:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1718, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32297:7:1", + "typeDescriptions": {} + } + }, + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32297:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1715, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "32280:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32280:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1714, + "id": 1729, + "nodeType": "Return", + "src": "32273:57:1" + } + ] + }, + "documentation": { + "id": 1706, + "nodeType": "StructuredDocumentation", + "src": "32023:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1731, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1708, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32200:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1707, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32200:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32224:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32224:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32199:39:1" + }, + "returnParameters": { + "id": 1714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1713, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32257:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1712, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32257:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32256:6:1" + }, + "scope": 1921, + "src": "32187:150:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1756, + "nodeType": "Block", + "src": "32584:77:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1742, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "32609:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1743, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32609:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1750, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "32645:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32637:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1748, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32637:7:1", + "typeDescriptions": {} + } + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32637:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32629:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32629:7:1", + "typeDescriptions": {} + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32629:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32621:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1744, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32621:7:1", + "typeDescriptions": {} + } + }, + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32621:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1741, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "32601:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32601:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1740, + "id": 1755, + "nodeType": "Return", + "src": "32594:60:1" + } + ] + }, + "documentation": { + "id": 1732, + "nodeType": "StructuredDocumentation", + "src": "32343:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1757, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1734, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32521:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1733, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32521:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1736, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32545:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32545:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32520:39:1" + }, + "returnParameters": { + "id": 1740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1739, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32578:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1738, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32578:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32577:6:1" + }, + "scope": 1921, + "src": "32505:156:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1782, + "nodeType": "Block", + "src": "32828:79:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1768, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1760, + "src": "32855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1776, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1762, + "src": "32891:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1774, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32883:7:1", + "typeDescriptions": {} + } + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32883:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32875:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32875:7:1", + "typeDescriptions": {} + } + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32875:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1770, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32867:7:1", + "typeDescriptions": {} + } + }, + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32867:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1767, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "32845:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32845:55:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1766, + "id": 1781, + "nodeType": "Return", + "src": "32838:62:1" + } + ] + }, + "documentation": { + "id": 1758, + "nodeType": "StructuredDocumentation", + "src": "32667:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1783, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1760, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32760:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1759, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32760:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1762, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32784:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32784:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32759:39:1" + }, + "returnParameters": { + "id": 1766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1765, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32822:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1764, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32822:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32821:6:1" + }, + "scope": 1921, + "src": "32742:165:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1796, + "nodeType": "Block", + "src": "33060:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1792, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1786, + "src": "33085:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33085:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1791, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "33077:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33077:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1790, + "id": 1795, + "nodeType": "Return", + "src": "33070:26:1" + } + ] + }, + "documentation": { + "id": 1784, + "nodeType": "StructuredDocumentation", + "src": "32913:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1797, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1786, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33004:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1785, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33004:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + } + ], + "src": "33003:24:1" + }, + "returnParameters": { + "id": 1790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1789, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33050:9:1" + }, + "scope": 1921, + "src": "32988:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1822, + "nodeType": "Block", + "src": "33518:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1814, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "33563:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33563:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1816, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "33575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1813, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "33559:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33559:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33551:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33551:7:1", + "typeDescriptions": {} + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33551:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33543:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1809, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "33543:7:1", + "typeDescriptions": {} + } + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33543:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33535:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33535:7:1", + "typeDescriptions": {} + } + }, + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33535:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 1806, + "id": 1821, + "nodeType": "Return", + "src": "33528:56:1" + } + ] + }, + "documentation": { + "id": 1798, + "nodeType": "StructuredDocumentation", + "src": "33108:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1823, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1800, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33447:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1799, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33447:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1802, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33471:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33471:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33446:39:1" + }, + "returnParameters": { + "id": 1806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33509:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33509:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "33508:9:1" + }, + "scope": 1921, + "src": "33435:156:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.UintSet", + "id": 1826, + "members": [ + { + "constant": false, + "id": 1825, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1826, + "src": "33639:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1824, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "33639:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "UintSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "33614:42:1", + "visibility": "public" + }, + { + "body": { + "id": 1845, + "nodeType": "Block", + "src": "33899:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1837, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1829, + "src": "33921:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "33921:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1841, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "33941:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33933:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1839, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "33933:7:1", + "typeDescriptions": {} + } + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33933:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1836, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "33916:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33916:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1835, + "id": 1844, + "nodeType": "Return", + "src": "33909:39:1" + } + ] + }, + "documentation": { + "id": 1827, + "nodeType": "StructuredDocumentation", + "src": "33662:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1846, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1829, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33839:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1828, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "33839:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1831, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33860:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33860:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33838:36:1" + }, + "returnParameters": { + "id": 1835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1834, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33893:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1833, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "33893:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "33892:6:1" + }, + "scope": 1921, + "src": "33826:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1865, + "nodeType": "Block", + "src": "34199:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1857, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1849, + "src": "34224:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34224:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1861, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "34244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34236:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1859, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34236:7:1", + "typeDescriptions": {} + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34236:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1856, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "34216:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34216:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1855, + "id": 1864, + "nodeType": "Return", + "src": "34209:42:1" + } + ] + }, + "documentation": { + "id": 1847, + "nodeType": "StructuredDocumentation", + "src": "33961:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1849, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34139:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1848, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34139:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1851, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34160:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34138:36:1" + }, + "returnParameters": { + "id": 1855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1854, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34193:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1853, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34193:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34192:6:1" + }, + "scope": 1921, + "src": "34123:135:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1885, + "nodeType": "Block", + "src": "34422:61:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1877, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1869, + "src": "34449:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34449:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1881, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "34469:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1879, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34461:7:1", + "typeDescriptions": {} + } + }, + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34461:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1876, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "34439:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34439:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1875, + "id": 1884, + "nodeType": "Return", + "src": "34432:44:1" + } + ] + }, + "documentation": { + "id": 1867, + "nodeType": "StructuredDocumentation", + "src": "34264:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1886, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1869, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34357:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1868, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34378:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34378:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34356:36:1" + }, + "returnParameters": { + "id": 1875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1874, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34416:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1873, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34416:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34415:6:1" + }, + "scope": 1921, + "src": "34339:144:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1899, + "nodeType": "Block", + "src": "34633:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1895, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1889, + "src": "34658:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34658:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1894, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "34650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34650:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1893, + "id": 1898, + "nodeType": "Return", + "src": "34643:26:1" + } + ] + }, + "documentation": { + "id": 1887, + "nodeType": "StructuredDocumentation", + "src": "34489:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1900, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1889, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34580:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1888, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + } + ], + "src": "34579:21:1" + }, + "returnParameters": { + "id": 1893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34624:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34623:9:1" + }, + "scope": 1921, + "src": "34564:112:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1919, + "nodeType": "Block", + "src": "35088:55:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1913, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "35117:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "35117:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1915, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1905, + "src": "35129:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1912, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "35113:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35113:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "35105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35105:7:1", + "typeDescriptions": {} + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35105:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1909, + "id": 1918, + "nodeType": "Return", + "src": "35098:38:1" + } + ] + }, + "documentation": { + "id": 1901, + "nodeType": "StructuredDocumentation", + "src": "34681:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1920, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35020:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1902, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "35020:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1905, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35041:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35041:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35019:36:1" + }, + "returnParameters": { + "id": 1909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1908, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35079:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1907, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35079:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35078:9:1" + }, + "scope": 1921, + "src": "35008:135:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "26511:8634:1" + }, + { + "id": 1922, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "35204:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1923, + "nodeType": "StructuredDocumentation", + "src": "35237:705:1", + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "fullyImplemented": true, + "id": 2480, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableMap.MapEntry", + "id": 1928, + "members": [ + { + "constant": false, + "id": 1925, + "mutability": "mutable", + "name": "_key", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36455:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1924, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1927, + "mutability": "mutable", + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36477:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1926, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36477:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "MapEntry", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36429:69:1", + "visibility": "public" + }, + { + "canonicalName": "EnumerableMap.Map", + "id": 1936, + "members": [ + { + "constant": false, + "id": 1931, + "mutability": "mutable", + "name": "_entries", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36567:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + }, + "typeName": { + "baseType": { + "id": 1929, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "36567:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "id": 1930, + "nodeType": "ArrayTypeName", + "src": "36567:10:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1935, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36736:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1934, + "keyType": { + "id": 1932, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "36736:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "36756:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Map", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36504:276:1", + "visibility": "public" + }, + { + "body": { + "id": 1997, + "nodeType": "Block", + "src": "37089:596:1", + "statements": [ + { + "assignments": [ + 1949 + ], + "declarations": [ + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 1997, + "src": "37197:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "37197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1954, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1950, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1953, + "indexExpression": { + "id": 1952, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37229:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37216:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1955, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37248:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37260:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "37248:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1995, + "nodeType": "Block", + "src": "37587:92:1", + "statements": [ + { + "expression": { + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 1982, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37601:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1987, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37601:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1988, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1984, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37614:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37625:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "37614:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37601:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 1989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "37601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1990, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37637:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "37601:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1992, + "nodeType": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37663:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1947, + "id": 1994, + "nodeType": "Return", + "src": "37656:12:1" + } + ] + }, + "id": 1996, + "nodeType": "IfStatement", + "src": "37244:435:1", + "trueBody": { + "id": 1981, + "nodeType": "Block", + "src": "37263:318:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1964, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37349:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1965, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37362:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1963, + "name": "MapEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1928, + "src": "37332:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_MapEntry_$1928_storage_ptr_$", + "typeString": "type(struct EnumerableMap.MapEntry storage pointer)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "nodeType": "FunctionCall", + "src": "37332:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "expression": { + "expression": { + "id": 1958, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37314:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37314:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "37314:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$1928_storage_$returns$__$", + "typeString": "function (struct EnumerableMap.MapEntry storage ref)" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37314:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1968, + "nodeType": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "expression": { + "id": 1977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1969, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37506:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37506:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1973, + "indexExpression": { + "id": 1971, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "37506:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1974, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37526:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37526:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "37526:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37506:39:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1978, + "nodeType": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37566:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1947, + "id": 1980, + "nodeType": "Return", + "src": "37559:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1937, + "nodeType": "StructuredDocumentation", + "src": "36786:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1998, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37021:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 1938, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37021:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37038:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1940, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1943, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1942, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37020:45:1" + }, + "returnParameters": { + "id": 1947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1946, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37083:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1945, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37083:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37082:6:1" + }, + "scope": 2480, + "src": "37007:678:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2078, + "nodeType": "Block", + "src": "37923:1447:1", + "statements": [ + { + "assignments": [ + 2009 + ], + "declarations": [ + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2078, + "src": "38031:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2014, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2010, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38050:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2011, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "38050:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2013, + "indexExpression": { + "id": 2012, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "38063:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38050:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2015, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38082:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38094:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "38082:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2076, + "nodeType": "Block", + "src": "39327:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39348:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2007, + "id": 2075, + "nodeType": "Return", + "src": "39341:12:1" + } + ] + }, + "id": 2077, + "nodeType": "IfStatement", + "src": "38078:1286:1", + "trueBody": { + "id": 2073, + "nodeType": "Block", + "src": "38097:1224:1", + "statements": [ + { + "assignments": [ + 2019 + ], + "declarations": [ + { + "constant": false, + "id": 2019, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38438:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2023, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2020, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38462:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38473:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38462:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "assignments": [ + 2025 + ], + "declarations": [ + { + "constant": false, + "id": 2025, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38488:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38488:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2031, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2026, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38508:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38508:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "38508:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38530:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38508:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "assignments": [ + 2033 + ], + "declarations": [ + { + "constant": false, + "id": 2033, + "mutability": "mutable", + "name": "lastEntry", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38771:26:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2032, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "38771:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2038, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2034, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38800:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38800:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2037, + "indexExpression": { + "id": 2036, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2025, + "src": "38813:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38800:23:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "expression": { + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2039, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38915:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38915:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2043, + "indexExpression": { + "id": 2041, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "38928:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "38915:27:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2044, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "38945:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "src": "38915:39:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2046, + "nodeType": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2047, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2051, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39020:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2052, + "indexExpression": { + "expression": { + "id": 2049, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "39033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "39033:14:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39020:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2053, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "39051:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39067:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "39051:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39020:48:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 2058, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39174:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2061, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39174:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "39174:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "39174:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2064, + "nodeType": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "expression": { + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "39260:24:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 2065, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39267:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2066, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39267:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2068, + "indexExpression": { + "id": 2067, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "39280:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39267:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2070, + "nodeType": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39306:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2007, + "id": 2072, + "nodeType": "Return", + "src": "39299:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1999, + "nodeType": "StructuredDocumentation", + "src": "37691:157:1", + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2079, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2001, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37870:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2000, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37870:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37887:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2002, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37887:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37869:30:1" + }, + "returnParameters": { + "id": 2007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2006, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37917:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2005, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37917:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37916:6:1" + }, + "scope": 2480, + "src": "37853:1517:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2096, + "nodeType": "Block", + "src": "39526:46:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 2089, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2082, + "src": "39543:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2090, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39543:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2092, + "indexExpression": { + "id": 2091, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2084, + "src": "39556:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "39543:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39564:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "39543:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2088, + "id": 2095, + "nodeType": "Return", + "src": "39536:29:1" + } + ] + }, + "documentation": { + "id": 2080, + "nodeType": "StructuredDocumentation", + "src": "39376:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2082, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39468:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2081, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2084, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39485:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2083, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "39485:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "39467:30:1" + }, + "returnParameters": { + "id": 2088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2087, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2086, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "39520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "39519:6:1" + }, + "scope": 2480, + "src": "39449:123:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2109, + "nodeType": "Block", + "src": "39727:43:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 2105, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "39744:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39744:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "39744:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2104, + "id": 2108, + "nodeType": "Return", + "src": "39737:26:1" + } + ] + }, + "documentation": { + "id": 2098, + "nodeType": "StructuredDocumentation", + "src": "39578:79:1", + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2100, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39679:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2099, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39679:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "src": "39678:17:1" + }, + "returnParameters": { + "id": 2104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2103, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39718:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "39718:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "39717:9:1" + }, + "scope": 2480, + "src": "39662:108:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2144, + "nodeType": "Block", + "src": "40198:189:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2123, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "40216:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2126, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40216:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40245:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + }, + "value": "EnumerableMap: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "id": 2122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "40208:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "40208:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2130, + "nodeType": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "assignments": [ + 2132 + ], + "declarations": [ + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "entry", + "nodeType": "VariableDeclaration", + "scope": 2144, + "src": "40293:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2131, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "40293:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2137, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2133, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40318:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40318:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2136, + "indexExpression": { + "id": 2135, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40331:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40318:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "expression": { + "components": [ + { + "expression": { + "id": 2138, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40355:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2139, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "40355:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 2140, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40367:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40367:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40354:26:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "functionReturnParameters": 2121, + "id": 2143, + "nodeType": "Return", + "src": "40347:33:1" + } + ] + }, + "documentation": { + "id": 2111, + "nodeType": "StructuredDocumentation", + "src": "39775:333:1", + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2145, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2113, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40126:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2112, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40126:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2115, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40143:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40143:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "40125:32:1" + }, + "returnParameters": { + "id": 2121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40180:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40180:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40189:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2119, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40189:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40179:18:1" + }, + "scope": 2480, + "src": "40113:274:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2182, + "nodeType": "Block", + "src": "40613:220:1", + "statements": [ + { + "assignments": [ + 2158 + ], + "declarations": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2182, + "src": "40623:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40623:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2163, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2159, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40642:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "40642:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2162, + "indexExpression": { + "id": 2161, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2150, + "src": "40655:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40642:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2164, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40673:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40685:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "40673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2171, + "nodeType": "IfStatement", + "src": "40669:36:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40696:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40703:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2169, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40695:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2156, + "id": 2170, + "nodeType": "Return", + "src": "40688:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40759:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 2173, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40765:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2174, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40765:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2178, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2175, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40778:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40789:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "40778:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40765:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40765:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2180, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40758:41:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "functionReturnParameters": 2156, + "id": 2181, + "nodeType": "Return", + "src": "40751:48:1" + } + ] + }, + "documentation": { + "id": 2146, + "nodeType": "StructuredDocumentation", + "src": "40393:131:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2183, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2151, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40546:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2147, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40546:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2150, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40563:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2149, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40563:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40545:30:1" + }, + "returnParameters": { + "id": 2156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2153, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40598:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2152, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "40598:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2155, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40604:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2154, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40604:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40597:15:1" + }, + "scope": 2480, + "src": "40529:304:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2215, + "nodeType": "Block", + "src": "41060:232:1", + "statements": [ + { + "assignments": [ + 2194 + ], + "declarations": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2215, + "src": "41070:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41070:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2199, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2195, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41089:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2196, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41089:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2198, + "indexExpression": { + "id": 2197, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2188, + "src": "41102:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41089:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2201, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41124:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41136:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41124:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "id": 2204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41139:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + }, + "value": "EnumerableMap: nonexistent key" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "id": 2200, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41116:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2206, + "nodeType": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2207, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41225:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2208, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41225:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2212, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2209, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41238:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41249:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41238:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41225:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2213, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41225:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2192, + "id": 2214, + "nodeType": "Return", + "src": "41218:40:1" + } + ] + }, + "documentation": { + "id": 2184, + "nodeType": "StructuredDocumentation", + "src": "40839:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2186, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "40999:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2185, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40999:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2188, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41016:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2187, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40998:30:1" + }, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2190, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41050:9:1" + }, + "scope": 2480, + "src": "40985:307:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2250, + "nodeType": "Block", + "src": "41677:212:1", + "statements": [ + { + "assignments": [ + 2229 + ], + "declarations": [ + { + "constant": false, + "id": 2229, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2250, + "src": "41687:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41687:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2234, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2230, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41706:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2231, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41706:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2233, + "indexExpression": { + "id": 2232, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "41719:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41706:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2236, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41741:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41753:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41741:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2239, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2223, + "src": "41756:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2235, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41733:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41733:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2241, + "nodeType": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2242, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41822:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41822:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2247, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2244, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41835:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41846:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41835:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41822:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41822:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2227, + "id": 2249, + "nodeType": "Return", + "src": "41815:40:1" + } + ] + }, + "documentation": { + "id": 2217, + "nodeType": "StructuredDocumentation", + "src": "41298:271:1", + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2251, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2219, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41588:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2218, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41588:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2221, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41605:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2220, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2223, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41618:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2222, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "41618:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "41587:58:1" + }, + "returnParameters": { + "id": 2227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2226, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41668:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2225, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41668:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41667:9:1" + }, + "scope": 2480, + "src": "41574:315:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableMap.UintToAddressMap", + "id": 2254, + "members": [ + { + "constant": false, + "id": 2253, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 2254, + "src": "41954:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2252, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41954:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "name": "UintToAddressMap", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "41920:51:1", + "visibility": "public" + }, + { + "body": { + "id": 2285, + "nodeType": "Block", + "src": "42293:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2267, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "42315:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42315:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2271, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2259, + "src": "42335:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42327:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2269, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42327:7:1", + "typeDescriptions": {} + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42327:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2279, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2261, + "src": "42365:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2277, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "42357:7:1", + "typeDescriptions": {} + } + }, + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42357:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42349:7:1", + "typeDescriptions": {} + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42349:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42341:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42341:7:1", + "typeDescriptions": {} + } + }, + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42341:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2266, + "name": "_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1998, + "src": "42310:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42310:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2265, + "id": 2284, + "nodeType": "Return", + "src": "42303:71:1" + } + ] + }, + "documentation": { + "id": 2255, + "nodeType": "StructuredDocumentation", + "src": "41977:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2286, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2257, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42211:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2256, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42211:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2259, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42241:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2258, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42241:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2261, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42254:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "42254:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "42210:58:1" + }, + "returnParameters": { + "id": 2265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2264, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42287:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2263, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42287:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42286:6:1" + }, + "scope": 2480, + "src": "42198:183:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2305, + "nodeType": "Block", + "src": "42623:57:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2297, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2289, + "src": "42648:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2298, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42648:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2301, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2291, + "src": "42668:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42660:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2299, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42660:7:1", + "typeDescriptions": {} + } + }, + "id": 2302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42660:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2296, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2079, + "src": "42640:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)" + } + }, + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42640:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2295, + "id": 2304, + "nodeType": "Return", + "src": "42633:40:1" + } + ] + }, + "documentation": { + "id": 2287, + "nodeType": "StructuredDocumentation", + "src": "42387:148:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2289, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42556:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2288, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42556:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2291, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42586:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42586:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42555:43:1" + }, + "returnParameters": { + "id": 2295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2294, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42617:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2293, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42617:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42616:6:1" + }, + "scope": 2480, + "src": "42540:140:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2325, + "nodeType": "Block", + "src": "42849:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2317, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2309, + "src": "42876:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42876:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2321, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "42896:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42888:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2319, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42888:7:1", + "typeDescriptions": {} + } + }, + "id": 2322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42888:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2316, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2097, + "src": "42866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42866:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2315, + "id": 2324, + "nodeType": "Return", + "src": "42859:42:1" + } + ] + }, + "documentation": { + "id": 2307, + "nodeType": "StructuredDocumentation", + "src": "42686:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2326, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2309, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42777:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2308, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42777:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2311, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42807:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42807:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42776:43:1" + }, + "returnParameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2314, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42843:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42843:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42842:6:1" + }, + "scope": 2480, + "src": "42759:149:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2339, + "nodeType": "Block", + "src": "43069:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2335, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2329, + "src": "43094:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43094:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "id": 2334, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2110, + "src": "43086:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)" + } + }, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43086:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2333, + "id": 2338, + "nodeType": "Return", + "src": "43079:26:1" + } + ] + }, + "documentation": { + "id": 2327, + "nodeType": "StructuredDocumentation", + "src": "42914:72:1", + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2340, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2329, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43007:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2328, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43007:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + } + ], + "src": "43006:30:1" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43060:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43059:9:1" + }, + "scope": 2480, + "src": "42991:121:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2378, + "nodeType": "Block", + "src": "43538:135:1", + "statements": [ + { + "assignments": [ + 2353, + 2355 + ], + "declarations": [ + { + "constant": false, + "id": 2353, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43549:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2352, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43549:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2355, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43562:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2354, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43562:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2361, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2357, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "43583:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2358, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "id": 2359, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "43595:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2356, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "43579:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)" + } + }, + "id": 2360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43579:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "expression": { + "components": [ + { + "arguments": [ + { + "id": 2364, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "43627:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43619:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43619:7:1", + "typeDescriptions": {} + } + }, + "id": 2365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43619:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2372, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2355, + "src": "43657:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43649:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43649:7:1", + "typeDescriptions": {} + } + }, + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43649:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43641:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2368, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "43641:7:1", + "typeDescriptions": {} + } + }, + "id": 2374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43641:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43633:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43633:7:1", + "typeDescriptions": {} + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43633:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2376, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43618:48:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$", + "typeString": "tuple(uint256,address payable)" + } + }, + "functionReturnParameters": 2351, + "id": 2377, + "nodeType": "Return", + "src": "43611:55:1" + } + ] + }, + "documentation": { + "id": 2341, + "nodeType": "StructuredDocumentation", + "src": "43117:318:1", + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2379, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43452:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2342, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43452:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2345, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43482:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43482:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43451:45:1" + }, + "returnParameters": { + "id": 2351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2348, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43520:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43520:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2350, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43529:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43529:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43519:18:1" + }, + "scope": 2480, + "src": "43440:233:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2417, + "nodeType": "Block", + "src": "43950:142:1", + "statements": [ + { + "assignments": [ + 2392, + 2394 + ], + "declarations": [ + { + "constant": false, + "id": 2392, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43961:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43961:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43975:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2393, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2403, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2396, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "44000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44000:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2400, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2384, + "src": "44020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44012:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2398, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44012:7:1", + "typeDescriptions": {} + } + }, + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44012:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2395, + "name": "_tryGet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2183, + "src": "43992:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)" + } + }, + "id": 2402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43992:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "expression": { + "components": [ + { + "id": 2404, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2392, + "src": "44043:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2411, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "44076:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44068:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44068:7:1", + "typeDescriptions": {} + } + }, + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44068:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2407, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44060:7:1", + "typeDescriptions": {} + } + }, + "id": 2413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44060:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44052:7:1", + "typeDescriptions": {} + } + }, + "id": 2414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44052:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2415, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44042:43:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_payable_$", + "typeString": "tuple(bool,address payable)" + } + }, + "functionReturnParameters": 2390, + "id": 2416, + "nodeType": "Return", + "src": "44035:50:1" + } + ] + }, + "documentation": { + "id": 2380, + "nodeType": "StructuredDocumentation", + "src": "43679:169:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2418, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2382, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43869:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2381, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43869:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2384, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43899:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43868:43:1" + }, + "returnParameters": { + "id": 2390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2387, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43935:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2386, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2389, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43941:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43941:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43934:15:1" + }, + "scope": 2480, + "src": "43853:239:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2446, + "nodeType": "Block", + "src": "44332:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2435, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "44378:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44378:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2439, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2423, + "src": "44398:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44390:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2437, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44390:7:1", + "typeDescriptions": {} + } + }, + "id": 2440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44390:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2434, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "src": "44373:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)" + } + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44373:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44365:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44365:7:1", + "typeDescriptions": {} + } + }, + "id": 2442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44365:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2430, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44357:7:1", + "typeDescriptions": {} + } + }, + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44357:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44349:7:1", + "typeDescriptions": {} + } + }, + "id": 2444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44349:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2427, + "id": 2445, + "nodeType": "Return", + "src": "44342:64:1" + } + ] + }, + "documentation": { + "id": 2419, + "nodeType": "StructuredDocumentation", + "src": "44098:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2447, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2421, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44257:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2420, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44257:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2423, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44287:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44287:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "44256:43:1" + }, + "returnParameters": { + "id": 2427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2426, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44323:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44323:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44322:9:1" + }, + "scope": 2480, + "src": "44244:169:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2478, + "nodeType": "Block", + "src": "44809:95:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2466, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2450, + "src": "44855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2467, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2470, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2452, + "src": "44875:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2468, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44867:7:1", + "typeDescriptions": {} + } + }, + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44867:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 2472, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "44881:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2465, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "src": "44850:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)" + } + }, + "id": 2473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44850:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44842:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44842:7:1", + "typeDescriptions": {} + } + }, + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44842:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44834:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2461, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44834:7:1", + "typeDescriptions": {} + } + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44834:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44826:7:1", + "typeDescriptions": {} + } + }, + "id": 2476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44826:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2458, + "id": 2477, + "nodeType": "Return", + "src": "44819:78:1" + } + ] + }, + "documentation": { + "id": 2448, + "nodeType": "StructuredDocumentation", + "src": "44419:269:1", + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2450, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44706:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2449, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44706:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2452, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44736:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2454, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44749:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2453, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "44749:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "44705:71:1" + }, + "returnParameters": { + "id": 2458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2457, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44799:9:1" + }, + "scope": 2480, + "src": "44693:211:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "35943:8963:1" + }, + { + "id": 2481, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "44959:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2482, + "nodeType": "StructuredDocumentation", + "src": "44992:34:1", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2566, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2564, + "nodeType": "Block", + "src": "45207:654:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2490, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45409:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45418:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45409:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2496, + "nodeType": "IfStatement", + "src": "45405:51:1", + "trueBody": { + "id": 2495, + "nodeType": "Block", + "src": "45421:35:1", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45442:3:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "functionReturnParameters": 2489, + "id": 2494, + "nodeType": "Return", + "src": "45435:10:1" + } + ] + } + }, + { + "assignments": [ + 2498 + ], + "declarations": [ + { + "constant": false, + "id": 2498, + "mutability": "mutable", + "name": "temp", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45465:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2500, + "initialValue": { + "id": 2499, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45480:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "assignments": [ + 2502 + ], + "declarations": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "digits", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45495:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45495:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2503, + "nodeType": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "body": { + "id": 2514, + "nodeType": "Block", + "src": "45537:57:1", + "statements": [ + { + "expression": { + "id": 2508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "45551:8:1", + "subExpression": { + "id": 2507, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45551:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2509, + "nodeType": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "expression": { + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2510, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45581:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45573:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2513, + "nodeType": "ExpressionStatement", + "src": "45573:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2504, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45526:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45534:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45526:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2515, + "nodeType": "WhileStatement", + "src": "45519:75:1" + }, + { + "assignments": [ + 2517 + ], + "declarations": [ + { + "constant": false, + "id": 2517, + "mutability": "mutable", + "name": "buffer", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45603:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2516, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2522, + "initialValue": { + "arguments": [ + { + "id": 2520, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45635:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "45625:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2518, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45629:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45625:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "assignments": [ + 2524 + ], + "declarations": [ + { + "constant": false, + "id": 2524, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45652:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45652:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2528, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2525, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45668:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45677:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "45668:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "expression": { + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2529, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45688:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2530, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45695:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45688:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2532, + "nodeType": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "body": { + "id": 2557, + "nodeType": "Block", + "src": "45728:96:1", + "statements": [ + { + "expression": { + "id": 2551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2536, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45742:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2539, + "indexExpression": { + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "45749:7:1", + "subExpression": { + "id": 2537, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2524, + "src": "45749:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "45742:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3438", + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45773:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2545, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45778:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3130", + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45785:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45778:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45773:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45767:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2542, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "45767:5:1", + "typeDescriptions": {} + } + }, + "id": 2549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45767:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 2540, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "45760:6:1", + "typeDescriptions": {} + } + }, + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45760:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "45742:47:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2552, + "nodeType": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "expression": { + "id": 2555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2553, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45803:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45811:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45803:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2556, + "nodeType": "ExpressionStatement", + "src": "45803:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2533, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45717:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45725:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45717:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2558, + "nodeType": "WhileStatement", + "src": "45710:114:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2561, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45847:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45840:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2559, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45840:6:1", + "typeDescriptions": {} + } + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45840:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2489, + "id": 2563, + "nodeType": "Return", + "src": "45833:21:1" + } + ] + }, + "documentation": { + "id": 2483, + "nodeType": "StructuredDocumentation", + "src": "45049:82:1", + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2485, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45154:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45154:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "45153:15:1" + }, + "returnParameters": { + "id": 2489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2488, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45192:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2487, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45192:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "45191:15:1" + }, + "scope": 2566, + "src": "45136:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "45027:836:1" + }, + { + "id": 2567, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "45922:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2569, + "name": "Context", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 530, + "src": "46099:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 2570, + "nodeType": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "baseName": { + "id": 2571, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 781, + "src": "46108:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$781", + "typeString": "contract ERC165" + } + }, + "id": 2572, + "nodeType": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "baseName": { + "id": 2573, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "46116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 2574, + "nodeType": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "baseName": { + "id": 2575, + "name": "IERC721Metadata", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 680, + "src": "46125:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Metadata_$680", + "typeString": "contract IERC721Metadata" + } + }, + "id": 2576, + "nodeType": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "baseName": { + "id": 2577, + "name": "IERC721Enumerable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 709, + "src": "46142:17:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Enumerable_$709", + "typeString": "contract IERC721Enumerable" + } + }, + "id": 2578, + "nodeType": "InheritanceSpecifier", + "src": "46142:17:1" + } + ], + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "documentation": { + "id": 2568, + "nodeType": "StructuredDocumentation", + "src": "45955:124:1", + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": true, + "id": 3498, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2581, + "libraryName": { + "id": 2579, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1135, + "src": "46172:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$1135", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "46166:27:1", + "typeName": { + "id": 2580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46185:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 2584, + "libraryName": { + "id": 2582, + "name": "Address", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1430, + "src": "46204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + }, + "nodeType": "UsingForDirective", + "src": "46198:26:1", + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46216:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 2587, + "libraryName": { + "id": 2585, + "name": "EnumerableSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1921, + "src": "46235:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableSet_$1921", + "typeString": "library EnumerableSet" + } + }, + "nodeType": "UsingForDirective", + "src": "46229:46:1", + "typeName": { + "id": 2586, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46253:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + { + "id": 2590, + "libraryName": { + "id": 2588, + "name": "EnumerableMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2480, + "src": "46286:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableMap_$2480", + "typeString": "library EnumerableMap" + } + }, + "nodeType": "UsingForDirective", + "src": "46280:55:1", + "typeName": { + "id": 2589, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46304:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + } + }, + { + "id": 2593, + "libraryName": { + "id": 2591, + "name": "Strings", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2566, + "src": "46346:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Strings_$2566", + "typeString": "library Strings" + } + }, + "nodeType": "UsingForDirective", + "src": "46340:26:1", + "typeName": { + "id": 2592, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46358:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 2596, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46544:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2594, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "46544:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783135306237613032", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46587:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_353073666_by_1", + "typeString": "int_const 353073666" + }, + "value": "0x150b7a02" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2600, + "mutability": "mutable", + "name": "_holderTokens", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46681:64:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "typeName": { + "id": 2599, + "keyType": { + "id": 2597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "46681:42:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "valueType": { + "id": 2598, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46701:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2602, + "mutability": "mutable", + "name": "_tokenOwners", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46809:51:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2601, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46809:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2606, + "mutability": "mutable", + "name": "_tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46916:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 2605, + "keyType": { + "id": 2603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46925:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "46916:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 2604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46936:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2612, + "mutability": "mutable", + "name": "_operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47023:73:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 2611, + "keyType": { + "id": 2607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47023:46:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 2610, + "keyType": { + "id": 2608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47043:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2609, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "47063:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2614, + "mutability": "mutable", + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47121:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2613, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47121:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2616, + "mutability": "mutable", + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47168:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47168:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2620, + "mutability": "mutable", + "name": "_tokenURIs", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47236:46:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 2619, + "keyType": { + "id": 2617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "47245:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "47236:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 2618, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47256:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2622, + "mutability": "mutable", + "name": "_baseURI", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47305:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2621, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47305:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2625, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48204:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2623, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48204:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783830616335386364", + "id": 2624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48251:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2628, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48527:66:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2626, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48527:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783562356531333966", + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1532892063_by_1", + "typeString": "int_const 1532892063" + }, + "value": "0x5b5e139f" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2631, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48898:68:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2629, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783738306539643633", + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48956:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2014223715_by_1", + "typeString": "int_const 2014223715" + }, + "value": "0x780e9d63" + }, + "visibility": "private" + }, + { + "body": { + "id": 2659, + "nodeType": "Block", + "src": "49143:305:1", + "statements": [ + { + "expression": { + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2639, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "49153:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2640, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "49161:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49153:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2642, + "nodeType": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "expression": { + "id": 2645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2643, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "49176:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2644, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2636, + "src": "49186:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49176:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2646, + "nodeType": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2648, + "name": "_INTERFACE_ID_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "49300:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2647, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49281:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49281:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2650, + "nodeType": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2652, + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "49350:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2651, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49331:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49331:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2654, + "nodeType": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2656, + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2631, + "src": "49409:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2655, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49390:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49390:51:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2658, + "nodeType": "ExpressionStatement", + "src": "49390:51:1" + } + ] + }, + "documentation": { + "id": 2632, + "nodeType": "StructuredDocumentation", + "src": "48973:108:1", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2660, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2634, + "mutability": "mutable", + "name": "name_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49099:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2633, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49099:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2636, + "mutability": "mutable", + "name": "symbol_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49120:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2635, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49120:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "49098:44:1" + }, + "returnParameters": { + "id": 2638, + "nodeType": "ParameterList", + "parameters": [], + "src": "49143:0:1" + }, + "scope": 3498, + "src": "49086:362:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 580 + ], + "body": { + "id": 2685, + "nodeType": "Block", + "src": "49588:137:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2670, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49606:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49623:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "49615:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49615:7:1", + "typeDescriptions": {} + } + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49615:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "49606:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49627:44:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + }, + "value": "ERC721: balance query for the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "id": 2669, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "49598:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49598:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2678, + "nodeType": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 2679, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "49689:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2681, + "indexExpression": { + "id": 2680, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49703:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "49689:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2682, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "49689:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + } + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49689:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2668, + "id": 2684, + "nodeType": "Return", + "src": "49682:36:1" + } + ] + }, + "documentation": { + "id": 2661, + "nodeType": "StructuredDocumentation", + "src": "49454:48:1", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 2686, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2665, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49561:8:1" + }, + "parameters": { + "id": 2664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2663, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49526:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49526:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49525:15:1" + }, + "returnParameters": { + "id": 2668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2667, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49579:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49579:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49578:9:1" + }, + "scope": 3498, + "src": "49507:218:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 588 + ], + "body": { + "id": 2701, + "nodeType": "Block", + "src": "49863:94:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2697, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "49897:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49906:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + }, + "value": "ERC721: owner query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "expression": { + "id": 2695, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "49880:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2696, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 2479, + "src": "49880:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + } + }, + "id": 2699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49880:70:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2694, + "id": 2700, + "nodeType": "Return", + "src": "49873:77:1" + } + ] + }, + "documentation": { + "id": 2687, + "nodeType": "StructuredDocumentation", + "src": "49731:46:1", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 2702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2691, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49836:8:1" + }, + "parameters": { + "id": 2690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2689, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49799:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49799:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49798:17:1" + }, + "returnParameters": { + "id": 2694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49854:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49854:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49853:9:1" + }, + "scope": 3498, + "src": "49782:175:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 665 + ], + "body": { + "id": 2711, + "nodeType": "Block", + "src": "50088:29:1", + "statements": [ + { + "expression": { + "id": 2709, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "50105:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2708, + "id": 2710, + "nodeType": "Return", + "src": "50098:12:1" + } + ] + }, + "documentation": { + "id": 2703, + "nodeType": "StructuredDocumentation", + "src": "49963:51:1", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 2712, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2705, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50055:8:1" + }, + "parameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [], + "src": "50032:2:1" + }, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2707, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2712, + "src": "50073:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2706, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50073:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50072:15:1" + }, + "scope": 3498, + "src": "50019:98:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 671 + ], + "body": { + "id": 2721, + "nodeType": "Block", + "src": "50252:31:1", + "statements": [ + { + "expression": { + "id": 2719, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "50269:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2718, + "id": 2720, + "nodeType": "Return", + "src": "50262:14:1" + } + ] + }, + "documentation": { + "id": 2713, + "nodeType": "StructuredDocumentation", + "src": "50123:53:1", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 2722, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2715, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50219:8:1" + }, + "parameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [], + "src": "50196:2:1" + }, + "returnParameters": { + "id": 2718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2717, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2722, + "src": "50237:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2716, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50237:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50236:15:1" + }, + "scope": 3498, + "src": "50181:102:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 679 + ], + "body": { + "id": 2789, + "nodeType": "Block", + "src": "50437:688:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2733, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50463:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2732, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "50455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50455:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50473:49:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + }, + "value": "ERC721Metadata: URI query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "id": 2731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "50447:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50447:76:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "assignments": [ + 2739 + ], + "declarations": [ + { + "constant": false, + "id": 2739, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50534:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50534:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2743, + "initialValue": { + "baseExpression": { + "id": 2740, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "50560:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 2742, + "indexExpression": { + "id": 2741, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50571:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "50560:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "assignments": [ + 2745 + ], + "declarations": [ + { + "constant": false, + "id": 2745, + "mutability": "mutable", + "name": "base", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50589:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50589:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2748, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2746, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2799, + "src": "50610:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 2747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50610:9:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2751, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50698:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50692:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50692:5:1", + "typeDescriptions": {} + } + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50692:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50692:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50714:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50692:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2759, + "nodeType": "IfStatement", + "src": "50688:70:1", + "trueBody": { + "id": 2758, + "nodeType": "Block", + "src": "50717:41:1", + "statements": [ + { + "expression": { + "id": 2756, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50738:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2757, + "nodeType": "Return", + "src": "50731:16:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2762, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50860:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2760, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50860:5:1", + "typeDescriptions": {} + } + }, + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50860:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50860:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50886:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50860:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2777, + "nodeType": "IfStatement", + "src": "50856:106:1", + "trueBody": { + "id": 2776, + "nodeType": "Block", + "src": "50889:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2771, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50934:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 2772, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50940:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2769, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "50917:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "50917:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50917:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50910:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2767, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50910:6:1", + "typeDescriptions": {} + } + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50910:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2775, + "nodeType": "Return", + "src": "50903:48:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2782, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "51092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2783, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "51098:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2565, + "src": "51098:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 2785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51098:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2780, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "51075:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "51075:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51075:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "51068:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2778, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51068:6:1", + "typeDescriptions": {} + } + }, + "id": 2787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51068:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2788, + "nodeType": "Return", + "src": "51061:57:1" + } + ] + }, + "documentation": { + "id": 2723, + "nodeType": "StructuredDocumentation", + "src": "50289:55:1", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 2790, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50404:8:1" + }, + "parameters": { + "id": 2726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2725, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50367:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50367:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "50366:17:1" + }, + "returnParameters": { + "id": 2730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50422:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2728, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50422:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50421:15:1" + }, + "scope": 3498, + "src": "50349:776:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2798, + "nodeType": "Block", + "src": "51420:32:1", + "statements": [ + { + "expression": { + "id": 2796, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "51437:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2795, + "id": 2797, + "nodeType": "Return", + "src": "51430:15:1" + } + ] + }, + "documentation": { + "id": 2791, + "nodeType": "StructuredDocumentation", + "src": "51131:221:1", + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "functionSelector": "6c0360eb", + "id": 2799, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "baseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2792, + "nodeType": "ParameterList", + "parameters": [], + "src": "51373:2:1" + }, + "returnParameters": { + "id": 2795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2799, + "src": "51405:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2793, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51405:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "51404:15:1" + }, + "scope": 3498, + "src": "51357:95:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 700 + ], + "body": { + "id": 2817, + "nodeType": "Block", + "src": "51637:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2814, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "51678:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 2810, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "51654:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2812, + "indexExpression": { + "id": 2811, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2802, + "src": "51668:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "51654:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2813, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 1920, + "src": "51654:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51654:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2809, + "id": 2816, + "nodeType": "Return", + "src": "51647:37:1" + } + ] + }, + "documentation": { + "id": 2800, + "nodeType": "StructuredDocumentation", + "src": "51458:68:1", + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "functionSelector": "2f745c59", + "id": 2818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2806, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51610:8:1" + }, + "parameters": { + "id": 2805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2802, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51560:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "51560:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2804, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51575:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2803, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51575:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51559:30:1" + }, + "returnParameters": { + "id": 2809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2808, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51628:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51628:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51627:9:1" + }, + "scope": 3498, + "src": "51531:160:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 690 + ], + "body": { + "id": 2829, + "nodeType": "Block", + "src": "51832:138:1", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2825, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "51942:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 2340, + "src": "51942:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51942:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2824, + "id": 2828, + "nodeType": "Return", + "src": "51935:28:1" + } + ] + }, + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "51697:60:1", + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 2830, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2821, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51805:8:1" + }, + "parameters": { + "id": 2820, + "nodeType": "ParameterList", + "parameters": [], + "src": "51782:2:1" + }, + "returnParameters": { + "id": 2824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2823, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2830, + "src": "51823:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51823:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51822:9:1" + }, + "scope": 3498, + "src": "51762:208:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 708 + ], + "body": { + "id": 2848, + "nodeType": "Block", + "src": "52126:85:1", + "statements": [ + { + "assignments": [ + 2840, + null + ], + "declarations": [ + { + "constant": false, + "id": 2840, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2848, + "src": "52137:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2839, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52137:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2845, + "initialValue": { + "arguments": [ + { + "id": 2843, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2833, + "src": "52174:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2841, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "52158:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 2379, + "src": "52158:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + } + }, + "id": 2844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52158:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$", + "typeString": "tuple(uint256,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "expression": { + "id": 2846, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2840, + "src": "52197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2838, + "id": 2847, + "nodeType": "Return", + "src": "52190:14:1" + } + ] + }, + "documentation": { + "id": 2831, + "nodeType": "StructuredDocumentation", + "src": "51976:61:1", + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "functionSelector": "4f6ccce7", + "id": 2849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2835, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52099:8:1" + }, + "parameters": { + "id": 2834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2833, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52064:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52064:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52063:15:1" + }, + "returnParameters": { + "id": 2838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2837, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52117:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52116:9:1" + }, + "scope": 3498, + "src": "52042:169:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 616 + ], + "body": { + "id": 2892, + "nodeType": "Block", + "src": "52338:325:1", + "statements": [ + { + "assignments": [ + 2859 + ], + "declarations": [ + { + "constant": false, + "id": 2859, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2892, + "src": "52348:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52348:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2864, + "initialValue": { + "arguments": [ + { + "id": 2862, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52379:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2860, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52364:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "52364:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52364:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2866, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52405:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2867, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52411:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52405:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "id": 2869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52418:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + }, + "value": "ERC721: approval to current owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "id": 2865, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52397:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52397:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2871, + "nodeType": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2873, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52473:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52473:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2875, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52489:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52473:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 2879, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52522:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2880, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52529:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52529:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 2877, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52498:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "52498:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52498:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "52473:69:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52556:58:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + }, + "value": "ERC721: approve caller is not owner nor approved for all" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "id": 2872, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52465:159:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2886, + "nodeType": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2888, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52644:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2889, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52648:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2887, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "52635:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52635:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2891, + "nodeType": "ExpressionStatement", + "src": "52635:21:1" + } + ] + }, + "documentation": { + "id": 2850, + "nodeType": "StructuredDocumentation", + "src": "52217:46:1", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 2893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2856, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52329:8:1" + }, + "parameters": { + "id": 2855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2852, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52285:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52285:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2854, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52297:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52284:29:1" + }, + "returnParameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [], + "src": "52338:0:1" + }, + "scope": 3498, + "src": "52268:395:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 624 + ], + "body": { + "id": 2913, + "nodeType": "Block", + "src": "52809:132:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2904, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2903, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "52827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52827:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52845:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + }, + "value": "ERC721: approved query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "id": 2902, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52819:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2908, + "nodeType": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "expression": { + "baseExpression": { + "id": 2909, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "52910:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 2911, + "indexExpression": { + "id": 2910, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52926:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "52910:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2901, + "id": 2912, + "nodeType": "Return", + "src": "52903:31:1" + } + ] + }, + "documentation": { + "id": 2894, + "nodeType": "StructuredDocumentation", + "src": "52669:50:1", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 2914, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2898, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52782:8:1" + }, + "parameters": { + "id": 2897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2896, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52745:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52744:17:1" + }, + "returnParameters": { + "id": 2901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2900, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2899, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "52799:9:1" + }, + "scope": 3498, + "src": "52724:217:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 632 + ], + "body": { + "id": 2947, + "nodeType": "Block", + "src": "53092:206:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2924, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53110:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2925, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53122:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53122:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "53110:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "id": 2928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53136:27:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + }, + "value": "ERC721: approve to caller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "id": 2923, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53102:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53102:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2930, + "nodeType": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "expression": { + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 2931, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53175:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2935, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2932, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53194:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53194:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53175:32:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2936, + "indexExpression": { + "id": 2934, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53208:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "53175:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2937, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53220:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "53175:53:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2941, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53258:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53258:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2943, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53272:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2944, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53282:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2940, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "53243:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 2945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53243:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2946, + "nodeType": "EmitStatement", + "src": "53238:53:1" + } + ] + }, + "documentation": { + "id": 2915, + "nodeType": "StructuredDocumentation", + "src": "52947:56:1", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 2948, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2921, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53083:8:1" + }, + "parameters": { + "id": 2920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2917, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53035:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53035:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2919, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53053:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2918, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53053:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53034:33:1" + }, + "returnParameters": { + "id": 2922, + "nodeType": "ParameterList", + "parameters": [], + "src": "53092:0:1" + }, + "scope": 3498, + "src": "53008:290:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 642 + ], + "body": { + "id": 2965, + "nodeType": "Block", + "src": "53467:59:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 2959, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53484:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2961, + "indexExpression": { + "id": 2960, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "53503:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2963, + "indexExpression": { + "id": 2962, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "53510:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2958, + "id": 2964, + "nodeType": "Return", + "src": "53477:42:1" + } + ] + }, + "documentation": { + "id": 2949, + "nodeType": "StructuredDocumentation", + "src": "53304:55:1", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 2966, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2955, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53443:8:1" + }, + "parameters": { + "id": 2954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53390:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53390:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2953, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53405:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53405:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "53389:33:1" + }, + "returnParameters": { + "id": 2958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2957, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2956, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53460:6:1" + }, + "scope": 3498, + "src": "53364:162:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 608 + ], + "body": { + "id": 2992, + "nodeType": "Block", + "src": "53677:211:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2979, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53766:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53766:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2981, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53780:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2978, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "53747:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53747:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53790:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 2977, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53739:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53739:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2985, + "nodeType": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2987, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2969, + "src": "53863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2988, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2971, + "src": "53869:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2989, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53873:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2986, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "53853:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53853:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2991, + "nodeType": "ExpressionStatement", + "src": "53853:28:1" + } + ] + }, + "documentation": { + "id": 2967, + "nodeType": "StructuredDocumentation", + "src": "53532:51:1", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 2993, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2975, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53668:8:1" + }, + "parameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2969, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53610:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53610:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2971, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53624:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53624:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2973, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53636:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "53636:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53609:43:1" + }, + "returnParameters": { + "id": 2976, + "nodeType": "ParameterList", + "parameters": [], + "src": "53677:0:1" + }, + "scope": 3498, + "src": "53588:300:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 598 + ], + "body": { + "id": 3011, + "nodeType": "Block", + "src": "54047:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3005, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2996, + "src": "54074:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3006, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2998, + "src": "54080:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3007, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3000, + "src": "54084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54093:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3004, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "src": "54057:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54057:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3010, + "nodeType": "ExpressionStatement", + "src": "54057:39:1" + } + ] + }, + "documentation": { + "id": 2994, + "nodeType": "StructuredDocumentation", + "src": "53894:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 3012, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3002, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54038:8:1" + }, + "parameters": { + "id": 3001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2996, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53980:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53980:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2998, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53994:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2997, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53994:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3000, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "54006:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54006:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53979:43:1" + }, + "returnParameters": { + "id": 3003, + "nodeType": "ParameterList", + "parameters": [], + "src": "54047:0:1" + }, + "scope": 3498, + "src": "53954:149:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 654 + ], + "body": { + "id": 3041, + "nodeType": "Block", + "src": "54282:169:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3027, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "54319:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54319:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3029, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3026, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "54300:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 3030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54300:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 3031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54343:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 3025, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "54292:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54292:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3033, + "nodeType": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3035, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3015, + "src": "54419:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3036, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3017, + "src": "54425:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3037, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3038, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3021, + "src": "54438:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3034, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3071, + "src": "54405:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54405:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3040, + "nodeType": "ExpressionStatement", + "src": "54405:39:1" + } + ] + }, + "documentation": { + "id": 3013, + "nodeType": "StructuredDocumentation", + "src": "54109:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 3042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3023, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54273:8:1" + }, + "parameters": { + "id": 3022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3015, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54195:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54195:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3017, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54209:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3016, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54209:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3019, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54221:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3021, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54238:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3020, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "54238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "54194:63:1" + }, + "returnParameters": { + "id": 3024, + "nodeType": "ParameterList", + "parameters": [], + "src": "54282:0:1" + }, + "scope": 3498, + "src": "54169:282:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 3070, + "nodeType": "Block", + "src": "55416:166:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3055, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55436:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55442:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3057, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55446:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3054, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "55426:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55426:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3059, + "nodeType": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3062, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55495:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3063, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55501:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3064, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55505:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3065, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3051, + "src": "55514:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3061, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "55472:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55472:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55522:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3060, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "55464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55464:111:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3069, + "nodeType": "ExpressionStatement", + "src": "55464:111:1" + } + ] + }, + "documentation": { + "id": 3043, + "nodeType": "StructuredDocumentation", + "src": "54457:851:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3071, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3045, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55336:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55336:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3047, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55350:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55350:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3049, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55362:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55362:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3051, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55379:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3050, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "55379:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "55335:63:1" + }, + "returnParameters": { + "id": 3053, + "nodeType": "ParameterList", + "parameters": [], + "src": "55416:0:1" + }, + "scope": 3498, + "src": "55313:269:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3084, + "nodeType": "Block", + "src": "55956:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3081, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "55995:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3079, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "55973:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3080, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 2326, + "src": "55973:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + } + }, + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55973:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3078, + "id": 3083, + "nodeType": "Return", + "src": "55966:37:1" + } + ] + }, + "documentation": { + "id": 3072, + "nodeType": "StructuredDocumentation", + "src": "55588:292:1", + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3085, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3074, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55902:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3073, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55902:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "55901:17:1" + }, + "returnParameters": { + "id": 3078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3077, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55950:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3076, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "55950:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "55949:6:1" + }, + "scope": 3498, + "src": "55885:125:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3126, + "nodeType": "Block", + "src": "56267:252:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3097, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56293:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3096, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "56285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56285:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 3099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56303:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + }, + "value": "ERC721: operator query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "id": 3095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "56277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56277:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3101, + "nodeType": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "assignments": [ + 3103 + ], + "declarations": [ + { + "constant": false, + "id": 3103, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3126, + "src": "56360:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56360:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3108, + "initialValue": { + "arguments": [ + { + "id": 3106, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56391:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3104, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56376:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "56376:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56376:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3109, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56417:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3110, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56428:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56417:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3113, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56449:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3112, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "56437:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56437:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3115, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56437:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:51:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 3120, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56496:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3121, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3118, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "56472:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56472:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:94:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3124, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56416:96:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3094, + "id": 3125, + "nodeType": "Return", + "src": "56409:103:1" + } + ] + }, + "documentation": { + "id": 3086, + "nodeType": "StructuredDocumentation", + "src": "56016:147:1", + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3088, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56196:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56196:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3090, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56213:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56213:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56195:34:1" + }, + "returnParameters": { + "id": 3094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3093, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56261:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3092, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "56261:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "56260:6:1" + }, + "scope": 3498, + "src": "56168:351:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3141, + "nodeType": "Block", + "src": "56915:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3136, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3130, + "src": "56935:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3137, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3132, + "src": "56939:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56948:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3135, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "src": "56925:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 3139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56925:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3140, + "nodeType": "ExpressionStatement", + "src": "56925:26:1" + } + ] + }, + "documentation": { + "id": 3128, + "nodeType": "StructuredDocumentation", + "src": "56525:320:1", + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3142, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3130, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56869:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3132, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56881:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56881:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56868:29:1" + }, + "returnParameters": { + "id": 3134, + "nodeType": "ParameterList", + "parameters": [], + "src": "56915:0:1" + }, + "scope": 3498, + "src": "56850:108:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3170, + "nodeType": "Block", + "src": "57264:162:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3153, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57280:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3154, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3152, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "57274:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57274:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3156, + "nodeType": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57341:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57333:7:1", + "typeDescriptions": {} + } + }, + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57333:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3163, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57345:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3164, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3165, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "57358:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3158, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "57310:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57310:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57366:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3157, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57302:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57302:117:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3169, + "nodeType": "ExpressionStatement", + "src": "57302:117:1" + } + ] + }, + "documentation": { + "id": 3143, + "nodeType": "StructuredDocumentation", + "src": "56964:210:1", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3171, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3145, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57198:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3144, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57198:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3147, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57210:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57210:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3149, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57227:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3148, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "57227:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "57197:49:1" + }, + "returnParameters": { + "id": 3151, + "nodeType": "ParameterList", + "parameters": [], + "src": "57264:0:1" + }, + "scope": 3498, + "src": "57179:247:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3229, + "nodeType": "Block", + "src": "57809:332:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3180, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57827:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57841:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57833:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57833:7:1", + "typeDescriptions": {} + } + }, + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57833:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "57827:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57845:34:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + }, + "value": "ERC721: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "id": 3179, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57819:61:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "57898:17:1", + "subExpression": { + "arguments": [ + { + "id": 3191, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57907:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3190, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "57899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57899:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57917:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + }, + "value": "ERC721: token already minted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "id": 3189, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57890:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57890:58:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3196, + "nodeType": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57988:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57980:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57980:7:1", + "typeDescriptions": {} + } + }, + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57980:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3202, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57992:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3203, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3197, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "57959:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57959:45:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3205, + "nodeType": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3210, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58037:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3206, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58015:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3208, + "indexExpression": { + "id": 3207, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58029:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58015:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3209, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "58015:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58015:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3212, + "nodeType": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3216, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58073:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3217, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58082:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3213, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58056:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3215, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "58056:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58056:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3219, + "nodeType": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58118:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58110:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58110:7:1", + "typeDescriptions": {} + } + }, + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58110:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3225, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58122:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3226, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3220, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58101:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58101:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3228, + "nodeType": "EmitStatement", + "src": "58096:38:1" + } + ] + }, + "documentation": { + "id": 3172, + "nodeType": "StructuredDocumentation", + "src": "57432:311:1", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3174, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57763:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57763:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3176, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57775:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57775:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "57762:29:1" + }, + "returnParameters": { + "id": 3178, + "nodeType": "ParameterList", + "parameters": [], + "src": "57809:0:1" + }, + "scope": 3498, + "src": "57748:393:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3298, + "nodeType": "Block", + "src": "58407:478:1", + "statements": [ + { + "assignments": [ + 3237 + ], + "declarations": [ + { + "constant": false, + "id": 3237, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "58417:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58417:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3242, + "initialValue": { + "arguments": [ + { + "id": 3240, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58448:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3238, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "58433:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "58433:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58433:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3244, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58506:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58521:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58513:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58513:7:1", + "typeDescriptions": {} + } + }, + "id": 3248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58513:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3249, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58525:7:1", + "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": 3243, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "58485:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58485:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3251, + "nodeType": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58588:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58580:7:1", + "typeDescriptions": {} + } + }, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58580:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3257, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58592:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3252, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "58571:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58571:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3259, + "nodeType": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 3262, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58656:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3264, + "indexExpression": { + "id": 3263, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58667:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58656:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 3261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58650:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3260, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "58650:5:1", + "typeDescriptions": {} + } + }, + "id": 3265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58650:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes storage pointer" + } + }, + "id": 3266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "58650:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 3267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58687:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "58650:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3275, + "nodeType": "IfStatement", + "src": "58646:95:1", + "trueBody": { + "id": 3274, + "nodeType": "Block", + "src": "58690:51:1", + "statements": [ + { + "expression": { + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "58704:26:1", + "subExpression": { + "baseExpression": { + "id": 3269, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58711:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3271, + "indexExpression": { + "id": 3270, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58722:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "58711:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3273, + "nodeType": "ExpressionStatement", + "src": "58704:26:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 3280, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58779:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3276, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58751:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3278, + "indexExpression": { + "id": 3277, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58765:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58751:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3279, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "58751:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58751:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3282, + "nodeType": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3286, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58818:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3283, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58798:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 2306, + "src": "58798:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + } + }, + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58798:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3288, + "nodeType": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3290, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58851:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58866:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58858:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58858:7:1", + "typeDescriptions": {} + } + }, + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58858:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3295, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58870:7:1", + "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": 3289, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58842:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58842:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3297, + "nodeType": "EmitStatement", + "src": "58837:41:1" + } + ] + }, + "documentation": { + "id": 3231, + "nodeType": "StructuredDocumentation", + "src": "58147:206:1", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3299, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3233, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3299, + "src": "58373:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "58372:17:1" + }, + "returnParameters": { + "id": 3235, + "nodeType": "ParameterList", + "parameters": [], + "src": "58407:0:1" + }, + "scope": 3498, + "src": "58358:527:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3370, + "nodeType": "Block", + "src": "59288:505:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3312, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59321:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3310, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "59306:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "59306:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59306:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3314, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59333:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "59306:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59339:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + }, + "value": "ERC721: transfer of token that is not own" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "id": 3309, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59298:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59298:85:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3318, + "nodeType": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3320, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59419:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59433:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59425:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59425:7:1", + "typeDescriptions": {} + } + }, + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59425:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "59419:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59437:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + }, + "value": "ERC721: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "id": 3319, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59411:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59411:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3328, + "nodeType": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3330, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59508:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3331, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59514:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3332, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59518:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3329, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "59487:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59487:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3334, + "nodeType": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59605:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59597:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59597:7:1", + "typeDescriptions": {} + } + }, + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59597:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3340, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59609:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3335, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "59588:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59588:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3342, + "nodeType": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3347, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59655:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3343, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59628:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3345, + "indexExpression": { + "id": 3344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59642:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59628:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3346, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "59628:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59628:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3354, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59695:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3350, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3352, + "indexExpression": { + "id": 3351, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59687:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59673:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3353, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "59673:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59673:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3356, + "nodeType": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3360, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59731:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3361, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59740:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3357, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "59714:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "59714:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59714:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3363, + "nodeType": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3365, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59768:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3366, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59774:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3367, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59778:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3364, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "59759:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59759:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3369, + "nodeType": "EmitStatement", + "src": "59754:32:1" + } + ] + }, + "documentation": { + "id": 3300, + "nodeType": "StructuredDocumentation", + "src": "58891:313:1", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3302, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59228:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3304, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59242:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59242:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3306, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59254:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3305, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59254:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "59227:43:1" + }, + "returnParameters": { + "id": 3308, + "nodeType": "ParameterList", + "parameters": [], + "src": "59288:0:1" + }, + "scope": 3498, + "src": "59209:584:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3392, + "nodeType": "Block", + "src": "60021:131:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3381, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60047:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3380, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "60039:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60039:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "id": 3383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "60057:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + }, + "value": "ERC721Metadata: URI set of nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "id": 3379, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "60031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60031:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3385, + "nodeType": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "expression": { + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3386, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "60114:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3388, + "indexExpression": { + "id": 3387, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60125:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "60114:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3389, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "60136:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60114:31:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3391, + "nodeType": "ExpressionStatement", + "src": "60114:31:1" + } + ] + }, + "documentation": { + "id": 3372, + "nodeType": "StructuredDocumentation", + "src": "59799:136:1", + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setTokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3374, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59962:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59962:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3376, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59979:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3375, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "59979:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "59961:42:1" + }, + "returnParameters": { + "id": 3378, + "nodeType": "ParameterList", + "parameters": [], + "src": "60021:0:1" + }, + "scope": 3498, + "src": "59940:212:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3403, + "nodeType": "Block", + "src": "60437:36:1", + "statements": [ + { + "expression": { + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3399, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "60447:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3400, + "name": "baseURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "60458:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60447:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3402, + "nodeType": "ExpressionStatement", + "src": "60447:19:1" + } + ] + }, + "documentation": { + "id": 3394, + "nodeType": "StructuredDocumentation", + "src": "60158:212:1", + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3404, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setBaseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3396, + "mutability": "mutable", + "name": "baseURI_", + "nodeType": "VariableDeclaration", + "scope": 3404, + "src": "60396:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3395, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "60396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "60395:24:1" + }, + "returnParameters": { + "id": 3398, + "nodeType": "ParameterList", + "parameters": [], + "src": "60437:0:1" + }, + "scope": 3498, + "src": "60375:98:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3461, + "nodeType": "Block", + "src": "61156:459:1", + "statements": [ + { + "condition": { + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "61170:16:1", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3418, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61171:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 1154, + "src": "61171:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61171:15:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3425, + "nodeType": "IfStatement", + "src": "61166:58:1", + "trueBody": { + "id": 3424, + "nodeType": "Block", + "src": "61188:36:1", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 3422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61209:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3417, + "id": 3423, + "nodeType": "Return", + "src": "61202:11:1" + } + ] + } + }, + { + "assignments": [ + 3427 + ], + "declarations": [ + { + "constant": false, + "id": 3427, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61233:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3426, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61233:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3445, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 3433, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61327:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3432, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "61311:15:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$726_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 3434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61311:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$726", + "typeString": "contract IERC721Receiver" + } + }, + "id": 3435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 725, + "src": "61311:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "61311:45:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3437, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "61370:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61370:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3439, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "61396:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3440, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "61414:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3441, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3413, + "src": "61435:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3430, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61275:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "61275:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 3442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61275:175:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61452:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "expression": { + "id": 3428, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61259:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 1225, + "src": "61259:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 3444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61259:246:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "assignments": [ + 3447 + ], + "declarations": [ + { + "constant": false, + "id": 3447, + "mutability": "mutable", + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61515:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3446, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61515:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "id": 3455, + "initialValue": { + "arguments": [ + { + "id": 3450, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3427, + "src": "61542:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 3452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "61555:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 3451, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61555:6:1", + "typeDescriptions": {} + } + } + ], + "id": 3453, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61554:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "expression": { + "id": 3448, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61531:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "61531:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61531:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3456, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "61581:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3457, + "name": "_ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "61591:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "61581:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3459, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61580:28:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3417, + "id": 3460, + "nodeType": "Return", + "src": "61573:35:1" + } + ] + }, + "documentation": { + "id": 3405, + "nodeType": "StructuredDocumentation", + "src": "60479:542:1", + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3462, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3407, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61058:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61058:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3409, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61072:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61072:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3411, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61084:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3410, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3413, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61101:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3412, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61101:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "61057:63:1" + }, + "returnParameters": { + "id": 3417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3416, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61146:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3415, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "61146:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "61145:6:1" + }, + "scope": 3498, + "src": "61026:589:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3485, + "nodeType": "Block", + "src": "61791:125:1", + "statements": [ + { + "expression": { + "id": 3474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3470, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "61801:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 3472, + "indexExpression": { + "id": 3471, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61817:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "61801:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3473, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61828:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "61801:29:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3475, + "nodeType": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 3479, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61869:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3477, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "61854:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "61854:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61854:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3481, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61879:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3482, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3476, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "61845:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61845:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3484, + "nodeType": "EmitStatement", + "src": "61840:51:1" + } + ] + }, + "documentation": { + "id": 3463, + "nodeType": "StructuredDocumentation", + "src": "61621:101:1", + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3486, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3465, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61745:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61745:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3467, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61757:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61757:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "61744:29:1" + }, + "returnParameters": { + "id": 3469, + "nodeType": "ParameterList", + "parameters": [], + "src": "61791:0:1" + }, + "scope": 3498, + "src": "61727:189:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3496, + "nodeType": "Block", + "src": "62602:3:1", + "statements": [] + }, + "documentation": { + "id": 3487, + "nodeType": "StructuredDocumentation", + "src": "61922:585:1", + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3497, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3489, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62542:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62542:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3491, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62556:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62556:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3493, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62568:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "62568:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "62541:43:1" + }, + "returnParameters": { + "id": 3495, + "nodeType": "ParameterList", + "parameters": [], + "src": "62602:0:1" + }, + "scope": 3498, + "src": "62512:93:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "46080:16527:1" + } + ], + "src": "84:62524:1" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "license": "MIT" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 509, + "name": "PragmaDirective", + "src": "84:31:1" + }, + { + "attributes": { + "abstract": true, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgSender", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 510, + "name": "ParameterList", + "src": "668:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 518, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 511, + "name": "ElementaryTypeName", + "src": "702:15:1" + } + ], + "id": 512, + "name": "VariableDeclaration", + "src": "702:15:1" + } + ], + "id": 513, + "name": "ParameterList", + "src": "701:17:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 513 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 514, + "name": "Identifier", + "src": "736:3:1" + } + ], + "id": 515, + "name": "MemberAccess", + "src": "736:10:1" + } + ], + "id": 516, + "name": "Return", + "src": "729:17:1" + } + ], + "id": 517, + "name": "Block", + "src": "719:34:1" + } + ], + "id": 518, + "name": "FunctionDefinition", + "src": "649:104:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgData", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 519, + "name": "ParameterList", + "src": "776:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 529, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 520, + "name": "ElementaryTypeName", + "src": "810:5:1" + } + ], + "id": 521, + "name": "VariableDeclaration", + "src": "810:12:1" + } + ], + "id": 522, + "name": "ParameterList", + "src": "809:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "contract Context", + "value": "this" + }, + "id": 523, + "name": "Identifier", + "src": "834:4:1" + } + ], + "id": 524, + "name": "ExpressionStatement", + "src": "834:4:1" + }, + { + "attributes": { + "functionReturnParameters": 522 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "data", + "type": "bytes calldata" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 525, + "name": "Identifier", + "src": "974:3:1" + } + ], + "id": 526, + "name": "MemberAccess", + "src": "974:8:1" + } + ], + "id": 527, + "name": "Return", + "src": "967:15:1" + } + ], + "id": 528, + "name": "Block", + "src": "824:165:1" + } + ], + "id": 529, + "name": "FunctionDefinition", + "src": "759:230:1" + } + ], + "id": 530, + "name": "ContractDefinition", + "src": "617:374:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 531, + "name": "PragmaDirective", + "src": "1053:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "id": 532, + "name": "StructuredDocumentation", + "src": "1086:279:1" + }, + { + "attributes": { + "functionSelector": "01ffc9a7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 541, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "id": 533, + "name": "StructuredDocumentation", + "src": "1390:340:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 534, + "name": "ElementaryTypeName", + "src": "1762:6:1" + } + ], + "id": 535, + "name": "VariableDeclaration", + "src": "1762:18:1" + } + ], + "id": 536, + "name": "ParameterList", + "src": "1761:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 537, + "name": "ElementaryTypeName", + "src": "1805:4:1" + } + ], + "id": 538, + "name": "VariableDeclaration", + "src": "1805:4:1" + } + ], + "id": 539, + "name": "ParameterList", + "src": "1804:6:1" + } + ], + "id": 540, + "name": "FunctionDefinition", + "src": "1735:76:1" + } + ], + "id": 541, + "name": "ContractDefinition", + "src": "1366:447:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 542, + "name": "PragmaDirective", + "src": "1873:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "id": 543, + "name": "StructuredDocumentation", + "src": "1907:67:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 544, + "name": "UserDefinedTypeName", + "src": "1996:7:1" + } + ], + "id": 545, + "name": "InheritanceSpecifier", + "src": "1996:7:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Transfer" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 546, + "name": "StructuredDocumentation", + "src": "2010:88:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "from", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 547, + "name": "ElementaryTypeName", + "src": "2118:7:1" + } + ], + "id": 548, + "name": "VariableDeclaration", + "src": "2118:20:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "to", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 549, + "name": "ElementaryTypeName", + "src": "2140:7:1" + } + ], + "id": 550, + "name": "VariableDeclaration", + "src": "2140:18:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 551, + "name": "ElementaryTypeName", + "src": "2160:7:1" + } + ], + "id": 552, + "name": "VariableDeclaration", + "src": "2160:23:1" + } + ], + "id": 553, + "name": "ParameterList", + "src": "2117:67:1" + } + ], + "id": 554, + "name": "EventDefinition", + "src": "2103:82:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Approval" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 555, + "name": "StructuredDocumentation", + "src": "2191:94:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 556, + "name": "ElementaryTypeName", + "src": "2305:7:1" + } + ], + "id": 557, + "name": "VariableDeclaration", + "src": "2305:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 558, + "name": "ElementaryTypeName", + "src": "2328:7:1" + } + ], + "id": 559, + "name": "VariableDeclaration", + "src": "2328:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 560, + "name": "ElementaryTypeName", + "src": "2354:7:1" + } + ], + "id": 561, + "name": "VariableDeclaration", + "src": "2354:23:1" + } + ], + "id": 562, + "name": "ParameterList", + "src": "2304:74:1" + } + ], + "id": 563, + "name": "EventDefinition", + "src": "2290:89:1" + }, + { + "attributes": { + "anonymous": false, + "name": "ApprovalForAll" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 564, + "name": "StructuredDocumentation", + "src": "2385:117:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 565, + "name": "ElementaryTypeName", + "src": "2528:7:1" + } + ], + "id": 566, + "name": "VariableDeclaration", + "src": "2528:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 567, + "name": "ElementaryTypeName", + "src": "2551:7:1" + } + ], + "id": 568, + "name": "VariableDeclaration", + "src": "2551:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 569, + "name": "ElementaryTypeName", + "src": "2577:4:1" + } + ], + "id": 570, + "name": "VariableDeclaration", + "src": "2577:13:1" + } + ], + "id": 571, + "name": "ParameterList", + "src": "2527:64:1" + } + ], + "id": 572, + "name": "EventDefinition", + "src": "2507:85:1" + }, + { + "attributes": { + "functionSelector": "70a08231", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "id": 573, + "name": "StructuredDocumentation", + "src": "2598:76:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 574, + "name": "ElementaryTypeName", + "src": "2698:7:1" + } + ], + "id": 575, + "name": "VariableDeclaration", + "src": "2698:13:1" + } + ], + "id": 576, + "name": "ParameterList", + "src": "2697:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "balance", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 577, + "name": "ElementaryTypeName", + "src": "2736:7:1" + } + ], + "id": 578, + "name": "VariableDeclaration", + "src": "2736:15:1" + } + ], + "id": 579, + "name": "ParameterList", + "src": "2735:17:1" + } + ], + "id": 580, + "name": "FunctionDefinition", + "src": "2679:74:1" + }, + { + "attributes": { + "functionSelector": "6352211e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 581, + "name": "StructuredDocumentation", + "src": "2759:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 582, + "name": "ElementaryTypeName", + "src": "2912:7:1" + } + ], + "id": 583, + "name": "VariableDeclaration", + "src": "2912:15:1" + } + ], + "id": 584, + "name": "ParameterList", + "src": "2911:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 585, + "name": "ElementaryTypeName", + "src": "2952:7:1" + } + ], + "id": 586, + "name": "VariableDeclaration", + "src": "2952:13:1" + } + ], + "id": 587, + "name": "ParameterList", + "src": "2951:15:1" + } + ], + "id": 588, + "name": "FunctionDefinition", + "src": "2895:72:1" + }, + { + "attributes": { + "functionSelector": "42842e0e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 589, + "name": "StructuredDocumentation", + "src": "2973:690:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 590, + "name": "ElementaryTypeName", + "src": "3694:7:1" + } + ], + "id": 591, + "name": "VariableDeclaration", + "src": "3694:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 592, + "name": "ElementaryTypeName", + "src": "3708:7:1" + } + ], + "id": 593, + "name": "VariableDeclaration", + "src": "3708:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 594, + "name": "ElementaryTypeName", + "src": "3720:7:1" + } + ], + "id": 595, + "name": "VariableDeclaration", + "src": "3720:15:1" + } + ], + "id": 596, + "name": "ParameterList", + "src": "3693:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 597, + "name": "ParameterList", + "src": "3745:0:1" + } + ], + "id": 598, + "name": "FunctionDefinition", + "src": "3668:78:1" + }, + { + "attributes": { + "functionSelector": "23b872dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "id": 599, + "name": "StructuredDocumentation", + "src": "3752:504:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 600, + "name": "ElementaryTypeName", + "src": "4283:7:1" + } + ], + "id": 601, + "name": "VariableDeclaration", + "src": "4283:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 602, + "name": "ElementaryTypeName", + "src": "4297:7:1" + } + ], + "id": 603, + "name": "VariableDeclaration", + "src": "4297:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 604, + "name": "ElementaryTypeName", + "src": "4309:7:1" + } + ], + "id": 605, + "name": "VariableDeclaration", + "src": "4309:15:1" + } + ], + "id": 606, + "name": "ParameterList", + "src": "4282:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 607, + "name": "ParameterList", + "src": "4334:0:1" + } + ], + "id": 608, + "name": "FunctionDefinition", + "src": "4261:74:1" + }, + { + "attributes": { + "functionSelector": "095ea7b3", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "id": 609, + "name": "StructuredDocumentation", + "src": "4341:452:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 610, + "name": "ElementaryTypeName", + "src": "4815:7:1" + } + ], + "id": 611, + "name": "VariableDeclaration", + "src": "4815:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 612, + "name": "ElementaryTypeName", + "src": "4827:7:1" + } + ], + "id": 613, + "name": "VariableDeclaration", + "src": "4827:15:1" + } + ], + "id": 614, + "name": "ParameterList", + "src": "4814:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 615, + "name": "ParameterList", + "src": "4852:0:1" + } + ], + "id": 616, + "name": "FunctionDefinition", + "src": "4798:55:1" + }, + { + "attributes": { + "functionSelector": "081812fc", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 617, + "name": "StructuredDocumentation", + "src": "4859:139:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 618, + "name": "ElementaryTypeName", + "src": "5024:7:1" + } + ], + "id": 619, + "name": "VariableDeclaration", + "src": "5024:15:1" + } + ], + "id": 620, + "name": "ParameterList", + "src": "5023:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 621, + "name": "ElementaryTypeName", + "src": "5064:7:1" + } + ], + "id": 622, + "name": "VariableDeclaration", + "src": "5064:16:1" + } + ], + "id": 623, + "name": "ParameterList", + "src": "5063:18:1" + } + ], + "id": 624, + "name": "FunctionDefinition", + "src": "5003:79:1" + }, + { + "attributes": { + "functionSelector": "a22cb465", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "id": 625, + "name": "StructuredDocumentation", + "src": "5088:309:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 626, + "name": "ElementaryTypeName", + "src": "5429:7:1" + } + ], + "id": 627, + "name": "VariableDeclaration", + "src": "5429:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_approved", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 628, + "name": "ElementaryTypeName", + "src": "5447:4:1" + } + ], + "id": 629, + "name": "VariableDeclaration", + "src": "5447:14:1" + } + ], + "id": 630, + "name": "ParameterList", + "src": "5428:34:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 631, + "name": "ParameterList", + "src": "5471:0:1" + } + ], + "id": 632, + "name": "FunctionDefinition", + "src": "5402:70:1" + }, + { + "attributes": { + "functionSelector": "e985e9c5", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "id": 633, + "name": "StructuredDocumentation", + "src": "5478:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 634, + "name": "ElementaryTypeName", + "src": "5647:7:1" + } + ], + "id": 635, + "name": "VariableDeclaration", + "src": "5647:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 636, + "name": "ElementaryTypeName", + "src": "5662:7:1" + } + ], + "id": 637, + "name": "VariableDeclaration", + "src": "5662:16:1" + } + ], + "id": 638, + "name": "ParameterList", + "src": "5646:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 639, + "name": "ElementaryTypeName", + "src": "5703:4:1" + } + ], + "id": 640, + "name": "VariableDeclaration", + "src": "5703:4:1" + } + ], + "id": 641, + "name": "ParameterList", + "src": "5702:6:1" + } + ], + "id": 642, + "name": "FunctionDefinition", + "src": "5621:88:1" + }, + { + "attributes": { + "functionSelector": "b88d4fde", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 643, + "name": "StructuredDocumentation", + "src": "5715:568:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 644, + "name": "ElementaryTypeName", + "src": "6314:7:1" + } + ], + "id": 645, + "name": "VariableDeclaration", + "src": "6314:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 646, + "name": "ElementaryTypeName", + "src": "6328:7:1" + } + ], + "id": 647, + "name": "VariableDeclaration", + "src": "6328:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 648, + "name": "ElementaryTypeName", + "src": "6340:7:1" + } + ], + "id": 649, + "name": "VariableDeclaration", + "src": "6340:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 654, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 650, + "name": "ElementaryTypeName", + "src": "6357:5:1" + } + ], + "id": 651, + "name": "VariableDeclaration", + "src": "6357:19:1" + } + ], + "id": 652, + "name": "ParameterList", + "src": "6313:64:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 653, + "name": "ParameterList", + "src": "6386:0:1" + } + ], + "id": 654, + "name": "FunctionDefinition", + "src": "6288:99:1" + } + ], + "id": 655, + "name": "ContractDefinition", + "src": "1975:4414:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 656, + "name": "PragmaDirective", + "src": "6457:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 657, + "name": "StructuredDocumentation", + "src": "6491:133:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 658, + "name": "UserDefinedTypeName", + "src": "6654:7:1" + } + ], + "id": 659, + "name": "InheritanceSpecifier", + "src": "6654:7:1" + }, + { + "attributes": { + "functionSelector": "06fdde03", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection name." + }, + "id": 660, + "name": "StructuredDocumentation", + "src": "6669:58:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 661, + "name": "ParameterList", + "src": "6745:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 665, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 662, + "name": "ElementaryTypeName", + "src": "6771:6:1" + } + ], + "id": 663, + "name": "VariableDeclaration", + "src": "6771:13:1" + } + ], + "id": 664, + "name": "ParameterList", + "src": "6770:15:1" + } + ], + "id": 665, + "name": "FunctionDefinition", + "src": "6732:54:1" + }, + { + "attributes": { + "functionSelector": "95d89b41", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection symbol." + }, + "id": 666, + "name": "StructuredDocumentation", + "src": "6792:60:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 667, + "name": "ParameterList", + "src": "6872:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 671, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 668, + "name": "ElementaryTypeName", + "src": "6898:6:1" + } + ], + "id": 669, + "name": "VariableDeclaration", + "src": "6898:13:1" + } + ], + "id": 670, + "name": "ParameterList", + "src": "6897:15:1" + } + ], + "id": 671, + "name": "FunctionDefinition", + "src": "6857:56:1" + }, + { + "attributes": { + "functionSelector": "c87b56dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "id": 672, + "name": "StructuredDocumentation", + "src": "6919:90:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 679, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 673, + "name": "ElementaryTypeName", + "src": "7032:7:1" + } + ], + "id": 674, + "name": "VariableDeclaration", + "src": "7032:15:1" + } + ], + "id": 675, + "name": "ParameterList", + "src": "7031:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 679, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 676, + "name": "ElementaryTypeName", + "src": "7072:6:1" + } + ], + "id": 677, + "name": "VariableDeclaration", + "src": "7072:13:1" + } + ], + "id": 678, + "name": "ParameterList", + "src": "7071:15:1" + } + ], + "id": 679, + "name": "FunctionDefinition", + "src": "7014:73:1" + } + ], + "id": 680, + "name": "ContractDefinition", + "src": "6625:464:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 681, + "name": "PragmaDirective", + "src": "7161:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 682, + "name": "StructuredDocumentation", + "src": "7195:136:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 683, + "name": "UserDefinedTypeName", + "src": "7363:7:1" + } + ], + "id": 684, + "name": "InheritanceSpecifier", + "src": "7363:7:1" + }, + { + "attributes": { + "functionSelector": "18160ddd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "id": 685, + "name": "StructuredDocumentation", + "src": "7378:82:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 686, + "name": "ParameterList", + "src": "7485:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 690, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 687, + "name": "ElementaryTypeName", + "src": "7511:7:1" + } + ], + "id": 688, + "name": "VariableDeclaration", + "src": "7511:7:1" + } + ], + "id": 689, + "name": "ParameterList", + "src": "7510:9:1" + } + ], + "id": 690, + "name": "FunctionDefinition", + "src": "7465:55:1" + }, + { + "attributes": { + "functionSelector": "2f745c59", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "id": 691, + "name": "StructuredDocumentation", + "src": "7526:171:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 692, + "name": "ElementaryTypeName", + "src": "7731:7:1" + } + ], + "id": 693, + "name": "VariableDeclaration", + "src": "7731:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 694, + "name": "ElementaryTypeName", + "src": "7746:7:1" + } + ], + "id": 695, + "name": "VariableDeclaration", + "src": "7746:13:1" + } + ], + "id": 696, + "name": "ParameterList", + "src": "7730:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 697, + "name": "ElementaryTypeName", + "src": "7784:7:1" + } + ], + "id": 698, + "name": "VariableDeclaration", + "src": "7784:15:1" + } + ], + "id": 699, + "name": "ParameterList", + "src": "7783:17:1" + } + ], + "id": 700, + "name": "FunctionDefinition", + "src": "7702:99:1" + }, + { + "attributes": { + "functionSelector": "4f6ccce7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "id": 701, + "name": "StructuredDocumentation", + "src": "7807:164:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 702, + "name": "ElementaryTypeName", + "src": "7998:7:1" + } + ], + "id": 703, + "name": "VariableDeclaration", + "src": "7998:13:1" + } + ], + "id": 704, + "name": "ParameterList", + "src": "7997:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 705, + "name": "ElementaryTypeName", + "src": "8036:7:1" + } + ], + "id": 706, + "name": "VariableDeclaration", + "src": "8036:7:1" + } + ], + "id": 707, + "name": "ParameterList", + "src": "8035:9:1" + } + ], + "id": 708, + "name": "FunctionDefinition", + "src": "7976:69:1" + } + ], + "id": 709, + "name": "ContractDefinition", + "src": "7332:715:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 710, + "name": "PragmaDirective", + "src": "8117:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "id": 711, + "name": "StructuredDocumentation", + "src": "8150:152:1" + }, + { + "attributes": { + "functionSelector": "150b7a02", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "onERC721Received", + "scope": 726, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "id": 712, + "name": "StructuredDocumentation", + "src": "8335:485:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 713, + "name": "ElementaryTypeName", + "src": "8851:7:1" + } + ], + "id": 714, + "name": "VariableDeclaration", + "src": "8851:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 715, + "name": "ElementaryTypeName", + "src": "8869:7:1" + } + ], + "id": 716, + "name": "VariableDeclaration", + "src": "8869:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 717, + "name": "ElementaryTypeName", + "src": "8883:7:1" + } + ], + "id": 718, + "name": "VariableDeclaration", + "src": "8883:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 725, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 719, + "name": "ElementaryTypeName", + "src": "8900:5:1" + } + ], + "id": 720, + "name": "VariableDeclaration", + "src": "8900:19:1" + } + ], + "id": 721, + "name": "ParameterList", + "src": "8850:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 722, + "name": "ElementaryTypeName", + "src": "8939:6:1" + } + ], + "id": 723, + "name": "VariableDeclaration", + "src": "8939:6:1" + } + ], + "id": 724, + "name": "ParameterList", + "src": "8938:8:1" + } + ], + "id": 725, + "name": "FunctionDefinition", + "src": "8825:122:1" + } + ], + "id": 726, + "name": "ContractDefinition", + "src": "8303:646:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 727, + "name": "PragmaDirective", + "src": "9009:31:1" + }, + { + "attributes": { + "abstract": true, + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "id": 728, + "name": "StructuredDocumentation", + "src": "9043:171:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 729, + "name": "UserDefinedTypeName", + "src": "9243:7:1" + } + ], + "id": 730, + "name": "InheritanceSpecifier", + "src": "9243:7:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 731, + "name": "ElementaryTypeName", + "src": "9340:6:1" + }, + { + "attributes": { + "hexvalue": "30783031666663396137", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 33540519", + "value": "0x01ffc9a7" + }, + "id": 732, + "name": "Literal", + "src": "9387:10:1" + } + ], + "id": 733, + "name": "VariableDeclaration", + "src": "9340:57:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_supportedInterfaces", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes4 => bool)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes4 => bool)" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 735, + "name": "ElementaryTypeName", + "src": "9499:6:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 736, + "name": "ElementaryTypeName", + "src": "9509:4:1" + } + ], + "id": 737, + "name": "Mapping", + "src": "9491:23:1" + }, + { + "attributes": { + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 734, + "name": "StructuredDocumentation", + "src": "9404:82:1" + } + ], + "id": 738, + "name": "VariableDeclaration", + "src": "9491:52:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 739, + "name": "ParameterList", + "src": "9562:2:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 740, + "name": "ParameterList", + "src": "9565:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 741, + "name": "Identifier", + "src": "9711:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 733, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC165" + }, + "id": 742, + "name": "Identifier", + "src": "9730:20:1" + } + ], + "id": 743, + "name": "FunctionCall", + "src": "9711:40:1" + } + ], + "id": 744, + "name": "ExpressionStatement", + "src": "9711:40:1" + } + ], + "id": 745, + "name": "Block", + "src": "9565:193:1" + } + ], + "id": 746, + "name": "FunctionDefinition", + "src": "9550:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 540 + ], + "functionSelector": "01ffc9a7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 781, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "id": 747, + "name": "StructuredDocumentation", + "src": "9764:139:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 751, + "name": "OverrideSpecifier", + "src": "9975:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 748, + "name": "ElementaryTypeName", + "src": "9935:6:1" + } + ], + "id": 749, + "name": "VariableDeclaration", + "src": "9935:18:1" + } + ], + "id": 750, + "name": "ParameterList", + "src": "9934:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 752, + "name": "ElementaryTypeName", + "src": "9993:4:1" + } + ], + "id": 753, + "name": "VariableDeclaration", + "src": "9993:4:1" + } + ], + "id": 754, + "name": "ParameterList", + "src": "9992:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 754 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 755, + "name": "Identifier", + "src": "10016:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 749, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 756, + "name": "Identifier", + "src": "10037:11:1" + } + ], + "id": 757, + "name": "IndexAccess", + "src": "10016:33:1" + } + ], + "id": 758, + "name": "Return", + "src": "10009:40:1" + } + ], + "id": 759, + "name": "Block", + "src": "9999:57:1" + } + ], + "id": 760, + "name": "FunctionDefinition", + "src": "9908:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_registerInterface", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 761, + "name": "StructuredDocumentation", + "src": "10062:383:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 780, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 762, + "name": "ElementaryTypeName", + "src": "10478:6:1" + } + ], + "id": 763, + "name": "VariableDeclaration", + "src": "10478:18:1" + } + ], + "id": 764, + "name": "ParameterList", + "src": "10477:20:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 765, + "name": "ParameterList", + "src": "10515:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 766, + "name": "Identifier", + "src": "10525:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 767, + "name": "Identifier", + "src": "10533:11:1" + }, + { + "attributes": { + "hexvalue": "30786666666666666666", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4294967295", + "value": "0xffffffff" + }, + "id": 768, + "name": "Literal", + "src": "10548:10:1" + } + ], + "id": 769, + "name": "BinaryOperation", + "src": "10533:25:1" + }, + { + "attributes": { + "hexvalue": "4552433136353a20696e76616c696420696e74657266616365206964", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC165: invalid interface id\"", + "value": "ERC165: invalid interface id" + }, + "id": 770, + "name": "Literal", + "src": "10560:30:1" + } + ], + "id": 771, + "name": "FunctionCall", + "src": "10525:66:1" + } + ], + "id": 772, + "name": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 773, + "name": "Identifier", + "src": "10601:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 774, + "name": "Identifier", + "src": "10622:11:1" + } + ], + "id": 775, + "name": "IndexAccess", + "src": "10601:33:1" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 776, + "name": "Literal", + "src": "10637:4:1" + } + ], + "id": 777, + "name": "Assignment", + "src": "10601:40:1" + } + ], + "id": 778, + "name": "ExpressionStatement", + "src": "10601:40:1" + } + ], + "id": 779, + "name": "Block", + "src": "10515:133:1" + } + ], + "id": 780, + "name": "FunctionDefinition", + "src": "10450:198:1" + } + ], + "id": 781, + "name": "ContractDefinition", + "src": "9215:1435:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 782, + "name": "PragmaDirective", + "src": "10703:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "id": 783, + "name": "StructuredDocumentation", + "src": "10736:563:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryAdd", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 784, + "name": "StructuredDocumentation", + "src": "11323:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 785, + "name": "ElementaryTypeName", + "src": "11475:7:1" + } + ], + "id": 786, + "name": "VariableDeclaration", + "src": "11475:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 787, + "name": "ElementaryTypeName", + "src": "11486:7:1" + } + ], + "id": 788, + "name": "VariableDeclaration", + "src": "11486:9:1" + } + ], + "id": 789, + "name": "ParameterList", + "src": "11474:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 790, + "name": "ElementaryTypeName", + "src": "11520:4:1" + } + ], + "id": 791, + "name": "VariableDeclaration", + "src": "11520:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 792, + "name": "ElementaryTypeName", + "src": "11526:7:1" + } + ], + "id": 793, + "name": "VariableDeclaration", + "src": "11526:7:1" + } + ], + "id": 794, + "name": "ParameterList", + "src": "11519:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 796 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 813, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 795, + "name": "ElementaryTypeName", + "src": "11545:7:1" + } + ], + "id": 796, + "name": "VariableDeclaration", + "src": "11545:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 797, + "name": "Identifier", + "src": "11557:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 788, + "type": "uint256", + "value": "b" + }, + "id": 798, + "name": "Identifier", + "src": "11561:1:1" + } + ], + "id": 799, + "name": "BinaryOperation", + "src": "11557:5:1" + } + ], + "id": 800, + "name": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 801, + "name": "Identifier", + "src": "11576:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 802, + "name": "Identifier", + "src": "11580:1:1" + } + ], + "id": 803, + "name": "BinaryOperation", + "src": "11576:5:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 804, + "name": "Literal", + "src": "11591:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 805, + "name": "Literal", + "src": "11598:1:1" + } + ], + "id": 806, + "name": "TupleExpression", + "src": "11590:10:1" + } + ], + "id": 807, + "name": "Return", + "src": "11583:17:1" + } + ], + "id": 808, + "name": "IfStatement", + "src": "11572:28:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 809, + "name": "Literal", + "src": "11618:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 810, + "name": "Identifier", + "src": "11624:1:1" + } + ], + "id": 811, + "name": "TupleExpression", + "src": "11617:9:1" + } + ], + "id": 812, + "name": "Return", + "src": "11610:16:1" + } + ], + "id": 813, + "name": "Block", + "src": "11535:98:1" + } + ], + "id": 814, + "name": "FunctionDefinition", + "src": "11459:174:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "trySub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 815, + "name": "StructuredDocumentation", + "src": "11639:135:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 816, + "name": "ElementaryTypeName", + "src": "11795:7:1" + } + ], + "id": 817, + "name": "VariableDeclaration", + "src": "11795:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 818, + "name": "ElementaryTypeName", + "src": "11806:7:1" + } + ], + "id": 819, + "name": "VariableDeclaration", + "src": "11806:9:1" + } + ], + "id": 820, + "name": "ParameterList", + "src": "11794:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 821, + "name": "ElementaryTypeName", + "src": "11840:4:1" + } + ], + "id": 822, + "name": "VariableDeclaration", + "src": "11840:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 823, + "name": "ElementaryTypeName", + "src": "11846:7:1" + } + ], + "id": 824, + "name": "VariableDeclaration", + "src": "11846:7:1" + } + ], + "id": 825, + "name": "ParameterList", + "src": "11839:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 826, + "name": "Identifier", + "src": "11869:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 827, + "name": "Identifier", + "src": "11873:1:1" + } + ], + "id": 828, + "name": "BinaryOperation", + "src": "11869:5:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 829, + "name": "Literal", + "src": "11884:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 830, + "name": "Literal", + "src": "11891:1:1" + } + ], + "id": 831, + "name": "TupleExpression", + "src": "11883:10:1" + } + ], + "id": 832, + "name": "Return", + "src": "11876:17:1" + } + ], + "id": 833, + "name": "IfStatement", + "src": "11865:28:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 834, + "name": "Literal", + "src": "11911:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 835, + "name": "Identifier", + "src": "11917:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 836, + "name": "Identifier", + "src": "11921:1:1" + } + ], + "id": 837, + "name": "BinaryOperation", + "src": "11917:5:1" + } + ], + "id": 838, + "name": "TupleExpression", + "src": "11910:13:1" + } + ], + "id": 839, + "name": "Return", + "src": "11903:20:1" + } + ], + "id": 840, + "name": "Block", + "src": "11855:75:1" + } + ], + "id": 841, + "name": "FunctionDefinition", + "src": "11779:151:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 842, + "name": "StructuredDocumentation", + "src": "11936:137:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 843, + "name": "ElementaryTypeName", + "src": "12094:7:1" + } + ], + "id": 844, + "name": "VariableDeclaration", + "src": "12094:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 845, + "name": "ElementaryTypeName", + "src": "12105:7:1" + } + ], + "id": 846, + "name": "VariableDeclaration", + "src": "12105:9:1" + } + ], + "id": 847, + "name": "ParameterList", + "src": "12093:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 848, + "name": "ElementaryTypeName", + "src": "12139:4:1" + } + ], + "id": 849, + "name": "VariableDeclaration", + "src": "12139:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 850, + "name": "ElementaryTypeName", + "src": "12145:7:1" + } + ], + "id": 851, + "name": "VariableDeclaration", + "src": "12145:7:1" + } + ], + "id": 852, + "name": "ParameterList", + "src": "12138:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 853, + "name": "Identifier", + "src": "12386:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 854, + "name": "Literal", + "src": "12391:1:1" + } + ], + "id": 855, + "name": "BinaryOperation", + "src": "12386:6:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 856, + "name": "Literal", + "src": "12402:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 857, + "name": "Literal", + "src": "12408:1:1" + } + ], + "id": 858, + "name": "TupleExpression", + "src": "12401:9:1" + } + ], + "id": 859, + "name": "Return", + "src": "12394:16:1" + } + ], + "id": 860, + "name": "IfStatement", + "src": "12382:28:1" + }, + { + "attributes": { + "assignments": [ + 862 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 881, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 861, + "name": "ElementaryTypeName", + "src": "12420:7:1" + } + ], + "id": 862, + "name": "VariableDeclaration", + "src": "12420:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 863, + "name": "Identifier", + "src": "12432:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 864, + "name": "Identifier", + "src": "12436:1:1" + } + ], + "id": 865, + "name": "BinaryOperation", + "src": "12432:5:1" + } + ], + "id": 866, + "name": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 867, + "name": "Identifier", + "src": "12451:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 868, + "name": "Identifier", + "src": "12455:1:1" + } + ], + "id": 869, + "name": "BinaryOperation", + "src": "12451:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 870, + "name": "Identifier", + "src": "12460:1:1" + } + ], + "id": 871, + "name": "BinaryOperation", + "src": "12451:10:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 872, + "name": "Literal", + "src": "12471:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 873, + "name": "Literal", + "src": "12478:1:1" + } + ], + "id": 874, + "name": "TupleExpression", + "src": "12470:10:1" + } + ], + "id": 875, + "name": "Return", + "src": "12463:17:1" + } + ], + "id": 876, + "name": "IfStatement", + "src": "12447:33:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 877, + "name": "Literal", + "src": "12498:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 878, + "name": "Identifier", + "src": "12504:1:1" + } + ], + "id": 879, + "name": "TupleExpression", + "src": "12497:9:1" + } + ], + "id": 880, + "name": "Return", + "src": "12490:16:1" + } + ], + "id": 881, + "name": "Block", + "src": "12154:359:1" + } + ], + "id": 882, + "name": "FunctionDefinition", + "src": "12078:435:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryDiv", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 883, + "name": "StructuredDocumentation", + "src": "12519:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 884, + "name": "ElementaryTypeName", + "src": "12678:7:1" + } + ], + "id": 885, + "name": "VariableDeclaration", + "src": "12678:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 886, + "name": "ElementaryTypeName", + "src": "12689:7:1" + } + ], + "id": 887, + "name": "VariableDeclaration", + "src": "12689:9:1" + } + ], + "id": 888, + "name": "ParameterList", + "src": "12677:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 889, + "name": "ElementaryTypeName", + "src": "12723:4:1" + } + ], + "id": 890, + "name": "VariableDeclaration", + "src": "12723:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 891, + "name": "ElementaryTypeName", + "src": "12729:7:1" + } + ], + "id": 892, + "name": "VariableDeclaration", + "src": "12729:7:1" + } + ], + "id": 893, + "name": "ParameterList", + "src": "12722:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 894, + "name": "Identifier", + "src": "12752:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 895, + "name": "Literal", + "src": "12757:1:1" + } + ], + "id": 896, + "name": "BinaryOperation", + "src": "12752:6:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 897, + "name": "Literal", + "src": "12768:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 898, + "name": "Literal", + "src": "12775:1:1" + } + ], + "id": 899, + "name": "TupleExpression", + "src": "12767:10:1" + } + ], + "id": 900, + "name": "Return", + "src": "12760:17:1" + } + ], + "id": 901, + "name": "IfStatement", + "src": "12748:29:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 902, + "name": "Literal", + "src": "12795:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 885, + "type": "uint256", + "value": "a" + }, + "id": 903, + "name": "Identifier", + "src": "12801:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 904, + "name": "Identifier", + "src": "12805:1:1" + } + ], + "id": 905, + "name": "BinaryOperation", + "src": "12801:5:1" + } + ], + "id": 906, + "name": "TupleExpression", + "src": "12794:13:1" + } + ], + "id": 907, + "name": "Return", + "src": "12787:20:1" + } + ], + "id": 908, + "name": "Block", + "src": "12738:76:1" + } + ], + "id": 909, + "name": "FunctionDefinition", + "src": "12662:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 910, + "name": "StructuredDocumentation", + "src": "12820:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 911, + "name": "ElementaryTypeName", + "src": "12989:7:1" + } + ], + "id": 912, + "name": "VariableDeclaration", + "src": "12989:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 913, + "name": "ElementaryTypeName", + "src": "13000:7:1" + } + ], + "id": 914, + "name": "VariableDeclaration", + "src": "13000:9:1" + } + ], + "id": 915, + "name": "ParameterList", + "src": "12988:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 916, + "name": "ElementaryTypeName", + "src": "13034:4:1" + } + ], + "id": 917, + "name": "VariableDeclaration", + "src": "13034:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 918, + "name": "ElementaryTypeName", + "src": "13040:7:1" + } + ], + "id": 919, + "name": "VariableDeclaration", + "src": "13040:7:1" + } + ], + "id": 920, + "name": "ParameterList", + "src": "13033:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 921, + "name": "Identifier", + "src": "13063:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 922, + "name": "Literal", + "src": "13068:1:1" + } + ], + "id": 923, + "name": "BinaryOperation", + "src": "13063:6:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 924, + "name": "Literal", + "src": "13079:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 925, + "name": "Literal", + "src": "13086:1:1" + } + ], + "id": 926, + "name": "TupleExpression", + "src": "13078:10:1" + } + ], + "id": 927, + "name": "Return", + "src": "13071:17:1" + } + ], + "id": 928, + "name": "IfStatement", + "src": "13059:29:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 929, + "name": "Literal", + "src": "13106:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 912, + "type": "uint256", + "value": "a" + }, + "id": 930, + "name": "Identifier", + "src": "13112:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 931, + "name": "Identifier", + "src": "13116:1:1" + } + ], + "id": 932, + "name": "BinaryOperation", + "src": "13112:5:1" + } + ], + "id": 933, + "name": "TupleExpression", + "src": "13105:13:1" + } + ], + "id": 934, + "name": "Return", + "src": "13098:20:1" + } + ], + "id": 935, + "name": "Block", + "src": "13049:76:1" + } + ], + "id": 936, + "name": "FunctionDefinition", + "src": "12973:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 937, + "name": "StructuredDocumentation", + "src": "13131:224:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 938, + "name": "ElementaryTypeName", + "src": "13373:7:1" + } + ], + "id": 939, + "name": "VariableDeclaration", + "src": "13373:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 940, + "name": "ElementaryTypeName", + "src": "13384:7:1" + } + ], + "id": 941, + "name": "VariableDeclaration", + "src": "13384:9:1" + } + ], + "id": 942, + "name": "ParameterList", + "src": "13372:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 943, + "name": "ElementaryTypeName", + "src": "13418:7:1" + } + ], + "id": 944, + "name": "VariableDeclaration", + "src": "13418:7:1" + } + ], + "id": 945, + "name": "ParameterList", + "src": "13417:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 947 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 961, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 946, + "name": "ElementaryTypeName", + "src": "13437:7:1" + } + ], + "id": 947, + "name": "VariableDeclaration", + "src": "13437:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 948, + "name": "Identifier", + "src": "13449:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 941, + "type": "uint256", + "value": "b" + }, + "id": 949, + "name": "Identifier", + "src": "13453:1:1" + } + ], + "id": 950, + "name": "BinaryOperation", + "src": "13449:5:1" + } + ], + "id": 951, + "name": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 952, + "name": "Identifier", + "src": "13464:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 953, + "name": "Identifier", + "src": "13472:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 954, + "name": "Identifier", + "src": "13477:1:1" + } + ], + "id": 955, + "name": "BinaryOperation", + "src": "13472:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: addition overflow\"", + "value": "SafeMath: addition overflow" + }, + "id": 956, + "name": "Literal", + "src": "13480:29:1" + } + ], + "id": 957, + "name": "FunctionCall", + "src": "13464:46:1" + } + ], + "id": 958, + "name": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "attributes": { + "functionReturnParameters": 945 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 959, + "name": "Identifier", + "src": "13527:1:1" + } + ], + "id": 960, + "name": "Return", + "src": "13520:8:1" + } + ], + "id": 961, + "name": "Block", + "src": "13427:108:1" + } + ], + "id": 962, + "name": "FunctionDefinition", + "src": "13360:175:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 963, + "name": "StructuredDocumentation", + "src": "13541:260:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 964, + "name": "ElementaryTypeName", + "src": "13819:7:1" + } + ], + "id": 965, + "name": "VariableDeclaration", + "src": "13819:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 966, + "name": "ElementaryTypeName", + "src": "13830:7:1" + } + ], + "id": 967, + "name": "VariableDeclaration", + "src": "13830:9:1" + } + ], + "id": 968, + "name": "ParameterList", + "src": "13818:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 969, + "name": "ElementaryTypeName", + "src": "13864:7:1" + } + ], + "id": 970, + "name": "VariableDeclaration", + "src": "13864:7:1" + } + ], + "id": 971, + "name": "ParameterList", + "src": "13863:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 972, + "name": "Identifier", + "src": "13883:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 973, + "name": "Identifier", + "src": "13891:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 974, + "name": "Identifier", + "src": "13896:1:1" + } + ], + "id": 975, + "name": "BinaryOperation", + "src": "13891:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: subtraction overflow\"", + "value": "SafeMath: subtraction overflow" + }, + "id": 976, + "name": "Literal", + "src": "13899:32:1" + } + ], + "id": 977, + "name": "FunctionCall", + "src": "13883:49:1" + } + ], + "id": 978, + "name": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "attributes": { + "functionReturnParameters": 971 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 979, + "name": "Identifier", + "src": "13949:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 980, + "name": "Identifier", + "src": "13953:1:1" + } + ], + "id": 981, + "name": "BinaryOperation", + "src": "13949:5:1" + } + ], + "id": 982, + "name": "Return", + "src": "13942:12:1" + } + ], + "id": 983, + "name": "Block", + "src": "13873:88:1" + } + ], + "id": 984, + "name": "FunctionDefinition", + "src": "13806:155:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 985, + "name": "StructuredDocumentation", + "src": "13967:236:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 986, + "name": "ElementaryTypeName", + "src": "14221:7:1" + } + ], + "id": 987, + "name": "VariableDeclaration", + "src": "14221:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 988, + "name": "ElementaryTypeName", + "src": "14232:7:1" + } + ], + "id": 989, + "name": "VariableDeclaration", + "src": "14232:9:1" + } + ], + "id": 990, + "name": "ParameterList", + "src": "14220:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 991, + "name": "ElementaryTypeName", + "src": "14266:7:1" + } + ], + "id": 992, + "name": "VariableDeclaration", + "src": "14266:7:1" + } + ], + "id": 993, + "name": "ParameterList", + "src": "14265:9:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 994, + "name": "Identifier", + "src": "14289:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 995, + "name": "Literal", + "src": "14294:1:1" + } + ], + "id": 996, + "name": "BinaryOperation", + "src": "14289:6:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 997, + "name": "Literal", + "src": "14304:1:1" + } + ], + "id": 998, + "name": "Return", + "src": "14297:8:1" + } + ], + "id": 999, + "name": "IfStatement", + "src": "14285:20:1" + }, + { + "attributes": { + "assignments": [ + 1001 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 1017, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1000, + "name": "ElementaryTypeName", + "src": "14315:7:1" + } + ], + "id": 1001, + "name": "VariableDeclaration", + "src": "14315:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1002, + "name": "Identifier", + "src": "14327:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1003, + "name": "Identifier", + "src": "14331:1:1" + } + ], + "id": 1004, + "name": "BinaryOperation", + "src": "14327:5:1" + } + ], + "id": 1005, + "name": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1006, + "name": "Identifier", + "src": "14342:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1007, + "name": "Identifier", + "src": "14350:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1008, + "name": "Identifier", + "src": "14354:1:1" + } + ], + "id": 1009, + "name": "BinaryOperation", + "src": "14350:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1010, + "name": "Identifier", + "src": "14359:1:1" + } + ], + "id": 1011, + "name": "BinaryOperation", + "src": "14350:10:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: multiplication overflow\"", + "value": "SafeMath: multiplication overflow" + }, + "id": 1012, + "name": "Literal", + "src": "14362:35:1" + } + ], + "id": 1013, + "name": "FunctionCall", + "src": "14342:56:1" + } + ], + "id": 1014, + "name": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1015, + "name": "Identifier", + "src": "14415:1:1" + } + ], + "id": 1016, + "name": "Return", + "src": "14408:8:1" + } + ], + "id": 1017, + "name": "Block", + "src": "14275:148:1" + } + ], + "id": 1018, + "name": "FunctionDefinition", + "src": "14208:215:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1019, + "name": "StructuredDocumentation", + "src": "14429:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1020, + "name": "ElementaryTypeName", + "src": "14900:7:1" + } + ], + "id": 1021, + "name": "VariableDeclaration", + "src": "14900:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1022, + "name": "ElementaryTypeName", + "src": "14911:7:1" + } + ], + "id": 1023, + "name": "VariableDeclaration", + "src": "14911:9:1" + } + ], + "id": 1024, + "name": "ParameterList", + "src": "14899:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1025, + "name": "ElementaryTypeName", + "src": "14945:7:1" + } + ], + "id": 1026, + "name": "VariableDeclaration", + "src": "14945:7:1" + } + ], + "id": 1027, + "name": "ParameterList", + "src": "14944:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1028, + "name": "Identifier", + "src": "14964:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1029, + "name": "Identifier", + "src": "14972:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1030, + "name": "Literal", + "src": "14976:1:1" + } + ], + "id": 1031, + "name": "BinaryOperation", + "src": "14972:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206469766973696f6e206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: division by zero\"", + "value": "SafeMath: division by zero" + }, + "id": 1032, + "name": "Literal", + "src": "14979:28:1" + } + ], + "id": 1033, + "name": "FunctionCall", + "src": "14964:44:1" + } + ], + "id": 1034, + "name": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "attributes": { + "functionReturnParameters": 1027 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1021, + "type": "uint256", + "value": "a" + }, + "id": 1035, + "name": "Identifier", + "src": "15025:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1036, + "name": "Identifier", + "src": "15029:1:1" + } + ], + "id": 1037, + "name": "BinaryOperation", + "src": "15025:5:1" + } + ], + "id": 1038, + "name": "Return", + "src": "15018:12:1" + } + ], + "id": 1039, + "name": "Block", + "src": "14954:83:1" + } + ], + "id": 1040, + "name": "FunctionDefinition", + "src": "14887:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1041, + "name": "StructuredDocumentation", + "src": "15043:442:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1042, + "name": "ElementaryTypeName", + "src": "15503:7:1" + } + ], + "id": 1043, + "name": "VariableDeclaration", + "src": "15503:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1044, + "name": "ElementaryTypeName", + "src": "15514:7:1" + } + ], + "id": 1045, + "name": "VariableDeclaration", + "src": "15514:9:1" + } + ], + "id": 1046, + "name": "ParameterList", + "src": "15502:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1047, + "name": "ElementaryTypeName", + "src": "15548:7:1" + } + ], + "id": 1048, + "name": "VariableDeclaration", + "src": "15548:7:1" + } + ], + "id": 1049, + "name": "ParameterList", + "src": "15547:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1050, + "name": "Identifier", + "src": "15567:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1051, + "name": "Identifier", + "src": "15575:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1052, + "name": "Literal", + "src": "15579:1:1" + } + ], + "id": 1053, + "name": "BinaryOperation", + "src": "15575:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: modulo by zero\"", + "value": "SafeMath: modulo by zero" + }, + "id": 1054, + "name": "Literal", + "src": "15582:26:1" + } + ], + "id": 1055, + "name": "FunctionCall", + "src": "15567:42:1" + } + ], + "id": 1056, + "name": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "attributes": { + "functionReturnParameters": 1049 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1043, + "type": "uint256", + "value": "a" + }, + "id": 1057, + "name": "Identifier", + "src": "15626:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1058, + "name": "Identifier", + "src": "15630:1:1" + } + ], + "id": 1059, + "name": "BinaryOperation", + "src": "15626:5:1" + } + ], + "id": 1060, + "name": "Return", + "src": "15619:12:1" + } + ], + "id": 1061, + "name": "Block", + "src": "15557:81:1" + } + ], + "id": 1062, + "name": "FunctionDefinition", + "src": "15490:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1063, + "name": "StructuredDocumentation", + "src": "15644:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1064, + "name": "ElementaryTypeName", + "src": "16115:7:1" + } + ], + "id": 1065, + "name": "VariableDeclaration", + "src": "16115:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1066, + "name": "ElementaryTypeName", + "src": "16126:7:1" + } + ], + "id": 1067, + "name": "VariableDeclaration", + "src": "16126:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1086, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1068, + "name": "ElementaryTypeName", + "src": "16137:6:1" + } + ], + "id": 1069, + "name": "VariableDeclaration", + "src": "16137:26:1" + } + ], + "id": 1070, + "name": "ParameterList", + "src": "16114:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1071, + "name": "ElementaryTypeName", + "src": "16188:7:1" + } + ], + "id": 1072, + "name": "VariableDeclaration", + "src": "16188:7:1" + } + ], + "id": 1073, + "name": "ParameterList", + "src": "16187:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1074, + "name": "Identifier", + "src": "16207:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1075, + "name": "Identifier", + "src": "16215:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1076, + "name": "Identifier", + "src": "16220:1:1" + } + ], + "id": 1077, + "name": "BinaryOperation", + "src": "16215:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1069, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1078, + "name": "Identifier", + "src": "16223:12:1" + } + ], + "id": 1079, + "name": "FunctionCall", + "src": "16207:29:1" + } + ], + "id": 1080, + "name": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "attributes": { + "functionReturnParameters": 1073 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1081, + "name": "Identifier", + "src": "16253:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1082, + "name": "Identifier", + "src": "16257:1:1" + } + ], + "id": 1083, + "name": "BinaryOperation", + "src": "16253:5:1" + } + ], + "id": 1084, + "name": "Return", + "src": "16246:12:1" + } + ], + "id": 1085, + "name": "Block", + "src": "16197:68:1" + } + ], + "id": 1086, + "name": "FunctionDefinition", + "src": "16102:163:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1087, + "name": "StructuredDocumentation", + "src": "16271:646:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1088, + "name": "ElementaryTypeName", + "src": "16935:7:1" + } + ], + "id": 1089, + "name": "VariableDeclaration", + "src": "16935:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1090, + "name": "ElementaryTypeName", + "src": "16946:7:1" + } + ], + "id": 1091, + "name": "VariableDeclaration", + "src": "16946:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1110, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1092, + "name": "ElementaryTypeName", + "src": "16957:6:1" + } + ], + "id": 1093, + "name": "VariableDeclaration", + "src": "16957:26:1" + } + ], + "id": 1094, + "name": "ParameterList", + "src": "16934:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1095, + "name": "ElementaryTypeName", + "src": "17008:7:1" + } + ], + "id": 1096, + "name": "VariableDeclaration", + "src": "17008:7:1" + } + ], + "id": 1097, + "name": "ParameterList", + "src": "17007:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1098, + "name": "Identifier", + "src": "17027:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1099, + "name": "Identifier", + "src": "17035:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1100, + "name": "Literal", + "src": "17039:1:1" + } + ], + "id": 1101, + "name": "BinaryOperation", + "src": "17035:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1093, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1102, + "name": "Identifier", + "src": "17042:12:1" + } + ], + "id": 1103, + "name": "FunctionCall", + "src": "17027:28:1" + } + ], + "id": 1104, + "name": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1097 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1089, + "type": "uint256", + "value": "a" + }, + "id": 1105, + "name": "Identifier", + "src": "17072:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1106, + "name": "Identifier", + "src": "17076:1:1" + } + ], + "id": 1107, + "name": "BinaryOperation", + "src": "17072:5:1" + } + ], + "id": 1108, + "name": "Return", + "src": "17065:12:1" + } + ], + "id": 1109, + "name": "Block", + "src": "17017:67:1" + } + ], + "id": 1110, + "name": "FunctionDefinition", + "src": "16922:162:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1111, + "name": "StructuredDocumentation", + "src": "17090:635:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1112, + "name": "ElementaryTypeName", + "src": "17743:7:1" + } + ], + "id": 1113, + "name": "VariableDeclaration", + "src": "17743:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1114, + "name": "ElementaryTypeName", + "src": "17754:7:1" + } + ], + "id": 1115, + "name": "VariableDeclaration", + "src": "17754:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1134, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1116, + "name": "ElementaryTypeName", + "src": "17765:6:1" + } + ], + "id": 1117, + "name": "VariableDeclaration", + "src": "17765:26:1" + } + ], + "id": 1118, + "name": "ParameterList", + "src": "17742:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1119, + "name": "ElementaryTypeName", + "src": "17816:7:1" + } + ], + "id": 1120, + "name": "VariableDeclaration", + "src": "17816:7:1" + } + ], + "id": 1121, + "name": "ParameterList", + "src": "17815:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1122, + "name": "Identifier", + "src": "17835:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1123, + "name": "Identifier", + "src": "17843:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1124, + "name": "Literal", + "src": "17847:1:1" + } + ], + "id": 1125, + "name": "BinaryOperation", + "src": "17843:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1117, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1126, + "name": "Identifier", + "src": "17850:12:1" + } + ], + "id": 1127, + "name": "FunctionCall", + "src": "17835:28:1" + } + ], + "id": 1128, + "name": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1121 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "uint256", + "value": "a" + }, + "id": 1129, + "name": "Identifier", + "src": "17880:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1130, + "name": "Identifier", + "src": "17884:1:1" + } + ], + "id": 1131, + "name": "BinaryOperation", + "src": "17880:5:1" + } + ], + "id": 1132, + "name": "Return", + "src": "17873:12:1" + } + ], + "id": 1133, + "name": "Block", + "src": "17825:67:1" + } + ], + "id": 1134, + "name": "FunctionDefinition", + "src": "17730:162:1" + } + ], + "id": 1135, + "name": "ContractDefinition", + "src": "11300:6594:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 1136, + "name": "PragmaDirective", + "src": "17947:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Collection of functions related to the address type" + }, + "id": 1137, + "name": "StructuredDocumentation", + "src": "17980:67:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isContract", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1138, + "name": "StructuredDocumentation", + "src": "18070:565:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "account", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1139, + "name": "ElementaryTypeName", + "src": "18660:7:1" + } + ], + "id": 1140, + "name": "VariableDeclaration", + "src": "18660:15:1" + } + ], + "id": 1141, + "name": "ParameterList", + "src": "18659:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1142, + "name": "ElementaryTypeName", + "src": "18700:4:1" + } + ], + "id": 1143, + "name": "VariableDeclaration", + "src": "18700:4:1" + } + ], + "id": 1144, + "name": "ParameterList", + "src": "18699:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1146 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "size", + "scope": 1153, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1145, + "name": "ElementaryTypeName", + "src": "18903:7:1" + } + ], + "id": 1146, + "name": "VariableDeclaration", + "src": "18903:12:1" + } + ], + "id": 1147, + "name": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "operations": "{ size := extcodesize(account) }" + }, + "children": [], + "id": 1148, + "name": "InlineAssembly", + "src": "18981:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1144 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1146, + "type": "uint256", + "value": "size" + }, + "id": 1149, + "name": "Identifier", + "src": "19038:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1150, + "name": "Literal", + "src": "19045:1:1" + } + ], + "id": 1151, + "name": "BinaryOperation", + "src": "19038:8:1" + } + ], + "id": 1152, + "name": "Return", + "src": "19031:15:1" + } + ], + "id": 1153, + "name": "Block", + "src": "18706:347:1" + } + ], + "id": 1154, + "name": "FunctionDefinition", + "src": "18640:413:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sendValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1155, + "name": "StructuredDocumentation", + "src": "19059:906:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "recipient", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 1156, + "name": "ElementaryTypeName", + "src": "19989:15:1" + } + ], + "id": 1157, + "name": "VariableDeclaration", + "src": "19989:25:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "amount", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1158, + "name": "ElementaryTypeName", + "src": "20016:7:1" + } + ], + "id": 1159, + "name": "VariableDeclaration", + "src": "20016:14:1" + } + ], + "id": 1160, + "name": "ParameterList", + "src": "19988:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1161, + "name": "ParameterList", + "src": "20041:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1162, + "name": "Identifier", + "src": "20051:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1163, + "name": "ElementaryTypeName", + "src": "20059:7:1" + } + ], + "id": 1164, + "name": "ElementaryTypeNameExpression", + "src": "20059:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1165, + "name": "Identifier", + "src": "20067:4:1" + } + ], + "id": 1166, + "name": "FunctionCall", + "src": "20059:13:1" + } + ], + "id": 1167, + "name": "MemberAccess", + "src": "20059:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1168, + "name": "Identifier", + "src": "20084:6:1" + } + ], + "id": 1169, + "name": "BinaryOperation", + "src": "20059:31:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance\"", + "value": "Address: insufficient balance" + }, + "id": 1170, + "name": "Literal", + "src": "20092:31:1" + } + ], + "id": 1171, + "name": "FunctionCall", + "src": "20051:73:1" + } + ], + "id": 1172, + "name": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "attributes": { + "assignments": [ + 1174, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1187, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1173, + "name": "ElementaryTypeName", + "src": "20213:4:1" + } + ], + "id": 1174, + "name": "VariableDeclaration", + "src": "20213:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1157, + "type": "address payable", + "value": "recipient" + }, + "id": 1175, + "name": "Identifier", + "src": "20231:9:1" + } + ], + "id": 1176, + "name": "MemberAccess", + "src": "20231:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1177, + "name": "Identifier", + "src": "20254:6:1" + } + ], + "id": 1178, + "name": "FunctionCallOptions", + "src": "20231:31:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 1179, + "name": "Literal", + "src": "20263:2:1" + } + ], + "id": 1180, + "name": "FunctionCall", + "src": "20231:35:1" + } + ], + "id": 1181, + "name": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1182, + "name": "Identifier", + "src": "20276:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1174, + "type": "bool", + "value": "success" + }, + "id": 1183, + "name": "Identifier", + "src": "20284:7:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: unable to send value, recipient may have reverted\"", + "value": "Address: unable to send value, recipient may have reverted" + }, + "id": 1184, + "name": "Literal", + "src": "20293:60:1" + } + ], + "id": 1185, + "name": "FunctionCall", + "src": "20276:78:1" + } + ], + "id": 1186, + "name": "ExpressionStatement", + "src": "20276:78:1" + } + ], + "id": 1187, + "name": "Block", + "src": "20041:320:1" + } + ], + "id": 1188, + "name": "FunctionDefinition", + "src": "19970:391:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1189, + "name": "StructuredDocumentation", + "src": "20367:730:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1205, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1190, + "name": "ElementaryTypeName", + "src": "21124:7:1" + } + ], + "id": 1191, + "name": "VariableDeclaration", + "src": "21124:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1192, + "name": "ElementaryTypeName", + "src": "21140:5:1" + } + ], + "id": 1193, + "name": "VariableDeclaration", + "src": "21140:17:1" + } + ], + "id": 1194, + "name": "ParameterList", + "src": "21123:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1195, + "name": "ElementaryTypeName", + "src": "21177:5:1" + } + ], + "id": 1196, + "name": "VariableDeclaration", + "src": "21177:12:1" + } + ], + "id": 1197, + "name": "ParameterList", + "src": "21176:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1197 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionCall" + }, + "id": 1198, + "name": "Identifier", + "src": "21206:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1191, + "type": "address", + "value": "target" + }, + "id": 1199, + "name": "Identifier", + "src": "21219:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1193, + "type": "bytes memory", + "value": "data" + }, + "id": 1200, + "name": "Identifier", + "src": "21227:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call failed\"", + "value": "Address: low-level call failed" + }, + "id": 1201, + "name": "Literal", + "src": "21233:32:1" + } + ], + "id": 1202, + "name": "FunctionCall", + "src": "21206:60:1" + } + ], + "id": 1203, + "name": "Return", + "src": "21199:67:1" + } + ], + "id": 1204, + "name": "Block", + "src": "21191:82:1" + } + ], + "id": 1205, + "name": "FunctionDefinition", + "src": "21102:171:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1206, + "name": "StructuredDocumentation", + "src": "21279:211:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1225, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1207, + "name": "ElementaryTypeName", + "src": "21517:7:1" + } + ], + "id": 1208, + "name": "VariableDeclaration", + "src": "21517:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1209, + "name": "ElementaryTypeName", + "src": "21533:5:1" + } + ], + "id": 1210, + "name": "VariableDeclaration", + "src": "21533:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1211, + "name": "ElementaryTypeName", + "src": "21552:6:1" + } + ], + "id": 1212, + "name": "VariableDeclaration", + "src": "21552:26:1" + } + ], + "id": 1213, + "name": "ParameterList", + "src": "21516:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1214, + "name": "ElementaryTypeName", + "src": "21598:5:1" + } + ], + "id": 1215, + "name": "VariableDeclaration", + "src": "21598:12:1" + } + ], + "id": 1216, + "name": "ParameterList", + "src": "21597:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1216 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1217, + "name": "Identifier", + "src": "21629:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1208, + "type": "address", + "value": "target" + }, + "id": 1218, + "name": "Identifier", + "src": "21651:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1210, + "type": "bytes memory", + "value": "data" + }, + "id": 1219, + "name": "Identifier", + "src": "21659:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1220, + "name": "Literal", + "src": "21665:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1212, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1221, + "name": "Identifier", + "src": "21668:12:1" + } + ], + "id": 1222, + "name": "FunctionCall", + "src": "21629:52:1" + } + ], + "id": 1223, + "name": "Return", + "src": "21622:59:1" + } + ], + "id": 1224, + "name": "Block", + "src": "21612:76:1" + } + ], + "id": 1225, + "name": "FunctionDefinition", + "src": "21495:193:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1226, + "name": "StructuredDocumentation", + "src": "21694:351:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1227, + "name": "ElementaryTypeName", + "src": "22081:7:1" + } + ], + "id": 1228, + "name": "VariableDeclaration", + "src": "22081:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1229, + "name": "ElementaryTypeName", + "src": "22097:5:1" + } + ], + "id": 1230, + "name": "VariableDeclaration", + "src": "22097:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1231, + "name": "ElementaryTypeName", + "src": "22116:7:1" + } + ], + "id": 1232, + "name": "VariableDeclaration", + "src": "22116:13:1" + } + ], + "id": 1233, + "name": "ParameterList", + "src": "22080:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1234, + "name": "ElementaryTypeName", + "src": "22149:5:1" + } + ], + "id": 1235, + "name": "VariableDeclaration", + "src": "22149:12:1" + } + ], + "id": 1236, + "name": "ParameterList", + "src": "22148:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1236 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1237, + "name": "Identifier", + "src": "22180:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1228, + "type": "address", + "value": "target" + }, + "id": 1238, + "name": "Identifier", + "src": "22202:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1230, + "type": "bytes memory", + "value": "data" + }, + "id": 1239, + "name": "Identifier", + "src": "22210:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1232, + "type": "uint256", + "value": "value" + }, + "id": 1240, + "name": "Identifier", + "src": "22216:5:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call with value failed\"", + "value": "Address: low-level call with value failed" + }, + "id": 1241, + "name": "Literal", + "src": "22223:43:1" + } + ], + "id": 1242, + "name": "FunctionCall", + "src": "22180:87:1" + } + ], + "id": 1243, + "name": "Return", + "src": "22173:94:1" + } + ], + "id": 1244, + "name": "Block", + "src": "22163:111:1" + } + ], + "id": 1245, + "name": "FunctionDefinition", + "src": "22050:224:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1246, + "name": "StructuredDocumentation", + "src": "22280:237:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1247, + "name": "ElementaryTypeName", + "src": "22553:7:1" + } + ], + "id": 1248, + "name": "VariableDeclaration", + "src": "22553:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1249, + "name": "ElementaryTypeName", + "src": "22569:5:1" + } + ], + "id": 1250, + "name": "VariableDeclaration", + "src": "22569:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1251, + "name": "ElementaryTypeName", + "src": "22588:7:1" + } + ], + "id": 1252, + "name": "VariableDeclaration", + "src": "22588:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1253, + "name": "ElementaryTypeName", + "src": "22603:6:1" + } + ], + "id": 1254, + "name": "VariableDeclaration", + "src": "22603:26:1" + } + ], + "id": 1255, + "name": "ParameterList", + "src": "22552:78:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1256, + "name": "ElementaryTypeName", + "src": "22649:5:1" + } + ], + "id": 1257, + "name": "VariableDeclaration", + "src": "22649:12:1" + } + ], + "id": 1258, + "name": "ParameterList", + "src": "22648:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1259, + "name": "Identifier", + "src": "22673:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1260, + "name": "ElementaryTypeName", + "src": "22681:7:1" + } + ], + "id": 1261, + "name": "ElementaryTypeNameExpression", + "src": "22681:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1262, + "name": "Identifier", + "src": "22689:4:1" + } + ], + "id": 1263, + "name": "FunctionCall", + "src": "22681:13:1" + } + ], + "id": 1264, + "name": "MemberAccess", + "src": "22681:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1265, + "name": "Identifier", + "src": "22706:5:1" + } + ], + "id": 1266, + "name": "BinaryOperation", + "src": "22681:30:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance for call\"", + "value": "Address: insufficient balance for call" + }, + "id": 1267, + "name": "Literal", + "src": "22713:40:1" + } + ], + "id": 1268, + "name": "FunctionCall", + "src": "22673:81:1" + } + ], + "id": 1269, + "name": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1270, + "name": "Identifier", + "src": "22764:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1271, + "name": "Identifier", + "src": "22772:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1272, + "name": "Identifier", + "src": "22783:6:1" + } + ], + "id": 1273, + "name": "FunctionCall", + "src": "22772:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: call to non-contract\"", + "value": "Address: call to non-contract" + }, + "id": 1274, + "name": "Literal", + "src": "22792:31:1" + } + ], + "id": 1275, + "name": "FunctionCall", + "src": "22764:60:1" + } + ], + "id": 1276, + "name": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "attributes": { + "assignments": [ + 1278, + 1280 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1294, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1277, + "name": "ElementaryTypeName", + "src": "22895:4:1" + } + ], + "id": 1278, + "name": "VariableDeclaration", + "src": "22895:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1279, + "name": "ElementaryTypeName", + "src": "22909:5:1" + } + ], + "id": 1280, + "name": "VariableDeclaration", + "src": "22909:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1281, + "name": "Identifier", + "src": "22936:6:1" + } + ], + "id": 1282, + "name": "MemberAccess", + "src": "22936:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1283, + "name": "Identifier", + "src": "22956:5:1" + } + ], + "id": 1284, + "name": "FunctionCallOptions", + "src": "22936:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1250, + "type": "bytes memory", + "value": "data" + }, + "id": 1285, + "name": "Identifier", + "src": "22964:4:1" + } + ], + "id": 1286, + "name": "FunctionCall", + "src": "22936:33:1" + } + ], + "id": 1287, + "name": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "attributes": { + "functionReturnParameters": 1258 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1288, + "name": "Identifier", + "src": "22986:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1278, + "type": "bool", + "value": "success" + }, + "id": 1289, + "name": "Identifier", + "src": "23004:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1280, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1290, + "name": "Identifier", + "src": "23013:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1254, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1291, + "name": "Identifier", + "src": "23025:12:1" + } + ], + "id": 1292, + "name": "FunctionCall", + "src": "22986:52:1" + } + ], + "id": 1293, + "name": "Return", + "src": "22979:59:1" + } + ], + "id": 1294, + "name": "Block", + "src": "22663:382:1" + } + ], + "id": 1295, + "name": "FunctionDefinition", + "src": "22522:523:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1296, + "name": "StructuredDocumentation", + "src": "23051:166:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1312, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1297, + "name": "ElementaryTypeName", + "src": "23250:7:1" + } + ], + "id": 1298, + "name": "VariableDeclaration", + "src": "23250:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1299, + "name": "ElementaryTypeName", + "src": "23266:5:1" + } + ], + "id": 1300, + "name": "VariableDeclaration", + "src": "23266:17:1" + } + ], + "id": 1301, + "name": "ParameterList", + "src": "23249:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1302, + "name": "ElementaryTypeName", + "src": "23308:5:1" + } + ], + "id": 1303, + "name": "VariableDeclaration", + "src": "23308:12:1" + } + ], + "id": 1304, + "name": "ParameterList", + "src": "23307:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1304 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "type": "function (address,bytes memory,string memory) view returns (bytes memory)", + "value": "functionStaticCall" + }, + "id": 1305, + "name": "Identifier", + "src": "23339:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1298, + "type": "address", + "value": "target" + }, + "id": 1306, + "name": "Identifier", + "src": "23358:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1300, + "type": "bytes memory", + "value": "data" + }, + "id": 1307, + "name": "Identifier", + "src": "23366:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level static call failed\"", + "value": "Address: low-level static call failed" + }, + "id": 1308, + "name": "Literal", + "src": "23372:39:1" + } + ], + "id": 1309, + "name": "FunctionCall", + "src": "23339:73:1" + } + ], + "id": 1310, + "name": "Return", + "src": "23332:80:1" + } + ], + "id": 1311, + "name": "Block", + "src": "23322:97:1" + } + ], + "id": 1312, + "name": "FunctionDefinition", + "src": "23222:197:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1313, + "name": "StructuredDocumentation", + "src": "23425:173:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1347, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1314, + "name": "ElementaryTypeName", + "src": "23631:7:1" + } + ], + "id": 1315, + "name": "VariableDeclaration", + "src": "23631:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1316, + "name": "ElementaryTypeName", + "src": "23647:5:1" + } + ], + "id": 1317, + "name": "VariableDeclaration", + "src": "23647:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1318, + "name": "ElementaryTypeName", + "src": "23666:6:1" + } + ], + "id": 1319, + "name": "VariableDeclaration", + "src": "23666:26:1" + } + ], + "id": 1320, + "name": "ParameterList", + "src": "23630:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1321, + "name": "ElementaryTypeName", + "src": "23717:5:1" + } + ], + "id": 1322, + "name": "VariableDeclaration", + "src": "23717:12:1" + } + ], + "id": 1323, + "name": "ParameterList", + "src": "23716:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1324, + "name": "Identifier", + "src": "23741:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1325, + "name": "Identifier", + "src": "23749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1326, + "name": "Identifier", + "src": "23760:6:1" + } + ], + "id": 1327, + "name": "FunctionCall", + "src": "23749:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: static call to non-contract\"", + "value": "Address: static call to non-contract" + }, + "id": 1328, + "name": "Literal", + "src": "23769:38:1" + } + ], + "id": 1329, + "name": "FunctionCall", + "src": "23741:67:1" + } + ], + "id": 1330, + "name": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "attributes": { + "assignments": [ + 1332, + 1334 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1346, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1331, + "name": "ElementaryTypeName", + "src": "23879:4:1" + } + ], + "id": 1332, + "name": "VariableDeclaration", + "src": "23879:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1346, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1333, + "name": "ElementaryTypeName", + "src": "23893:5:1" + } + ], + "id": 1334, + "name": "VariableDeclaration", + "src": "23893:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "staticcall", + "type": "function (bytes memory) view returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1335, + "name": "Identifier", + "src": "23920:6:1" + } + ], + "id": 1336, + "name": "MemberAccess", + "src": "23920:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1317, + "type": "bytes memory", + "value": "data" + }, + "id": 1337, + "name": "Identifier", + "src": "23938:4:1" + } + ], + "id": 1338, + "name": "FunctionCall", + "src": "23920:23:1" + } + ], + "id": 1339, + "name": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "attributes": { + "functionReturnParameters": 1323 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1340, + "name": "Identifier", + "src": "23960:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1332, + "type": "bool", + "value": "success" + }, + "id": 1341, + "name": "Identifier", + "src": "23978:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1334, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1342, + "name": "Identifier", + "src": "23987:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1319, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1343, + "name": "Identifier", + "src": "23999:12:1" + } + ], + "id": 1344, + "name": "FunctionCall", + "src": "23960:52:1" + } + ], + "id": 1345, + "name": "Return", + "src": "23953:59:1" + } + ], + "id": 1346, + "name": "Block", + "src": "23731:288:1" + } + ], + "id": 1347, + "name": "FunctionDefinition", + "src": "23603:416:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1348, + "name": "StructuredDocumentation", + "src": "24025:168:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1364, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1349, + "name": "ElementaryTypeName", + "src": "24228:7:1" + } + ], + "id": 1350, + "name": "VariableDeclaration", + "src": "24228:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1351, + "name": "ElementaryTypeName", + "src": "24244:5:1" + } + ], + "id": 1352, + "name": "VariableDeclaration", + "src": "24244:17:1" + } + ], + "id": 1353, + "name": "ParameterList", + "src": "24227:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1354, + "name": "ElementaryTypeName", + "src": "24281:5:1" + } + ], + "id": 1355, + "name": "VariableDeclaration", + "src": "24281:12:1" + } + ], + "id": 1356, + "name": "ParameterList", + "src": "24280:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1356 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionDelegateCall" + }, + "id": 1357, + "name": "Identifier", + "src": "24312:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1350, + "type": "address", + "value": "target" + }, + "id": 1358, + "name": "Identifier", + "src": "24333:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1352, + "type": "bytes memory", + "value": "data" + }, + "id": 1359, + "name": "Identifier", + "src": "24341:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level delegate call failed\"", + "value": "Address: low-level delegate call failed" + }, + "id": 1360, + "name": "Literal", + "src": "24347:41:1" + } + ], + "id": 1361, + "name": "FunctionCall", + "src": "24312:77:1" + } + ], + "id": 1362, + "name": "Return", + "src": "24305:84:1" + } + ], + "id": 1363, + "name": "Block", + "src": "24295:101:1" + } + ], + "id": 1364, + "name": "FunctionDefinition", + "src": "24198:198:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1365, + "name": "StructuredDocumentation", + "src": "24402:175:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1399, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1366, + "name": "ElementaryTypeName", + "src": "24612:7:1" + } + ], + "id": 1367, + "name": "VariableDeclaration", + "src": "24612:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1368, + "name": "ElementaryTypeName", + "src": "24628:5:1" + } + ], + "id": 1369, + "name": "VariableDeclaration", + "src": "24628:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1370, + "name": "ElementaryTypeName", + "src": "24647:6:1" + } + ], + "id": 1371, + "name": "VariableDeclaration", + "src": "24647:26:1" + } + ], + "id": 1372, + "name": "ParameterList", + "src": "24611:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1373, + "name": "ElementaryTypeName", + "src": "24693:5:1" + } + ], + "id": 1374, + "name": "VariableDeclaration", + "src": "24693:12:1" + } + ], + "id": 1375, + "name": "ParameterList", + "src": "24692:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1376, + "name": "Identifier", + "src": "24717:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1377, + "name": "Identifier", + "src": "24725:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1378, + "name": "Identifier", + "src": "24736:6:1" + } + ], + "id": 1379, + "name": "FunctionCall", + "src": "24725:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: delegate call to non-contract\"", + "value": "Address: delegate call to non-contract" + }, + "id": 1380, + "name": "Literal", + "src": "24745:40:1" + } + ], + "id": 1381, + "name": "FunctionCall", + "src": "24717:69:1" + } + ], + "id": 1382, + "name": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "attributes": { + "assignments": [ + 1384, + 1386 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1398, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1383, + "name": "ElementaryTypeName", + "src": "24857:4:1" + } + ], + "id": 1384, + "name": "VariableDeclaration", + "src": "24857:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1398, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1385, + "name": "ElementaryTypeName", + "src": "24871:5:1" + } + ], + "id": 1386, + "name": "VariableDeclaration", + "src": "24871:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "delegatecall", + "type": "function (bytes memory) returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1387, + "name": "Identifier", + "src": "24898:6:1" + } + ], + "id": 1388, + "name": "MemberAccess", + "src": "24898:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1369, + "type": "bytes memory", + "value": "data" + }, + "id": 1389, + "name": "Identifier", + "src": "24918:4:1" + } + ], + "id": 1390, + "name": "FunctionCall", + "src": "24898:25:1" + } + ], + "id": 1391, + "name": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "attributes": { + "functionReturnParameters": 1375 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1392, + "name": "Identifier", + "src": "24940:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1384, + "type": "bool", + "value": "success" + }, + "id": 1393, + "name": "Identifier", + "src": "24958:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1386, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1394, + "name": "Identifier", + "src": "24967:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1371, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1395, + "name": "Identifier", + "src": "24979:12:1" + } + ], + "id": 1396, + "name": "FunctionCall", + "src": "24940:52:1" + } + ], + "id": 1397, + "name": "Return", + "src": "24933:59:1" + } + ], + "id": 1398, + "name": "Block", + "src": "24707:292:1" + } + ], + "id": 1399, + "name": "FunctionDefinition", + "src": "24582:417:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_verifyCallResult", + "scope": 1430, + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1429, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1400, + "name": "ElementaryTypeName", + "src": "25032:4:1" + } + ], + "id": 1401, + "name": "VariableDeclaration", + "src": "25032:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1402, + "name": "ElementaryTypeName", + "src": "25046:5:1" + } + ], + "id": 1403, + "name": "VariableDeclaration", + "src": "25046:23:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1404, + "name": "ElementaryTypeName", + "src": "25071:6:1" + } + ], + "id": 1405, + "name": "VariableDeclaration", + "src": "25071:26:1" + } + ], + "id": 1406, + "name": "ParameterList", + "src": "25031:67:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1407, + "name": "ElementaryTypeName", + "src": "25120:5:1" + } + ], + "id": 1408, + "name": "VariableDeclaration", + "src": "25120:12:1" + } + ], + "id": 1409, + "name": "ParameterList", + "src": "25119:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1401, + "type": "bool", + "value": "success" + }, + "id": 1410, + "name": "Identifier", + "src": "25148:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1409 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1411, + "name": "Identifier", + "src": "25178:10:1" + } + ], + "id": 1412, + "name": "Return", + "src": "25171:17:1" + } + ], + "id": 1413, + "name": "Block", + "src": "25157:42:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1414, + "name": "Identifier", + "src": "25289:10:1" + } + ], + "id": 1415, + "name": "MemberAccess", + "src": "25289:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1416, + "name": "Literal", + "src": "25309:1:1" + } + ], + "id": 1417, + "name": "BinaryOperation", + "src": "25289:21:1" + }, + { + "children": [ + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "operations": "{\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n}" + }, + "children": [], + "id": 1418, + "name": "InlineAssembly", + "src": "25487:154:1" + } + ], + "id": 1419, + "name": "Block", + "src": "25312:343:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "type": "function (string memory) pure", + "value": "revert" + }, + "id": 1420, + "name": "Identifier", + "src": "25679:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1405, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1421, + "name": "Identifier", + "src": "25686:12:1" + } + ], + "id": 1422, + "name": "FunctionCall", + "src": "25679:20:1" + } + ], + "id": 1423, + "name": "ExpressionStatement", + "src": "25679:20:1" + } + ], + "id": 1424, + "name": "Block", + "src": "25661:53:1" + } + ], + "id": 1425, + "name": "IfStatement", + "src": "25285:429:1" + } + ], + "id": 1426, + "name": "Block", + "src": "25205:519:1" + } + ], + "id": 1427, + "name": "IfStatement", + "src": "25144:580:1" + } + ], + "id": 1428, + "name": "Block", + "src": "25134:596:1" + } + ], + "id": 1429, + "name": "FunctionDefinition", + "src": "25005:725:1" + } + ], + "id": 1430, + "name": "ContractDefinition", + "src": "18048:7684:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1431, + "name": "PragmaDirective", + "src": "25791:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "id": 1432, + "name": "StructuredDocumentation", + "src": "25824:686:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Set", + "name": "Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_values", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "bytes32[]" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1433, + "name": "ElementaryTypeName", + "src": "27033:7:1" + } + ], + "id": 1434, + "name": "ArrayTypeName", + "src": "27033:9:1" + } + ], + "id": 1435, + "name": "VariableDeclaration", + "src": "27033:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1436, + "name": "ElementaryTypeName", + "src": "27193:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1437, + "name": "ElementaryTypeName", + "src": "27204:7:1" + } + ], + "id": 1438, + "name": "Mapping", + "src": "27184:28:1" + } + ], + "id": 1439, + "name": "VariableDeclaration", + "src": "27184:37:1" + } + ], + "id": 1440, + "name": "StructDefinition", + "src": "26979:249:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1441, + "name": "StructuredDocumentation", + "src": "27234:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1481, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1442, + "name": "UserDefinedTypeName", + "src": "27412:3:1" + } + ], + "id": 1443, + "name": "VariableDeclaration", + "src": "27412:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1444, + "name": "ElementaryTypeName", + "src": "27429:7:1" + } + ], + "id": 1445, + "name": "VariableDeclaration", + "src": "27429:13:1" + } + ], + "id": 1446, + "name": "ParameterList", + "src": "27411:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1447, + "name": "ElementaryTypeName", + "src": "27461:4:1" + } + ], + "id": 1448, + "name": "VariableDeclaration", + "src": "27461:4:1" + } + ], + "id": 1449, + "name": "ParameterList", + "src": "27460:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1450, + "name": "Identifier", + "src": "27482:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1451, + "name": "Identifier", + "src": "27492:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1452, + "name": "Identifier", + "src": "27497:5:1" + } + ], + "id": 1453, + "name": "FunctionCall", + "src": "27482:21:1" + } + ], + "id": 1454, + "name": "UnaryOperation", + "src": "27481:22:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1455, + "name": "Identifier", + "src": "27519:3:1" + } + ], + "id": 1458, + "name": "MemberAccess", + "src": "27519:11:1" + } + ], + "id": 1459, + "name": "MemberAccess", + "src": "27519:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1460, + "name": "Identifier", + "src": "27536:5:1" + } + ], + "id": 1461, + "name": "FunctionCall", + "src": "27519:23:1" + } + ], + "id": 1462, + "name": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1463, + "name": "Identifier", + "src": "27677:3:1" + } + ], + "id": 1466, + "name": "MemberAccess", + "src": "27677:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1465, + "name": "Identifier", + "src": "27690:5:1" + } + ], + "id": 1467, + "name": "IndexAccess", + "src": "27677:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1468, + "name": "Identifier", + "src": "27699:3:1" + } + ], + "id": 1469, + "name": "MemberAccess", + "src": "27699:11:1" + } + ], + "id": 1470, + "name": "MemberAccess", + "src": "27699:18:1" + } + ], + "id": 1471, + "name": "Assignment", + "src": "27677:40:1" + } + ], + "id": 1472, + "name": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1473, + "name": "Literal", + "src": "27738:4:1" + } + ], + "id": 1474, + "name": "Return", + "src": "27731:11:1" + } + ], + "id": 1475, + "name": "Block", + "src": "27505:248:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1476, + "name": "Literal", + "src": "27780:5:1" + } + ], + "id": 1477, + "name": "Return", + "src": "27773:12:1" + } + ], + "id": 1478, + "name": "Block", + "src": "27759:37:1" + } + ], + "id": 1479, + "name": "IfStatement", + "src": "27477:319:1" + } + ], + "id": 1480, + "name": "Block", + "src": "27467:335:1" + } + ], + "id": 1481, + "name": "FunctionDefinition", + "src": "27398:404:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1482, + "name": "StructuredDocumentation", + "src": "27808:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1561, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1483, + "name": "UserDefinedTypeName", + "src": "27987:3:1" + } + ], + "id": 1484, + "name": "VariableDeclaration", + "src": "27987:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1485, + "name": "ElementaryTypeName", + "src": "28004:7:1" + } + ], + "id": 1486, + "name": "VariableDeclaration", + "src": "28004:13:1" + } + ], + "id": 1487, + "name": "ParameterList", + "src": "27986:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1488, + "name": "ElementaryTypeName", + "src": "28036:4:1" + } + ], + "id": 1489, + "name": "VariableDeclaration", + "src": "28036:4:1" + } + ], + "id": 1490, + "name": "ParameterList", + "src": "28035:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1492 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "valueIndex", + "scope": 1560, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1491, + "name": "ElementaryTypeName", + "src": "28152:7:1" + } + ], + "id": 1492, + "name": "VariableDeclaration", + "src": "28152:18:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1493, + "name": "Identifier", + "src": "28173:3:1" + } + ], + "id": 1494, + "name": "MemberAccess", + "src": "28173:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1495, + "name": "Identifier", + "src": "28186:5:1" + } + ], + "id": 1496, + "name": "IndexAccess", + "src": "28173:19:1" + } + ], + "id": 1497, + "name": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1498, + "name": "Identifier", + "src": "28207:10:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1499, + "name": "Literal", + "src": "28221:1:1" + } + ], + "id": 1500, + "name": "BinaryOperation", + "src": "28207:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1501, + "name": "ElementaryTypeName", + "src": "28564:7:1" + } + ], + "id": 1502, + "name": "VariableDeclaration", + "src": "28564:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1503, + "name": "Identifier", + "src": "28588:10:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1504, + "name": "Literal", + "src": "28601:1:1" + } + ], + "id": 1505, + "name": "BinaryOperation", + "src": "28588:14:1" + } + ], + "id": 1506, + "name": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "attributes": { + "assignments": [ + 1508 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1507, + "name": "ElementaryTypeName", + "src": "28616:7:1" + } + ], + "id": 1508, + "name": "VariableDeclaration", + "src": "28616:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1509, + "name": "Identifier", + "src": "28636:3:1" + } + ], + "id": 1510, + "name": "MemberAccess", + "src": "28636:11:1" + } + ], + "id": 1511, + "name": "MemberAccess", + "src": "28636:18:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1512, + "name": "Literal", + "src": "28657:1:1" + } + ], + "id": 1513, + "name": "BinaryOperation", + "src": "28636:22:1" + } + ], + "id": 1514, + "name": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "attributes": { + "assignments": [ + 1516 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastvalue", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1515, + "name": "ElementaryTypeName", + "src": "28898:7:1" + } + ], + "id": 1516, + "name": "VariableDeclaration", + "src": "28898:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1517, + "name": "Identifier", + "src": "28918:3:1" + } + ], + "id": 1518, + "name": "MemberAccess", + "src": "28918:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1508, + "type": "uint256", + "value": "lastIndex" + }, + "id": 1519, + "name": "Identifier", + "src": "28930:9:1" + } + ], + "id": 1520, + "name": "IndexAccess", + "src": "28918:22:1" + } + ], + "id": 1521, + "name": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1522, + "name": "Identifier", + "src": "29032:3:1" + } + ], + "id": 1525, + "name": "MemberAccess", + "src": "29032:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1524, + "name": "Identifier", + "src": "29044:13:1" + } + ], + "id": 1526, + "name": "IndexAccess", + "src": "29032:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1527, + "name": "Identifier", + "src": "29061:9:1" + } + ], + "id": 1528, + "name": "Assignment", + "src": "29032:38:1" + } + ], + "id": 1529, + "name": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1530, + "name": "Identifier", + "src": "29136:3:1" + } + ], + "id": 1533, + "name": "MemberAccess", + "src": "29136:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1532, + "name": "Identifier", + "src": "29149:9:1" + } + ], + "id": 1534, + "name": "IndexAccess", + "src": "29136:23:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1535, + "name": "Identifier", + "src": "29162:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1536, + "name": "Literal", + "src": "29178:1:1" + } + ], + "id": 1537, + "name": "BinaryOperation", + "src": "29162:17:1" + } + ], + "id": 1538, + "name": "Assignment", + "src": "29136:43:1" + } + ], + "id": 1539, + "name": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1540, + "name": "Identifier", + "src": "29285:3:1" + } + ], + "id": 1543, + "name": "MemberAccess", + "src": "29285:11:1" + } + ], + "id": 1544, + "name": "MemberAccess", + "src": "29285:15:1" + } + ], + "id": 1545, + "name": "FunctionCall", + "src": "29285:17:1" + } + ], + "id": 1546, + "name": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1547, + "name": "Identifier", + "src": "29377:3:1" + } + ], + "id": 1548, + "name": "MemberAccess", + "src": "29377:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1549, + "name": "Identifier", + "src": "29390:5:1" + } + ], + "id": 1550, + "name": "IndexAccess", + "src": "29377:19:1" + } + ], + "id": 1551, + "name": "UnaryOperation", + "src": "29370:26:1" + } + ], + "id": 1552, + "name": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1553, + "name": "Literal", + "src": "29418:4:1" + } + ], + "id": 1554, + "name": "Return", + "src": "29411:11:1" + } + ], + "id": 1555, + "name": "Block", + "src": "28224:1209:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1556, + "name": "Literal", + "src": "29460:5:1" + } + ], + "id": 1557, + "name": "Return", + "src": "29453:12:1" + } + ], + "id": 1558, + "name": "Block", + "src": "29439:37:1" + } + ], + "id": 1559, + "name": "IfStatement", + "src": "28203:1273:1" + } + ], + "id": 1560, + "name": "Block", + "src": "28042:1440:1" + } + ], + "id": 1561, + "name": "FunctionDefinition", + "src": "27970:1512:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1562, + "name": "StructuredDocumentation", + "src": "29488:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1579, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1563, + "name": "UserDefinedTypeName", + "src": "29582:3:1" + } + ], + "id": 1564, + "name": "VariableDeclaration", + "src": "29582:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1565, + "name": "ElementaryTypeName", + "src": "29599:7:1" + } + ], + "id": 1566, + "name": "VariableDeclaration", + "src": "29599:13:1" + } + ], + "id": 1567, + "name": "ParameterList", + "src": "29581:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1568, + "name": "ElementaryTypeName", + "src": "29636:4:1" + } + ], + "id": 1569, + "name": "VariableDeclaration", + "src": "29636:4:1" + } + ], + "id": 1570, + "name": "ParameterList", + "src": "29635:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1570 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1564, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1571, + "name": "Identifier", + "src": "29659:3:1" + } + ], + "id": 1572, + "name": "MemberAccess", + "src": "29659:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1566, + "type": "bytes32", + "value": "value" + }, + "id": 1573, + "name": "Identifier", + "src": "29672:5:1" + } + ], + "id": 1574, + "name": "IndexAccess", + "src": "29659:19:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1575, + "name": "Literal", + "src": "29682:1:1" + } + ], + "id": 1576, + "name": "BinaryOperation", + "src": "29659:24:1" + } + ], + "id": 1577, + "name": "Return", + "src": "29652:31:1" + } + ], + "id": 1578, + "name": "Block", + "src": "29642:48:1" + } + ], + "id": 1579, + "name": "FunctionDefinition", + "src": "29563:127:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1580, + "name": "StructuredDocumentation", + "src": "29696:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1592, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1581, + "name": "UserDefinedTypeName", + "src": "29788:3:1" + } + ], + "id": 1582, + "name": "VariableDeclaration", + "src": "29788:15:1" + } + ], + "id": 1583, + "name": "ParameterList", + "src": "29787:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1592, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1584, + "name": "ElementaryTypeName", + "src": "29827:7:1" + } + ], + "id": 1585, + "name": "VariableDeclaration", + "src": "29827:7:1" + } + ], + "id": 1586, + "name": "ParameterList", + "src": "29826:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1586 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1582, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1587, + "name": "Identifier", + "src": "29853:3:1" + } + ], + "id": 1588, + "name": "MemberAccess", + "src": "29853:11:1" + } + ], + "id": 1589, + "name": "MemberAccess", + "src": "29853:18:1" + } + ], + "id": 1590, + "name": "Return", + "src": "29846:25:1" + } + ], + "id": 1591, + "name": "Block", + "src": "29836:42:1" + } + ], + "id": 1592, + "name": "FunctionDefinition", + "src": "29771:107:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1593, + "name": "StructuredDocumentation", + "src": "29883:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1617, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1594, + "name": "UserDefinedTypeName", + "src": "30223:3:1" + } + ], + "id": 1595, + "name": "VariableDeclaration", + "src": "30223:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1596, + "name": "ElementaryTypeName", + "src": "30240:7:1" + } + ], + "id": 1597, + "name": "VariableDeclaration", + "src": "30240:13:1" + } + ], + "id": 1598, + "name": "ParameterList", + "src": "30222:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1599, + "name": "ElementaryTypeName", + "src": "30277:7:1" + } + ], + "id": 1600, + "name": "VariableDeclaration", + "src": "30277:7:1" + } + ], + "id": 1601, + "name": "ParameterList", + "src": "30276:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1602, + "name": "Identifier", + "src": "30296:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1603, + "name": "Identifier", + "src": "30304:3:1" + } + ], + "id": 1604, + "name": "MemberAccess", + "src": "30304:11:1" + } + ], + "id": 1605, + "name": "MemberAccess", + "src": "30304:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1606, + "name": "Identifier", + "src": "30325:5:1" + } + ], + "id": 1607, + "name": "BinaryOperation", + "src": "30304:26:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableSet: index out of bounds\"", + "value": "EnumerableSet: index out of bounds" + }, + "id": 1608, + "name": "Literal", + "src": "30332:36:1" + } + ], + "id": 1609, + "name": "FunctionCall", + "src": "30296:73:1" + } + ], + "id": 1610, + "name": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "attributes": { + "functionReturnParameters": 1601 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1611, + "name": "Identifier", + "src": "30386:3:1" + } + ], + "id": 1612, + "name": "MemberAccess", + "src": "30386:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1613, + "name": "Identifier", + "src": "30398:5:1" + } + ], + "id": 1614, + "name": "IndexAccess", + "src": "30386:18:1" + } + ], + "id": 1615, + "name": "Return", + "src": "30379:25:1" + } + ], + "id": 1616, + "name": "Block", + "src": "30286:125:1" + } + ], + "id": 1617, + "name": "FunctionDefinition", + "src": "30210:201:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Bytes32Set", + "name": "Bytes32Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1620, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1618, + "name": "UserDefinedTypeName", + "src": "30464:3:1" + } + ], + "id": 1619, + "name": "VariableDeclaration", + "src": "30464:10:1" + } + ], + "id": 1620, + "name": "StructDefinition", + "src": "30436:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1621, + "name": "StructuredDocumentation", + "src": "30487:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1637, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1622, + "name": "UserDefinedTypeName", + "src": "30664:10:1" + } + ], + "id": 1623, + "name": "VariableDeclaration", + "src": "30664:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1624, + "name": "ElementaryTypeName", + "src": "30688:7:1" + } + ], + "id": 1625, + "name": "VariableDeclaration", + "src": "30688:13:1" + } + ], + "id": 1626, + "name": "ParameterList", + "src": "30663:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1627, + "name": "ElementaryTypeName", + "src": "30721:4:1" + } + ], + "id": 1628, + "name": "VariableDeclaration", + "src": "30721:4:1" + } + ], + "id": 1629, + "name": "ParameterList", + "src": "30720:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1629 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1630, + "name": "Identifier", + "src": "30744:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1623, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1631, + "name": "Identifier", + "src": "30749:3:1" + } + ], + "id": 1632, + "name": "MemberAccess", + "src": "30749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1625, + "type": "bytes32", + "value": "value" + }, + "id": 1633, + "name": "Identifier", + "src": "30761:5:1" + } + ], + "id": 1634, + "name": "FunctionCall", + "src": "30744:23:1" + } + ], + "id": 1635, + "name": "Return", + "src": "30737:30:1" + } + ], + "id": 1636, + "name": "Block", + "src": "30727:47:1" + } + ], + "id": 1637, + "name": "FunctionDefinition", + "src": "30651:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1638, + "name": "StructuredDocumentation", + "src": "30780:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1654, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1639, + "name": "UserDefinedTypeName", + "src": "30958:10:1" + } + ], + "id": 1640, + "name": "VariableDeclaration", + "src": "30958:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1641, + "name": "ElementaryTypeName", + "src": "30982:7:1" + } + ], + "id": 1642, + "name": "VariableDeclaration", + "src": "30982:13:1" + } + ], + "id": 1643, + "name": "ParameterList", + "src": "30957:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1644, + "name": "ElementaryTypeName", + "src": "31015:4:1" + } + ], + "id": 1645, + "name": "VariableDeclaration", + "src": "31015:4:1" + } + ], + "id": 1646, + "name": "ParameterList", + "src": "31014:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1646 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1647, + "name": "Identifier", + "src": "31038:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1640, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1648, + "name": "Identifier", + "src": "31046:3:1" + } + ], + "id": 1649, + "name": "MemberAccess", + "src": "31046:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1642, + "type": "bytes32", + "value": "value" + }, + "id": 1650, + "name": "Identifier", + "src": "31058:5:1" + } + ], + "id": 1651, + "name": "FunctionCall", + "src": "31038:26:1" + } + ], + "id": 1652, + "name": "Return", + "src": "31031:33:1" + } + ], + "id": 1653, + "name": "Block", + "src": "31021:50:1" + } + ], + "id": 1654, + "name": "FunctionDefinition", + "src": "30942:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1655, + "name": "StructuredDocumentation", + "src": "31077:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1671, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1656, + "name": "UserDefinedTypeName", + "src": "31170:10:1" + } + ], + "id": 1657, + "name": "VariableDeclaration", + "src": "31170:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1658, + "name": "ElementaryTypeName", + "src": "31194:7:1" + } + ], + "id": 1659, + "name": "VariableDeclaration", + "src": "31194:13:1" + } + ], + "id": 1660, + "name": "ParameterList", + "src": "31169:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1661, + "name": "ElementaryTypeName", + "src": "31232:4:1" + } + ], + "id": 1662, + "name": "VariableDeclaration", + "src": "31232:4:1" + } + ], + "id": 1663, + "name": "ParameterList", + "src": "31231:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1663 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1664, + "name": "Identifier", + "src": "31255:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1657, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1665, + "name": "Identifier", + "src": "31265:3:1" + } + ], + "id": 1666, + "name": "MemberAccess", + "src": "31265:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1659, + "type": "bytes32", + "value": "value" + }, + "id": 1667, + "name": "Identifier", + "src": "31277:5:1" + } + ], + "id": 1668, + "name": "FunctionCall", + "src": "31255:28:1" + } + ], + "id": 1669, + "name": "Return", + "src": "31248:35:1" + } + ], + "id": 1670, + "name": "Block", + "src": "31238:52:1" + } + ], + "id": 1671, + "name": "FunctionDefinition", + "src": "31152:138:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1672, + "name": "StructuredDocumentation", + "src": "31296:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1685, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1673, + "name": "UserDefinedTypeName", + "src": "31387:10:1" + } + ], + "id": 1674, + "name": "VariableDeclaration", + "src": "31387:22:1" + } + ], + "id": 1675, + "name": "ParameterList", + "src": "31386:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1685, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1676, + "name": "ElementaryTypeName", + "src": "31434:7:1" + } + ], + "id": 1677, + "name": "VariableDeclaration", + "src": "31434:7:1" + } + ], + "id": 1678, + "name": "ParameterList", + "src": "31433:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1678 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1679, + "name": "Identifier", + "src": "31460:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1674, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1680, + "name": "Identifier", + "src": "31468:3:1" + } + ], + "id": 1681, + "name": "MemberAccess", + "src": "31468:10:1" + } + ], + "id": 1682, + "name": "FunctionCall", + "src": "31460:19:1" + } + ], + "id": 1683, + "name": "Return", + "src": "31453:26:1" + } + ], + "id": 1684, + "name": "Block", + "src": "31443:43:1" + } + ], + "id": 1685, + "name": "FunctionDefinition", + "src": "31371:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1686, + "name": "StructuredDocumentation", + "src": "31491:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1702, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1687, + "name": "UserDefinedTypeName", + "src": "31830:10:1" + } + ], + "id": 1688, + "name": "VariableDeclaration", + "src": "31830:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1689, + "name": "ElementaryTypeName", + "src": "31854:7:1" + } + ], + "id": 1690, + "name": "VariableDeclaration", + "src": "31854:13:1" + } + ], + "id": 1691, + "name": "ParameterList", + "src": "31829:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1692, + "name": "ElementaryTypeName", + "src": "31892:7:1" + } + ], + "id": 1693, + "name": "VariableDeclaration", + "src": "31892:7:1" + } + ], + "id": 1694, + "name": "ParameterList", + "src": "31891:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1695, + "name": "Identifier", + "src": "31918:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1688, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1696, + "name": "Identifier", + "src": "31922:3:1" + } + ], + "id": 1697, + "name": "MemberAccess", + "src": "31922:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1690, + "type": "uint256", + "value": "index" + }, + "id": 1698, + "name": "Identifier", + "src": "31934:5:1" + } + ], + "id": 1699, + "name": "FunctionCall", + "src": "31918:22:1" + } + ], + "id": 1700, + "name": "Return", + "src": "31911:29:1" + } + ], + "id": 1701, + "name": "Block", + "src": "31901:46:1" + } + ], + "id": 1702, + "name": "FunctionDefinition", + "src": "31818:129:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.AddressSet", + "name": "AddressSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1705, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1703, + "name": "UserDefinedTypeName", + "src": "32000:3:1" + } + ], + "id": 1704, + "name": "VariableDeclaration", + "src": "32000:10:1" + } + ], + "id": 1705, + "name": "StructDefinition", + "src": "31972:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1706, + "name": "StructuredDocumentation", + "src": "32023:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1731, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1707, + "name": "UserDefinedTypeName", + "src": "32200:10:1" + } + ], + "id": 1708, + "name": "VariableDeclaration", + "src": "32200:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1709, + "name": "ElementaryTypeName", + "src": "32224:7:1" + } + ], + "id": 1710, + "name": "VariableDeclaration", + "src": "32224:13:1" + } + ], + "id": 1711, + "name": "ParameterList", + "src": "32199:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1712, + "name": "ElementaryTypeName", + "src": "32257:4:1" + } + ], + "id": 1713, + "name": "VariableDeclaration", + "src": "32257:4:1" + } + ], + "id": 1714, + "name": "ParameterList", + "src": "32256:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1714 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1715, + "name": "Identifier", + "src": "32280:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1708, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1716, + "name": "Identifier", + "src": "32285:3:1" + } + ], + "id": 1717, + "name": "MemberAccess", + "src": "32285:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1718, + "name": "ElementaryTypeName", + "src": "32297:7:1" + } + ], + "id": 1719, + "name": "ElementaryTypeNameExpression", + "src": "32297:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1720, + "name": "ElementaryTypeName", + "src": "32305:7:1" + } + ], + "id": 1721, + "name": "ElementaryTypeNameExpression", + "src": "32305:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1722, + "name": "ElementaryTypeName", + "src": "32313:7:1" + } + ], + "id": 1723, + "name": "ElementaryTypeNameExpression", + "src": "32313:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1710, + "type": "address", + "value": "value" + }, + "id": 1724, + "name": "Identifier", + "src": "32321:5:1" + } + ], + "id": 1725, + "name": "FunctionCall", + "src": "32313:14:1" + } + ], + "id": 1726, + "name": "FunctionCall", + "src": "32305:23:1" + } + ], + "id": 1727, + "name": "FunctionCall", + "src": "32297:32:1" + } + ], + "id": 1728, + "name": "FunctionCall", + "src": "32280:50:1" + } + ], + "id": 1729, + "name": "Return", + "src": "32273:57:1" + } + ], + "id": 1730, + "name": "Block", + "src": "32263:74:1" + } + ], + "id": 1731, + "name": "FunctionDefinition", + "src": "32187:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1732, + "name": "StructuredDocumentation", + "src": "32343:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1757, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1733, + "name": "UserDefinedTypeName", + "src": "32521:10:1" + } + ], + "id": 1734, + "name": "VariableDeclaration", + "src": "32521:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1735, + "name": "ElementaryTypeName", + "src": "32545:7:1" + } + ], + "id": 1736, + "name": "VariableDeclaration", + "src": "32545:13:1" + } + ], + "id": 1737, + "name": "ParameterList", + "src": "32520:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1738, + "name": "ElementaryTypeName", + "src": "32578:4:1" + } + ], + "id": 1739, + "name": "VariableDeclaration", + "src": "32578:4:1" + } + ], + "id": 1740, + "name": "ParameterList", + "src": "32577:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1740 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1741, + "name": "Identifier", + "src": "32601:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1734, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1742, + "name": "Identifier", + "src": "32609:3:1" + } + ], + "id": 1743, + "name": "MemberAccess", + "src": "32609:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1744, + "name": "ElementaryTypeName", + "src": "32621:7:1" + } + ], + "id": 1745, + "name": "ElementaryTypeNameExpression", + "src": "32621:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1746, + "name": "ElementaryTypeName", + "src": "32629:7:1" + } + ], + "id": 1747, + "name": "ElementaryTypeNameExpression", + "src": "32629:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1748, + "name": "ElementaryTypeName", + "src": "32637:7:1" + } + ], + "id": 1749, + "name": "ElementaryTypeNameExpression", + "src": "32637:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1736, + "type": "address", + "value": "value" + }, + "id": 1750, + "name": "Identifier", + "src": "32645:5:1" + } + ], + "id": 1751, + "name": "FunctionCall", + "src": "32637:14:1" + } + ], + "id": 1752, + "name": "FunctionCall", + "src": "32629:23:1" + } + ], + "id": 1753, + "name": "FunctionCall", + "src": "32621:32:1" + } + ], + "id": 1754, + "name": "FunctionCall", + "src": "32601:53:1" + } + ], + "id": 1755, + "name": "Return", + "src": "32594:60:1" + } + ], + "id": 1756, + "name": "Block", + "src": "32584:77:1" + } + ], + "id": 1757, + "name": "FunctionDefinition", + "src": "32505:156:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1758, + "name": "StructuredDocumentation", + "src": "32667:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1783, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1759, + "name": "UserDefinedTypeName", + "src": "32760:10:1" + } + ], + "id": 1760, + "name": "VariableDeclaration", + "src": "32760:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1761, + "name": "ElementaryTypeName", + "src": "32784:7:1" + } + ], + "id": 1762, + "name": "VariableDeclaration", + "src": "32784:13:1" + } + ], + "id": 1763, + "name": "ParameterList", + "src": "32759:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1764, + "name": "ElementaryTypeName", + "src": "32822:4:1" + } + ], + "id": 1765, + "name": "VariableDeclaration", + "src": "32822:4:1" + } + ], + "id": 1766, + "name": "ParameterList", + "src": "32821:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1766 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1767, + "name": "Identifier", + "src": "32845:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1760, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1768, + "name": "Identifier", + "src": "32855:3:1" + } + ], + "id": 1769, + "name": "MemberAccess", + "src": "32855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1770, + "name": "ElementaryTypeName", + "src": "32867:7:1" + } + ], + "id": 1771, + "name": "ElementaryTypeNameExpression", + "src": "32867:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1772, + "name": "ElementaryTypeName", + "src": "32875:7:1" + } + ], + "id": 1773, + "name": "ElementaryTypeNameExpression", + "src": "32875:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1774, + "name": "ElementaryTypeName", + "src": "32883:7:1" + } + ], + "id": 1775, + "name": "ElementaryTypeNameExpression", + "src": "32883:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1762, + "type": "address", + "value": "value" + }, + "id": 1776, + "name": "Identifier", + "src": "32891:5:1" + } + ], + "id": 1777, + "name": "FunctionCall", + "src": "32883:14:1" + } + ], + "id": 1778, + "name": "FunctionCall", + "src": "32875:23:1" + } + ], + "id": 1779, + "name": "FunctionCall", + "src": "32867:32:1" + } + ], + "id": 1780, + "name": "FunctionCall", + "src": "32845:55:1" + } + ], + "id": 1781, + "name": "Return", + "src": "32838:62:1" + } + ], + "id": 1782, + "name": "Block", + "src": "32828:79:1" + } + ], + "id": 1783, + "name": "FunctionDefinition", + "src": "32742:165:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1784, + "name": "StructuredDocumentation", + "src": "32913:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1797, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1785, + "name": "UserDefinedTypeName", + "src": "33004:10:1" + } + ], + "id": 1786, + "name": "VariableDeclaration", + "src": "33004:22:1" + } + ], + "id": 1787, + "name": "ParameterList", + "src": "33003:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1797, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1788, + "name": "ElementaryTypeName", + "src": "33051:7:1" + } + ], + "id": 1789, + "name": "VariableDeclaration", + "src": "33051:7:1" + } + ], + "id": 1790, + "name": "ParameterList", + "src": "33050:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1790 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1791, + "name": "Identifier", + "src": "33077:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1786, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1792, + "name": "Identifier", + "src": "33085:3:1" + } + ], + "id": 1793, + "name": "MemberAccess", + "src": "33085:10:1" + } + ], + "id": 1794, + "name": "FunctionCall", + "src": "33077:19:1" + } + ], + "id": 1795, + "name": "Return", + "src": "33070:26:1" + } + ], + "id": 1796, + "name": "Block", + "src": "33060:43:1" + } + ], + "id": 1797, + "name": "FunctionDefinition", + "src": "32988:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1798, + "name": "StructuredDocumentation", + "src": "33108:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1823, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1799, + "name": "UserDefinedTypeName", + "src": "33447:10:1" + } + ], + "id": 1800, + "name": "VariableDeclaration", + "src": "33447:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1801, + "name": "ElementaryTypeName", + "src": "33471:7:1" + } + ], + "id": 1802, + "name": "VariableDeclaration", + "src": "33471:13:1" + } + ], + "id": 1803, + "name": "ParameterList", + "src": "33446:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1804, + "name": "ElementaryTypeName", + "src": "33509:7:1" + } + ], + "id": 1805, + "name": "VariableDeclaration", + "src": "33509:7:1" + } + ], + "id": 1806, + "name": "ParameterList", + "src": "33508:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1806 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1807, + "name": "ElementaryTypeName", + "src": "33535:7:1" + } + ], + "id": 1808, + "name": "ElementaryTypeNameExpression", + "src": "33535:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1809, + "name": "ElementaryTypeName", + "src": "33543:7:1" + } + ], + "id": 1810, + "name": "ElementaryTypeNameExpression", + "src": "33543:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1811, + "name": "ElementaryTypeName", + "src": "33551:7:1" + } + ], + "id": 1812, + "name": "ElementaryTypeNameExpression", + "src": "33551:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1813, + "name": "Identifier", + "src": "33559:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1800, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1814, + "name": "Identifier", + "src": "33563:3:1" + } + ], + "id": 1815, + "name": "MemberAccess", + "src": "33563:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1802, + "type": "uint256", + "value": "index" + }, + "id": 1816, + "name": "Identifier", + "src": "33575:5:1" + } + ], + "id": 1817, + "name": "FunctionCall", + "src": "33559:22:1" + } + ], + "id": 1818, + "name": "FunctionCall", + "src": "33551:31:1" + } + ], + "id": 1819, + "name": "FunctionCall", + "src": "33543:40:1" + } + ], + "id": 1820, + "name": "FunctionCall", + "src": "33535:49:1" + } + ], + "id": 1821, + "name": "Return", + "src": "33528:56:1" + } + ], + "id": 1822, + "name": "Block", + "src": "33518:73:1" + } + ], + "id": 1823, + "name": "FunctionDefinition", + "src": "33435:156:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.UintSet", + "name": "UintSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1826, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1824, + "name": "UserDefinedTypeName", + "src": "33639:3:1" + } + ], + "id": 1825, + "name": "VariableDeclaration", + "src": "33639:10:1" + } + ], + "id": 1826, + "name": "StructDefinition", + "src": "33614:42:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1827, + "name": "StructuredDocumentation", + "src": "33662:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1846, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1828, + "name": "UserDefinedTypeName", + "src": "33839:7:1" + } + ], + "id": 1829, + "name": "VariableDeclaration", + "src": "33839:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1830, + "name": "ElementaryTypeName", + "src": "33860:7:1" + } + ], + "id": 1831, + "name": "VariableDeclaration", + "src": "33860:13:1" + } + ], + "id": 1832, + "name": "ParameterList", + "src": "33838:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1833, + "name": "ElementaryTypeName", + "src": "33893:4:1" + } + ], + "id": 1834, + "name": "VariableDeclaration", + "src": "33893:4:1" + } + ], + "id": 1835, + "name": "ParameterList", + "src": "33892:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1835 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1836, + "name": "Identifier", + "src": "33916:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1829, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1837, + "name": "Identifier", + "src": "33921:3:1" + } + ], + "id": 1838, + "name": "MemberAccess", + "src": "33921:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1839, + "name": "ElementaryTypeName", + "src": "33933:7:1" + } + ], + "id": 1840, + "name": "ElementaryTypeNameExpression", + "src": "33933:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1831, + "type": "uint256", + "value": "value" + }, + "id": 1841, + "name": "Identifier", + "src": "33941:5:1" + } + ], + "id": 1842, + "name": "FunctionCall", + "src": "33933:14:1" + } + ], + "id": 1843, + "name": "FunctionCall", + "src": "33916:32:1" + } + ], + "id": 1844, + "name": "Return", + "src": "33909:39:1" + } + ], + "id": 1845, + "name": "Block", + "src": "33899:56:1" + } + ], + "id": 1846, + "name": "FunctionDefinition", + "src": "33826:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1847, + "name": "StructuredDocumentation", + "src": "33961:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1866, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1848, + "name": "UserDefinedTypeName", + "src": "34139:7:1" + } + ], + "id": 1849, + "name": "VariableDeclaration", + "src": "34139:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1850, + "name": "ElementaryTypeName", + "src": "34160:7:1" + } + ], + "id": 1851, + "name": "VariableDeclaration", + "src": "34160:13:1" + } + ], + "id": 1852, + "name": "ParameterList", + "src": "34138:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1853, + "name": "ElementaryTypeName", + "src": "34193:4:1" + } + ], + "id": 1854, + "name": "VariableDeclaration", + "src": "34193:4:1" + } + ], + "id": 1855, + "name": "ParameterList", + "src": "34192:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1855 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1856, + "name": "Identifier", + "src": "34216:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1849, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1857, + "name": "Identifier", + "src": "34224:3:1" + } + ], + "id": 1858, + "name": "MemberAccess", + "src": "34224:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1859, + "name": "ElementaryTypeName", + "src": "34236:7:1" + } + ], + "id": 1860, + "name": "ElementaryTypeNameExpression", + "src": "34236:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1851, + "type": "uint256", + "value": "value" + }, + "id": 1861, + "name": "Identifier", + "src": "34244:5:1" + } + ], + "id": 1862, + "name": "FunctionCall", + "src": "34236:14:1" + } + ], + "id": 1863, + "name": "FunctionCall", + "src": "34216:35:1" + } + ], + "id": 1864, + "name": "Return", + "src": "34209:42:1" + } + ], + "id": 1865, + "name": "Block", + "src": "34199:59:1" + } + ], + "id": 1866, + "name": "FunctionDefinition", + "src": "34123:135:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1867, + "name": "StructuredDocumentation", + "src": "34264:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1886, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1868, + "name": "UserDefinedTypeName", + "src": "34357:7:1" + } + ], + "id": 1869, + "name": "VariableDeclaration", + "src": "34357:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1870, + "name": "ElementaryTypeName", + "src": "34378:7:1" + } + ], + "id": 1871, + "name": "VariableDeclaration", + "src": "34378:13:1" + } + ], + "id": 1872, + "name": "ParameterList", + "src": "34356:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1873, + "name": "ElementaryTypeName", + "src": "34416:4:1" + } + ], + "id": 1874, + "name": "VariableDeclaration", + "src": "34416:4:1" + } + ], + "id": 1875, + "name": "ParameterList", + "src": "34415:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1875 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1876, + "name": "Identifier", + "src": "34439:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1869, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1877, + "name": "Identifier", + "src": "34449:3:1" + } + ], + "id": 1878, + "name": "MemberAccess", + "src": "34449:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1879, + "name": "ElementaryTypeName", + "src": "34461:7:1" + } + ], + "id": 1880, + "name": "ElementaryTypeNameExpression", + "src": "34461:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1871, + "type": "uint256", + "value": "value" + }, + "id": 1881, + "name": "Identifier", + "src": "34469:5:1" + } + ], + "id": 1882, + "name": "FunctionCall", + "src": "34461:14:1" + } + ], + "id": 1883, + "name": "FunctionCall", + "src": "34439:37:1" + } + ], + "id": 1884, + "name": "Return", + "src": "34432:44:1" + } + ], + "id": 1885, + "name": "Block", + "src": "34422:61:1" + } + ], + "id": 1886, + "name": "FunctionDefinition", + "src": "34339:144:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1887, + "name": "StructuredDocumentation", + "src": "34489:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1900, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1888, + "name": "UserDefinedTypeName", + "src": "34580:7:1" + } + ], + "id": 1889, + "name": "VariableDeclaration", + "src": "34580:19:1" + } + ], + "id": 1890, + "name": "ParameterList", + "src": "34579:21:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1900, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1891, + "name": "ElementaryTypeName", + "src": "34624:7:1" + } + ], + "id": 1892, + "name": "VariableDeclaration", + "src": "34624:7:1" + } + ], + "id": 1893, + "name": "ParameterList", + "src": "34623:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1894, + "name": "Identifier", + "src": "34650:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1889, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1895, + "name": "Identifier", + "src": "34658:3:1" + } + ], + "id": 1896, + "name": "MemberAccess", + "src": "34658:10:1" + } + ], + "id": 1897, + "name": "FunctionCall", + "src": "34650:19:1" + } + ], + "id": 1898, + "name": "Return", + "src": "34643:26:1" + } + ], + "id": 1899, + "name": "Block", + "src": "34633:43:1" + } + ], + "id": 1900, + "name": "FunctionDefinition", + "src": "34564:112:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1901, + "name": "StructuredDocumentation", + "src": "34681:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1920, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1902, + "name": "UserDefinedTypeName", + "src": "35020:7:1" + } + ], + "id": 1903, + "name": "VariableDeclaration", + "src": "35020:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1904, + "name": "ElementaryTypeName", + "src": "35041:7:1" + } + ], + "id": 1905, + "name": "VariableDeclaration", + "src": "35041:13:1" + } + ], + "id": 1906, + "name": "ParameterList", + "src": "35019:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1907, + "name": "ElementaryTypeName", + "src": "35079:7:1" + } + ], + "id": 1908, + "name": "VariableDeclaration", + "src": "35079:7:1" + } + ], + "id": 1909, + "name": "ParameterList", + "src": "35078:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1909 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1910, + "name": "ElementaryTypeName", + "src": "35105:7:1" + } + ], + "id": 1911, + "name": "ElementaryTypeNameExpression", + "src": "35105:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1912, + "name": "Identifier", + "src": "35113:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1903, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1913, + "name": "Identifier", + "src": "35117:3:1" + } + ], + "id": 1914, + "name": "MemberAccess", + "src": "35117:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1905, + "type": "uint256", + "value": "index" + }, + "id": 1915, + "name": "Identifier", + "src": "35129:5:1" + } + ], + "id": 1916, + "name": "FunctionCall", + "src": "35113:22:1" + } + ], + "id": 1917, + "name": "FunctionCall", + "src": "35105:31:1" + } + ], + "id": 1918, + "name": "Return", + "src": "35098:38:1" + } + ], + "id": 1919, + "name": "Block", + "src": "35088:55:1" + } + ], + "id": 1920, + "name": "FunctionDefinition", + "src": "35008:135:1" + } + ], + "id": 1921, + "name": "ContractDefinition", + "src": "26511:8634:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1922, + "name": "PragmaDirective", + "src": "35204:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "id": 1923, + "name": "StructuredDocumentation", + "src": "35237:705:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.MapEntry", + "name": "MapEntry", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_key", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1924, + "name": "ElementaryTypeName", + "src": "36455:7:1" + } + ], + "id": 1925, + "name": "VariableDeclaration", + "src": "36455:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_value", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1926, + "name": "ElementaryTypeName", + "src": "36477:7:1" + } + ], + "id": 1927, + "name": "VariableDeclaration", + "src": "36477:14:1" + } + ], + "id": 1928, + "name": "StructDefinition", + "src": "36429:69:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.Map", + "name": "Map", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_entries", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.MapEntry[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "struct EnumerableMap.MapEntry[]" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 1929, + "name": "UserDefinedTypeName", + "src": "36567:8:1" + } + ], + "id": 1930, + "name": "ArrayTypeName", + "src": "36567:10:1" + } + ], + "id": 1931, + "name": "VariableDeclaration", + "src": "36567:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1932, + "name": "ElementaryTypeName", + "src": "36745:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1933, + "name": "ElementaryTypeName", + "src": "36756:7:1" + } + ], + "id": 1934, + "name": "Mapping", + "src": "36736:28:1" + } + ], + "id": 1935, + "name": "VariableDeclaration", + "src": "36736:37:1" + } + ], + "id": 1936, + "name": "StructDefinition", + "src": "36504:276:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1937, + "name": "StructuredDocumentation", + "src": "36786:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 1998, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 1938, + "name": "UserDefinedTypeName", + "src": "37021:3:1" + } + ], + "id": 1939, + "name": "VariableDeclaration", + "src": "37021:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1940, + "name": "ElementaryTypeName", + "src": "37038:7:1" + } + ], + "id": 1941, + "name": "VariableDeclaration", + "src": "37038:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1942, + "name": "ElementaryTypeName", + "src": "37051:7:1" + } + ], + "id": 1943, + "name": "VariableDeclaration", + "src": "37051:13:1" + } + ], + "id": 1944, + "name": "ParameterList", + "src": "37020:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1945, + "name": "ElementaryTypeName", + "src": "37083:4:1" + } + ], + "id": 1946, + "name": "VariableDeclaration", + "src": "37083:4:1" + } + ], + "id": 1947, + "name": "ParameterList", + "src": "37082:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1949 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 1997, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1948, + "name": "ElementaryTypeName", + "src": "37197:7:1" + } + ], + "id": 1949, + "name": "VariableDeclaration", + "src": "37197:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1950, + "name": "Identifier", + "src": "37216:3:1" + } + ], + "id": 1951, + "name": "MemberAccess", + "src": "37216:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1952, + "name": "Identifier", + "src": "37229:3:1" + } + ], + "id": 1953, + "name": "IndexAccess", + "src": "37216:17:1" + } + ], + "id": 1954, + "name": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1955, + "name": "Identifier", + "src": "37248:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1956, + "name": "Literal", + "src": "37260:1:1" + } + ], + "id": 1957, + "name": "BinaryOperation", + "src": "37248:13:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (struct EnumerableMap.MapEntry storage ref)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1958, + "name": "Identifier", + "src": "37314:3:1" + } + ], + "id": 1961, + "name": "MemberAccess", + "src": "37314:12:1" + } + ], + "id": 1962, + "name": "MemberAccess", + "src": "37314:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": true, + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "tryCall": false, + "type": "struct EnumerableMap.MapEntry memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1928, + "type": "type(struct EnumerableMap.MapEntry storage pointer)", + "value": "MapEntry" + }, + "id": 1963, + "name": "Identifier", + "src": "37332:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1964, + "name": "Identifier", + "src": "37349:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1965, + "name": "Identifier", + "src": "37362:5:1" + } + ], + "id": 1966, + "name": "FunctionCall", + "src": "37332:38:1" + } + ], + "id": 1967, + "name": "FunctionCall", + "src": "37314:57:1" + } + ], + "id": 1968, + "name": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1969, + "name": "Identifier", + "src": "37506:3:1" + } + ], + "id": 1972, + "name": "MemberAccess", + "src": "37506:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1971, + "name": "Identifier", + "src": "37519:3:1" + } + ], + "id": 1973, + "name": "IndexAccess", + "src": "37506:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1974, + "name": "Identifier", + "src": "37526:3:1" + } + ], + "id": 1975, + "name": "MemberAccess", + "src": "37526:12:1" + } + ], + "id": 1976, + "name": "MemberAccess", + "src": "37526:19:1" + } + ], + "id": 1977, + "name": "Assignment", + "src": "37506:39:1" + } + ], + "id": 1978, + "name": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1979, + "name": "Literal", + "src": "37566:4:1" + } + ], + "id": 1980, + "name": "Return", + "src": "37559:11:1" + } + ], + "id": 1981, + "name": "Block", + "src": "37263:318:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1982, + "name": "Identifier", + "src": "37601:3:1" + } + ], + "id": 1987, + "name": "MemberAccess", + "src": "37601:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1984, + "name": "Identifier", + "src": "37614:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1985, + "name": "Literal", + "src": "37625:1:1" + } + ], + "id": 1986, + "name": "BinaryOperation", + "src": "37614:12:1" + } + ], + "id": 1988, + "name": "IndexAccess", + "src": "37601:26:1" + } + ], + "id": 1989, + "name": "MemberAccess", + "src": "37601:33:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1990, + "name": "Identifier", + "src": "37637:5:1" + } + ], + "id": 1991, + "name": "Assignment", + "src": "37601:41:1" + } + ], + "id": 1992, + "name": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1993, + "name": "Literal", + "src": "37663:5:1" + } + ], + "id": 1994, + "name": "Return", + "src": "37656:12:1" + } + ], + "id": 1995, + "name": "Block", + "src": "37587:92:1" + } + ], + "id": 1996, + "name": "IfStatement", + "src": "37244:435:1" + } + ], + "id": 1997, + "name": "Block", + "src": "37089:596:1" + } + ], + "id": 1998, + "name": "FunctionDefinition", + "src": "37007:678:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 1999, + "name": "StructuredDocumentation", + "src": "37691:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2079, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2000, + "name": "UserDefinedTypeName", + "src": "37870:3:1" + } + ], + "id": 2001, + "name": "VariableDeclaration", + "src": "37870:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2002, + "name": "ElementaryTypeName", + "src": "37887:7:1" + } + ], + "id": 2003, + "name": "VariableDeclaration", + "src": "37887:11:1" + } + ], + "id": 2004, + "name": "ParameterList", + "src": "37869:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2005, + "name": "ElementaryTypeName", + "src": "37917:4:1" + } + ], + "id": 2006, + "name": "VariableDeclaration", + "src": "37917:4:1" + } + ], + "id": 2007, + "name": "ParameterList", + "src": "37916:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2009 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2078, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2008, + "name": "ElementaryTypeName", + "src": "38031:7:1" + } + ], + "id": 2009, + "name": "VariableDeclaration", + "src": "38031:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2010, + "name": "Identifier", + "src": "38050:3:1" + } + ], + "id": 2011, + "name": "MemberAccess", + "src": "38050:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2012, + "name": "Identifier", + "src": "38063:3:1" + } + ], + "id": 2013, + "name": "IndexAccess", + "src": "38050:17:1" + } + ], + "id": 2014, + "name": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2015, + "name": "Identifier", + "src": "38082:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2016, + "name": "Literal", + "src": "38094:1:1" + } + ], + "id": 2017, + "name": "BinaryOperation", + "src": "38082:13:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2019 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2018, + "name": "ElementaryTypeName", + "src": "38438:7:1" + } + ], + "id": 2019, + "name": "VariableDeclaration", + "src": "38438:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2020, + "name": "Identifier", + "src": "38462:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2021, + "name": "Literal", + "src": "38473:1:1" + } + ], + "id": 2022, + "name": "BinaryOperation", + "src": "38462:12:1" + } + ], + "id": 2023, + "name": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "attributes": { + "assignments": [ + 2025 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2024, + "name": "ElementaryTypeName", + "src": "38488:7:1" + } + ], + "id": 2025, + "name": "VariableDeclaration", + "src": "38488:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2026, + "name": "Identifier", + "src": "38508:3:1" + } + ], + "id": 2027, + "name": "MemberAccess", + "src": "38508:12:1" + } + ], + "id": 2028, + "name": "MemberAccess", + "src": "38508:19:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2029, + "name": "Literal", + "src": "38530:1:1" + } + ], + "id": 2030, + "name": "BinaryOperation", + "src": "38508:23:1" + } + ], + "id": 2031, + "name": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "attributes": { + "assignments": [ + 2033 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastEntry", + "scope": 2073, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2032, + "name": "UserDefinedTypeName", + "src": "38771:8:1" + } + ], + "id": 2033, + "name": "VariableDeclaration", + "src": "38771:26:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2034, + "name": "Identifier", + "src": "38800:3:1" + } + ], + "id": 2035, + "name": "MemberAccess", + "src": "38800:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2025, + "type": "uint256", + "value": "lastIndex" + }, + "id": 2036, + "name": "Identifier", + "src": "38813:9:1" + } + ], + "id": 2037, + "name": "IndexAccess", + "src": "38800:23:1" + } + ], + "id": 2038, + "name": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2039, + "name": "Identifier", + "src": "38915:3:1" + } + ], + "id": 2042, + "name": "MemberAccess", + "src": "38915:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2041, + "name": "Identifier", + "src": "38928:13:1" + } + ], + "id": 2043, + "name": "IndexAccess", + "src": "38915:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2044, + "name": "Identifier", + "src": "38945:9:1" + } + ], + "id": 2045, + "name": "Assignment", + "src": "38915:39:1" + } + ], + "id": 2046, + "name": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2047, + "name": "Identifier", + "src": "39020:3:1" + } + ], + "id": 2051, + "name": "MemberAccess", + "src": "39020:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2049, + "name": "Identifier", + "src": "39033:9:1" + } + ], + "id": 2050, + "name": "MemberAccess", + "src": "39033:14:1" + } + ], + "id": 2052, + "name": "IndexAccess", + "src": "39020:28:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2053, + "name": "Identifier", + "src": "39051:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2054, + "name": "Literal", + "src": "39067:1:1" + } + ], + "id": 2055, + "name": "BinaryOperation", + "src": "39051:17:1" + } + ], + "id": 2056, + "name": "Assignment", + "src": "39020:48:1" + } + ], + "id": 2057, + "name": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2058, + "name": "Identifier", + "src": "39174:3:1" + } + ], + "id": 2061, + "name": "MemberAccess", + "src": "39174:12:1" + } + ], + "id": 2062, + "name": "MemberAccess", + "src": "39174:16:1" + } + ], + "id": 2063, + "name": "FunctionCall", + "src": "39174:18:1" + } + ], + "id": 2064, + "name": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2065, + "name": "Identifier", + "src": "39267:3:1" + } + ], + "id": 2066, + "name": "MemberAccess", + "src": "39267:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2067, + "name": "Identifier", + "src": "39280:3:1" + } + ], + "id": 2068, + "name": "IndexAccess", + "src": "39267:17:1" + } + ], + "id": 2069, + "name": "UnaryOperation", + "src": "39260:24:1" + } + ], + "id": 2070, + "name": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2071, + "name": "Literal", + "src": "39306:4:1" + } + ], + "id": 2072, + "name": "Return", + "src": "39299:11:1" + } + ], + "id": 2073, + "name": "Block", + "src": "38097:1224:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2074, + "name": "Literal", + "src": "39348:5:1" + } + ], + "id": 2075, + "name": "Return", + "src": "39341:12:1" + } + ], + "id": 2076, + "name": "Block", + "src": "39327:37:1" + } + ], + "id": 2077, + "name": "IfStatement", + "src": "38078:1286:1" + } + ], + "id": 2078, + "name": "Block", + "src": "37923:1447:1" + } + ], + "id": 2079, + "name": "FunctionDefinition", + "src": "37853:1517:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2080, + "name": "StructuredDocumentation", + "src": "39376:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2097, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2081, + "name": "UserDefinedTypeName", + "src": "39468:3:1" + } + ], + "id": 2082, + "name": "VariableDeclaration", + "src": "39468:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2083, + "name": "ElementaryTypeName", + "src": "39485:7:1" + } + ], + "id": 2084, + "name": "VariableDeclaration", + "src": "39485:11:1" + } + ], + "id": 2085, + "name": "ParameterList", + "src": "39467:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2086, + "name": "ElementaryTypeName", + "src": "39520:4:1" + } + ], + "id": 2087, + "name": "VariableDeclaration", + "src": "39520:4:1" + } + ], + "id": 2088, + "name": "ParameterList", + "src": "39519:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2088 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2082, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2089, + "name": "Identifier", + "src": "39543:3:1" + } + ], + "id": 2090, + "name": "MemberAccess", + "src": "39543:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2084, + "type": "bytes32", + "value": "key" + }, + "id": 2091, + "name": "Identifier", + "src": "39556:3:1" + } + ], + "id": 2092, + "name": "IndexAccess", + "src": "39543:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2093, + "name": "Literal", + "src": "39564:1:1" + } + ], + "id": 2094, + "name": "BinaryOperation", + "src": "39543:22:1" + } + ], + "id": 2095, + "name": "Return", + "src": "39536:29:1" + } + ], + "id": 2096, + "name": "Block", + "src": "39526:46:1" + } + ], + "id": 2097, + "name": "FunctionDefinition", + "src": "39449:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2098, + "name": "StructuredDocumentation", + "src": "39578:79:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2110, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2099, + "name": "UserDefinedTypeName", + "src": "39679:3:1" + } + ], + "id": 2100, + "name": "VariableDeclaration", + "src": "39679:15:1" + } + ], + "id": 2101, + "name": "ParameterList", + "src": "39678:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2102, + "name": "ElementaryTypeName", + "src": "39718:7:1" + } + ], + "id": 2103, + "name": "VariableDeclaration", + "src": "39718:7:1" + } + ], + "id": 2104, + "name": "ParameterList", + "src": "39717:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2104 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2100, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2105, + "name": "Identifier", + "src": "39744:3:1" + } + ], + "id": 2106, + "name": "MemberAccess", + "src": "39744:12:1" + } + ], + "id": 2107, + "name": "MemberAccess", + "src": "39744:19:1" + } + ], + "id": 2108, + "name": "Return", + "src": "39737:26:1" + } + ], + "id": 2109, + "name": "Block", + "src": "39727:43:1" + } + ], + "id": 2110, + "name": "FunctionDefinition", + "src": "39662:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2111, + "name": "StructuredDocumentation", + "src": "39775:333:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2145, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2112, + "name": "UserDefinedTypeName", + "src": "40126:3:1" + } + ], + "id": 2113, + "name": "VariableDeclaration", + "src": "40126:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2114, + "name": "ElementaryTypeName", + "src": "40143:7:1" + } + ], + "id": 2115, + "name": "VariableDeclaration", + "src": "40143:13:1" + } + ], + "id": 2116, + "name": "ParameterList", + "src": "40125:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2117, + "name": "ElementaryTypeName", + "src": "40180:7:1" + } + ], + "id": 2118, + "name": "VariableDeclaration", + "src": "40180:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2119, + "name": "ElementaryTypeName", + "src": "40189:7:1" + } + ], + "id": 2120, + "name": "VariableDeclaration", + "src": "40189:7:1" + } + ], + "id": 2121, + "name": "ParameterList", + "src": "40179:18:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2122, + "name": "Identifier", + "src": "40208:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2123, + "name": "Identifier", + "src": "40216:3:1" + } + ], + "id": 2124, + "name": "MemberAccess", + "src": "40216:12:1" + } + ], + "id": 2125, + "name": "MemberAccess", + "src": "40216:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2126, + "name": "Identifier", + "src": "40238:5:1" + } + ], + "id": 2127, + "name": "BinaryOperation", + "src": "40216:27:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: index out of bounds\"", + "value": "EnumerableMap: index out of bounds" + }, + "id": 2128, + "name": "Literal", + "src": "40245:36:1" + } + ], + "id": 2129, + "name": "FunctionCall", + "src": "40208:74:1" + } + ], + "id": 2130, + "name": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "attributes": { + "assignments": [ + 2132 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "entry", + "scope": 2144, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2131, + "name": "UserDefinedTypeName", + "src": "40293:8:1" + } + ], + "id": 2132, + "name": "VariableDeclaration", + "src": "40293:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2133, + "name": "Identifier", + "src": "40318:3:1" + } + ], + "id": 2134, + "name": "MemberAccess", + "src": "40318:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2135, + "name": "Identifier", + "src": "40331:5:1" + } + ], + "id": 2136, + "name": "IndexAccess", + "src": "40318:19:1" + } + ], + "id": 2137, + "name": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2121 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bytes32,bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2138, + "name": "Identifier", + "src": "40355:5:1" + } + ], + "id": 2139, + "name": "MemberAccess", + "src": "40355:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2140, + "name": "Identifier", + "src": "40367:5:1" + } + ], + "id": 2141, + "name": "MemberAccess", + "src": "40367:12:1" + } + ], + "id": 2142, + "name": "TupleExpression", + "src": "40354:26:1" + } + ], + "id": 2143, + "name": "Return", + "src": "40347:33:1" + } + ], + "id": 2144, + "name": "Block", + "src": "40198:189:1" + } + ], + "id": 2145, + "name": "FunctionDefinition", + "src": "40113:274:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2146, + "name": "StructuredDocumentation", + "src": "40393:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2183, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2147, + "name": "UserDefinedTypeName", + "src": "40546:3:1" + } + ], + "id": 2148, + "name": "VariableDeclaration", + "src": "40546:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2149, + "name": "ElementaryTypeName", + "src": "40563:7:1" + } + ], + "id": 2150, + "name": "VariableDeclaration", + "src": "40563:11:1" + } + ], + "id": 2151, + "name": "ParameterList", + "src": "40545:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2152, + "name": "ElementaryTypeName", + "src": "40598:4:1" + } + ], + "id": 2153, + "name": "VariableDeclaration", + "src": "40598:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2154, + "name": "ElementaryTypeName", + "src": "40604:7:1" + } + ], + "id": 2155, + "name": "VariableDeclaration", + "src": "40604:7:1" + } + ], + "id": 2156, + "name": "ParameterList", + "src": "40597:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2158 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2182, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2157, + "name": "ElementaryTypeName", + "src": "40623:7:1" + } + ], + "id": 2158, + "name": "VariableDeclaration", + "src": "40623:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2159, + "name": "Identifier", + "src": "40642:3:1" + } + ], + "id": 2160, + "name": "MemberAccess", + "src": "40642:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2150, + "type": "bytes32", + "value": "key" + }, + "id": 2161, + "name": "Identifier", + "src": "40655:3:1" + } + ], + "id": 2162, + "name": "IndexAccess", + "src": "40642:17:1" + } + ], + "id": 2163, + "name": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2164, + "name": "Identifier", + "src": "40673:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2165, + "name": "Literal", + "src": "40685:1:1" + } + ], + "id": 2166, + "name": "BinaryOperation", + "src": "40673:13:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2167, + "name": "Literal", + "src": "40696:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2168, + "name": "Literal", + "src": "40703:1:1" + } + ], + "id": 2169, + "name": "TupleExpression", + "src": "40695:10:1" + } + ], + "id": 2170, + "name": "Return", + "src": "40688:17:1" + } + ], + "id": 2171, + "name": "IfStatement", + "src": "40669:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,bytes32)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2172, + "name": "Literal", + "src": "40759:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2173, + "name": "Identifier", + "src": "40765:3:1" + } + ], + "id": 2174, + "name": "MemberAccess", + "src": "40765:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2175, + "name": "Identifier", + "src": "40778:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2176, + "name": "Literal", + "src": "40789:1:1" + } + ], + "id": 2177, + "name": "BinaryOperation", + "src": "40778:12:1" + } + ], + "id": 2178, + "name": "IndexAccess", + "src": "40765:26:1" + } + ], + "id": 2179, + "name": "MemberAccess", + "src": "40765:33:1" + } + ], + "id": 2180, + "name": "TupleExpression", + "src": "40758:41:1" + } + ], + "id": 2181, + "name": "Return", + "src": "40751:48:1" + } + ], + "id": 2182, + "name": "Block", + "src": "40613:220:1" + } + ], + "id": 2183, + "name": "FunctionDefinition", + "src": "40529:304:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2184, + "name": "StructuredDocumentation", + "src": "40839:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2216, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2185, + "name": "UserDefinedTypeName", + "src": "40999:3:1" + } + ], + "id": 2186, + "name": "VariableDeclaration", + "src": "40999:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2187, + "name": "ElementaryTypeName", + "src": "41016:7:1" + } + ], + "id": 2188, + "name": "VariableDeclaration", + "src": "41016:11:1" + } + ], + "id": 2189, + "name": "ParameterList", + "src": "40998:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2190, + "name": "ElementaryTypeName", + "src": "41051:7:1" + } + ], + "id": 2191, + "name": "VariableDeclaration", + "src": "41051:7:1" + } + ], + "id": 2192, + "name": "ParameterList", + "src": "41050:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2194 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2215, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2193, + "name": "ElementaryTypeName", + "src": "41070:7:1" + } + ], + "id": 2194, + "name": "VariableDeclaration", + "src": "41070:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2195, + "name": "Identifier", + "src": "41089:3:1" + } + ], + "id": 2196, + "name": "MemberAccess", + "src": "41089:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2188, + "type": "bytes32", + "value": "key" + }, + "id": 2197, + "name": "Identifier", + "src": "41102:3:1" + } + ], + "id": 2198, + "name": "IndexAccess", + "src": "41089:17:1" + } + ], + "id": 2199, + "name": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2200, + "name": "Identifier", + "src": "41116:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2201, + "name": "Identifier", + "src": "41124:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2202, + "name": "Literal", + "src": "41136:1:1" + } + ], + "id": 2203, + "name": "BinaryOperation", + "src": "41124:13:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: nonexistent key\"", + "value": "EnumerableMap: nonexistent key" + }, + "id": 2204, + "name": "Literal", + "src": "41139:32:1" + } + ], + "id": 2205, + "name": "FunctionCall", + "src": "41116:56:1" + } + ], + "id": 2206, + "name": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "attributes": { + "functionReturnParameters": 2192 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2207, + "name": "Identifier", + "src": "41225:3:1" + } + ], + "id": 2208, + "name": "MemberAccess", + "src": "41225:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2209, + "name": "Identifier", + "src": "41238:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2210, + "name": "Literal", + "src": "41249:1:1" + } + ], + "id": 2211, + "name": "BinaryOperation", + "src": "41238:12:1" + } + ], + "id": 2212, + "name": "IndexAccess", + "src": "41225:26:1" + } + ], + "id": 2213, + "name": "MemberAccess", + "src": "41225:33:1" + } + ], + "id": 2214, + "name": "Return", + "src": "41218:40:1" + } + ], + "id": 2215, + "name": "Block", + "src": "41060:232:1" + } + ], + "id": 2216, + "name": "FunctionDefinition", + "src": "40985:307:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2217, + "name": "StructuredDocumentation", + "src": "41298:271:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2251, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2218, + "name": "UserDefinedTypeName", + "src": "41588:3:1" + } + ], + "id": 2219, + "name": "VariableDeclaration", + "src": "41588:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2220, + "name": "ElementaryTypeName", + "src": "41605:7:1" + } + ], + "id": 2221, + "name": "VariableDeclaration", + "src": "41605:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2251, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2222, + "name": "ElementaryTypeName", + "src": "41618:6:1" + } + ], + "id": 2223, + "name": "VariableDeclaration", + "src": "41618:26:1" + } + ], + "id": 2224, + "name": "ParameterList", + "src": "41587:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2225, + "name": "ElementaryTypeName", + "src": "41668:7:1" + } + ], + "id": 2226, + "name": "VariableDeclaration", + "src": "41668:7:1" + } + ], + "id": 2227, + "name": "ParameterList", + "src": "41667:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2229 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2250, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2228, + "name": "ElementaryTypeName", + "src": "41687:7:1" + } + ], + "id": 2229, + "name": "VariableDeclaration", + "src": "41687:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2230, + "name": "Identifier", + "src": "41706:3:1" + } + ], + "id": 2231, + "name": "MemberAccess", + "src": "41706:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2221, + "type": "bytes32", + "value": "key" + }, + "id": 2232, + "name": "Identifier", + "src": "41719:3:1" + } + ], + "id": 2233, + "name": "IndexAccess", + "src": "41706:17:1" + } + ], + "id": 2234, + "name": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2235, + "name": "Identifier", + "src": "41733:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2236, + "name": "Identifier", + "src": "41741:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2237, + "name": "Literal", + "src": "41753:1:1" + } + ], + "id": 2238, + "name": "BinaryOperation", + "src": "41741:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2223, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2239, + "name": "Identifier", + "src": "41756:12:1" + } + ], + "id": 2240, + "name": "FunctionCall", + "src": "41733:36:1" + } + ], + "id": 2241, + "name": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2227 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2242, + "name": "Identifier", + "src": "41822:3:1" + } + ], + "id": 2243, + "name": "MemberAccess", + "src": "41822:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2244, + "name": "Identifier", + "src": "41835:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2245, + "name": "Literal", + "src": "41846:1:1" + } + ], + "id": 2246, + "name": "BinaryOperation", + "src": "41835:12:1" + } + ], + "id": 2247, + "name": "IndexAccess", + "src": "41822:26:1" + } + ], + "id": 2248, + "name": "MemberAccess", + "src": "41822:33:1" + } + ], + "id": 2249, + "name": "Return", + "src": "41815:40:1" + } + ], + "id": 2250, + "name": "Block", + "src": "41677:212:1" + } + ], + "id": 2251, + "name": "FunctionDefinition", + "src": "41574:315:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.UintToAddressMap", + "name": "UintToAddressMap", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 2254, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2252, + "name": "UserDefinedTypeName", + "src": "41954:3:1" + } + ], + "id": 2253, + "name": "VariableDeclaration", + "src": "41954:10:1" + } + ], + "id": 2254, + "name": "StructDefinition", + "src": "41920:51:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2255, + "name": "StructuredDocumentation", + "src": "41977:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2286, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2256, + "name": "UserDefinedTypeName", + "src": "42211:16:1" + } + ], + "id": 2257, + "name": "VariableDeclaration", + "src": "42211:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2258, + "name": "ElementaryTypeName", + "src": "42241:7:1" + } + ], + "id": 2259, + "name": "VariableDeclaration", + "src": "42241:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2260, + "name": "ElementaryTypeName", + "src": "42254:7:1" + } + ], + "id": 2261, + "name": "VariableDeclaration", + "src": "42254:13:1" + } + ], + "id": 2262, + "name": "ParameterList", + "src": "42210:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2263, + "name": "ElementaryTypeName", + "src": "42287:4:1" + } + ], + "id": 2264, + "name": "VariableDeclaration", + "src": "42287:4:1" + } + ], + "id": 2265, + "name": "ParameterList", + "src": "42286:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2265 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1998, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)", + "value": "_set" + }, + "id": 2266, + "name": "Identifier", + "src": "42310:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2257, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2267, + "name": "Identifier", + "src": "42315:3:1" + } + ], + "id": 2268, + "name": "MemberAccess", + "src": "42315:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2269, + "name": "ElementaryTypeName", + "src": "42327:7:1" + } + ], + "id": 2270, + "name": "ElementaryTypeNameExpression", + "src": "42327:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2259, + "type": "uint256", + "value": "key" + }, + "id": 2271, + "name": "Identifier", + "src": "42335:3:1" + } + ], + "id": 2272, + "name": "FunctionCall", + "src": "42327:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2273, + "name": "ElementaryTypeName", + "src": "42341:7:1" + } + ], + "id": 2274, + "name": "ElementaryTypeNameExpression", + "src": "42341:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2275, + "name": "ElementaryTypeName", + "src": "42349:7:1" + } + ], + "id": 2276, + "name": "ElementaryTypeNameExpression", + "src": "42349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2277, + "name": "ElementaryTypeName", + "src": "42357:7:1" + } + ], + "id": 2278, + "name": "ElementaryTypeNameExpression", + "src": "42357:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2261, + "type": "address", + "value": "value" + }, + "id": 2279, + "name": "Identifier", + "src": "42365:5:1" + } + ], + "id": 2280, + "name": "FunctionCall", + "src": "42357:14:1" + } + ], + "id": 2281, + "name": "FunctionCall", + "src": "42349:23:1" + } + ], + "id": 2282, + "name": "FunctionCall", + "src": "42341:32:1" + } + ], + "id": 2283, + "name": "FunctionCall", + "src": "42310:64:1" + } + ], + "id": 2284, + "name": "Return", + "src": "42303:71:1" + } + ], + "id": 2285, + "name": "Block", + "src": "42293:88:1" + } + ], + "id": 2286, + "name": "FunctionDefinition", + "src": "42198:183:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2287, + "name": "StructuredDocumentation", + "src": "42387:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2306, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2288, + "name": "UserDefinedTypeName", + "src": "42556:16:1" + } + ], + "id": 2289, + "name": "VariableDeclaration", + "src": "42556:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2290, + "name": "ElementaryTypeName", + "src": "42586:7:1" + } + ], + "id": 2291, + "name": "VariableDeclaration", + "src": "42586:11:1" + } + ], + "id": 2292, + "name": "ParameterList", + "src": "42555:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2293, + "name": "ElementaryTypeName", + "src": "42617:4:1" + } + ], + "id": 2294, + "name": "VariableDeclaration", + "src": "42617:4:1" + } + ], + "id": 2295, + "name": "ParameterList", + "src": "42616:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2295 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2079, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 2296, + "name": "Identifier", + "src": "42640:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2289, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2297, + "name": "Identifier", + "src": "42648:3:1" + } + ], + "id": 2298, + "name": "MemberAccess", + "src": "42648:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2299, + "name": "ElementaryTypeName", + "src": "42660:7:1" + } + ], + "id": 2300, + "name": "ElementaryTypeNameExpression", + "src": "42660:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2291, + "type": "uint256", + "value": "key" + }, + "id": 2301, + "name": "Identifier", + "src": "42668:3:1" + } + ], + "id": 2302, + "name": "FunctionCall", + "src": "42660:12:1" + } + ], + "id": 2303, + "name": "FunctionCall", + "src": "42640:33:1" + } + ], + "id": 2304, + "name": "Return", + "src": "42633:40:1" + } + ], + "id": 2305, + "name": "Block", + "src": "42623:57:1" + } + ], + "id": 2306, + "name": "FunctionDefinition", + "src": "42540:140:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2307, + "name": "StructuredDocumentation", + "src": "42686:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2326, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2308, + "name": "UserDefinedTypeName", + "src": "42777:16:1" + } + ], + "id": 2309, + "name": "VariableDeclaration", + "src": "42777:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2310, + "name": "ElementaryTypeName", + "src": "42807:7:1" + } + ], + "id": 2311, + "name": "VariableDeclaration", + "src": "42807:11:1" + } + ], + "id": 2312, + "name": "ParameterList", + "src": "42776:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2313, + "name": "ElementaryTypeName", + "src": "42843:4:1" + } + ], + "id": 2314, + "name": "VariableDeclaration", + "src": "42843:4:1" + } + ], + "id": 2315, + "name": "ParameterList", + "src": "42842:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2315 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2097, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 2316, + "name": "Identifier", + "src": "42866:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2309, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2317, + "name": "Identifier", + "src": "42876:3:1" + } + ], + "id": 2318, + "name": "MemberAccess", + "src": "42876:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2319, + "name": "ElementaryTypeName", + "src": "42888:7:1" + } + ], + "id": 2320, + "name": "ElementaryTypeNameExpression", + "src": "42888:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2311, + "type": "uint256", + "value": "key" + }, + "id": 2321, + "name": "Identifier", + "src": "42896:3:1" + } + ], + "id": 2322, + "name": "FunctionCall", + "src": "42888:12:1" + } + ], + "id": 2323, + "name": "FunctionCall", + "src": "42866:35:1" + } + ], + "id": 2324, + "name": "Return", + "src": "42859:42:1" + } + ], + "id": 2325, + "name": "Block", + "src": "42849:59:1" + } + ], + "id": 2326, + "name": "FunctionDefinition", + "src": "42759:149:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2327, + "name": "StructuredDocumentation", + "src": "42914:72:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2340, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2328, + "name": "UserDefinedTypeName", + "src": "43007:16:1" + } + ], + "id": 2329, + "name": "VariableDeclaration", + "src": "43007:28:1" + } + ], + "id": 2330, + "name": "ParameterList", + "src": "43006:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2340, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2331, + "name": "ElementaryTypeName", + "src": "43060:7:1" + } + ], + "id": 2332, + "name": "VariableDeclaration", + "src": "43060:7:1" + } + ], + "id": 2333, + "name": "ParameterList", + "src": "43059:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2333 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2110, + "type": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 2334, + "name": "Identifier", + "src": "43086:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2329, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2335, + "name": "Identifier", + "src": "43094:3:1" + } + ], + "id": 2336, + "name": "MemberAccess", + "src": "43094:10:1" + } + ], + "id": 2337, + "name": "FunctionCall", + "src": "43086:19:1" + } + ], + "id": 2338, + "name": "Return", + "src": "43079:26:1" + } + ], + "id": 2339, + "name": "Block", + "src": "43069:43:1" + } + ], + "id": 2340, + "name": "FunctionDefinition", + "src": "42991:121:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2341, + "name": "StructuredDocumentation", + "src": "43117:318:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2379, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2342, + "name": "UserDefinedTypeName", + "src": "43452:16:1" + } + ], + "id": 2343, + "name": "VariableDeclaration", + "src": "43452:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2344, + "name": "ElementaryTypeName", + "src": "43482:7:1" + } + ], + "id": 2345, + "name": "VariableDeclaration", + "src": "43482:13:1" + } + ], + "id": 2346, + "name": "ParameterList", + "src": "43451:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2347, + "name": "ElementaryTypeName", + "src": "43520:7:1" + } + ], + "id": 2348, + "name": "VariableDeclaration", + "src": "43520:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2349, + "name": "ElementaryTypeName", + "src": "43529:7:1" + } + ], + "id": 2350, + "name": "VariableDeclaration", + "src": "43529:7:1" + } + ], + "id": 2351, + "name": "ParameterList", + "src": "43519:18:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2353, + 2355 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2352, + "name": "ElementaryTypeName", + "src": "43549:7:1" + } + ], + "id": 2353, + "name": "VariableDeclaration", + "src": "43549:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2354, + "name": "ElementaryTypeName", + "src": "43562:7:1" + } + ], + "id": 2355, + "name": "VariableDeclaration", + "src": "43562:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bytes32,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2145, + "type": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)", + "value": "_at" + }, + "id": 2356, + "name": "Identifier", + "src": "43579:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2343, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2357, + "name": "Identifier", + "src": "43583:3:1" + } + ], + "id": 2358, + "name": "MemberAccess", + "src": "43583:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2345, + "type": "uint256", + "value": "index" + }, + "id": 2359, + "name": "Identifier", + "src": "43595:5:1" + } + ], + "id": 2360, + "name": "FunctionCall", + "src": "43579:22:1" + } + ], + "id": 2361, + "name": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "attributes": { + "functionReturnParameters": 2351 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(uint256,address payable)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2362, + "name": "ElementaryTypeName", + "src": "43619:7:1" + } + ], + "id": 2363, + "name": "ElementaryTypeNameExpression", + "src": "43619:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2353, + "type": "bytes32", + "value": "key" + }, + "id": 2364, + "name": "Identifier", + "src": "43627:3:1" + } + ], + "id": 2365, + "name": "FunctionCall", + "src": "43619:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2366, + "name": "ElementaryTypeName", + "src": "43633:7:1" + } + ], + "id": 2367, + "name": "ElementaryTypeNameExpression", + "src": "43633:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2368, + "name": "ElementaryTypeName", + "src": "43641:7:1" + } + ], + "id": 2369, + "name": "ElementaryTypeNameExpression", + "src": "43641:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2370, + "name": "ElementaryTypeName", + "src": "43649:7:1" + } + ], + "id": 2371, + "name": "ElementaryTypeNameExpression", + "src": "43649:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2355, + "type": "bytes32", + "value": "value" + }, + "id": 2372, + "name": "Identifier", + "src": "43657:5:1" + } + ], + "id": 2373, + "name": "FunctionCall", + "src": "43649:14:1" + } + ], + "id": 2374, + "name": "FunctionCall", + "src": "43641:23:1" + } + ], + "id": 2375, + "name": "FunctionCall", + "src": "43633:32:1" + } + ], + "id": 2376, + "name": "TupleExpression", + "src": "43618:48:1" + } + ], + "id": 2377, + "name": "Return", + "src": "43611:55:1" + } + ], + "id": 2378, + "name": "Block", + "src": "43538:135:1" + } + ], + "id": 2379, + "name": "FunctionDefinition", + "src": "43440:233:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2380, + "name": "StructuredDocumentation", + "src": "43679:169:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2418, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2381, + "name": "UserDefinedTypeName", + "src": "43869:16:1" + } + ], + "id": 2382, + "name": "VariableDeclaration", + "src": "43869:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2383, + "name": "ElementaryTypeName", + "src": "43899:7:1" + } + ], + "id": 2384, + "name": "VariableDeclaration", + "src": "43899:11:1" + } + ], + "id": 2385, + "name": "ParameterList", + "src": "43868:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2386, + "name": "ElementaryTypeName", + "src": "43935:4:1" + } + ], + "id": 2387, + "name": "VariableDeclaration", + "src": "43935:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2388, + "name": "ElementaryTypeName", + "src": "43941:7:1" + } + ], + "id": 2389, + "name": "VariableDeclaration", + "src": "43941:7:1" + } + ], + "id": 2390, + "name": "ParameterList", + "src": "43934:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2392, + 2394 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "43961:4:1" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "43961:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "43975:7:1" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "43975:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2183, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)", + "value": "_tryGet" + }, + "id": 2395, + "name": "Identifier", + "src": "43992:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2382, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2396, + "name": "Identifier", + "src": "44000:3:1" + } + ], + "id": 2397, + "name": "MemberAccess", + "src": "44000:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "44012:7:1" + } + ], + "id": 2399, + "name": "ElementaryTypeNameExpression", + "src": "44012:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2384, + "type": "uint256", + "value": "key" + }, + "id": 2400, + "name": "Identifier", + "src": "44020:3:1" + } + ], + "id": 2401, + "name": "FunctionCall", + "src": "44012:12:1" + } + ], + "id": 2402, + "name": "FunctionCall", + "src": "43992:33:1" + } + ], + "id": 2403, + "name": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "attributes": { + "functionReturnParameters": 2390 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,address payable)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2392, + "type": "bool", + "value": "success" + }, + "id": 2404, + "name": "Identifier", + "src": "44043:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2405, + "name": "ElementaryTypeName", + "src": "44052:7:1" + } + ], + "id": 2406, + "name": "ElementaryTypeNameExpression", + "src": "44052:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "44060:7:1" + } + ], + "id": 2408, + "name": "ElementaryTypeNameExpression", + "src": "44060:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "44068:7:1" + } + ], + "id": 2410, + "name": "ElementaryTypeNameExpression", + "src": "44068:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2394, + "type": "bytes32", + "value": "value" + }, + "id": 2411, + "name": "Identifier", + "src": "44076:5:1" + } + ], + "id": 2412, + "name": "FunctionCall", + "src": "44068:14:1" + } + ], + "id": 2413, + "name": "FunctionCall", + "src": "44060:23:1" + } + ], + "id": 2414, + "name": "FunctionCall", + "src": "44052:32:1" + } + ], + "id": 2415, + "name": "TupleExpression", + "src": "44042:43:1" + } + ], + "id": 2416, + "name": "Return", + "src": "44035:50:1" + } + ], + "id": 2417, + "name": "Block", + "src": "43950:142:1" + } + ], + "id": 2418, + "name": "FunctionDefinition", + "src": "43853:239:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2419, + "name": "StructuredDocumentation", + "src": "44098:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2447, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2420, + "name": "UserDefinedTypeName", + "src": "44257:16:1" + } + ], + "id": 2421, + "name": "VariableDeclaration", + "src": "44257:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2422, + "name": "ElementaryTypeName", + "src": "44287:7:1" + } + ], + "id": 2423, + "name": "VariableDeclaration", + "src": "44287:11:1" + } + ], + "id": 2424, + "name": "ParameterList", + "src": "44256:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2425, + "name": "ElementaryTypeName", + "src": "44323:7:1" + } + ], + "id": 2426, + "name": "VariableDeclaration", + "src": "44323:7:1" + } + ], + "id": 2427, + "name": "ParameterList", + "src": "44322:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2427 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2428, + "name": "ElementaryTypeName", + "src": "44349:7:1" + } + ], + "id": 2429, + "name": "ElementaryTypeNameExpression", + "src": "44349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2430, + "name": "ElementaryTypeName", + "src": "44357:7:1" + } + ], + "id": 2431, + "name": "ElementaryTypeNameExpression", + "src": "44357:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2432, + "name": "ElementaryTypeName", + "src": "44365:7:1" + } + ], + "id": 2433, + "name": "ElementaryTypeNameExpression", + "src": "44365:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)", + "value": "_get" + }, + "id": 2434, + "name": "Identifier", + "src": "44373:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2421, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2435, + "name": "Identifier", + "src": "44378:3:1" + } + ], + "id": 2436, + "name": "MemberAccess", + "src": "44378:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "44390:7:1" + } + ], + "id": 2438, + "name": "ElementaryTypeNameExpression", + "src": "44390:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2423, + "type": "uint256", + "value": "key" + }, + "id": 2439, + "name": "Identifier", + "src": "44398:3:1" + } + ], + "id": 2440, + "name": "FunctionCall", + "src": "44390:12:1" + } + ], + "id": 2441, + "name": "FunctionCall", + "src": "44373:30:1" + } + ], + "id": 2442, + "name": "FunctionCall", + "src": "44365:39:1" + } + ], + "id": 2443, + "name": "FunctionCall", + "src": "44357:48:1" + } + ], + "id": 2444, + "name": "FunctionCall", + "src": "44349:57:1" + } + ], + "id": 2445, + "name": "Return", + "src": "44342:64:1" + } + ], + "id": 2446, + "name": "Block", + "src": "44332:81:1" + } + ], + "id": 2447, + "name": "FunctionDefinition", + "src": "44244:169:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2448, + "name": "StructuredDocumentation", + "src": "44419:269:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2479, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2449, + "name": "UserDefinedTypeName", + "src": "44706:16:1" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "44706:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2451, + "name": "ElementaryTypeName", + "src": "44736:7:1" + } + ], + "id": 2452, + "name": "VariableDeclaration", + "src": "44736:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2479, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "44749:6:1" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "44749:26:1" + } + ], + "id": 2455, + "name": "ParameterList", + "src": "44705:71:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2456, + "name": "ElementaryTypeName", + "src": "44800:7:1" + } + ], + "id": 2457, + "name": "VariableDeclaration", + "src": "44800:7:1" + } + ], + "id": 2458, + "name": "ParameterList", + "src": "44799:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2458 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "44826:7:1" + } + ], + "id": 2460, + "name": "ElementaryTypeNameExpression", + "src": "44826:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "44834:7:1" + } + ], + "id": 2462, + "name": "ElementaryTypeNameExpression", + "src": "44834:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2463, + "name": "ElementaryTypeName", + "src": "44842:7:1" + } + ], + "id": 2464, + "name": "ElementaryTypeNameExpression", + "src": "44842:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)", + "value": "_get" + }, + "id": 2465, + "name": "Identifier", + "src": "44850:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2450, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2466, + "name": "Identifier", + "src": "44855:3:1" + } + ], + "id": 2467, + "name": "MemberAccess", + "src": "44855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2468, + "name": "ElementaryTypeName", + "src": "44867:7:1" + } + ], + "id": 2469, + "name": "ElementaryTypeNameExpression", + "src": "44867:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2452, + "type": "uint256", + "value": "key" + }, + "id": 2470, + "name": "Identifier", + "src": "44875:3:1" + } + ], + "id": 2471, + "name": "FunctionCall", + "src": "44867:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2454, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2472, + "name": "Identifier", + "src": "44881:12:1" + } + ], + "id": 2473, + "name": "FunctionCall", + "src": "44850:44:1" + } + ], + "id": 2474, + "name": "FunctionCall", + "src": "44842:53:1" + } + ], + "id": 2475, + "name": "FunctionCall", + "src": "44834:62:1" + } + ], + "id": 2476, + "name": "FunctionCall", + "src": "44826:71:1" + } + ], + "id": 2477, + "name": "Return", + "src": "44819:78:1" + } + ], + "id": 2478, + "name": "Block", + "src": "44809:95:1" + } + ], + "id": 2479, + "name": "FunctionDefinition", + "src": "44693:211:1" + } + ], + "id": 2480, + "name": "ContractDefinition", + "src": "35943:8963:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2481, + "name": "PragmaDirective", + "src": "44959:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev String operations." + }, + "id": 2482, + "name": "StructuredDocumentation", + "src": "44992:34:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toString", + "scope": 2566, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2483, + "name": "StructuredDocumentation", + "src": "45049:82:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2565, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2484, + "name": "ElementaryTypeName", + "src": "45154:7:1" + } + ], + "id": 2485, + "name": "VariableDeclaration", + "src": "45154:13:1" + } + ], + "id": 2486, + "name": "ParameterList", + "src": "45153:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2565, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "45192:6:1" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "45192:13:1" + } + ], + "id": 2489, + "name": "ParameterList", + "src": "45191:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2490, + "name": "Identifier", + "src": "45409:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2491, + "name": "Literal", + "src": "45418:1:1" + } + ], + "id": 2492, + "name": "BinaryOperation", + "src": "45409:10:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"0\"", + "value": "0" + }, + "id": 2493, + "name": "Literal", + "src": "45442:3:1" + } + ], + "id": 2494, + "name": "Return", + "src": "45435:10:1" + } + ], + "id": 2495, + "name": "Block", + "src": "45421:35:1" + } + ], + "id": 2496, + "name": "IfStatement", + "src": "45405:51:1" + }, + { + "attributes": { + "assignments": [ + 2498 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "temp", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2497, + "name": "ElementaryTypeName", + "src": "45465:7:1" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "45465:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2499, + "name": "Identifier", + "src": "45480:5:1" + } + ], + "id": 2500, + "name": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "attributes": { + "assignments": [ + 2502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "digits", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "45495:7:1" + } + ], + "id": 2502, + "name": "VariableDeclaration", + "src": "45495:14:1" + } + ], + "id": 2503, + "name": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2504, + "name": "Identifier", + "src": "45526:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2505, + "name": "Literal", + "src": "45534:1:1" + } + ], + "id": 2506, + "name": "BinaryOperation", + "src": "45526:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2507, + "name": "Identifier", + "src": "45551:6:1" + } + ], + "id": 2508, + "name": "UnaryOperation", + "src": "45551:8:1" + } + ], + "id": 2509, + "name": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2510, + "name": "Identifier", + "src": "45573:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2511, + "name": "Literal", + "src": "45581:2:1" + } + ], + "id": 2512, + "name": "Assignment", + "src": "45573:10:1" + } + ], + "id": 2513, + "name": "ExpressionStatement", + "src": "45573:10:1" + } + ], + "id": 2514, + "name": "Block", + "src": "45537:57:1" + } + ], + "id": 2515, + "name": "WhileStatement", + "src": "45519:75:1" + }, + { + "attributes": { + "assignments": [ + 2517 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "buffer", + "scope": 2564, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2516, + "name": "ElementaryTypeName", + "src": "45603:5:1" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "45603:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "function (uint256) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "45629:5:1" + } + ], + "id": 2519, + "name": "NewExpression", + "src": "45625:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2520, + "name": "Identifier", + "src": "45635:6:1" + } + ], + "id": 2521, + "name": "FunctionCall", + "src": "45625:17:1" + } + ], + "id": 2522, + "name": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "attributes": { + "assignments": [ + 2524 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2523, + "name": "ElementaryTypeName", + "src": "45652:7:1" + } + ], + "id": 2524, + "name": "VariableDeclaration", + "src": "45652:13:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2525, + "name": "Identifier", + "src": "45668:6:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2526, + "name": "Literal", + "src": "45677:1:1" + } + ], + "id": 2527, + "name": "BinaryOperation", + "src": "45668:10:1" + } + ], + "id": 2528, + "name": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2529, + "name": "Identifier", + "src": "45688:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2530, + "name": "Identifier", + "src": "45695:5:1" + } + ], + "id": 2531, + "name": "Assignment", + "src": "45688:12:1" + } + ], + "id": 2532, + "name": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2533, + "name": "Identifier", + "src": "45717:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2534, + "name": "Literal", + "src": "45725:1:1" + } + ], + "id": 2535, + "name": "BinaryOperation", + "src": "45717:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2536, + "name": "Identifier", + "src": "45742:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "--", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2524, + "type": "uint256", + "value": "index" + }, + "id": 2537, + "name": "Identifier", + "src": "45749:5:1" + } + ], + "id": 2538, + "name": "UnaryOperation", + "src": "45749:7:1" + } + ], + "id": 2539, + "name": "IndexAccess", + "src": "45742:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes1", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes1)" + }, + "children": [ + { + "attributes": { + "name": "bytes1" + }, + "id": 2540, + "name": "ElementaryTypeName", + "src": "45760:6:1" + } + ], + "id": 2541, + "name": "ElementaryTypeNameExpression", + "src": "45760:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 2542, + "name": "ElementaryTypeName", + "src": "45767:5:1" + } + ], + "id": 2543, + "name": "ElementaryTypeNameExpression", + "src": "45767:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "hexvalue": "3438", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 48", + "value": "48" + }, + "id": 2544, + "name": "Literal", + "src": "45773:2:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2545, + "name": "Identifier", + "src": "45778:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2546, + "name": "Literal", + "src": "45785:2:1" + } + ], + "id": 2547, + "name": "BinaryOperation", + "src": "45778:9:1" + } + ], + "id": 2548, + "name": "BinaryOperation", + "src": "45773:14:1" + } + ], + "id": 2549, + "name": "FunctionCall", + "src": "45767:21:1" + } + ], + "id": 2550, + "name": "FunctionCall", + "src": "45760:29:1" + } + ], + "id": 2551, + "name": "Assignment", + "src": "45742:47:1" + } + ], + "id": 2552, + "name": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2553, + "name": "Identifier", + "src": "45803:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2554, + "name": "Literal", + "src": "45811:2:1" + } + ], + "id": 2555, + "name": "Assignment", + "src": "45803:10:1" + } + ], + "id": 2556, + "name": "ExpressionStatement", + "src": "45803:10:1" + } + ], + "id": 2557, + "name": "Block", + "src": "45728:96:1" + } + ], + "id": 2558, + "name": "WhileStatement", + "src": "45710:114:1" + }, + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2559, + "name": "ElementaryTypeName", + "src": "45840:6:1" + } + ], + "id": 2560, + "name": "ElementaryTypeNameExpression", + "src": "45840:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2561, + "name": "Identifier", + "src": "45847:6:1" + } + ], + "id": 2562, + "name": "FunctionCall", + "src": "45840:14:1" + } + ], + "id": 2563, + "name": "Return", + "src": "45833:21:1" + } + ], + "id": 2564, + "name": "Block", + "src": "45207:654:1" + } + ], + "id": 2565, + "name": "FunctionDefinition", + "src": "45136:725:1" + } + ], + "id": 2566, + "name": "ContractDefinition", + "src": "45027:836:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2567, + "name": "PragmaDirective", + "src": "45922:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 2568, + "name": "StructuredDocumentation", + "src": "45955:124:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "Context", + "referencedDeclaration": 530, + "type": "contract Context" + }, + "id": 2569, + "name": "UserDefinedTypeName", + "src": "46099:7:1" + } + ], + "id": 2570, + "name": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "ERC165", + "referencedDeclaration": 781, + "type": "contract ERC165" + }, + "id": 2571, + "name": "UserDefinedTypeName", + "src": "46108:6:1" + } + ], + "id": 2572, + "name": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 2573, + "name": "UserDefinedTypeName", + "src": "46116:7:1" + } + ], + "id": 2574, + "name": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Metadata", + "referencedDeclaration": 680, + "type": "contract IERC721Metadata" + }, + "id": 2575, + "name": "UserDefinedTypeName", + "src": "46125:15:1" + } + ], + "id": 2576, + "name": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Enumerable", + "referencedDeclaration": 709, + "type": "contract IERC721Enumerable" + }, + "id": 2577, + "name": "UserDefinedTypeName", + "src": "46142:17:1" + } + ], + "id": 2578, + "name": "InheritanceSpecifier", + "src": "46142:17:1" + }, + { + "children": [ + { + "attributes": { + "name": "SafeMath", + "referencedDeclaration": 1135, + "type": "library SafeMath" + }, + "id": 2579, + "name": "UserDefinedTypeName", + "src": "46172:8:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2580, + "name": "ElementaryTypeName", + "src": "46185:7:1" + } + ], + "id": 2581, + "name": "UsingForDirective", + "src": "46166:27:1" + }, + { + "children": [ + { + "attributes": { + "name": "Address", + "referencedDeclaration": 1430, + "type": "library Address" + }, + "id": 2582, + "name": "UserDefinedTypeName", + "src": "46204:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "46216:7:1" + } + ], + "id": 2584, + "name": "UsingForDirective", + "src": "46198:26:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableSet", + "referencedDeclaration": 1921, + "type": "library EnumerableSet" + }, + "id": 2585, + "name": "UserDefinedTypeName", + "src": "46235:13:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2586, + "name": "UserDefinedTypeName", + "src": "46253:21:1" + } + ], + "id": 2587, + "name": "UsingForDirective", + "src": "46229:46:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableMap", + "referencedDeclaration": 2480, + "type": "library EnumerableMap" + }, + "id": 2588, + "name": "UserDefinedTypeName", + "src": "46286:13:1" + }, + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2589, + "name": "UserDefinedTypeName", + "src": "46304:30:1" + } + ], + "id": 2590, + "name": "UsingForDirective", + "src": "46280:55:1" + }, + { + "children": [ + { + "attributes": { + "name": "Strings", + "referencedDeclaration": 2566, + "type": "library Strings" + }, + "id": 2591, + "name": "UserDefinedTypeName", + "src": "46346:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2592, + "name": "ElementaryTypeName", + "src": "46358:7:1" + } + ], + "id": 2593, + "name": "UsingForDirective", + "src": "46340:26:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "46544:6:1" + }, + { + "attributes": { + "hexvalue": "30783135306237613032", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 353073666", + "value": "0x150b7a02" + }, + "id": 2595, + "name": "Literal", + "src": "46587:10:1" + } + ], + "id": 2596, + "name": "VariableDeclaration", + "src": "46544:53:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_holderTokens", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => struct EnumerableSet.UintSet)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct EnumerableSet.UintSet)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2597, + "name": "ElementaryTypeName", + "src": "46690:7:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2598, + "name": "UserDefinedTypeName", + "src": "46701:21:1" + } + ], + "id": 2599, + "name": "Mapping", + "src": "46681:42:1" + } + ], + "id": 2600, + "name": "VariableDeclaration", + "src": "46681:64:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenOwners", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2601, + "name": "UserDefinedTypeName", + "src": "46809:30:1" + } + ], + "id": 2602, + "name": "VariableDeclaration", + "src": "46809:51:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => address)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => address)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2603, + "name": "ElementaryTypeName", + "src": "46925:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "46936:7:1" + } + ], + "id": 2605, + "name": "Mapping", + "src": "46916:28:1" + } + ], + "id": 2606, + "name": "VariableDeclaration", + "src": "46916:52:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_operatorApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => mapping(address => bool))", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => mapping(address => bool))" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2607, + "name": "ElementaryTypeName", + "src": "47032:7:1" + }, + { + "attributes": { + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2608, + "name": "ElementaryTypeName", + "src": "47052:7:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2609, + "name": "ElementaryTypeName", + "src": "47063:4:1" + } + ], + "id": 2610, + "name": "Mapping", + "src": "47043:25:1" + } + ], + "id": 2611, + "name": "Mapping", + "src": "47023:46:1" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "47023:73:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_name", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "47121:6:1" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "47121:20:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_symbol", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "47168:6:1" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "47168:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURIs", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => string)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => string)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "47245:7:1" + }, + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2618, + "name": "ElementaryTypeName", + "src": "47256:6:1" + } + ], + "id": 2619, + "name": "Mapping", + "src": "47236:27:1" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "47236:46:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_baseURI", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2621, + "name": "ElementaryTypeName", + "src": "47305:6:1" + } + ], + "id": 2622, + "name": "VariableDeclaration", + "src": "47305:23:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2623, + "name": "ElementaryTypeName", + "src": "48204:6:1" + }, + { + "attributes": { + "hexvalue": "30783830616335386364", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2158778573", + "value": "0x80ac58cd" + }, + "id": 2624, + "name": "Literal", + "src": "48251:10:1" + } + ], + "id": 2625, + "name": "VariableDeclaration", + "src": "48204:57:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2626, + "name": "ElementaryTypeName", + "src": "48527:6:1" + }, + { + "attributes": { + "hexvalue": "30783562356531333966", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1532892063", + "value": "0x5b5e139f" + }, + "id": 2627, + "name": "Literal", + "src": "48583:10:1" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "48527:66:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "48898:6:1" + }, + { + "attributes": { + "hexvalue": "30783738306539643633", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2014223715", + "value": "0x780e9d63" + }, + "id": 2630, + "name": "Literal", + "src": "48956:10:1" + } + ], + "id": 2631, + "name": "VariableDeclaration", + "src": "48898:68:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2632, + "name": "StructuredDocumentation", + "src": "48973:108:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "name_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2633, + "name": "ElementaryTypeName", + "src": "49099:6:1" + } + ], + "id": 2634, + "name": "VariableDeclaration", + "src": "49099:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "symbol_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2635, + "name": "ElementaryTypeName", + "src": "49120:6:1" + } + ], + "id": 2636, + "name": "VariableDeclaration", + "src": "49120:21:1" + } + ], + "id": 2637, + "name": "ParameterList", + "src": "49098:44:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2638, + "name": "ParameterList", + "src": "49143:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2639, + "name": "Identifier", + "src": "49153:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2634, + "type": "string memory", + "value": "name_" + }, + "id": 2640, + "name": "Identifier", + "src": "49161:5:1" + } + ], + "id": 2641, + "name": "Assignment", + "src": "49153:13:1" + } + ], + "id": 2642, + "name": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2643, + "name": "Identifier", + "src": "49176:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2636, + "type": "string memory", + "value": "symbol_" + }, + "id": 2644, + "name": "Identifier", + "src": "49186:7:1" + } + ], + "id": 2645, + "name": "Assignment", + "src": "49176:17:1" + } + ], + "id": 2646, + "name": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2647, + "name": "Identifier", + "src": "49281:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2625, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721" + }, + "id": 2648, + "name": "Identifier", + "src": "49300:20:1" + } + ], + "id": 2649, + "name": "FunctionCall", + "src": "49281:40:1" + } + ], + "id": 2650, + "name": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2651, + "name": "Identifier", + "src": "49331:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2628, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_METADATA" + }, + "id": 2652, + "name": "Identifier", + "src": "49350:29:1" + } + ], + "id": 2653, + "name": "FunctionCall", + "src": "49331:49:1" + } + ], + "id": 2654, + "name": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2655, + "name": "Identifier", + "src": "49390:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2631, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_ENUMERABLE" + }, + "id": 2656, + "name": "Identifier", + "src": "49409:31:1" + } + ], + "id": 2657, + "name": "FunctionCall", + "src": "49390:51:1" + } + ], + "id": 2658, + "name": "ExpressionStatement", + "src": "49390:51:1" + } + ], + "id": 2659, + "name": "Block", + "src": "49143:305:1" + } + ], + "id": 2660, + "name": "FunctionDefinition", + "src": "49086:362:1" + }, + { + "attributes": { + "baseFunctions": [ + 580 + ], + "functionSelector": "70a08231", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-balanceOf}." + }, + "id": 2661, + "name": "StructuredDocumentation", + "src": "49454:48:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2665, + "name": "OverrideSpecifier", + "src": "49561:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2662, + "name": "ElementaryTypeName", + "src": "49526:7:1" + } + ], + "id": 2663, + "name": "VariableDeclaration", + "src": "49526:13:1" + } + ], + "id": 2664, + "name": "ParameterList", + "src": "49525:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2666, + "name": "ElementaryTypeName", + "src": "49579:7:1" + } + ], + "id": 2667, + "name": "VariableDeclaration", + "src": "49579:7:1" + } + ], + "id": 2668, + "name": "ParameterList", + "src": "49578:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2669, + "name": "Identifier", + "src": "49598:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2670, + "name": "Identifier", + "src": "49606:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2671, + "name": "ElementaryTypeName", + "src": "49615:7:1" + } + ], + "id": 2672, + "name": "ElementaryTypeNameExpression", + "src": "49615:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2673, + "name": "Literal", + "src": "49623:1:1" + } + ], + "id": 2674, + "name": "FunctionCall", + "src": "49615:10:1" + } + ], + "id": 2675, + "name": "BinaryOperation", + "src": "49606:19:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: balance query for the zero address\"", + "value": "ERC721: balance query for the zero address" + }, + "id": 2676, + "name": "Literal", + "src": "49627:44:1" + } + ], + "id": 2677, + "name": "FunctionCall", + "src": "49598:74:1" + } + ], + "id": 2678, + "name": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "attributes": { + "functionReturnParameters": 2668 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 1900, + "type": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2679, + "name": "Identifier", + "src": "49689:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2680, + "name": "Identifier", + "src": "49703:5:1" + } + ], + "id": 2681, + "name": "IndexAccess", + "src": "49689:20:1" + } + ], + "id": 2682, + "name": "MemberAccess", + "src": "49689:27:1" + } + ], + "id": 2683, + "name": "FunctionCall", + "src": "49689:29:1" + } + ], + "id": 2684, + "name": "Return", + "src": "49682:36:1" + } + ], + "id": 2685, + "name": "Block", + "src": "49588:137:1" + } + ], + "id": 2686, + "name": "FunctionDefinition", + "src": "49507:218:1" + }, + { + "attributes": { + "baseFunctions": [ + 588 + ], + "functionSelector": "6352211e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-ownerOf}." + }, + "id": 2687, + "name": "StructuredDocumentation", + "src": "49731:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2691, + "name": "OverrideSpecifier", + "src": "49836:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2688, + "name": "ElementaryTypeName", + "src": "49799:7:1" + } + ], + "id": 2689, + "name": "VariableDeclaration", + "src": "49799:15:1" + } + ], + "id": 2690, + "name": "ParameterList", + "src": "49798:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2692, + "name": "ElementaryTypeName", + "src": "49854:7:1" + } + ], + "id": 2693, + "name": "VariableDeclaration", + "src": "49854:7:1" + } + ], + "id": 2694, + "name": "ParameterList", + "src": "49853:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "get", + "referencedDeclaration": 2479, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2695, + "name": "Identifier", + "src": "49880:12:1" + } + ], + "id": 2696, + "name": "MemberAccess", + "src": "49880:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2689, + "type": "uint256", + "value": "tokenId" + }, + "id": 2697, + "name": "Identifier", + "src": "49897:7:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: owner query for nonexistent token\"", + "value": "ERC721: owner query for nonexistent token" + }, + "id": 2698, + "name": "Literal", + "src": "49906:43:1" + } + ], + "id": 2699, + "name": "FunctionCall", + "src": "49880:70:1" + } + ], + "id": 2700, + "name": "Return", + "src": "49873:77:1" + } + ], + "id": 2701, + "name": "Block", + "src": "49863:94:1" + } + ], + "id": 2702, + "name": "FunctionDefinition", + "src": "49782:175:1" + }, + { + "attributes": { + "baseFunctions": [ + 665 + ], + "functionSelector": "06fdde03", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-name}." + }, + "id": 2703, + "name": "StructuredDocumentation", + "src": "49963:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2705, + "name": "OverrideSpecifier", + "src": "50055:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2704, + "name": "ParameterList", + "src": "50032:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2712, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2706, + "name": "ElementaryTypeName", + "src": "50073:6:1" + } + ], + "id": 2707, + "name": "VariableDeclaration", + "src": "50073:13:1" + } + ], + "id": 2708, + "name": "ParameterList", + "src": "50072:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2708 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2709, + "name": "Identifier", + "src": "50105:5:1" + } + ], + "id": 2710, + "name": "Return", + "src": "50098:12:1" + } + ], + "id": 2711, + "name": "Block", + "src": "50088:29:1" + } + ], + "id": 2712, + "name": "FunctionDefinition", + "src": "50019:98:1" + }, + { + "attributes": { + "baseFunctions": [ + 671 + ], + "functionSelector": "95d89b41", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-symbol}." + }, + "id": 2713, + "name": "StructuredDocumentation", + "src": "50123:53:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2715, + "name": "OverrideSpecifier", + "src": "50219:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2714, + "name": "ParameterList", + "src": "50196:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2722, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2716, + "name": "ElementaryTypeName", + "src": "50237:6:1" + } + ], + "id": 2717, + "name": "VariableDeclaration", + "src": "50237:13:1" + } + ], + "id": 2718, + "name": "ParameterList", + "src": "50236:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2718 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2719, + "name": "Identifier", + "src": "50269:7:1" + } + ], + "id": 2720, + "name": "Return", + "src": "50262:14:1" + } + ], + "id": 2721, + "name": "Block", + "src": "50252:31:1" + } + ], + "id": 2722, + "name": "FunctionDefinition", + "src": "50181:102:1" + }, + { + "attributes": { + "baseFunctions": [ + 679 + ], + "functionSelector": "c87b56dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "id": 2723, + "name": "StructuredDocumentation", + "src": "50289:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2727, + "name": "OverrideSpecifier", + "src": "50404:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2790, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2724, + "name": "ElementaryTypeName", + "src": "50367:7:1" + } + ], + "id": 2725, + "name": "VariableDeclaration", + "src": "50367:15:1" + } + ], + "id": 2726, + "name": "ParameterList", + "src": "50366:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2790, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2728, + "name": "ElementaryTypeName", + "src": "50422:6:1" + } + ], + "id": 2729, + "name": "VariableDeclaration", + "src": "50422:13:1" + } + ], + "id": 2730, + "name": "ParameterList", + "src": "50421:15:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2731, + "name": "Identifier", + "src": "50447:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2732, + "name": "Identifier", + "src": "50455:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2733, + "name": "Identifier", + "src": "50463:7:1" + } + ], + "id": 2734, + "name": "FunctionCall", + "src": "50455:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI query for nonexistent token\"", + "value": "ERC721Metadata: URI query for nonexistent token" + }, + "id": 2735, + "name": "Literal", + "src": "50473:49:1" + } + ], + "id": 2736, + "name": "FunctionCall", + "src": "50447:76:1" + } + ], + "id": 2737, + "name": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "attributes": { + "assignments": [ + 2739 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2738, + "name": "ElementaryTypeName", + "src": "50534:6:1" + } + ], + "id": 2739, + "name": "VariableDeclaration", + "src": "50534:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 2740, + "name": "Identifier", + "src": "50560:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2741, + "name": "Identifier", + "src": "50571:7:1" + } + ], + "id": 2742, + "name": "IndexAccess", + "src": "50560:19:1" + } + ], + "id": 2743, + "name": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "attributes": { + "assignments": [ + 2745 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "base", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2744, + "name": "ElementaryTypeName", + "src": "50589:6:1" + } + ], + "id": 2745, + "name": "VariableDeclaration", + "src": "50589:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2799, + "type": "function () view returns (string memory)", + "value": "baseURI" + }, + "id": 2746, + "name": "Identifier", + "src": "50610:7:1" + } + ], + "id": 2747, + "name": "FunctionCall", + "src": "50610:9:1" + } + ], + "id": 2748, + "name": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2749, + "name": "ElementaryTypeName", + "src": "50692:5:1" + } + ], + "id": 2750, + "name": "ElementaryTypeNameExpression", + "src": "50692:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2751, + "name": "Identifier", + "src": "50698:4:1" + } + ], + "id": 2752, + "name": "FunctionCall", + "src": "50692:11:1" + } + ], + "id": 2753, + "name": "MemberAccess", + "src": "50692:18:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2754, + "name": "Literal", + "src": "50714:1:1" + } + ], + "id": 2755, + "name": "BinaryOperation", + "src": "50692:23:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2756, + "name": "Identifier", + "src": "50738:9:1" + } + ], + "id": 2757, + "name": "Return", + "src": "50731:16:1" + } + ], + "id": 2758, + "name": "Block", + "src": "50717:41:1" + } + ], + "id": 2759, + "name": "IfStatement", + "src": "50688:70:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2760, + "name": "ElementaryTypeName", + "src": "50860:5:1" + } + ], + "id": 2761, + "name": "ElementaryTypeNameExpression", + "src": "50860:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2762, + "name": "Identifier", + "src": "50866:9:1" + } + ], + "id": 2763, + "name": "FunctionCall", + "src": "50860:16:1" + } + ], + "id": 2764, + "name": "MemberAccess", + "src": "50860:23:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2765, + "name": "Literal", + "src": "50886:1:1" + } + ], + "id": 2766, + "name": "BinaryOperation", + "src": "50860:27:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2767, + "name": "ElementaryTypeName", + "src": "50910:6:1" + } + ], + "id": 2768, + "name": "ElementaryTypeNameExpression", + "src": "50910:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2769, + "name": "Identifier", + "src": "50917:3:1" + } + ], + "id": 2770, + "name": "MemberAccess", + "src": "50917:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2771, + "name": "Identifier", + "src": "50934:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2772, + "name": "Identifier", + "src": "50940:9:1" + } + ], + "id": 2773, + "name": "FunctionCall", + "src": "50917:33:1" + } + ], + "id": 2774, + "name": "FunctionCall", + "src": "50910:41:1" + } + ], + "id": 2775, + "name": "Return", + "src": "50903:48:1" + } + ], + "id": 2776, + "name": "Block", + "src": "50889:73:1" + } + ], + "id": 2777, + "name": "IfStatement", + "src": "50856:106:1" + }, + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2778, + "name": "ElementaryTypeName", + "src": "51068:6:1" + } + ], + "id": 2779, + "name": "ElementaryTypeNameExpression", + "src": "51068:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2780, + "name": "Identifier", + "src": "51075:3:1" + } + ], + "id": 2781, + "name": "MemberAccess", + "src": "51075:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2782, + "name": "Identifier", + "src": "51092:4:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "toString", + "referencedDeclaration": 2565, + "type": "function (uint256) pure returns (string memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2783, + "name": "Identifier", + "src": "51098:7:1" + } + ], + "id": 2784, + "name": "MemberAccess", + "src": "51098:16:1" + } + ], + "id": 2785, + "name": "FunctionCall", + "src": "51098:18:1" + } + ], + "id": 2786, + "name": "FunctionCall", + "src": "51075:42:1" + } + ], + "id": 2787, + "name": "FunctionCall", + "src": "51068:50:1" + } + ], + "id": 2788, + "name": "Return", + "src": "51061:57:1" + } + ], + "id": 2789, + "name": "Block", + "src": "50437:688:1" + } + ], + "id": 2790, + "name": "FunctionDefinition", + "src": "50349:776:1" + }, + { + "attributes": { + "functionSelector": "6c0360eb", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "baseURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "id": 2791, + "name": "StructuredDocumentation", + "src": "51131:221:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2792, + "name": "ParameterList", + "src": "51373:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2799, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2793, + "name": "ElementaryTypeName", + "src": "51405:6:1" + } + ], + "id": 2794, + "name": "VariableDeclaration", + "src": "51405:13:1" + } + ], + "id": 2795, + "name": "ParameterList", + "src": "51404:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2795 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 2796, + "name": "Identifier", + "src": "51437:8:1" + } + ], + "id": 2797, + "name": "Return", + "src": "51430:15:1" + } + ], + "id": 2798, + "name": "Block", + "src": "51420:32:1" + } + ], + "id": 2799, + "name": "FunctionDefinition", + "src": "51357:95:1" + }, + { + "attributes": { + "baseFunctions": [ + 700 + ], + "functionSelector": "2f745c59", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "id": 2800, + "name": "StructuredDocumentation", + "src": "51458:68:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2806, + "name": "OverrideSpecifier", + "src": "51610:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2801, + "name": "ElementaryTypeName", + "src": "51560:7:1" + } + ], + "id": 2802, + "name": "VariableDeclaration", + "src": "51560:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2803, + "name": "ElementaryTypeName", + "src": "51575:7:1" + } + ], + "id": 2804, + "name": "VariableDeclaration", + "src": "51575:13:1" + } + ], + "id": 2805, + "name": "ParameterList", + "src": "51559:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2807, + "name": "ElementaryTypeName", + "src": "51628:7:1" + } + ], + "id": 2808, + "name": "VariableDeclaration", + "src": "51628:7:1" + } + ], + "id": 2809, + "name": "ParameterList", + "src": "51627:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2809 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 1920, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2810, + "name": "Identifier", + "src": "51654:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2802, + "type": "address", + "value": "owner" + }, + "id": 2811, + "name": "Identifier", + "src": "51668:5:1" + } + ], + "id": 2812, + "name": "IndexAccess", + "src": "51654:20:1" + } + ], + "id": 2813, + "name": "MemberAccess", + "src": "51654:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2804, + "type": "uint256", + "value": "index" + }, + "id": 2814, + "name": "Identifier", + "src": "51678:5:1" + } + ], + "id": 2815, + "name": "FunctionCall", + "src": "51654:30:1" + } + ], + "id": 2816, + "name": "Return", + "src": "51647:37:1" + } + ], + "id": 2817, + "name": "Block", + "src": "51637:54:1" + } + ], + "id": 2818, + "name": "FunctionDefinition", + "src": "51531:160:1" + }, + { + "attributes": { + "baseFunctions": [ + 690 + ], + "functionSelector": "18160ddd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "id": 2819, + "name": "StructuredDocumentation", + "src": "51697:60:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2821, + "name": "OverrideSpecifier", + "src": "51805:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2820, + "name": "ParameterList", + "src": "51782:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2830, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2822, + "name": "ElementaryTypeName", + "src": "51823:7:1" + } + ], + "id": 2823, + "name": "VariableDeclaration", + "src": "51823:7:1" + } + ], + "id": 2824, + "name": "ParameterList", + "src": "51822:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2824 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 2340, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2825, + "name": "Identifier", + "src": "51942:12:1" + } + ], + "id": 2826, + "name": "MemberAccess", + "src": "51942:19:1" + } + ], + "id": 2827, + "name": "FunctionCall", + "src": "51942:21:1" + } + ], + "id": 2828, + "name": "Return", + "src": "51935:28:1" + } + ], + "id": 2829, + "name": "Block", + "src": "51832:138:1" + } + ], + "id": 2830, + "name": "FunctionDefinition", + "src": "51762:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 708 + ], + "functionSelector": "4f6ccce7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "id": 2831, + "name": "StructuredDocumentation", + "src": "51976:61:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2835, + "name": "OverrideSpecifier", + "src": "52099:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2832, + "name": "ElementaryTypeName", + "src": "52064:7:1" + } + ], + "id": 2833, + "name": "VariableDeclaration", + "src": "52064:13:1" + } + ], + "id": 2834, + "name": "ParameterList", + "src": "52063:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2836, + "name": "ElementaryTypeName", + "src": "52117:7:1" + } + ], + "id": 2837, + "name": "VariableDeclaration", + "src": "52117:7:1" + } + ], + "id": 2838, + "name": "ParameterList", + "src": "52116:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2840, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2848, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2839, + "name": "ElementaryTypeName", + "src": "52137:7:1" + } + ], + "id": 2840, + "name": "VariableDeclaration", + "src": "52137:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(uint256,address)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 2379, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2841, + "name": "Identifier", + "src": "52158:12:1" + } + ], + "id": 2842, + "name": "MemberAccess", + "src": "52158:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2833, + "type": "uint256", + "value": "index" + }, + "id": 2843, + "name": "Identifier", + "src": "52174:5:1" + } + ], + "id": 2844, + "name": "FunctionCall", + "src": "52158:22:1" + } + ], + "id": 2845, + "name": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2838 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2840, + "type": "uint256", + "value": "tokenId" + }, + "id": 2846, + "name": "Identifier", + "src": "52197:7:1" + } + ], + "id": 2847, + "name": "Return", + "src": "52190:14:1" + } + ], + "id": 2848, + "name": "Block", + "src": "52126:85:1" + } + ], + "id": 2849, + "name": "FunctionDefinition", + "src": "52042:169:1" + }, + { + "attributes": { + "baseFunctions": [ + 616 + ], + "functionSelector": "095ea7b3", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-approve}." + }, + "id": 2850, + "name": "StructuredDocumentation", + "src": "52217:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2856, + "name": "OverrideSpecifier", + "src": "52329:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2851, + "name": "ElementaryTypeName", + "src": "52285:7:1" + } + ], + "id": 2852, + "name": "VariableDeclaration", + "src": "52285:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2853, + "name": "ElementaryTypeName", + "src": "52297:7:1" + } + ], + "id": 2854, + "name": "VariableDeclaration", + "src": "52297:15:1" + } + ], + "id": 2855, + "name": "ParameterList", + "src": "52284:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2857, + "name": "ParameterList", + "src": "52338:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2859 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2892, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2858, + "name": "ElementaryTypeName", + "src": "52348:7:1" + } + ], + "id": 2859, + "name": "VariableDeclaration", + "src": "52348:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2860, + "name": "Identifier", + "src": "52364:6:1" + } + ], + "id": 2861, + "name": "MemberAccess", + "src": "52364:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2862, + "name": "Identifier", + "src": "52379:7:1" + } + ], + "id": 2863, + "name": "FunctionCall", + "src": "52364:23:1" + } + ], + "id": 2864, + "name": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2865, + "name": "Identifier", + "src": "52397:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2866, + "name": "Identifier", + "src": "52405:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2867, + "name": "Identifier", + "src": "52411:5:1" + } + ], + "id": 2868, + "name": "BinaryOperation", + "src": "52405:11:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approval to current owner\"", + "value": "ERC721: approval to current owner" + }, + "id": 2869, + "name": "Literal", + "src": "52418:35:1" + } + ], + "id": 2870, + "name": "FunctionCall", + "src": "52397:57:1" + } + ], + "id": 2871, + "name": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2872, + "name": "Identifier", + "src": "52465:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2873, + "name": "Identifier", + "src": "52473:10:1" + } + ], + "id": 2874, + "name": "FunctionCall", + "src": "52473:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2875, + "name": "Identifier", + "src": "52489:5:1" + } + ], + "id": 2876, + "name": "BinaryOperation", + "src": "52473:21:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2877, + "name": "Identifier", + "src": "52498:6:1" + } + ], + "id": 2878, + "name": "MemberAccess", + "src": "52498:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2879, + "name": "Identifier", + "src": "52522:5:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2880, + "name": "Identifier", + "src": "52529:10:1" + } + ], + "id": 2881, + "name": "FunctionCall", + "src": "52529:12:1" + } + ], + "id": 2882, + "name": "FunctionCall", + "src": "52498:44:1" + } + ], + "id": 2883, + "name": "BinaryOperation", + "src": "52473:69:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve caller is not owner nor approved for all\"", + "value": "ERC721: approve caller is not owner nor approved for all" + }, + "id": 2884, + "name": "Literal", + "src": "52556:58:1" + } + ], + "id": 2885, + "name": "FunctionCall", + "src": "52465:159:1" + } + ], + "id": 2886, + "name": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 2887, + "name": "Identifier", + "src": "52635:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2888, + "name": "Identifier", + "src": "52644:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2889, + "name": "Identifier", + "src": "52648:7:1" + } + ], + "id": 2890, + "name": "FunctionCall", + "src": "52635:21:1" + } + ], + "id": 2891, + "name": "ExpressionStatement", + "src": "52635:21:1" + } + ], + "id": 2892, + "name": "Block", + "src": "52338:325:1" + } + ], + "id": 2893, + "name": "FunctionDefinition", + "src": "52268:395:1" + }, + { + "attributes": { + "baseFunctions": [ + 624 + ], + "functionSelector": "081812fc", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-getApproved}." + }, + "id": 2894, + "name": "StructuredDocumentation", + "src": "52669:50:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2898, + "name": "OverrideSpecifier", + "src": "52782:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2895, + "name": "ElementaryTypeName", + "src": "52745:7:1" + } + ], + "id": 2896, + "name": "VariableDeclaration", + "src": "52745:15:1" + } + ], + "id": 2897, + "name": "ParameterList", + "src": "52744:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2899, + "name": "ElementaryTypeName", + "src": "52800:7:1" + } + ], + "id": 2900, + "name": "VariableDeclaration", + "src": "52800:7:1" + } + ], + "id": 2901, + "name": "ParameterList", + "src": "52799:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2902, + "name": "Identifier", + "src": "52819:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2903, + "name": "Identifier", + "src": "52827:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2904, + "name": "Identifier", + "src": "52835:7:1" + } + ], + "id": 2905, + "name": "FunctionCall", + "src": "52827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approved query for nonexistent token\"", + "value": "ERC721: approved query for nonexistent token" + }, + "id": 2906, + "name": "Literal", + "src": "52845:46:1" + } + ], + "id": 2907, + "name": "FunctionCall", + "src": "52819:73:1" + } + ], + "id": 2908, + "name": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "attributes": { + "functionReturnParameters": 2901 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 2909, + "name": "Identifier", + "src": "52910:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2910, + "name": "Identifier", + "src": "52926:7:1" + } + ], + "id": 2911, + "name": "IndexAccess", + "src": "52910:24:1" + } + ], + "id": 2912, + "name": "Return", + "src": "52903:31:1" + } + ], + "id": 2913, + "name": "Block", + "src": "52809:132:1" + } + ], + "id": 2914, + "name": "FunctionDefinition", + "src": "52724:217:1" + }, + { + "attributes": { + "baseFunctions": [ + 632 + ], + "functionSelector": "a22cb465", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "id": 2915, + "name": "StructuredDocumentation", + "src": "52947:56:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2921, + "name": "OverrideSpecifier", + "src": "53083:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2916, + "name": "ElementaryTypeName", + "src": "53035:7:1" + } + ], + "id": 2917, + "name": "VariableDeclaration", + "src": "53035:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "approved", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2918, + "name": "ElementaryTypeName", + "src": "53053:4:1" + } + ], + "id": 2919, + "name": "VariableDeclaration", + "src": "53053:13:1" + } + ], + "id": 2920, + "name": "ParameterList", + "src": "53034:33:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2922, + "name": "ParameterList", + "src": "53092:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2923, + "name": "Identifier", + "src": "53102:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2924, + "name": "Identifier", + "src": "53110:8:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2925, + "name": "Identifier", + "src": "53122:10:1" + } + ], + "id": 2926, + "name": "FunctionCall", + "src": "53122:12:1" + } + ], + "id": 2927, + "name": "BinaryOperation", + "src": "53110:24:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f766520746f2063616c6c6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve to caller\"", + "value": "ERC721: approve to caller" + }, + "id": 2928, + "name": "Literal", + "src": "53136:27:1" + } + ], + "id": 2929, + "name": "FunctionCall", + "src": "53102:62:1" + } + ], + "id": 2930, + "name": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2931, + "name": "Identifier", + "src": "53175:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2932, + "name": "Identifier", + "src": "53194:10:1" + } + ], + "id": 2933, + "name": "FunctionCall", + "src": "53194:12:1" + } + ], + "id": 2935, + "name": "IndexAccess", + "src": "53175:32:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2934, + "name": "Identifier", + "src": "53208:8:1" + } + ], + "id": 2936, + "name": "IndexAccess", + "src": "53175:42:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2937, + "name": "Identifier", + "src": "53220:8:1" + } + ], + "id": 2938, + "name": "Assignment", + "src": "53175:53:1" + } + ], + "id": 2939, + "name": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 572, + "type": "function (address,address,bool)", + "value": "ApprovalForAll" + }, + "id": 2940, + "name": "Identifier", + "src": "53243:14:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2941, + "name": "Identifier", + "src": "53258:10:1" + } + ], + "id": 2942, + "name": "FunctionCall", + "src": "53258:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2943, + "name": "Identifier", + "src": "53272:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2944, + "name": "Identifier", + "src": "53282:8:1" + } + ], + "id": 2945, + "name": "FunctionCall", + "src": "53243:48:1" + } + ], + "id": 2946, + "name": "EmitStatement", + "src": "53238:53:1" + } + ], + "id": 2947, + "name": "Block", + "src": "53092:206:1" + } + ], + "id": 2948, + "name": "FunctionDefinition", + "src": "53008:290:1" + }, + { + "attributes": { + "baseFunctions": [ + 642 + ], + "functionSelector": "e985e9c5", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "id": 2949, + "name": "StructuredDocumentation", + "src": "53304:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2955, + "name": "OverrideSpecifier", + "src": "53443:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2950, + "name": "ElementaryTypeName", + "src": "53390:7:1" + } + ], + "id": 2951, + "name": "VariableDeclaration", + "src": "53390:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2952, + "name": "ElementaryTypeName", + "src": "53405:7:1" + } + ], + "id": 2953, + "name": "VariableDeclaration", + "src": "53405:16:1" + } + ], + "id": 2954, + "name": "ParameterList", + "src": "53389:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2956, + "name": "ElementaryTypeName", + "src": "53461:4:1" + } + ], + "id": 2957, + "name": "VariableDeclaration", + "src": "53461:4:1" + } + ], + "id": 2958, + "name": "ParameterList", + "src": "53460:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2958 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2959, + "name": "Identifier", + "src": "53484:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2951, + "type": "address", + "value": "owner" + }, + "id": 2960, + "name": "Identifier", + "src": "53503:5:1" + } + ], + "id": 2961, + "name": "IndexAccess", + "src": "53484:25:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2953, + "type": "address", + "value": "operator" + }, + "id": 2962, + "name": "Identifier", + "src": "53510:8:1" + } + ], + "id": 2963, + "name": "IndexAccess", + "src": "53484:35:1" + } + ], + "id": 2964, + "name": "Return", + "src": "53477:42:1" + } + ], + "id": 2965, + "name": "Block", + "src": "53467:59:1" + } + ], + "id": 2966, + "name": "FunctionDefinition", + "src": "53364:162:1" + }, + { + "attributes": { + "baseFunctions": [ + 608 + ], + "functionSelector": "23b872dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-transferFrom}." + }, + "id": 2967, + "name": "StructuredDocumentation", + "src": "53532:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2975, + "name": "OverrideSpecifier", + "src": "53668:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2968, + "name": "ElementaryTypeName", + "src": "53610:7:1" + } + ], + "id": 2969, + "name": "VariableDeclaration", + "src": "53610:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2970, + "name": "ElementaryTypeName", + "src": "53624:7:1" + } + ], + "id": 2971, + "name": "VariableDeclaration", + "src": "53624:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2972, + "name": "ElementaryTypeName", + "src": "53636:7:1" + } + ], + "id": 2973, + "name": "VariableDeclaration", + "src": "53636:15:1" + } + ], + "id": 2974, + "name": "ParameterList", + "src": "53609:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2976, + "name": "ParameterList", + "src": "53677:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2977, + "name": "Identifier", + "src": "53739:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 2978, + "name": "Identifier", + "src": "53747:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2979, + "name": "Identifier", + "src": "53766:10:1" + } + ], + "id": 2980, + "name": "FunctionCall", + "src": "53766:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2981, + "name": "Identifier", + "src": "53780:7:1" + } + ], + "id": 2982, + "name": "FunctionCall", + "src": "53747:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 2983, + "name": "Literal", + "src": "53790:51:1" + } + ], + "id": 2984, + "name": "FunctionCall", + "src": "53739:103:1" + } + ], + "id": 2985, + "name": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 2986, + "name": "Identifier", + "src": "53853:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2969, + "type": "address", + "value": "from" + }, + "id": 2987, + "name": "Identifier", + "src": "53863:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2971, + "type": "address", + "value": "to" + }, + "id": 2988, + "name": "Identifier", + "src": "53869:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2989, + "name": "Identifier", + "src": "53873:7:1" + } + ], + "id": 2990, + "name": "FunctionCall", + "src": "53853:28:1" + } + ], + "id": 2991, + "name": "ExpressionStatement", + "src": "53853:28:1" + } + ], + "id": 2992, + "name": "Block", + "src": "53677:211:1" + } + ], + "id": 2993, + "name": "FunctionDefinition", + "src": "53588:300:1" + }, + { + "attributes": { + "baseFunctions": [ + 598 + ], + "functionSelector": "42842e0e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 2994, + "name": "StructuredDocumentation", + "src": "53894:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3002, + "name": "OverrideSpecifier", + "src": "54038:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2995, + "name": "ElementaryTypeName", + "src": "53980:7:1" + } + ], + "id": 2996, + "name": "VariableDeclaration", + "src": "53980:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2997, + "name": "ElementaryTypeName", + "src": "53994:7:1" + } + ], + "id": 2998, + "name": "VariableDeclaration", + "src": "53994:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2999, + "name": "ElementaryTypeName", + "src": "54006:7:1" + } + ], + "id": 3000, + "name": "VariableDeclaration", + "src": "54006:15:1" + } + ], + "id": 3001, + "name": "ParameterList", + "src": "53979:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3003, + "name": "ParameterList", + "src": "54047:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "type": "function (address,address,uint256,bytes memory)", + "value": "safeTransferFrom" + }, + "id": 3004, + "name": "Identifier", + "src": "54057:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2996, + "type": "address", + "value": "from" + }, + "id": 3005, + "name": "Identifier", + "src": "54074:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2998, + "type": "address", + "value": "to" + }, + "id": 3006, + "name": "Identifier", + "src": "54080:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3000, + "type": "uint256", + "value": "tokenId" + }, + "id": 3007, + "name": "Identifier", + "src": "54084:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3008, + "name": "Literal", + "src": "54093:2:1" + } + ], + "id": 3009, + "name": "FunctionCall", + "src": "54057:39:1" + } + ], + "id": 3010, + "name": "ExpressionStatement", + "src": "54057:39:1" + } + ], + "id": 3011, + "name": "Block", + "src": "54047:56:1" + } + ], + "id": 3012, + "name": "FunctionDefinition", + "src": "53954:149:1" + }, + { + "attributes": { + "baseFunctions": [ + 654 + ], + "functionSelector": "b88d4fde", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 3013, + "name": "StructuredDocumentation", + "src": "54109:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3023, + "name": "OverrideSpecifier", + "src": "54273:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3014, + "name": "ElementaryTypeName", + "src": "54195:7:1" + } + ], + "id": 3015, + "name": "VariableDeclaration", + "src": "54195:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3016, + "name": "ElementaryTypeName", + "src": "54209:7:1" + } + ], + "id": 3017, + "name": "VariableDeclaration", + "src": "54209:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3018, + "name": "ElementaryTypeName", + "src": "54221:7:1" + } + ], + "id": 3019, + "name": "VariableDeclaration", + "src": "54221:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3042, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3020, + "name": "ElementaryTypeName", + "src": "54238:5:1" + } + ], + "id": 3021, + "name": "VariableDeclaration", + "src": "54238:18:1" + } + ], + "id": 3022, + "name": "ParameterList", + "src": "54194:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3024, + "name": "ParameterList", + "src": "54282:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3025, + "name": "Identifier", + "src": "54292:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 3026, + "name": "Identifier", + "src": "54300:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3027, + "name": "Identifier", + "src": "54319:10:1" + } + ], + "id": 3028, + "name": "FunctionCall", + "src": "54319:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3029, + "name": "Identifier", + "src": "54333:7:1" + } + ], + "id": 3030, + "name": "FunctionCall", + "src": "54300:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 3031, + "name": "Literal", + "src": "54343:51:1" + } + ], + "id": 3032, + "name": "FunctionCall", + "src": "54292:103:1" + } + ], + "id": 3033, + "name": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3071, + "type": "function (address,address,uint256,bytes memory)", + "value": "_safeTransfer" + }, + "id": 3034, + "name": "Identifier", + "src": "54405:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3015, + "type": "address", + "value": "from" + }, + "id": 3035, + "name": "Identifier", + "src": "54419:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3017, + "type": "address", + "value": "to" + }, + "id": 3036, + "name": "Identifier", + "src": "54425:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3037, + "name": "Identifier", + "src": "54429:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3021, + "type": "bytes memory", + "value": "_data" + }, + "id": 3038, + "name": "Identifier", + "src": "54438:5:1" + } + ], + "id": 3039, + "name": "FunctionCall", + "src": "54405:39:1" + } + ], + "id": 3040, + "name": "ExpressionStatement", + "src": "54405:39:1" + } + ], + "id": 3041, + "name": "Block", + "src": "54282:169:1" + } + ], + "id": 3042, + "name": "FunctionDefinition", + "src": "54169:282:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3043, + "name": "StructuredDocumentation", + "src": "54457:851:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3044, + "name": "ElementaryTypeName", + "src": "55336:7:1" + } + ], + "id": 3045, + "name": "VariableDeclaration", + "src": "55336:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3046, + "name": "ElementaryTypeName", + "src": "55350:7:1" + } + ], + "id": 3047, + "name": "VariableDeclaration", + "src": "55350:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3048, + "name": "ElementaryTypeName", + "src": "55362:7:1" + } + ], + "id": 3049, + "name": "VariableDeclaration", + "src": "55362:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3071, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3050, + "name": "ElementaryTypeName", + "src": "55379:5:1" + } + ], + "id": 3051, + "name": "VariableDeclaration", + "src": "55379:18:1" + } + ], + "id": 3052, + "name": "ParameterList", + "src": "55335:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3053, + "name": "ParameterList", + "src": "55416:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 3054, + "name": "Identifier", + "src": "55426:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3055, + "name": "Identifier", + "src": "55436:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3056, + "name": "Identifier", + "src": "55442:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3057, + "name": "Identifier", + "src": "55446:7:1" + } + ], + "id": 3058, + "name": "FunctionCall", + "src": "55426:28:1" + } + ], + "id": 3059, + "name": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3060, + "name": "Identifier", + "src": "55464:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3061, + "name": "Identifier", + "src": "55472:22:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3062, + "name": "Identifier", + "src": "55495:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3063, + "name": "Identifier", + "src": "55501:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3064, + "name": "Identifier", + "src": "55505:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3051, + "type": "bytes memory", + "value": "_data" + }, + "id": 3065, + "name": "Identifier", + "src": "55514:5:1" + } + ], + "id": 3066, + "name": "FunctionCall", + "src": "55472:48:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3067, + "name": "Literal", + "src": "55522:52:1" + } + ], + "id": 3068, + "name": "FunctionCall", + "src": "55464:111:1" + } + ], + "id": 3069, + "name": "ExpressionStatement", + "src": "55464:111:1" + } + ], + "id": 3070, + "name": "Block", + "src": "55416:166:1" + } + ], + "id": 3071, + "name": "FunctionDefinition", + "src": "55313:269:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_exists", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3072, + "name": "StructuredDocumentation", + "src": "55588:292:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3073, + "name": "ElementaryTypeName", + "src": "55902:7:1" + } + ], + "id": 3074, + "name": "VariableDeclaration", + "src": "55902:15:1" + } + ], + "id": 3075, + "name": "ParameterList", + "src": "55901:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3076, + "name": "ElementaryTypeName", + "src": "55950:4:1" + } + ], + "id": 3077, + "name": "VariableDeclaration", + "src": "55950:4:1" + } + ], + "id": 3078, + "name": "ParameterList", + "src": "55949:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3078 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "contains", + "referencedDeclaration": 2326, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3079, + "name": "Identifier", + "src": "55973:12:1" + } + ], + "id": 3080, + "name": "MemberAccess", + "src": "55973:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3074, + "type": "uint256", + "value": "tokenId" + }, + "id": 3081, + "name": "Identifier", + "src": "55995:7:1" + } + ], + "id": 3082, + "name": "FunctionCall", + "src": "55973:30:1" + } + ], + "id": 3083, + "name": "Return", + "src": "55966:37:1" + } + ], + "id": 3084, + "name": "Block", + "src": "55956:54:1" + } + ], + "id": 3085, + "name": "FunctionDefinition", + "src": "55885:125:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_isApprovedOrOwner", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3086, + "name": "StructuredDocumentation", + "src": "56016:147:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "spender", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3087, + "name": "ElementaryTypeName", + "src": "56196:7:1" + } + ], + "id": 3088, + "name": "VariableDeclaration", + "src": "56196:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3089, + "name": "ElementaryTypeName", + "src": "56213:7:1" + } + ], + "id": 3090, + "name": "VariableDeclaration", + "src": "56213:15:1" + } + ], + "id": 3091, + "name": "ParameterList", + "src": "56195:34:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3092, + "name": "ElementaryTypeName", + "src": "56261:4:1" + } + ], + "id": 3093, + "name": "VariableDeclaration", + "src": "56261:4:1" + } + ], + "id": 3094, + "name": "ParameterList", + "src": "56260:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3095, + "name": "Identifier", + "src": "56277:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3096, + "name": "Identifier", + "src": "56285:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3097, + "name": "Identifier", + "src": "56293:7:1" + } + ], + "id": 3098, + "name": "FunctionCall", + "src": "56285:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: operator query for nonexistent token\"", + "value": "ERC721: operator query for nonexistent token" + }, + "id": 3099, + "name": "Literal", + "src": "56303:46:1" + } + ], + "id": 3100, + "name": "FunctionCall", + "src": "56277:73:1" + } + ], + "id": 3101, + "name": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "attributes": { + "assignments": [ + 3103 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3126, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3102, + "name": "ElementaryTypeName", + "src": "56360:7:1" + } + ], + "id": 3103, + "name": "VariableDeclaration", + "src": "56360:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3104, + "name": "Identifier", + "src": "56376:6:1" + } + ], + "id": 3105, + "name": "MemberAccess", + "src": "56376:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3106, + "name": "Identifier", + "src": "56391:7:1" + } + ], + "id": 3107, + "name": "FunctionCall", + "src": "56376:23:1" + } + ], + "id": 3108, + "name": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "attributes": { + "functionReturnParameters": 3094 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3109, + "name": "Identifier", + "src": "56417:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3110, + "name": "Identifier", + "src": "56428:5:1" + } + ], + "id": 3111, + "name": "BinaryOperation", + "src": "56417:16:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2914, + "type": "function (uint256) view returns (address)", + "value": "getApproved" + }, + "id": 3112, + "name": "Identifier", + "src": "56437:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3113, + "name": "Identifier", + "src": "56449:7:1" + } + ], + "id": 3114, + "name": "FunctionCall", + "src": "56437:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3115, + "name": "Identifier", + "src": "56461:7:1" + } + ], + "id": 3116, + "name": "BinaryOperation", + "src": "56437:31:1" + } + ], + "id": 3117, + "name": "BinaryOperation", + "src": "56417:51:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3118, + "name": "Identifier", + "src": "56472:6:1" + } + ], + "id": 3119, + "name": "MemberAccess", + "src": "56472:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3120, + "name": "Identifier", + "src": "56496:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3121, + "name": "Identifier", + "src": "56503:7:1" + } + ], + "id": 3122, + "name": "FunctionCall", + "src": "56472:39:1" + } + ], + "id": 3123, + "name": "BinaryOperation", + "src": "56417:94:1" + } + ], + "id": 3124, + "name": "TupleExpression", + "src": "56416:96:1" + } + ], + "id": 3125, + "name": "Return", + "src": "56409:103:1" + } + ], + "id": 3126, + "name": "Block", + "src": "56267:252:1" + } + ], + "id": 3127, + "name": "FunctionDefinition", + "src": "56168:351:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3128, + "name": "StructuredDocumentation", + "src": "56525:320:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3129, + "name": "ElementaryTypeName", + "src": "56869:7:1" + } + ], + "id": 3130, + "name": "VariableDeclaration", + "src": "56869:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3131, + "name": "ElementaryTypeName", + "src": "56881:7:1" + } + ], + "id": 3132, + "name": "VariableDeclaration", + "src": "56881:15:1" + } + ], + "id": 3133, + "name": "ParameterList", + "src": "56868:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3134, + "name": "ParameterList", + "src": "56915:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "type": "function (address,uint256,bytes memory)", + "value": "_safeMint" + }, + "id": 3135, + "name": "Identifier", + "src": "56925:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3130, + "type": "address", + "value": "to" + }, + "id": 3136, + "name": "Identifier", + "src": "56935:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3132, + "type": "uint256", + "value": "tokenId" + }, + "id": 3137, + "name": "Identifier", + "src": "56939:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3138, + "name": "Literal", + "src": "56948:2:1" + } + ], + "id": 3139, + "name": "FunctionCall", + "src": "56925:26:1" + } + ], + "id": 3140, + "name": "ExpressionStatement", + "src": "56925:26:1" + } + ], + "id": 3141, + "name": "Block", + "src": "56915:43:1" + } + ], + "id": 3142, + "name": "FunctionDefinition", + "src": "56850:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3143, + "name": "StructuredDocumentation", + "src": "56964:210:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3144, + "name": "ElementaryTypeName", + "src": "57198:7:1" + } + ], + "id": 3145, + "name": "VariableDeclaration", + "src": "57198:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3146, + "name": "ElementaryTypeName", + "src": "57210:7:1" + } + ], + "id": 3147, + "name": "VariableDeclaration", + "src": "57210:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3171, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3148, + "name": "ElementaryTypeName", + "src": "57227:5:1" + } + ], + "id": 3149, + "name": "VariableDeclaration", + "src": "57227:18:1" + } + ], + "id": 3150, + "name": "ParameterList", + "src": "57197:49:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3151, + "name": "ParameterList", + "src": "57264:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3230, + "type": "function (address,uint256)", + "value": "_mint" + }, + "id": 3152, + "name": "Identifier", + "src": "57274:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3153, + "name": "Identifier", + "src": "57280:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3154, + "name": "Identifier", + "src": "57284:7:1" + } + ], + "id": 3155, + "name": "FunctionCall", + "src": "57274:18:1" + } + ], + "id": 3156, + "name": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3157, + "name": "Identifier", + "src": "57302:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3158, + "name": "Identifier", + "src": "57310:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3159, + "name": "ElementaryTypeName", + "src": "57333:7:1" + } + ], + "id": 3160, + "name": "ElementaryTypeNameExpression", + "src": "57333:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3161, + "name": "Literal", + "src": "57341:1:1" + } + ], + "id": 3162, + "name": "FunctionCall", + "src": "57333:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3163, + "name": "Identifier", + "src": "57345:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3164, + "name": "Identifier", + "src": "57349:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3149, + "type": "bytes memory", + "value": "_data" + }, + "id": 3165, + "name": "Identifier", + "src": "57358:5:1" + } + ], + "id": 3166, + "name": "FunctionCall", + "src": "57310:54:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3167, + "name": "Literal", + "src": "57366:52:1" + } + ], + "id": 3168, + "name": "FunctionCall", + "src": "57302:117:1" + } + ], + "id": 3169, + "name": "ExpressionStatement", + "src": "57302:117:1" + } + ], + "id": 3170, + "name": "Block", + "src": "57264:162:1" + } + ], + "id": 3171, + "name": "FunctionDefinition", + "src": "57179:247:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_mint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3172, + "name": "StructuredDocumentation", + "src": "57432:311:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3173, + "name": "ElementaryTypeName", + "src": "57763:7:1" + } + ], + "id": 3174, + "name": "VariableDeclaration", + "src": "57763:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3175, + "name": "ElementaryTypeName", + "src": "57775:7:1" + } + ], + "id": 3176, + "name": "VariableDeclaration", + "src": "57775:15:1" + } + ], + "id": 3177, + "name": "ParameterList", + "src": "57762:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3178, + "name": "ParameterList", + "src": "57809:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3179, + "name": "Identifier", + "src": "57819:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3180, + "name": "Identifier", + "src": "57827:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3181, + "name": "ElementaryTypeName", + "src": "57833:7:1" + } + ], + "id": 3182, + "name": "ElementaryTypeNameExpression", + "src": "57833:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3183, + "name": "Literal", + "src": "57841:1:1" + } + ], + "id": 3184, + "name": "FunctionCall", + "src": "57833:10:1" + } + ], + "id": 3185, + "name": "BinaryOperation", + "src": "57827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: mint to the zero address\"", + "value": "ERC721: mint to the zero address" + }, + "id": 3186, + "name": "Literal", + "src": "57845:34:1" + } + ], + "id": 3187, + "name": "FunctionCall", + "src": "57819:61:1" + } + ], + "id": 3188, + "name": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3189, + "name": "Identifier", + "src": "57890:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3190, + "name": "Identifier", + "src": "57899:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3191, + "name": "Identifier", + "src": "57907:7:1" + } + ], + "id": 3192, + "name": "FunctionCall", + "src": "57899:16:1" + } + ], + "id": 3193, + "name": "UnaryOperation", + "src": "57898:17:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: token already minted\"", + "value": "ERC721: token already minted" + }, + "id": 3194, + "name": "Literal", + "src": "57917:30:1" + } + ], + "id": 3195, + "name": "FunctionCall", + "src": "57890:58:1" + } + ], + "id": 3196, + "name": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3197, + "name": "Identifier", + "src": "57959:20:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3198, + "name": "ElementaryTypeName", + "src": "57980:7:1" + } + ], + "id": 3199, + "name": "ElementaryTypeNameExpression", + "src": "57980:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3200, + "name": "Literal", + "src": "57988:1:1" + } + ], + "id": 3201, + "name": "FunctionCall", + "src": "57980:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3202, + "name": "Identifier", + "src": "57992:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3203, + "name": "Identifier", + "src": "57996:7:1" + } + ], + "id": 3204, + "name": "FunctionCall", + "src": "57959:45:1" + } + ], + "id": 3205, + "name": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3206, + "name": "Identifier", + "src": "58015:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3207, + "name": "Identifier", + "src": "58029:2:1" + } + ], + "id": 3208, + "name": "IndexAccess", + "src": "58015:17:1" + } + ], + "id": 3209, + "name": "MemberAccess", + "src": "58015:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3210, + "name": "Identifier", + "src": "58037:7:1" + } + ], + "id": 3211, + "name": "FunctionCall", + "src": "58015:30:1" + } + ], + "id": 3212, + "name": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3213, + "name": "Identifier", + "src": "58056:12:1" + } + ], + "id": 3215, + "name": "MemberAccess", + "src": "58056:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3216, + "name": "Identifier", + "src": "58073:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3217, + "name": "Identifier", + "src": "58082:2:1" + } + ], + "id": 3218, + "name": "FunctionCall", + "src": "58056:29:1" + } + ], + "id": 3219, + "name": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3220, + "name": "Identifier", + "src": "58101:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3221, + "name": "ElementaryTypeName", + "src": "58110:7:1" + } + ], + "id": 3222, + "name": "ElementaryTypeNameExpression", + "src": "58110:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3223, + "name": "Literal", + "src": "58118:1:1" + } + ], + "id": 3224, + "name": "FunctionCall", + "src": "58110:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3225, + "name": "Identifier", + "src": "58122:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3226, + "name": "Identifier", + "src": "58126:7:1" + } + ], + "id": 3227, + "name": "FunctionCall", + "src": "58101:33:1" + } + ], + "id": 3228, + "name": "EmitStatement", + "src": "58096:38:1" + } + ], + "id": 3229, + "name": "Block", + "src": "57809:332:1" + } + ], + "id": 3230, + "name": "FunctionDefinition", + "src": "57748:393:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_burn", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3231, + "name": "StructuredDocumentation", + "src": "58147:206:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3299, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3232, + "name": "ElementaryTypeName", + "src": "58373:7:1" + } + ], + "id": 3233, + "name": "VariableDeclaration", + "src": "58373:15:1" + } + ], + "id": 3234, + "name": "ParameterList", + "src": "58372:17:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3235, + "name": "ParameterList", + "src": "58407:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 3237 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3298, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3236, + "name": "ElementaryTypeName", + "src": "58417:7:1" + } + ], + "id": 3237, + "name": "VariableDeclaration", + "src": "58417:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3238, + "name": "Identifier", + "src": "58433:6:1" + } + ], + "id": 3239, + "name": "MemberAccess", + "src": "58433:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3240, + "name": "Identifier", + "src": "58448:7:1" + } + ], + "id": 3241, + "name": "FunctionCall", + "src": "58433:23:1" + } + ], + "id": 3242, + "name": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3243, + "name": "Identifier", + "src": "58485:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3244, + "name": "Identifier", + "src": "58506:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3245, + "name": "ElementaryTypeName", + "src": "58513:7:1" + } + ], + "id": 3246, + "name": "ElementaryTypeNameExpression", + "src": "58513:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3247, + "name": "Literal", + "src": "58521:1:1" + } + ], + "id": 3248, + "name": "FunctionCall", + "src": "58513:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3249, + "name": "Identifier", + "src": "58525:7:1" + } + ], + "id": 3250, + "name": "FunctionCall", + "src": "58485:48:1" + } + ], + "id": 3251, + "name": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3252, + "name": "Identifier", + "src": "58571:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3253, + "name": "ElementaryTypeName", + "src": "58580:7:1" + } + ], + "id": 3254, + "name": "ElementaryTypeNameExpression", + "src": "58580:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3255, + "name": "Literal", + "src": "58588:1:1" + } + ], + "id": 3256, + "name": "FunctionCall", + "src": "58580:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3257, + "name": "Identifier", + "src": "58592:7:1" + } + ], + "id": 3258, + "name": "FunctionCall", + "src": "58571:29:1" + } + ], + "id": 3259, + "name": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes storage pointer", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 3260, + "name": "ElementaryTypeName", + "src": "58650:5:1" + } + ], + "id": 3261, + "name": "ElementaryTypeNameExpression", + "src": "58650:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3262, + "name": "Identifier", + "src": "58656:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3263, + "name": "Identifier", + "src": "58667:7:1" + } + ], + "id": 3264, + "name": "IndexAccess", + "src": "58656:19:1" + } + ], + "id": 3265, + "name": "FunctionCall", + "src": "58650:26:1" + } + ], + "id": 3266, + "name": "MemberAccess", + "src": "58650:33:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3267, + "name": "Literal", + "src": "58687:1:1" + } + ], + "id": 3268, + "name": "BinaryOperation", + "src": "58650:38:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3269, + "name": "Identifier", + "src": "58711:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3270, + "name": "Identifier", + "src": "58722:7:1" + } + ], + "id": 3271, + "name": "IndexAccess", + "src": "58711:19:1" + } + ], + "id": 3272, + "name": "UnaryOperation", + "src": "58704:26:1" + } + ], + "id": 3273, + "name": "ExpressionStatement", + "src": "58704:26:1" + } + ], + "id": 3274, + "name": "Block", + "src": "58690:51:1" + } + ], + "id": 3275, + "name": "IfStatement", + "src": "58646:95:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3276, + "name": "Identifier", + "src": "58751:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3277, + "name": "Identifier", + "src": "58765:5:1" + } + ], + "id": 3278, + "name": "IndexAccess", + "src": "58751:20:1" + } + ], + "id": 3279, + "name": "MemberAccess", + "src": "58751:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3280, + "name": "Identifier", + "src": "58779:7:1" + } + ], + "id": 3281, + "name": "FunctionCall", + "src": "58751:36:1" + } + ], + "id": 3282, + "name": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 2306, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3283, + "name": "Identifier", + "src": "58798:12:1" + } + ], + "id": 3285, + "name": "MemberAccess", + "src": "58798:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3286, + "name": "Identifier", + "src": "58818:7:1" + } + ], + "id": 3287, + "name": "FunctionCall", + "src": "58798:28:1" + } + ], + "id": 3288, + "name": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3289, + "name": "Identifier", + "src": "58842:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3290, + "name": "Identifier", + "src": "58851:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3291, + "name": "ElementaryTypeName", + "src": "58858:7:1" + } + ], + "id": 3292, + "name": "ElementaryTypeNameExpression", + "src": "58858:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3293, + "name": "Literal", + "src": "58866:1:1" + } + ], + "id": 3294, + "name": "FunctionCall", + "src": "58858:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3295, + "name": "Identifier", + "src": "58870:7:1" + } + ], + "id": 3296, + "name": "FunctionCall", + "src": "58842:36:1" + } + ], + "id": 3297, + "name": "EmitStatement", + "src": "58837:41:1" + } + ], + "id": 3298, + "name": "Block", + "src": "58407:478:1" + } + ], + "id": 3299, + "name": "FunctionDefinition", + "src": "58358:527:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_transfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3300, + "name": "StructuredDocumentation", + "src": "58891:313:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3301, + "name": "ElementaryTypeName", + "src": "59228:7:1" + } + ], + "id": 3302, + "name": "VariableDeclaration", + "src": "59228:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3303, + "name": "ElementaryTypeName", + "src": "59242:7:1" + } + ], + "id": 3304, + "name": "VariableDeclaration", + "src": "59242:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3305, + "name": "ElementaryTypeName", + "src": "59254:7:1" + } + ], + "id": 3306, + "name": "VariableDeclaration", + "src": "59254:15:1" + } + ], + "id": 3307, + "name": "ParameterList", + "src": "59227:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3308, + "name": "ParameterList", + "src": "59288:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3309, + "name": "Identifier", + "src": "59298:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3310, + "name": "Identifier", + "src": "59306:6:1" + } + ], + "id": 3311, + "name": "MemberAccess", + "src": "59306:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3312, + "name": "Identifier", + "src": "59321:7:1" + } + ], + "id": 3313, + "name": "FunctionCall", + "src": "59306:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3314, + "name": "Identifier", + "src": "59333:4:1" + } + ], + "id": 3315, + "name": "BinaryOperation", + "src": "59306:31:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer of token that is not own\"", + "value": "ERC721: transfer of token that is not own" + }, + "id": 3316, + "name": "Literal", + "src": "59339:43:1" + } + ], + "id": 3317, + "name": "FunctionCall", + "src": "59298:85:1" + } + ], + "id": 3318, + "name": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3319, + "name": "Identifier", + "src": "59411:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3320, + "name": "Identifier", + "src": "59419:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3321, + "name": "ElementaryTypeName", + "src": "59425:7:1" + } + ], + "id": 3322, + "name": "ElementaryTypeNameExpression", + "src": "59425:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3323, + "name": "Literal", + "src": "59433:1:1" + } + ], + "id": 3324, + "name": "FunctionCall", + "src": "59425:10:1" + } + ], + "id": 3325, + "name": "BinaryOperation", + "src": "59419:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to the zero address\"", + "value": "ERC721: transfer to the zero address" + }, + "id": 3326, + "name": "Literal", + "src": "59437:38:1" + } + ], + "id": 3327, + "name": "FunctionCall", + "src": "59411:65:1" + } + ], + "id": 3328, + "name": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3329, + "name": "Identifier", + "src": "59487:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3330, + "name": "Identifier", + "src": "59508:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3331, + "name": "Identifier", + "src": "59514:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3332, + "name": "Identifier", + "src": "59518:7:1" + } + ], + "id": 3333, + "name": "FunctionCall", + "src": "59487:39:1" + } + ], + "id": 3334, + "name": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3335, + "name": "Identifier", + "src": "59588:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3336, + "name": "ElementaryTypeName", + "src": "59597:7:1" + } + ], + "id": 3337, + "name": "ElementaryTypeNameExpression", + "src": "59597:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3338, + "name": "Literal", + "src": "59605:1:1" + } + ], + "id": 3339, + "name": "FunctionCall", + "src": "59597:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3340, + "name": "Identifier", + "src": "59609:7:1" + } + ], + "id": 3341, + "name": "FunctionCall", + "src": "59588:29:1" + } + ], + "id": 3342, + "name": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3343, + "name": "Identifier", + "src": "59628:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3344, + "name": "Identifier", + "src": "59642:4:1" + } + ], + "id": 3345, + "name": "IndexAccess", + "src": "59628:19:1" + } + ], + "id": 3346, + "name": "MemberAccess", + "src": "59628:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3347, + "name": "Identifier", + "src": "59655:7:1" + } + ], + "id": 3348, + "name": "FunctionCall", + "src": "59628:35:1" + } + ], + "id": 3349, + "name": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3350, + "name": "Identifier", + "src": "59673:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3351, + "name": "Identifier", + "src": "59687:2:1" + } + ], + "id": 3352, + "name": "IndexAccess", + "src": "59673:17:1" + } + ], + "id": 3353, + "name": "MemberAccess", + "src": "59673:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3354, + "name": "Identifier", + "src": "59695:7:1" + } + ], + "id": 3355, + "name": "FunctionCall", + "src": "59673:30:1" + } + ], + "id": 3356, + "name": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3357, + "name": "Identifier", + "src": "59714:12:1" + } + ], + "id": 3359, + "name": "MemberAccess", + "src": "59714:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3360, + "name": "Identifier", + "src": "59731:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3361, + "name": "Identifier", + "src": "59740:2:1" + } + ], + "id": 3362, + "name": "FunctionCall", + "src": "59714:29:1" + } + ], + "id": 3363, + "name": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3364, + "name": "Identifier", + "src": "59759:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3365, + "name": "Identifier", + "src": "59768:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3366, + "name": "Identifier", + "src": "59774:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3367, + "name": "Identifier", + "src": "59778:7:1" + } + ], + "id": 3368, + "name": "FunctionCall", + "src": "59759:27:1" + } + ], + "id": 3369, + "name": "EmitStatement", + "src": "59754:32:1" + } + ], + "id": 3370, + "name": "Block", + "src": "59288:505:1" + } + ], + "id": 3371, + "name": "FunctionDefinition", + "src": "59209:584:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setTokenURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3372, + "name": "StructuredDocumentation", + "src": "59799:136:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3393, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3373, + "name": "ElementaryTypeName", + "src": "59962:7:1" + } + ], + "id": 3374, + "name": "VariableDeclaration", + "src": "59962:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 3393, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3375, + "name": "ElementaryTypeName", + "src": "59979:6:1" + } + ], + "id": 3376, + "name": "VariableDeclaration", + "src": "59979:23:1" + } + ], + "id": 3377, + "name": "ParameterList", + "src": "59961:42:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3378, + "name": "ParameterList", + "src": "60021:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3379, + "name": "Identifier", + "src": "60031:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3380, + "name": "Identifier", + "src": "60039:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3381, + "name": "Identifier", + "src": "60047:7:1" + } + ], + "id": 3382, + "name": "FunctionCall", + "src": "60039:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI set of nonexistent token\"", + "value": "ERC721Metadata: URI set of nonexistent token" + }, + "id": 3383, + "name": "Literal", + "src": "60057:46:1" + } + ], + "id": 3384, + "name": "FunctionCall", + "src": "60031:73:1" + } + ], + "id": 3385, + "name": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3386, + "name": "Identifier", + "src": "60114:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3387, + "name": "Identifier", + "src": "60125:7:1" + } + ], + "id": 3388, + "name": "IndexAccess", + "src": "60114:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3376, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 3389, + "name": "Identifier", + "src": "60136:9:1" + } + ], + "id": 3390, + "name": "Assignment", + "src": "60114:31:1" + } + ], + "id": 3391, + "name": "ExpressionStatement", + "src": "60114:31:1" + } + ], + "id": 3392, + "name": "Block", + "src": "60021:131:1" + } + ], + "id": 3393, + "name": "FunctionDefinition", + "src": "59940:212:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setBaseURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3394, + "name": "StructuredDocumentation", + "src": "60158:212:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "baseURI_", + "scope": 3404, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3395, + "name": "ElementaryTypeName", + "src": "60396:6:1" + } + ], + "id": 3396, + "name": "VariableDeclaration", + "src": "60396:22:1" + } + ], + "id": 3397, + "name": "ParameterList", + "src": "60395:24:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3398, + "name": "ParameterList", + "src": "60437:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 3399, + "name": "Identifier", + "src": "60447:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3396, + "type": "string memory", + "value": "baseURI_" + }, + "id": 3400, + "name": "Identifier", + "src": "60458:8:1" + } + ], + "id": 3401, + "name": "Assignment", + "src": "60447:19:1" + } + ], + "id": 3402, + "name": "ExpressionStatement", + "src": "60447:19:1" + } + ], + "id": 3403, + "name": "Block", + "src": "60437:36:1" + } + ], + "id": 3404, + "name": "FunctionDefinition", + "src": "60375:98:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_checkOnERC721Received", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3405, + "name": "StructuredDocumentation", + "src": "60479:542:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3406, + "name": "ElementaryTypeName", + "src": "61058:7:1" + } + ], + "id": 3407, + "name": "VariableDeclaration", + "src": "61058:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3408, + "name": "ElementaryTypeName", + "src": "61072:7:1" + } + ], + "id": 3409, + "name": "VariableDeclaration", + "src": "61072:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3410, + "name": "ElementaryTypeName", + "src": "61084:7:1" + } + ], + "id": 3411, + "name": "VariableDeclaration", + "src": "61084:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3462, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3412, + "name": "ElementaryTypeName", + "src": "61101:5:1" + } + ], + "id": 3413, + "name": "VariableDeclaration", + "src": "61101:18:1" + } + ], + "id": 3414, + "name": "ParameterList", + "src": "61057:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3415, + "name": "ElementaryTypeName", + "src": "61146:4:1" + } + ], + "id": 3416, + "name": "VariableDeclaration", + "src": "61146:4:1" + } + ], + "id": 3417, + "name": "ParameterList", + "src": "61145:6:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isContract", + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3418, + "name": "Identifier", + "src": "61171:2:1" + } + ], + "id": 3419, + "name": "MemberAccess", + "src": "61171:13:1" + } + ], + "id": 3420, + "name": "FunctionCall", + "src": "61171:15:1" + } + ], + "id": 3421, + "name": "UnaryOperation", + "src": "61170:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 3422, + "name": "Literal", + "src": "61209:4:1" + } + ], + "id": 3423, + "name": "Return", + "src": "61202:11:1" + } + ], + "id": 3424, + "name": "Block", + "src": "61188:36:1" + } + ], + "id": 3425, + "name": "IfStatement", + "src": "61166:58:1" + }, + { + "attributes": { + "assignments": [ + 3427 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 3461, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3426, + "name": "ElementaryTypeName", + "src": "61233:5:1" + } + ], + "id": 3427, + "name": "VariableDeclaration", + "src": "61233:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "functionCall", + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3428, + "name": "Identifier", + "src": "61259:2:1" + } + ], + "id": 3429, + "name": "MemberAccess", + "src": "61259:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodeWithSelector", + "type": "function (bytes4) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3430, + "name": "Identifier", + "src": "61275:3:1" + } + ], + "id": 3431, + "name": "MemberAccess", + "src": "61275:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "selector", + "type": "bytes4" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "onERC721Received", + "referencedDeclaration": 725, + "type": "function (address,address,uint256,bytes memory) external returns (bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "contract IERC721Receiver", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 726, + "type": "type(contract IERC721Receiver)", + "value": "IERC721Receiver" + }, + "id": 3432, + "name": "Identifier", + "src": "61311:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3433, + "name": "Identifier", + "src": "61327:2:1" + } + ], + "id": 3434, + "name": "FunctionCall", + "src": "61311:19:1" + } + ], + "id": 3435, + "name": "MemberAccess", + "src": "61311:36:1" + } + ], + "id": 3436, + "name": "MemberAccess", + "src": "61311:45:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3437, + "name": "Identifier", + "src": "61370:10:1" + } + ], + "id": 3438, + "name": "FunctionCall", + "src": "61370:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3407, + "type": "address", + "value": "from" + }, + "id": 3439, + "name": "Identifier", + "src": "61396:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3411, + "type": "uint256", + "value": "tokenId" + }, + "id": 3440, + "name": "Identifier", + "src": "61414:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3413, + "type": "bytes memory", + "value": "_data" + }, + "id": 3441, + "name": "Identifier", + "src": "61435:5:1" + } + ], + "id": 3442, + "name": "FunctionCall", + "src": "61275:175:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3443, + "name": "Literal", + "src": "61452:52:1" + } + ], + "id": 3444, + "name": "FunctionCall", + "src": "61259:246:1" + } + ], + "id": 3445, + "name": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "attributes": { + "assignments": [ + 3447 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "retval", + "scope": 3461, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 3446, + "name": "ElementaryTypeName", + "src": "61515:6:1" + } + ], + "id": 3447, + "name": "VariableDeclaration", + "src": "61515:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes4", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "decode", + "type": "function () pure" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3448, + "name": "Identifier", + "src": "61531:3:1" + } + ], + "id": 3449, + "name": "MemberAccess", + "src": "61531:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3427, + "type": "bytes memory", + "value": "returndata" + }, + "id": 3450, + "name": "Identifier", + "src": "61542:10:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "name": "bytes4" + }, + "id": 3451, + "name": "ElementaryTypeName", + "src": "61555:6:1" + } + ], + "id": 3452, + "name": "ElementaryTypeNameExpression", + "src": "61555:6:1" + } + ], + "id": 3453, + "name": "TupleExpression", + "src": "61554:8:1" + } + ], + "id": 3454, + "name": "FunctionCall", + "src": "61531:32:1" + } + ], + "id": 3455, + "name": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3447, + "type": "bytes4", + "value": "retval" + }, + "id": 3456, + "name": "Identifier", + "src": "61581:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2596, + "type": "bytes4", + "value": "_ERC721_RECEIVED" + }, + "id": 3457, + "name": "Identifier", + "src": "61591:16:1" + } + ], + "id": 3458, + "name": "BinaryOperation", + "src": "61581:26:1" + } + ], + "id": 3459, + "name": "TupleExpression", + "src": "61580:28:1" + } + ], + "id": 3460, + "name": "Return", + "src": "61573:35:1" + } + ], + "id": 3461, + "name": "Block", + "src": "61156:459:1" + } + ], + "id": 3462, + "name": "FunctionDefinition", + "src": "61026:589:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3463, + "name": "StructuredDocumentation", + "src": "61621:101:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3464, + "name": "ElementaryTypeName", + "src": "61745:7:1" + } + ], + "id": 3465, + "name": "VariableDeclaration", + "src": "61745:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3466, + "name": "ElementaryTypeName", + "src": "61757:7:1" + } + ], + "id": 3467, + "name": "VariableDeclaration", + "src": "61757:15:1" + } + ], + "id": 3468, + "name": "ParameterList", + "src": "61744:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3469, + "name": "ParameterList", + "src": "61791:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 3470, + "name": "Identifier", + "src": "61801:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3471, + "name": "Identifier", + "src": "61817:7:1" + } + ], + "id": 3472, + "name": "IndexAccess", + "src": "61801:24:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3473, + "name": "Identifier", + "src": "61828:2:1" + } + ], + "id": 3474, + "name": "Assignment", + "src": "61801:29:1" + } + ], + "id": 3475, + "name": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 563, + "type": "function (address,address,uint256)", + "value": "Approval" + }, + "id": 3476, + "name": "Identifier", + "src": "61845:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3477, + "name": "Identifier", + "src": "61854:6:1" + } + ], + "id": 3478, + "name": "MemberAccess", + "src": "61854:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3479, + "name": "Identifier", + "src": "61869:7:1" + } + ], + "id": 3480, + "name": "FunctionCall", + "src": "61854:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3481, + "name": "Identifier", + "src": "61879:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3482, + "name": "Identifier", + "src": "61883:7:1" + } + ], + "id": 3483, + "name": "FunctionCall", + "src": "61845:46:1" + } + ], + "id": 3484, + "name": "EmitStatement", + "src": "61840:51:1" + } + ], + "id": 3485, + "name": "Block", + "src": "61791:125:1" + } + ], + "id": 3486, + "name": "FunctionDefinition", + "src": "61727:189:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_beforeTokenTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3487, + "name": "StructuredDocumentation", + "src": "61922:585:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3488, + "name": "ElementaryTypeName", + "src": "62542:7:1" + } + ], + "id": 3489, + "name": "VariableDeclaration", + "src": "62542:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3490, + "name": "ElementaryTypeName", + "src": "62556:7:1" + } + ], + "id": 3491, + "name": "VariableDeclaration", + "src": "62556:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3492, + "name": "ElementaryTypeName", + "src": "62568:7:1" + } + ], + "id": 3493, + "name": "VariableDeclaration", + "src": "62568:15:1" + } + ], + "id": 3494, + "name": "ParameterList", + "src": "62541:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3495, + "name": "ParameterList", + "src": "62602:0:1" + }, + { + "attributes": { + "statements": [ + null + ] + }, + "children": [], + "id": 3496, + "name": "Block", + "src": "62602:3:1" + } + ], + "id": 3497, + "name": "FunctionDefinition", + "src": "62512:93:1" + } + ], + "id": 3498, + "name": "ContractDefinition", + "src": "46080:16527:1" + } + ], + "id": 3499, + "name": "SourceUnit", + "src": "84:62524:1" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-13T11:18:08.150Z", + "devdoc": { + "details": "See https://eips.ethereum.org/EIPS/eip-721", + "kind": "dev", + "methods": { + "approve(address,uint256)": { + "details": "Gives permission to `to` to transfer `tokenId` token to another account. The approval is cleared when the token is transferred. Only a single account can be approved at a time, so approving the zero address clears previous approvals. Requirements: - The caller must own the token or be an approved operator. - `tokenId` must exist. Emits an {Approval} event." + }, + "balanceOf(address)": { + "details": "Returns the number of tokens in ``owner``'s account." + }, + "getApproved(uint256)": { + "details": "Returns the account approved for `tokenId` token. Requirements: - `tokenId` must exist." + }, + "isApprovedForAll(address,address)": { + "details": "Returns if the `operator` is allowed to manage all of the assets of `owner`. See {setApprovalForAll}" + }, + "name()": { + "details": "Returns the token collection name." + }, + "ownerOf(uint256)": { + "details": "Returns the owner of the `tokenId` token. Requirements: - `tokenId` must exist." + }, + "safeTransferFrom(address,address,uint256)": { + "details": "Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients are aware of the ERC721 protocol to prevent tokens from being forever locked. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event." + }, + "safeTransferFrom(address,address,uint256,bytes)": { + "details": "Safely transfers `tokenId` token from `from` to `to`. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must exist and be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. Emits a {Transfer} event." + }, + "setApprovalForAll(address,bool)": { + "details": "Approve or remove `operator` as an operator for the caller. Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. Requirements: - The `operator` cannot be the caller. Emits an {ApprovalForAll} event." + }, + "supportsInterface(bytes4)": { + "details": "Returns true if this contract implements the interface defined by `interfaceId`. See the corresponding https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] to learn more about how these ids are created. This function call must use less than 30 000 gas." + }, + "symbol()": { + "details": "Returns the token collection symbol." + }, + "tokenURI(uint256)": { + "details": "Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "transferFrom(address,address,uint256)": { + "details": "Transfers `tokenId` token from `from` to `to`. WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. Requirements: - `from` cannot be the zero address. - `to` cannot be the zero address. - `tokenId` token must be owned by `from`. - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. Emits a {Transfer} event." + } + }, + "title": "ERC-721 Non-Fungible Token Standard, optional metadata extension", + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/abis/IERC721Receiver.json b/src/abis/IERC721Receiver.json new file mode 100644 index 0000000..3d4979d --- /dev/null +++ b/src/abis/IERC721Receiver.json @@ -0,0 +1,77598 @@ +{ + "contractName": "IERC721Receiver", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "operator", + "type": "address" + }, + { + "internalType": "address", + "name": "from", + "type": "address" + }, + { + "internalType": "uint256", + "name": "tokenId", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.\",\"kind\":\"dev\",\"methods\":{\"onERC721Received(address,address,uint256,bytes)\":{\"details\":\"Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\"}},\"title\":\"ERC721 token receiver interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":\"IERC721Receiver\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":{\"keccak256\":\"0xac9220652f9879c5fb3116025d59e8fbf6c2c3d149aed9f617b88edd31402044\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48de100723de94a6590c6db5bae5098a93445194389c3f3eeb104c7239ef3044\",\"dweb:/ipfs/QmVHLEtfLqBqX7XQRHfLuuwtufRBFJFHfgY4zbFRpaZwXC\"]}},\"version\":1}", + "bytecode": "0x", + "deployedBytecode": "0x", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "", + "deployedSourceMap": "", + "source": "// SPDX-License-Identifier: MIT\n\n// File: @openzeppelin/contracts/utils/Context.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\n\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Enumerable is IERC721 {\n\n /**\n * @dev Returns the total amount of tokens stored by the contract.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);\n\n /**\n * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n * Use along with {totalSupply} to enumerate all tokens.\n */\n function tokenByIndex(uint256 index) external view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\npragma solidity >=0.6.0 <0.8.0;\n\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts may inherit from this and call {_registerInterface} to declare\n * their support of an interface.\n */\nabstract contract ERC165 is IERC165 {\n /*\n * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7\n */\n bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;\n\n /**\n * @dev Mapping of interface ids to whether or not it's supported.\n */\n mapping(bytes4 => bool) private _supportedInterfaces;\n\n constructor () {\n // Derived contracts need only register support for their own interfaces,\n // we register support for ERC165 itself here\n _registerInterface(_INTERFACE_ID_ERC165);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n *\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return _supportedInterfaces[interfaceId];\n }\n\n /**\n * @dev Registers the contract as an implementer of the interface defined by\n * `interfaceId`. Support of the actual ERC165 interface is automatic and\n * registering its interface id is not required.\n *\n * See {IERC165-supportsInterface}.\n *\n * Requirements:\n *\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).\n */\n function _registerInterface(bytes4 interfaceId) internal virtual {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the substraction of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n return a - b;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) return 0;\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: division by zero\");\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: modulo by zero\");\n return a % b;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {trySub}.\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryDiv}.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting with custom message when dividing by zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryMod}.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a % b;\n }\n}\n\n// File: @openzeppelin/contracts/utils/Address.sol\npragma solidity >=0.6.2 <0.8.0;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n // solhint-disable-next-line no-inline-assembly\n assembly { size := extcodesize(account) }\n return size > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: value }(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.staticcall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableSet.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) { // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n bytes32 lastvalue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastvalue;\n // Update the index for the moved value\n set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n require(set._values.length > index, \"EnumerableSet: index out of bounds\");\n return set._values[index];\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableMap.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing an enumerable variant of Solidity's\n * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n * type.\n *\n * Maps have the following properties:\n *\n * - Entries are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Entries are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableMap for EnumerableMap.UintToAddressMap;\n *\n * // Declare a set state variable\n * EnumerableMap.UintToAddressMap private myMap;\n * }\n * ```\n *\n * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n * supported.\n */\nlibrary EnumerableMap {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Map type with\n // bytes32 keys and values.\n // The Map implementation uses private functions, and user-facing\n // implementations (such as Uint256ToAddressMap) are just wrappers around\n // the underlying Map.\n // This means that we can only create new EnumerableMaps for types that fit\n // in bytes32.\n\n struct MapEntry {\n bytes32 _key;\n bytes32 _value;\n }\n\n struct Map {\n // Storage of map keys and values\n MapEntry[] _entries;\n\n // Position of the entry defined by a key in the `entries` array, plus 1\n // because index 0 means a key is not in the map.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex == 0) { // Equivalent to !contains(map, key)\n map._entries.push(MapEntry({ _key: key, _value: value }));\n // The entry is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n map._indexes[key] = map._entries.length;\n return true;\n } else {\n map._entries[keyIndex - 1]._value = value;\n return false;\n }\n }\n\n /**\n * @dev Removes a key-value pair from a map. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function _remove(Map storage map, bytes32 key) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex != 0) { // Equivalent to contains(map, key)\n // To delete a key-value pair from the _entries array in O(1), we swap the entry to delete with the last one\n // in the array, and then remove the last entry (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = keyIndex - 1;\n uint256 lastIndex = map._entries.length - 1;\n\n // When the entry to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n MapEntry storage lastEntry = map._entries[lastIndex];\n\n // Move the last entry to the index where the entry to delete is\n map._entries[toDeleteIndex] = lastEntry;\n // Update the index for the moved entry\n map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved entry was stored\n map._entries.pop();\n\n // Delete the index for the deleted slot\n delete map._indexes[key];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function _contains(Map storage map, bytes32 key) private view returns (bool) {\n return map._indexes[key] != 0;\n }\n\n /**\n * @dev Returns the number of key-value pairs in the map. O(1).\n */\n function _length(Map storage map) private view returns (uint256) {\n return map._entries.length;\n }\n\n /**\n * @dev Returns the key-value pair stored at position `index` in the map. O(1).\n *\n * Note that there are no guarantees on the ordering of entries inside the\n * array, and it may change when more entries are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) {\n require(map._entries.length > index, \"EnumerableMap: index out of bounds\");\n\n MapEntry storage entry = map._entries[index];\n return (entry._key, entry._value);\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n */\n function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) {\n uint256 keyIndex = map._indexes[key];\n if (keyIndex == 0) return (false, 0); // Equivalent to contains(map, key)\n return (true, map._entries[keyIndex - 1]._value); // All indexes are 1-based\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function _get(Map storage map, bytes32 key) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, \"EnumerableMap: nonexistent key\"); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n /**\n * @dev Same as {_get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {_tryGet}.\n */\n function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n // UintToAddressMap\n\n struct UintToAddressMap {\n Map _inner;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) {\n return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {\n return _remove(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {\n return _contains(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns the number of elements in the map. O(1).\n */\n function length(UintToAddressMap storage map) internal view returns (uint256) {\n return _length(map._inner);\n }\n\n /**\n * @dev Returns the element stored at position `index` in the set. O(1).\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {\n (bytes32 key, bytes32 value) = _at(map._inner, index);\n return (uint256(key), address(uint160(uint256(value))));\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n *\n * _Available since v3.4._\n */\n function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) {\n (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key));\n return (success, address(uint160(uint256(value))));\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key)))));\n }\n\n /**\n * @dev Same as {get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryGet}.\n */\n function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage))));\n }\n}\n\n// File: @openzeppelin/contracts/utils/Strings.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n /**\n * @dev Converts a `uint256` to its ASCII `string` representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n uint256 index = digits - 1;\n temp = value;\n while (temp != 0) {\n buffer[index--] = bytes1(uint8(48 + temp % 10));\n temp /= 10;\n }\n return string(buffer);\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 Non-Fungible Token Standard basic implementation\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable {\n using SafeMath for uint256;\n using Address for address;\n using EnumerableSet for EnumerableSet.UintSet;\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n using Strings for uint256;\n\n // Equals to `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n // which can be also obtained as `IERC721Receiver(0).onERC721Received.selector`\n bytes4 private constant _ERC721_RECEIVED = 0x150b7a02;\n\n // Mapping from holder address to their (enumerable) set of owned tokens\n mapping (address => EnumerableSet.UintSet) private _holderTokens;\n\n // Enumerable mapping from token ids to their owners\n EnumerableMap.UintToAddressMap private _tokenOwners;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Optional mapping for token URIs\n mapping (uint256 => string) private _tokenURIs;\n\n // Base URI\n string private _baseURI;\n\n /*\n * bytes4(keccak256('balanceOf(address)')) == 0x70a08231\n * bytes4(keccak256('ownerOf(uint256)')) == 0x6352211e\n * bytes4(keccak256('approve(address,uint256)')) == 0x095ea7b3\n * bytes4(keccak256('getApproved(uint256)')) == 0x081812fc\n * bytes4(keccak256('setApprovalForAll(address,bool)')) == 0xa22cb465\n * bytes4(keccak256('isApprovedForAll(address,address)')) == 0xe985e9c5\n * bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde\n *\n * => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^\n * 0xa22cb465 ^ 0xe985e9c5 ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n /*\n * bytes4(keccak256('name()')) == 0x06fdde03\n * bytes4(keccak256('symbol()')) == 0x95d89b41\n * bytes4(keccak256('tokenURI(uint256)')) == 0xc87b56dd\n *\n * => 0x06fdde03 ^ 0x95d89b41 ^ 0xc87b56dd == 0x5b5e139f\n */\n bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f;\n\n /*\n * bytes4(keccak256('totalSupply()')) == 0x18160ddd\n * bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) == 0x2f745c59\n * bytes4(keccak256('tokenByIndex(uint256)')) == 0x4f6ccce7\n *\n * => 0x18160ddd ^ 0x2f745c59 ^ 0x4f6ccce7 == 0x780e9d63\n */\n bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor (string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n return _holderTokens[owner].length();\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n return _tokenOwners.get(tokenId, \"ERC721: owner query for nonexistent token\");\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).\n if (bytes(_tokenURI).length > 0) {\n return string(abi.encodePacked(base, _tokenURI));\n }\n // If there is a baseURI but no tokenURI, concatenate the tokenID to the baseURI.\n return string(abi.encodePacked(base, tokenId.toString()));\n }\n\n /**\n * @dev Returns the base URI set via {_setBaseURI}. This will be\n * automatically added as a prefix in {tokenURI} to each token's URI, or\n * to the token ID if no specific URI is set for that token ID.\n */\n function baseURI() public view virtual returns (string memory) {\n return _baseURI;\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\n return _holderTokens[owner].at(index);\n }\n\n /**\n * @dev See {IERC721Enumerable-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n // _tokenOwners are indexed by tokenIds, so .length() returns the number of tokenIds\n return _tokenOwners.length();\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenByIndex}.\n */\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\n (uint256 tokenId, ) = _tokenOwners.at(index);\n return tokenId;\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(_msgSender() == owner || ERC721.isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n require(operator != _msgSender(), \"ERC721: approve to caller\");\n\n _operatorApprovals[_msgSender()][operator] = approved;\n emit ApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n _safeTransfer(from, to, tokenId, _data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `_data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _tokenOwners.contains(tokenId);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || ERC721.isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n d*\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory _data) internal virtual {\n _mint(to, tokenId);\n require(_checkOnERC721Received(address(0), to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId);\n\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId); // internal owner\n\n _beforeTokenTransfer(owner, address(0), tokenId);\n\n // Clear approvals\n _approve(address(0), tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n\n _holderTokens[owner].remove(tokenId);\n\n _tokenOwners.remove(tokenId);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\"); // internal owner\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId);\n\n // Clear approvals from the previous owner\n _approve(address(0), tokenId);\n\n _holderTokens[from].remove(tokenId);\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = _tokenURI;\n }\n\n /**\n * @dev Internal function to set the base URI for all token IDs. It is\n * automatically added as a prefix to the value returned in {tokenURI},\n * or to the token ID if {tokenURI} is empty.\n */\n function _setBaseURI(string memory baseURI_) internal virtual {\n _baseURI = baseURI_;\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data)\n private returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n bytes memory returndata = to.functionCall(abi.encodeWithSelector(\n IERC721Receiver(to).onERC721Received.selector,\n _msgSender(),\n from,\n tokenId,\n _data\n ), \"ERC721: transfer to non ERC721Receiver implementer\");\n bytes4 retval = abi.decode(returndata, (bytes4));\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits an {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId); // internal owner\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n * transferred to `to`.\n * - When `from` is zero, `tokenId` will be minted for `to`.\n * - When `to` is zero, ``from``'s `tokenId` will be burned.\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual { }\n}\n", + "sourcePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "ast": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "id": 3499, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 509, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "84:31:1" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 530, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 517, + "nodeType": "Block", + "src": "719:34:1", + "statements": [ + { + "expression": { + "expression": { + "id": 514, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "736:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "736:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 513, + "id": 516, + "nodeType": "Return", + "src": "729:17:1" + } + ] + }, + "id": 518, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 510, + "nodeType": "ParameterList", + "parameters": [], + "src": "668:2:1" + }, + "returnParameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 518, + "src": "702:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "702:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "701:17:1" + }, + "scope": 530, + "src": "649:104:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 528, + "nodeType": "Block", + "src": "824:165:1", + "statements": [ + { + "expression": { + "id": 523, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "834:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 524, + "nodeType": "ExpressionStatement", + "src": "834:4:1" + }, + { + "expression": { + "expression": { + "id": 525, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "974:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "src": "974:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 522, + "id": 527, + "nodeType": "Return", + "src": "967:15:1" + } + ] + }, + "id": 529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 519, + "nodeType": "ParameterList", + "parameters": [], + "src": "776:2:1" + }, + "returnParameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "810:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 520, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "810:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "809:14:1" + }, + "scope": 530, + "src": "759:230:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "617:374:1" + }, + { + "id": 531, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1053:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 532, + "nodeType": "StructuredDocumentation", + "src": "1086:279:1", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 541, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 533, + "nodeType": "StructuredDocumentation", + "src": "1390:340:1", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 540, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1762:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 534, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1762:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1761:20:1" + }, + "returnParameters": { + "id": 539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1805:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1805:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1804:6:1" + }, + "scope": 541, + "src": "1735:76:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1366:447:1" + }, + { + "id": 542, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1873:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 544, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "1996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 545, + "nodeType": "InheritanceSpecifier", + "src": "1996:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "1907:67:1", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 655, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 546, + "nodeType": "StructuredDocumentation", + "src": "2010:88:1", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 554, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 548, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2118:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 550, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2140:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2140:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 552, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2160:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2117:67:1" + }, + "src": "2103:82:1" + }, + { + "anonymous": false, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "2191:94:1", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 563, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 557, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2305:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2305:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 559, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2328:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 561, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2354:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2354:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2304:74:1" + }, + "src": "2290:89:1" + }, + { + "anonymous": false, + "documentation": { + "id": 564, + "nodeType": "StructuredDocumentation", + "src": "2385:117:1", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 572, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 566, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2528:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2528:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2551:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2551:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 570, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2577:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 569, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2577:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2527:64:1" + }, + "src": "2507:85:1" + }, + { + "documentation": { + "id": 573, + "nodeType": "StructuredDocumentation", + "src": "2598:76:1", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2698:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 574, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2698:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2697:15:1" + }, + "returnParameters": { + "id": 579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2736:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2735:17:1" + }, + "scope": 655, + "src": "2679:74:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 581, + "nodeType": "StructuredDocumentation", + "src": "2759:131:1", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 588, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 583, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2912:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2912:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2911:17:1" + }, + "returnParameters": { + "id": 587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2952:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2951:15:1" + }, + "scope": 655, + "src": "2895:72:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 589, + "nodeType": "StructuredDocumentation", + "src": "2973:690:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 598, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 591, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3694:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3694:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3708:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3708:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3720:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3720:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3693:43:1" + }, + "returnParameters": { + "id": 597, + "nodeType": "ParameterList", + "parameters": [], + "src": "3745:0:1" + }, + "scope": 655, + "src": "3668:78:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 599, + "nodeType": "StructuredDocumentation", + "src": "3752:504:1", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 608, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 601, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4283:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4283:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 603, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4297:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 602, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4297:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4309:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4309:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4282:43:1" + }, + "returnParameters": { + "id": 607, + "nodeType": "ParameterList", + "parameters": [], + "src": "4334:0:1" + }, + "scope": 655, + "src": "4261:74:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 609, + "nodeType": "StructuredDocumentation", + "src": "4341:452:1", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 616, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 611, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4815:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4815:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4827:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4814:29:1" + }, + "returnParameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [], + "src": "4852:0:1" + }, + "scope": 655, + "src": "4798:55:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 617, + "nodeType": "StructuredDocumentation", + "src": "4859:139:1", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 619, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5024:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5024:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5023:17:1" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5064:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5064:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5063:18:1" + }, + "scope": 655, + "src": "5003:79:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 625, + "nodeType": "StructuredDocumentation", + "src": "5088:309:1", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 632, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5429:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5429:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5447:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 628, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5447:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5428:34:1" + }, + "returnParameters": { + "id": 631, + "nodeType": "ParameterList", + "parameters": [], + "src": "5471:0:1" + }, + "scope": 655, + "src": "5402:70:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 633, + "nodeType": "StructuredDocumentation", + "src": "5478:138:1", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 642, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5647:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5647:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5662:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5662:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5646:33:1" + }, + "returnParameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5703:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 639, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5703:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5702:6:1" + }, + "scope": 655, + "src": "5621:88:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 643, + "nodeType": "StructuredDocumentation", + "src": "5715:568:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 654, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6314:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6314:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6328:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6340:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6340:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6357:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 650, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6357:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6313:64:1" + }, + "returnParameters": { + "id": 653, + "nodeType": "ParameterList", + "parameters": [], + "src": "6386:0:1" + }, + "scope": 655, + "src": "6288:99:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1975:4414:1" + }, + { + "id": 656, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "6457:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 658, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "6654:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 659, + "nodeType": "InheritanceSpecifier", + "src": "6654:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 657, + "nodeType": "StructuredDocumentation", + "src": "6491:133:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 680, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 660, + "nodeType": "StructuredDocumentation", + "src": "6669:58:1", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 665, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [], + "src": "6745:2:1" + }, + "returnParameters": { + "id": 664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 663, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 665, + "src": "6771:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 662, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6771:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6770:15:1" + }, + "scope": 680, + "src": "6732:54:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 666, + "nodeType": "StructuredDocumentation", + "src": "6792:60:1", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 671, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 667, + "nodeType": "ParameterList", + "parameters": [], + "src": "6872:2:1" + }, + "returnParameters": { + "id": 670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 669, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "6898:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 668, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6897:15:1" + }, + "scope": 680, + "src": "6857:56:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 672, + "nodeType": "StructuredDocumentation", + "src": "6919:90:1", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 679, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7032:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7031:17:1" + }, + "returnParameters": { + "id": 678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7072:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 676, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7072:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7071:15:1" + }, + "scope": 680, + "src": "7014:73:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "6625:464:1" + }, + { + "id": 681, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "7161:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 683, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "7363:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 684, + "nodeType": "InheritanceSpecifier", + "src": "7363:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 682, + "nodeType": "StructuredDocumentation", + "src": "7195:136:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 709, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 685, + "nodeType": "StructuredDocumentation", + "src": "7378:82:1", + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "functionSelector": "18160ddd", + "id": 690, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 686, + "nodeType": "ParameterList", + "parameters": [], + "src": "7485:2:1" + }, + "returnParameters": { + "id": 689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 688, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "7511:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 687, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7511:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7510:9:1" + }, + "scope": 709, + "src": "7465:55:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "7526:171:1", + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "functionSelector": "2f745c59", + "id": 700, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7731:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7731:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7746:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7746:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7730:30:1" + }, + "returnParameters": { + "id": 699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 698, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7784:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7784:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7783:17:1" + }, + "scope": 709, + "src": "7702:99:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 701, + "nodeType": "StructuredDocumentation", + "src": "7807:164:1", + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "functionSelector": "4f6ccce7", + "id": 708, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 703, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "7998:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7998:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7997:15:1" + }, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "8036:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8036:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8035:9:1" + }, + "scope": 709, + "src": "7976:69:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "7332:715:1" + }, + { + "id": 710, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "8117:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 711, + "nodeType": "StructuredDocumentation", + "src": "8150:152:1", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 726, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 712, + "nodeType": "StructuredDocumentation", + "src": "8335:485:1", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 725, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8851:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8851:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8869:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8883:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8900:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 719, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8900:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8850:70:1" + }, + "returnParameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8939:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 722, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8939:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "8938:8:1" + }, + "scope": 726, + "src": "8825:122:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "8303:646:1" + }, + { + "id": 727, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9009:31:1" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 729, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "9243:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 730, + "nodeType": "InheritanceSpecifier", + "src": "9243:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "documentation": { + "id": 728, + "nodeType": "StructuredDocumentation", + "src": "9043:171:1", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "fullyImplemented": true, + "id": 781, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 733, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9340:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 731, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9340:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783031666663396137", + "id": 732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "9404:82:1", + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 738, + "mutability": "mutable", + "name": "_supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9491:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 737, + "keyType": { + "id": 735, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9499:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "9491:23:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 736, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9509:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 745, + "nodeType": "Block", + "src": "9565:193:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 742, + "name": "_INTERFACE_ID_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "9730:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 741, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "9711:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9711:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 744, + "nodeType": "ExpressionStatement", + "src": "9711:40:1" + } + ] + }, + "id": 746, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 739, + "nodeType": "ParameterList", + "parameters": [], + "src": "9562:2:1" + }, + "returnParameters": { + "id": 740, + "nodeType": "ParameterList", + "parameters": [], + "src": "9565:0:1" + }, + "scope": 781, + "src": "9550:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 540 + ], + "body": { + "id": 759, + "nodeType": "Block", + "src": "9999:57:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 755, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10016:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 757, + "indexExpression": { + "id": 756, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "10037:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10016:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 754, + "id": 758, + "nodeType": "Return", + "src": "10009:40:1" + } + ] + }, + "documentation": { + "id": 747, + "nodeType": "StructuredDocumentation", + "src": "9764:139:1", + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 760, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 751, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9975:8:1" + }, + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9935:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 748, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9935:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "9934:20:1" + }, + "returnParameters": { + "id": 754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 753, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9993:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9993:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9992:6:1" + }, + "scope": 781, + "src": "9908:148:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 779, + "nodeType": "Block", + "src": "10515:133:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 767, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10533:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10548:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "10533:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10560:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + }, + "value": "ERC165: invalid interface id" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "id": 766, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "10525:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10525:66:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 772, + "nodeType": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "expression": { + "id": 777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 773, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10601:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 775, + "indexExpression": { + "id": 774, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10622:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10637:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10601:40:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 778, + "nodeType": "ExpressionStatement", + "src": "10601:40:1" + } + ] + }, + "documentation": { + "id": 761, + "nodeType": "StructuredDocumentation", + "src": "10062:383:1", + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 780, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 763, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 780, + "src": "10478:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 762, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "10478:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "10477:20:1" + }, + "returnParameters": { + "id": 765, + "nodeType": "ParameterList", + "parameters": [], + "src": "10515:0:1" + }, + "scope": 781, + "src": "10450:198:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "9215:1435:1" + }, + { + "id": 782, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10703:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 783, + "nodeType": "StructuredDocumentation", + "src": "10736:563:1", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 1135, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 813, + "nodeType": "Block", + "src": "11535:98:1", + "statements": [ + { + "assignments": [ + 796 + ], + "declarations": [ + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 813, + "src": "11545:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 795, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 800, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 797, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11557:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "11561:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11557:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 801, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11576:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 802, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11580:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11576:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 808, + "nodeType": "IfStatement", + "src": "11572:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11591:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11598:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 806, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11590:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 794, + "id": 807, + "nodeType": "Return", + "src": "11583:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11618:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 810, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11624:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 811, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11617:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 794, + "id": 812, + "nodeType": "Return", + "src": "11610:16:1" + } + ] + }, + "documentation": { + "id": 784, + "nodeType": "StructuredDocumentation", + "src": "11323:131:1", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 814, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11475:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11475:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11486:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11486:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11474:22:1" + }, + "returnParameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 791, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11526:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 792, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11526:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11519:15:1" + }, + "scope": 1135, + "src": "11459:174:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 840, + "nodeType": "Block", + "src": "11855:75:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 826, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11869:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 827, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11873:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11869:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 833, + "nodeType": "IfStatement", + "src": "11865:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11884:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 831, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11883:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 825, + "id": 832, + "nodeType": "Return", + "src": "11876:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11911:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 835, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11917:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 836, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11921:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11917:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 838, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11910:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 825, + "id": 839, + "nodeType": "Return", + "src": "11903:20:1" + } + ] + }, + "documentation": { + "id": 815, + "nodeType": "StructuredDocumentation", + "src": "11639:135:1", + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 841, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 817, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11795:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11795:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 819, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11806:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11806:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11794:22:1" + }, + "returnParameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11840:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 821, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11840:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 824, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11846:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11846:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11839:15:1" + }, + "scope": 1135, + "src": "11779:151:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 881, + "nodeType": "Block", + "src": "12154:359:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 853, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12386:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12391:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12386:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 860, + "nodeType": "IfStatement", + "src": "12382:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12402:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12408:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 858, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12401:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 859, + "nodeType": "Return", + "src": "12394:16:1" + } + }, + { + "assignments": [ + 862 + ], + "declarations": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "12420:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12420:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 866, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12432:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 864, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12436:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12432:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 867, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12451:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 868, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12455:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 870, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12460:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 876, + "nodeType": "IfStatement", + "src": "12447:33:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12471:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12478:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 874, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12470:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 875, + "nodeType": "Return", + "src": "12463:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12498:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 878, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12504:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12497:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 852, + "id": 880, + "nodeType": "Return", + "src": "12490:16:1" + } + ] + }, + "documentation": { + "id": 842, + "nodeType": "StructuredDocumentation", + "src": "11936:137:1", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 844, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12094:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12094:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 846, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12105:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12093:22:1" + }, + "returnParameters": { + "id": 852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12139:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 848, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12139:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12145:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12145:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12138:15:1" + }, + "scope": 1135, + "src": "12078:435:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 908, + "nodeType": "Block", + "src": "12738:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 894, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12752:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12757:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12752:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 901, + "nodeType": "IfStatement", + "src": "12748:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12768:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12775:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 899, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12767:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 893, + "id": 900, + "nodeType": "Return", + "src": "12760:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12795:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 903, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "12801:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 904, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12805:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12801:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 906, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12794:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 893, + "id": 907, + "nodeType": "Return", + "src": "12787:20:1" + } + ] + }, + "documentation": { + "id": 883, + "nodeType": "StructuredDocumentation", + "src": "12519:138:1", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 909, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12678:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12678:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12689:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12689:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12677:22:1" + }, + "returnParameters": { + "id": 893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12723:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 889, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12723:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12729:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12729:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12722:15:1" + }, + "scope": 1135, + "src": "12662:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 935, + "nodeType": "Block", + "src": "13049:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 921, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13063:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13068:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13063:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 928, + "nodeType": "IfStatement", + "src": "13059:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13079:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13086:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 926, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13078:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 920, + "id": 927, + "nodeType": "Return", + "src": "13071:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13106:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 930, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "13112:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 931, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13116:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13112:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13105:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 920, + "id": 934, + "nodeType": "Return", + "src": "13098:20:1" + } + ] + }, + "documentation": { + "id": 910, + "nodeType": "StructuredDocumentation", + "src": "12820:148:1", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 912, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "12989:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12989:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 914, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13000:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 913, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13000:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12988:22:1" + }, + "returnParameters": { + "id": 920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 917, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13034:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 916, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13034:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 919, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13040:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13040:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13033:15:1" + }, + "scope": 1135, + "src": "12973:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 961, + "nodeType": "Block", + "src": "13427:108:1", + "statements": [ + { + "assignments": [ + 947 + ], + "declarations": [ + { + "constant": false, + "id": 947, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "13437:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13437:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 951, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13449:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 949, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 941, + "src": "13453:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13449:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 953, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13472:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 954, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13477:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13480:29:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 952, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13464:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 958, + "nodeType": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "expression": { + "id": 959, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13527:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 945, + "id": 960, + "nodeType": "Return", + "src": "13520:8:1" + } + ] + }, + "documentation": { + "id": 937, + "nodeType": "StructuredDocumentation", + "src": "13131:224:1", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13373:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13384:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13384:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13372:22:1" + }, + "returnParameters": { + "id": 945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13418:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13418:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13417:9:1" + }, + "scope": 1135, + "src": "13360:175:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 983, + "nodeType": "Block", + "src": "13873:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 973, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13896:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13891:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13883:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 979, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13949:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 980, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13953:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13949:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 971, + "id": 982, + "nodeType": "Return", + "src": "13942:12:1" + } + ] + }, + "documentation": { + "id": 963, + "nodeType": "StructuredDocumentation", + "src": "13541:260:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 984, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13819:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 964, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 967, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13830:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13830:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13818:22:1" + }, + "returnParameters": { + "id": 971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 970, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13864:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13864:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13863:9:1" + }, + "scope": 1135, + "src": "13806:155:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "14275:148:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 994, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14289:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14294:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14289:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "IfStatement", + "src": "14285:20:1", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14304:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 993, + "id": 998, + "nodeType": "Return", + "src": "14297:8:1" + } + }, + { + "assignments": [ + 1001 + ], + "declarations": [ + { + "constant": false, + "id": 1001, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "14315:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14315:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1005, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1002, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14327:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1003, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14331:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14327:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1007, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14350:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1008, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14354:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1010, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14359:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14362:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1006, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14342:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14342:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "expression": { + "id": 1015, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14415:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 993, + "id": 1016, + "nodeType": "Return", + "src": "14408:8:1" + } + ] + }, + "documentation": { + "id": 985, + "nodeType": "StructuredDocumentation", + "src": "13967:236:1", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14221:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 989, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14232:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 988, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14232:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14220:22:1" + }, + "returnParameters": { + "id": 993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 992, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14266:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14266:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14265:9:1" + }, + "scope": 1135, + "src": "14208:215:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1039, + "nodeType": "Block", + "src": "14954:83:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1029, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "14972:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14976:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14972:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14979:28:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14964:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14964:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1034, + "nodeType": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1035, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1021, + "src": "15025:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1036, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "15029:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15025:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1027, + "id": 1038, + "nodeType": "Return", + "src": "15018:12:1" + } + ] + }, + "documentation": { + "id": 1019, + "nodeType": "StructuredDocumentation", + "src": "14429:453:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1040, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1021, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14900:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14900:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1023, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14911:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14899:22:1" + }, + "returnParameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1026, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14945:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14945:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14944:9:1" + }, + "scope": 1135, + "src": "14887:150:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1061, + "nodeType": "Block", + "src": "15557:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1051, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15575:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15579:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15582:26:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 1050, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "15567:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15567:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1056, + "nodeType": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1057, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1043, + "src": "15626:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1058, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15630:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15626:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1049, + "id": 1060, + "nodeType": "Return", + "src": "15619:12:1" + } + ] + }, + "documentation": { + "id": 1041, + "nodeType": "StructuredDocumentation", + "src": "15043:442:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1062, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1043, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15503:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1045, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15514:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15502:22:1" + }, + "returnParameters": { + "id": 1049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1048, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15548:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15548:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15547:9:1" + }, + "scope": 1135, + "src": "15490:148:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1085, + "nodeType": "Block", + "src": "16197:68:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16215:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1076, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16220:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16215:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1078, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "16223:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1074, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "16207:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16207:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1080, + "nodeType": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16253:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1082, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16257:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16253:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1073, + "id": 1084, + "nodeType": "Return", + "src": "16246:12:1" + } + ] + }, + "documentation": { + "id": 1063, + "nodeType": "StructuredDocumentation", + "src": "15644:453:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1086, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16115:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16115:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16126:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16137:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1068, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16137:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16114:50:1" + }, + "returnParameters": { + "id": 1073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16188:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16188:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16187:9:1" + }, + "scope": 1135, + "src": "16102:163:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1109, + "nodeType": "Block", + "src": "17017:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1099, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17035:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17039:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17035:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1102, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1093, + "src": "17042:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17027:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17027:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1105, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "17072:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1106, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17076:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17072:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1097, + "id": 1108, + "nodeType": "Return", + "src": "17065:12:1" + } + ] + }, + "documentation": { + "id": 1087, + "nodeType": "StructuredDocumentation", + "src": "16271:646:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16935:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16935:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16946:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16946:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1093, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16957:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1092, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16957:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16934:50:1" + }, + "returnParameters": { + "id": 1097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1096, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "17008:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17008:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17007:9:1" + }, + "scope": 1135, + "src": "16922:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1133, + "nodeType": "Block", + "src": "17825:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1123, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17843:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17847:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17843:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1126, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "17850:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17835:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1128, + "nodeType": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1129, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "17880:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1130, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17880:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1121, + "id": 1132, + "nodeType": "Return", + "src": "17873:12:1" + } + ] + }, + "documentation": { + "id": 1111, + "nodeType": "StructuredDocumentation", + "src": "17090:635:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17743:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17743:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17754:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17754:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17765:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1116, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17765:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17742:50:1" + }, + "returnParameters": { + "id": 1121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17816:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17816:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17815:9:1" + }, + "scope": 1135, + "src": "17730:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "11300:6594:1" + }, + { + "id": 1136, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "17947:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1137, + "nodeType": "StructuredDocumentation", + "src": "17980:67:1", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 1430, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1153, + "nodeType": "Block", + "src": "18706:347:1", + "statements": [ + { + "assignments": [ + 1146 + ], + "declarations": [ + { + "constant": false, + "id": 1146, + "mutability": "mutable", + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 1153, + "src": "18903:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18903:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1147, + "nodeType": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "18990:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18992:28:1", + "value": { + "arguments": [ + { + "name": "account", + "nodeType": "YulIdentifier", + "src": "19012:7:1" + } + ], + "functionName": { + "name": "extcodesize", + "nodeType": "YulIdentifier", + "src": "19000:11:1" + }, + "nodeType": "YulFunctionCall", + "src": "19000:20:1" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "18992:4:1" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "id": 1148, + "nodeType": "InlineAssembly", + "src": "18981:41:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1149, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "19038:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19045:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19038:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1144, + "id": 1152, + "nodeType": "Return", + "src": "19031:15:1" + } + ] + }, + "documentation": { + "id": 1138, + "nodeType": "StructuredDocumentation", + "src": "18070:565:1", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1154, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1140, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18660:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18660:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18659:17:1" + }, + "returnParameters": { + "id": 1144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1143, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18700:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1142, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18700:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "18699:6:1" + }, + "scope": 1430, + "src": "18640:413:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1187, + "nodeType": "Block", + "src": "20041:320:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1165, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "20067:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20059:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1163, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20059:7:1", + "typeDescriptions": {} + } + }, + "id": 1166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20059:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "20059:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1168, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20084:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20059:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20092:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 1162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20051:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1172, + "nodeType": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "assignments": [ + 1174, + null + ], + "declarations": [ + { + "constant": false, + "id": 1174, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1187, + "src": "20213:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1173, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20213:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1181, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20263:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 1175, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1157, + "src": "20231:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "20231:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1177, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20254:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "20231:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20231:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1183, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "20284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20293:60:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 1182, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20276:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20276:78:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1186, + "nodeType": "ExpressionStatement", + "src": "20276:78:1" + } + ] + }, + "documentation": { + "id": 1155, + "nodeType": "StructuredDocumentation", + "src": "19059:906:1", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1188, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1157, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "19989:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19989:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1159, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "20016:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19988:43:1" + }, + "returnParameters": { + "id": 1161, + "nodeType": "ParameterList", + "parameters": [], + "src": "20041:0:1" + }, + "scope": 1430, + "src": "19970:391:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1204, + "nodeType": "Block", + "src": "21191:82:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1199, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "21219:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1200, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "21227:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21233:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 1198, + "name": "functionCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "src": "21206:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21206:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1197, + "id": 1203, + "nodeType": "Return", + "src": "21199:67:1" + } + ] + }, + "documentation": { + "id": 1189, + "nodeType": "StructuredDocumentation", + "src": "20367:730:1", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1205, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21124:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21124:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21140:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1192, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21140:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21123:35:1" + }, + "returnParameters": { + "id": 1197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1196, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21177:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1195, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21176:14:1" + }, + "scope": 1430, + "src": "21102:171:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1224, + "nodeType": "Block", + "src": "21612:76:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1218, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "21651:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1219, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "21659:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21665:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 1221, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "21668:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1217, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "21629:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21629:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1216, + "id": 1223, + "nodeType": "Return", + "src": "21622:59:1" + } + ] + }, + "documentation": { + "id": 1206, + "nodeType": "StructuredDocumentation", + "src": "21279:211:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1208, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21517:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21517:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21533:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1209, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21533:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1212, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21552:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1211, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "21552:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "21516:63:1" + }, + "returnParameters": { + "id": 1216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1215, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21598:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1214, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21598:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21597:14:1" + }, + "scope": 1430, + "src": "21495:193:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1244, + "nodeType": "Block", + "src": "22163:111:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1238, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "22202:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1239, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "22210:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1240, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1232, + "src": "22216:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22223:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 1237, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "22180:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22180:87:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1236, + "id": 1243, + "nodeType": "Return", + "src": "22173:94:1" + } + ] + }, + "documentation": { + "id": 1226, + "nodeType": "StructuredDocumentation", + "src": "21694:351:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1245, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1228, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22081:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22081:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1230, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22097:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1229, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22097:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1232, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22116:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "22080:50:1" + }, + "returnParameters": { + "id": 1236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1235, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22149:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1234, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22149:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22148:14:1" + }, + "scope": 1430, + "src": "22050:224:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1294, + "nodeType": "Block", + "src": "22663:382:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1262, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "22689:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22681:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22681:7:1", + "typeDescriptions": {} + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22681:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "22681:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1265, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22706:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22681:30:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 1267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22713:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 1259, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22673:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22673:81:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1269, + "nodeType": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1272, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22783:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1271, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "22772:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22772:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22792:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 1270, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22764:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22764:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1276, + "nodeType": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "assignments": [ + 1278, + 1280 + ], + "declarations": [ + { + "constant": false, + "id": 1278, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22895:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1277, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22895:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1280, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22909:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1279, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22909:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1287, + "initialValue": { + "arguments": [ + { + "id": 1285, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1250, + "src": "22964:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1281, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22936:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "22936:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1283, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22956:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "22936:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22936:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1289, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "23004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1290, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1280, + "src": "23013:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1291, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "23025:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1288, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "22986:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22986:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1258, + "id": 1293, + "nodeType": "Return", + "src": "22979:59:1" + } + ] + }, + "documentation": { + "id": 1246, + "nodeType": "StructuredDocumentation", + "src": "22280:237:1", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1295, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1248, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22553:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22553:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1250, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22569:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1249, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22569:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1252, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22588:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22588:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1254, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22603:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1253, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "22603:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "22552:78:1" + }, + "returnParameters": { + "id": 1258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1257, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22649:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1256, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22649:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22648:14:1" + }, + "scope": 1430, + "src": "22522:523:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1311, + "nodeType": "Block", + "src": "23322:97:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1306, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1298, + "src": "23358:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1307, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "23366:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23372:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 1305, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "src": "23339:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23339:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1304, + "id": 1310, + "nodeType": "Return", + "src": "23332:80:1" + } + ] + }, + "documentation": { + "id": 1296, + "nodeType": "StructuredDocumentation", + "src": "23051:166:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1298, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23250:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23250:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23266:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1299, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23266:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23249:35:1" + }, + "returnParameters": { + "id": 1304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1303, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23308:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23308:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23307:14:1" + }, + "scope": 1430, + "src": "23222:197:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1346, + "nodeType": "Block", + "src": "23731:288:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1326, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1325, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "23749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23749:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23769:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + }, + "value": "Address: static call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "id": 1324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "23741:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23741:67:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1330, + "nodeType": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "assignments": [ + 1332, + 1334 + ], + "declarations": [ + { + "constant": false, + "id": 1332, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23879:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1331, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23879:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1334, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23893:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1333, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23893:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1339, + "initialValue": { + "arguments": [ + { + "id": 1337, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "23938:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1335, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23920:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "23920:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23920:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1341, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "23978:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1342, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1334, + "src": "23987:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1343, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "23999:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1340, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "23960:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23960:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1323, + "id": 1345, + "nodeType": "Return", + "src": "23953:59:1" + } + ] + }, + "documentation": { + "id": 1313, + "nodeType": "StructuredDocumentation", + "src": "23425:173:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1315, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23631:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23631:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1317, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23647:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1316, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23647:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1319, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23666:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1318, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "23666:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "23630:63:1" + }, + "returnParameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1322, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23717:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1321, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23717:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23716:14:1" + }, + "scope": 1430, + "src": "23603:416:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1363, + "nodeType": "Block", + "src": "24295:101:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1358, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "24333:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1359, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "24341:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24347:41:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 1357, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "src": "24312:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24312:77:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1356, + "id": 1362, + "nodeType": "Return", + "src": "24305:84:1" + } + ] + }, + "documentation": { + "id": 1348, + "nodeType": "StructuredDocumentation", + "src": "24025:168:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1364, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1350, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24228:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24244:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1351, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24227:35:1" + }, + "returnParameters": { + "id": 1356, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1355, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24281:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1354, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24281:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24280:14:1" + }, + "scope": 1430, + "src": "24198:198:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1398, + "nodeType": "Block", + "src": "24707:292:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1378, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24736:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1377, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "24725:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24725:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24745:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + }, + "value": "Address: delegate call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "id": 1376, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "24717:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24717:69:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1382, + "nodeType": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "assignments": [ + 1384, + 1386 + ], + "declarations": [ + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24857:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1383, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "24857:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24871:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1385, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24871:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1391, + "initialValue": { + "arguments": [ + { + "id": 1389, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1369, + "src": "24918:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1387, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "24898:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24898:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1393, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1384, + "src": "24958:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1394, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1386, + "src": "24967:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1395, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1371, + "src": "24979:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1392, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "24940:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24940:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1375, + "id": 1397, + "nodeType": "Return", + "src": "24933:59:1" + } + ] + }, + "documentation": { + "id": 1365, + "nodeType": "StructuredDocumentation", + "src": "24402:175:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1399, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1367, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24612:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24612:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1369, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24628:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1368, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24628:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1371, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24647:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1370, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "24647:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "24611:63:1" + }, + "returnParameters": { + "id": 1375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1374, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24693:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1373, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24693:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24692:14:1" + }, + "scope": 1430, + "src": "24582:417:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1428, + "nodeType": "Block", + "src": "25134:596:1", + "statements": [ + { + "condition": { + "id": 1410, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "25148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1426, + "nodeType": "Block", + "src": "25205:519:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1414, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25289:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "25289:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25309:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25289:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1424, + "nodeType": "Block", + "src": "25661:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1421, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1405, + "src": "25686:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1420, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "25679:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25679:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1423, + "nodeType": "ExpressionStatement", + "src": "25679:20:1" + } + ] + }, + "id": 1425, + "nodeType": "IfStatement", + "src": "25285:429:1", + "trueBody": { + "id": 1419, + "nodeType": "Block", + "src": "25312:343:1", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "25496:145:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "25518:40:1", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25547:10:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "25541:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "25541:17:1" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "25522:15:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25590:2:1", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25594:10:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25586:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "25586:19:1" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "25607:15:1" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "25579:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "25579:44:1" + }, + "nodeType": "YulExpressionStatement", + "src": "25579:44:1" + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "id": 1418, + "nodeType": "InlineAssembly", + "src": "25487:154:1" + } + ] + } + } + ] + }, + "id": 1427, + "nodeType": "IfStatement", + "src": "25144:580:1", + "trueBody": { + "id": 1413, + "nodeType": "Block", + "src": "25157:42:1", + "statements": [ + { + "expression": { + "id": 1411, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25178:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1409, + "id": 1412, + "nodeType": "Return", + "src": "25171:17:1" + } + ] + } + } + ] + }, + "id": 1429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1401, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25032:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1400, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "25032:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1403, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25046:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1402, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25046:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1405, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25071:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1404, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "25071:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "25031:67:1" + }, + "returnParameters": { + "id": 1409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1408, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25120:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1407, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25120:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "25119:14:1" + }, + "scope": 1430, + "src": "25005:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3499, + "src": "18048:7684:1" + }, + { + "id": 1431, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "25791:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1432, + "nodeType": "StructuredDocumentation", + "src": "25824:686:1", + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "fullyImplemented": true, + "id": 1921, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableSet.Set", + "id": 1440, + "members": [ + { + "constant": false, + "id": 1435, + "mutability": "mutable", + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27033:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1433, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27033:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1434, + "nodeType": "ArrayTypeName", + "src": "27033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1439, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27184:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1438, + "keyType": { + "id": 1436, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "27184:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "26979:249:1", + "visibility": "public" + }, + { + "body": { + "id": 1480, + "nodeType": "Block", + "src": "27467:335:1", + "statements": [ + { + "condition": { + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "27481:22:1", + "subExpression": { + "arguments": [ + { + "id": 1451, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27492:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + { + "id": 1452, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27497:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1450, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "27482:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27482:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1478, + "nodeType": "Block", + "src": "27759:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27780:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1449, + "id": 1477, + "nodeType": "Return", + "src": "27773:12:1" + } + ] + }, + "id": 1479, + "nodeType": "IfStatement", + "src": "27477:319:1", + "trueBody": { + "id": 1475, + "nodeType": "Block", + "src": "27505:248:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1460, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27536:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "expression": { + "id": 1455, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1458, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27519:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "27519:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 1461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27519:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1462, + "nodeType": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "expression": { + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1463, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27677:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "27677:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1467, + "indexExpression": { + "id": 1465, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27690:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "27677:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1468, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27699:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1469, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27699:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "27699:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27677:40:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1472, + "nodeType": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27738:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1449, + "id": 1474, + "nodeType": "Return", + "src": "27731:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1441, + "nodeType": "StructuredDocumentation", + "src": "27234:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1481, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27412:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1442, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27412:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1445, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27429:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1444, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27411:32:1" + }, + "returnParameters": { + "id": 1449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1447, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "27461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "27460:6:1" + }, + "scope": 1921, + "src": "27398:404:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1560, + "nodeType": "Block", + "src": "28042:1440:1", + "statements": [ + { + "assignments": [ + 1492 + ], + "declarations": [ + { + "constant": false, + "id": 1492, + "mutability": "mutable", + "name": "valueIndex", + "nodeType": "VariableDeclaration", + "scope": 1560, + "src": "28152:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28152:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1497, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1493, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28173:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1494, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "28173:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1496, + "indexExpression": { + "id": 1495, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "28186:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28173:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1498, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28207:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28221:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28207:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1558, + "nodeType": "Block", + "src": "29439:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29460:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1490, + "id": 1557, + "nodeType": "Return", + "src": "29453:12:1" + } + ] + }, + "id": 1559, + "nodeType": "IfStatement", + "src": "28203:1273:1", + "trueBody": { + "id": 1555, + "nodeType": "Block", + "src": "28224:1209:1", + "statements": [ + { + "assignments": [ + 1502 + ], + "declarations": [ + { + "constant": false, + "id": 1502, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28564:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28564:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1506, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1503, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28588:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28588:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "assignments": [ + 1508 + ], + "declarations": [ + { + "constant": false, + "id": 1508, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28616:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28616:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1514, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1509, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28636:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28636:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "28636:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28657:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28636:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "assignments": [ + 1516 + ], + "declarations": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "lastvalue", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28898:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1515, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28898:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1521, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1517, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28918:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1520, + "indexExpression": { + "id": 1519, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "28930:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28918:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "expression": { + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1522, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29032:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1525, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29032:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1526, + "indexExpression": { + "id": 1524, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29044:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29032:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1527, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29061:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "29032:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1529, + "nodeType": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "expression": { + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1530, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29136:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1533, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29136:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1534, + "indexExpression": { + "id": 1532, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29149:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29136:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1535, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29162:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29178:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "29162:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29136:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1539, + "nodeType": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 1540, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29285:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "29285:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29285:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1546, + "nodeType": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "expression": { + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "29370:26:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 1547, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29377:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29377:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1550, + "indexExpression": { + "id": 1549, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "29390:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29377:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1552, + "nodeType": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29418:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1490, + "id": 1554, + "nodeType": "Return", + "src": "29411:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1482, + "nodeType": "StructuredDocumentation", + "src": "27808:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1561, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "27987:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1483, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27987:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1486, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28004:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1485, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27986:32:1" + }, + "returnParameters": { + "id": 1490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28036:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1488, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "28036:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "28035:6:1" + }, + "scope": 1921, + "src": "27970:1512:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1578, + "nodeType": "Block", + "src": "29642:48:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 1571, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "29659:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29659:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1574, + "indexExpression": { + "id": 1573, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "29672:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29659:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29682:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "29659:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1570, + "id": 1577, + "nodeType": "Return", + "src": "29652:31:1" + } + ] + }, + "documentation": { + "id": 1562, + "nodeType": "StructuredDocumentation", + "src": "29488:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1579, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1564, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29582:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1563, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29582:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29599:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1565, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "29599:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "29581:32:1" + }, + "returnParameters": { + "id": 1570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29636:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "29636:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "29635:6:1" + }, + "scope": 1921, + "src": "29563:127:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1591, + "nodeType": "Block", + "src": "29836:42:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 1587, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1582, + "src": "29853:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1588, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29853:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "29853:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1586, + "id": 1590, + "nodeType": "Return", + "src": "29846:25:1" + } + ] + }, + "documentation": { + "id": 1580, + "nodeType": "StructuredDocumentation", + "src": "29696:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1582, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29788:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1581, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29788:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "src": "29787:17:1" + }, + "returnParameters": { + "id": 1586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1585, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29827:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29826:9:1" + }, + "scope": 1921, + "src": "29771:107:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1616, + "nodeType": "Block", + "src": "30286:125:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1603, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30304:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30304:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "30304:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1606, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30325:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30304:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30332:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + }, + "value": "EnumerableSet: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "id": 1602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "30296:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30296:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1610, + "nodeType": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 1611, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30386:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30386:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1614, + "indexExpression": { + "id": 1613, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30398:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30386:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1601, + "id": 1615, + "nodeType": "Return", + "src": "30379:25:1" + } + ] + }, + "documentation": { + "id": 1593, + "nodeType": "StructuredDocumentation", + "src": "29883:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1617, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1595, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30223:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1594, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30223:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30240:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30240:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30222:32:1" + }, + "returnParameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1600, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30277:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1599, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30276:9:1" + }, + "scope": 1921, + "src": "30210:201:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableSet.Bytes32Set", + "id": 1620, + "members": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "30464:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1618, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30464:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "30436:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1636, + "nodeType": "Block", + "src": "30727:47:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1631, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "30749:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "30749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1625, + "src": "30761:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1630, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "30744:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30744:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1629, + "id": 1635, + "nodeType": "Return", + "src": "30737:30:1" + } + ] + }, + "documentation": { + "id": 1621, + "nodeType": "StructuredDocumentation", + "src": "30487:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30664:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1622, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30664:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30688:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1624, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30688:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30663:39:1" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30721:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "30721:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "30720:6:1" + }, + "scope": 1921, + "src": "30651:123:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1653, + "nodeType": "Block", + "src": "31021:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1648, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "31046:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31046:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1650, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "31058:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1647, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "31038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31038:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1646, + "id": 1652, + "nodeType": "Return", + "src": "31031:33:1" + } + ] + }, + "documentation": { + "id": 1638, + "nodeType": "StructuredDocumentation", + "src": "30780:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1654, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30958:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1639, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30958:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30982:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1641, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30982:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30957:39:1" + }, + "returnParameters": { + "id": 1646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1645, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "31015:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31015:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31014:6:1" + }, + "scope": 1921, + "src": "30942:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1670, + "nodeType": "Block", + "src": "31238:52:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1665, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1657, + "src": "31265:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31265:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1667, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1659, + "src": "31277:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1664, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "31255:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31255:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1663, + "id": 1669, + "nodeType": "Return", + "src": "31248:35:1" + } + ] + }, + "documentation": { + "id": 1655, + "nodeType": "StructuredDocumentation", + "src": "31077:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1671, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1657, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31170:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1656, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31170:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31194:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1658, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31194:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31169:39:1" + }, + "returnParameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1662, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31232:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1661, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31232:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31231:6:1" + }, + "scope": 1921, + "src": "31152:138:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "31443:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1680, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1674, + "src": "31468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1681, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31468:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1679, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "31460:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31460:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1678, + "id": 1683, + "nodeType": "Return", + "src": "31453:26:1" + } + ] + }, + "documentation": { + "id": 1672, + "nodeType": "StructuredDocumentation", + "src": "31296:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1685, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1674, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31387:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1673, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + } + ], + "src": "31386:24:1" + }, + "returnParameters": { + "id": 1678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31434:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31434:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31433:9:1" + }, + "scope": 1921, + "src": "31371:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1701, + "nodeType": "Block", + "src": "31901:46:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1696, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1688, + "src": "31922:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1697, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31922:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1698, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "31934:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1695, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "31918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31918:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1694, + "id": 1700, + "nodeType": "Return", + "src": "31911:29:1" + } + ] + }, + "documentation": { + "id": 1686, + "nodeType": "StructuredDocumentation", + "src": "31491:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1688, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31830:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1687, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31830:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1690, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31854:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31854:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31829:39:1" + }, + "returnParameters": { + "id": 1694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31892:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1692, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31892:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31891:9:1" + }, + "scope": 1921, + "src": "31818:129:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.AddressSet", + "id": 1705, + "members": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1705, + "src": "32000:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1703, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "32000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "31972:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1730, + "nodeType": "Block", + "src": "32263:74:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1716, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1708, + "src": "32285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32285:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "32321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32313:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1722, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32313:7:1", + "typeDescriptions": {} + } + }, + "id": 1725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32313:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32305:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1720, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32305:7:1", + "typeDescriptions": {} + } + }, + "id": 1726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32305:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1718, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32297:7:1", + "typeDescriptions": {} + } + }, + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32297:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1715, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "32280:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32280:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1714, + "id": 1729, + "nodeType": "Return", + "src": "32273:57:1" + } + ] + }, + "documentation": { + "id": 1706, + "nodeType": "StructuredDocumentation", + "src": "32023:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1731, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1708, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32200:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1707, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32200:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32224:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32224:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32199:39:1" + }, + "returnParameters": { + "id": 1714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1713, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32257:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1712, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32257:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32256:6:1" + }, + "scope": 1921, + "src": "32187:150:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1756, + "nodeType": "Block", + "src": "32584:77:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1742, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "32609:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1743, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32609:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1750, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "32645:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32637:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1748, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32637:7:1", + "typeDescriptions": {} + } + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32637:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32629:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32629:7:1", + "typeDescriptions": {} + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32629:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32621:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1744, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32621:7:1", + "typeDescriptions": {} + } + }, + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32621:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1741, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "32601:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32601:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1740, + "id": 1755, + "nodeType": "Return", + "src": "32594:60:1" + } + ] + }, + "documentation": { + "id": 1732, + "nodeType": "StructuredDocumentation", + "src": "32343:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1757, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1734, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32521:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1733, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32521:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1736, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32545:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32545:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32520:39:1" + }, + "returnParameters": { + "id": 1740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1739, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32578:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1738, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32578:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32577:6:1" + }, + "scope": 1921, + "src": "32505:156:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1782, + "nodeType": "Block", + "src": "32828:79:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1768, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1760, + "src": "32855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1776, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1762, + "src": "32891:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1774, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32883:7:1", + "typeDescriptions": {} + } + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32883:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32875:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32875:7:1", + "typeDescriptions": {} + } + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32875:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1770, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32867:7:1", + "typeDescriptions": {} + } + }, + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32867:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1767, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "32845:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32845:55:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1766, + "id": 1781, + "nodeType": "Return", + "src": "32838:62:1" + } + ] + }, + "documentation": { + "id": 1758, + "nodeType": "StructuredDocumentation", + "src": "32667:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1783, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1760, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32760:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1759, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32760:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1762, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32784:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32784:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32759:39:1" + }, + "returnParameters": { + "id": 1766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1765, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32822:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1764, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32822:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32821:6:1" + }, + "scope": 1921, + "src": "32742:165:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1796, + "nodeType": "Block", + "src": "33060:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1792, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1786, + "src": "33085:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33085:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1791, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "33077:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33077:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1790, + "id": 1795, + "nodeType": "Return", + "src": "33070:26:1" + } + ] + }, + "documentation": { + "id": 1784, + "nodeType": "StructuredDocumentation", + "src": "32913:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1797, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1786, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33004:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1785, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33004:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + } + ], + "src": "33003:24:1" + }, + "returnParameters": { + "id": 1790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1789, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33050:9:1" + }, + "scope": 1921, + "src": "32988:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1822, + "nodeType": "Block", + "src": "33518:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1814, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "33563:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33563:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1816, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "33575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1813, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "33559:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33559:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33551:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33551:7:1", + "typeDescriptions": {} + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33551:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33543:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1809, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "33543:7:1", + "typeDescriptions": {} + } + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33543:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33535:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33535:7:1", + "typeDescriptions": {} + } + }, + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33535:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 1806, + "id": 1821, + "nodeType": "Return", + "src": "33528:56:1" + } + ] + }, + "documentation": { + "id": 1798, + "nodeType": "StructuredDocumentation", + "src": "33108:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1823, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1800, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33447:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1799, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33447:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1802, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33471:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33471:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33446:39:1" + }, + "returnParameters": { + "id": 1806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33509:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33509:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "33508:9:1" + }, + "scope": 1921, + "src": "33435:156:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.UintSet", + "id": 1826, + "members": [ + { + "constant": false, + "id": 1825, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1826, + "src": "33639:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1824, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "33639:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "UintSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "33614:42:1", + "visibility": "public" + }, + { + "body": { + "id": 1845, + "nodeType": "Block", + "src": "33899:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1837, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1829, + "src": "33921:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "33921:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1841, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "33941:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33933:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1839, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "33933:7:1", + "typeDescriptions": {} + } + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33933:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1836, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "33916:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33916:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1835, + "id": 1844, + "nodeType": "Return", + "src": "33909:39:1" + } + ] + }, + "documentation": { + "id": 1827, + "nodeType": "StructuredDocumentation", + "src": "33662:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1846, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1829, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33839:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1828, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "33839:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1831, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33860:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33860:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33838:36:1" + }, + "returnParameters": { + "id": 1835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1834, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33893:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1833, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "33893:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "33892:6:1" + }, + "scope": 1921, + "src": "33826:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1865, + "nodeType": "Block", + "src": "34199:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1857, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1849, + "src": "34224:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34224:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1861, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "34244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34236:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1859, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34236:7:1", + "typeDescriptions": {} + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34236:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1856, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "34216:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34216:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1855, + "id": 1864, + "nodeType": "Return", + "src": "34209:42:1" + } + ] + }, + "documentation": { + "id": 1847, + "nodeType": "StructuredDocumentation", + "src": "33961:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1849, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34139:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1848, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34139:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1851, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34160:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34138:36:1" + }, + "returnParameters": { + "id": 1855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1854, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34193:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1853, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34193:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34192:6:1" + }, + "scope": 1921, + "src": "34123:135:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1885, + "nodeType": "Block", + "src": "34422:61:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1877, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1869, + "src": "34449:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34449:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1881, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "34469:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1879, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34461:7:1", + "typeDescriptions": {} + } + }, + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34461:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1876, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "34439:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34439:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1875, + "id": 1884, + "nodeType": "Return", + "src": "34432:44:1" + } + ] + }, + "documentation": { + "id": 1867, + "nodeType": "StructuredDocumentation", + "src": "34264:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1886, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1869, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34357:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1868, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34378:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34378:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34356:36:1" + }, + "returnParameters": { + "id": 1875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1874, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34416:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1873, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34416:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34415:6:1" + }, + "scope": 1921, + "src": "34339:144:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1899, + "nodeType": "Block", + "src": "34633:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1895, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1889, + "src": "34658:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34658:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1894, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "34650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34650:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1893, + "id": 1898, + "nodeType": "Return", + "src": "34643:26:1" + } + ] + }, + "documentation": { + "id": 1887, + "nodeType": "StructuredDocumentation", + "src": "34489:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1900, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1889, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34580:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1888, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + } + ], + "src": "34579:21:1" + }, + "returnParameters": { + "id": 1893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34624:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34623:9:1" + }, + "scope": 1921, + "src": "34564:112:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1919, + "nodeType": "Block", + "src": "35088:55:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1913, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "35117:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "35117:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1915, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1905, + "src": "35129:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1912, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "35113:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35113:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "35105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35105:7:1", + "typeDescriptions": {} + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35105:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1909, + "id": 1918, + "nodeType": "Return", + "src": "35098:38:1" + } + ] + }, + "documentation": { + "id": 1901, + "nodeType": "StructuredDocumentation", + "src": "34681:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1920, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35020:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1902, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "35020:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1905, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35041:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35041:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35019:36:1" + }, + "returnParameters": { + "id": 1909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1908, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35079:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1907, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35079:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35078:9:1" + }, + "scope": 1921, + "src": "35008:135:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "26511:8634:1" + }, + { + "id": 1922, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "35204:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1923, + "nodeType": "StructuredDocumentation", + "src": "35237:705:1", + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "fullyImplemented": true, + "id": 2480, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableMap.MapEntry", + "id": 1928, + "members": [ + { + "constant": false, + "id": 1925, + "mutability": "mutable", + "name": "_key", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36455:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1924, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1927, + "mutability": "mutable", + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36477:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1926, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36477:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "MapEntry", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36429:69:1", + "visibility": "public" + }, + { + "canonicalName": "EnumerableMap.Map", + "id": 1936, + "members": [ + { + "constant": false, + "id": 1931, + "mutability": "mutable", + "name": "_entries", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36567:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + }, + "typeName": { + "baseType": { + "id": 1929, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "36567:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "id": 1930, + "nodeType": "ArrayTypeName", + "src": "36567:10:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1935, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36736:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1934, + "keyType": { + "id": 1932, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "36736:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "36756:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Map", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36504:276:1", + "visibility": "public" + }, + { + "body": { + "id": 1997, + "nodeType": "Block", + "src": "37089:596:1", + "statements": [ + { + "assignments": [ + 1949 + ], + "declarations": [ + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 1997, + "src": "37197:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "37197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1954, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1950, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1953, + "indexExpression": { + "id": 1952, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37229:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37216:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1955, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37248:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37260:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "37248:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1995, + "nodeType": "Block", + "src": "37587:92:1", + "statements": [ + { + "expression": { + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 1982, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37601:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1987, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37601:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1988, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1984, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37614:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37625:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "37614:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37601:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 1989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "37601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1990, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37637:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "37601:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1992, + "nodeType": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37663:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1947, + "id": 1994, + "nodeType": "Return", + "src": "37656:12:1" + } + ] + }, + "id": 1996, + "nodeType": "IfStatement", + "src": "37244:435:1", + "trueBody": { + "id": 1981, + "nodeType": "Block", + "src": "37263:318:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1964, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37349:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1965, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37362:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1963, + "name": "MapEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1928, + "src": "37332:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_MapEntry_$1928_storage_ptr_$", + "typeString": "type(struct EnumerableMap.MapEntry storage pointer)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "nodeType": "FunctionCall", + "src": "37332:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "expression": { + "expression": { + "id": 1958, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37314:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37314:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "37314:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$1928_storage_$returns$__$", + "typeString": "function (struct EnumerableMap.MapEntry storage ref)" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37314:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1968, + "nodeType": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "expression": { + "id": 1977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1969, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37506:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37506:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1973, + "indexExpression": { + "id": 1971, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "37506:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1974, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37526:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37526:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "37526:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37506:39:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1978, + "nodeType": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37566:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1947, + "id": 1980, + "nodeType": "Return", + "src": "37559:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1937, + "nodeType": "StructuredDocumentation", + "src": "36786:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1998, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37021:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 1938, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37021:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37038:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1940, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1943, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1942, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37020:45:1" + }, + "returnParameters": { + "id": 1947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1946, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37083:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1945, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37083:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37082:6:1" + }, + "scope": 2480, + "src": "37007:678:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2078, + "nodeType": "Block", + "src": "37923:1447:1", + "statements": [ + { + "assignments": [ + 2009 + ], + "declarations": [ + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2078, + "src": "38031:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2014, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2010, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38050:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2011, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "38050:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2013, + "indexExpression": { + "id": 2012, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "38063:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38050:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2015, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38082:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38094:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "38082:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2076, + "nodeType": "Block", + "src": "39327:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39348:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2007, + "id": 2075, + "nodeType": "Return", + "src": "39341:12:1" + } + ] + }, + "id": 2077, + "nodeType": "IfStatement", + "src": "38078:1286:1", + "trueBody": { + "id": 2073, + "nodeType": "Block", + "src": "38097:1224:1", + "statements": [ + { + "assignments": [ + 2019 + ], + "declarations": [ + { + "constant": false, + "id": 2019, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38438:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2023, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2020, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38462:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38473:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38462:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "assignments": [ + 2025 + ], + "declarations": [ + { + "constant": false, + "id": 2025, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38488:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38488:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2031, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2026, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38508:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38508:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "38508:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38530:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38508:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "assignments": [ + 2033 + ], + "declarations": [ + { + "constant": false, + "id": 2033, + "mutability": "mutable", + "name": "lastEntry", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38771:26:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2032, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "38771:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2038, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2034, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38800:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38800:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2037, + "indexExpression": { + "id": 2036, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2025, + "src": "38813:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38800:23:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "expression": { + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2039, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38915:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38915:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2043, + "indexExpression": { + "id": 2041, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "38928:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "38915:27:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2044, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "38945:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "src": "38915:39:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2046, + "nodeType": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2047, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2051, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39020:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2052, + "indexExpression": { + "expression": { + "id": 2049, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "39033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "39033:14:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39020:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2053, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "39051:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39067:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "39051:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39020:48:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 2058, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39174:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2061, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39174:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "39174:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "39174:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2064, + "nodeType": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "expression": { + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "39260:24:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 2065, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39267:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2066, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39267:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2068, + "indexExpression": { + "id": 2067, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "39280:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39267:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2070, + "nodeType": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39306:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2007, + "id": 2072, + "nodeType": "Return", + "src": "39299:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1999, + "nodeType": "StructuredDocumentation", + "src": "37691:157:1", + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2079, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2001, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37870:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2000, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37870:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37887:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2002, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37887:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37869:30:1" + }, + "returnParameters": { + "id": 2007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2006, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37917:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2005, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37917:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37916:6:1" + }, + "scope": 2480, + "src": "37853:1517:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2096, + "nodeType": "Block", + "src": "39526:46:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 2089, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2082, + "src": "39543:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2090, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39543:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2092, + "indexExpression": { + "id": 2091, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2084, + "src": "39556:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "39543:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39564:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "39543:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2088, + "id": 2095, + "nodeType": "Return", + "src": "39536:29:1" + } + ] + }, + "documentation": { + "id": 2080, + "nodeType": "StructuredDocumentation", + "src": "39376:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2082, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39468:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2081, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2084, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39485:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2083, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "39485:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "39467:30:1" + }, + "returnParameters": { + "id": 2088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2087, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2086, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "39520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "39519:6:1" + }, + "scope": 2480, + "src": "39449:123:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2109, + "nodeType": "Block", + "src": "39727:43:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 2105, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "39744:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39744:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "39744:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2104, + "id": 2108, + "nodeType": "Return", + "src": "39737:26:1" + } + ] + }, + "documentation": { + "id": 2098, + "nodeType": "StructuredDocumentation", + "src": "39578:79:1", + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2100, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39679:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2099, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39679:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "src": "39678:17:1" + }, + "returnParameters": { + "id": 2104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2103, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39718:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "39718:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "39717:9:1" + }, + "scope": 2480, + "src": "39662:108:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2144, + "nodeType": "Block", + "src": "40198:189:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2123, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "40216:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2126, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40216:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40245:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + }, + "value": "EnumerableMap: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "id": 2122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "40208:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "40208:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2130, + "nodeType": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "assignments": [ + 2132 + ], + "declarations": [ + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "entry", + "nodeType": "VariableDeclaration", + "scope": 2144, + "src": "40293:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2131, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "40293:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2137, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2133, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40318:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40318:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2136, + "indexExpression": { + "id": 2135, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40331:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40318:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "expression": { + "components": [ + { + "expression": { + "id": 2138, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40355:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2139, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "40355:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 2140, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40367:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40367:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40354:26:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "functionReturnParameters": 2121, + "id": 2143, + "nodeType": "Return", + "src": "40347:33:1" + } + ] + }, + "documentation": { + "id": 2111, + "nodeType": "StructuredDocumentation", + "src": "39775:333:1", + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2145, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2113, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40126:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2112, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40126:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2115, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40143:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40143:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "40125:32:1" + }, + "returnParameters": { + "id": 2121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40180:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40180:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40189:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2119, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40189:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40179:18:1" + }, + "scope": 2480, + "src": "40113:274:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2182, + "nodeType": "Block", + "src": "40613:220:1", + "statements": [ + { + "assignments": [ + 2158 + ], + "declarations": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2182, + "src": "40623:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40623:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2163, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2159, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40642:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "40642:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2162, + "indexExpression": { + "id": 2161, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2150, + "src": "40655:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40642:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2164, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40673:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40685:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "40673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2171, + "nodeType": "IfStatement", + "src": "40669:36:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40696:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40703:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2169, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40695:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2156, + "id": 2170, + "nodeType": "Return", + "src": "40688:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40759:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 2173, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40765:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2174, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40765:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2178, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2175, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40778:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40789:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "40778:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40765:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40765:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2180, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40758:41:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "functionReturnParameters": 2156, + "id": 2181, + "nodeType": "Return", + "src": "40751:48:1" + } + ] + }, + "documentation": { + "id": 2146, + "nodeType": "StructuredDocumentation", + "src": "40393:131:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2183, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2151, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40546:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2147, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40546:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2150, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40563:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2149, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40563:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40545:30:1" + }, + "returnParameters": { + "id": 2156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2153, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40598:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2152, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "40598:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2155, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40604:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2154, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40604:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40597:15:1" + }, + "scope": 2480, + "src": "40529:304:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2215, + "nodeType": "Block", + "src": "41060:232:1", + "statements": [ + { + "assignments": [ + 2194 + ], + "declarations": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2215, + "src": "41070:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41070:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2199, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2195, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41089:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2196, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41089:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2198, + "indexExpression": { + "id": 2197, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2188, + "src": "41102:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41089:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2201, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41124:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41136:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41124:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "id": 2204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41139:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + }, + "value": "EnumerableMap: nonexistent key" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "id": 2200, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41116:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2206, + "nodeType": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2207, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41225:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2208, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41225:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2212, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2209, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41238:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41249:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41238:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41225:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2213, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41225:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2192, + "id": 2214, + "nodeType": "Return", + "src": "41218:40:1" + } + ] + }, + "documentation": { + "id": 2184, + "nodeType": "StructuredDocumentation", + "src": "40839:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2186, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "40999:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2185, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40999:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2188, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41016:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2187, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40998:30:1" + }, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2190, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41050:9:1" + }, + "scope": 2480, + "src": "40985:307:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2250, + "nodeType": "Block", + "src": "41677:212:1", + "statements": [ + { + "assignments": [ + 2229 + ], + "declarations": [ + { + "constant": false, + "id": 2229, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2250, + "src": "41687:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41687:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2234, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2230, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41706:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2231, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41706:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2233, + "indexExpression": { + "id": 2232, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "41719:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41706:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2236, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41741:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41753:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41741:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2239, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2223, + "src": "41756:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2235, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41733:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41733:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2241, + "nodeType": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2242, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41822:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41822:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2247, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2244, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41835:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41846:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41835:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41822:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41822:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2227, + "id": 2249, + "nodeType": "Return", + "src": "41815:40:1" + } + ] + }, + "documentation": { + "id": 2217, + "nodeType": "StructuredDocumentation", + "src": "41298:271:1", + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2251, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2219, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41588:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2218, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41588:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2221, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41605:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2220, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2223, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41618:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2222, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "41618:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "41587:58:1" + }, + "returnParameters": { + "id": 2227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2226, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41668:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2225, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41668:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41667:9:1" + }, + "scope": 2480, + "src": "41574:315:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableMap.UintToAddressMap", + "id": 2254, + "members": [ + { + "constant": false, + "id": 2253, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 2254, + "src": "41954:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2252, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41954:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "name": "UintToAddressMap", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "41920:51:1", + "visibility": "public" + }, + { + "body": { + "id": 2285, + "nodeType": "Block", + "src": "42293:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2267, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "42315:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42315:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2271, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2259, + "src": "42335:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42327:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2269, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42327:7:1", + "typeDescriptions": {} + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42327:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2279, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2261, + "src": "42365:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2277, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "42357:7:1", + "typeDescriptions": {} + } + }, + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42357:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42349:7:1", + "typeDescriptions": {} + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42349:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42341:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42341:7:1", + "typeDescriptions": {} + } + }, + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42341:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2266, + "name": "_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1998, + "src": "42310:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42310:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2265, + "id": 2284, + "nodeType": "Return", + "src": "42303:71:1" + } + ] + }, + "documentation": { + "id": 2255, + "nodeType": "StructuredDocumentation", + "src": "41977:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2286, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2257, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42211:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2256, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42211:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2259, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42241:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2258, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42241:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2261, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42254:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "42254:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "42210:58:1" + }, + "returnParameters": { + "id": 2265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2264, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42287:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2263, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42287:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42286:6:1" + }, + "scope": 2480, + "src": "42198:183:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2305, + "nodeType": "Block", + "src": "42623:57:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2297, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2289, + "src": "42648:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2298, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42648:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2301, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2291, + "src": "42668:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42660:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2299, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42660:7:1", + "typeDescriptions": {} + } + }, + "id": 2302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42660:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2296, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2079, + "src": "42640:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)" + } + }, + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42640:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2295, + "id": 2304, + "nodeType": "Return", + "src": "42633:40:1" + } + ] + }, + "documentation": { + "id": 2287, + "nodeType": "StructuredDocumentation", + "src": "42387:148:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2289, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42556:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2288, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42556:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2291, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42586:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42586:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42555:43:1" + }, + "returnParameters": { + "id": 2295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2294, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42617:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2293, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42617:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42616:6:1" + }, + "scope": 2480, + "src": "42540:140:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2325, + "nodeType": "Block", + "src": "42849:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2317, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2309, + "src": "42876:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42876:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2321, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "42896:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42888:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2319, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42888:7:1", + "typeDescriptions": {} + } + }, + "id": 2322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42888:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2316, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2097, + "src": "42866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42866:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2315, + "id": 2324, + "nodeType": "Return", + "src": "42859:42:1" + } + ] + }, + "documentation": { + "id": 2307, + "nodeType": "StructuredDocumentation", + "src": "42686:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2326, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2309, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42777:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2308, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42777:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2311, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42807:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42807:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42776:43:1" + }, + "returnParameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2314, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42843:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42843:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42842:6:1" + }, + "scope": 2480, + "src": "42759:149:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2339, + "nodeType": "Block", + "src": "43069:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2335, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2329, + "src": "43094:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43094:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "id": 2334, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2110, + "src": "43086:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)" + } + }, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43086:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2333, + "id": 2338, + "nodeType": "Return", + "src": "43079:26:1" + } + ] + }, + "documentation": { + "id": 2327, + "nodeType": "StructuredDocumentation", + "src": "42914:72:1", + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2340, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2329, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43007:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2328, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43007:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + } + ], + "src": "43006:30:1" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43060:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43059:9:1" + }, + "scope": 2480, + "src": "42991:121:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2378, + "nodeType": "Block", + "src": "43538:135:1", + "statements": [ + { + "assignments": [ + 2353, + 2355 + ], + "declarations": [ + { + "constant": false, + "id": 2353, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43549:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2352, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43549:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2355, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43562:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2354, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43562:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2361, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2357, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "43583:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2358, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "id": 2359, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "43595:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2356, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "43579:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)" + } + }, + "id": 2360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43579:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "expression": { + "components": [ + { + "arguments": [ + { + "id": 2364, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "43627:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43619:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43619:7:1", + "typeDescriptions": {} + } + }, + "id": 2365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43619:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2372, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2355, + "src": "43657:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43649:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43649:7:1", + "typeDescriptions": {} + } + }, + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43649:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43641:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2368, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "43641:7:1", + "typeDescriptions": {} + } + }, + "id": 2374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43641:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43633:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43633:7:1", + "typeDescriptions": {} + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43633:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2376, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43618:48:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$", + "typeString": "tuple(uint256,address payable)" + } + }, + "functionReturnParameters": 2351, + "id": 2377, + "nodeType": "Return", + "src": "43611:55:1" + } + ] + }, + "documentation": { + "id": 2341, + "nodeType": "StructuredDocumentation", + "src": "43117:318:1", + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2379, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43452:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2342, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43452:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2345, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43482:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43482:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43451:45:1" + }, + "returnParameters": { + "id": 2351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2348, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43520:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43520:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2350, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43529:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43529:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43519:18:1" + }, + "scope": 2480, + "src": "43440:233:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2417, + "nodeType": "Block", + "src": "43950:142:1", + "statements": [ + { + "assignments": [ + 2392, + 2394 + ], + "declarations": [ + { + "constant": false, + "id": 2392, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43961:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43961:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43975:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2393, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2403, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2396, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "44000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44000:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2400, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2384, + "src": "44020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44012:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2398, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44012:7:1", + "typeDescriptions": {} + } + }, + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44012:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2395, + "name": "_tryGet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2183, + "src": "43992:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)" + } + }, + "id": 2402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43992:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "expression": { + "components": [ + { + "id": 2404, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2392, + "src": "44043:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2411, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "44076:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44068:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44068:7:1", + "typeDescriptions": {} + } + }, + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44068:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2407, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44060:7:1", + "typeDescriptions": {} + } + }, + "id": 2413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44060:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44052:7:1", + "typeDescriptions": {} + } + }, + "id": 2414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44052:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2415, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44042:43:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_payable_$", + "typeString": "tuple(bool,address payable)" + } + }, + "functionReturnParameters": 2390, + "id": 2416, + "nodeType": "Return", + "src": "44035:50:1" + } + ] + }, + "documentation": { + "id": 2380, + "nodeType": "StructuredDocumentation", + "src": "43679:169:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2418, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2382, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43869:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2381, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43869:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2384, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43899:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43868:43:1" + }, + "returnParameters": { + "id": 2390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2387, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43935:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2386, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2389, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43941:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43941:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43934:15:1" + }, + "scope": 2480, + "src": "43853:239:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2446, + "nodeType": "Block", + "src": "44332:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2435, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "44378:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44378:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2439, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2423, + "src": "44398:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44390:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2437, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44390:7:1", + "typeDescriptions": {} + } + }, + "id": 2440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44390:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2434, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "src": "44373:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)" + } + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44373:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44365:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44365:7:1", + "typeDescriptions": {} + } + }, + "id": 2442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44365:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2430, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44357:7:1", + "typeDescriptions": {} + } + }, + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44357:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44349:7:1", + "typeDescriptions": {} + } + }, + "id": 2444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44349:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2427, + "id": 2445, + "nodeType": "Return", + "src": "44342:64:1" + } + ] + }, + "documentation": { + "id": 2419, + "nodeType": "StructuredDocumentation", + "src": "44098:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2447, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2421, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44257:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2420, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44257:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2423, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44287:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44287:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "44256:43:1" + }, + "returnParameters": { + "id": 2427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2426, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44323:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44323:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44322:9:1" + }, + "scope": 2480, + "src": "44244:169:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2478, + "nodeType": "Block", + "src": "44809:95:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2466, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2450, + "src": "44855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2467, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2470, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2452, + "src": "44875:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2468, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44867:7:1", + "typeDescriptions": {} + } + }, + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44867:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 2472, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "44881:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2465, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "src": "44850:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)" + } + }, + "id": 2473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44850:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44842:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44842:7:1", + "typeDescriptions": {} + } + }, + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44842:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44834:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2461, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44834:7:1", + "typeDescriptions": {} + } + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44834:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44826:7:1", + "typeDescriptions": {} + } + }, + "id": 2476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44826:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2458, + "id": 2477, + "nodeType": "Return", + "src": "44819:78:1" + } + ] + }, + "documentation": { + "id": 2448, + "nodeType": "StructuredDocumentation", + "src": "44419:269:1", + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2450, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44706:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2449, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44706:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2452, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44736:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2454, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44749:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2453, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "44749:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "44705:71:1" + }, + "returnParameters": { + "id": 2458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2457, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44799:9:1" + }, + "scope": 2480, + "src": "44693:211:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "35943:8963:1" + }, + { + "id": 2481, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "44959:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2482, + "nodeType": "StructuredDocumentation", + "src": "44992:34:1", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2566, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2564, + "nodeType": "Block", + "src": "45207:654:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2490, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45409:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45418:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45409:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2496, + "nodeType": "IfStatement", + "src": "45405:51:1", + "trueBody": { + "id": 2495, + "nodeType": "Block", + "src": "45421:35:1", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45442:3:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "functionReturnParameters": 2489, + "id": 2494, + "nodeType": "Return", + "src": "45435:10:1" + } + ] + } + }, + { + "assignments": [ + 2498 + ], + "declarations": [ + { + "constant": false, + "id": 2498, + "mutability": "mutable", + "name": "temp", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45465:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2500, + "initialValue": { + "id": 2499, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45480:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "assignments": [ + 2502 + ], + "declarations": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "digits", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45495:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45495:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2503, + "nodeType": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "body": { + "id": 2514, + "nodeType": "Block", + "src": "45537:57:1", + "statements": [ + { + "expression": { + "id": 2508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "45551:8:1", + "subExpression": { + "id": 2507, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45551:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2509, + "nodeType": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "expression": { + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2510, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45581:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45573:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2513, + "nodeType": "ExpressionStatement", + "src": "45573:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2504, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45526:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45534:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45526:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2515, + "nodeType": "WhileStatement", + "src": "45519:75:1" + }, + { + "assignments": [ + 2517 + ], + "declarations": [ + { + "constant": false, + "id": 2517, + "mutability": "mutable", + "name": "buffer", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45603:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2516, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2522, + "initialValue": { + "arguments": [ + { + "id": 2520, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45635:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "45625:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2518, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45629:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45625:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "assignments": [ + 2524 + ], + "declarations": [ + { + "constant": false, + "id": 2524, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45652:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45652:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2528, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2525, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45668:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45677:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "45668:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "expression": { + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2529, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45688:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2530, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45695:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45688:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2532, + "nodeType": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "body": { + "id": 2557, + "nodeType": "Block", + "src": "45728:96:1", + "statements": [ + { + "expression": { + "id": 2551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2536, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45742:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2539, + "indexExpression": { + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "45749:7:1", + "subExpression": { + "id": 2537, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2524, + "src": "45749:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "45742:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3438", + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45773:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2545, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45778:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3130", + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45785:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45778:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45773:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45767:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2542, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "45767:5:1", + "typeDescriptions": {} + } + }, + "id": 2549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45767:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 2540, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "45760:6:1", + "typeDescriptions": {} + } + }, + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45760:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "45742:47:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2552, + "nodeType": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "expression": { + "id": 2555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2553, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45803:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45811:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45803:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2556, + "nodeType": "ExpressionStatement", + "src": "45803:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2533, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45717:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45725:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45717:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2558, + "nodeType": "WhileStatement", + "src": "45710:114:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2561, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45847:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45840:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2559, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45840:6:1", + "typeDescriptions": {} + } + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45840:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2489, + "id": 2563, + "nodeType": "Return", + "src": "45833:21:1" + } + ] + }, + "documentation": { + "id": 2483, + "nodeType": "StructuredDocumentation", + "src": "45049:82:1", + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2485, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45154:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45154:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "45153:15:1" + }, + "returnParameters": { + "id": 2489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2488, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45192:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2487, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45192:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "45191:15:1" + }, + "scope": 2566, + "src": "45136:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "45027:836:1" + }, + { + "id": 2567, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "45922:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2569, + "name": "Context", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 530, + "src": "46099:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 2570, + "nodeType": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "baseName": { + "id": 2571, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 781, + "src": "46108:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$781", + "typeString": "contract ERC165" + } + }, + "id": 2572, + "nodeType": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "baseName": { + "id": 2573, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "46116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 2574, + "nodeType": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "baseName": { + "id": 2575, + "name": "IERC721Metadata", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 680, + "src": "46125:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Metadata_$680", + "typeString": "contract IERC721Metadata" + } + }, + "id": 2576, + "nodeType": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "baseName": { + "id": 2577, + "name": "IERC721Enumerable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 709, + "src": "46142:17:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Enumerable_$709", + "typeString": "contract IERC721Enumerable" + } + }, + "id": 2578, + "nodeType": "InheritanceSpecifier", + "src": "46142:17:1" + } + ], + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "documentation": { + "id": 2568, + "nodeType": "StructuredDocumentation", + "src": "45955:124:1", + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": true, + "id": 3498, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2581, + "libraryName": { + "id": 2579, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1135, + "src": "46172:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$1135", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "46166:27:1", + "typeName": { + "id": 2580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46185:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 2584, + "libraryName": { + "id": 2582, + "name": "Address", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1430, + "src": "46204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + }, + "nodeType": "UsingForDirective", + "src": "46198:26:1", + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46216:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 2587, + "libraryName": { + "id": 2585, + "name": "EnumerableSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1921, + "src": "46235:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableSet_$1921", + "typeString": "library EnumerableSet" + } + }, + "nodeType": "UsingForDirective", + "src": "46229:46:1", + "typeName": { + "id": 2586, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46253:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + { + "id": 2590, + "libraryName": { + "id": 2588, + "name": "EnumerableMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2480, + "src": "46286:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableMap_$2480", + "typeString": "library EnumerableMap" + } + }, + "nodeType": "UsingForDirective", + "src": "46280:55:1", + "typeName": { + "id": 2589, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46304:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + } + }, + { + "id": 2593, + "libraryName": { + "id": 2591, + "name": "Strings", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2566, + "src": "46346:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Strings_$2566", + "typeString": "library Strings" + } + }, + "nodeType": "UsingForDirective", + "src": "46340:26:1", + "typeName": { + "id": 2592, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46358:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 2596, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46544:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2594, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "46544:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783135306237613032", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46587:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_353073666_by_1", + "typeString": "int_const 353073666" + }, + "value": "0x150b7a02" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2600, + "mutability": "mutable", + "name": "_holderTokens", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46681:64:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "typeName": { + "id": 2599, + "keyType": { + "id": 2597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "46681:42:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "valueType": { + "id": 2598, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46701:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2602, + "mutability": "mutable", + "name": "_tokenOwners", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46809:51:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2601, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46809:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2606, + "mutability": "mutable", + "name": "_tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46916:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 2605, + "keyType": { + "id": 2603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46925:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "46916:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 2604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46936:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2612, + "mutability": "mutable", + "name": "_operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47023:73:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 2611, + "keyType": { + "id": 2607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47023:46:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 2610, + "keyType": { + "id": 2608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47043:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2609, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "47063:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2614, + "mutability": "mutable", + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47121:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2613, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47121:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2616, + "mutability": "mutable", + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47168:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47168:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2620, + "mutability": "mutable", + "name": "_tokenURIs", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47236:46:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 2619, + "keyType": { + "id": 2617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "47245:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "47236:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 2618, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47256:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2622, + "mutability": "mutable", + "name": "_baseURI", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47305:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2621, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47305:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2625, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48204:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2623, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48204:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783830616335386364", + "id": 2624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48251:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2628, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48527:66:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2626, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48527:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783562356531333966", + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1532892063_by_1", + "typeString": "int_const 1532892063" + }, + "value": "0x5b5e139f" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2631, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48898:68:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2629, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783738306539643633", + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48956:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2014223715_by_1", + "typeString": "int_const 2014223715" + }, + "value": "0x780e9d63" + }, + "visibility": "private" + }, + { + "body": { + "id": 2659, + "nodeType": "Block", + "src": "49143:305:1", + "statements": [ + { + "expression": { + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2639, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "49153:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2640, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "49161:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49153:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2642, + "nodeType": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "expression": { + "id": 2645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2643, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "49176:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2644, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2636, + "src": "49186:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49176:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2646, + "nodeType": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2648, + "name": "_INTERFACE_ID_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "49300:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2647, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49281:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49281:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2650, + "nodeType": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2652, + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "49350:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2651, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49331:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49331:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2654, + "nodeType": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2656, + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2631, + "src": "49409:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2655, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49390:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49390:51:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2658, + "nodeType": "ExpressionStatement", + "src": "49390:51:1" + } + ] + }, + "documentation": { + "id": 2632, + "nodeType": "StructuredDocumentation", + "src": "48973:108:1", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2660, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2634, + "mutability": "mutable", + "name": "name_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49099:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2633, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49099:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2636, + "mutability": "mutable", + "name": "symbol_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49120:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2635, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49120:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "49098:44:1" + }, + "returnParameters": { + "id": 2638, + "nodeType": "ParameterList", + "parameters": [], + "src": "49143:0:1" + }, + "scope": 3498, + "src": "49086:362:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 580 + ], + "body": { + "id": 2685, + "nodeType": "Block", + "src": "49588:137:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2670, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49606:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49623:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "49615:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49615:7:1", + "typeDescriptions": {} + } + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49615:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "49606:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49627:44:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + }, + "value": "ERC721: balance query for the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "id": 2669, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "49598:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49598:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2678, + "nodeType": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 2679, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "49689:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2681, + "indexExpression": { + "id": 2680, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49703:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "49689:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2682, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "49689:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + } + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49689:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2668, + "id": 2684, + "nodeType": "Return", + "src": "49682:36:1" + } + ] + }, + "documentation": { + "id": 2661, + "nodeType": "StructuredDocumentation", + "src": "49454:48:1", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 2686, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2665, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49561:8:1" + }, + "parameters": { + "id": 2664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2663, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49526:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49526:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49525:15:1" + }, + "returnParameters": { + "id": 2668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2667, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49579:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49579:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49578:9:1" + }, + "scope": 3498, + "src": "49507:218:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 588 + ], + "body": { + "id": 2701, + "nodeType": "Block", + "src": "49863:94:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2697, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "49897:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49906:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + }, + "value": "ERC721: owner query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "expression": { + "id": 2695, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "49880:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2696, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 2479, + "src": "49880:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + } + }, + "id": 2699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49880:70:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2694, + "id": 2700, + "nodeType": "Return", + "src": "49873:77:1" + } + ] + }, + "documentation": { + "id": 2687, + "nodeType": "StructuredDocumentation", + "src": "49731:46:1", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 2702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2691, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49836:8:1" + }, + "parameters": { + "id": 2690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2689, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49799:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49799:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49798:17:1" + }, + "returnParameters": { + "id": 2694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49854:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49854:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49853:9:1" + }, + "scope": 3498, + "src": "49782:175:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 665 + ], + "body": { + "id": 2711, + "nodeType": "Block", + "src": "50088:29:1", + "statements": [ + { + "expression": { + "id": 2709, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "50105:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2708, + "id": 2710, + "nodeType": "Return", + "src": "50098:12:1" + } + ] + }, + "documentation": { + "id": 2703, + "nodeType": "StructuredDocumentation", + "src": "49963:51:1", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 2712, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2705, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50055:8:1" + }, + "parameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [], + "src": "50032:2:1" + }, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2707, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2712, + "src": "50073:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2706, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50073:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50072:15:1" + }, + "scope": 3498, + "src": "50019:98:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 671 + ], + "body": { + "id": 2721, + "nodeType": "Block", + "src": "50252:31:1", + "statements": [ + { + "expression": { + "id": 2719, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "50269:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2718, + "id": 2720, + "nodeType": "Return", + "src": "50262:14:1" + } + ] + }, + "documentation": { + "id": 2713, + "nodeType": "StructuredDocumentation", + "src": "50123:53:1", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 2722, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2715, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50219:8:1" + }, + "parameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [], + "src": "50196:2:1" + }, + "returnParameters": { + "id": 2718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2717, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2722, + "src": "50237:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2716, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50237:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50236:15:1" + }, + "scope": 3498, + "src": "50181:102:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 679 + ], + "body": { + "id": 2789, + "nodeType": "Block", + "src": "50437:688:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2733, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50463:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2732, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "50455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50455:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50473:49:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + }, + "value": "ERC721Metadata: URI query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "id": 2731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "50447:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50447:76:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "assignments": [ + 2739 + ], + "declarations": [ + { + "constant": false, + "id": 2739, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50534:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50534:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2743, + "initialValue": { + "baseExpression": { + "id": 2740, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "50560:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 2742, + "indexExpression": { + "id": 2741, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50571:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "50560:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "assignments": [ + 2745 + ], + "declarations": [ + { + "constant": false, + "id": 2745, + "mutability": "mutable", + "name": "base", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50589:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50589:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2748, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2746, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2799, + "src": "50610:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 2747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50610:9:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2751, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50698:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50692:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50692:5:1", + "typeDescriptions": {} + } + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50692:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50692:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50714:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50692:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2759, + "nodeType": "IfStatement", + "src": "50688:70:1", + "trueBody": { + "id": 2758, + "nodeType": "Block", + "src": "50717:41:1", + "statements": [ + { + "expression": { + "id": 2756, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50738:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2757, + "nodeType": "Return", + "src": "50731:16:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2762, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50860:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2760, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50860:5:1", + "typeDescriptions": {} + } + }, + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50860:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50860:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50886:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50860:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2777, + "nodeType": "IfStatement", + "src": "50856:106:1", + "trueBody": { + "id": 2776, + "nodeType": "Block", + "src": "50889:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2771, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50934:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 2772, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50940:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2769, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "50917:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "50917:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50917:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50910:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2767, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50910:6:1", + "typeDescriptions": {} + } + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50910:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2775, + "nodeType": "Return", + "src": "50903:48:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2782, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "51092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2783, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "51098:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2565, + "src": "51098:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 2785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51098:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2780, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "51075:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "51075:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51075:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "51068:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2778, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51068:6:1", + "typeDescriptions": {} + } + }, + "id": 2787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51068:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2788, + "nodeType": "Return", + "src": "51061:57:1" + } + ] + }, + "documentation": { + "id": 2723, + "nodeType": "StructuredDocumentation", + "src": "50289:55:1", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 2790, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50404:8:1" + }, + "parameters": { + "id": 2726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2725, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50367:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50367:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "50366:17:1" + }, + "returnParameters": { + "id": 2730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50422:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2728, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50422:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50421:15:1" + }, + "scope": 3498, + "src": "50349:776:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2798, + "nodeType": "Block", + "src": "51420:32:1", + "statements": [ + { + "expression": { + "id": 2796, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "51437:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2795, + "id": 2797, + "nodeType": "Return", + "src": "51430:15:1" + } + ] + }, + "documentation": { + "id": 2791, + "nodeType": "StructuredDocumentation", + "src": "51131:221:1", + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "functionSelector": "6c0360eb", + "id": 2799, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "baseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2792, + "nodeType": "ParameterList", + "parameters": [], + "src": "51373:2:1" + }, + "returnParameters": { + "id": 2795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2799, + "src": "51405:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2793, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51405:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "51404:15:1" + }, + "scope": 3498, + "src": "51357:95:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 700 + ], + "body": { + "id": 2817, + "nodeType": "Block", + "src": "51637:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2814, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "51678:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 2810, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "51654:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2812, + "indexExpression": { + "id": 2811, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2802, + "src": "51668:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "51654:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2813, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 1920, + "src": "51654:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51654:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2809, + "id": 2816, + "nodeType": "Return", + "src": "51647:37:1" + } + ] + }, + "documentation": { + "id": 2800, + "nodeType": "StructuredDocumentation", + "src": "51458:68:1", + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "functionSelector": "2f745c59", + "id": 2818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2806, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51610:8:1" + }, + "parameters": { + "id": 2805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2802, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51560:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "51560:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2804, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51575:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2803, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51575:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51559:30:1" + }, + "returnParameters": { + "id": 2809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2808, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51628:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51628:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51627:9:1" + }, + "scope": 3498, + "src": "51531:160:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 690 + ], + "body": { + "id": 2829, + "nodeType": "Block", + "src": "51832:138:1", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2825, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "51942:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 2340, + "src": "51942:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51942:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2824, + "id": 2828, + "nodeType": "Return", + "src": "51935:28:1" + } + ] + }, + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "51697:60:1", + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 2830, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2821, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51805:8:1" + }, + "parameters": { + "id": 2820, + "nodeType": "ParameterList", + "parameters": [], + "src": "51782:2:1" + }, + "returnParameters": { + "id": 2824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2823, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2830, + "src": "51823:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51823:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51822:9:1" + }, + "scope": 3498, + "src": "51762:208:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 708 + ], + "body": { + "id": 2848, + "nodeType": "Block", + "src": "52126:85:1", + "statements": [ + { + "assignments": [ + 2840, + null + ], + "declarations": [ + { + "constant": false, + "id": 2840, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2848, + "src": "52137:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2839, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52137:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2845, + "initialValue": { + "arguments": [ + { + "id": 2843, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2833, + "src": "52174:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2841, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "52158:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 2379, + "src": "52158:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + } + }, + "id": 2844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52158:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$", + "typeString": "tuple(uint256,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "expression": { + "id": 2846, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2840, + "src": "52197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2838, + "id": 2847, + "nodeType": "Return", + "src": "52190:14:1" + } + ] + }, + "documentation": { + "id": 2831, + "nodeType": "StructuredDocumentation", + "src": "51976:61:1", + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "functionSelector": "4f6ccce7", + "id": 2849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2835, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52099:8:1" + }, + "parameters": { + "id": 2834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2833, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52064:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52064:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52063:15:1" + }, + "returnParameters": { + "id": 2838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2837, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52117:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52116:9:1" + }, + "scope": 3498, + "src": "52042:169:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 616 + ], + "body": { + "id": 2892, + "nodeType": "Block", + "src": "52338:325:1", + "statements": [ + { + "assignments": [ + 2859 + ], + "declarations": [ + { + "constant": false, + "id": 2859, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2892, + "src": "52348:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52348:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2864, + "initialValue": { + "arguments": [ + { + "id": 2862, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52379:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2860, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52364:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "52364:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52364:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2866, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52405:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2867, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52411:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52405:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "id": 2869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52418:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + }, + "value": "ERC721: approval to current owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "id": 2865, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52397:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52397:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2871, + "nodeType": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2873, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52473:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52473:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2875, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52489:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52473:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 2879, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52522:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2880, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52529:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52529:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 2877, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52498:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "52498:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52498:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "52473:69:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52556:58:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + }, + "value": "ERC721: approve caller is not owner nor approved for all" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "id": 2872, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52465:159:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2886, + "nodeType": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2888, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52644:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2889, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52648:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2887, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "52635:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52635:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2891, + "nodeType": "ExpressionStatement", + "src": "52635:21:1" + } + ] + }, + "documentation": { + "id": 2850, + "nodeType": "StructuredDocumentation", + "src": "52217:46:1", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 2893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2856, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52329:8:1" + }, + "parameters": { + "id": 2855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2852, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52285:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52285:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2854, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52297:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52284:29:1" + }, + "returnParameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [], + "src": "52338:0:1" + }, + "scope": 3498, + "src": "52268:395:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 624 + ], + "body": { + "id": 2913, + "nodeType": "Block", + "src": "52809:132:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2904, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2903, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "52827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52827:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52845:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + }, + "value": "ERC721: approved query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "id": 2902, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52819:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2908, + "nodeType": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "expression": { + "baseExpression": { + "id": 2909, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "52910:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 2911, + "indexExpression": { + "id": 2910, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52926:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "52910:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2901, + "id": 2912, + "nodeType": "Return", + "src": "52903:31:1" + } + ] + }, + "documentation": { + "id": 2894, + "nodeType": "StructuredDocumentation", + "src": "52669:50:1", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 2914, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2898, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52782:8:1" + }, + "parameters": { + "id": 2897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2896, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52745:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52744:17:1" + }, + "returnParameters": { + "id": 2901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2900, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2899, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "52799:9:1" + }, + "scope": 3498, + "src": "52724:217:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 632 + ], + "body": { + "id": 2947, + "nodeType": "Block", + "src": "53092:206:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2924, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53110:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2925, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53122:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53122:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "53110:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "id": 2928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53136:27:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + }, + "value": "ERC721: approve to caller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "id": 2923, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53102:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53102:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2930, + "nodeType": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "expression": { + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 2931, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53175:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2935, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2932, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53194:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53194:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53175:32:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2936, + "indexExpression": { + "id": 2934, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53208:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "53175:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2937, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53220:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "53175:53:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2941, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53258:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53258:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2943, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53272:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2944, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53282:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2940, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "53243:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 2945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53243:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2946, + "nodeType": "EmitStatement", + "src": "53238:53:1" + } + ] + }, + "documentation": { + "id": 2915, + "nodeType": "StructuredDocumentation", + "src": "52947:56:1", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 2948, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2921, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53083:8:1" + }, + "parameters": { + "id": 2920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2917, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53035:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53035:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2919, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53053:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2918, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53053:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53034:33:1" + }, + "returnParameters": { + "id": 2922, + "nodeType": "ParameterList", + "parameters": [], + "src": "53092:0:1" + }, + "scope": 3498, + "src": "53008:290:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 642 + ], + "body": { + "id": 2965, + "nodeType": "Block", + "src": "53467:59:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 2959, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53484:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2961, + "indexExpression": { + "id": 2960, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "53503:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2963, + "indexExpression": { + "id": 2962, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "53510:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2958, + "id": 2964, + "nodeType": "Return", + "src": "53477:42:1" + } + ] + }, + "documentation": { + "id": 2949, + "nodeType": "StructuredDocumentation", + "src": "53304:55:1", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 2966, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2955, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53443:8:1" + }, + "parameters": { + "id": 2954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53390:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53390:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2953, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53405:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53405:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "53389:33:1" + }, + "returnParameters": { + "id": 2958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2957, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2956, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53460:6:1" + }, + "scope": 3498, + "src": "53364:162:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 608 + ], + "body": { + "id": 2992, + "nodeType": "Block", + "src": "53677:211:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2979, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53766:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53766:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2981, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53780:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2978, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "53747:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53747:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53790:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 2977, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53739:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53739:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2985, + "nodeType": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2987, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2969, + "src": "53863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2988, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2971, + "src": "53869:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2989, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53873:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2986, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "53853:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53853:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2991, + "nodeType": "ExpressionStatement", + "src": "53853:28:1" + } + ] + }, + "documentation": { + "id": 2967, + "nodeType": "StructuredDocumentation", + "src": "53532:51:1", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 2993, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2975, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53668:8:1" + }, + "parameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2969, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53610:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53610:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2971, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53624:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53624:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2973, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53636:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "53636:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53609:43:1" + }, + "returnParameters": { + "id": 2976, + "nodeType": "ParameterList", + "parameters": [], + "src": "53677:0:1" + }, + "scope": 3498, + "src": "53588:300:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 598 + ], + "body": { + "id": 3011, + "nodeType": "Block", + "src": "54047:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3005, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2996, + "src": "54074:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3006, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2998, + "src": "54080:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3007, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3000, + "src": "54084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54093:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3004, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "src": "54057:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54057:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3010, + "nodeType": "ExpressionStatement", + "src": "54057:39:1" + } + ] + }, + "documentation": { + "id": 2994, + "nodeType": "StructuredDocumentation", + "src": "53894:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 3012, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3002, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54038:8:1" + }, + "parameters": { + "id": 3001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2996, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53980:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53980:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2998, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53994:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2997, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53994:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3000, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "54006:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54006:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53979:43:1" + }, + "returnParameters": { + "id": 3003, + "nodeType": "ParameterList", + "parameters": [], + "src": "54047:0:1" + }, + "scope": 3498, + "src": "53954:149:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 654 + ], + "body": { + "id": 3041, + "nodeType": "Block", + "src": "54282:169:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3027, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "54319:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54319:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3029, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3026, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "54300:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 3030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54300:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 3031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54343:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 3025, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "54292:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54292:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3033, + "nodeType": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3035, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3015, + "src": "54419:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3036, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3017, + "src": "54425:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3037, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3038, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3021, + "src": "54438:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3034, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3071, + "src": "54405:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54405:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3040, + "nodeType": "ExpressionStatement", + "src": "54405:39:1" + } + ] + }, + "documentation": { + "id": 3013, + "nodeType": "StructuredDocumentation", + "src": "54109:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 3042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3023, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54273:8:1" + }, + "parameters": { + "id": 3022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3015, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54195:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54195:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3017, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54209:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3016, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54209:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3019, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54221:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3021, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54238:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3020, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "54238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "54194:63:1" + }, + "returnParameters": { + "id": 3024, + "nodeType": "ParameterList", + "parameters": [], + "src": "54282:0:1" + }, + "scope": 3498, + "src": "54169:282:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 3070, + "nodeType": "Block", + "src": "55416:166:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3055, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55436:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55442:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3057, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55446:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3054, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "55426:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55426:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3059, + "nodeType": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3062, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55495:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3063, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55501:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3064, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55505:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3065, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3051, + "src": "55514:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3061, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "55472:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55472:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55522:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3060, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "55464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55464:111:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3069, + "nodeType": "ExpressionStatement", + "src": "55464:111:1" + } + ] + }, + "documentation": { + "id": 3043, + "nodeType": "StructuredDocumentation", + "src": "54457:851:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3071, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3045, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55336:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55336:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3047, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55350:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55350:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3049, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55362:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55362:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3051, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55379:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3050, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "55379:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "55335:63:1" + }, + "returnParameters": { + "id": 3053, + "nodeType": "ParameterList", + "parameters": [], + "src": "55416:0:1" + }, + "scope": 3498, + "src": "55313:269:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3084, + "nodeType": "Block", + "src": "55956:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3081, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "55995:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3079, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "55973:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3080, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 2326, + "src": "55973:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + } + }, + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55973:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3078, + "id": 3083, + "nodeType": "Return", + "src": "55966:37:1" + } + ] + }, + "documentation": { + "id": 3072, + "nodeType": "StructuredDocumentation", + "src": "55588:292:1", + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3085, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3074, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55902:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3073, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55902:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "55901:17:1" + }, + "returnParameters": { + "id": 3078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3077, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55950:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3076, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "55950:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "55949:6:1" + }, + "scope": 3498, + "src": "55885:125:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3126, + "nodeType": "Block", + "src": "56267:252:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3097, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56293:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3096, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "56285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56285:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 3099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56303:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + }, + "value": "ERC721: operator query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "id": 3095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "56277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56277:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3101, + "nodeType": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "assignments": [ + 3103 + ], + "declarations": [ + { + "constant": false, + "id": 3103, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3126, + "src": "56360:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56360:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3108, + "initialValue": { + "arguments": [ + { + "id": 3106, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56391:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3104, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56376:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "56376:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56376:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3109, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56417:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3110, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56428:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56417:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3113, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56449:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3112, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "56437:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56437:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3115, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56437:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:51:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 3120, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56496:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3121, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3118, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "56472:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56472:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:94:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3124, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56416:96:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3094, + "id": 3125, + "nodeType": "Return", + "src": "56409:103:1" + } + ] + }, + "documentation": { + "id": 3086, + "nodeType": "StructuredDocumentation", + "src": "56016:147:1", + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3088, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56196:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56196:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3090, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56213:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56213:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56195:34:1" + }, + "returnParameters": { + "id": 3094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3093, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56261:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3092, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "56261:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "56260:6:1" + }, + "scope": 3498, + "src": "56168:351:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3141, + "nodeType": "Block", + "src": "56915:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3136, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3130, + "src": "56935:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3137, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3132, + "src": "56939:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56948:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3135, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "src": "56925:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 3139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56925:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3140, + "nodeType": "ExpressionStatement", + "src": "56925:26:1" + } + ] + }, + "documentation": { + "id": 3128, + "nodeType": "StructuredDocumentation", + "src": "56525:320:1", + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3142, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3130, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56869:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3132, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56881:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56881:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56868:29:1" + }, + "returnParameters": { + "id": 3134, + "nodeType": "ParameterList", + "parameters": [], + "src": "56915:0:1" + }, + "scope": 3498, + "src": "56850:108:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3170, + "nodeType": "Block", + "src": "57264:162:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3153, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57280:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3154, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3152, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "57274:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57274:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3156, + "nodeType": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57341:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57333:7:1", + "typeDescriptions": {} + } + }, + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57333:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3163, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57345:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3164, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3165, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "57358:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3158, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "57310:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57310:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57366:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3157, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57302:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57302:117:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3169, + "nodeType": "ExpressionStatement", + "src": "57302:117:1" + } + ] + }, + "documentation": { + "id": 3143, + "nodeType": "StructuredDocumentation", + "src": "56964:210:1", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3171, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3145, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57198:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3144, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57198:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3147, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57210:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57210:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3149, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57227:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3148, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "57227:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "57197:49:1" + }, + "returnParameters": { + "id": 3151, + "nodeType": "ParameterList", + "parameters": [], + "src": "57264:0:1" + }, + "scope": 3498, + "src": "57179:247:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3229, + "nodeType": "Block", + "src": "57809:332:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3180, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57827:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57841:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57833:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57833:7:1", + "typeDescriptions": {} + } + }, + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57833:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "57827:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57845:34:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + }, + "value": "ERC721: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "id": 3179, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57819:61:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "57898:17:1", + "subExpression": { + "arguments": [ + { + "id": 3191, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57907:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3190, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "57899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57899:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57917:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + }, + "value": "ERC721: token already minted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "id": 3189, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57890:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57890:58:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3196, + "nodeType": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57988:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57980:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57980:7:1", + "typeDescriptions": {} + } + }, + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57980:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3202, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57992:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3203, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3197, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "57959:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57959:45:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3205, + "nodeType": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3210, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58037:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3206, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58015:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3208, + "indexExpression": { + "id": 3207, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58029:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58015:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3209, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "58015:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58015:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3212, + "nodeType": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3216, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58073:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3217, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58082:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3213, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58056:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3215, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "58056:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58056:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3219, + "nodeType": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58118:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58110:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58110:7:1", + "typeDescriptions": {} + } + }, + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58110:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3225, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58122:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3226, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3220, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58101:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58101:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3228, + "nodeType": "EmitStatement", + "src": "58096:38:1" + } + ] + }, + "documentation": { + "id": 3172, + "nodeType": "StructuredDocumentation", + "src": "57432:311:1", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3174, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57763:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57763:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3176, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57775:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57775:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "57762:29:1" + }, + "returnParameters": { + "id": 3178, + "nodeType": "ParameterList", + "parameters": [], + "src": "57809:0:1" + }, + "scope": 3498, + "src": "57748:393:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3298, + "nodeType": "Block", + "src": "58407:478:1", + "statements": [ + { + "assignments": [ + 3237 + ], + "declarations": [ + { + "constant": false, + "id": 3237, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "58417:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58417:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3242, + "initialValue": { + "arguments": [ + { + "id": 3240, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58448:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3238, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "58433:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "58433:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58433:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3244, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58506:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58521:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58513:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58513:7:1", + "typeDescriptions": {} + } + }, + "id": 3248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58513:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3249, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58525:7:1", + "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": 3243, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "58485:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58485:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3251, + "nodeType": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58588:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58580:7:1", + "typeDescriptions": {} + } + }, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58580:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3257, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58592:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3252, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "58571:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58571:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3259, + "nodeType": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 3262, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58656:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3264, + "indexExpression": { + "id": 3263, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58667:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58656:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 3261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58650:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3260, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "58650:5:1", + "typeDescriptions": {} + } + }, + "id": 3265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58650:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes storage pointer" + } + }, + "id": 3266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "58650:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 3267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58687:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "58650:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3275, + "nodeType": "IfStatement", + "src": "58646:95:1", + "trueBody": { + "id": 3274, + "nodeType": "Block", + "src": "58690:51:1", + "statements": [ + { + "expression": { + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "58704:26:1", + "subExpression": { + "baseExpression": { + "id": 3269, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58711:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3271, + "indexExpression": { + "id": 3270, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58722:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "58711:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3273, + "nodeType": "ExpressionStatement", + "src": "58704:26:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 3280, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58779:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3276, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58751:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3278, + "indexExpression": { + "id": 3277, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58765:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58751:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3279, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "58751:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58751:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3282, + "nodeType": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3286, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58818:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3283, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58798:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 2306, + "src": "58798:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + } + }, + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58798:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3288, + "nodeType": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3290, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58851:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58866:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58858:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58858:7:1", + "typeDescriptions": {} + } + }, + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58858:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3295, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58870:7:1", + "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": 3289, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58842:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58842:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3297, + "nodeType": "EmitStatement", + "src": "58837:41:1" + } + ] + }, + "documentation": { + "id": 3231, + "nodeType": "StructuredDocumentation", + "src": "58147:206:1", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3299, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3233, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3299, + "src": "58373:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "58372:17:1" + }, + "returnParameters": { + "id": 3235, + "nodeType": "ParameterList", + "parameters": [], + "src": "58407:0:1" + }, + "scope": 3498, + "src": "58358:527:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3370, + "nodeType": "Block", + "src": "59288:505:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3312, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59321:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3310, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "59306:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "59306:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59306:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3314, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59333:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "59306:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59339:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + }, + "value": "ERC721: transfer of token that is not own" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "id": 3309, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59298:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59298:85:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3318, + "nodeType": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3320, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59419:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59433:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59425:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59425:7:1", + "typeDescriptions": {} + } + }, + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59425:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "59419:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59437:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + }, + "value": "ERC721: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "id": 3319, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59411:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59411:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3328, + "nodeType": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3330, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59508:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3331, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59514:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3332, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59518:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3329, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "59487:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59487:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3334, + "nodeType": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59605:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59597:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59597:7:1", + "typeDescriptions": {} + } + }, + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59597:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3340, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59609:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3335, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "59588:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59588:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3342, + "nodeType": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3347, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59655:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3343, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59628:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3345, + "indexExpression": { + "id": 3344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59642:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59628:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3346, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "59628:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59628:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3354, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59695:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3350, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3352, + "indexExpression": { + "id": 3351, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59687:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59673:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3353, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "59673:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59673:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3356, + "nodeType": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3360, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59731:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3361, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59740:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3357, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "59714:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "59714:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59714:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3363, + "nodeType": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3365, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59768:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3366, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59774:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3367, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59778:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3364, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "59759:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59759:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3369, + "nodeType": "EmitStatement", + "src": "59754:32:1" + } + ] + }, + "documentation": { + "id": 3300, + "nodeType": "StructuredDocumentation", + "src": "58891:313:1", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3302, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59228:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3304, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59242:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59242:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3306, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59254:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3305, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59254:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "59227:43:1" + }, + "returnParameters": { + "id": 3308, + "nodeType": "ParameterList", + "parameters": [], + "src": "59288:0:1" + }, + "scope": 3498, + "src": "59209:584:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3392, + "nodeType": "Block", + "src": "60021:131:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3381, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60047:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3380, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "60039:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60039:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "id": 3383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "60057:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + }, + "value": "ERC721Metadata: URI set of nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "id": 3379, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "60031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60031:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3385, + "nodeType": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "expression": { + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3386, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "60114:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3388, + "indexExpression": { + "id": 3387, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60125:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "60114:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3389, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "60136:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60114:31:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3391, + "nodeType": "ExpressionStatement", + "src": "60114:31:1" + } + ] + }, + "documentation": { + "id": 3372, + "nodeType": "StructuredDocumentation", + "src": "59799:136:1", + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setTokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3374, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59962:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59962:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3376, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59979:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3375, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "59979:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "59961:42:1" + }, + "returnParameters": { + "id": 3378, + "nodeType": "ParameterList", + "parameters": [], + "src": "60021:0:1" + }, + "scope": 3498, + "src": "59940:212:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3403, + "nodeType": "Block", + "src": "60437:36:1", + "statements": [ + { + "expression": { + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3399, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "60447:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3400, + "name": "baseURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "60458:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60447:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3402, + "nodeType": "ExpressionStatement", + "src": "60447:19:1" + } + ] + }, + "documentation": { + "id": 3394, + "nodeType": "StructuredDocumentation", + "src": "60158:212:1", + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3404, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setBaseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3396, + "mutability": "mutable", + "name": "baseURI_", + "nodeType": "VariableDeclaration", + "scope": 3404, + "src": "60396:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3395, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "60396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "60395:24:1" + }, + "returnParameters": { + "id": 3398, + "nodeType": "ParameterList", + "parameters": [], + "src": "60437:0:1" + }, + "scope": 3498, + "src": "60375:98:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3461, + "nodeType": "Block", + "src": "61156:459:1", + "statements": [ + { + "condition": { + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "61170:16:1", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3418, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61171:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 1154, + "src": "61171:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61171:15:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3425, + "nodeType": "IfStatement", + "src": "61166:58:1", + "trueBody": { + "id": 3424, + "nodeType": "Block", + "src": "61188:36:1", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 3422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61209:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3417, + "id": 3423, + "nodeType": "Return", + "src": "61202:11:1" + } + ] + } + }, + { + "assignments": [ + 3427 + ], + "declarations": [ + { + "constant": false, + "id": 3427, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61233:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3426, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61233:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3445, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 3433, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61327:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3432, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "61311:15:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$726_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 3434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61311:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$726", + "typeString": "contract IERC721Receiver" + } + }, + "id": 3435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 725, + "src": "61311:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "61311:45:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3437, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "61370:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61370:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3439, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "61396:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3440, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "61414:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3441, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3413, + "src": "61435:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3430, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61275:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "61275:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 3442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61275:175:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61452:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "expression": { + "id": 3428, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61259:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 1225, + "src": "61259:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 3444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61259:246:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "assignments": [ + 3447 + ], + "declarations": [ + { + "constant": false, + "id": 3447, + "mutability": "mutable", + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61515:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3446, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61515:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "id": 3455, + "initialValue": { + "arguments": [ + { + "id": 3450, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3427, + "src": "61542:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 3452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "61555:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 3451, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61555:6:1", + "typeDescriptions": {} + } + } + ], + "id": 3453, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61554:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "expression": { + "id": 3448, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61531:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "61531:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61531:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3456, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "61581:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3457, + "name": "_ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "61591:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "61581:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3459, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61580:28:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3417, + "id": 3460, + "nodeType": "Return", + "src": "61573:35:1" + } + ] + }, + "documentation": { + "id": 3405, + "nodeType": "StructuredDocumentation", + "src": "60479:542:1", + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3462, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3407, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61058:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61058:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3409, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61072:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61072:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3411, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61084:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3410, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3413, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61101:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3412, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61101:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "61057:63:1" + }, + "returnParameters": { + "id": 3417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3416, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61146:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3415, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "61146:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "61145:6:1" + }, + "scope": 3498, + "src": "61026:589:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3485, + "nodeType": "Block", + "src": "61791:125:1", + "statements": [ + { + "expression": { + "id": 3474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3470, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "61801:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 3472, + "indexExpression": { + "id": 3471, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61817:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "61801:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3473, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61828:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "61801:29:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3475, + "nodeType": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 3479, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61869:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3477, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "61854:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "61854:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61854:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3481, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61879:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3482, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3476, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "61845:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61845:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3484, + "nodeType": "EmitStatement", + "src": "61840:51:1" + } + ] + }, + "documentation": { + "id": 3463, + "nodeType": "StructuredDocumentation", + "src": "61621:101:1", + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3486, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3465, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61745:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61745:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3467, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61757:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61757:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "61744:29:1" + }, + "returnParameters": { + "id": 3469, + "nodeType": "ParameterList", + "parameters": [], + "src": "61791:0:1" + }, + "scope": 3498, + "src": "61727:189:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3496, + "nodeType": "Block", + "src": "62602:3:1", + "statements": [] + }, + "documentation": { + "id": 3487, + "nodeType": "StructuredDocumentation", + "src": "61922:585:1", + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3497, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3489, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62542:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62542:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3491, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62556:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62556:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3493, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62568:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "62568:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "62541:43:1" + }, + "returnParameters": { + "id": 3495, + "nodeType": "ParameterList", + "parameters": [], + "src": "62602:0:1" + }, + "scope": 3498, + "src": "62512:93:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "46080:16527:1" + } + ], + "src": "84:62524:1" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "license": "MIT" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 509, + "name": "PragmaDirective", + "src": "84:31:1" + }, + { + "attributes": { + "abstract": true, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgSender", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 510, + "name": "ParameterList", + "src": "668:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 518, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 511, + "name": "ElementaryTypeName", + "src": "702:15:1" + } + ], + "id": 512, + "name": "VariableDeclaration", + "src": "702:15:1" + } + ], + "id": 513, + "name": "ParameterList", + "src": "701:17:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 513 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 514, + "name": "Identifier", + "src": "736:3:1" + } + ], + "id": 515, + "name": "MemberAccess", + "src": "736:10:1" + } + ], + "id": 516, + "name": "Return", + "src": "729:17:1" + } + ], + "id": 517, + "name": "Block", + "src": "719:34:1" + } + ], + "id": 518, + "name": "FunctionDefinition", + "src": "649:104:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgData", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 519, + "name": "ParameterList", + "src": "776:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 529, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 520, + "name": "ElementaryTypeName", + "src": "810:5:1" + } + ], + "id": 521, + "name": "VariableDeclaration", + "src": "810:12:1" + } + ], + "id": 522, + "name": "ParameterList", + "src": "809:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "contract Context", + "value": "this" + }, + "id": 523, + "name": "Identifier", + "src": "834:4:1" + } + ], + "id": 524, + "name": "ExpressionStatement", + "src": "834:4:1" + }, + { + "attributes": { + "functionReturnParameters": 522 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "data", + "type": "bytes calldata" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 525, + "name": "Identifier", + "src": "974:3:1" + } + ], + "id": 526, + "name": "MemberAccess", + "src": "974:8:1" + } + ], + "id": 527, + "name": "Return", + "src": "967:15:1" + } + ], + "id": 528, + "name": "Block", + "src": "824:165:1" + } + ], + "id": 529, + "name": "FunctionDefinition", + "src": "759:230:1" + } + ], + "id": 530, + "name": "ContractDefinition", + "src": "617:374:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 531, + "name": "PragmaDirective", + "src": "1053:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "id": 532, + "name": "StructuredDocumentation", + "src": "1086:279:1" + }, + { + "attributes": { + "functionSelector": "01ffc9a7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 541, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "id": 533, + "name": "StructuredDocumentation", + "src": "1390:340:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 534, + "name": "ElementaryTypeName", + "src": "1762:6:1" + } + ], + "id": 535, + "name": "VariableDeclaration", + "src": "1762:18:1" + } + ], + "id": 536, + "name": "ParameterList", + "src": "1761:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 537, + "name": "ElementaryTypeName", + "src": "1805:4:1" + } + ], + "id": 538, + "name": "VariableDeclaration", + "src": "1805:4:1" + } + ], + "id": 539, + "name": "ParameterList", + "src": "1804:6:1" + } + ], + "id": 540, + "name": "FunctionDefinition", + "src": "1735:76:1" + } + ], + "id": 541, + "name": "ContractDefinition", + "src": "1366:447:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 542, + "name": "PragmaDirective", + "src": "1873:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "id": 543, + "name": "StructuredDocumentation", + "src": "1907:67:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 544, + "name": "UserDefinedTypeName", + "src": "1996:7:1" + } + ], + "id": 545, + "name": "InheritanceSpecifier", + "src": "1996:7:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Transfer" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 546, + "name": "StructuredDocumentation", + "src": "2010:88:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "from", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 547, + "name": "ElementaryTypeName", + "src": "2118:7:1" + } + ], + "id": 548, + "name": "VariableDeclaration", + "src": "2118:20:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "to", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 549, + "name": "ElementaryTypeName", + "src": "2140:7:1" + } + ], + "id": 550, + "name": "VariableDeclaration", + "src": "2140:18:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 551, + "name": "ElementaryTypeName", + "src": "2160:7:1" + } + ], + "id": 552, + "name": "VariableDeclaration", + "src": "2160:23:1" + } + ], + "id": 553, + "name": "ParameterList", + "src": "2117:67:1" + } + ], + "id": 554, + "name": "EventDefinition", + "src": "2103:82:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Approval" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 555, + "name": "StructuredDocumentation", + "src": "2191:94:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 556, + "name": "ElementaryTypeName", + "src": "2305:7:1" + } + ], + "id": 557, + "name": "VariableDeclaration", + "src": "2305:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 558, + "name": "ElementaryTypeName", + "src": "2328:7:1" + } + ], + "id": 559, + "name": "VariableDeclaration", + "src": "2328:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 560, + "name": "ElementaryTypeName", + "src": "2354:7:1" + } + ], + "id": 561, + "name": "VariableDeclaration", + "src": "2354:23:1" + } + ], + "id": 562, + "name": "ParameterList", + "src": "2304:74:1" + } + ], + "id": 563, + "name": "EventDefinition", + "src": "2290:89:1" + }, + { + "attributes": { + "anonymous": false, + "name": "ApprovalForAll" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 564, + "name": "StructuredDocumentation", + "src": "2385:117:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 565, + "name": "ElementaryTypeName", + "src": "2528:7:1" + } + ], + "id": 566, + "name": "VariableDeclaration", + "src": "2528:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 567, + "name": "ElementaryTypeName", + "src": "2551:7:1" + } + ], + "id": 568, + "name": "VariableDeclaration", + "src": "2551:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 569, + "name": "ElementaryTypeName", + "src": "2577:4:1" + } + ], + "id": 570, + "name": "VariableDeclaration", + "src": "2577:13:1" + } + ], + "id": 571, + "name": "ParameterList", + "src": "2527:64:1" + } + ], + "id": 572, + "name": "EventDefinition", + "src": "2507:85:1" + }, + { + "attributes": { + "functionSelector": "70a08231", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "id": 573, + "name": "StructuredDocumentation", + "src": "2598:76:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 574, + "name": "ElementaryTypeName", + "src": "2698:7:1" + } + ], + "id": 575, + "name": "VariableDeclaration", + "src": "2698:13:1" + } + ], + "id": 576, + "name": "ParameterList", + "src": "2697:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "balance", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 577, + "name": "ElementaryTypeName", + "src": "2736:7:1" + } + ], + "id": 578, + "name": "VariableDeclaration", + "src": "2736:15:1" + } + ], + "id": 579, + "name": "ParameterList", + "src": "2735:17:1" + } + ], + "id": 580, + "name": "FunctionDefinition", + "src": "2679:74:1" + }, + { + "attributes": { + "functionSelector": "6352211e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 581, + "name": "StructuredDocumentation", + "src": "2759:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 582, + "name": "ElementaryTypeName", + "src": "2912:7:1" + } + ], + "id": 583, + "name": "VariableDeclaration", + "src": "2912:15:1" + } + ], + "id": 584, + "name": "ParameterList", + "src": "2911:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 585, + "name": "ElementaryTypeName", + "src": "2952:7:1" + } + ], + "id": 586, + "name": "VariableDeclaration", + "src": "2952:13:1" + } + ], + "id": 587, + "name": "ParameterList", + "src": "2951:15:1" + } + ], + "id": 588, + "name": "FunctionDefinition", + "src": "2895:72:1" + }, + { + "attributes": { + "functionSelector": "42842e0e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 589, + "name": "StructuredDocumentation", + "src": "2973:690:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 590, + "name": "ElementaryTypeName", + "src": "3694:7:1" + } + ], + "id": 591, + "name": "VariableDeclaration", + "src": "3694:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 592, + "name": "ElementaryTypeName", + "src": "3708:7:1" + } + ], + "id": 593, + "name": "VariableDeclaration", + "src": "3708:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 594, + "name": "ElementaryTypeName", + "src": "3720:7:1" + } + ], + "id": 595, + "name": "VariableDeclaration", + "src": "3720:15:1" + } + ], + "id": 596, + "name": "ParameterList", + "src": "3693:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 597, + "name": "ParameterList", + "src": "3745:0:1" + } + ], + "id": 598, + "name": "FunctionDefinition", + "src": "3668:78:1" + }, + { + "attributes": { + "functionSelector": "23b872dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "id": 599, + "name": "StructuredDocumentation", + "src": "3752:504:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 600, + "name": "ElementaryTypeName", + "src": "4283:7:1" + } + ], + "id": 601, + "name": "VariableDeclaration", + "src": "4283:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 602, + "name": "ElementaryTypeName", + "src": "4297:7:1" + } + ], + "id": 603, + "name": "VariableDeclaration", + "src": "4297:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 604, + "name": "ElementaryTypeName", + "src": "4309:7:1" + } + ], + "id": 605, + "name": "VariableDeclaration", + "src": "4309:15:1" + } + ], + "id": 606, + "name": "ParameterList", + "src": "4282:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 607, + "name": "ParameterList", + "src": "4334:0:1" + } + ], + "id": 608, + "name": "FunctionDefinition", + "src": "4261:74:1" + }, + { + "attributes": { + "functionSelector": "095ea7b3", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "id": 609, + "name": "StructuredDocumentation", + "src": "4341:452:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 610, + "name": "ElementaryTypeName", + "src": "4815:7:1" + } + ], + "id": 611, + "name": "VariableDeclaration", + "src": "4815:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 612, + "name": "ElementaryTypeName", + "src": "4827:7:1" + } + ], + "id": 613, + "name": "VariableDeclaration", + "src": "4827:15:1" + } + ], + "id": 614, + "name": "ParameterList", + "src": "4814:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 615, + "name": "ParameterList", + "src": "4852:0:1" + } + ], + "id": 616, + "name": "FunctionDefinition", + "src": "4798:55:1" + }, + { + "attributes": { + "functionSelector": "081812fc", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 617, + "name": "StructuredDocumentation", + "src": "4859:139:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 618, + "name": "ElementaryTypeName", + "src": "5024:7:1" + } + ], + "id": 619, + "name": "VariableDeclaration", + "src": "5024:15:1" + } + ], + "id": 620, + "name": "ParameterList", + "src": "5023:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 621, + "name": "ElementaryTypeName", + "src": "5064:7:1" + } + ], + "id": 622, + "name": "VariableDeclaration", + "src": "5064:16:1" + } + ], + "id": 623, + "name": "ParameterList", + "src": "5063:18:1" + } + ], + "id": 624, + "name": "FunctionDefinition", + "src": "5003:79:1" + }, + { + "attributes": { + "functionSelector": "a22cb465", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "id": 625, + "name": "StructuredDocumentation", + "src": "5088:309:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 626, + "name": "ElementaryTypeName", + "src": "5429:7:1" + } + ], + "id": 627, + "name": "VariableDeclaration", + "src": "5429:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_approved", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 628, + "name": "ElementaryTypeName", + "src": "5447:4:1" + } + ], + "id": 629, + "name": "VariableDeclaration", + "src": "5447:14:1" + } + ], + "id": 630, + "name": "ParameterList", + "src": "5428:34:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 631, + "name": "ParameterList", + "src": "5471:0:1" + } + ], + "id": 632, + "name": "FunctionDefinition", + "src": "5402:70:1" + }, + { + "attributes": { + "functionSelector": "e985e9c5", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "id": 633, + "name": "StructuredDocumentation", + "src": "5478:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 634, + "name": "ElementaryTypeName", + "src": "5647:7:1" + } + ], + "id": 635, + "name": "VariableDeclaration", + "src": "5647:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 636, + "name": "ElementaryTypeName", + "src": "5662:7:1" + } + ], + "id": 637, + "name": "VariableDeclaration", + "src": "5662:16:1" + } + ], + "id": 638, + "name": "ParameterList", + "src": "5646:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 639, + "name": "ElementaryTypeName", + "src": "5703:4:1" + } + ], + "id": 640, + "name": "VariableDeclaration", + "src": "5703:4:1" + } + ], + "id": 641, + "name": "ParameterList", + "src": "5702:6:1" + } + ], + "id": 642, + "name": "FunctionDefinition", + "src": "5621:88:1" + }, + { + "attributes": { + "functionSelector": "b88d4fde", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 643, + "name": "StructuredDocumentation", + "src": "5715:568:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 644, + "name": "ElementaryTypeName", + "src": "6314:7:1" + } + ], + "id": 645, + "name": "VariableDeclaration", + "src": "6314:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 646, + "name": "ElementaryTypeName", + "src": "6328:7:1" + } + ], + "id": 647, + "name": "VariableDeclaration", + "src": "6328:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 648, + "name": "ElementaryTypeName", + "src": "6340:7:1" + } + ], + "id": 649, + "name": "VariableDeclaration", + "src": "6340:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 654, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 650, + "name": "ElementaryTypeName", + "src": "6357:5:1" + } + ], + "id": 651, + "name": "VariableDeclaration", + "src": "6357:19:1" + } + ], + "id": 652, + "name": "ParameterList", + "src": "6313:64:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 653, + "name": "ParameterList", + "src": "6386:0:1" + } + ], + "id": 654, + "name": "FunctionDefinition", + "src": "6288:99:1" + } + ], + "id": 655, + "name": "ContractDefinition", + "src": "1975:4414:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 656, + "name": "PragmaDirective", + "src": "6457:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 657, + "name": "StructuredDocumentation", + "src": "6491:133:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 658, + "name": "UserDefinedTypeName", + "src": "6654:7:1" + } + ], + "id": 659, + "name": "InheritanceSpecifier", + "src": "6654:7:1" + }, + { + "attributes": { + "functionSelector": "06fdde03", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection name." + }, + "id": 660, + "name": "StructuredDocumentation", + "src": "6669:58:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 661, + "name": "ParameterList", + "src": "6745:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 665, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 662, + "name": "ElementaryTypeName", + "src": "6771:6:1" + } + ], + "id": 663, + "name": "VariableDeclaration", + "src": "6771:13:1" + } + ], + "id": 664, + "name": "ParameterList", + "src": "6770:15:1" + } + ], + "id": 665, + "name": "FunctionDefinition", + "src": "6732:54:1" + }, + { + "attributes": { + "functionSelector": "95d89b41", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection symbol." + }, + "id": 666, + "name": "StructuredDocumentation", + "src": "6792:60:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 667, + "name": "ParameterList", + "src": "6872:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 671, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 668, + "name": "ElementaryTypeName", + "src": "6898:6:1" + } + ], + "id": 669, + "name": "VariableDeclaration", + "src": "6898:13:1" + } + ], + "id": 670, + "name": "ParameterList", + "src": "6897:15:1" + } + ], + "id": 671, + "name": "FunctionDefinition", + "src": "6857:56:1" + }, + { + "attributes": { + "functionSelector": "c87b56dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "id": 672, + "name": "StructuredDocumentation", + "src": "6919:90:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 679, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 673, + "name": "ElementaryTypeName", + "src": "7032:7:1" + } + ], + "id": 674, + "name": "VariableDeclaration", + "src": "7032:15:1" + } + ], + "id": 675, + "name": "ParameterList", + "src": "7031:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 679, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 676, + "name": "ElementaryTypeName", + "src": "7072:6:1" + } + ], + "id": 677, + "name": "VariableDeclaration", + "src": "7072:13:1" + } + ], + "id": 678, + "name": "ParameterList", + "src": "7071:15:1" + } + ], + "id": 679, + "name": "FunctionDefinition", + "src": "7014:73:1" + } + ], + "id": 680, + "name": "ContractDefinition", + "src": "6625:464:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 681, + "name": "PragmaDirective", + "src": "7161:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 682, + "name": "StructuredDocumentation", + "src": "7195:136:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 683, + "name": "UserDefinedTypeName", + "src": "7363:7:1" + } + ], + "id": 684, + "name": "InheritanceSpecifier", + "src": "7363:7:1" + }, + { + "attributes": { + "functionSelector": "18160ddd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "id": 685, + "name": "StructuredDocumentation", + "src": "7378:82:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 686, + "name": "ParameterList", + "src": "7485:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 690, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 687, + "name": "ElementaryTypeName", + "src": "7511:7:1" + } + ], + "id": 688, + "name": "VariableDeclaration", + "src": "7511:7:1" + } + ], + "id": 689, + "name": "ParameterList", + "src": "7510:9:1" + } + ], + "id": 690, + "name": "FunctionDefinition", + "src": "7465:55:1" + }, + { + "attributes": { + "functionSelector": "2f745c59", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "id": 691, + "name": "StructuredDocumentation", + "src": "7526:171:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 692, + "name": "ElementaryTypeName", + "src": "7731:7:1" + } + ], + "id": 693, + "name": "VariableDeclaration", + "src": "7731:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 694, + "name": "ElementaryTypeName", + "src": "7746:7:1" + } + ], + "id": 695, + "name": "VariableDeclaration", + "src": "7746:13:1" + } + ], + "id": 696, + "name": "ParameterList", + "src": "7730:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 697, + "name": "ElementaryTypeName", + "src": "7784:7:1" + } + ], + "id": 698, + "name": "VariableDeclaration", + "src": "7784:15:1" + } + ], + "id": 699, + "name": "ParameterList", + "src": "7783:17:1" + } + ], + "id": 700, + "name": "FunctionDefinition", + "src": "7702:99:1" + }, + { + "attributes": { + "functionSelector": "4f6ccce7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "id": 701, + "name": "StructuredDocumentation", + "src": "7807:164:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 702, + "name": "ElementaryTypeName", + "src": "7998:7:1" + } + ], + "id": 703, + "name": "VariableDeclaration", + "src": "7998:13:1" + } + ], + "id": 704, + "name": "ParameterList", + "src": "7997:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 705, + "name": "ElementaryTypeName", + "src": "8036:7:1" + } + ], + "id": 706, + "name": "VariableDeclaration", + "src": "8036:7:1" + } + ], + "id": 707, + "name": "ParameterList", + "src": "8035:9:1" + } + ], + "id": 708, + "name": "FunctionDefinition", + "src": "7976:69:1" + } + ], + "id": 709, + "name": "ContractDefinition", + "src": "7332:715:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 710, + "name": "PragmaDirective", + "src": "8117:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "id": 711, + "name": "StructuredDocumentation", + "src": "8150:152:1" + }, + { + "attributes": { + "functionSelector": "150b7a02", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "onERC721Received", + "scope": 726, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "id": 712, + "name": "StructuredDocumentation", + "src": "8335:485:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 713, + "name": "ElementaryTypeName", + "src": "8851:7:1" + } + ], + "id": 714, + "name": "VariableDeclaration", + "src": "8851:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 715, + "name": "ElementaryTypeName", + "src": "8869:7:1" + } + ], + "id": 716, + "name": "VariableDeclaration", + "src": "8869:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 717, + "name": "ElementaryTypeName", + "src": "8883:7:1" + } + ], + "id": 718, + "name": "VariableDeclaration", + "src": "8883:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 725, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 719, + "name": "ElementaryTypeName", + "src": "8900:5:1" + } + ], + "id": 720, + "name": "VariableDeclaration", + "src": "8900:19:1" + } + ], + "id": 721, + "name": "ParameterList", + "src": "8850:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 722, + "name": "ElementaryTypeName", + "src": "8939:6:1" + } + ], + "id": 723, + "name": "VariableDeclaration", + "src": "8939:6:1" + } + ], + "id": 724, + "name": "ParameterList", + "src": "8938:8:1" + } + ], + "id": 725, + "name": "FunctionDefinition", + "src": "8825:122:1" + } + ], + "id": 726, + "name": "ContractDefinition", + "src": "8303:646:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 727, + "name": "PragmaDirective", + "src": "9009:31:1" + }, + { + "attributes": { + "abstract": true, + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "id": 728, + "name": "StructuredDocumentation", + "src": "9043:171:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 729, + "name": "UserDefinedTypeName", + "src": "9243:7:1" + } + ], + "id": 730, + "name": "InheritanceSpecifier", + "src": "9243:7:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 731, + "name": "ElementaryTypeName", + "src": "9340:6:1" + }, + { + "attributes": { + "hexvalue": "30783031666663396137", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 33540519", + "value": "0x01ffc9a7" + }, + "id": 732, + "name": "Literal", + "src": "9387:10:1" + } + ], + "id": 733, + "name": "VariableDeclaration", + "src": "9340:57:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_supportedInterfaces", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes4 => bool)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes4 => bool)" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 735, + "name": "ElementaryTypeName", + "src": "9499:6:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 736, + "name": "ElementaryTypeName", + "src": "9509:4:1" + } + ], + "id": 737, + "name": "Mapping", + "src": "9491:23:1" + }, + { + "attributes": { + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 734, + "name": "StructuredDocumentation", + "src": "9404:82:1" + } + ], + "id": 738, + "name": "VariableDeclaration", + "src": "9491:52:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 739, + "name": "ParameterList", + "src": "9562:2:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 740, + "name": "ParameterList", + "src": "9565:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 741, + "name": "Identifier", + "src": "9711:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 733, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC165" + }, + "id": 742, + "name": "Identifier", + "src": "9730:20:1" + } + ], + "id": 743, + "name": "FunctionCall", + "src": "9711:40:1" + } + ], + "id": 744, + "name": "ExpressionStatement", + "src": "9711:40:1" + } + ], + "id": 745, + "name": "Block", + "src": "9565:193:1" + } + ], + "id": 746, + "name": "FunctionDefinition", + "src": "9550:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 540 + ], + "functionSelector": "01ffc9a7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 781, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "id": 747, + "name": "StructuredDocumentation", + "src": "9764:139:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 751, + "name": "OverrideSpecifier", + "src": "9975:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 748, + "name": "ElementaryTypeName", + "src": "9935:6:1" + } + ], + "id": 749, + "name": "VariableDeclaration", + "src": "9935:18:1" + } + ], + "id": 750, + "name": "ParameterList", + "src": "9934:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 752, + "name": "ElementaryTypeName", + "src": "9993:4:1" + } + ], + "id": 753, + "name": "VariableDeclaration", + "src": "9993:4:1" + } + ], + "id": 754, + "name": "ParameterList", + "src": "9992:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 754 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 755, + "name": "Identifier", + "src": "10016:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 749, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 756, + "name": "Identifier", + "src": "10037:11:1" + } + ], + "id": 757, + "name": "IndexAccess", + "src": "10016:33:1" + } + ], + "id": 758, + "name": "Return", + "src": "10009:40:1" + } + ], + "id": 759, + "name": "Block", + "src": "9999:57:1" + } + ], + "id": 760, + "name": "FunctionDefinition", + "src": "9908:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_registerInterface", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 761, + "name": "StructuredDocumentation", + "src": "10062:383:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 780, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 762, + "name": "ElementaryTypeName", + "src": "10478:6:1" + } + ], + "id": 763, + "name": "VariableDeclaration", + "src": "10478:18:1" + } + ], + "id": 764, + "name": "ParameterList", + "src": "10477:20:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 765, + "name": "ParameterList", + "src": "10515:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 766, + "name": "Identifier", + "src": "10525:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 767, + "name": "Identifier", + "src": "10533:11:1" + }, + { + "attributes": { + "hexvalue": "30786666666666666666", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4294967295", + "value": "0xffffffff" + }, + "id": 768, + "name": "Literal", + "src": "10548:10:1" + } + ], + "id": 769, + "name": "BinaryOperation", + "src": "10533:25:1" + }, + { + "attributes": { + "hexvalue": "4552433136353a20696e76616c696420696e74657266616365206964", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC165: invalid interface id\"", + "value": "ERC165: invalid interface id" + }, + "id": 770, + "name": "Literal", + "src": "10560:30:1" + } + ], + "id": 771, + "name": "FunctionCall", + "src": "10525:66:1" + } + ], + "id": 772, + "name": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 773, + "name": "Identifier", + "src": "10601:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 774, + "name": "Identifier", + "src": "10622:11:1" + } + ], + "id": 775, + "name": "IndexAccess", + "src": "10601:33:1" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 776, + "name": "Literal", + "src": "10637:4:1" + } + ], + "id": 777, + "name": "Assignment", + "src": "10601:40:1" + } + ], + "id": 778, + "name": "ExpressionStatement", + "src": "10601:40:1" + } + ], + "id": 779, + "name": "Block", + "src": "10515:133:1" + } + ], + "id": 780, + "name": "FunctionDefinition", + "src": "10450:198:1" + } + ], + "id": 781, + "name": "ContractDefinition", + "src": "9215:1435:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 782, + "name": "PragmaDirective", + "src": "10703:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "id": 783, + "name": "StructuredDocumentation", + "src": "10736:563:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryAdd", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 784, + "name": "StructuredDocumentation", + "src": "11323:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 785, + "name": "ElementaryTypeName", + "src": "11475:7:1" + } + ], + "id": 786, + "name": "VariableDeclaration", + "src": "11475:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 787, + "name": "ElementaryTypeName", + "src": "11486:7:1" + } + ], + "id": 788, + "name": "VariableDeclaration", + "src": "11486:9:1" + } + ], + "id": 789, + "name": "ParameterList", + "src": "11474:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 790, + "name": "ElementaryTypeName", + "src": "11520:4:1" + } + ], + "id": 791, + "name": "VariableDeclaration", + "src": "11520:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 792, + "name": "ElementaryTypeName", + "src": "11526:7:1" + } + ], + "id": 793, + "name": "VariableDeclaration", + "src": "11526:7:1" + } + ], + "id": 794, + "name": "ParameterList", + "src": "11519:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 796 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 813, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 795, + "name": "ElementaryTypeName", + "src": "11545:7:1" + } + ], + "id": 796, + "name": "VariableDeclaration", + "src": "11545:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 797, + "name": "Identifier", + "src": "11557:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 788, + "type": "uint256", + "value": "b" + }, + "id": 798, + "name": "Identifier", + "src": "11561:1:1" + } + ], + "id": 799, + "name": "BinaryOperation", + "src": "11557:5:1" + } + ], + "id": 800, + "name": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 801, + "name": "Identifier", + "src": "11576:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 802, + "name": "Identifier", + "src": "11580:1:1" + } + ], + "id": 803, + "name": "BinaryOperation", + "src": "11576:5:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 804, + "name": "Literal", + "src": "11591:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 805, + "name": "Literal", + "src": "11598:1:1" + } + ], + "id": 806, + "name": "TupleExpression", + "src": "11590:10:1" + } + ], + "id": 807, + "name": "Return", + "src": "11583:17:1" + } + ], + "id": 808, + "name": "IfStatement", + "src": "11572:28:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 809, + "name": "Literal", + "src": "11618:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 810, + "name": "Identifier", + "src": "11624:1:1" + } + ], + "id": 811, + "name": "TupleExpression", + "src": "11617:9:1" + } + ], + "id": 812, + "name": "Return", + "src": "11610:16:1" + } + ], + "id": 813, + "name": "Block", + "src": "11535:98:1" + } + ], + "id": 814, + "name": "FunctionDefinition", + "src": "11459:174:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "trySub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 815, + "name": "StructuredDocumentation", + "src": "11639:135:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 816, + "name": "ElementaryTypeName", + "src": "11795:7:1" + } + ], + "id": 817, + "name": "VariableDeclaration", + "src": "11795:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 818, + "name": "ElementaryTypeName", + "src": "11806:7:1" + } + ], + "id": 819, + "name": "VariableDeclaration", + "src": "11806:9:1" + } + ], + "id": 820, + "name": "ParameterList", + "src": "11794:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 821, + "name": "ElementaryTypeName", + "src": "11840:4:1" + } + ], + "id": 822, + "name": "VariableDeclaration", + "src": "11840:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 823, + "name": "ElementaryTypeName", + "src": "11846:7:1" + } + ], + "id": 824, + "name": "VariableDeclaration", + "src": "11846:7:1" + } + ], + "id": 825, + "name": "ParameterList", + "src": "11839:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 826, + "name": "Identifier", + "src": "11869:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 827, + "name": "Identifier", + "src": "11873:1:1" + } + ], + "id": 828, + "name": "BinaryOperation", + "src": "11869:5:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 829, + "name": "Literal", + "src": "11884:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 830, + "name": "Literal", + "src": "11891:1:1" + } + ], + "id": 831, + "name": "TupleExpression", + "src": "11883:10:1" + } + ], + "id": 832, + "name": "Return", + "src": "11876:17:1" + } + ], + "id": 833, + "name": "IfStatement", + "src": "11865:28:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 834, + "name": "Literal", + "src": "11911:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 835, + "name": "Identifier", + "src": "11917:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 836, + "name": "Identifier", + "src": "11921:1:1" + } + ], + "id": 837, + "name": "BinaryOperation", + "src": "11917:5:1" + } + ], + "id": 838, + "name": "TupleExpression", + "src": "11910:13:1" + } + ], + "id": 839, + "name": "Return", + "src": "11903:20:1" + } + ], + "id": 840, + "name": "Block", + "src": "11855:75:1" + } + ], + "id": 841, + "name": "FunctionDefinition", + "src": "11779:151:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 842, + "name": "StructuredDocumentation", + "src": "11936:137:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 843, + "name": "ElementaryTypeName", + "src": "12094:7:1" + } + ], + "id": 844, + "name": "VariableDeclaration", + "src": "12094:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 845, + "name": "ElementaryTypeName", + "src": "12105:7:1" + } + ], + "id": 846, + "name": "VariableDeclaration", + "src": "12105:9:1" + } + ], + "id": 847, + "name": "ParameterList", + "src": "12093:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 848, + "name": "ElementaryTypeName", + "src": "12139:4:1" + } + ], + "id": 849, + "name": "VariableDeclaration", + "src": "12139:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 850, + "name": "ElementaryTypeName", + "src": "12145:7:1" + } + ], + "id": 851, + "name": "VariableDeclaration", + "src": "12145:7:1" + } + ], + "id": 852, + "name": "ParameterList", + "src": "12138:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 853, + "name": "Identifier", + "src": "12386:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 854, + "name": "Literal", + "src": "12391:1:1" + } + ], + "id": 855, + "name": "BinaryOperation", + "src": "12386:6:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 856, + "name": "Literal", + "src": "12402:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 857, + "name": "Literal", + "src": "12408:1:1" + } + ], + "id": 858, + "name": "TupleExpression", + "src": "12401:9:1" + } + ], + "id": 859, + "name": "Return", + "src": "12394:16:1" + } + ], + "id": 860, + "name": "IfStatement", + "src": "12382:28:1" + }, + { + "attributes": { + "assignments": [ + 862 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 881, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 861, + "name": "ElementaryTypeName", + "src": "12420:7:1" + } + ], + "id": 862, + "name": "VariableDeclaration", + "src": "12420:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 863, + "name": "Identifier", + "src": "12432:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 864, + "name": "Identifier", + "src": "12436:1:1" + } + ], + "id": 865, + "name": "BinaryOperation", + "src": "12432:5:1" + } + ], + "id": 866, + "name": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 867, + "name": "Identifier", + "src": "12451:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 868, + "name": "Identifier", + "src": "12455:1:1" + } + ], + "id": 869, + "name": "BinaryOperation", + "src": "12451:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 870, + "name": "Identifier", + "src": "12460:1:1" + } + ], + "id": 871, + "name": "BinaryOperation", + "src": "12451:10:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 872, + "name": "Literal", + "src": "12471:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 873, + "name": "Literal", + "src": "12478:1:1" + } + ], + "id": 874, + "name": "TupleExpression", + "src": "12470:10:1" + } + ], + "id": 875, + "name": "Return", + "src": "12463:17:1" + } + ], + "id": 876, + "name": "IfStatement", + "src": "12447:33:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 877, + "name": "Literal", + "src": "12498:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 878, + "name": "Identifier", + "src": "12504:1:1" + } + ], + "id": 879, + "name": "TupleExpression", + "src": "12497:9:1" + } + ], + "id": 880, + "name": "Return", + "src": "12490:16:1" + } + ], + "id": 881, + "name": "Block", + "src": "12154:359:1" + } + ], + "id": 882, + "name": "FunctionDefinition", + "src": "12078:435:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryDiv", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 883, + "name": "StructuredDocumentation", + "src": "12519:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 884, + "name": "ElementaryTypeName", + "src": "12678:7:1" + } + ], + "id": 885, + "name": "VariableDeclaration", + "src": "12678:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 886, + "name": "ElementaryTypeName", + "src": "12689:7:1" + } + ], + "id": 887, + "name": "VariableDeclaration", + "src": "12689:9:1" + } + ], + "id": 888, + "name": "ParameterList", + "src": "12677:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 889, + "name": "ElementaryTypeName", + "src": "12723:4:1" + } + ], + "id": 890, + "name": "VariableDeclaration", + "src": "12723:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 891, + "name": "ElementaryTypeName", + "src": "12729:7:1" + } + ], + "id": 892, + "name": "VariableDeclaration", + "src": "12729:7:1" + } + ], + "id": 893, + "name": "ParameterList", + "src": "12722:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 894, + "name": "Identifier", + "src": "12752:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 895, + "name": "Literal", + "src": "12757:1:1" + } + ], + "id": 896, + "name": "BinaryOperation", + "src": "12752:6:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 897, + "name": "Literal", + "src": "12768:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 898, + "name": "Literal", + "src": "12775:1:1" + } + ], + "id": 899, + "name": "TupleExpression", + "src": "12767:10:1" + } + ], + "id": 900, + "name": "Return", + "src": "12760:17:1" + } + ], + "id": 901, + "name": "IfStatement", + "src": "12748:29:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 902, + "name": "Literal", + "src": "12795:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 885, + "type": "uint256", + "value": "a" + }, + "id": 903, + "name": "Identifier", + "src": "12801:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 904, + "name": "Identifier", + "src": "12805:1:1" + } + ], + "id": 905, + "name": "BinaryOperation", + "src": "12801:5:1" + } + ], + "id": 906, + "name": "TupleExpression", + "src": "12794:13:1" + } + ], + "id": 907, + "name": "Return", + "src": "12787:20:1" + } + ], + "id": 908, + "name": "Block", + "src": "12738:76:1" + } + ], + "id": 909, + "name": "FunctionDefinition", + "src": "12662:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 910, + "name": "StructuredDocumentation", + "src": "12820:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 911, + "name": "ElementaryTypeName", + "src": "12989:7:1" + } + ], + "id": 912, + "name": "VariableDeclaration", + "src": "12989:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 913, + "name": "ElementaryTypeName", + "src": "13000:7:1" + } + ], + "id": 914, + "name": "VariableDeclaration", + "src": "13000:9:1" + } + ], + "id": 915, + "name": "ParameterList", + "src": "12988:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 916, + "name": "ElementaryTypeName", + "src": "13034:4:1" + } + ], + "id": 917, + "name": "VariableDeclaration", + "src": "13034:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 918, + "name": "ElementaryTypeName", + "src": "13040:7:1" + } + ], + "id": 919, + "name": "VariableDeclaration", + "src": "13040:7:1" + } + ], + "id": 920, + "name": "ParameterList", + "src": "13033:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 921, + "name": "Identifier", + "src": "13063:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 922, + "name": "Literal", + "src": "13068:1:1" + } + ], + "id": 923, + "name": "BinaryOperation", + "src": "13063:6:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 924, + "name": "Literal", + "src": "13079:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 925, + "name": "Literal", + "src": "13086:1:1" + } + ], + "id": 926, + "name": "TupleExpression", + "src": "13078:10:1" + } + ], + "id": 927, + "name": "Return", + "src": "13071:17:1" + } + ], + "id": 928, + "name": "IfStatement", + "src": "13059:29:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 929, + "name": "Literal", + "src": "13106:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 912, + "type": "uint256", + "value": "a" + }, + "id": 930, + "name": "Identifier", + "src": "13112:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 931, + "name": "Identifier", + "src": "13116:1:1" + } + ], + "id": 932, + "name": "BinaryOperation", + "src": "13112:5:1" + } + ], + "id": 933, + "name": "TupleExpression", + "src": "13105:13:1" + } + ], + "id": 934, + "name": "Return", + "src": "13098:20:1" + } + ], + "id": 935, + "name": "Block", + "src": "13049:76:1" + } + ], + "id": 936, + "name": "FunctionDefinition", + "src": "12973:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 937, + "name": "StructuredDocumentation", + "src": "13131:224:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 938, + "name": "ElementaryTypeName", + "src": "13373:7:1" + } + ], + "id": 939, + "name": "VariableDeclaration", + "src": "13373:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 940, + "name": "ElementaryTypeName", + "src": "13384:7:1" + } + ], + "id": 941, + "name": "VariableDeclaration", + "src": "13384:9:1" + } + ], + "id": 942, + "name": "ParameterList", + "src": "13372:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 943, + "name": "ElementaryTypeName", + "src": "13418:7:1" + } + ], + "id": 944, + "name": "VariableDeclaration", + "src": "13418:7:1" + } + ], + "id": 945, + "name": "ParameterList", + "src": "13417:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 947 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 961, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 946, + "name": "ElementaryTypeName", + "src": "13437:7:1" + } + ], + "id": 947, + "name": "VariableDeclaration", + "src": "13437:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 948, + "name": "Identifier", + "src": "13449:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 941, + "type": "uint256", + "value": "b" + }, + "id": 949, + "name": "Identifier", + "src": "13453:1:1" + } + ], + "id": 950, + "name": "BinaryOperation", + "src": "13449:5:1" + } + ], + "id": 951, + "name": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 952, + "name": "Identifier", + "src": "13464:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 953, + "name": "Identifier", + "src": "13472:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 954, + "name": "Identifier", + "src": "13477:1:1" + } + ], + "id": 955, + "name": "BinaryOperation", + "src": "13472:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: addition overflow\"", + "value": "SafeMath: addition overflow" + }, + "id": 956, + "name": "Literal", + "src": "13480:29:1" + } + ], + "id": 957, + "name": "FunctionCall", + "src": "13464:46:1" + } + ], + "id": 958, + "name": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "attributes": { + "functionReturnParameters": 945 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 959, + "name": "Identifier", + "src": "13527:1:1" + } + ], + "id": 960, + "name": "Return", + "src": "13520:8:1" + } + ], + "id": 961, + "name": "Block", + "src": "13427:108:1" + } + ], + "id": 962, + "name": "FunctionDefinition", + "src": "13360:175:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 963, + "name": "StructuredDocumentation", + "src": "13541:260:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 964, + "name": "ElementaryTypeName", + "src": "13819:7:1" + } + ], + "id": 965, + "name": "VariableDeclaration", + "src": "13819:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 966, + "name": "ElementaryTypeName", + "src": "13830:7:1" + } + ], + "id": 967, + "name": "VariableDeclaration", + "src": "13830:9:1" + } + ], + "id": 968, + "name": "ParameterList", + "src": "13818:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 969, + "name": "ElementaryTypeName", + "src": "13864:7:1" + } + ], + "id": 970, + "name": "VariableDeclaration", + "src": "13864:7:1" + } + ], + "id": 971, + "name": "ParameterList", + "src": "13863:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 972, + "name": "Identifier", + "src": "13883:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 973, + "name": "Identifier", + "src": "13891:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 974, + "name": "Identifier", + "src": "13896:1:1" + } + ], + "id": 975, + "name": "BinaryOperation", + "src": "13891:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: subtraction overflow\"", + "value": "SafeMath: subtraction overflow" + }, + "id": 976, + "name": "Literal", + "src": "13899:32:1" + } + ], + "id": 977, + "name": "FunctionCall", + "src": "13883:49:1" + } + ], + "id": 978, + "name": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "attributes": { + "functionReturnParameters": 971 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 979, + "name": "Identifier", + "src": "13949:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 980, + "name": "Identifier", + "src": "13953:1:1" + } + ], + "id": 981, + "name": "BinaryOperation", + "src": "13949:5:1" + } + ], + "id": 982, + "name": "Return", + "src": "13942:12:1" + } + ], + "id": 983, + "name": "Block", + "src": "13873:88:1" + } + ], + "id": 984, + "name": "FunctionDefinition", + "src": "13806:155:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 985, + "name": "StructuredDocumentation", + "src": "13967:236:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 986, + "name": "ElementaryTypeName", + "src": "14221:7:1" + } + ], + "id": 987, + "name": "VariableDeclaration", + "src": "14221:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 988, + "name": "ElementaryTypeName", + "src": "14232:7:1" + } + ], + "id": 989, + "name": "VariableDeclaration", + "src": "14232:9:1" + } + ], + "id": 990, + "name": "ParameterList", + "src": "14220:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 991, + "name": "ElementaryTypeName", + "src": "14266:7:1" + } + ], + "id": 992, + "name": "VariableDeclaration", + "src": "14266:7:1" + } + ], + "id": 993, + "name": "ParameterList", + "src": "14265:9:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 994, + "name": "Identifier", + "src": "14289:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 995, + "name": "Literal", + "src": "14294:1:1" + } + ], + "id": 996, + "name": "BinaryOperation", + "src": "14289:6:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 997, + "name": "Literal", + "src": "14304:1:1" + } + ], + "id": 998, + "name": "Return", + "src": "14297:8:1" + } + ], + "id": 999, + "name": "IfStatement", + "src": "14285:20:1" + }, + { + "attributes": { + "assignments": [ + 1001 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 1017, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1000, + "name": "ElementaryTypeName", + "src": "14315:7:1" + } + ], + "id": 1001, + "name": "VariableDeclaration", + "src": "14315:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1002, + "name": "Identifier", + "src": "14327:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1003, + "name": "Identifier", + "src": "14331:1:1" + } + ], + "id": 1004, + "name": "BinaryOperation", + "src": "14327:5:1" + } + ], + "id": 1005, + "name": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1006, + "name": "Identifier", + "src": "14342:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1007, + "name": "Identifier", + "src": "14350:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1008, + "name": "Identifier", + "src": "14354:1:1" + } + ], + "id": 1009, + "name": "BinaryOperation", + "src": "14350:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1010, + "name": "Identifier", + "src": "14359:1:1" + } + ], + "id": 1011, + "name": "BinaryOperation", + "src": "14350:10:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: multiplication overflow\"", + "value": "SafeMath: multiplication overflow" + }, + "id": 1012, + "name": "Literal", + "src": "14362:35:1" + } + ], + "id": 1013, + "name": "FunctionCall", + "src": "14342:56:1" + } + ], + "id": 1014, + "name": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1015, + "name": "Identifier", + "src": "14415:1:1" + } + ], + "id": 1016, + "name": "Return", + "src": "14408:8:1" + } + ], + "id": 1017, + "name": "Block", + "src": "14275:148:1" + } + ], + "id": 1018, + "name": "FunctionDefinition", + "src": "14208:215:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1019, + "name": "StructuredDocumentation", + "src": "14429:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1020, + "name": "ElementaryTypeName", + "src": "14900:7:1" + } + ], + "id": 1021, + "name": "VariableDeclaration", + "src": "14900:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1022, + "name": "ElementaryTypeName", + "src": "14911:7:1" + } + ], + "id": 1023, + "name": "VariableDeclaration", + "src": "14911:9:1" + } + ], + "id": 1024, + "name": "ParameterList", + "src": "14899:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1025, + "name": "ElementaryTypeName", + "src": "14945:7:1" + } + ], + "id": 1026, + "name": "VariableDeclaration", + "src": "14945:7:1" + } + ], + "id": 1027, + "name": "ParameterList", + "src": "14944:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1028, + "name": "Identifier", + "src": "14964:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1029, + "name": "Identifier", + "src": "14972:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1030, + "name": "Literal", + "src": "14976:1:1" + } + ], + "id": 1031, + "name": "BinaryOperation", + "src": "14972:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206469766973696f6e206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: division by zero\"", + "value": "SafeMath: division by zero" + }, + "id": 1032, + "name": "Literal", + "src": "14979:28:1" + } + ], + "id": 1033, + "name": "FunctionCall", + "src": "14964:44:1" + } + ], + "id": 1034, + "name": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "attributes": { + "functionReturnParameters": 1027 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1021, + "type": "uint256", + "value": "a" + }, + "id": 1035, + "name": "Identifier", + "src": "15025:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1036, + "name": "Identifier", + "src": "15029:1:1" + } + ], + "id": 1037, + "name": "BinaryOperation", + "src": "15025:5:1" + } + ], + "id": 1038, + "name": "Return", + "src": "15018:12:1" + } + ], + "id": 1039, + "name": "Block", + "src": "14954:83:1" + } + ], + "id": 1040, + "name": "FunctionDefinition", + "src": "14887:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1041, + "name": "StructuredDocumentation", + "src": "15043:442:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1042, + "name": "ElementaryTypeName", + "src": "15503:7:1" + } + ], + "id": 1043, + "name": "VariableDeclaration", + "src": "15503:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1044, + "name": "ElementaryTypeName", + "src": "15514:7:1" + } + ], + "id": 1045, + "name": "VariableDeclaration", + "src": "15514:9:1" + } + ], + "id": 1046, + "name": "ParameterList", + "src": "15502:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1047, + "name": "ElementaryTypeName", + "src": "15548:7:1" + } + ], + "id": 1048, + "name": "VariableDeclaration", + "src": "15548:7:1" + } + ], + "id": 1049, + "name": "ParameterList", + "src": "15547:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1050, + "name": "Identifier", + "src": "15567:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1051, + "name": "Identifier", + "src": "15575:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1052, + "name": "Literal", + "src": "15579:1:1" + } + ], + "id": 1053, + "name": "BinaryOperation", + "src": "15575:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: modulo by zero\"", + "value": "SafeMath: modulo by zero" + }, + "id": 1054, + "name": "Literal", + "src": "15582:26:1" + } + ], + "id": 1055, + "name": "FunctionCall", + "src": "15567:42:1" + } + ], + "id": 1056, + "name": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "attributes": { + "functionReturnParameters": 1049 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1043, + "type": "uint256", + "value": "a" + }, + "id": 1057, + "name": "Identifier", + "src": "15626:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1058, + "name": "Identifier", + "src": "15630:1:1" + } + ], + "id": 1059, + "name": "BinaryOperation", + "src": "15626:5:1" + } + ], + "id": 1060, + "name": "Return", + "src": "15619:12:1" + } + ], + "id": 1061, + "name": "Block", + "src": "15557:81:1" + } + ], + "id": 1062, + "name": "FunctionDefinition", + "src": "15490:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1063, + "name": "StructuredDocumentation", + "src": "15644:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1064, + "name": "ElementaryTypeName", + "src": "16115:7:1" + } + ], + "id": 1065, + "name": "VariableDeclaration", + "src": "16115:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1066, + "name": "ElementaryTypeName", + "src": "16126:7:1" + } + ], + "id": 1067, + "name": "VariableDeclaration", + "src": "16126:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1086, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1068, + "name": "ElementaryTypeName", + "src": "16137:6:1" + } + ], + "id": 1069, + "name": "VariableDeclaration", + "src": "16137:26:1" + } + ], + "id": 1070, + "name": "ParameterList", + "src": "16114:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1071, + "name": "ElementaryTypeName", + "src": "16188:7:1" + } + ], + "id": 1072, + "name": "VariableDeclaration", + "src": "16188:7:1" + } + ], + "id": 1073, + "name": "ParameterList", + "src": "16187:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1074, + "name": "Identifier", + "src": "16207:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1075, + "name": "Identifier", + "src": "16215:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1076, + "name": "Identifier", + "src": "16220:1:1" + } + ], + "id": 1077, + "name": "BinaryOperation", + "src": "16215:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1069, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1078, + "name": "Identifier", + "src": "16223:12:1" + } + ], + "id": 1079, + "name": "FunctionCall", + "src": "16207:29:1" + } + ], + "id": 1080, + "name": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "attributes": { + "functionReturnParameters": 1073 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1081, + "name": "Identifier", + "src": "16253:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1082, + "name": "Identifier", + "src": "16257:1:1" + } + ], + "id": 1083, + "name": "BinaryOperation", + "src": "16253:5:1" + } + ], + "id": 1084, + "name": "Return", + "src": "16246:12:1" + } + ], + "id": 1085, + "name": "Block", + "src": "16197:68:1" + } + ], + "id": 1086, + "name": "FunctionDefinition", + "src": "16102:163:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1087, + "name": "StructuredDocumentation", + "src": "16271:646:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1088, + "name": "ElementaryTypeName", + "src": "16935:7:1" + } + ], + "id": 1089, + "name": "VariableDeclaration", + "src": "16935:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1090, + "name": "ElementaryTypeName", + "src": "16946:7:1" + } + ], + "id": 1091, + "name": "VariableDeclaration", + "src": "16946:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1110, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1092, + "name": "ElementaryTypeName", + "src": "16957:6:1" + } + ], + "id": 1093, + "name": "VariableDeclaration", + "src": "16957:26:1" + } + ], + "id": 1094, + "name": "ParameterList", + "src": "16934:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1095, + "name": "ElementaryTypeName", + "src": "17008:7:1" + } + ], + "id": 1096, + "name": "VariableDeclaration", + "src": "17008:7:1" + } + ], + "id": 1097, + "name": "ParameterList", + "src": "17007:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1098, + "name": "Identifier", + "src": "17027:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1099, + "name": "Identifier", + "src": "17035:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1100, + "name": "Literal", + "src": "17039:1:1" + } + ], + "id": 1101, + "name": "BinaryOperation", + "src": "17035:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1093, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1102, + "name": "Identifier", + "src": "17042:12:1" + } + ], + "id": 1103, + "name": "FunctionCall", + "src": "17027:28:1" + } + ], + "id": 1104, + "name": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1097 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1089, + "type": "uint256", + "value": "a" + }, + "id": 1105, + "name": "Identifier", + "src": "17072:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1106, + "name": "Identifier", + "src": "17076:1:1" + } + ], + "id": 1107, + "name": "BinaryOperation", + "src": "17072:5:1" + } + ], + "id": 1108, + "name": "Return", + "src": "17065:12:1" + } + ], + "id": 1109, + "name": "Block", + "src": "17017:67:1" + } + ], + "id": 1110, + "name": "FunctionDefinition", + "src": "16922:162:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1111, + "name": "StructuredDocumentation", + "src": "17090:635:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1112, + "name": "ElementaryTypeName", + "src": "17743:7:1" + } + ], + "id": 1113, + "name": "VariableDeclaration", + "src": "17743:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1114, + "name": "ElementaryTypeName", + "src": "17754:7:1" + } + ], + "id": 1115, + "name": "VariableDeclaration", + "src": "17754:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1134, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1116, + "name": "ElementaryTypeName", + "src": "17765:6:1" + } + ], + "id": 1117, + "name": "VariableDeclaration", + "src": "17765:26:1" + } + ], + "id": 1118, + "name": "ParameterList", + "src": "17742:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1119, + "name": "ElementaryTypeName", + "src": "17816:7:1" + } + ], + "id": 1120, + "name": "VariableDeclaration", + "src": "17816:7:1" + } + ], + "id": 1121, + "name": "ParameterList", + "src": "17815:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1122, + "name": "Identifier", + "src": "17835:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1123, + "name": "Identifier", + "src": "17843:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1124, + "name": "Literal", + "src": "17847:1:1" + } + ], + "id": 1125, + "name": "BinaryOperation", + "src": "17843:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1117, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1126, + "name": "Identifier", + "src": "17850:12:1" + } + ], + "id": 1127, + "name": "FunctionCall", + "src": "17835:28:1" + } + ], + "id": 1128, + "name": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1121 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "uint256", + "value": "a" + }, + "id": 1129, + "name": "Identifier", + "src": "17880:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1130, + "name": "Identifier", + "src": "17884:1:1" + } + ], + "id": 1131, + "name": "BinaryOperation", + "src": "17880:5:1" + } + ], + "id": 1132, + "name": "Return", + "src": "17873:12:1" + } + ], + "id": 1133, + "name": "Block", + "src": "17825:67:1" + } + ], + "id": 1134, + "name": "FunctionDefinition", + "src": "17730:162:1" + } + ], + "id": 1135, + "name": "ContractDefinition", + "src": "11300:6594:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 1136, + "name": "PragmaDirective", + "src": "17947:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Collection of functions related to the address type" + }, + "id": 1137, + "name": "StructuredDocumentation", + "src": "17980:67:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isContract", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1138, + "name": "StructuredDocumentation", + "src": "18070:565:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "account", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1139, + "name": "ElementaryTypeName", + "src": "18660:7:1" + } + ], + "id": 1140, + "name": "VariableDeclaration", + "src": "18660:15:1" + } + ], + "id": 1141, + "name": "ParameterList", + "src": "18659:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1142, + "name": "ElementaryTypeName", + "src": "18700:4:1" + } + ], + "id": 1143, + "name": "VariableDeclaration", + "src": "18700:4:1" + } + ], + "id": 1144, + "name": "ParameterList", + "src": "18699:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1146 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "size", + "scope": 1153, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1145, + "name": "ElementaryTypeName", + "src": "18903:7:1" + } + ], + "id": 1146, + "name": "VariableDeclaration", + "src": "18903:12:1" + } + ], + "id": 1147, + "name": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "operations": "{ size := extcodesize(account) }" + }, + "children": [], + "id": 1148, + "name": "InlineAssembly", + "src": "18981:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1144 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1146, + "type": "uint256", + "value": "size" + }, + "id": 1149, + "name": "Identifier", + "src": "19038:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1150, + "name": "Literal", + "src": "19045:1:1" + } + ], + "id": 1151, + "name": "BinaryOperation", + "src": "19038:8:1" + } + ], + "id": 1152, + "name": "Return", + "src": "19031:15:1" + } + ], + "id": 1153, + "name": "Block", + "src": "18706:347:1" + } + ], + "id": 1154, + "name": "FunctionDefinition", + "src": "18640:413:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sendValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1155, + "name": "StructuredDocumentation", + "src": "19059:906:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "recipient", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 1156, + "name": "ElementaryTypeName", + "src": "19989:15:1" + } + ], + "id": 1157, + "name": "VariableDeclaration", + "src": "19989:25:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "amount", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1158, + "name": "ElementaryTypeName", + "src": "20016:7:1" + } + ], + "id": 1159, + "name": "VariableDeclaration", + "src": "20016:14:1" + } + ], + "id": 1160, + "name": "ParameterList", + "src": "19988:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1161, + "name": "ParameterList", + "src": "20041:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1162, + "name": "Identifier", + "src": "20051:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1163, + "name": "ElementaryTypeName", + "src": "20059:7:1" + } + ], + "id": 1164, + "name": "ElementaryTypeNameExpression", + "src": "20059:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1165, + "name": "Identifier", + "src": "20067:4:1" + } + ], + "id": 1166, + "name": "FunctionCall", + "src": "20059:13:1" + } + ], + "id": 1167, + "name": "MemberAccess", + "src": "20059:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1168, + "name": "Identifier", + "src": "20084:6:1" + } + ], + "id": 1169, + "name": "BinaryOperation", + "src": "20059:31:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance\"", + "value": "Address: insufficient balance" + }, + "id": 1170, + "name": "Literal", + "src": "20092:31:1" + } + ], + "id": 1171, + "name": "FunctionCall", + "src": "20051:73:1" + } + ], + "id": 1172, + "name": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "attributes": { + "assignments": [ + 1174, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1187, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1173, + "name": "ElementaryTypeName", + "src": "20213:4:1" + } + ], + "id": 1174, + "name": "VariableDeclaration", + "src": "20213:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1157, + "type": "address payable", + "value": "recipient" + }, + "id": 1175, + "name": "Identifier", + "src": "20231:9:1" + } + ], + "id": 1176, + "name": "MemberAccess", + "src": "20231:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1177, + "name": "Identifier", + "src": "20254:6:1" + } + ], + "id": 1178, + "name": "FunctionCallOptions", + "src": "20231:31:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 1179, + "name": "Literal", + "src": "20263:2:1" + } + ], + "id": 1180, + "name": "FunctionCall", + "src": "20231:35:1" + } + ], + "id": 1181, + "name": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1182, + "name": "Identifier", + "src": "20276:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1174, + "type": "bool", + "value": "success" + }, + "id": 1183, + "name": "Identifier", + "src": "20284:7:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: unable to send value, recipient may have reverted\"", + "value": "Address: unable to send value, recipient may have reverted" + }, + "id": 1184, + "name": "Literal", + "src": "20293:60:1" + } + ], + "id": 1185, + "name": "FunctionCall", + "src": "20276:78:1" + } + ], + "id": 1186, + "name": "ExpressionStatement", + "src": "20276:78:1" + } + ], + "id": 1187, + "name": "Block", + "src": "20041:320:1" + } + ], + "id": 1188, + "name": "FunctionDefinition", + "src": "19970:391:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1189, + "name": "StructuredDocumentation", + "src": "20367:730:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1205, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1190, + "name": "ElementaryTypeName", + "src": "21124:7:1" + } + ], + "id": 1191, + "name": "VariableDeclaration", + "src": "21124:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1192, + "name": "ElementaryTypeName", + "src": "21140:5:1" + } + ], + "id": 1193, + "name": "VariableDeclaration", + "src": "21140:17:1" + } + ], + "id": 1194, + "name": "ParameterList", + "src": "21123:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1195, + "name": "ElementaryTypeName", + "src": "21177:5:1" + } + ], + "id": 1196, + "name": "VariableDeclaration", + "src": "21177:12:1" + } + ], + "id": 1197, + "name": "ParameterList", + "src": "21176:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1197 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionCall" + }, + "id": 1198, + "name": "Identifier", + "src": "21206:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1191, + "type": "address", + "value": "target" + }, + "id": 1199, + "name": "Identifier", + "src": "21219:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1193, + "type": "bytes memory", + "value": "data" + }, + "id": 1200, + "name": "Identifier", + "src": "21227:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call failed\"", + "value": "Address: low-level call failed" + }, + "id": 1201, + "name": "Literal", + "src": "21233:32:1" + } + ], + "id": 1202, + "name": "FunctionCall", + "src": "21206:60:1" + } + ], + "id": 1203, + "name": "Return", + "src": "21199:67:1" + } + ], + "id": 1204, + "name": "Block", + "src": "21191:82:1" + } + ], + "id": 1205, + "name": "FunctionDefinition", + "src": "21102:171:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1206, + "name": "StructuredDocumentation", + "src": "21279:211:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1225, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1207, + "name": "ElementaryTypeName", + "src": "21517:7:1" + } + ], + "id": 1208, + "name": "VariableDeclaration", + "src": "21517:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1209, + "name": "ElementaryTypeName", + "src": "21533:5:1" + } + ], + "id": 1210, + "name": "VariableDeclaration", + "src": "21533:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1211, + "name": "ElementaryTypeName", + "src": "21552:6:1" + } + ], + "id": 1212, + "name": "VariableDeclaration", + "src": "21552:26:1" + } + ], + "id": 1213, + "name": "ParameterList", + "src": "21516:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1214, + "name": "ElementaryTypeName", + "src": "21598:5:1" + } + ], + "id": 1215, + "name": "VariableDeclaration", + "src": "21598:12:1" + } + ], + "id": 1216, + "name": "ParameterList", + "src": "21597:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1216 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1217, + "name": "Identifier", + "src": "21629:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1208, + "type": "address", + "value": "target" + }, + "id": 1218, + "name": "Identifier", + "src": "21651:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1210, + "type": "bytes memory", + "value": "data" + }, + "id": 1219, + "name": "Identifier", + "src": "21659:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1220, + "name": "Literal", + "src": "21665:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1212, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1221, + "name": "Identifier", + "src": "21668:12:1" + } + ], + "id": 1222, + "name": "FunctionCall", + "src": "21629:52:1" + } + ], + "id": 1223, + "name": "Return", + "src": "21622:59:1" + } + ], + "id": 1224, + "name": "Block", + "src": "21612:76:1" + } + ], + "id": 1225, + "name": "FunctionDefinition", + "src": "21495:193:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1226, + "name": "StructuredDocumentation", + "src": "21694:351:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1227, + "name": "ElementaryTypeName", + "src": "22081:7:1" + } + ], + "id": 1228, + "name": "VariableDeclaration", + "src": "22081:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1229, + "name": "ElementaryTypeName", + "src": "22097:5:1" + } + ], + "id": 1230, + "name": "VariableDeclaration", + "src": "22097:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1231, + "name": "ElementaryTypeName", + "src": "22116:7:1" + } + ], + "id": 1232, + "name": "VariableDeclaration", + "src": "22116:13:1" + } + ], + "id": 1233, + "name": "ParameterList", + "src": "22080:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1234, + "name": "ElementaryTypeName", + "src": "22149:5:1" + } + ], + "id": 1235, + "name": "VariableDeclaration", + "src": "22149:12:1" + } + ], + "id": 1236, + "name": "ParameterList", + "src": "22148:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1236 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1237, + "name": "Identifier", + "src": "22180:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1228, + "type": "address", + "value": "target" + }, + "id": 1238, + "name": "Identifier", + "src": "22202:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1230, + "type": "bytes memory", + "value": "data" + }, + "id": 1239, + "name": "Identifier", + "src": "22210:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1232, + "type": "uint256", + "value": "value" + }, + "id": 1240, + "name": "Identifier", + "src": "22216:5:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call with value failed\"", + "value": "Address: low-level call with value failed" + }, + "id": 1241, + "name": "Literal", + "src": "22223:43:1" + } + ], + "id": 1242, + "name": "FunctionCall", + "src": "22180:87:1" + } + ], + "id": 1243, + "name": "Return", + "src": "22173:94:1" + } + ], + "id": 1244, + "name": "Block", + "src": "22163:111:1" + } + ], + "id": 1245, + "name": "FunctionDefinition", + "src": "22050:224:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1246, + "name": "StructuredDocumentation", + "src": "22280:237:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1247, + "name": "ElementaryTypeName", + "src": "22553:7:1" + } + ], + "id": 1248, + "name": "VariableDeclaration", + "src": "22553:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1249, + "name": "ElementaryTypeName", + "src": "22569:5:1" + } + ], + "id": 1250, + "name": "VariableDeclaration", + "src": "22569:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1251, + "name": "ElementaryTypeName", + "src": "22588:7:1" + } + ], + "id": 1252, + "name": "VariableDeclaration", + "src": "22588:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1253, + "name": "ElementaryTypeName", + "src": "22603:6:1" + } + ], + "id": 1254, + "name": "VariableDeclaration", + "src": "22603:26:1" + } + ], + "id": 1255, + "name": "ParameterList", + "src": "22552:78:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1256, + "name": "ElementaryTypeName", + "src": "22649:5:1" + } + ], + "id": 1257, + "name": "VariableDeclaration", + "src": "22649:12:1" + } + ], + "id": 1258, + "name": "ParameterList", + "src": "22648:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1259, + "name": "Identifier", + "src": "22673:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1260, + "name": "ElementaryTypeName", + "src": "22681:7:1" + } + ], + "id": 1261, + "name": "ElementaryTypeNameExpression", + "src": "22681:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1262, + "name": "Identifier", + "src": "22689:4:1" + } + ], + "id": 1263, + "name": "FunctionCall", + "src": "22681:13:1" + } + ], + "id": 1264, + "name": "MemberAccess", + "src": "22681:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1265, + "name": "Identifier", + "src": "22706:5:1" + } + ], + "id": 1266, + "name": "BinaryOperation", + "src": "22681:30:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance for call\"", + "value": "Address: insufficient balance for call" + }, + "id": 1267, + "name": "Literal", + "src": "22713:40:1" + } + ], + "id": 1268, + "name": "FunctionCall", + "src": "22673:81:1" + } + ], + "id": 1269, + "name": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1270, + "name": "Identifier", + "src": "22764:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1271, + "name": "Identifier", + "src": "22772:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1272, + "name": "Identifier", + "src": "22783:6:1" + } + ], + "id": 1273, + "name": "FunctionCall", + "src": "22772:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: call to non-contract\"", + "value": "Address: call to non-contract" + }, + "id": 1274, + "name": "Literal", + "src": "22792:31:1" + } + ], + "id": 1275, + "name": "FunctionCall", + "src": "22764:60:1" + } + ], + "id": 1276, + "name": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "attributes": { + "assignments": [ + 1278, + 1280 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1294, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1277, + "name": "ElementaryTypeName", + "src": "22895:4:1" + } + ], + "id": 1278, + "name": "VariableDeclaration", + "src": "22895:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1279, + "name": "ElementaryTypeName", + "src": "22909:5:1" + } + ], + "id": 1280, + "name": "VariableDeclaration", + "src": "22909:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1281, + "name": "Identifier", + "src": "22936:6:1" + } + ], + "id": 1282, + "name": "MemberAccess", + "src": "22936:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1283, + "name": "Identifier", + "src": "22956:5:1" + } + ], + "id": 1284, + "name": "FunctionCallOptions", + "src": "22936:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1250, + "type": "bytes memory", + "value": "data" + }, + "id": 1285, + "name": "Identifier", + "src": "22964:4:1" + } + ], + "id": 1286, + "name": "FunctionCall", + "src": "22936:33:1" + } + ], + "id": 1287, + "name": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "attributes": { + "functionReturnParameters": 1258 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1288, + "name": "Identifier", + "src": "22986:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1278, + "type": "bool", + "value": "success" + }, + "id": 1289, + "name": "Identifier", + "src": "23004:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1280, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1290, + "name": "Identifier", + "src": "23013:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1254, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1291, + "name": "Identifier", + "src": "23025:12:1" + } + ], + "id": 1292, + "name": "FunctionCall", + "src": "22986:52:1" + } + ], + "id": 1293, + "name": "Return", + "src": "22979:59:1" + } + ], + "id": 1294, + "name": "Block", + "src": "22663:382:1" + } + ], + "id": 1295, + "name": "FunctionDefinition", + "src": "22522:523:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1296, + "name": "StructuredDocumentation", + "src": "23051:166:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1312, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1297, + "name": "ElementaryTypeName", + "src": "23250:7:1" + } + ], + "id": 1298, + "name": "VariableDeclaration", + "src": "23250:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1299, + "name": "ElementaryTypeName", + "src": "23266:5:1" + } + ], + "id": 1300, + "name": "VariableDeclaration", + "src": "23266:17:1" + } + ], + "id": 1301, + "name": "ParameterList", + "src": "23249:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1302, + "name": "ElementaryTypeName", + "src": "23308:5:1" + } + ], + "id": 1303, + "name": "VariableDeclaration", + "src": "23308:12:1" + } + ], + "id": 1304, + "name": "ParameterList", + "src": "23307:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1304 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "type": "function (address,bytes memory,string memory) view returns (bytes memory)", + "value": "functionStaticCall" + }, + "id": 1305, + "name": "Identifier", + "src": "23339:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1298, + "type": "address", + "value": "target" + }, + "id": 1306, + "name": "Identifier", + "src": "23358:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1300, + "type": "bytes memory", + "value": "data" + }, + "id": 1307, + "name": "Identifier", + "src": "23366:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level static call failed\"", + "value": "Address: low-level static call failed" + }, + "id": 1308, + "name": "Literal", + "src": "23372:39:1" + } + ], + "id": 1309, + "name": "FunctionCall", + "src": "23339:73:1" + } + ], + "id": 1310, + "name": "Return", + "src": "23332:80:1" + } + ], + "id": 1311, + "name": "Block", + "src": "23322:97:1" + } + ], + "id": 1312, + "name": "FunctionDefinition", + "src": "23222:197:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1313, + "name": "StructuredDocumentation", + "src": "23425:173:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1347, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1314, + "name": "ElementaryTypeName", + "src": "23631:7:1" + } + ], + "id": 1315, + "name": "VariableDeclaration", + "src": "23631:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1316, + "name": "ElementaryTypeName", + "src": "23647:5:1" + } + ], + "id": 1317, + "name": "VariableDeclaration", + "src": "23647:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1318, + "name": "ElementaryTypeName", + "src": "23666:6:1" + } + ], + "id": 1319, + "name": "VariableDeclaration", + "src": "23666:26:1" + } + ], + "id": 1320, + "name": "ParameterList", + "src": "23630:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1321, + "name": "ElementaryTypeName", + "src": "23717:5:1" + } + ], + "id": 1322, + "name": "VariableDeclaration", + "src": "23717:12:1" + } + ], + "id": 1323, + "name": "ParameterList", + "src": "23716:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1324, + "name": "Identifier", + "src": "23741:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1325, + "name": "Identifier", + "src": "23749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1326, + "name": "Identifier", + "src": "23760:6:1" + } + ], + "id": 1327, + "name": "FunctionCall", + "src": "23749:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: static call to non-contract\"", + "value": "Address: static call to non-contract" + }, + "id": 1328, + "name": "Literal", + "src": "23769:38:1" + } + ], + "id": 1329, + "name": "FunctionCall", + "src": "23741:67:1" + } + ], + "id": 1330, + "name": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "attributes": { + "assignments": [ + 1332, + 1334 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1346, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1331, + "name": "ElementaryTypeName", + "src": "23879:4:1" + } + ], + "id": 1332, + "name": "VariableDeclaration", + "src": "23879:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1346, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1333, + "name": "ElementaryTypeName", + "src": "23893:5:1" + } + ], + "id": 1334, + "name": "VariableDeclaration", + "src": "23893:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "staticcall", + "type": "function (bytes memory) view returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1335, + "name": "Identifier", + "src": "23920:6:1" + } + ], + "id": 1336, + "name": "MemberAccess", + "src": "23920:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1317, + "type": "bytes memory", + "value": "data" + }, + "id": 1337, + "name": "Identifier", + "src": "23938:4:1" + } + ], + "id": 1338, + "name": "FunctionCall", + "src": "23920:23:1" + } + ], + "id": 1339, + "name": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "attributes": { + "functionReturnParameters": 1323 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1340, + "name": "Identifier", + "src": "23960:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1332, + "type": "bool", + "value": "success" + }, + "id": 1341, + "name": "Identifier", + "src": "23978:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1334, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1342, + "name": "Identifier", + "src": "23987:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1319, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1343, + "name": "Identifier", + "src": "23999:12:1" + } + ], + "id": 1344, + "name": "FunctionCall", + "src": "23960:52:1" + } + ], + "id": 1345, + "name": "Return", + "src": "23953:59:1" + } + ], + "id": 1346, + "name": "Block", + "src": "23731:288:1" + } + ], + "id": 1347, + "name": "FunctionDefinition", + "src": "23603:416:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1348, + "name": "StructuredDocumentation", + "src": "24025:168:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1364, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1349, + "name": "ElementaryTypeName", + "src": "24228:7:1" + } + ], + "id": 1350, + "name": "VariableDeclaration", + "src": "24228:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1351, + "name": "ElementaryTypeName", + "src": "24244:5:1" + } + ], + "id": 1352, + "name": "VariableDeclaration", + "src": "24244:17:1" + } + ], + "id": 1353, + "name": "ParameterList", + "src": "24227:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1354, + "name": "ElementaryTypeName", + "src": "24281:5:1" + } + ], + "id": 1355, + "name": "VariableDeclaration", + "src": "24281:12:1" + } + ], + "id": 1356, + "name": "ParameterList", + "src": "24280:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1356 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionDelegateCall" + }, + "id": 1357, + "name": "Identifier", + "src": "24312:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1350, + "type": "address", + "value": "target" + }, + "id": 1358, + "name": "Identifier", + "src": "24333:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1352, + "type": "bytes memory", + "value": "data" + }, + "id": 1359, + "name": "Identifier", + "src": "24341:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level delegate call failed\"", + "value": "Address: low-level delegate call failed" + }, + "id": 1360, + "name": "Literal", + "src": "24347:41:1" + } + ], + "id": 1361, + "name": "FunctionCall", + "src": "24312:77:1" + } + ], + "id": 1362, + "name": "Return", + "src": "24305:84:1" + } + ], + "id": 1363, + "name": "Block", + "src": "24295:101:1" + } + ], + "id": 1364, + "name": "FunctionDefinition", + "src": "24198:198:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1365, + "name": "StructuredDocumentation", + "src": "24402:175:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1399, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1366, + "name": "ElementaryTypeName", + "src": "24612:7:1" + } + ], + "id": 1367, + "name": "VariableDeclaration", + "src": "24612:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1368, + "name": "ElementaryTypeName", + "src": "24628:5:1" + } + ], + "id": 1369, + "name": "VariableDeclaration", + "src": "24628:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1370, + "name": "ElementaryTypeName", + "src": "24647:6:1" + } + ], + "id": 1371, + "name": "VariableDeclaration", + "src": "24647:26:1" + } + ], + "id": 1372, + "name": "ParameterList", + "src": "24611:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1373, + "name": "ElementaryTypeName", + "src": "24693:5:1" + } + ], + "id": 1374, + "name": "VariableDeclaration", + "src": "24693:12:1" + } + ], + "id": 1375, + "name": "ParameterList", + "src": "24692:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1376, + "name": "Identifier", + "src": "24717:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1377, + "name": "Identifier", + "src": "24725:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1378, + "name": "Identifier", + "src": "24736:6:1" + } + ], + "id": 1379, + "name": "FunctionCall", + "src": "24725:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: delegate call to non-contract\"", + "value": "Address: delegate call to non-contract" + }, + "id": 1380, + "name": "Literal", + "src": "24745:40:1" + } + ], + "id": 1381, + "name": "FunctionCall", + "src": "24717:69:1" + } + ], + "id": 1382, + "name": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "attributes": { + "assignments": [ + 1384, + 1386 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1398, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1383, + "name": "ElementaryTypeName", + "src": "24857:4:1" + } + ], + "id": 1384, + "name": "VariableDeclaration", + "src": "24857:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1398, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1385, + "name": "ElementaryTypeName", + "src": "24871:5:1" + } + ], + "id": 1386, + "name": "VariableDeclaration", + "src": "24871:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "delegatecall", + "type": "function (bytes memory) returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1387, + "name": "Identifier", + "src": "24898:6:1" + } + ], + "id": 1388, + "name": "MemberAccess", + "src": "24898:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1369, + "type": "bytes memory", + "value": "data" + }, + "id": 1389, + "name": "Identifier", + "src": "24918:4:1" + } + ], + "id": 1390, + "name": "FunctionCall", + "src": "24898:25:1" + } + ], + "id": 1391, + "name": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "attributes": { + "functionReturnParameters": 1375 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1392, + "name": "Identifier", + "src": "24940:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1384, + "type": "bool", + "value": "success" + }, + "id": 1393, + "name": "Identifier", + "src": "24958:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1386, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1394, + "name": "Identifier", + "src": "24967:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1371, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1395, + "name": "Identifier", + "src": "24979:12:1" + } + ], + "id": 1396, + "name": "FunctionCall", + "src": "24940:52:1" + } + ], + "id": 1397, + "name": "Return", + "src": "24933:59:1" + } + ], + "id": 1398, + "name": "Block", + "src": "24707:292:1" + } + ], + "id": 1399, + "name": "FunctionDefinition", + "src": "24582:417:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_verifyCallResult", + "scope": 1430, + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1429, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1400, + "name": "ElementaryTypeName", + "src": "25032:4:1" + } + ], + "id": 1401, + "name": "VariableDeclaration", + "src": "25032:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1402, + "name": "ElementaryTypeName", + "src": "25046:5:1" + } + ], + "id": 1403, + "name": "VariableDeclaration", + "src": "25046:23:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1404, + "name": "ElementaryTypeName", + "src": "25071:6:1" + } + ], + "id": 1405, + "name": "VariableDeclaration", + "src": "25071:26:1" + } + ], + "id": 1406, + "name": "ParameterList", + "src": "25031:67:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1407, + "name": "ElementaryTypeName", + "src": "25120:5:1" + } + ], + "id": 1408, + "name": "VariableDeclaration", + "src": "25120:12:1" + } + ], + "id": 1409, + "name": "ParameterList", + "src": "25119:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1401, + "type": "bool", + "value": "success" + }, + "id": 1410, + "name": "Identifier", + "src": "25148:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1409 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1411, + "name": "Identifier", + "src": "25178:10:1" + } + ], + "id": 1412, + "name": "Return", + "src": "25171:17:1" + } + ], + "id": 1413, + "name": "Block", + "src": "25157:42:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1414, + "name": "Identifier", + "src": "25289:10:1" + } + ], + "id": 1415, + "name": "MemberAccess", + "src": "25289:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1416, + "name": "Literal", + "src": "25309:1:1" + } + ], + "id": 1417, + "name": "BinaryOperation", + "src": "25289:21:1" + }, + { + "children": [ + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "operations": "{\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n}" + }, + "children": [], + "id": 1418, + "name": "InlineAssembly", + "src": "25487:154:1" + } + ], + "id": 1419, + "name": "Block", + "src": "25312:343:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "type": "function (string memory) pure", + "value": "revert" + }, + "id": 1420, + "name": "Identifier", + "src": "25679:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1405, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1421, + "name": "Identifier", + "src": "25686:12:1" + } + ], + "id": 1422, + "name": "FunctionCall", + "src": "25679:20:1" + } + ], + "id": 1423, + "name": "ExpressionStatement", + "src": "25679:20:1" + } + ], + "id": 1424, + "name": "Block", + "src": "25661:53:1" + } + ], + "id": 1425, + "name": "IfStatement", + "src": "25285:429:1" + } + ], + "id": 1426, + "name": "Block", + "src": "25205:519:1" + } + ], + "id": 1427, + "name": "IfStatement", + "src": "25144:580:1" + } + ], + "id": 1428, + "name": "Block", + "src": "25134:596:1" + } + ], + "id": 1429, + "name": "FunctionDefinition", + "src": "25005:725:1" + } + ], + "id": 1430, + "name": "ContractDefinition", + "src": "18048:7684:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1431, + "name": "PragmaDirective", + "src": "25791:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "id": 1432, + "name": "StructuredDocumentation", + "src": "25824:686:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Set", + "name": "Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_values", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "bytes32[]" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1433, + "name": "ElementaryTypeName", + "src": "27033:7:1" + } + ], + "id": 1434, + "name": "ArrayTypeName", + "src": "27033:9:1" + } + ], + "id": 1435, + "name": "VariableDeclaration", + "src": "27033:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1436, + "name": "ElementaryTypeName", + "src": "27193:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1437, + "name": "ElementaryTypeName", + "src": "27204:7:1" + } + ], + "id": 1438, + "name": "Mapping", + "src": "27184:28:1" + } + ], + "id": 1439, + "name": "VariableDeclaration", + "src": "27184:37:1" + } + ], + "id": 1440, + "name": "StructDefinition", + "src": "26979:249:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1441, + "name": "StructuredDocumentation", + "src": "27234:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1481, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1442, + "name": "UserDefinedTypeName", + "src": "27412:3:1" + } + ], + "id": 1443, + "name": "VariableDeclaration", + "src": "27412:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1444, + "name": "ElementaryTypeName", + "src": "27429:7:1" + } + ], + "id": 1445, + "name": "VariableDeclaration", + "src": "27429:13:1" + } + ], + "id": 1446, + "name": "ParameterList", + "src": "27411:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1447, + "name": "ElementaryTypeName", + "src": "27461:4:1" + } + ], + "id": 1448, + "name": "VariableDeclaration", + "src": "27461:4:1" + } + ], + "id": 1449, + "name": "ParameterList", + "src": "27460:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1450, + "name": "Identifier", + "src": "27482:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1451, + "name": "Identifier", + "src": "27492:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1452, + "name": "Identifier", + "src": "27497:5:1" + } + ], + "id": 1453, + "name": "FunctionCall", + "src": "27482:21:1" + } + ], + "id": 1454, + "name": "UnaryOperation", + "src": "27481:22:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1455, + "name": "Identifier", + "src": "27519:3:1" + } + ], + "id": 1458, + "name": "MemberAccess", + "src": "27519:11:1" + } + ], + "id": 1459, + "name": "MemberAccess", + "src": "27519:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1460, + "name": "Identifier", + "src": "27536:5:1" + } + ], + "id": 1461, + "name": "FunctionCall", + "src": "27519:23:1" + } + ], + "id": 1462, + "name": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1463, + "name": "Identifier", + "src": "27677:3:1" + } + ], + "id": 1466, + "name": "MemberAccess", + "src": "27677:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1465, + "name": "Identifier", + "src": "27690:5:1" + } + ], + "id": 1467, + "name": "IndexAccess", + "src": "27677:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1468, + "name": "Identifier", + "src": "27699:3:1" + } + ], + "id": 1469, + "name": "MemberAccess", + "src": "27699:11:1" + } + ], + "id": 1470, + "name": "MemberAccess", + "src": "27699:18:1" + } + ], + "id": 1471, + "name": "Assignment", + "src": "27677:40:1" + } + ], + "id": 1472, + "name": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1473, + "name": "Literal", + "src": "27738:4:1" + } + ], + "id": 1474, + "name": "Return", + "src": "27731:11:1" + } + ], + "id": 1475, + "name": "Block", + "src": "27505:248:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1476, + "name": "Literal", + "src": "27780:5:1" + } + ], + "id": 1477, + "name": "Return", + "src": "27773:12:1" + } + ], + "id": 1478, + "name": "Block", + "src": "27759:37:1" + } + ], + "id": 1479, + "name": "IfStatement", + "src": "27477:319:1" + } + ], + "id": 1480, + "name": "Block", + "src": "27467:335:1" + } + ], + "id": 1481, + "name": "FunctionDefinition", + "src": "27398:404:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1482, + "name": "StructuredDocumentation", + "src": "27808:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1561, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1483, + "name": "UserDefinedTypeName", + "src": "27987:3:1" + } + ], + "id": 1484, + "name": "VariableDeclaration", + "src": "27987:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1485, + "name": "ElementaryTypeName", + "src": "28004:7:1" + } + ], + "id": 1486, + "name": "VariableDeclaration", + "src": "28004:13:1" + } + ], + "id": 1487, + "name": "ParameterList", + "src": "27986:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1488, + "name": "ElementaryTypeName", + "src": "28036:4:1" + } + ], + "id": 1489, + "name": "VariableDeclaration", + "src": "28036:4:1" + } + ], + "id": 1490, + "name": "ParameterList", + "src": "28035:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1492 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "valueIndex", + "scope": 1560, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1491, + "name": "ElementaryTypeName", + "src": "28152:7:1" + } + ], + "id": 1492, + "name": "VariableDeclaration", + "src": "28152:18:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1493, + "name": "Identifier", + "src": "28173:3:1" + } + ], + "id": 1494, + "name": "MemberAccess", + "src": "28173:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1495, + "name": "Identifier", + "src": "28186:5:1" + } + ], + "id": 1496, + "name": "IndexAccess", + "src": "28173:19:1" + } + ], + "id": 1497, + "name": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1498, + "name": "Identifier", + "src": "28207:10:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1499, + "name": "Literal", + "src": "28221:1:1" + } + ], + "id": 1500, + "name": "BinaryOperation", + "src": "28207:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1501, + "name": "ElementaryTypeName", + "src": "28564:7:1" + } + ], + "id": 1502, + "name": "VariableDeclaration", + "src": "28564:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1503, + "name": "Identifier", + "src": "28588:10:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1504, + "name": "Literal", + "src": "28601:1:1" + } + ], + "id": 1505, + "name": "BinaryOperation", + "src": "28588:14:1" + } + ], + "id": 1506, + "name": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "attributes": { + "assignments": [ + 1508 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1507, + "name": "ElementaryTypeName", + "src": "28616:7:1" + } + ], + "id": 1508, + "name": "VariableDeclaration", + "src": "28616:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1509, + "name": "Identifier", + "src": "28636:3:1" + } + ], + "id": 1510, + "name": "MemberAccess", + "src": "28636:11:1" + } + ], + "id": 1511, + "name": "MemberAccess", + "src": "28636:18:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1512, + "name": "Literal", + "src": "28657:1:1" + } + ], + "id": 1513, + "name": "BinaryOperation", + "src": "28636:22:1" + } + ], + "id": 1514, + "name": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "attributes": { + "assignments": [ + 1516 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastvalue", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1515, + "name": "ElementaryTypeName", + "src": "28898:7:1" + } + ], + "id": 1516, + "name": "VariableDeclaration", + "src": "28898:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1517, + "name": "Identifier", + "src": "28918:3:1" + } + ], + "id": 1518, + "name": "MemberAccess", + "src": "28918:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1508, + "type": "uint256", + "value": "lastIndex" + }, + "id": 1519, + "name": "Identifier", + "src": "28930:9:1" + } + ], + "id": 1520, + "name": "IndexAccess", + "src": "28918:22:1" + } + ], + "id": 1521, + "name": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1522, + "name": "Identifier", + "src": "29032:3:1" + } + ], + "id": 1525, + "name": "MemberAccess", + "src": "29032:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1524, + "name": "Identifier", + "src": "29044:13:1" + } + ], + "id": 1526, + "name": "IndexAccess", + "src": "29032:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1527, + "name": "Identifier", + "src": "29061:9:1" + } + ], + "id": 1528, + "name": "Assignment", + "src": "29032:38:1" + } + ], + "id": 1529, + "name": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1530, + "name": "Identifier", + "src": "29136:3:1" + } + ], + "id": 1533, + "name": "MemberAccess", + "src": "29136:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1532, + "name": "Identifier", + "src": "29149:9:1" + } + ], + "id": 1534, + "name": "IndexAccess", + "src": "29136:23:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1535, + "name": "Identifier", + "src": "29162:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1536, + "name": "Literal", + "src": "29178:1:1" + } + ], + "id": 1537, + "name": "BinaryOperation", + "src": "29162:17:1" + } + ], + "id": 1538, + "name": "Assignment", + "src": "29136:43:1" + } + ], + "id": 1539, + "name": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1540, + "name": "Identifier", + "src": "29285:3:1" + } + ], + "id": 1543, + "name": "MemberAccess", + "src": "29285:11:1" + } + ], + "id": 1544, + "name": "MemberAccess", + "src": "29285:15:1" + } + ], + "id": 1545, + "name": "FunctionCall", + "src": "29285:17:1" + } + ], + "id": 1546, + "name": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1547, + "name": "Identifier", + "src": "29377:3:1" + } + ], + "id": 1548, + "name": "MemberAccess", + "src": "29377:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1549, + "name": "Identifier", + "src": "29390:5:1" + } + ], + "id": 1550, + "name": "IndexAccess", + "src": "29377:19:1" + } + ], + "id": 1551, + "name": "UnaryOperation", + "src": "29370:26:1" + } + ], + "id": 1552, + "name": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1553, + "name": "Literal", + "src": "29418:4:1" + } + ], + "id": 1554, + "name": "Return", + "src": "29411:11:1" + } + ], + "id": 1555, + "name": "Block", + "src": "28224:1209:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1556, + "name": "Literal", + "src": "29460:5:1" + } + ], + "id": 1557, + "name": "Return", + "src": "29453:12:1" + } + ], + "id": 1558, + "name": "Block", + "src": "29439:37:1" + } + ], + "id": 1559, + "name": "IfStatement", + "src": "28203:1273:1" + } + ], + "id": 1560, + "name": "Block", + "src": "28042:1440:1" + } + ], + "id": 1561, + "name": "FunctionDefinition", + "src": "27970:1512:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1562, + "name": "StructuredDocumentation", + "src": "29488:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1579, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1563, + "name": "UserDefinedTypeName", + "src": "29582:3:1" + } + ], + "id": 1564, + "name": "VariableDeclaration", + "src": "29582:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1565, + "name": "ElementaryTypeName", + "src": "29599:7:1" + } + ], + "id": 1566, + "name": "VariableDeclaration", + "src": "29599:13:1" + } + ], + "id": 1567, + "name": "ParameterList", + "src": "29581:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1568, + "name": "ElementaryTypeName", + "src": "29636:4:1" + } + ], + "id": 1569, + "name": "VariableDeclaration", + "src": "29636:4:1" + } + ], + "id": 1570, + "name": "ParameterList", + "src": "29635:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1570 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1564, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1571, + "name": "Identifier", + "src": "29659:3:1" + } + ], + "id": 1572, + "name": "MemberAccess", + "src": "29659:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1566, + "type": "bytes32", + "value": "value" + }, + "id": 1573, + "name": "Identifier", + "src": "29672:5:1" + } + ], + "id": 1574, + "name": "IndexAccess", + "src": "29659:19:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1575, + "name": "Literal", + "src": "29682:1:1" + } + ], + "id": 1576, + "name": "BinaryOperation", + "src": "29659:24:1" + } + ], + "id": 1577, + "name": "Return", + "src": "29652:31:1" + } + ], + "id": 1578, + "name": "Block", + "src": "29642:48:1" + } + ], + "id": 1579, + "name": "FunctionDefinition", + "src": "29563:127:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1580, + "name": "StructuredDocumentation", + "src": "29696:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1592, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1581, + "name": "UserDefinedTypeName", + "src": "29788:3:1" + } + ], + "id": 1582, + "name": "VariableDeclaration", + "src": "29788:15:1" + } + ], + "id": 1583, + "name": "ParameterList", + "src": "29787:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1592, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1584, + "name": "ElementaryTypeName", + "src": "29827:7:1" + } + ], + "id": 1585, + "name": "VariableDeclaration", + "src": "29827:7:1" + } + ], + "id": 1586, + "name": "ParameterList", + "src": "29826:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1586 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1582, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1587, + "name": "Identifier", + "src": "29853:3:1" + } + ], + "id": 1588, + "name": "MemberAccess", + "src": "29853:11:1" + } + ], + "id": 1589, + "name": "MemberAccess", + "src": "29853:18:1" + } + ], + "id": 1590, + "name": "Return", + "src": "29846:25:1" + } + ], + "id": 1591, + "name": "Block", + "src": "29836:42:1" + } + ], + "id": 1592, + "name": "FunctionDefinition", + "src": "29771:107:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1593, + "name": "StructuredDocumentation", + "src": "29883:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1617, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1594, + "name": "UserDefinedTypeName", + "src": "30223:3:1" + } + ], + "id": 1595, + "name": "VariableDeclaration", + "src": "30223:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1596, + "name": "ElementaryTypeName", + "src": "30240:7:1" + } + ], + "id": 1597, + "name": "VariableDeclaration", + "src": "30240:13:1" + } + ], + "id": 1598, + "name": "ParameterList", + "src": "30222:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1599, + "name": "ElementaryTypeName", + "src": "30277:7:1" + } + ], + "id": 1600, + "name": "VariableDeclaration", + "src": "30277:7:1" + } + ], + "id": 1601, + "name": "ParameterList", + "src": "30276:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1602, + "name": "Identifier", + "src": "30296:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1603, + "name": "Identifier", + "src": "30304:3:1" + } + ], + "id": 1604, + "name": "MemberAccess", + "src": "30304:11:1" + } + ], + "id": 1605, + "name": "MemberAccess", + "src": "30304:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1606, + "name": "Identifier", + "src": "30325:5:1" + } + ], + "id": 1607, + "name": "BinaryOperation", + "src": "30304:26:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableSet: index out of bounds\"", + "value": "EnumerableSet: index out of bounds" + }, + "id": 1608, + "name": "Literal", + "src": "30332:36:1" + } + ], + "id": 1609, + "name": "FunctionCall", + "src": "30296:73:1" + } + ], + "id": 1610, + "name": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "attributes": { + "functionReturnParameters": 1601 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1611, + "name": "Identifier", + "src": "30386:3:1" + } + ], + "id": 1612, + "name": "MemberAccess", + "src": "30386:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1613, + "name": "Identifier", + "src": "30398:5:1" + } + ], + "id": 1614, + "name": "IndexAccess", + "src": "30386:18:1" + } + ], + "id": 1615, + "name": "Return", + "src": "30379:25:1" + } + ], + "id": 1616, + "name": "Block", + "src": "30286:125:1" + } + ], + "id": 1617, + "name": "FunctionDefinition", + "src": "30210:201:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Bytes32Set", + "name": "Bytes32Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1620, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1618, + "name": "UserDefinedTypeName", + "src": "30464:3:1" + } + ], + "id": 1619, + "name": "VariableDeclaration", + "src": "30464:10:1" + } + ], + "id": 1620, + "name": "StructDefinition", + "src": "30436:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1621, + "name": "StructuredDocumentation", + "src": "30487:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1637, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1622, + "name": "UserDefinedTypeName", + "src": "30664:10:1" + } + ], + "id": 1623, + "name": "VariableDeclaration", + "src": "30664:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1624, + "name": "ElementaryTypeName", + "src": "30688:7:1" + } + ], + "id": 1625, + "name": "VariableDeclaration", + "src": "30688:13:1" + } + ], + "id": 1626, + "name": "ParameterList", + "src": "30663:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1627, + "name": "ElementaryTypeName", + "src": "30721:4:1" + } + ], + "id": 1628, + "name": "VariableDeclaration", + "src": "30721:4:1" + } + ], + "id": 1629, + "name": "ParameterList", + "src": "30720:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1629 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1630, + "name": "Identifier", + "src": "30744:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1623, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1631, + "name": "Identifier", + "src": "30749:3:1" + } + ], + "id": 1632, + "name": "MemberAccess", + "src": "30749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1625, + "type": "bytes32", + "value": "value" + }, + "id": 1633, + "name": "Identifier", + "src": "30761:5:1" + } + ], + "id": 1634, + "name": "FunctionCall", + "src": "30744:23:1" + } + ], + "id": 1635, + "name": "Return", + "src": "30737:30:1" + } + ], + "id": 1636, + "name": "Block", + "src": "30727:47:1" + } + ], + "id": 1637, + "name": "FunctionDefinition", + "src": "30651:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1638, + "name": "StructuredDocumentation", + "src": "30780:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1654, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1639, + "name": "UserDefinedTypeName", + "src": "30958:10:1" + } + ], + "id": 1640, + "name": "VariableDeclaration", + "src": "30958:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1641, + "name": "ElementaryTypeName", + "src": "30982:7:1" + } + ], + "id": 1642, + "name": "VariableDeclaration", + "src": "30982:13:1" + } + ], + "id": 1643, + "name": "ParameterList", + "src": "30957:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1644, + "name": "ElementaryTypeName", + "src": "31015:4:1" + } + ], + "id": 1645, + "name": "VariableDeclaration", + "src": "31015:4:1" + } + ], + "id": 1646, + "name": "ParameterList", + "src": "31014:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1646 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1647, + "name": "Identifier", + "src": "31038:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1640, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1648, + "name": "Identifier", + "src": "31046:3:1" + } + ], + "id": 1649, + "name": "MemberAccess", + "src": "31046:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1642, + "type": "bytes32", + "value": "value" + }, + "id": 1650, + "name": "Identifier", + "src": "31058:5:1" + } + ], + "id": 1651, + "name": "FunctionCall", + "src": "31038:26:1" + } + ], + "id": 1652, + "name": "Return", + "src": "31031:33:1" + } + ], + "id": 1653, + "name": "Block", + "src": "31021:50:1" + } + ], + "id": 1654, + "name": "FunctionDefinition", + "src": "30942:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1655, + "name": "StructuredDocumentation", + "src": "31077:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1671, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1656, + "name": "UserDefinedTypeName", + "src": "31170:10:1" + } + ], + "id": 1657, + "name": "VariableDeclaration", + "src": "31170:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1658, + "name": "ElementaryTypeName", + "src": "31194:7:1" + } + ], + "id": 1659, + "name": "VariableDeclaration", + "src": "31194:13:1" + } + ], + "id": 1660, + "name": "ParameterList", + "src": "31169:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1661, + "name": "ElementaryTypeName", + "src": "31232:4:1" + } + ], + "id": 1662, + "name": "VariableDeclaration", + "src": "31232:4:1" + } + ], + "id": 1663, + "name": "ParameterList", + "src": "31231:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1663 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1664, + "name": "Identifier", + "src": "31255:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1657, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1665, + "name": "Identifier", + "src": "31265:3:1" + } + ], + "id": 1666, + "name": "MemberAccess", + "src": "31265:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1659, + "type": "bytes32", + "value": "value" + }, + "id": 1667, + "name": "Identifier", + "src": "31277:5:1" + } + ], + "id": 1668, + "name": "FunctionCall", + "src": "31255:28:1" + } + ], + "id": 1669, + "name": "Return", + "src": "31248:35:1" + } + ], + "id": 1670, + "name": "Block", + "src": "31238:52:1" + } + ], + "id": 1671, + "name": "FunctionDefinition", + "src": "31152:138:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1672, + "name": "StructuredDocumentation", + "src": "31296:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1685, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1673, + "name": "UserDefinedTypeName", + "src": "31387:10:1" + } + ], + "id": 1674, + "name": "VariableDeclaration", + "src": "31387:22:1" + } + ], + "id": 1675, + "name": "ParameterList", + "src": "31386:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1685, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1676, + "name": "ElementaryTypeName", + "src": "31434:7:1" + } + ], + "id": 1677, + "name": "VariableDeclaration", + "src": "31434:7:1" + } + ], + "id": 1678, + "name": "ParameterList", + "src": "31433:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1678 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1679, + "name": "Identifier", + "src": "31460:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1674, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1680, + "name": "Identifier", + "src": "31468:3:1" + } + ], + "id": 1681, + "name": "MemberAccess", + "src": "31468:10:1" + } + ], + "id": 1682, + "name": "FunctionCall", + "src": "31460:19:1" + } + ], + "id": 1683, + "name": "Return", + "src": "31453:26:1" + } + ], + "id": 1684, + "name": "Block", + "src": "31443:43:1" + } + ], + "id": 1685, + "name": "FunctionDefinition", + "src": "31371:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1686, + "name": "StructuredDocumentation", + "src": "31491:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1702, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1687, + "name": "UserDefinedTypeName", + "src": "31830:10:1" + } + ], + "id": 1688, + "name": "VariableDeclaration", + "src": "31830:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1689, + "name": "ElementaryTypeName", + "src": "31854:7:1" + } + ], + "id": 1690, + "name": "VariableDeclaration", + "src": "31854:13:1" + } + ], + "id": 1691, + "name": "ParameterList", + "src": "31829:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1692, + "name": "ElementaryTypeName", + "src": "31892:7:1" + } + ], + "id": 1693, + "name": "VariableDeclaration", + "src": "31892:7:1" + } + ], + "id": 1694, + "name": "ParameterList", + "src": "31891:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1695, + "name": "Identifier", + "src": "31918:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1688, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1696, + "name": "Identifier", + "src": "31922:3:1" + } + ], + "id": 1697, + "name": "MemberAccess", + "src": "31922:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1690, + "type": "uint256", + "value": "index" + }, + "id": 1698, + "name": "Identifier", + "src": "31934:5:1" + } + ], + "id": 1699, + "name": "FunctionCall", + "src": "31918:22:1" + } + ], + "id": 1700, + "name": "Return", + "src": "31911:29:1" + } + ], + "id": 1701, + "name": "Block", + "src": "31901:46:1" + } + ], + "id": 1702, + "name": "FunctionDefinition", + "src": "31818:129:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.AddressSet", + "name": "AddressSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1705, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1703, + "name": "UserDefinedTypeName", + "src": "32000:3:1" + } + ], + "id": 1704, + "name": "VariableDeclaration", + "src": "32000:10:1" + } + ], + "id": 1705, + "name": "StructDefinition", + "src": "31972:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1706, + "name": "StructuredDocumentation", + "src": "32023:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1731, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1707, + "name": "UserDefinedTypeName", + "src": "32200:10:1" + } + ], + "id": 1708, + "name": "VariableDeclaration", + "src": "32200:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1709, + "name": "ElementaryTypeName", + "src": "32224:7:1" + } + ], + "id": 1710, + "name": "VariableDeclaration", + "src": "32224:13:1" + } + ], + "id": 1711, + "name": "ParameterList", + "src": "32199:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1712, + "name": "ElementaryTypeName", + "src": "32257:4:1" + } + ], + "id": 1713, + "name": "VariableDeclaration", + "src": "32257:4:1" + } + ], + "id": 1714, + "name": "ParameterList", + "src": "32256:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1714 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1715, + "name": "Identifier", + "src": "32280:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1708, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1716, + "name": "Identifier", + "src": "32285:3:1" + } + ], + "id": 1717, + "name": "MemberAccess", + "src": "32285:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1718, + "name": "ElementaryTypeName", + "src": "32297:7:1" + } + ], + "id": 1719, + "name": "ElementaryTypeNameExpression", + "src": "32297:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1720, + "name": "ElementaryTypeName", + "src": "32305:7:1" + } + ], + "id": 1721, + "name": "ElementaryTypeNameExpression", + "src": "32305:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1722, + "name": "ElementaryTypeName", + "src": "32313:7:1" + } + ], + "id": 1723, + "name": "ElementaryTypeNameExpression", + "src": "32313:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1710, + "type": "address", + "value": "value" + }, + "id": 1724, + "name": "Identifier", + "src": "32321:5:1" + } + ], + "id": 1725, + "name": "FunctionCall", + "src": "32313:14:1" + } + ], + "id": 1726, + "name": "FunctionCall", + "src": "32305:23:1" + } + ], + "id": 1727, + "name": "FunctionCall", + "src": "32297:32:1" + } + ], + "id": 1728, + "name": "FunctionCall", + "src": "32280:50:1" + } + ], + "id": 1729, + "name": "Return", + "src": "32273:57:1" + } + ], + "id": 1730, + "name": "Block", + "src": "32263:74:1" + } + ], + "id": 1731, + "name": "FunctionDefinition", + "src": "32187:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1732, + "name": "StructuredDocumentation", + "src": "32343:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1757, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1733, + "name": "UserDefinedTypeName", + "src": "32521:10:1" + } + ], + "id": 1734, + "name": "VariableDeclaration", + "src": "32521:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1735, + "name": "ElementaryTypeName", + "src": "32545:7:1" + } + ], + "id": 1736, + "name": "VariableDeclaration", + "src": "32545:13:1" + } + ], + "id": 1737, + "name": "ParameterList", + "src": "32520:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1738, + "name": "ElementaryTypeName", + "src": "32578:4:1" + } + ], + "id": 1739, + "name": "VariableDeclaration", + "src": "32578:4:1" + } + ], + "id": 1740, + "name": "ParameterList", + "src": "32577:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1740 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1741, + "name": "Identifier", + "src": "32601:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1734, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1742, + "name": "Identifier", + "src": "32609:3:1" + } + ], + "id": 1743, + "name": "MemberAccess", + "src": "32609:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1744, + "name": "ElementaryTypeName", + "src": "32621:7:1" + } + ], + "id": 1745, + "name": "ElementaryTypeNameExpression", + "src": "32621:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1746, + "name": "ElementaryTypeName", + "src": "32629:7:1" + } + ], + "id": 1747, + "name": "ElementaryTypeNameExpression", + "src": "32629:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1748, + "name": "ElementaryTypeName", + "src": "32637:7:1" + } + ], + "id": 1749, + "name": "ElementaryTypeNameExpression", + "src": "32637:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1736, + "type": "address", + "value": "value" + }, + "id": 1750, + "name": "Identifier", + "src": "32645:5:1" + } + ], + "id": 1751, + "name": "FunctionCall", + "src": "32637:14:1" + } + ], + "id": 1752, + "name": "FunctionCall", + "src": "32629:23:1" + } + ], + "id": 1753, + "name": "FunctionCall", + "src": "32621:32:1" + } + ], + "id": 1754, + "name": "FunctionCall", + "src": "32601:53:1" + } + ], + "id": 1755, + "name": "Return", + "src": "32594:60:1" + } + ], + "id": 1756, + "name": "Block", + "src": "32584:77:1" + } + ], + "id": 1757, + "name": "FunctionDefinition", + "src": "32505:156:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1758, + "name": "StructuredDocumentation", + "src": "32667:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1783, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1759, + "name": "UserDefinedTypeName", + "src": "32760:10:1" + } + ], + "id": 1760, + "name": "VariableDeclaration", + "src": "32760:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1761, + "name": "ElementaryTypeName", + "src": "32784:7:1" + } + ], + "id": 1762, + "name": "VariableDeclaration", + "src": "32784:13:1" + } + ], + "id": 1763, + "name": "ParameterList", + "src": "32759:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1764, + "name": "ElementaryTypeName", + "src": "32822:4:1" + } + ], + "id": 1765, + "name": "VariableDeclaration", + "src": "32822:4:1" + } + ], + "id": 1766, + "name": "ParameterList", + "src": "32821:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1766 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1767, + "name": "Identifier", + "src": "32845:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1760, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1768, + "name": "Identifier", + "src": "32855:3:1" + } + ], + "id": 1769, + "name": "MemberAccess", + "src": "32855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1770, + "name": "ElementaryTypeName", + "src": "32867:7:1" + } + ], + "id": 1771, + "name": "ElementaryTypeNameExpression", + "src": "32867:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1772, + "name": "ElementaryTypeName", + "src": "32875:7:1" + } + ], + "id": 1773, + "name": "ElementaryTypeNameExpression", + "src": "32875:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1774, + "name": "ElementaryTypeName", + "src": "32883:7:1" + } + ], + "id": 1775, + "name": "ElementaryTypeNameExpression", + "src": "32883:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1762, + "type": "address", + "value": "value" + }, + "id": 1776, + "name": "Identifier", + "src": "32891:5:1" + } + ], + "id": 1777, + "name": "FunctionCall", + "src": "32883:14:1" + } + ], + "id": 1778, + "name": "FunctionCall", + "src": "32875:23:1" + } + ], + "id": 1779, + "name": "FunctionCall", + "src": "32867:32:1" + } + ], + "id": 1780, + "name": "FunctionCall", + "src": "32845:55:1" + } + ], + "id": 1781, + "name": "Return", + "src": "32838:62:1" + } + ], + "id": 1782, + "name": "Block", + "src": "32828:79:1" + } + ], + "id": 1783, + "name": "FunctionDefinition", + "src": "32742:165:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1784, + "name": "StructuredDocumentation", + "src": "32913:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1797, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1785, + "name": "UserDefinedTypeName", + "src": "33004:10:1" + } + ], + "id": 1786, + "name": "VariableDeclaration", + "src": "33004:22:1" + } + ], + "id": 1787, + "name": "ParameterList", + "src": "33003:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1797, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1788, + "name": "ElementaryTypeName", + "src": "33051:7:1" + } + ], + "id": 1789, + "name": "VariableDeclaration", + "src": "33051:7:1" + } + ], + "id": 1790, + "name": "ParameterList", + "src": "33050:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1790 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1791, + "name": "Identifier", + "src": "33077:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1786, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1792, + "name": "Identifier", + "src": "33085:3:1" + } + ], + "id": 1793, + "name": "MemberAccess", + "src": "33085:10:1" + } + ], + "id": 1794, + "name": "FunctionCall", + "src": "33077:19:1" + } + ], + "id": 1795, + "name": "Return", + "src": "33070:26:1" + } + ], + "id": 1796, + "name": "Block", + "src": "33060:43:1" + } + ], + "id": 1797, + "name": "FunctionDefinition", + "src": "32988:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1798, + "name": "StructuredDocumentation", + "src": "33108:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1823, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1799, + "name": "UserDefinedTypeName", + "src": "33447:10:1" + } + ], + "id": 1800, + "name": "VariableDeclaration", + "src": "33447:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1801, + "name": "ElementaryTypeName", + "src": "33471:7:1" + } + ], + "id": 1802, + "name": "VariableDeclaration", + "src": "33471:13:1" + } + ], + "id": 1803, + "name": "ParameterList", + "src": "33446:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1804, + "name": "ElementaryTypeName", + "src": "33509:7:1" + } + ], + "id": 1805, + "name": "VariableDeclaration", + "src": "33509:7:1" + } + ], + "id": 1806, + "name": "ParameterList", + "src": "33508:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1806 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1807, + "name": "ElementaryTypeName", + "src": "33535:7:1" + } + ], + "id": 1808, + "name": "ElementaryTypeNameExpression", + "src": "33535:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1809, + "name": "ElementaryTypeName", + "src": "33543:7:1" + } + ], + "id": 1810, + "name": "ElementaryTypeNameExpression", + "src": "33543:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1811, + "name": "ElementaryTypeName", + "src": "33551:7:1" + } + ], + "id": 1812, + "name": "ElementaryTypeNameExpression", + "src": "33551:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1813, + "name": "Identifier", + "src": "33559:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1800, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1814, + "name": "Identifier", + "src": "33563:3:1" + } + ], + "id": 1815, + "name": "MemberAccess", + "src": "33563:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1802, + "type": "uint256", + "value": "index" + }, + "id": 1816, + "name": "Identifier", + "src": "33575:5:1" + } + ], + "id": 1817, + "name": "FunctionCall", + "src": "33559:22:1" + } + ], + "id": 1818, + "name": "FunctionCall", + "src": "33551:31:1" + } + ], + "id": 1819, + "name": "FunctionCall", + "src": "33543:40:1" + } + ], + "id": 1820, + "name": "FunctionCall", + "src": "33535:49:1" + } + ], + "id": 1821, + "name": "Return", + "src": "33528:56:1" + } + ], + "id": 1822, + "name": "Block", + "src": "33518:73:1" + } + ], + "id": 1823, + "name": "FunctionDefinition", + "src": "33435:156:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.UintSet", + "name": "UintSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1826, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1824, + "name": "UserDefinedTypeName", + "src": "33639:3:1" + } + ], + "id": 1825, + "name": "VariableDeclaration", + "src": "33639:10:1" + } + ], + "id": 1826, + "name": "StructDefinition", + "src": "33614:42:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1827, + "name": "StructuredDocumentation", + "src": "33662:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1846, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1828, + "name": "UserDefinedTypeName", + "src": "33839:7:1" + } + ], + "id": 1829, + "name": "VariableDeclaration", + "src": "33839:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1830, + "name": "ElementaryTypeName", + "src": "33860:7:1" + } + ], + "id": 1831, + "name": "VariableDeclaration", + "src": "33860:13:1" + } + ], + "id": 1832, + "name": "ParameterList", + "src": "33838:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1833, + "name": "ElementaryTypeName", + "src": "33893:4:1" + } + ], + "id": 1834, + "name": "VariableDeclaration", + "src": "33893:4:1" + } + ], + "id": 1835, + "name": "ParameterList", + "src": "33892:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1835 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1836, + "name": "Identifier", + "src": "33916:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1829, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1837, + "name": "Identifier", + "src": "33921:3:1" + } + ], + "id": 1838, + "name": "MemberAccess", + "src": "33921:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1839, + "name": "ElementaryTypeName", + "src": "33933:7:1" + } + ], + "id": 1840, + "name": "ElementaryTypeNameExpression", + "src": "33933:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1831, + "type": "uint256", + "value": "value" + }, + "id": 1841, + "name": "Identifier", + "src": "33941:5:1" + } + ], + "id": 1842, + "name": "FunctionCall", + "src": "33933:14:1" + } + ], + "id": 1843, + "name": "FunctionCall", + "src": "33916:32:1" + } + ], + "id": 1844, + "name": "Return", + "src": "33909:39:1" + } + ], + "id": 1845, + "name": "Block", + "src": "33899:56:1" + } + ], + "id": 1846, + "name": "FunctionDefinition", + "src": "33826:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1847, + "name": "StructuredDocumentation", + "src": "33961:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1866, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1848, + "name": "UserDefinedTypeName", + "src": "34139:7:1" + } + ], + "id": 1849, + "name": "VariableDeclaration", + "src": "34139:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1850, + "name": "ElementaryTypeName", + "src": "34160:7:1" + } + ], + "id": 1851, + "name": "VariableDeclaration", + "src": "34160:13:1" + } + ], + "id": 1852, + "name": "ParameterList", + "src": "34138:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1853, + "name": "ElementaryTypeName", + "src": "34193:4:1" + } + ], + "id": 1854, + "name": "VariableDeclaration", + "src": "34193:4:1" + } + ], + "id": 1855, + "name": "ParameterList", + "src": "34192:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1855 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1856, + "name": "Identifier", + "src": "34216:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1849, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1857, + "name": "Identifier", + "src": "34224:3:1" + } + ], + "id": 1858, + "name": "MemberAccess", + "src": "34224:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1859, + "name": "ElementaryTypeName", + "src": "34236:7:1" + } + ], + "id": 1860, + "name": "ElementaryTypeNameExpression", + "src": "34236:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1851, + "type": "uint256", + "value": "value" + }, + "id": 1861, + "name": "Identifier", + "src": "34244:5:1" + } + ], + "id": 1862, + "name": "FunctionCall", + "src": "34236:14:1" + } + ], + "id": 1863, + "name": "FunctionCall", + "src": "34216:35:1" + } + ], + "id": 1864, + "name": "Return", + "src": "34209:42:1" + } + ], + "id": 1865, + "name": "Block", + "src": "34199:59:1" + } + ], + "id": 1866, + "name": "FunctionDefinition", + "src": "34123:135:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1867, + "name": "StructuredDocumentation", + "src": "34264:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1886, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1868, + "name": "UserDefinedTypeName", + "src": "34357:7:1" + } + ], + "id": 1869, + "name": "VariableDeclaration", + "src": "34357:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1870, + "name": "ElementaryTypeName", + "src": "34378:7:1" + } + ], + "id": 1871, + "name": "VariableDeclaration", + "src": "34378:13:1" + } + ], + "id": 1872, + "name": "ParameterList", + "src": "34356:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1873, + "name": "ElementaryTypeName", + "src": "34416:4:1" + } + ], + "id": 1874, + "name": "VariableDeclaration", + "src": "34416:4:1" + } + ], + "id": 1875, + "name": "ParameterList", + "src": "34415:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1875 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1876, + "name": "Identifier", + "src": "34439:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1869, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1877, + "name": "Identifier", + "src": "34449:3:1" + } + ], + "id": 1878, + "name": "MemberAccess", + "src": "34449:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1879, + "name": "ElementaryTypeName", + "src": "34461:7:1" + } + ], + "id": 1880, + "name": "ElementaryTypeNameExpression", + "src": "34461:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1871, + "type": "uint256", + "value": "value" + }, + "id": 1881, + "name": "Identifier", + "src": "34469:5:1" + } + ], + "id": 1882, + "name": "FunctionCall", + "src": "34461:14:1" + } + ], + "id": 1883, + "name": "FunctionCall", + "src": "34439:37:1" + } + ], + "id": 1884, + "name": "Return", + "src": "34432:44:1" + } + ], + "id": 1885, + "name": "Block", + "src": "34422:61:1" + } + ], + "id": 1886, + "name": "FunctionDefinition", + "src": "34339:144:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1887, + "name": "StructuredDocumentation", + "src": "34489:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1900, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1888, + "name": "UserDefinedTypeName", + "src": "34580:7:1" + } + ], + "id": 1889, + "name": "VariableDeclaration", + "src": "34580:19:1" + } + ], + "id": 1890, + "name": "ParameterList", + "src": "34579:21:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1900, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1891, + "name": "ElementaryTypeName", + "src": "34624:7:1" + } + ], + "id": 1892, + "name": "VariableDeclaration", + "src": "34624:7:1" + } + ], + "id": 1893, + "name": "ParameterList", + "src": "34623:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1894, + "name": "Identifier", + "src": "34650:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1889, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1895, + "name": "Identifier", + "src": "34658:3:1" + } + ], + "id": 1896, + "name": "MemberAccess", + "src": "34658:10:1" + } + ], + "id": 1897, + "name": "FunctionCall", + "src": "34650:19:1" + } + ], + "id": 1898, + "name": "Return", + "src": "34643:26:1" + } + ], + "id": 1899, + "name": "Block", + "src": "34633:43:1" + } + ], + "id": 1900, + "name": "FunctionDefinition", + "src": "34564:112:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1901, + "name": "StructuredDocumentation", + "src": "34681:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1920, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1902, + "name": "UserDefinedTypeName", + "src": "35020:7:1" + } + ], + "id": 1903, + "name": "VariableDeclaration", + "src": "35020:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1904, + "name": "ElementaryTypeName", + "src": "35041:7:1" + } + ], + "id": 1905, + "name": "VariableDeclaration", + "src": "35041:13:1" + } + ], + "id": 1906, + "name": "ParameterList", + "src": "35019:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1907, + "name": "ElementaryTypeName", + "src": "35079:7:1" + } + ], + "id": 1908, + "name": "VariableDeclaration", + "src": "35079:7:1" + } + ], + "id": 1909, + "name": "ParameterList", + "src": "35078:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1909 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1910, + "name": "ElementaryTypeName", + "src": "35105:7:1" + } + ], + "id": 1911, + "name": "ElementaryTypeNameExpression", + "src": "35105:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1912, + "name": "Identifier", + "src": "35113:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1903, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1913, + "name": "Identifier", + "src": "35117:3:1" + } + ], + "id": 1914, + "name": "MemberAccess", + "src": "35117:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1905, + "type": "uint256", + "value": "index" + }, + "id": 1915, + "name": "Identifier", + "src": "35129:5:1" + } + ], + "id": 1916, + "name": "FunctionCall", + "src": "35113:22:1" + } + ], + "id": 1917, + "name": "FunctionCall", + "src": "35105:31:1" + } + ], + "id": 1918, + "name": "Return", + "src": "35098:38:1" + } + ], + "id": 1919, + "name": "Block", + "src": "35088:55:1" + } + ], + "id": 1920, + "name": "FunctionDefinition", + "src": "35008:135:1" + } + ], + "id": 1921, + "name": "ContractDefinition", + "src": "26511:8634:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1922, + "name": "PragmaDirective", + "src": "35204:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "id": 1923, + "name": "StructuredDocumentation", + "src": "35237:705:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.MapEntry", + "name": "MapEntry", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_key", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1924, + "name": "ElementaryTypeName", + "src": "36455:7:1" + } + ], + "id": 1925, + "name": "VariableDeclaration", + "src": "36455:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_value", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1926, + "name": "ElementaryTypeName", + "src": "36477:7:1" + } + ], + "id": 1927, + "name": "VariableDeclaration", + "src": "36477:14:1" + } + ], + "id": 1928, + "name": "StructDefinition", + "src": "36429:69:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.Map", + "name": "Map", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_entries", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.MapEntry[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "struct EnumerableMap.MapEntry[]" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 1929, + "name": "UserDefinedTypeName", + "src": "36567:8:1" + } + ], + "id": 1930, + "name": "ArrayTypeName", + "src": "36567:10:1" + } + ], + "id": 1931, + "name": "VariableDeclaration", + "src": "36567:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1932, + "name": "ElementaryTypeName", + "src": "36745:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1933, + "name": "ElementaryTypeName", + "src": "36756:7:1" + } + ], + "id": 1934, + "name": "Mapping", + "src": "36736:28:1" + } + ], + "id": 1935, + "name": "VariableDeclaration", + "src": "36736:37:1" + } + ], + "id": 1936, + "name": "StructDefinition", + "src": "36504:276:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1937, + "name": "StructuredDocumentation", + "src": "36786:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 1998, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 1938, + "name": "UserDefinedTypeName", + "src": "37021:3:1" + } + ], + "id": 1939, + "name": "VariableDeclaration", + "src": "37021:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1940, + "name": "ElementaryTypeName", + "src": "37038:7:1" + } + ], + "id": 1941, + "name": "VariableDeclaration", + "src": "37038:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1942, + "name": "ElementaryTypeName", + "src": "37051:7:1" + } + ], + "id": 1943, + "name": "VariableDeclaration", + "src": "37051:13:1" + } + ], + "id": 1944, + "name": "ParameterList", + "src": "37020:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1945, + "name": "ElementaryTypeName", + "src": "37083:4:1" + } + ], + "id": 1946, + "name": "VariableDeclaration", + "src": "37083:4:1" + } + ], + "id": 1947, + "name": "ParameterList", + "src": "37082:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1949 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 1997, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1948, + "name": "ElementaryTypeName", + "src": "37197:7:1" + } + ], + "id": 1949, + "name": "VariableDeclaration", + "src": "37197:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1950, + "name": "Identifier", + "src": "37216:3:1" + } + ], + "id": 1951, + "name": "MemberAccess", + "src": "37216:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1952, + "name": "Identifier", + "src": "37229:3:1" + } + ], + "id": 1953, + "name": "IndexAccess", + "src": "37216:17:1" + } + ], + "id": 1954, + "name": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1955, + "name": "Identifier", + "src": "37248:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1956, + "name": "Literal", + "src": "37260:1:1" + } + ], + "id": 1957, + "name": "BinaryOperation", + "src": "37248:13:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (struct EnumerableMap.MapEntry storage ref)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1958, + "name": "Identifier", + "src": "37314:3:1" + } + ], + "id": 1961, + "name": "MemberAccess", + "src": "37314:12:1" + } + ], + "id": 1962, + "name": "MemberAccess", + "src": "37314:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": true, + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "tryCall": false, + "type": "struct EnumerableMap.MapEntry memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1928, + "type": "type(struct EnumerableMap.MapEntry storage pointer)", + "value": "MapEntry" + }, + "id": 1963, + "name": "Identifier", + "src": "37332:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1964, + "name": "Identifier", + "src": "37349:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1965, + "name": "Identifier", + "src": "37362:5:1" + } + ], + "id": 1966, + "name": "FunctionCall", + "src": "37332:38:1" + } + ], + "id": 1967, + "name": "FunctionCall", + "src": "37314:57:1" + } + ], + "id": 1968, + "name": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1969, + "name": "Identifier", + "src": "37506:3:1" + } + ], + "id": 1972, + "name": "MemberAccess", + "src": "37506:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1971, + "name": "Identifier", + "src": "37519:3:1" + } + ], + "id": 1973, + "name": "IndexAccess", + "src": "37506:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1974, + "name": "Identifier", + "src": "37526:3:1" + } + ], + "id": 1975, + "name": "MemberAccess", + "src": "37526:12:1" + } + ], + "id": 1976, + "name": "MemberAccess", + "src": "37526:19:1" + } + ], + "id": 1977, + "name": "Assignment", + "src": "37506:39:1" + } + ], + "id": 1978, + "name": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1979, + "name": "Literal", + "src": "37566:4:1" + } + ], + "id": 1980, + "name": "Return", + "src": "37559:11:1" + } + ], + "id": 1981, + "name": "Block", + "src": "37263:318:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1982, + "name": "Identifier", + "src": "37601:3:1" + } + ], + "id": 1987, + "name": "MemberAccess", + "src": "37601:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1984, + "name": "Identifier", + "src": "37614:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1985, + "name": "Literal", + "src": "37625:1:1" + } + ], + "id": 1986, + "name": "BinaryOperation", + "src": "37614:12:1" + } + ], + "id": 1988, + "name": "IndexAccess", + "src": "37601:26:1" + } + ], + "id": 1989, + "name": "MemberAccess", + "src": "37601:33:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1990, + "name": "Identifier", + "src": "37637:5:1" + } + ], + "id": 1991, + "name": "Assignment", + "src": "37601:41:1" + } + ], + "id": 1992, + "name": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1993, + "name": "Literal", + "src": "37663:5:1" + } + ], + "id": 1994, + "name": "Return", + "src": "37656:12:1" + } + ], + "id": 1995, + "name": "Block", + "src": "37587:92:1" + } + ], + "id": 1996, + "name": "IfStatement", + "src": "37244:435:1" + } + ], + "id": 1997, + "name": "Block", + "src": "37089:596:1" + } + ], + "id": 1998, + "name": "FunctionDefinition", + "src": "37007:678:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 1999, + "name": "StructuredDocumentation", + "src": "37691:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2079, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2000, + "name": "UserDefinedTypeName", + "src": "37870:3:1" + } + ], + "id": 2001, + "name": "VariableDeclaration", + "src": "37870:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2002, + "name": "ElementaryTypeName", + "src": "37887:7:1" + } + ], + "id": 2003, + "name": "VariableDeclaration", + "src": "37887:11:1" + } + ], + "id": 2004, + "name": "ParameterList", + "src": "37869:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2005, + "name": "ElementaryTypeName", + "src": "37917:4:1" + } + ], + "id": 2006, + "name": "VariableDeclaration", + "src": "37917:4:1" + } + ], + "id": 2007, + "name": "ParameterList", + "src": "37916:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2009 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2078, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2008, + "name": "ElementaryTypeName", + "src": "38031:7:1" + } + ], + "id": 2009, + "name": "VariableDeclaration", + "src": "38031:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2010, + "name": "Identifier", + "src": "38050:3:1" + } + ], + "id": 2011, + "name": "MemberAccess", + "src": "38050:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2012, + "name": "Identifier", + "src": "38063:3:1" + } + ], + "id": 2013, + "name": "IndexAccess", + "src": "38050:17:1" + } + ], + "id": 2014, + "name": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2015, + "name": "Identifier", + "src": "38082:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2016, + "name": "Literal", + "src": "38094:1:1" + } + ], + "id": 2017, + "name": "BinaryOperation", + "src": "38082:13:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2019 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2018, + "name": "ElementaryTypeName", + "src": "38438:7:1" + } + ], + "id": 2019, + "name": "VariableDeclaration", + "src": "38438:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2020, + "name": "Identifier", + "src": "38462:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2021, + "name": "Literal", + "src": "38473:1:1" + } + ], + "id": 2022, + "name": "BinaryOperation", + "src": "38462:12:1" + } + ], + "id": 2023, + "name": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "attributes": { + "assignments": [ + 2025 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2024, + "name": "ElementaryTypeName", + "src": "38488:7:1" + } + ], + "id": 2025, + "name": "VariableDeclaration", + "src": "38488:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2026, + "name": "Identifier", + "src": "38508:3:1" + } + ], + "id": 2027, + "name": "MemberAccess", + "src": "38508:12:1" + } + ], + "id": 2028, + "name": "MemberAccess", + "src": "38508:19:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2029, + "name": "Literal", + "src": "38530:1:1" + } + ], + "id": 2030, + "name": "BinaryOperation", + "src": "38508:23:1" + } + ], + "id": 2031, + "name": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "attributes": { + "assignments": [ + 2033 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastEntry", + "scope": 2073, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2032, + "name": "UserDefinedTypeName", + "src": "38771:8:1" + } + ], + "id": 2033, + "name": "VariableDeclaration", + "src": "38771:26:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2034, + "name": "Identifier", + "src": "38800:3:1" + } + ], + "id": 2035, + "name": "MemberAccess", + "src": "38800:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2025, + "type": "uint256", + "value": "lastIndex" + }, + "id": 2036, + "name": "Identifier", + "src": "38813:9:1" + } + ], + "id": 2037, + "name": "IndexAccess", + "src": "38800:23:1" + } + ], + "id": 2038, + "name": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2039, + "name": "Identifier", + "src": "38915:3:1" + } + ], + "id": 2042, + "name": "MemberAccess", + "src": "38915:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2041, + "name": "Identifier", + "src": "38928:13:1" + } + ], + "id": 2043, + "name": "IndexAccess", + "src": "38915:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2044, + "name": "Identifier", + "src": "38945:9:1" + } + ], + "id": 2045, + "name": "Assignment", + "src": "38915:39:1" + } + ], + "id": 2046, + "name": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2047, + "name": "Identifier", + "src": "39020:3:1" + } + ], + "id": 2051, + "name": "MemberAccess", + "src": "39020:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2049, + "name": "Identifier", + "src": "39033:9:1" + } + ], + "id": 2050, + "name": "MemberAccess", + "src": "39033:14:1" + } + ], + "id": 2052, + "name": "IndexAccess", + "src": "39020:28:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2053, + "name": "Identifier", + "src": "39051:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2054, + "name": "Literal", + "src": "39067:1:1" + } + ], + "id": 2055, + "name": "BinaryOperation", + "src": "39051:17:1" + } + ], + "id": 2056, + "name": "Assignment", + "src": "39020:48:1" + } + ], + "id": 2057, + "name": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2058, + "name": "Identifier", + "src": "39174:3:1" + } + ], + "id": 2061, + "name": "MemberAccess", + "src": "39174:12:1" + } + ], + "id": 2062, + "name": "MemberAccess", + "src": "39174:16:1" + } + ], + "id": 2063, + "name": "FunctionCall", + "src": "39174:18:1" + } + ], + "id": 2064, + "name": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2065, + "name": "Identifier", + "src": "39267:3:1" + } + ], + "id": 2066, + "name": "MemberAccess", + "src": "39267:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2067, + "name": "Identifier", + "src": "39280:3:1" + } + ], + "id": 2068, + "name": "IndexAccess", + "src": "39267:17:1" + } + ], + "id": 2069, + "name": "UnaryOperation", + "src": "39260:24:1" + } + ], + "id": 2070, + "name": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2071, + "name": "Literal", + "src": "39306:4:1" + } + ], + "id": 2072, + "name": "Return", + "src": "39299:11:1" + } + ], + "id": 2073, + "name": "Block", + "src": "38097:1224:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2074, + "name": "Literal", + "src": "39348:5:1" + } + ], + "id": 2075, + "name": "Return", + "src": "39341:12:1" + } + ], + "id": 2076, + "name": "Block", + "src": "39327:37:1" + } + ], + "id": 2077, + "name": "IfStatement", + "src": "38078:1286:1" + } + ], + "id": 2078, + "name": "Block", + "src": "37923:1447:1" + } + ], + "id": 2079, + "name": "FunctionDefinition", + "src": "37853:1517:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2080, + "name": "StructuredDocumentation", + "src": "39376:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2097, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2081, + "name": "UserDefinedTypeName", + "src": "39468:3:1" + } + ], + "id": 2082, + "name": "VariableDeclaration", + "src": "39468:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2083, + "name": "ElementaryTypeName", + "src": "39485:7:1" + } + ], + "id": 2084, + "name": "VariableDeclaration", + "src": "39485:11:1" + } + ], + "id": 2085, + "name": "ParameterList", + "src": "39467:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2086, + "name": "ElementaryTypeName", + "src": "39520:4:1" + } + ], + "id": 2087, + "name": "VariableDeclaration", + "src": "39520:4:1" + } + ], + "id": 2088, + "name": "ParameterList", + "src": "39519:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2088 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2082, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2089, + "name": "Identifier", + "src": "39543:3:1" + } + ], + "id": 2090, + "name": "MemberAccess", + "src": "39543:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2084, + "type": "bytes32", + "value": "key" + }, + "id": 2091, + "name": "Identifier", + "src": "39556:3:1" + } + ], + "id": 2092, + "name": "IndexAccess", + "src": "39543:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2093, + "name": "Literal", + "src": "39564:1:1" + } + ], + "id": 2094, + "name": "BinaryOperation", + "src": "39543:22:1" + } + ], + "id": 2095, + "name": "Return", + "src": "39536:29:1" + } + ], + "id": 2096, + "name": "Block", + "src": "39526:46:1" + } + ], + "id": 2097, + "name": "FunctionDefinition", + "src": "39449:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2098, + "name": "StructuredDocumentation", + "src": "39578:79:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2110, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2099, + "name": "UserDefinedTypeName", + "src": "39679:3:1" + } + ], + "id": 2100, + "name": "VariableDeclaration", + "src": "39679:15:1" + } + ], + "id": 2101, + "name": "ParameterList", + "src": "39678:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2102, + "name": "ElementaryTypeName", + "src": "39718:7:1" + } + ], + "id": 2103, + "name": "VariableDeclaration", + "src": "39718:7:1" + } + ], + "id": 2104, + "name": "ParameterList", + "src": "39717:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2104 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2100, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2105, + "name": "Identifier", + "src": "39744:3:1" + } + ], + "id": 2106, + "name": "MemberAccess", + "src": "39744:12:1" + } + ], + "id": 2107, + "name": "MemberAccess", + "src": "39744:19:1" + } + ], + "id": 2108, + "name": "Return", + "src": "39737:26:1" + } + ], + "id": 2109, + "name": "Block", + "src": "39727:43:1" + } + ], + "id": 2110, + "name": "FunctionDefinition", + "src": "39662:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2111, + "name": "StructuredDocumentation", + "src": "39775:333:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2145, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2112, + "name": "UserDefinedTypeName", + "src": "40126:3:1" + } + ], + "id": 2113, + "name": "VariableDeclaration", + "src": "40126:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2114, + "name": "ElementaryTypeName", + "src": "40143:7:1" + } + ], + "id": 2115, + "name": "VariableDeclaration", + "src": "40143:13:1" + } + ], + "id": 2116, + "name": "ParameterList", + "src": "40125:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2117, + "name": "ElementaryTypeName", + "src": "40180:7:1" + } + ], + "id": 2118, + "name": "VariableDeclaration", + "src": "40180:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2119, + "name": "ElementaryTypeName", + "src": "40189:7:1" + } + ], + "id": 2120, + "name": "VariableDeclaration", + "src": "40189:7:1" + } + ], + "id": 2121, + "name": "ParameterList", + "src": "40179:18:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2122, + "name": "Identifier", + "src": "40208:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2123, + "name": "Identifier", + "src": "40216:3:1" + } + ], + "id": 2124, + "name": "MemberAccess", + "src": "40216:12:1" + } + ], + "id": 2125, + "name": "MemberAccess", + "src": "40216:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2126, + "name": "Identifier", + "src": "40238:5:1" + } + ], + "id": 2127, + "name": "BinaryOperation", + "src": "40216:27:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: index out of bounds\"", + "value": "EnumerableMap: index out of bounds" + }, + "id": 2128, + "name": "Literal", + "src": "40245:36:1" + } + ], + "id": 2129, + "name": "FunctionCall", + "src": "40208:74:1" + } + ], + "id": 2130, + "name": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "attributes": { + "assignments": [ + 2132 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "entry", + "scope": 2144, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2131, + "name": "UserDefinedTypeName", + "src": "40293:8:1" + } + ], + "id": 2132, + "name": "VariableDeclaration", + "src": "40293:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2133, + "name": "Identifier", + "src": "40318:3:1" + } + ], + "id": 2134, + "name": "MemberAccess", + "src": "40318:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2135, + "name": "Identifier", + "src": "40331:5:1" + } + ], + "id": 2136, + "name": "IndexAccess", + "src": "40318:19:1" + } + ], + "id": 2137, + "name": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2121 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bytes32,bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2138, + "name": "Identifier", + "src": "40355:5:1" + } + ], + "id": 2139, + "name": "MemberAccess", + "src": "40355:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2140, + "name": "Identifier", + "src": "40367:5:1" + } + ], + "id": 2141, + "name": "MemberAccess", + "src": "40367:12:1" + } + ], + "id": 2142, + "name": "TupleExpression", + "src": "40354:26:1" + } + ], + "id": 2143, + "name": "Return", + "src": "40347:33:1" + } + ], + "id": 2144, + "name": "Block", + "src": "40198:189:1" + } + ], + "id": 2145, + "name": "FunctionDefinition", + "src": "40113:274:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2146, + "name": "StructuredDocumentation", + "src": "40393:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2183, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2147, + "name": "UserDefinedTypeName", + "src": "40546:3:1" + } + ], + "id": 2148, + "name": "VariableDeclaration", + "src": "40546:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2149, + "name": "ElementaryTypeName", + "src": "40563:7:1" + } + ], + "id": 2150, + "name": "VariableDeclaration", + "src": "40563:11:1" + } + ], + "id": 2151, + "name": "ParameterList", + "src": "40545:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2152, + "name": "ElementaryTypeName", + "src": "40598:4:1" + } + ], + "id": 2153, + "name": "VariableDeclaration", + "src": "40598:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2154, + "name": "ElementaryTypeName", + "src": "40604:7:1" + } + ], + "id": 2155, + "name": "VariableDeclaration", + "src": "40604:7:1" + } + ], + "id": 2156, + "name": "ParameterList", + "src": "40597:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2158 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2182, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2157, + "name": "ElementaryTypeName", + "src": "40623:7:1" + } + ], + "id": 2158, + "name": "VariableDeclaration", + "src": "40623:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2159, + "name": "Identifier", + "src": "40642:3:1" + } + ], + "id": 2160, + "name": "MemberAccess", + "src": "40642:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2150, + "type": "bytes32", + "value": "key" + }, + "id": 2161, + "name": "Identifier", + "src": "40655:3:1" + } + ], + "id": 2162, + "name": "IndexAccess", + "src": "40642:17:1" + } + ], + "id": 2163, + "name": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2164, + "name": "Identifier", + "src": "40673:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2165, + "name": "Literal", + "src": "40685:1:1" + } + ], + "id": 2166, + "name": "BinaryOperation", + "src": "40673:13:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2167, + "name": "Literal", + "src": "40696:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2168, + "name": "Literal", + "src": "40703:1:1" + } + ], + "id": 2169, + "name": "TupleExpression", + "src": "40695:10:1" + } + ], + "id": 2170, + "name": "Return", + "src": "40688:17:1" + } + ], + "id": 2171, + "name": "IfStatement", + "src": "40669:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,bytes32)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2172, + "name": "Literal", + "src": "40759:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2173, + "name": "Identifier", + "src": "40765:3:1" + } + ], + "id": 2174, + "name": "MemberAccess", + "src": "40765:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2175, + "name": "Identifier", + "src": "40778:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2176, + "name": "Literal", + "src": "40789:1:1" + } + ], + "id": 2177, + "name": "BinaryOperation", + "src": "40778:12:1" + } + ], + "id": 2178, + "name": "IndexAccess", + "src": "40765:26:1" + } + ], + "id": 2179, + "name": "MemberAccess", + "src": "40765:33:1" + } + ], + "id": 2180, + "name": "TupleExpression", + "src": "40758:41:1" + } + ], + "id": 2181, + "name": "Return", + "src": "40751:48:1" + } + ], + "id": 2182, + "name": "Block", + "src": "40613:220:1" + } + ], + "id": 2183, + "name": "FunctionDefinition", + "src": "40529:304:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2184, + "name": "StructuredDocumentation", + "src": "40839:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2216, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2185, + "name": "UserDefinedTypeName", + "src": "40999:3:1" + } + ], + "id": 2186, + "name": "VariableDeclaration", + "src": "40999:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2187, + "name": "ElementaryTypeName", + "src": "41016:7:1" + } + ], + "id": 2188, + "name": "VariableDeclaration", + "src": "41016:11:1" + } + ], + "id": 2189, + "name": "ParameterList", + "src": "40998:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2190, + "name": "ElementaryTypeName", + "src": "41051:7:1" + } + ], + "id": 2191, + "name": "VariableDeclaration", + "src": "41051:7:1" + } + ], + "id": 2192, + "name": "ParameterList", + "src": "41050:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2194 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2215, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2193, + "name": "ElementaryTypeName", + "src": "41070:7:1" + } + ], + "id": 2194, + "name": "VariableDeclaration", + "src": "41070:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2195, + "name": "Identifier", + "src": "41089:3:1" + } + ], + "id": 2196, + "name": "MemberAccess", + "src": "41089:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2188, + "type": "bytes32", + "value": "key" + }, + "id": 2197, + "name": "Identifier", + "src": "41102:3:1" + } + ], + "id": 2198, + "name": "IndexAccess", + "src": "41089:17:1" + } + ], + "id": 2199, + "name": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2200, + "name": "Identifier", + "src": "41116:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2201, + "name": "Identifier", + "src": "41124:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2202, + "name": "Literal", + "src": "41136:1:1" + } + ], + "id": 2203, + "name": "BinaryOperation", + "src": "41124:13:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: nonexistent key\"", + "value": "EnumerableMap: nonexistent key" + }, + "id": 2204, + "name": "Literal", + "src": "41139:32:1" + } + ], + "id": 2205, + "name": "FunctionCall", + "src": "41116:56:1" + } + ], + "id": 2206, + "name": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "attributes": { + "functionReturnParameters": 2192 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2207, + "name": "Identifier", + "src": "41225:3:1" + } + ], + "id": 2208, + "name": "MemberAccess", + "src": "41225:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2209, + "name": "Identifier", + "src": "41238:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2210, + "name": "Literal", + "src": "41249:1:1" + } + ], + "id": 2211, + "name": "BinaryOperation", + "src": "41238:12:1" + } + ], + "id": 2212, + "name": "IndexAccess", + "src": "41225:26:1" + } + ], + "id": 2213, + "name": "MemberAccess", + "src": "41225:33:1" + } + ], + "id": 2214, + "name": "Return", + "src": "41218:40:1" + } + ], + "id": 2215, + "name": "Block", + "src": "41060:232:1" + } + ], + "id": 2216, + "name": "FunctionDefinition", + "src": "40985:307:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2217, + "name": "StructuredDocumentation", + "src": "41298:271:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2251, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2218, + "name": "UserDefinedTypeName", + "src": "41588:3:1" + } + ], + "id": 2219, + "name": "VariableDeclaration", + "src": "41588:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2220, + "name": "ElementaryTypeName", + "src": "41605:7:1" + } + ], + "id": 2221, + "name": "VariableDeclaration", + "src": "41605:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2251, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2222, + "name": "ElementaryTypeName", + "src": "41618:6:1" + } + ], + "id": 2223, + "name": "VariableDeclaration", + "src": "41618:26:1" + } + ], + "id": 2224, + "name": "ParameterList", + "src": "41587:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2225, + "name": "ElementaryTypeName", + "src": "41668:7:1" + } + ], + "id": 2226, + "name": "VariableDeclaration", + "src": "41668:7:1" + } + ], + "id": 2227, + "name": "ParameterList", + "src": "41667:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2229 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2250, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2228, + "name": "ElementaryTypeName", + "src": "41687:7:1" + } + ], + "id": 2229, + "name": "VariableDeclaration", + "src": "41687:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2230, + "name": "Identifier", + "src": "41706:3:1" + } + ], + "id": 2231, + "name": "MemberAccess", + "src": "41706:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2221, + "type": "bytes32", + "value": "key" + }, + "id": 2232, + "name": "Identifier", + "src": "41719:3:1" + } + ], + "id": 2233, + "name": "IndexAccess", + "src": "41706:17:1" + } + ], + "id": 2234, + "name": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2235, + "name": "Identifier", + "src": "41733:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2236, + "name": "Identifier", + "src": "41741:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2237, + "name": "Literal", + "src": "41753:1:1" + } + ], + "id": 2238, + "name": "BinaryOperation", + "src": "41741:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2223, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2239, + "name": "Identifier", + "src": "41756:12:1" + } + ], + "id": 2240, + "name": "FunctionCall", + "src": "41733:36:1" + } + ], + "id": 2241, + "name": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2227 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2242, + "name": "Identifier", + "src": "41822:3:1" + } + ], + "id": 2243, + "name": "MemberAccess", + "src": "41822:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2244, + "name": "Identifier", + "src": "41835:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2245, + "name": "Literal", + "src": "41846:1:1" + } + ], + "id": 2246, + "name": "BinaryOperation", + "src": "41835:12:1" + } + ], + "id": 2247, + "name": "IndexAccess", + "src": "41822:26:1" + } + ], + "id": 2248, + "name": "MemberAccess", + "src": "41822:33:1" + } + ], + "id": 2249, + "name": "Return", + "src": "41815:40:1" + } + ], + "id": 2250, + "name": "Block", + "src": "41677:212:1" + } + ], + "id": 2251, + "name": "FunctionDefinition", + "src": "41574:315:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.UintToAddressMap", + "name": "UintToAddressMap", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 2254, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2252, + "name": "UserDefinedTypeName", + "src": "41954:3:1" + } + ], + "id": 2253, + "name": "VariableDeclaration", + "src": "41954:10:1" + } + ], + "id": 2254, + "name": "StructDefinition", + "src": "41920:51:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2255, + "name": "StructuredDocumentation", + "src": "41977:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2286, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2256, + "name": "UserDefinedTypeName", + "src": "42211:16:1" + } + ], + "id": 2257, + "name": "VariableDeclaration", + "src": "42211:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2258, + "name": "ElementaryTypeName", + "src": "42241:7:1" + } + ], + "id": 2259, + "name": "VariableDeclaration", + "src": "42241:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2260, + "name": "ElementaryTypeName", + "src": "42254:7:1" + } + ], + "id": 2261, + "name": "VariableDeclaration", + "src": "42254:13:1" + } + ], + "id": 2262, + "name": "ParameterList", + "src": "42210:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2263, + "name": "ElementaryTypeName", + "src": "42287:4:1" + } + ], + "id": 2264, + "name": "VariableDeclaration", + "src": "42287:4:1" + } + ], + "id": 2265, + "name": "ParameterList", + "src": "42286:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2265 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1998, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)", + "value": "_set" + }, + "id": 2266, + "name": "Identifier", + "src": "42310:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2257, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2267, + "name": "Identifier", + "src": "42315:3:1" + } + ], + "id": 2268, + "name": "MemberAccess", + "src": "42315:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2269, + "name": "ElementaryTypeName", + "src": "42327:7:1" + } + ], + "id": 2270, + "name": "ElementaryTypeNameExpression", + "src": "42327:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2259, + "type": "uint256", + "value": "key" + }, + "id": 2271, + "name": "Identifier", + "src": "42335:3:1" + } + ], + "id": 2272, + "name": "FunctionCall", + "src": "42327:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2273, + "name": "ElementaryTypeName", + "src": "42341:7:1" + } + ], + "id": 2274, + "name": "ElementaryTypeNameExpression", + "src": "42341:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2275, + "name": "ElementaryTypeName", + "src": "42349:7:1" + } + ], + "id": 2276, + "name": "ElementaryTypeNameExpression", + "src": "42349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2277, + "name": "ElementaryTypeName", + "src": "42357:7:1" + } + ], + "id": 2278, + "name": "ElementaryTypeNameExpression", + "src": "42357:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2261, + "type": "address", + "value": "value" + }, + "id": 2279, + "name": "Identifier", + "src": "42365:5:1" + } + ], + "id": 2280, + "name": "FunctionCall", + "src": "42357:14:1" + } + ], + "id": 2281, + "name": "FunctionCall", + "src": "42349:23:1" + } + ], + "id": 2282, + "name": "FunctionCall", + "src": "42341:32:1" + } + ], + "id": 2283, + "name": "FunctionCall", + "src": "42310:64:1" + } + ], + "id": 2284, + "name": "Return", + "src": "42303:71:1" + } + ], + "id": 2285, + "name": "Block", + "src": "42293:88:1" + } + ], + "id": 2286, + "name": "FunctionDefinition", + "src": "42198:183:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2287, + "name": "StructuredDocumentation", + "src": "42387:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2306, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2288, + "name": "UserDefinedTypeName", + "src": "42556:16:1" + } + ], + "id": 2289, + "name": "VariableDeclaration", + "src": "42556:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2290, + "name": "ElementaryTypeName", + "src": "42586:7:1" + } + ], + "id": 2291, + "name": "VariableDeclaration", + "src": "42586:11:1" + } + ], + "id": 2292, + "name": "ParameterList", + "src": "42555:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2293, + "name": "ElementaryTypeName", + "src": "42617:4:1" + } + ], + "id": 2294, + "name": "VariableDeclaration", + "src": "42617:4:1" + } + ], + "id": 2295, + "name": "ParameterList", + "src": "42616:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2295 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2079, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 2296, + "name": "Identifier", + "src": "42640:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2289, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2297, + "name": "Identifier", + "src": "42648:3:1" + } + ], + "id": 2298, + "name": "MemberAccess", + "src": "42648:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2299, + "name": "ElementaryTypeName", + "src": "42660:7:1" + } + ], + "id": 2300, + "name": "ElementaryTypeNameExpression", + "src": "42660:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2291, + "type": "uint256", + "value": "key" + }, + "id": 2301, + "name": "Identifier", + "src": "42668:3:1" + } + ], + "id": 2302, + "name": "FunctionCall", + "src": "42660:12:1" + } + ], + "id": 2303, + "name": "FunctionCall", + "src": "42640:33:1" + } + ], + "id": 2304, + "name": "Return", + "src": "42633:40:1" + } + ], + "id": 2305, + "name": "Block", + "src": "42623:57:1" + } + ], + "id": 2306, + "name": "FunctionDefinition", + "src": "42540:140:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2307, + "name": "StructuredDocumentation", + "src": "42686:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2326, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2308, + "name": "UserDefinedTypeName", + "src": "42777:16:1" + } + ], + "id": 2309, + "name": "VariableDeclaration", + "src": "42777:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2310, + "name": "ElementaryTypeName", + "src": "42807:7:1" + } + ], + "id": 2311, + "name": "VariableDeclaration", + "src": "42807:11:1" + } + ], + "id": 2312, + "name": "ParameterList", + "src": "42776:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2313, + "name": "ElementaryTypeName", + "src": "42843:4:1" + } + ], + "id": 2314, + "name": "VariableDeclaration", + "src": "42843:4:1" + } + ], + "id": 2315, + "name": "ParameterList", + "src": "42842:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2315 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2097, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 2316, + "name": "Identifier", + "src": "42866:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2309, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2317, + "name": "Identifier", + "src": "42876:3:1" + } + ], + "id": 2318, + "name": "MemberAccess", + "src": "42876:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2319, + "name": "ElementaryTypeName", + "src": "42888:7:1" + } + ], + "id": 2320, + "name": "ElementaryTypeNameExpression", + "src": "42888:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2311, + "type": "uint256", + "value": "key" + }, + "id": 2321, + "name": "Identifier", + "src": "42896:3:1" + } + ], + "id": 2322, + "name": "FunctionCall", + "src": "42888:12:1" + } + ], + "id": 2323, + "name": "FunctionCall", + "src": "42866:35:1" + } + ], + "id": 2324, + "name": "Return", + "src": "42859:42:1" + } + ], + "id": 2325, + "name": "Block", + "src": "42849:59:1" + } + ], + "id": 2326, + "name": "FunctionDefinition", + "src": "42759:149:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2327, + "name": "StructuredDocumentation", + "src": "42914:72:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2340, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2328, + "name": "UserDefinedTypeName", + "src": "43007:16:1" + } + ], + "id": 2329, + "name": "VariableDeclaration", + "src": "43007:28:1" + } + ], + "id": 2330, + "name": "ParameterList", + "src": "43006:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2340, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2331, + "name": "ElementaryTypeName", + "src": "43060:7:1" + } + ], + "id": 2332, + "name": "VariableDeclaration", + "src": "43060:7:1" + } + ], + "id": 2333, + "name": "ParameterList", + "src": "43059:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2333 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2110, + "type": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 2334, + "name": "Identifier", + "src": "43086:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2329, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2335, + "name": "Identifier", + "src": "43094:3:1" + } + ], + "id": 2336, + "name": "MemberAccess", + "src": "43094:10:1" + } + ], + "id": 2337, + "name": "FunctionCall", + "src": "43086:19:1" + } + ], + "id": 2338, + "name": "Return", + "src": "43079:26:1" + } + ], + "id": 2339, + "name": "Block", + "src": "43069:43:1" + } + ], + "id": 2340, + "name": "FunctionDefinition", + "src": "42991:121:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2341, + "name": "StructuredDocumentation", + "src": "43117:318:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2379, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2342, + "name": "UserDefinedTypeName", + "src": "43452:16:1" + } + ], + "id": 2343, + "name": "VariableDeclaration", + "src": "43452:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2344, + "name": "ElementaryTypeName", + "src": "43482:7:1" + } + ], + "id": 2345, + "name": "VariableDeclaration", + "src": "43482:13:1" + } + ], + "id": 2346, + "name": "ParameterList", + "src": "43451:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2347, + "name": "ElementaryTypeName", + "src": "43520:7:1" + } + ], + "id": 2348, + "name": "VariableDeclaration", + "src": "43520:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2349, + "name": "ElementaryTypeName", + "src": "43529:7:1" + } + ], + "id": 2350, + "name": "VariableDeclaration", + "src": "43529:7:1" + } + ], + "id": 2351, + "name": "ParameterList", + "src": "43519:18:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2353, + 2355 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2352, + "name": "ElementaryTypeName", + "src": "43549:7:1" + } + ], + "id": 2353, + "name": "VariableDeclaration", + "src": "43549:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2354, + "name": "ElementaryTypeName", + "src": "43562:7:1" + } + ], + "id": 2355, + "name": "VariableDeclaration", + "src": "43562:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bytes32,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2145, + "type": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)", + "value": "_at" + }, + "id": 2356, + "name": "Identifier", + "src": "43579:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2343, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2357, + "name": "Identifier", + "src": "43583:3:1" + } + ], + "id": 2358, + "name": "MemberAccess", + "src": "43583:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2345, + "type": "uint256", + "value": "index" + }, + "id": 2359, + "name": "Identifier", + "src": "43595:5:1" + } + ], + "id": 2360, + "name": "FunctionCall", + "src": "43579:22:1" + } + ], + "id": 2361, + "name": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "attributes": { + "functionReturnParameters": 2351 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(uint256,address payable)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2362, + "name": "ElementaryTypeName", + "src": "43619:7:1" + } + ], + "id": 2363, + "name": "ElementaryTypeNameExpression", + "src": "43619:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2353, + "type": "bytes32", + "value": "key" + }, + "id": 2364, + "name": "Identifier", + "src": "43627:3:1" + } + ], + "id": 2365, + "name": "FunctionCall", + "src": "43619:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2366, + "name": "ElementaryTypeName", + "src": "43633:7:1" + } + ], + "id": 2367, + "name": "ElementaryTypeNameExpression", + "src": "43633:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2368, + "name": "ElementaryTypeName", + "src": "43641:7:1" + } + ], + "id": 2369, + "name": "ElementaryTypeNameExpression", + "src": "43641:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2370, + "name": "ElementaryTypeName", + "src": "43649:7:1" + } + ], + "id": 2371, + "name": "ElementaryTypeNameExpression", + "src": "43649:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2355, + "type": "bytes32", + "value": "value" + }, + "id": 2372, + "name": "Identifier", + "src": "43657:5:1" + } + ], + "id": 2373, + "name": "FunctionCall", + "src": "43649:14:1" + } + ], + "id": 2374, + "name": "FunctionCall", + "src": "43641:23:1" + } + ], + "id": 2375, + "name": "FunctionCall", + "src": "43633:32:1" + } + ], + "id": 2376, + "name": "TupleExpression", + "src": "43618:48:1" + } + ], + "id": 2377, + "name": "Return", + "src": "43611:55:1" + } + ], + "id": 2378, + "name": "Block", + "src": "43538:135:1" + } + ], + "id": 2379, + "name": "FunctionDefinition", + "src": "43440:233:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2380, + "name": "StructuredDocumentation", + "src": "43679:169:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2418, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2381, + "name": "UserDefinedTypeName", + "src": "43869:16:1" + } + ], + "id": 2382, + "name": "VariableDeclaration", + "src": "43869:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2383, + "name": "ElementaryTypeName", + "src": "43899:7:1" + } + ], + "id": 2384, + "name": "VariableDeclaration", + "src": "43899:11:1" + } + ], + "id": 2385, + "name": "ParameterList", + "src": "43868:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2386, + "name": "ElementaryTypeName", + "src": "43935:4:1" + } + ], + "id": 2387, + "name": "VariableDeclaration", + "src": "43935:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2388, + "name": "ElementaryTypeName", + "src": "43941:7:1" + } + ], + "id": 2389, + "name": "VariableDeclaration", + "src": "43941:7:1" + } + ], + "id": 2390, + "name": "ParameterList", + "src": "43934:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2392, + 2394 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "43961:4:1" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "43961:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "43975:7:1" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "43975:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2183, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)", + "value": "_tryGet" + }, + "id": 2395, + "name": "Identifier", + "src": "43992:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2382, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2396, + "name": "Identifier", + "src": "44000:3:1" + } + ], + "id": 2397, + "name": "MemberAccess", + "src": "44000:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "44012:7:1" + } + ], + "id": 2399, + "name": "ElementaryTypeNameExpression", + "src": "44012:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2384, + "type": "uint256", + "value": "key" + }, + "id": 2400, + "name": "Identifier", + "src": "44020:3:1" + } + ], + "id": 2401, + "name": "FunctionCall", + "src": "44012:12:1" + } + ], + "id": 2402, + "name": "FunctionCall", + "src": "43992:33:1" + } + ], + "id": 2403, + "name": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "attributes": { + "functionReturnParameters": 2390 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,address payable)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2392, + "type": "bool", + "value": "success" + }, + "id": 2404, + "name": "Identifier", + "src": "44043:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2405, + "name": "ElementaryTypeName", + "src": "44052:7:1" + } + ], + "id": 2406, + "name": "ElementaryTypeNameExpression", + "src": "44052:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "44060:7:1" + } + ], + "id": 2408, + "name": "ElementaryTypeNameExpression", + "src": "44060:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "44068:7:1" + } + ], + "id": 2410, + "name": "ElementaryTypeNameExpression", + "src": "44068:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2394, + "type": "bytes32", + "value": "value" + }, + "id": 2411, + "name": "Identifier", + "src": "44076:5:1" + } + ], + "id": 2412, + "name": "FunctionCall", + "src": "44068:14:1" + } + ], + "id": 2413, + "name": "FunctionCall", + "src": "44060:23:1" + } + ], + "id": 2414, + "name": "FunctionCall", + "src": "44052:32:1" + } + ], + "id": 2415, + "name": "TupleExpression", + "src": "44042:43:1" + } + ], + "id": 2416, + "name": "Return", + "src": "44035:50:1" + } + ], + "id": 2417, + "name": "Block", + "src": "43950:142:1" + } + ], + "id": 2418, + "name": "FunctionDefinition", + "src": "43853:239:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2419, + "name": "StructuredDocumentation", + "src": "44098:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2447, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2420, + "name": "UserDefinedTypeName", + "src": "44257:16:1" + } + ], + "id": 2421, + "name": "VariableDeclaration", + "src": "44257:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2422, + "name": "ElementaryTypeName", + "src": "44287:7:1" + } + ], + "id": 2423, + "name": "VariableDeclaration", + "src": "44287:11:1" + } + ], + "id": 2424, + "name": "ParameterList", + "src": "44256:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2425, + "name": "ElementaryTypeName", + "src": "44323:7:1" + } + ], + "id": 2426, + "name": "VariableDeclaration", + "src": "44323:7:1" + } + ], + "id": 2427, + "name": "ParameterList", + "src": "44322:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2427 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2428, + "name": "ElementaryTypeName", + "src": "44349:7:1" + } + ], + "id": 2429, + "name": "ElementaryTypeNameExpression", + "src": "44349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2430, + "name": "ElementaryTypeName", + "src": "44357:7:1" + } + ], + "id": 2431, + "name": "ElementaryTypeNameExpression", + "src": "44357:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2432, + "name": "ElementaryTypeName", + "src": "44365:7:1" + } + ], + "id": 2433, + "name": "ElementaryTypeNameExpression", + "src": "44365:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)", + "value": "_get" + }, + "id": 2434, + "name": "Identifier", + "src": "44373:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2421, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2435, + "name": "Identifier", + "src": "44378:3:1" + } + ], + "id": 2436, + "name": "MemberAccess", + "src": "44378:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "44390:7:1" + } + ], + "id": 2438, + "name": "ElementaryTypeNameExpression", + "src": "44390:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2423, + "type": "uint256", + "value": "key" + }, + "id": 2439, + "name": "Identifier", + "src": "44398:3:1" + } + ], + "id": 2440, + "name": "FunctionCall", + "src": "44390:12:1" + } + ], + "id": 2441, + "name": "FunctionCall", + "src": "44373:30:1" + } + ], + "id": 2442, + "name": "FunctionCall", + "src": "44365:39:1" + } + ], + "id": 2443, + "name": "FunctionCall", + "src": "44357:48:1" + } + ], + "id": 2444, + "name": "FunctionCall", + "src": "44349:57:1" + } + ], + "id": 2445, + "name": "Return", + "src": "44342:64:1" + } + ], + "id": 2446, + "name": "Block", + "src": "44332:81:1" + } + ], + "id": 2447, + "name": "FunctionDefinition", + "src": "44244:169:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2448, + "name": "StructuredDocumentation", + "src": "44419:269:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2479, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2449, + "name": "UserDefinedTypeName", + "src": "44706:16:1" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "44706:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2451, + "name": "ElementaryTypeName", + "src": "44736:7:1" + } + ], + "id": 2452, + "name": "VariableDeclaration", + "src": "44736:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2479, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "44749:6:1" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "44749:26:1" + } + ], + "id": 2455, + "name": "ParameterList", + "src": "44705:71:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2456, + "name": "ElementaryTypeName", + "src": "44800:7:1" + } + ], + "id": 2457, + "name": "VariableDeclaration", + "src": "44800:7:1" + } + ], + "id": 2458, + "name": "ParameterList", + "src": "44799:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2458 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "44826:7:1" + } + ], + "id": 2460, + "name": "ElementaryTypeNameExpression", + "src": "44826:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "44834:7:1" + } + ], + "id": 2462, + "name": "ElementaryTypeNameExpression", + "src": "44834:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2463, + "name": "ElementaryTypeName", + "src": "44842:7:1" + } + ], + "id": 2464, + "name": "ElementaryTypeNameExpression", + "src": "44842:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)", + "value": "_get" + }, + "id": 2465, + "name": "Identifier", + "src": "44850:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2450, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2466, + "name": "Identifier", + "src": "44855:3:1" + } + ], + "id": 2467, + "name": "MemberAccess", + "src": "44855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2468, + "name": "ElementaryTypeName", + "src": "44867:7:1" + } + ], + "id": 2469, + "name": "ElementaryTypeNameExpression", + "src": "44867:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2452, + "type": "uint256", + "value": "key" + }, + "id": 2470, + "name": "Identifier", + "src": "44875:3:1" + } + ], + "id": 2471, + "name": "FunctionCall", + "src": "44867:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2454, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2472, + "name": "Identifier", + "src": "44881:12:1" + } + ], + "id": 2473, + "name": "FunctionCall", + "src": "44850:44:1" + } + ], + "id": 2474, + "name": "FunctionCall", + "src": "44842:53:1" + } + ], + "id": 2475, + "name": "FunctionCall", + "src": "44834:62:1" + } + ], + "id": 2476, + "name": "FunctionCall", + "src": "44826:71:1" + } + ], + "id": 2477, + "name": "Return", + "src": "44819:78:1" + } + ], + "id": 2478, + "name": "Block", + "src": "44809:95:1" + } + ], + "id": 2479, + "name": "FunctionDefinition", + "src": "44693:211:1" + } + ], + "id": 2480, + "name": "ContractDefinition", + "src": "35943:8963:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2481, + "name": "PragmaDirective", + "src": "44959:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev String operations." + }, + "id": 2482, + "name": "StructuredDocumentation", + "src": "44992:34:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toString", + "scope": 2566, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2483, + "name": "StructuredDocumentation", + "src": "45049:82:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2565, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2484, + "name": "ElementaryTypeName", + "src": "45154:7:1" + } + ], + "id": 2485, + "name": "VariableDeclaration", + "src": "45154:13:1" + } + ], + "id": 2486, + "name": "ParameterList", + "src": "45153:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2565, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "45192:6:1" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "45192:13:1" + } + ], + "id": 2489, + "name": "ParameterList", + "src": "45191:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2490, + "name": "Identifier", + "src": "45409:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2491, + "name": "Literal", + "src": "45418:1:1" + } + ], + "id": 2492, + "name": "BinaryOperation", + "src": "45409:10:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"0\"", + "value": "0" + }, + "id": 2493, + "name": "Literal", + "src": "45442:3:1" + } + ], + "id": 2494, + "name": "Return", + "src": "45435:10:1" + } + ], + "id": 2495, + "name": "Block", + "src": "45421:35:1" + } + ], + "id": 2496, + "name": "IfStatement", + "src": "45405:51:1" + }, + { + "attributes": { + "assignments": [ + 2498 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "temp", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2497, + "name": "ElementaryTypeName", + "src": "45465:7:1" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "45465:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2499, + "name": "Identifier", + "src": "45480:5:1" + } + ], + "id": 2500, + "name": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "attributes": { + "assignments": [ + 2502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "digits", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "45495:7:1" + } + ], + "id": 2502, + "name": "VariableDeclaration", + "src": "45495:14:1" + } + ], + "id": 2503, + "name": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2504, + "name": "Identifier", + "src": "45526:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2505, + "name": "Literal", + "src": "45534:1:1" + } + ], + "id": 2506, + "name": "BinaryOperation", + "src": "45526:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2507, + "name": "Identifier", + "src": "45551:6:1" + } + ], + "id": 2508, + "name": "UnaryOperation", + "src": "45551:8:1" + } + ], + "id": 2509, + "name": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2510, + "name": "Identifier", + "src": "45573:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2511, + "name": "Literal", + "src": "45581:2:1" + } + ], + "id": 2512, + "name": "Assignment", + "src": "45573:10:1" + } + ], + "id": 2513, + "name": "ExpressionStatement", + "src": "45573:10:1" + } + ], + "id": 2514, + "name": "Block", + "src": "45537:57:1" + } + ], + "id": 2515, + "name": "WhileStatement", + "src": "45519:75:1" + }, + { + "attributes": { + "assignments": [ + 2517 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "buffer", + "scope": 2564, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2516, + "name": "ElementaryTypeName", + "src": "45603:5:1" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "45603:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "function (uint256) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "45629:5:1" + } + ], + "id": 2519, + "name": "NewExpression", + "src": "45625:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2520, + "name": "Identifier", + "src": "45635:6:1" + } + ], + "id": 2521, + "name": "FunctionCall", + "src": "45625:17:1" + } + ], + "id": 2522, + "name": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "attributes": { + "assignments": [ + 2524 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2523, + "name": "ElementaryTypeName", + "src": "45652:7:1" + } + ], + "id": 2524, + "name": "VariableDeclaration", + "src": "45652:13:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2525, + "name": "Identifier", + "src": "45668:6:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2526, + "name": "Literal", + "src": "45677:1:1" + } + ], + "id": 2527, + "name": "BinaryOperation", + "src": "45668:10:1" + } + ], + "id": 2528, + "name": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2529, + "name": "Identifier", + "src": "45688:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2530, + "name": "Identifier", + "src": "45695:5:1" + } + ], + "id": 2531, + "name": "Assignment", + "src": "45688:12:1" + } + ], + "id": 2532, + "name": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2533, + "name": "Identifier", + "src": "45717:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2534, + "name": "Literal", + "src": "45725:1:1" + } + ], + "id": 2535, + "name": "BinaryOperation", + "src": "45717:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2536, + "name": "Identifier", + "src": "45742:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "--", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2524, + "type": "uint256", + "value": "index" + }, + "id": 2537, + "name": "Identifier", + "src": "45749:5:1" + } + ], + "id": 2538, + "name": "UnaryOperation", + "src": "45749:7:1" + } + ], + "id": 2539, + "name": "IndexAccess", + "src": "45742:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes1", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes1)" + }, + "children": [ + { + "attributes": { + "name": "bytes1" + }, + "id": 2540, + "name": "ElementaryTypeName", + "src": "45760:6:1" + } + ], + "id": 2541, + "name": "ElementaryTypeNameExpression", + "src": "45760:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 2542, + "name": "ElementaryTypeName", + "src": "45767:5:1" + } + ], + "id": 2543, + "name": "ElementaryTypeNameExpression", + "src": "45767:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "hexvalue": "3438", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 48", + "value": "48" + }, + "id": 2544, + "name": "Literal", + "src": "45773:2:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2545, + "name": "Identifier", + "src": "45778:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2546, + "name": "Literal", + "src": "45785:2:1" + } + ], + "id": 2547, + "name": "BinaryOperation", + "src": "45778:9:1" + } + ], + "id": 2548, + "name": "BinaryOperation", + "src": "45773:14:1" + } + ], + "id": 2549, + "name": "FunctionCall", + "src": "45767:21:1" + } + ], + "id": 2550, + "name": "FunctionCall", + "src": "45760:29:1" + } + ], + "id": 2551, + "name": "Assignment", + "src": "45742:47:1" + } + ], + "id": 2552, + "name": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2553, + "name": "Identifier", + "src": "45803:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2554, + "name": "Literal", + "src": "45811:2:1" + } + ], + "id": 2555, + "name": "Assignment", + "src": "45803:10:1" + } + ], + "id": 2556, + "name": "ExpressionStatement", + "src": "45803:10:1" + } + ], + "id": 2557, + "name": "Block", + "src": "45728:96:1" + } + ], + "id": 2558, + "name": "WhileStatement", + "src": "45710:114:1" + }, + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2559, + "name": "ElementaryTypeName", + "src": "45840:6:1" + } + ], + "id": 2560, + "name": "ElementaryTypeNameExpression", + "src": "45840:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2561, + "name": "Identifier", + "src": "45847:6:1" + } + ], + "id": 2562, + "name": "FunctionCall", + "src": "45840:14:1" + } + ], + "id": 2563, + "name": "Return", + "src": "45833:21:1" + } + ], + "id": 2564, + "name": "Block", + "src": "45207:654:1" + } + ], + "id": 2565, + "name": "FunctionDefinition", + "src": "45136:725:1" + } + ], + "id": 2566, + "name": "ContractDefinition", + "src": "45027:836:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2567, + "name": "PragmaDirective", + "src": "45922:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 2568, + "name": "StructuredDocumentation", + "src": "45955:124:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "Context", + "referencedDeclaration": 530, + "type": "contract Context" + }, + "id": 2569, + "name": "UserDefinedTypeName", + "src": "46099:7:1" + } + ], + "id": 2570, + "name": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "ERC165", + "referencedDeclaration": 781, + "type": "contract ERC165" + }, + "id": 2571, + "name": "UserDefinedTypeName", + "src": "46108:6:1" + } + ], + "id": 2572, + "name": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 2573, + "name": "UserDefinedTypeName", + "src": "46116:7:1" + } + ], + "id": 2574, + "name": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Metadata", + "referencedDeclaration": 680, + "type": "contract IERC721Metadata" + }, + "id": 2575, + "name": "UserDefinedTypeName", + "src": "46125:15:1" + } + ], + "id": 2576, + "name": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Enumerable", + "referencedDeclaration": 709, + "type": "contract IERC721Enumerable" + }, + "id": 2577, + "name": "UserDefinedTypeName", + "src": "46142:17:1" + } + ], + "id": 2578, + "name": "InheritanceSpecifier", + "src": "46142:17:1" + }, + { + "children": [ + { + "attributes": { + "name": "SafeMath", + "referencedDeclaration": 1135, + "type": "library SafeMath" + }, + "id": 2579, + "name": "UserDefinedTypeName", + "src": "46172:8:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2580, + "name": "ElementaryTypeName", + "src": "46185:7:1" + } + ], + "id": 2581, + "name": "UsingForDirective", + "src": "46166:27:1" + }, + { + "children": [ + { + "attributes": { + "name": "Address", + "referencedDeclaration": 1430, + "type": "library Address" + }, + "id": 2582, + "name": "UserDefinedTypeName", + "src": "46204:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "46216:7:1" + } + ], + "id": 2584, + "name": "UsingForDirective", + "src": "46198:26:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableSet", + "referencedDeclaration": 1921, + "type": "library EnumerableSet" + }, + "id": 2585, + "name": "UserDefinedTypeName", + "src": "46235:13:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2586, + "name": "UserDefinedTypeName", + "src": "46253:21:1" + } + ], + "id": 2587, + "name": "UsingForDirective", + "src": "46229:46:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableMap", + "referencedDeclaration": 2480, + "type": "library EnumerableMap" + }, + "id": 2588, + "name": "UserDefinedTypeName", + "src": "46286:13:1" + }, + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2589, + "name": "UserDefinedTypeName", + "src": "46304:30:1" + } + ], + "id": 2590, + "name": "UsingForDirective", + "src": "46280:55:1" + }, + { + "children": [ + { + "attributes": { + "name": "Strings", + "referencedDeclaration": 2566, + "type": "library Strings" + }, + "id": 2591, + "name": "UserDefinedTypeName", + "src": "46346:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2592, + "name": "ElementaryTypeName", + "src": "46358:7:1" + } + ], + "id": 2593, + "name": "UsingForDirective", + "src": "46340:26:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "46544:6:1" + }, + { + "attributes": { + "hexvalue": "30783135306237613032", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 353073666", + "value": "0x150b7a02" + }, + "id": 2595, + "name": "Literal", + "src": "46587:10:1" + } + ], + "id": 2596, + "name": "VariableDeclaration", + "src": "46544:53:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_holderTokens", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => struct EnumerableSet.UintSet)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct EnumerableSet.UintSet)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2597, + "name": "ElementaryTypeName", + "src": "46690:7:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2598, + "name": "UserDefinedTypeName", + "src": "46701:21:1" + } + ], + "id": 2599, + "name": "Mapping", + "src": "46681:42:1" + } + ], + "id": 2600, + "name": "VariableDeclaration", + "src": "46681:64:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenOwners", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2601, + "name": "UserDefinedTypeName", + "src": "46809:30:1" + } + ], + "id": 2602, + "name": "VariableDeclaration", + "src": "46809:51:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => address)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => address)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2603, + "name": "ElementaryTypeName", + "src": "46925:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "46936:7:1" + } + ], + "id": 2605, + "name": "Mapping", + "src": "46916:28:1" + } + ], + "id": 2606, + "name": "VariableDeclaration", + "src": "46916:52:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_operatorApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => mapping(address => bool))", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => mapping(address => bool))" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2607, + "name": "ElementaryTypeName", + "src": "47032:7:1" + }, + { + "attributes": { + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2608, + "name": "ElementaryTypeName", + "src": "47052:7:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2609, + "name": "ElementaryTypeName", + "src": "47063:4:1" + } + ], + "id": 2610, + "name": "Mapping", + "src": "47043:25:1" + } + ], + "id": 2611, + "name": "Mapping", + "src": "47023:46:1" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "47023:73:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_name", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "47121:6:1" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "47121:20:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_symbol", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "47168:6:1" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "47168:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURIs", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => string)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => string)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "47245:7:1" + }, + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2618, + "name": "ElementaryTypeName", + "src": "47256:6:1" + } + ], + "id": 2619, + "name": "Mapping", + "src": "47236:27:1" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "47236:46:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_baseURI", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2621, + "name": "ElementaryTypeName", + "src": "47305:6:1" + } + ], + "id": 2622, + "name": "VariableDeclaration", + "src": "47305:23:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2623, + "name": "ElementaryTypeName", + "src": "48204:6:1" + }, + { + "attributes": { + "hexvalue": "30783830616335386364", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2158778573", + "value": "0x80ac58cd" + }, + "id": 2624, + "name": "Literal", + "src": "48251:10:1" + } + ], + "id": 2625, + "name": "VariableDeclaration", + "src": "48204:57:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2626, + "name": "ElementaryTypeName", + "src": "48527:6:1" + }, + { + "attributes": { + "hexvalue": "30783562356531333966", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1532892063", + "value": "0x5b5e139f" + }, + "id": 2627, + "name": "Literal", + "src": "48583:10:1" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "48527:66:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "48898:6:1" + }, + { + "attributes": { + "hexvalue": "30783738306539643633", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2014223715", + "value": "0x780e9d63" + }, + "id": 2630, + "name": "Literal", + "src": "48956:10:1" + } + ], + "id": 2631, + "name": "VariableDeclaration", + "src": "48898:68:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2632, + "name": "StructuredDocumentation", + "src": "48973:108:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "name_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2633, + "name": "ElementaryTypeName", + "src": "49099:6:1" + } + ], + "id": 2634, + "name": "VariableDeclaration", + "src": "49099:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "symbol_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2635, + "name": "ElementaryTypeName", + "src": "49120:6:1" + } + ], + "id": 2636, + "name": "VariableDeclaration", + "src": "49120:21:1" + } + ], + "id": 2637, + "name": "ParameterList", + "src": "49098:44:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2638, + "name": "ParameterList", + "src": "49143:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2639, + "name": "Identifier", + "src": "49153:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2634, + "type": "string memory", + "value": "name_" + }, + "id": 2640, + "name": "Identifier", + "src": "49161:5:1" + } + ], + "id": 2641, + "name": "Assignment", + "src": "49153:13:1" + } + ], + "id": 2642, + "name": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2643, + "name": "Identifier", + "src": "49176:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2636, + "type": "string memory", + "value": "symbol_" + }, + "id": 2644, + "name": "Identifier", + "src": "49186:7:1" + } + ], + "id": 2645, + "name": "Assignment", + "src": "49176:17:1" + } + ], + "id": 2646, + "name": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2647, + "name": "Identifier", + "src": "49281:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2625, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721" + }, + "id": 2648, + "name": "Identifier", + "src": "49300:20:1" + } + ], + "id": 2649, + "name": "FunctionCall", + "src": "49281:40:1" + } + ], + "id": 2650, + "name": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2651, + "name": "Identifier", + "src": "49331:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2628, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_METADATA" + }, + "id": 2652, + "name": "Identifier", + "src": "49350:29:1" + } + ], + "id": 2653, + "name": "FunctionCall", + "src": "49331:49:1" + } + ], + "id": 2654, + "name": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2655, + "name": "Identifier", + "src": "49390:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2631, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_ENUMERABLE" + }, + "id": 2656, + "name": "Identifier", + "src": "49409:31:1" + } + ], + "id": 2657, + "name": "FunctionCall", + "src": "49390:51:1" + } + ], + "id": 2658, + "name": "ExpressionStatement", + "src": "49390:51:1" + } + ], + "id": 2659, + "name": "Block", + "src": "49143:305:1" + } + ], + "id": 2660, + "name": "FunctionDefinition", + "src": "49086:362:1" + }, + { + "attributes": { + "baseFunctions": [ + 580 + ], + "functionSelector": "70a08231", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-balanceOf}." + }, + "id": 2661, + "name": "StructuredDocumentation", + "src": "49454:48:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2665, + "name": "OverrideSpecifier", + "src": "49561:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2662, + "name": "ElementaryTypeName", + "src": "49526:7:1" + } + ], + "id": 2663, + "name": "VariableDeclaration", + "src": "49526:13:1" + } + ], + "id": 2664, + "name": "ParameterList", + "src": "49525:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2666, + "name": "ElementaryTypeName", + "src": "49579:7:1" + } + ], + "id": 2667, + "name": "VariableDeclaration", + "src": "49579:7:1" + } + ], + "id": 2668, + "name": "ParameterList", + "src": "49578:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2669, + "name": "Identifier", + "src": "49598:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2670, + "name": "Identifier", + "src": "49606:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2671, + "name": "ElementaryTypeName", + "src": "49615:7:1" + } + ], + "id": 2672, + "name": "ElementaryTypeNameExpression", + "src": "49615:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2673, + "name": "Literal", + "src": "49623:1:1" + } + ], + "id": 2674, + "name": "FunctionCall", + "src": "49615:10:1" + } + ], + "id": 2675, + "name": "BinaryOperation", + "src": "49606:19:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: balance query for the zero address\"", + "value": "ERC721: balance query for the zero address" + }, + "id": 2676, + "name": "Literal", + "src": "49627:44:1" + } + ], + "id": 2677, + "name": "FunctionCall", + "src": "49598:74:1" + } + ], + "id": 2678, + "name": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "attributes": { + "functionReturnParameters": 2668 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 1900, + "type": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2679, + "name": "Identifier", + "src": "49689:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2680, + "name": "Identifier", + "src": "49703:5:1" + } + ], + "id": 2681, + "name": "IndexAccess", + "src": "49689:20:1" + } + ], + "id": 2682, + "name": "MemberAccess", + "src": "49689:27:1" + } + ], + "id": 2683, + "name": "FunctionCall", + "src": "49689:29:1" + } + ], + "id": 2684, + "name": "Return", + "src": "49682:36:1" + } + ], + "id": 2685, + "name": "Block", + "src": "49588:137:1" + } + ], + "id": 2686, + "name": "FunctionDefinition", + "src": "49507:218:1" + }, + { + "attributes": { + "baseFunctions": [ + 588 + ], + "functionSelector": "6352211e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-ownerOf}." + }, + "id": 2687, + "name": "StructuredDocumentation", + "src": "49731:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2691, + "name": "OverrideSpecifier", + "src": "49836:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2688, + "name": "ElementaryTypeName", + "src": "49799:7:1" + } + ], + "id": 2689, + "name": "VariableDeclaration", + "src": "49799:15:1" + } + ], + "id": 2690, + "name": "ParameterList", + "src": "49798:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2692, + "name": "ElementaryTypeName", + "src": "49854:7:1" + } + ], + "id": 2693, + "name": "VariableDeclaration", + "src": "49854:7:1" + } + ], + "id": 2694, + "name": "ParameterList", + "src": "49853:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "get", + "referencedDeclaration": 2479, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2695, + "name": "Identifier", + "src": "49880:12:1" + } + ], + "id": 2696, + "name": "MemberAccess", + "src": "49880:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2689, + "type": "uint256", + "value": "tokenId" + }, + "id": 2697, + "name": "Identifier", + "src": "49897:7:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: owner query for nonexistent token\"", + "value": "ERC721: owner query for nonexistent token" + }, + "id": 2698, + "name": "Literal", + "src": "49906:43:1" + } + ], + "id": 2699, + "name": "FunctionCall", + "src": "49880:70:1" + } + ], + "id": 2700, + "name": "Return", + "src": "49873:77:1" + } + ], + "id": 2701, + "name": "Block", + "src": "49863:94:1" + } + ], + "id": 2702, + "name": "FunctionDefinition", + "src": "49782:175:1" + }, + { + "attributes": { + "baseFunctions": [ + 665 + ], + "functionSelector": "06fdde03", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-name}." + }, + "id": 2703, + "name": "StructuredDocumentation", + "src": "49963:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2705, + "name": "OverrideSpecifier", + "src": "50055:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2704, + "name": "ParameterList", + "src": "50032:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2712, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2706, + "name": "ElementaryTypeName", + "src": "50073:6:1" + } + ], + "id": 2707, + "name": "VariableDeclaration", + "src": "50073:13:1" + } + ], + "id": 2708, + "name": "ParameterList", + "src": "50072:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2708 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2709, + "name": "Identifier", + "src": "50105:5:1" + } + ], + "id": 2710, + "name": "Return", + "src": "50098:12:1" + } + ], + "id": 2711, + "name": "Block", + "src": "50088:29:1" + } + ], + "id": 2712, + "name": "FunctionDefinition", + "src": "50019:98:1" + }, + { + "attributes": { + "baseFunctions": [ + 671 + ], + "functionSelector": "95d89b41", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-symbol}." + }, + "id": 2713, + "name": "StructuredDocumentation", + "src": "50123:53:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2715, + "name": "OverrideSpecifier", + "src": "50219:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2714, + "name": "ParameterList", + "src": "50196:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2722, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2716, + "name": "ElementaryTypeName", + "src": "50237:6:1" + } + ], + "id": 2717, + "name": "VariableDeclaration", + "src": "50237:13:1" + } + ], + "id": 2718, + "name": "ParameterList", + "src": "50236:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2718 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2719, + "name": "Identifier", + "src": "50269:7:1" + } + ], + "id": 2720, + "name": "Return", + "src": "50262:14:1" + } + ], + "id": 2721, + "name": "Block", + "src": "50252:31:1" + } + ], + "id": 2722, + "name": "FunctionDefinition", + "src": "50181:102:1" + }, + { + "attributes": { + "baseFunctions": [ + 679 + ], + "functionSelector": "c87b56dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "id": 2723, + "name": "StructuredDocumentation", + "src": "50289:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2727, + "name": "OverrideSpecifier", + "src": "50404:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2790, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2724, + "name": "ElementaryTypeName", + "src": "50367:7:1" + } + ], + "id": 2725, + "name": "VariableDeclaration", + "src": "50367:15:1" + } + ], + "id": 2726, + "name": "ParameterList", + "src": "50366:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2790, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2728, + "name": "ElementaryTypeName", + "src": "50422:6:1" + } + ], + "id": 2729, + "name": "VariableDeclaration", + "src": "50422:13:1" + } + ], + "id": 2730, + "name": "ParameterList", + "src": "50421:15:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2731, + "name": "Identifier", + "src": "50447:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2732, + "name": "Identifier", + "src": "50455:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2733, + "name": "Identifier", + "src": "50463:7:1" + } + ], + "id": 2734, + "name": "FunctionCall", + "src": "50455:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI query for nonexistent token\"", + "value": "ERC721Metadata: URI query for nonexistent token" + }, + "id": 2735, + "name": "Literal", + "src": "50473:49:1" + } + ], + "id": 2736, + "name": "FunctionCall", + "src": "50447:76:1" + } + ], + "id": 2737, + "name": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "attributes": { + "assignments": [ + 2739 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2738, + "name": "ElementaryTypeName", + "src": "50534:6:1" + } + ], + "id": 2739, + "name": "VariableDeclaration", + "src": "50534:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 2740, + "name": "Identifier", + "src": "50560:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2741, + "name": "Identifier", + "src": "50571:7:1" + } + ], + "id": 2742, + "name": "IndexAccess", + "src": "50560:19:1" + } + ], + "id": 2743, + "name": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "attributes": { + "assignments": [ + 2745 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "base", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2744, + "name": "ElementaryTypeName", + "src": "50589:6:1" + } + ], + "id": 2745, + "name": "VariableDeclaration", + "src": "50589:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2799, + "type": "function () view returns (string memory)", + "value": "baseURI" + }, + "id": 2746, + "name": "Identifier", + "src": "50610:7:1" + } + ], + "id": 2747, + "name": "FunctionCall", + "src": "50610:9:1" + } + ], + "id": 2748, + "name": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2749, + "name": "ElementaryTypeName", + "src": "50692:5:1" + } + ], + "id": 2750, + "name": "ElementaryTypeNameExpression", + "src": "50692:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2751, + "name": "Identifier", + "src": "50698:4:1" + } + ], + "id": 2752, + "name": "FunctionCall", + "src": "50692:11:1" + } + ], + "id": 2753, + "name": "MemberAccess", + "src": "50692:18:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2754, + "name": "Literal", + "src": "50714:1:1" + } + ], + "id": 2755, + "name": "BinaryOperation", + "src": "50692:23:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2756, + "name": "Identifier", + "src": "50738:9:1" + } + ], + "id": 2757, + "name": "Return", + "src": "50731:16:1" + } + ], + "id": 2758, + "name": "Block", + "src": "50717:41:1" + } + ], + "id": 2759, + "name": "IfStatement", + "src": "50688:70:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2760, + "name": "ElementaryTypeName", + "src": "50860:5:1" + } + ], + "id": 2761, + "name": "ElementaryTypeNameExpression", + "src": "50860:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2762, + "name": "Identifier", + "src": "50866:9:1" + } + ], + "id": 2763, + "name": "FunctionCall", + "src": "50860:16:1" + } + ], + "id": 2764, + "name": "MemberAccess", + "src": "50860:23:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2765, + "name": "Literal", + "src": "50886:1:1" + } + ], + "id": 2766, + "name": "BinaryOperation", + "src": "50860:27:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2767, + "name": "ElementaryTypeName", + "src": "50910:6:1" + } + ], + "id": 2768, + "name": "ElementaryTypeNameExpression", + "src": "50910:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2769, + "name": "Identifier", + "src": "50917:3:1" + } + ], + "id": 2770, + "name": "MemberAccess", + "src": "50917:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2771, + "name": "Identifier", + "src": "50934:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2772, + "name": "Identifier", + "src": "50940:9:1" + } + ], + "id": 2773, + "name": "FunctionCall", + "src": "50917:33:1" + } + ], + "id": 2774, + "name": "FunctionCall", + "src": "50910:41:1" + } + ], + "id": 2775, + "name": "Return", + "src": "50903:48:1" + } + ], + "id": 2776, + "name": "Block", + "src": "50889:73:1" + } + ], + "id": 2777, + "name": "IfStatement", + "src": "50856:106:1" + }, + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2778, + "name": "ElementaryTypeName", + "src": "51068:6:1" + } + ], + "id": 2779, + "name": "ElementaryTypeNameExpression", + "src": "51068:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2780, + "name": "Identifier", + "src": "51075:3:1" + } + ], + "id": 2781, + "name": "MemberAccess", + "src": "51075:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2782, + "name": "Identifier", + "src": "51092:4:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "toString", + "referencedDeclaration": 2565, + "type": "function (uint256) pure returns (string memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2783, + "name": "Identifier", + "src": "51098:7:1" + } + ], + "id": 2784, + "name": "MemberAccess", + "src": "51098:16:1" + } + ], + "id": 2785, + "name": "FunctionCall", + "src": "51098:18:1" + } + ], + "id": 2786, + "name": "FunctionCall", + "src": "51075:42:1" + } + ], + "id": 2787, + "name": "FunctionCall", + "src": "51068:50:1" + } + ], + "id": 2788, + "name": "Return", + "src": "51061:57:1" + } + ], + "id": 2789, + "name": "Block", + "src": "50437:688:1" + } + ], + "id": 2790, + "name": "FunctionDefinition", + "src": "50349:776:1" + }, + { + "attributes": { + "functionSelector": "6c0360eb", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "baseURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "id": 2791, + "name": "StructuredDocumentation", + "src": "51131:221:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2792, + "name": "ParameterList", + "src": "51373:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2799, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2793, + "name": "ElementaryTypeName", + "src": "51405:6:1" + } + ], + "id": 2794, + "name": "VariableDeclaration", + "src": "51405:13:1" + } + ], + "id": 2795, + "name": "ParameterList", + "src": "51404:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2795 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 2796, + "name": "Identifier", + "src": "51437:8:1" + } + ], + "id": 2797, + "name": "Return", + "src": "51430:15:1" + } + ], + "id": 2798, + "name": "Block", + "src": "51420:32:1" + } + ], + "id": 2799, + "name": "FunctionDefinition", + "src": "51357:95:1" + }, + { + "attributes": { + "baseFunctions": [ + 700 + ], + "functionSelector": "2f745c59", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "id": 2800, + "name": "StructuredDocumentation", + "src": "51458:68:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2806, + "name": "OverrideSpecifier", + "src": "51610:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2801, + "name": "ElementaryTypeName", + "src": "51560:7:1" + } + ], + "id": 2802, + "name": "VariableDeclaration", + "src": "51560:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2803, + "name": "ElementaryTypeName", + "src": "51575:7:1" + } + ], + "id": 2804, + "name": "VariableDeclaration", + "src": "51575:13:1" + } + ], + "id": 2805, + "name": "ParameterList", + "src": "51559:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2807, + "name": "ElementaryTypeName", + "src": "51628:7:1" + } + ], + "id": 2808, + "name": "VariableDeclaration", + "src": "51628:7:1" + } + ], + "id": 2809, + "name": "ParameterList", + "src": "51627:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2809 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 1920, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2810, + "name": "Identifier", + "src": "51654:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2802, + "type": "address", + "value": "owner" + }, + "id": 2811, + "name": "Identifier", + "src": "51668:5:1" + } + ], + "id": 2812, + "name": "IndexAccess", + "src": "51654:20:1" + } + ], + "id": 2813, + "name": "MemberAccess", + "src": "51654:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2804, + "type": "uint256", + "value": "index" + }, + "id": 2814, + "name": "Identifier", + "src": "51678:5:1" + } + ], + "id": 2815, + "name": "FunctionCall", + "src": "51654:30:1" + } + ], + "id": 2816, + "name": "Return", + "src": "51647:37:1" + } + ], + "id": 2817, + "name": "Block", + "src": "51637:54:1" + } + ], + "id": 2818, + "name": "FunctionDefinition", + "src": "51531:160:1" + }, + { + "attributes": { + "baseFunctions": [ + 690 + ], + "functionSelector": "18160ddd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "id": 2819, + "name": "StructuredDocumentation", + "src": "51697:60:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2821, + "name": "OverrideSpecifier", + "src": "51805:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2820, + "name": "ParameterList", + "src": "51782:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2830, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2822, + "name": "ElementaryTypeName", + "src": "51823:7:1" + } + ], + "id": 2823, + "name": "VariableDeclaration", + "src": "51823:7:1" + } + ], + "id": 2824, + "name": "ParameterList", + "src": "51822:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2824 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 2340, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2825, + "name": "Identifier", + "src": "51942:12:1" + } + ], + "id": 2826, + "name": "MemberAccess", + "src": "51942:19:1" + } + ], + "id": 2827, + "name": "FunctionCall", + "src": "51942:21:1" + } + ], + "id": 2828, + "name": "Return", + "src": "51935:28:1" + } + ], + "id": 2829, + "name": "Block", + "src": "51832:138:1" + } + ], + "id": 2830, + "name": "FunctionDefinition", + "src": "51762:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 708 + ], + "functionSelector": "4f6ccce7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "id": 2831, + "name": "StructuredDocumentation", + "src": "51976:61:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2835, + "name": "OverrideSpecifier", + "src": "52099:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2832, + "name": "ElementaryTypeName", + "src": "52064:7:1" + } + ], + "id": 2833, + "name": "VariableDeclaration", + "src": "52064:13:1" + } + ], + "id": 2834, + "name": "ParameterList", + "src": "52063:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2836, + "name": "ElementaryTypeName", + "src": "52117:7:1" + } + ], + "id": 2837, + "name": "VariableDeclaration", + "src": "52117:7:1" + } + ], + "id": 2838, + "name": "ParameterList", + "src": "52116:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2840, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2848, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2839, + "name": "ElementaryTypeName", + "src": "52137:7:1" + } + ], + "id": 2840, + "name": "VariableDeclaration", + "src": "52137:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(uint256,address)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 2379, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2841, + "name": "Identifier", + "src": "52158:12:1" + } + ], + "id": 2842, + "name": "MemberAccess", + "src": "52158:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2833, + "type": "uint256", + "value": "index" + }, + "id": 2843, + "name": "Identifier", + "src": "52174:5:1" + } + ], + "id": 2844, + "name": "FunctionCall", + "src": "52158:22:1" + } + ], + "id": 2845, + "name": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2838 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2840, + "type": "uint256", + "value": "tokenId" + }, + "id": 2846, + "name": "Identifier", + "src": "52197:7:1" + } + ], + "id": 2847, + "name": "Return", + "src": "52190:14:1" + } + ], + "id": 2848, + "name": "Block", + "src": "52126:85:1" + } + ], + "id": 2849, + "name": "FunctionDefinition", + "src": "52042:169:1" + }, + { + "attributes": { + "baseFunctions": [ + 616 + ], + "functionSelector": "095ea7b3", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-approve}." + }, + "id": 2850, + "name": "StructuredDocumentation", + "src": "52217:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2856, + "name": "OverrideSpecifier", + "src": "52329:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2851, + "name": "ElementaryTypeName", + "src": "52285:7:1" + } + ], + "id": 2852, + "name": "VariableDeclaration", + "src": "52285:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2853, + "name": "ElementaryTypeName", + "src": "52297:7:1" + } + ], + "id": 2854, + "name": "VariableDeclaration", + "src": "52297:15:1" + } + ], + "id": 2855, + "name": "ParameterList", + "src": "52284:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2857, + "name": "ParameterList", + "src": "52338:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2859 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2892, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2858, + "name": "ElementaryTypeName", + "src": "52348:7:1" + } + ], + "id": 2859, + "name": "VariableDeclaration", + "src": "52348:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2860, + "name": "Identifier", + "src": "52364:6:1" + } + ], + "id": 2861, + "name": "MemberAccess", + "src": "52364:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2862, + "name": "Identifier", + "src": "52379:7:1" + } + ], + "id": 2863, + "name": "FunctionCall", + "src": "52364:23:1" + } + ], + "id": 2864, + "name": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2865, + "name": "Identifier", + "src": "52397:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2866, + "name": "Identifier", + "src": "52405:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2867, + "name": "Identifier", + "src": "52411:5:1" + } + ], + "id": 2868, + "name": "BinaryOperation", + "src": "52405:11:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approval to current owner\"", + "value": "ERC721: approval to current owner" + }, + "id": 2869, + "name": "Literal", + "src": "52418:35:1" + } + ], + "id": 2870, + "name": "FunctionCall", + "src": "52397:57:1" + } + ], + "id": 2871, + "name": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2872, + "name": "Identifier", + "src": "52465:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2873, + "name": "Identifier", + "src": "52473:10:1" + } + ], + "id": 2874, + "name": "FunctionCall", + "src": "52473:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2875, + "name": "Identifier", + "src": "52489:5:1" + } + ], + "id": 2876, + "name": "BinaryOperation", + "src": "52473:21:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2877, + "name": "Identifier", + "src": "52498:6:1" + } + ], + "id": 2878, + "name": "MemberAccess", + "src": "52498:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2879, + "name": "Identifier", + "src": "52522:5:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2880, + "name": "Identifier", + "src": "52529:10:1" + } + ], + "id": 2881, + "name": "FunctionCall", + "src": "52529:12:1" + } + ], + "id": 2882, + "name": "FunctionCall", + "src": "52498:44:1" + } + ], + "id": 2883, + "name": "BinaryOperation", + "src": "52473:69:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve caller is not owner nor approved for all\"", + "value": "ERC721: approve caller is not owner nor approved for all" + }, + "id": 2884, + "name": "Literal", + "src": "52556:58:1" + } + ], + "id": 2885, + "name": "FunctionCall", + "src": "52465:159:1" + } + ], + "id": 2886, + "name": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 2887, + "name": "Identifier", + "src": "52635:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2888, + "name": "Identifier", + "src": "52644:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2889, + "name": "Identifier", + "src": "52648:7:1" + } + ], + "id": 2890, + "name": "FunctionCall", + "src": "52635:21:1" + } + ], + "id": 2891, + "name": "ExpressionStatement", + "src": "52635:21:1" + } + ], + "id": 2892, + "name": "Block", + "src": "52338:325:1" + } + ], + "id": 2893, + "name": "FunctionDefinition", + "src": "52268:395:1" + }, + { + "attributes": { + "baseFunctions": [ + 624 + ], + "functionSelector": "081812fc", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-getApproved}." + }, + "id": 2894, + "name": "StructuredDocumentation", + "src": "52669:50:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2898, + "name": "OverrideSpecifier", + "src": "52782:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2895, + "name": "ElementaryTypeName", + "src": "52745:7:1" + } + ], + "id": 2896, + "name": "VariableDeclaration", + "src": "52745:15:1" + } + ], + "id": 2897, + "name": "ParameterList", + "src": "52744:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2899, + "name": "ElementaryTypeName", + "src": "52800:7:1" + } + ], + "id": 2900, + "name": "VariableDeclaration", + "src": "52800:7:1" + } + ], + "id": 2901, + "name": "ParameterList", + "src": "52799:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2902, + "name": "Identifier", + "src": "52819:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2903, + "name": "Identifier", + "src": "52827:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2904, + "name": "Identifier", + "src": "52835:7:1" + } + ], + "id": 2905, + "name": "FunctionCall", + "src": "52827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approved query for nonexistent token\"", + "value": "ERC721: approved query for nonexistent token" + }, + "id": 2906, + "name": "Literal", + "src": "52845:46:1" + } + ], + "id": 2907, + "name": "FunctionCall", + "src": "52819:73:1" + } + ], + "id": 2908, + "name": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "attributes": { + "functionReturnParameters": 2901 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 2909, + "name": "Identifier", + "src": "52910:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2910, + "name": "Identifier", + "src": "52926:7:1" + } + ], + "id": 2911, + "name": "IndexAccess", + "src": "52910:24:1" + } + ], + "id": 2912, + "name": "Return", + "src": "52903:31:1" + } + ], + "id": 2913, + "name": "Block", + "src": "52809:132:1" + } + ], + "id": 2914, + "name": "FunctionDefinition", + "src": "52724:217:1" + }, + { + "attributes": { + "baseFunctions": [ + 632 + ], + "functionSelector": "a22cb465", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "id": 2915, + "name": "StructuredDocumentation", + "src": "52947:56:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2921, + "name": "OverrideSpecifier", + "src": "53083:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2916, + "name": "ElementaryTypeName", + "src": "53035:7:1" + } + ], + "id": 2917, + "name": "VariableDeclaration", + "src": "53035:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "approved", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2918, + "name": "ElementaryTypeName", + "src": "53053:4:1" + } + ], + "id": 2919, + "name": "VariableDeclaration", + "src": "53053:13:1" + } + ], + "id": 2920, + "name": "ParameterList", + "src": "53034:33:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2922, + "name": "ParameterList", + "src": "53092:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2923, + "name": "Identifier", + "src": "53102:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2924, + "name": "Identifier", + "src": "53110:8:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2925, + "name": "Identifier", + "src": "53122:10:1" + } + ], + "id": 2926, + "name": "FunctionCall", + "src": "53122:12:1" + } + ], + "id": 2927, + "name": "BinaryOperation", + "src": "53110:24:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f766520746f2063616c6c6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve to caller\"", + "value": "ERC721: approve to caller" + }, + "id": 2928, + "name": "Literal", + "src": "53136:27:1" + } + ], + "id": 2929, + "name": "FunctionCall", + "src": "53102:62:1" + } + ], + "id": 2930, + "name": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2931, + "name": "Identifier", + "src": "53175:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2932, + "name": "Identifier", + "src": "53194:10:1" + } + ], + "id": 2933, + "name": "FunctionCall", + "src": "53194:12:1" + } + ], + "id": 2935, + "name": "IndexAccess", + "src": "53175:32:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2934, + "name": "Identifier", + "src": "53208:8:1" + } + ], + "id": 2936, + "name": "IndexAccess", + "src": "53175:42:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2937, + "name": "Identifier", + "src": "53220:8:1" + } + ], + "id": 2938, + "name": "Assignment", + "src": "53175:53:1" + } + ], + "id": 2939, + "name": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 572, + "type": "function (address,address,bool)", + "value": "ApprovalForAll" + }, + "id": 2940, + "name": "Identifier", + "src": "53243:14:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2941, + "name": "Identifier", + "src": "53258:10:1" + } + ], + "id": 2942, + "name": "FunctionCall", + "src": "53258:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2943, + "name": "Identifier", + "src": "53272:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2944, + "name": "Identifier", + "src": "53282:8:1" + } + ], + "id": 2945, + "name": "FunctionCall", + "src": "53243:48:1" + } + ], + "id": 2946, + "name": "EmitStatement", + "src": "53238:53:1" + } + ], + "id": 2947, + "name": "Block", + "src": "53092:206:1" + } + ], + "id": 2948, + "name": "FunctionDefinition", + "src": "53008:290:1" + }, + { + "attributes": { + "baseFunctions": [ + 642 + ], + "functionSelector": "e985e9c5", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "id": 2949, + "name": "StructuredDocumentation", + "src": "53304:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2955, + "name": "OverrideSpecifier", + "src": "53443:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2950, + "name": "ElementaryTypeName", + "src": "53390:7:1" + } + ], + "id": 2951, + "name": "VariableDeclaration", + "src": "53390:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2952, + "name": "ElementaryTypeName", + "src": "53405:7:1" + } + ], + "id": 2953, + "name": "VariableDeclaration", + "src": "53405:16:1" + } + ], + "id": 2954, + "name": "ParameterList", + "src": "53389:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2956, + "name": "ElementaryTypeName", + "src": "53461:4:1" + } + ], + "id": 2957, + "name": "VariableDeclaration", + "src": "53461:4:1" + } + ], + "id": 2958, + "name": "ParameterList", + "src": "53460:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2958 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2959, + "name": "Identifier", + "src": "53484:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2951, + "type": "address", + "value": "owner" + }, + "id": 2960, + "name": "Identifier", + "src": "53503:5:1" + } + ], + "id": 2961, + "name": "IndexAccess", + "src": "53484:25:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2953, + "type": "address", + "value": "operator" + }, + "id": 2962, + "name": "Identifier", + "src": "53510:8:1" + } + ], + "id": 2963, + "name": "IndexAccess", + "src": "53484:35:1" + } + ], + "id": 2964, + "name": "Return", + "src": "53477:42:1" + } + ], + "id": 2965, + "name": "Block", + "src": "53467:59:1" + } + ], + "id": 2966, + "name": "FunctionDefinition", + "src": "53364:162:1" + }, + { + "attributes": { + "baseFunctions": [ + 608 + ], + "functionSelector": "23b872dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-transferFrom}." + }, + "id": 2967, + "name": "StructuredDocumentation", + "src": "53532:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2975, + "name": "OverrideSpecifier", + "src": "53668:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2968, + "name": "ElementaryTypeName", + "src": "53610:7:1" + } + ], + "id": 2969, + "name": "VariableDeclaration", + "src": "53610:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2970, + "name": "ElementaryTypeName", + "src": "53624:7:1" + } + ], + "id": 2971, + "name": "VariableDeclaration", + "src": "53624:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2972, + "name": "ElementaryTypeName", + "src": "53636:7:1" + } + ], + "id": 2973, + "name": "VariableDeclaration", + "src": "53636:15:1" + } + ], + "id": 2974, + "name": "ParameterList", + "src": "53609:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2976, + "name": "ParameterList", + "src": "53677:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2977, + "name": "Identifier", + "src": "53739:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 2978, + "name": "Identifier", + "src": "53747:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2979, + "name": "Identifier", + "src": "53766:10:1" + } + ], + "id": 2980, + "name": "FunctionCall", + "src": "53766:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2981, + "name": "Identifier", + "src": "53780:7:1" + } + ], + "id": 2982, + "name": "FunctionCall", + "src": "53747:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 2983, + "name": "Literal", + "src": "53790:51:1" + } + ], + "id": 2984, + "name": "FunctionCall", + "src": "53739:103:1" + } + ], + "id": 2985, + "name": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 2986, + "name": "Identifier", + "src": "53853:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2969, + "type": "address", + "value": "from" + }, + "id": 2987, + "name": "Identifier", + "src": "53863:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2971, + "type": "address", + "value": "to" + }, + "id": 2988, + "name": "Identifier", + "src": "53869:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2989, + "name": "Identifier", + "src": "53873:7:1" + } + ], + "id": 2990, + "name": "FunctionCall", + "src": "53853:28:1" + } + ], + "id": 2991, + "name": "ExpressionStatement", + "src": "53853:28:1" + } + ], + "id": 2992, + "name": "Block", + "src": "53677:211:1" + } + ], + "id": 2993, + "name": "FunctionDefinition", + "src": "53588:300:1" + }, + { + "attributes": { + "baseFunctions": [ + 598 + ], + "functionSelector": "42842e0e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 2994, + "name": "StructuredDocumentation", + "src": "53894:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3002, + "name": "OverrideSpecifier", + "src": "54038:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2995, + "name": "ElementaryTypeName", + "src": "53980:7:1" + } + ], + "id": 2996, + "name": "VariableDeclaration", + "src": "53980:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2997, + "name": "ElementaryTypeName", + "src": "53994:7:1" + } + ], + "id": 2998, + "name": "VariableDeclaration", + "src": "53994:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2999, + "name": "ElementaryTypeName", + "src": "54006:7:1" + } + ], + "id": 3000, + "name": "VariableDeclaration", + "src": "54006:15:1" + } + ], + "id": 3001, + "name": "ParameterList", + "src": "53979:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3003, + "name": "ParameterList", + "src": "54047:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "type": "function (address,address,uint256,bytes memory)", + "value": "safeTransferFrom" + }, + "id": 3004, + "name": "Identifier", + "src": "54057:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2996, + "type": "address", + "value": "from" + }, + "id": 3005, + "name": "Identifier", + "src": "54074:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2998, + "type": "address", + "value": "to" + }, + "id": 3006, + "name": "Identifier", + "src": "54080:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3000, + "type": "uint256", + "value": "tokenId" + }, + "id": 3007, + "name": "Identifier", + "src": "54084:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3008, + "name": "Literal", + "src": "54093:2:1" + } + ], + "id": 3009, + "name": "FunctionCall", + "src": "54057:39:1" + } + ], + "id": 3010, + "name": "ExpressionStatement", + "src": "54057:39:1" + } + ], + "id": 3011, + "name": "Block", + "src": "54047:56:1" + } + ], + "id": 3012, + "name": "FunctionDefinition", + "src": "53954:149:1" + }, + { + "attributes": { + "baseFunctions": [ + 654 + ], + "functionSelector": "b88d4fde", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 3013, + "name": "StructuredDocumentation", + "src": "54109:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3023, + "name": "OverrideSpecifier", + "src": "54273:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3014, + "name": "ElementaryTypeName", + "src": "54195:7:1" + } + ], + "id": 3015, + "name": "VariableDeclaration", + "src": "54195:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3016, + "name": "ElementaryTypeName", + "src": "54209:7:1" + } + ], + "id": 3017, + "name": "VariableDeclaration", + "src": "54209:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3018, + "name": "ElementaryTypeName", + "src": "54221:7:1" + } + ], + "id": 3019, + "name": "VariableDeclaration", + "src": "54221:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3042, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3020, + "name": "ElementaryTypeName", + "src": "54238:5:1" + } + ], + "id": 3021, + "name": "VariableDeclaration", + "src": "54238:18:1" + } + ], + "id": 3022, + "name": "ParameterList", + "src": "54194:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3024, + "name": "ParameterList", + "src": "54282:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3025, + "name": "Identifier", + "src": "54292:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 3026, + "name": "Identifier", + "src": "54300:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3027, + "name": "Identifier", + "src": "54319:10:1" + } + ], + "id": 3028, + "name": "FunctionCall", + "src": "54319:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3029, + "name": "Identifier", + "src": "54333:7:1" + } + ], + "id": 3030, + "name": "FunctionCall", + "src": "54300:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 3031, + "name": "Literal", + "src": "54343:51:1" + } + ], + "id": 3032, + "name": "FunctionCall", + "src": "54292:103:1" + } + ], + "id": 3033, + "name": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3071, + "type": "function (address,address,uint256,bytes memory)", + "value": "_safeTransfer" + }, + "id": 3034, + "name": "Identifier", + "src": "54405:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3015, + "type": "address", + "value": "from" + }, + "id": 3035, + "name": "Identifier", + "src": "54419:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3017, + "type": "address", + "value": "to" + }, + "id": 3036, + "name": "Identifier", + "src": "54425:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3037, + "name": "Identifier", + "src": "54429:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3021, + "type": "bytes memory", + "value": "_data" + }, + "id": 3038, + "name": "Identifier", + "src": "54438:5:1" + } + ], + "id": 3039, + "name": "FunctionCall", + "src": "54405:39:1" + } + ], + "id": 3040, + "name": "ExpressionStatement", + "src": "54405:39:1" + } + ], + "id": 3041, + "name": "Block", + "src": "54282:169:1" + } + ], + "id": 3042, + "name": "FunctionDefinition", + "src": "54169:282:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3043, + "name": "StructuredDocumentation", + "src": "54457:851:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3044, + "name": "ElementaryTypeName", + "src": "55336:7:1" + } + ], + "id": 3045, + "name": "VariableDeclaration", + "src": "55336:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3046, + "name": "ElementaryTypeName", + "src": "55350:7:1" + } + ], + "id": 3047, + "name": "VariableDeclaration", + "src": "55350:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3048, + "name": "ElementaryTypeName", + "src": "55362:7:1" + } + ], + "id": 3049, + "name": "VariableDeclaration", + "src": "55362:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3071, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3050, + "name": "ElementaryTypeName", + "src": "55379:5:1" + } + ], + "id": 3051, + "name": "VariableDeclaration", + "src": "55379:18:1" + } + ], + "id": 3052, + "name": "ParameterList", + "src": "55335:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3053, + "name": "ParameterList", + "src": "55416:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 3054, + "name": "Identifier", + "src": "55426:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3055, + "name": "Identifier", + "src": "55436:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3056, + "name": "Identifier", + "src": "55442:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3057, + "name": "Identifier", + "src": "55446:7:1" + } + ], + "id": 3058, + "name": "FunctionCall", + "src": "55426:28:1" + } + ], + "id": 3059, + "name": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3060, + "name": "Identifier", + "src": "55464:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3061, + "name": "Identifier", + "src": "55472:22:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3062, + "name": "Identifier", + "src": "55495:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3063, + "name": "Identifier", + "src": "55501:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3064, + "name": "Identifier", + "src": "55505:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3051, + "type": "bytes memory", + "value": "_data" + }, + "id": 3065, + "name": "Identifier", + "src": "55514:5:1" + } + ], + "id": 3066, + "name": "FunctionCall", + "src": "55472:48:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3067, + "name": "Literal", + "src": "55522:52:1" + } + ], + "id": 3068, + "name": "FunctionCall", + "src": "55464:111:1" + } + ], + "id": 3069, + "name": "ExpressionStatement", + "src": "55464:111:1" + } + ], + "id": 3070, + "name": "Block", + "src": "55416:166:1" + } + ], + "id": 3071, + "name": "FunctionDefinition", + "src": "55313:269:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_exists", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3072, + "name": "StructuredDocumentation", + "src": "55588:292:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3073, + "name": "ElementaryTypeName", + "src": "55902:7:1" + } + ], + "id": 3074, + "name": "VariableDeclaration", + "src": "55902:15:1" + } + ], + "id": 3075, + "name": "ParameterList", + "src": "55901:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3076, + "name": "ElementaryTypeName", + "src": "55950:4:1" + } + ], + "id": 3077, + "name": "VariableDeclaration", + "src": "55950:4:1" + } + ], + "id": 3078, + "name": "ParameterList", + "src": "55949:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3078 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "contains", + "referencedDeclaration": 2326, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3079, + "name": "Identifier", + "src": "55973:12:1" + } + ], + "id": 3080, + "name": "MemberAccess", + "src": "55973:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3074, + "type": "uint256", + "value": "tokenId" + }, + "id": 3081, + "name": "Identifier", + "src": "55995:7:1" + } + ], + "id": 3082, + "name": "FunctionCall", + "src": "55973:30:1" + } + ], + "id": 3083, + "name": "Return", + "src": "55966:37:1" + } + ], + "id": 3084, + "name": "Block", + "src": "55956:54:1" + } + ], + "id": 3085, + "name": "FunctionDefinition", + "src": "55885:125:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_isApprovedOrOwner", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3086, + "name": "StructuredDocumentation", + "src": "56016:147:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "spender", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3087, + "name": "ElementaryTypeName", + "src": "56196:7:1" + } + ], + "id": 3088, + "name": "VariableDeclaration", + "src": "56196:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3089, + "name": "ElementaryTypeName", + "src": "56213:7:1" + } + ], + "id": 3090, + "name": "VariableDeclaration", + "src": "56213:15:1" + } + ], + "id": 3091, + "name": "ParameterList", + "src": "56195:34:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3092, + "name": "ElementaryTypeName", + "src": "56261:4:1" + } + ], + "id": 3093, + "name": "VariableDeclaration", + "src": "56261:4:1" + } + ], + "id": 3094, + "name": "ParameterList", + "src": "56260:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3095, + "name": "Identifier", + "src": "56277:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3096, + "name": "Identifier", + "src": "56285:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3097, + "name": "Identifier", + "src": "56293:7:1" + } + ], + "id": 3098, + "name": "FunctionCall", + "src": "56285:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: operator query for nonexistent token\"", + "value": "ERC721: operator query for nonexistent token" + }, + "id": 3099, + "name": "Literal", + "src": "56303:46:1" + } + ], + "id": 3100, + "name": "FunctionCall", + "src": "56277:73:1" + } + ], + "id": 3101, + "name": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "attributes": { + "assignments": [ + 3103 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3126, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3102, + "name": "ElementaryTypeName", + "src": "56360:7:1" + } + ], + "id": 3103, + "name": "VariableDeclaration", + "src": "56360:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3104, + "name": "Identifier", + "src": "56376:6:1" + } + ], + "id": 3105, + "name": "MemberAccess", + "src": "56376:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3106, + "name": "Identifier", + "src": "56391:7:1" + } + ], + "id": 3107, + "name": "FunctionCall", + "src": "56376:23:1" + } + ], + "id": 3108, + "name": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "attributes": { + "functionReturnParameters": 3094 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3109, + "name": "Identifier", + "src": "56417:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3110, + "name": "Identifier", + "src": "56428:5:1" + } + ], + "id": 3111, + "name": "BinaryOperation", + "src": "56417:16:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2914, + "type": "function (uint256) view returns (address)", + "value": "getApproved" + }, + "id": 3112, + "name": "Identifier", + "src": "56437:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3113, + "name": "Identifier", + "src": "56449:7:1" + } + ], + "id": 3114, + "name": "FunctionCall", + "src": "56437:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3115, + "name": "Identifier", + "src": "56461:7:1" + } + ], + "id": 3116, + "name": "BinaryOperation", + "src": "56437:31:1" + } + ], + "id": 3117, + "name": "BinaryOperation", + "src": "56417:51:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3118, + "name": "Identifier", + "src": "56472:6:1" + } + ], + "id": 3119, + "name": "MemberAccess", + "src": "56472:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3120, + "name": "Identifier", + "src": "56496:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3121, + "name": "Identifier", + "src": "56503:7:1" + } + ], + "id": 3122, + "name": "FunctionCall", + "src": "56472:39:1" + } + ], + "id": 3123, + "name": "BinaryOperation", + "src": "56417:94:1" + } + ], + "id": 3124, + "name": "TupleExpression", + "src": "56416:96:1" + } + ], + "id": 3125, + "name": "Return", + "src": "56409:103:1" + } + ], + "id": 3126, + "name": "Block", + "src": "56267:252:1" + } + ], + "id": 3127, + "name": "FunctionDefinition", + "src": "56168:351:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3128, + "name": "StructuredDocumentation", + "src": "56525:320:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3129, + "name": "ElementaryTypeName", + "src": "56869:7:1" + } + ], + "id": 3130, + "name": "VariableDeclaration", + "src": "56869:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3131, + "name": "ElementaryTypeName", + "src": "56881:7:1" + } + ], + "id": 3132, + "name": "VariableDeclaration", + "src": "56881:15:1" + } + ], + "id": 3133, + "name": "ParameterList", + "src": "56868:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3134, + "name": "ParameterList", + "src": "56915:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "type": "function (address,uint256,bytes memory)", + "value": "_safeMint" + }, + "id": 3135, + "name": "Identifier", + "src": "56925:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3130, + "type": "address", + "value": "to" + }, + "id": 3136, + "name": "Identifier", + "src": "56935:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3132, + "type": "uint256", + "value": "tokenId" + }, + "id": 3137, + "name": "Identifier", + "src": "56939:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3138, + "name": "Literal", + "src": "56948:2:1" + } + ], + "id": 3139, + "name": "FunctionCall", + "src": "56925:26:1" + } + ], + "id": 3140, + "name": "ExpressionStatement", + "src": "56925:26:1" + } + ], + "id": 3141, + "name": "Block", + "src": "56915:43:1" + } + ], + "id": 3142, + "name": "FunctionDefinition", + "src": "56850:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3143, + "name": "StructuredDocumentation", + "src": "56964:210:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3144, + "name": "ElementaryTypeName", + "src": "57198:7:1" + } + ], + "id": 3145, + "name": "VariableDeclaration", + "src": "57198:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3146, + "name": "ElementaryTypeName", + "src": "57210:7:1" + } + ], + "id": 3147, + "name": "VariableDeclaration", + "src": "57210:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3171, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3148, + "name": "ElementaryTypeName", + "src": "57227:5:1" + } + ], + "id": 3149, + "name": "VariableDeclaration", + "src": "57227:18:1" + } + ], + "id": 3150, + "name": "ParameterList", + "src": "57197:49:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3151, + "name": "ParameterList", + "src": "57264:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3230, + "type": "function (address,uint256)", + "value": "_mint" + }, + "id": 3152, + "name": "Identifier", + "src": "57274:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3153, + "name": "Identifier", + "src": "57280:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3154, + "name": "Identifier", + "src": "57284:7:1" + } + ], + "id": 3155, + "name": "FunctionCall", + "src": "57274:18:1" + } + ], + "id": 3156, + "name": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3157, + "name": "Identifier", + "src": "57302:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3158, + "name": "Identifier", + "src": "57310:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3159, + "name": "ElementaryTypeName", + "src": "57333:7:1" + } + ], + "id": 3160, + "name": "ElementaryTypeNameExpression", + "src": "57333:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3161, + "name": "Literal", + "src": "57341:1:1" + } + ], + "id": 3162, + "name": "FunctionCall", + "src": "57333:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3163, + "name": "Identifier", + "src": "57345:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3164, + "name": "Identifier", + "src": "57349:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3149, + "type": "bytes memory", + "value": "_data" + }, + "id": 3165, + "name": "Identifier", + "src": "57358:5:1" + } + ], + "id": 3166, + "name": "FunctionCall", + "src": "57310:54:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3167, + "name": "Literal", + "src": "57366:52:1" + } + ], + "id": 3168, + "name": "FunctionCall", + "src": "57302:117:1" + } + ], + "id": 3169, + "name": "ExpressionStatement", + "src": "57302:117:1" + } + ], + "id": 3170, + "name": "Block", + "src": "57264:162:1" + } + ], + "id": 3171, + "name": "FunctionDefinition", + "src": "57179:247:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_mint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3172, + "name": "StructuredDocumentation", + "src": "57432:311:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3173, + "name": "ElementaryTypeName", + "src": "57763:7:1" + } + ], + "id": 3174, + "name": "VariableDeclaration", + "src": "57763:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3175, + "name": "ElementaryTypeName", + "src": "57775:7:1" + } + ], + "id": 3176, + "name": "VariableDeclaration", + "src": "57775:15:1" + } + ], + "id": 3177, + "name": "ParameterList", + "src": "57762:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3178, + "name": "ParameterList", + "src": "57809:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3179, + "name": "Identifier", + "src": "57819:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3180, + "name": "Identifier", + "src": "57827:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3181, + "name": "ElementaryTypeName", + "src": "57833:7:1" + } + ], + "id": 3182, + "name": "ElementaryTypeNameExpression", + "src": "57833:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3183, + "name": "Literal", + "src": "57841:1:1" + } + ], + "id": 3184, + "name": "FunctionCall", + "src": "57833:10:1" + } + ], + "id": 3185, + "name": "BinaryOperation", + "src": "57827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: mint to the zero address\"", + "value": "ERC721: mint to the zero address" + }, + "id": 3186, + "name": "Literal", + "src": "57845:34:1" + } + ], + "id": 3187, + "name": "FunctionCall", + "src": "57819:61:1" + } + ], + "id": 3188, + "name": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3189, + "name": "Identifier", + "src": "57890:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3190, + "name": "Identifier", + "src": "57899:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3191, + "name": "Identifier", + "src": "57907:7:1" + } + ], + "id": 3192, + "name": "FunctionCall", + "src": "57899:16:1" + } + ], + "id": 3193, + "name": "UnaryOperation", + "src": "57898:17:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: token already minted\"", + "value": "ERC721: token already minted" + }, + "id": 3194, + "name": "Literal", + "src": "57917:30:1" + } + ], + "id": 3195, + "name": "FunctionCall", + "src": "57890:58:1" + } + ], + "id": 3196, + "name": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3197, + "name": "Identifier", + "src": "57959:20:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3198, + "name": "ElementaryTypeName", + "src": "57980:7:1" + } + ], + "id": 3199, + "name": "ElementaryTypeNameExpression", + "src": "57980:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3200, + "name": "Literal", + "src": "57988:1:1" + } + ], + "id": 3201, + "name": "FunctionCall", + "src": "57980:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3202, + "name": "Identifier", + "src": "57992:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3203, + "name": "Identifier", + "src": "57996:7:1" + } + ], + "id": 3204, + "name": "FunctionCall", + "src": "57959:45:1" + } + ], + "id": 3205, + "name": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3206, + "name": "Identifier", + "src": "58015:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3207, + "name": "Identifier", + "src": "58029:2:1" + } + ], + "id": 3208, + "name": "IndexAccess", + "src": "58015:17:1" + } + ], + "id": 3209, + "name": "MemberAccess", + "src": "58015:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3210, + "name": "Identifier", + "src": "58037:7:1" + } + ], + "id": 3211, + "name": "FunctionCall", + "src": "58015:30:1" + } + ], + "id": 3212, + "name": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3213, + "name": "Identifier", + "src": "58056:12:1" + } + ], + "id": 3215, + "name": "MemberAccess", + "src": "58056:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3216, + "name": "Identifier", + "src": "58073:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3217, + "name": "Identifier", + "src": "58082:2:1" + } + ], + "id": 3218, + "name": "FunctionCall", + "src": "58056:29:1" + } + ], + "id": 3219, + "name": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3220, + "name": "Identifier", + "src": "58101:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3221, + "name": "ElementaryTypeName", + "src": "58110:7:1" + } + ], + "id": 3222, + "name": "ElementaryTypeNameExpression", + "src": "58110:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3223, + "name": "Literal", + "src": "58118:1:1" + } + ], + "id": 3224, + "name": "FunctionCall", + "src": "58110:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3225, + "name": "Identifier", + "src": "58122:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3226, + "name": "Identifier", + "src": "58126:7:1" + } + ], + "id": 3227, + "name": "FunctionCall", + "src": "58101:33:1" + } + ], + "id": 3228, + "name": "EmitStatement", + "src": "58096:38:1" + } + ], + "id": 3229, + "name": "Block", + "src": "57809:332:1" + } + ], + "id": 3230, + "name": "FunctionDefinition", + "src": "57748:393:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_burn", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3231, + "name": "StructuredDocumentation", + "src": "58147:206:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3299, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3232, + "name": "ElementaryTypeName", + "src": "58373:7:1" + } + ], + "id": 3233, + "name": "VariableDeclaration", + "src": "58373:15:1" + } + ], + "id": 3234, + "name": "ParameterList", + "src": "58372:17:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3235, + "name": "ParameterList", + "src": "58407:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 3237 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3298, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3236, + "name": "ElementaryTypeName", + "src": "58417:7:1" + } + ], + "id": 3237, + "name": "VariableDeclaration", + "src": "58417:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3238, + "name": "Identifier", + "src": "58433:6:1" + } + ], + "id": 3239, + "name": "MemberAccess", + "src": "58433:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3240, + "name": "Identifier", + "src": "58448:7:1" + } + ], + "id": 3241, + "name": "FunctionCall", + "src": "58433:23:1" + } + ], + "id": 3242, + "name": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3243, + "name": "Identifier", + "src": "58485:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3244, + "name": "Identifier", + "src": "58506:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3245, + "name": "ElementaryTypeName", + "src": "58513:7:1" + } + ], + "id": 3246, + "name": "ElementaryTypeNameExpression", + "src": "58513:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3247, + "name": "Literal", + "src": "58521:1:1" + } + ], + "id": 3248, + "name": "FunctionCall", + "src": "58513:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3249, + "name": "Identifier", + "src": "58525:7:1" + } + ], + "id": 3250, + "name": "FunctionCall", + "src": "58485:48:1" + } + ], + "id": 3251, + "name": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3252, + "name": "Identifier", + "src": "58571:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3253, + "name": "ElementaryTypeName", + "src": "58580:7:1" + } + ], + "id": 3254, + "name": "ElementaryTypeNameExpression", + "src": "58580:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3255, + "name": "Literal", + "src": "58588:1:1" + } + ], + "id": 3256, + "name": "FunctionCall", + "src": "58580:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3257, + "name": "Identifier", + "src": "58592:7:1" + } + ], + "id": 3258, + "name": "FunctionCall", + "src": "58571:29:1" + } + ], + "id": 3259, + "name": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes storage pointer", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 3260, + "name": "ElementaryTypeName", + "src": "58650:5:1" + } + ], + "id": 3261, + "name": "ElementaryTypeNameExpression", + "src": "58650:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3262, + "name": "Identifier", + "src": "58656:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3263, + "name": "Identifier", + "src": "58667:7:1" + } + ], + "id": 3264, + "name": "IndexAccess", + "src": "58656:19:1" + } + ], + "id": 3265, + "name": "FunctionCall", + "src": "58650:26:1" + } + ], + "id": 3266, + "name": "MemberAccess", + "src": "58650:33:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3267, + "name": "Literal", + "src": "58687:1:1" + } + ], + "id": 3268, + "name": "BinaryOperation", + "src": "58650:38:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3269, + "name": "Identifier", + "src": "58711:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3270, + "name": "Identifier", + "src": "58722:7:1" + } + ], + "id": 3271, + "name": "IndexAccess", + "src": "58711:19:1" + } + ], + "id": 3272, + "name": "UnaryOperation", + "src": "58704:26:1" + } + ], + "id": 3273, + "name": "ExpressionStatement", + "src": "58704:26:1" + } + ], + "id": 3274, + "name": "Block", + "src": "58690:51:1" + } + ], + "id": 3275, + "name": "IfStatement", + "src": "58646:95:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3276, + "name": "Identifier", + "src": "58751:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3277, + "name": "Identifier", + "src": "58765:5:1" + } + ], + "id": 3278, + "name": "IndexAccess", + "src": "58751:20:1" + } + ], + "id": 3279, + "name": "MemberAccess", + "src": "58751:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3280, + "name": "Identifier", + "src": "58779:7:1" + } + ], + "id": 3281, + "name": "FunctionCall", + "src": "58751:36:1" + } + ], + "id": 3282, + "name": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 2306, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3283, + "name": "Identifier", + "src": "58798:12:1" + } + ], + "id": 3285, + "name": "MemberAccess", + "src": "58798:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3286, + "name": "Identifier", + "src": "58818:7:1" + } + ], + "id": 3287, + "name": "FunctionCall", + "src": "58798:28:1" + } + ], + "id": 3288, + "name": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3289, + "name": "Identifier", + "src": "58842:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3290, + "name": "Identifier", + "src": "58851:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3291, + "name": "ElementaryTypeName", + "src": "58858:7:1" + } + ], + "id": 3292, + "name": "ElementaryTypeNameExpression", + "src": "58858:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3293, + "name": "Literal", + "src": "58866:1:1" + } + ], + "id": 3294, + "name": "FunctionCall", + "src": "58858:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3295, + "name": "Identifier", + "src": "58870:7:1" + } + ], + "id": 3296, + "name": "FunctionCall", + "src": "58842:36:1" + } + ], + "id": 3297, + "name": "EmitStatement", + "src": "58837:41:1" + } + ], + "id": 3298, + "name": "Block", + "src": "58407:478:1" + } + ], + "id": 3299, + "name": "FunctionDefinition", + "src": "58358:527:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_transfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3300, + "name": "StructuredDocumentation", + "src": "58891:313:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3301, + "name": "ElementaryTypeName", + "src": "59228:7:1" + } + ], + "id": 3302, + "name": "VariableDeclaration", + "src": "59228:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3303, + "name": "ElementaryTypeName", + "src": "59242:7:1" + } + ], + "id": 3304, + "name": "VariableDeclaration", + "src": "59242:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3305, + "name": "ElementaryTypeName", + "src": "59254:7:1" + } + ], + "id": 3306, + "name": "VariableDeclaration", + "src": "59254:15:1" + } + ], + "id": 3307, + "name": "ParameterList", + "src": "59227:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3308, + "name": "ParameterList", + "src": "59288:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3309, + "name": "Identifier", + "src": "59298:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3310, + "name": "Identifier", + "src": "59306:6:1" + } + ], + "id": 3311, + "name": "MemberAccess", + "src": "59306:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3312, + "name": "Identifier", + "src": "59321:7:1" + } + ], + "id": 3313, + "name": "FunctionCall", + "src": "59306:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3314, + "name": "Identifier", + "src": "59333:4:1" + } + ], + "id": 3315, + "name": "BinaryOperation", + "src": "59306:31:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer of token that is not own\"", + "value": "ERC721: transfer of token that is not own" + }, + "id": 3316, + "name": "Literal", + "src": "59339:43:1" + } + ], + "id": 3317, + "name": "FunctionCall", + "src": "59298:85:1" + } + ], + "id": 3318, + "name": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3319, + "name": "Identifier", + "src": "59411:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3320, + "name": "Identifier", + "src": "59419:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3321, + "name": "ElementaryTypeName", + "src": "59425:7:1" + } + ], + "id": 3322, + "name": "ElementaryTypeNameExpression", + "src": "59425:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3323, + "name": "Literal", + "src": "59433:1:1" + } + ], + "id": 3324, + "name": "FunctionCall", + "src": "59425:10:1" + } + ], + "id": 3325, + "name": "BinaryOperation", + "src": "59419:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to the zero address\"", + "value": "ERC721: transfer to the zero address" + }, + "id": 3326, + "name": "Literal", + "src": "59437:38:1" + } + ], + "id": 3327, + "name": "FunctionCall", + "src": "59411:65:1" + } + ], + "id": 3328, + "name": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3329, + "name": "Identifier", + "src": "59487:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3330, + "name": "Identifier", + "src": "59508:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3331, + "name": "Identifier", + "src": "59514:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3332, + "name": "Identifier", + "src": "59518:7:1" + } + ], + "id": 3333, + "name": "FunctionCall", + "src": "59487:39:1" + } + ], + "id": 3334, + "name": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3335, + "name": "Identifier", + "src": "59588:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3336, + "name": "ElementaryTypeName", + "src": "59597:7:1" + } + ], + "id": 3337, + "name": "ElementaryTypeNameExpression", + "src": "59597:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3338, + "name": "Literal", + "src": "59605:1:1" + } + ], + "id": 3339, + "name": "FunctionCall", + "src": "59597:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3340, + "name": "Identifier", + "src": "59609:7:1" + } + ], + "id": 3341, + "name": "FunctionCall", + "src": "59588:29:1" + } + ], + "id": 3342, + "name": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3343, + "name": "Identifier", + "src": "59628:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3344, + "name": "Identifier", + "src": "59642:4:1" + } + ], + "id": 3345, + "name": "IndexAccess", + "src": "59628:19:1" + } + ], + "id": 3346, + "name": "MemberAccess", + "src": "59628:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3347, + "name": "Identifier", + "src": "59655:7:1" + } + ], + "id": 3348, + "name": "FunctionCall", + "src": "59628:35:1" + } + ], + "id": 3349, + "name": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3350, + "name": "Identifier", + "src": "59673:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3351, + "name": "Identifier", + "src": "59687:2:1" + } + ], + "id": 3352, + "name": "IndexAccess", + "src": "59673:17:1" + } + ], + "id": 3353, + "name": "MemberAccess", + "src": "59673:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3354, + "name": "Identifier", + "src": "59695:7:1" + } + ], + "id": 3355, + "name": "FunctionCall", + "src": "59673:30:1" + } + ], + "id": 3356, + "name": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3357, + "name": "Identifier", + "src": "59714:12:1" + } + ], + "id": 3359, + "name": "MemberAccess", + "src": "59714:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3360, + "name": "Identifier", + "src": "59731:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3361, + "name": "Identifier", + "src": "59740:2:1" + } + ], + "id": 3362, + "name": "FunctionCall", + "src": "59714:29:1" + } + ], + "id": 3363, + "name": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3364, + "name": "Identifier", + "src": "59759:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3365, + "name": "Identifier", + "src": "59768:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3366, + "name": "Identifier", + "src": "59774:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3367, + "name": "Identifier", + "src": "59778:7:1" + } + ], + "id": 3368, + "name": "FunctionCall", + "src": "59759:27:1" + } + ], + "id": 3369, + "name": "EmitStatement", + "src": "59754:32:1" + } + ], + "id": 3370, + "name": "Block", + "src": "59288:505:1" + } + ], + "id": 3371, + "name": "FunctionDefinition", + "src": "59209:584:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setTokenURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3372, + "name": "StructuredDocumentation", + "src": "59799:136:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3393, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3373, + "name": "ElementaryTypeName", + "src": "59962:7:1" + } + ], + "id": 3374, + "name": "VariableDeclaration", + "src": "59962:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 3393, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3375, + "name": "ElementaryTypeName", + "src": "59979:6:1" + } + ], + "id": 3376, + "name": "VariableDeclaration", + "src": "59979:23:1" + } + ], + "id": 3377, + "name": "ParameterList", + "src": "59961:42:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3378, + "name": "ParameterList", + "src": "60021:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3379, + "name": "Identifier", + "src": "60031:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3380, + "name": "Identifier", + "src": "60039:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3381, + "name": "Identifier", + "src": "60047:7:1" + } + ], + "id": 3382, + "name": "FunctionCall", + "src": "60039:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI set of nonexistent token\"", + "value": "ERC721Metadata: URI set of nonexistent token" + }, + "id": 3383, + "name": "Literal", + "src": "60057:46:1" + } + ], + "id": 3384, + "name": "FunctionCall", + "src": "60031:73:1" + } + ], + "id": 3385, + "name": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3386, + "name": "Identifier", + "src": "60114:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3387, + "name": "Identifier", + "src": "60125:7:1" + } + ], + "id": 3388, + "name": "IndexAccess", + "src": "60114:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3376, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 3389, + "name": "Identifier", + "src": "60136:9:1" + } + ], + "id": 3390, + "name": "Assignment", + "src": "60114:31:1" + } + ], + "id": 3391, + "name": "ExpressionStatement", + "src": "60114:31:1" + } + ], + "id": 3392, + "name": "Block", + "src": "60021:131:1" + } + ], + "id": 3393, + "name": "FunctionDefinition", + "src": "59940:212:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setBaseURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3394, + "name": "StructuredDocumentation", + "src": "60158:212:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "baseURI_", + "scope": 3404, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3395, + "name": "ElementaryTypeName", + "src": "60396:6:1" + } + ], + "id": 3396, + "name": "VariableDeclaration", + "src": "60396:22:1" + } + ], + "id": 3397, + "name": "ParameterList", + "src": "60395:24:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3398, + "name": "ParameterList", + "src": "60437:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 3399, + "name": "Identifier", + "src": "60447:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3396, + "type": "string memory", + "value": "baseURI_" + }, + "id": 3400, + "name": "Identifier", + "src": "60458:8:1" + } + ], + "id": 3401, + "name": "Assignment", + "src": "60447:19:1" + } + ], + "id": 3402, + "name": "ExpressionStatement", + "src": "60447:19:1" + } + ], + "id": 3403, + "name": "Block", + "src": "60437:36:1" + } + ], + "id": 3404, + "name": "FunctionDefinition", + "src": "60375:98:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_checkOnERC721Received", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3405, + "name": "StructuredDocumentation", + "src": "60479:542:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3406, + "name": "ElementaryTypeName", + "src": "61058:7:1" + } + ], + "id": 3407, + "name": "VariableDeclaration", + "src": "61058:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3408, + "name": "ElementaryTypeName", + "src": "61072:7:1" + } + ], + "id": 3409, + "name": "VariableDeclaration", + "src": "61072:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3410, + "name": "ElementaryTypeName", + "src": "61084:7:1" + } + ], + "id": 3411, + "name": "VariableDeclaration", + "src": "61084:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3462, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3412, + "name": "ElementaryTypeName", + "src": "61101:5:1" + } + ], + "id": 3413, + "name": "VariableDeclaration", + "src": "61101:18:1" + } + ], + "id": 3414, + "name": "ParameterList", + "src": "61057:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3415, + "name": "ElementaryTypeName", + "src": "61146:4:1" + } + ], + "id": 3416, + "name": "VariableDeclaration", + "src": "61146:4:1" + } + ], + "id": 3417, + "name": "ParameterList", + "src": "61145:6:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isContract", + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3418, + "name": "Identifier", + "src": "61171:2:1" + } + ], + "id": 3419, + "name": "MemberAccess", + "src": "61171:13:1" + } + ], + "id": 3420, + "name": "FunctionCall", + "src": "61171:15:1" + } + ], + "id": 3421, + "name": "UnaryOperation", + "src": "61170:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 3422, + "name": "Literal", + "src": "61209:4:1" + } + ], + "id": 3423, + "name": "Return", + "src": "61202:11:1" + } + ], + "id": 3424, + "name": "Block", + "src": "61188:36:1" + } + ], + "id": 3425, + "name": "IfStatement", + "src": "61166:58:1" + }, + { + "attributes": { + "assignments": [ + 3427 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 3461, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3426, + "name": "ElementaryTypeName", + "src": "61233:5:1" + } + ], + "id": 3427, + "name": "VariableDeclaration", + "src": "61233:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "functionCall", + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3428, + "name": "Identifier", + "src": "61259:2:1" + } + ], + "id": 3429, + "name": "MemberAccess", + "src": "61259:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodeWithSelector", + "type": "function (bytes4) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3430, + "name": "Identifier", + "src": "61275:3:1" + } + ], + "id": 3431, + "name": "MemberAccess", + "src": "61275:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "selector", + "type": "bytes4" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "onERC721Received", + "referencedDeclaration": 725, + "type": "function (address,address,uint256,bytes memory) external returns (bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "contract IERC721Receiver", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 726, + "type": "type(contract IERC721Receiver)", + "value": "IERC721Receiver" + }, + "id": 3432, + "name": "Identifier", + "src": "61311:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3433, + "name": "Identifier", + "src": "61327:2:1" + } + ], + "id": 3434, + "name": "FunctionCall", + "src": "61311:19:1" + } + ], + "id": 3435, + "name": "MemberAccess", + "src": "61311:36:1" + } + ], + "id": 3436, + "name": "MemberAccess", + "src": "61311:45:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3437, + "name": "Identifier", + "src": "61370:10:1" + } + ], + "id": 3438, + "name": "FunctionCall", + "src": "61370:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3407, + "type": "address", + "value": "from" + }, + "id": 3439, + "name": "Identifier", + "src": "61396:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3411, + "type": "uint256", + "value": "tokenId" + }, + "id": 3440, + "name": "Identifier", + "src": "61414:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3413, + "type": "bytes memory", + "value": "_data" + }, + "id": 3441, + "name": "Identifier", + "src": "61435:5:1" + } + ], + "id": 3442, + "name": "FunctionCall", + "src": "61275:175:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3443, + "name": "Literal", + "src": "61452:52:1" + } + ], + "id": 3444, + "name": "FunctionCall", + "src": "61259:246:1" + } + ], + "id": 3445, + "name": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "attributes": { + "assignments": [ + 3447 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "retval", + "scope": 3461, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 3446, + "name": "ElementaryTypeName", + "src": "61515:6:1" + } + ], + "id": 3447, + "name": "VariableDeclaration", + "src": "61515:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes4", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "decode", + "type": "function () pure" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3448, + "name": "Identifier", + "src": "61531:3:1" + } + ], + "id": 3449, + "name": "MemberAccess", + "src": "61531:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3427, + "type": "bytes memory", + "value": "returndata" + }, + "id": 3450, + "name": "Identifier", + "src": "61542:10:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "name": "bytes4" + }, + "id": 3451, + "name": "ElementaryTypeName", + "src": "61555:6:1" + } + ], + "id": 3452, + "name": "ElementaryTypeNameExpression", + "src": "61555:6:1" + } + ], + "id": 3453, + "name": "TupleExpression", + "src": "61554:8:1" + } + ], + "id": 3454, + "name": "FunctionCall", + "src": "61531:32:1" + } + ], + "id": 3455, + "name": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3447, + "type": "bytes4", + "value": "retval" + }, + "id": 3456, + "name": "Identifier", + "src": "61581:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2596, + "type": "bytes4", + "value": "_ERC721_RECEIVED" + }, + "id": 3457, + "name": "Identifier", + "src": "61591:16:1" + } + ], + "id": 3458, + "name": "BinaryOperation", + "src": "61581:26:1" + } + ], + "id": 3459, + "name": "TupleExpression", + "src": "61580:28:1" + } + ], + "id": 3460, + "name": "Return", + "src": "61573:35:1" + } + ], + "id": 3461, + "name": "Block", + "src": "61156:459:1" + } + ], + "id": 3462, + "name": "FunctionDefinition", + "src": "61026:589:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3463, + "name": "StructuredDocumentation", + "src": "61621:101:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3464, + "name": "ElementaryTypeName", + "src": "61745:7:1" + } + ], + "id": 3465, + "name": "VariableDeclaration", + "src": "61745:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3466, + "name": "ElementaryTypeName", + "src": "61757:7:1" + } + ], + "id": 3467, + "name": "VariableDeclaration", + "src": "61757:15:1" + } + ], + "id": 3468, + "name": "ParameterList", + "src": "61744:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3469, + "name": "ParameterList", + "src": "61791:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 3470, + "name": "Identifier", + "src": "61801:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3471, + "name": "Identifier", + "src": "61817:7:1" + } + ], + "id": 3472, + "name": "IndexAccess", + "src": "61801:24:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3473, + "name": "Identifier", + "src": "61828:2:1" + } + ], + "id": 3474, + "name": "Assignment", + "src": "61801:29:1" + } + ], + "id": 3475, + "name": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 563, + "type": "function (address,address,uint256)", + "value": "Approval" + }, + "id": 3476, + "name": "Identifier", + "src": "61845:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3477, + "name": "Identifier", + "src": "61854:6:1" + } + ], + "id": 3478, + "name": "MemberAccess", + "src": "61854:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3479, + "name": "Identifier", + "src": "61869:7:1" + } + ], + "id": 3480, + "name": "FunctionCall", + "src": "61854:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3481, + "name": "Identifier", + "src": "61879:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3482, + "name": "Identifier", + "src": "61883:7:1" + } + ], + "id": 3483, + "name": "FunctionCall", + "src": "61845:46:1" + } + ], + "id": 3484, + "name": "EmitStatement", + "src": "61840:51:1" + } + ], + "id": 3485, + "name": "Block", + "src": "61791:125:1" + } + ], + "id": 3486, + "name": "FunctionDefinition", + "src": "61727:189:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_beforeTokenTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3487, + "name": "StructuredDocumentation", + "src": "61922:585:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3488, + "name": "ElementaryTypeName", + "src": "62542:7:1" + } + ], + "id": 3489, + "name": "VariableDeclaration", + "src": "62542:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3490, + "name": "ElementaryTypeName", + "src": "62556:7:1" + } + ], + "id": 3491, + "name": "VariableDeclaration", + "src": "62556:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3492, + "name": "ElementaryTypeName", + "src": "62568:7:1" + } + ], + "id": 3493, + "name": "VariableDeclaration", + "src": "62568:15:1" + } + ], + "id": 3494, + "name": "ParameterList", + "src": "62541:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3495, + "name": "ParameterList", + "src": "62602:0:1" + }, + { + "attributes": { + "statements": [ + null + ] + }, + "children": [], + "id": 3496, + "name": "Block", + "src": "62602:3:1" + } + ], + "id": 3497, + "name": "FunctionDefinition", + "src": "62512:93:1" + } + ], + "id": 3498, + "name": "ContractDefinition", + "src": "46080:16527:1" + } + ], + "id": 3499, + "name": "SourceUnit", + "src": "84:62524:1" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-13T11:18:08.282Z", + "devdoc": { + "details": "Interface for any contract that wants to support safeTransfers from ERC721 asset contracts.", + "kind": "dev", + "methods": { + "onERC721Received(address,address,uint256,bytes)": { + "details": "Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} by `operator` from `from`, this function is called. It must return its Solidity selector to confirm the token transfer. If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + } + }, + "title": "ERC721 token receiver interface", + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/abis/Migrations.json b/src/abis/Migrations.json new file mode 100644 index 0000000..f44c77d --- /dev/null +++ b/src/abis/Migrations.json @@ -0,0 +1,1454 @@ +{ + "contractName": "Migrations", + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [], + "name": "last_completed_migration", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function", + "constant": true + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "completed", + "type": "uint256" + } + ], + "name": "setCompleted", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "new_address", + "type": "address" + } + ], + "name": "upgrade", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"last_completed_migration\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"completed\",\"type\":\"uint256\"}],\"name\":\"setCompleted\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"new_address\",\"type\":\"address\"}],\"name\":\"upgrade\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/Migrations.sol\":\"Migrations\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/Migrations.sol\":{\"keccak256\":\"0x12e875f75583a6d74b23acfbb440c0cb8c4161eb4b6e401b5a047a8241cc5365\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://549b5653fb3ba12444dec07d5728b35f2b229faa8f8c524c403492dcc6847da6\",\"dweb:/ipfs/QmYqExk3AbYPmBAaMS6wFhV9jgLdWWQydhy9v3Sfcv5ynN\"]}},\"version\":1}", + "bytecode": "0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061029f806100606000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100955780638da5cb5b146100b3578063fdacd576146100e7575b600080fd5b6100936004803603602081101561006757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610115565b005b61009d6101e0565b6040518082815260200191505060405180910390f35b6100bb6101e6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610113600480360360208110156100fd57600080fd5b810190808035906020019092919050505061020a565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101dd5760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156101c357600080fd5b505af11580156101d7573d6000803e3d6000fd5b50505050505b50565b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561026657806001819055505b5056fea26469706673582212206e5d0441122dbe0dff89068ada8bd4dc77aff4a709b45219e239268a9bfa623b64736f6c63430007060033", + "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80630900f01014610051578063445df0ac146100955780638da5cb5b146100b3578063fdacd576146100e7575b600080fd5b6100936004803603602081101561006757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610115565b005b61009d6101e0565b6040518082815260200191505060405180910390f35b6100bb6101e6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610113600480360360208110156100fd57600080fd5b810190808035906020019092919050505061020a565b005b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156101dd5760008190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff1660e01b815260040180828152602001915050600060405180830381600087803b1580156101c357600080fd5b505af11580156101d7573d6000803e3d6000fd5b50505050505b50565b60015481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141561026657806001819055505b5056fea26469706673582212206e5d0441122dbe0dff89068ada8bd4dc77aff4a709b45219e239268a9bfa623b64736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "66:473:2:-:0;;;155:43;;;;;;;;;;183:10;175:5;;:18;;;;;;;;;;;;;;;;;;66:473;;;;;;", + "deployedSourceMap": "66:473:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;372:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;114:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;90:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;265:103;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;372:165;248:5;;;;;;;;;;234:19;;:10;:19;;;230:26;;;434:19:::1;467:11;434:45;;485:8;:21;;;507:24;;485:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;255:1;230:26:::0;372:165;:::o;114:36::-;;;;:::o;90:20::-;;;;;;;;;;;;:::o;265:103::-;248:5;;;;;;;;;;234:19;;:10;:19;;;230:26;;;354:9:::1;327:24;:36;;;;230:26:::0;265:103;:::o", + "source": "// SPDX-License-Identifier: MIT\npragma solidity >=0.4.21 <0.8.0;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n constructor() {\n owner = msg.sender;\n }\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address) public restricted {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", + "sourcePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/Migrations.sol", + "ast": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/Migrations.sol", + "exportedSymbols": { + "Migrations": [ + 3555 + ] + }, + "id": 3556, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 3500, + "literals": [ + "solidity", + ">=", + "0.4", + ".21", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "32:32:2" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 3555, + "linearizedBaseContracts": [ + 3555 + ], + "name": "Migrations", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": false, + "functionSelector": "8da5cb5b", + "id": 3502, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3555, + "src": "90:20:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3501, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "90:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "public" + }, + { + "constant": false, + "functionSelector": "445df0ac", + "id": 3504, + "mutability": "mutable", + "name": "last_completed_migration", + "nodeType": "VariableDeclaration", + "scope": 3555, + "src": "114:36:2", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3503, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "114:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "public" + }, + { + "body": { + "id": 3512, + "nodeType": "Block", + "src": "169:29:2", + "statements": [ + { + "expression": { + "id": 3510, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3507, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3502, + "src": "175:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "id": 3508, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "183:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3509, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "183:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "175:18:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3511, + "nodeType": "ExpressionStatement", + "src": "175:18:2" + } + ] + }, + "id": 3513, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3505, + "nodeType": "ParameterList", + "parameters": [], + "src": "166:2:2" + }, + "returnParameters": { + "id": 3506, + "nodeType": "ParameterList", + "parameters": [], + "src": "169:0:2" + }, + "scope": 3555, + "src": "155:43:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3521, + "nodeType": "Block", + "src": "224:37:2", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3518, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 3515, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "234:3:2", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 3516, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "234:10:2", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3517, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3502, + "src": "248:5:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "234:19:2", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3520, + "nodeType": "IfStatement", + "src": "230:26:2", + "trueBody": { + "id": 3519, + "nodeType": "PlaceholderStatement", + "src": "255:1:2" + } + } + ] + }, + "id": 3522, + "name": "restricted", + "nodeType": "ModifierDefinition", + "parameters": { + "id": 3514, + "nodeType": "ParameterList", + "parameters": [], + "src": "221:2:2" + }, + "src": "202:59:2", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 3533, + "nodeType": "Block", + "src": "321:47:2", + "statements": [ + { + "expression": { + "id": 3531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3529, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3504, + "src": "327:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3530, + "name": "completed", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3524, + "src": "354:9:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "327:36:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 3532, + "nodeType": "ExpressionStatement", + "src": "327:36:2" + } + ] + }, + "functionSelector": "fdacd576", + "id": 3534, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3527, + "modifierName": { + "id": 3526, + "name": "restricted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3522, + "src": "310:10:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "310:10:2" + } + ], + "name": "setCompleted", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3525, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3524, + "mutability": "mutable", + "name": "completed", + "nodeType": "VariableDeclaration", + "scope": 3534, + "src": "287:14:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3523, + "name": "uint", + "nodeType": "ElementaryTypeName", + "src": "287:4:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "286:16:2" + }, + "returnParameters": { + "id": 3528, + "nodeType": "ParameterList", + "parameters": [], + "src": "321:0:2" + }, + "scope": 3555, + "src": "265:103:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "body": { + "id": 3553, + "nodeType": "Block", + "src": "428:109:2", + "statements": [ + { + "assignments": [ + 3542 + ], + "declarations": [ + { + "constant": false, + "id": 3542, + "mutability": "mutable", + "name": "upgraded", + "nodeType": "VariableDeclaration", + "scope": 3553, + "src": "434:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$3555", + "typeString": "contract Migrations" + }, + "typeName": { + "id": 3541, + "name": "Migrations", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 3555, + "src": "434:10:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$3555", + "typeString": "contract Migrations" + } + }, + "visibility": "internal" + } + ], + "id": 3546, + "initialValue": { + "arguments": [ + { + "id": 3544, + "name": "new_address", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3536, + "src": "467:11:2", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3543, + "name": "Migrations", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3555, + "src": "456:10:2", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_Migrations_$3555_$", + "typeString": "type(contract Migrations)" + } + }, + "id": 3545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "456:23:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$3555", + "typeString": "contract Migrations" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "434:45:2" + }, + { + "expression": { + "arguments": [ + { + "id": 3550, + "name": "last_completed_migration", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3504, + "src": "507:24:2", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3547, + "name": "upgraded", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3542, + "src": "485:8:2", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Migrations_$3555", + "typeString": "contract Migrations" + } + }, + "id": 3549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "setCompleted", + "nodeType": "MemberAccess", + "referencedDeclaration": 3534, + "src": "485:21:2", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$", + "typeString": "function (uint256) external" + } + }, + "id": 3551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "485:47:2", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3552, + "nodeType": "ExpressionStatement", + "src": "485:47:2" + } + ] + }, + "functionSelector": "0900f010", + "id": 3554, + "implemented": true, + "kind": "function", + "modifiers": [ + { + "id": 3539, + "modifierName": { + "id": 3538, + "name": "restricted", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3522, + "src": "417:10:2", + "typeDescriptions": { + "typeIdentifier": "t_modifier$__$", + "typeString": "modifier ()" + } + }, + "nodeType": "ModifierInvocation", + "src": "417:10:2" + } + ], + "name": "upgrade", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3537, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3536, + "mutability": "mutable", + "name": "new_address", + "nodeType": "VariableDeclaration", + "scope": 3554, + "src": "389:19:2", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3535, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "389:7:2", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "388:21:2" + }, + "returnParameters": { + "id": 3540, + "nodeType": "ParameterList", + "parameters": [], + "src": "428:0:2" + }, + "scope": 3555, + "src": "372:165:2", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + } + ], + "scope": 3556, + "src": "66:473:2" + } + ], + "src": "32:508:2" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/Migrations.sol", + "exportedSymbols": { + "Migrations": [ + 3555 + ] + }, + "license": "MIT" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.4", + ".21", + "<", + "0.8", + ".0" + ] + }, + "id": 3500, + "name": "PragmaDirective", + "src": "32:32:2" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 3555 + ], + "name": "Migrations", + "scope": 3556 + }, + "children": [ + { + "attributes": { + "constant": false, + "functionSelector": "8da5cb5b", + "mutability": "mutable", + "name": "owner", + "scope": 3555, + "stateVariable": true, + "storageLocation": "default", + "type": "address", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3501, + "name": "ElementaryTypeName", + "src": "90:7:2" + } + ], + "id": 3502, + "name": "VariableDeclaration", + "src": "90:20:2" + }, + { + "attributes": { + "constant": false, + "functionSelector": "445df0ac", + "mutability": "mutable", + "name": "last_completed_migration", + "scope": 3555, + "stateVariable": true, + "storageLocation": "default", + "type": "uint256", + "visibility": "public" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 3503, + "name": "ElementaryTypeName", + "src": "114:4:2" + } + ], + "id": 3504, + "name": "VariableDeclaration", + "src": "114:36:2" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 3555, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3505, + "name": "ParameterList", + "src": "166:2:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3506, + "name": "ParameterList", + "src": "169:0:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3502, + "type": "address", + "value": "owner" + }, + "id": 3507, + "name": "Identifier", + "src": "175:5:2" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 3508, + "name": "Identifier", + "src": "183:3:2" + } + ], + "id": 3509, + "name": "MemberAccess", + "src": "183:10:2" + } + ], + "id": 3510, + "name": "Assignment", + "src": "175:18:2" + } + ], + "id": 3511, + "name": "ExpressionStatement", + "src": "175:18:2" + } + ], + "id": 3512, + "name": "Block", + "src": "169:29:2" + } + ], + "id": 3513, + "name": "FunctionDefinition", + "src": "155:43:2" + }, + { + "attributes": { + "name": "restricted", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3514, + "name": "ParameterList", + "src": "221:2:2" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 3515, + "name": "Identifier", + "src": "234:3:2" + } + ], + "id": 3516, + "name": "MemberAccess", + "src": "234:10:2" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3502, + "type": "address", + "value": "owner" + }, + "id": 3517, + "name": "Identifier", + "src": "248:5:2" + } + ], + "id": 3518, + "name": "BinaryOperation", + "src": "234:19:2" + }, + { + "id": 3519, + "name": "PlaceholderStatement", + "src": "255:1:2" + } + ], + "id": 3520, + "name": "IfStatement", + "src": "230:26:2" + } + ], + "id": 3521, + "name": "Block", + "src": "224:37:2" + } + ], + "id": 3522, + "name": "ModifierDefinition", + "src": "202:59:2" + }, + { + "attributes": { + "functionSelector": "fdacd576", + "implemented": true, + "isConstructor": false, + "kind": "function", + "name": "setCompleted", + "scope": 3555, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "completed", + "scope": 3534, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint", + "type": "uint256" + }, + "id": 3523, + "name": "ElementaryTypeName", + "src": "287:4:2" + } + ], + "id": 3524, + "name": "VariableDeclaration", + "src": "287:14:2" + } + ], + "id": 3525, + "name": "ParameterList", + "src": "286:16:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3528, + "name": "ParameterList", + "src": "321:0:2" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3522, + "type": "modifier ()", + "value": "restricted" + }, + "id": 3526, + "name": "Identifier", + "src": "310:10:2" + } + ], + "id": 3527, + "name": "ModifierInvocation", + "src": "310:10:2" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3504, + "type": "uint256", + "value": "last_completed_migration" + }, + "id": 3529, + "name": "Identifier", + "src": "327:24:2" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3524, + "type": "uint256", + "value": "completed" + }, + "id": 3530, + "name": "Identifier", + "src": "354:9:2" + } + ], + "id": 3531, + "name": "Assignment", + "src": "327:36:2" + } + ], + "id": 3532, + "name": "ExpressionStatement", + "src": "327:36:2" + } + ], + "id": 3533, + "name": "Block", + "src": "321:47:2" + } + ], + "id": 3534, + "name": "FunctionDefinition", + "src": "265:103:2" + }, + { + "attributes": { + "functionSelector": "0900f010", + "implemented": true, + "isConstructor": false, + "kind": "function", + "name": "upgrade", + "scope": 3555, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "new_address", + "scope": 3554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3535, + "name": "ElementaryTypeName", + "src": "389:7:2" + } + ], + "id": 3536, + "name": "VariableDeclaration", + "src": "389:19:2" + } + ], + "id": 3537, + "name": "ParameterList", + "src": "388:21:2" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3540, + "name": "ParameterList", + "src": "428:0:2" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3522, + "type": "modifier ()", + "value": "restricted" + }, + "id": 3538, + "name": "Identifier", + "src": "417:10:2" + } + ], + "id": 3539, + "name": "ModifierInvocation", + "src": "417:10:2" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 3542 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "upgraded", + "scope": 3553, + "stateVariable": false, + "storageLocation": "default", + "type": "contract Migrations", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Migrations", + "referencedDeclaration": 3555, + "type": "contract Migrations" + }, + "id": 3541, + "name": "UserDefinedTypeName", + "src": "434:10:2" + } + ], + "id": 3542, + "name": "VariableDeclaration", + "src": "434:19:2" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "contract Migrations", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3555, + "type": "type(contract Migrations)", + "value": "Migrations" + }, + "id": 3543, + "name": "Identifier", + "src": "456:10:2" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3536, + "type": "address", + "value": "new_address" + }, + "id": 3544, + "name": "Identifier", + "src": "467:11:2" + } + ], + "id": 3545, + "name": "FunctionCall", + "src": "456:23:2" + } + ], + "id": 3546, + "name": "VariableDeclarationStatement", + "src": "434:45:2" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "setCompleted", + "referencedDeclaration": 3534, + "type": "function (uint256) external" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3542, + "type": "contract Migrations", + "value": "upgraded" + }, + "id": 3547, + "name": "Identifier", + "src": "485:8:2" + } + ], + "id": 3549, + "name": "MemberAccess", + "src": "485:21:2" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3504, + "type": "uint256", + "value": "last_completed_migration" + }, + "id": 3550, + "name": "Identifier", + "src": "507:24:2" + } + ], + "id": 3551, + "name": "FunctionCall", + "src": "485:47:2" + } + ], + "id": 3552, + "name": "ExpressionStatement", + "src": "485:47:2" + } + ], + "id": 3553, + "name": "Block", + "src": "428:109:2" + } + ], + "id": 3554, + "name": "FunctionDefinition", + "src": "372:165:2" + } + ], + "id": 3555, + "name": "ContractDefinition", + "src": "66:473:2" + } + ], + "id": 3556, + "name": "SourceUnit", + "src": "32:508:2" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": { + "1615634045645": { + "events": {}, + "links": {}, + "address": "0x5d9186563E9A90303C4d1BE43Cba06Ce6D82E3F3", + "transactionHash": "0x5441a1e14bf24a0072912be5ec290ba5cbc7f3e4e57c36af556910a06b15b60b" + }, + "1615634582841": { + "events": {}, + "links": {}, + "address": "0x5e44a8f8E81Aa59c0cEE5e6B3eEF841875740EeA", + "transactionHash": "0xe8002ac7e696334701655d3f949c8e31cdb11bc2d06b1966ba58c2d05d8b6905" + } + }, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-13T11:24:06.151Z", + "networkType": "ethereum", + "devdoc": { + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/abis/SafeMath.json b/src/abis/SafeMath.json new file mode 100644 index 0000000..587ecc3 --- /dev/null +++ b/src/abis/SafeMath.json @@ -0,0 +1,77558 @@ +{ + "contractName": "SafeMath", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":\"SafeMath\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":{\"keccak256\":\"0xac9220652f9879c5fb3116025d59e8fbf6c2c3d149aed9f617b88edd31402044\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48de100723de94a6590c6db5bae5098a93445194389c3f3eeb104c7239ef3044\",\"dweb:/ipfs/QmVHLEtfLqBqX7XQRHfLuuwtufRBFJFHfgY4zbFRpaZwXC\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122096721554c758fccd1c72f456acd5004c00142c8eada3c624c1d08c31c37301da64736f6c63430007060033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122096721554c758fccd1c72f456acd5004c00142c8eada3c624c1d08c31c37301da64736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "11300:6594:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "11300:6594:1:-:0;;;;;;;;", + "source": "// SPDX-License-Identifier: MIT\n\n// File: @openzeppelin/contracts/utils/Context.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\n\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Enumerable is IERC721 {\n\n /**\n * @dev Returns the total amount of tokens stored by the contract.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);\n\n /**\n * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n * Use along with {totalSupply} to enumerate all tokens.\n */\n function tokenByIndex(uint256 index) external view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\npragma solidity >=0.6.0 <0.8.0;\n\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts may inherit from this and call {_registerInterface} to declare\n * their support of an interface.\n */\nabstract contract ERC165 is IERC165 {\n /*\n * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7\n */\n bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;\n\n /**\n * @dev Mapping of interface ids to whether or not it's supported.\n */\n mapping(bytes4 => bool) private _supportedInterfaces;\n\n constructor () {\n // Derived contracts need only register support for their own interfaces,\n // we register support for ERC165 itself here\n _registerInterface(_INTERFACE_ID_ERC165);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n *\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return _supportedInterfaces[interfaceId];\n }\n\n /**\n * @dev Registers the contract as an implementer of the interface defined by\n * `interfaceId`. Support of the actual ERC165 interface is automatic and\n * registering its interface id is not required.\n *\n * See {IERC165-supportsInterface}.\n *\n * Requirements:\n *\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).\n */\n function _registerInterface(bytes4 interfaceId) internal virtual {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the substraction of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n return a - b;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) return 0;\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: division by zero\");\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: modulo by zero\");\n return a % b;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {trySub}.\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryDiv}.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting with custom message when dividing by zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryMod}.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a % b;\n }\n}\n\n// File: @openzeppelin/contracts/utils/Address.sol\npragma solidity >=0.6.2 <0.8.0;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n // solhint-disable-next-line no-inline-assembly\n assembly { size := extcodesize(account) }\n return size > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: value }(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.staticcall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableSet.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) { // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n bytes32 lastvalue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastvalue;\n // Update the index for the moved value\n set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n require(set._values.length > index, \"EnumerableSet: index out of bounds\");\n return set._values[index];\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableMap.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing an enumerable variant of Solidity's\n * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n * type.\n *\n * Maps have the following properties:\n *\n * - Entries are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Entries are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableMap for EnumerableMap.UintToAddressMap;\n *\n * // Declare a set state variable\n * EnumerableMap.UintToAddressMap private myMap;\n * }\n * ```\n *\n * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n * supported.\n */\nlibrary EnumerableMap {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Map type with\n // bytes32 keys and values.\n // The Map implementation uses private functions, and user-facing\n // implementations (such as Uint256ToAddressMap) are just wrappers around\n // the underlying Map.\n // This means that we can only create new EnumerableMaps for types that fit\n // in bytes32.\n\n struct MapEntry {\n bytes32 _key;\n bytes32 _value;\n }\n\n struct Map {\n // Storage of map keys and values\n MapEntry[] _entries;\n\n // Position of the entry defined by a key in the `entries` array, plus 1\n // because index 0 means a key is not in the map.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex == 0) { // Equivalent to !contains(map, key)\n map._entries.push(MapEntry({ _key: key, _value: value }));\n // The entry is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n map._indexes[key] = map._entries.length;\n return true;\n } else {\n map._entries[keyIndex - 1]._value = value;\n return false;\n }\n }\n\n /**\n * @dev Removes a key-value pair from a map. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function _remove(Map storage map, bytes32 key) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex != 0) { // Equivalent to contains(map, key)\n // To delete a key-value pair from the _entries array in O(1), we swap the entry to delete with the last one\n // in the array, and then remove the last entry (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = keyIndex - 1;\n uint256 lastIndex = map._entries.length - 1;\n\n // When the entry to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n MapEntry storage lastEntry = map._entries[lastIndex];\n\n // Move the last entry to the index where the entry to delete is\n map._entries[toDeleteIndex] = lastEntry;\n // Update the index for the moved entry\n map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved entry was stored\n map._entries.pop();\n\n // Delete the index for the deleted slot\n delete map._indexes[key];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function _contains(Map storage map, bytes32 key) private view returns (bool) {\n return map._indexes[key] != 0;\n }\n\n /**\n * @dev Returns the number of key-value pairs in the map. O(1).\n */\n function _length(Map storage map) private view returns (uint256) {\n return map._entries.length;\n }\n\n /**\n * @dev Returns the key-value pair stored at position `index` in the map. O(1).\n *\n * Note that there are no guarantees on the ordering of entries inside the\n * array, and it may change when more entries are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) {\n require(map._entries.length > index, \"EnumerableMap: index out of bounds\");\n\n MapEntry storage entry = map._entries[index];\n return (entry._key, entry._value);\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n */\n function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) {\n uint256 keyIndex = map._indexes[key];\n if (keyIndex == 0) return (false, 0); // Equivalent to contains(map, key)\n return (true, map._entries[keyIndex - 1]._value); // All indexes are 1-based\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function _get(Map storage map, bytes32 key) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, \"EnumerableMap: nonexistent key\"); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n /**\n * @dev Same as {_get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {_tryGet}.\n */\n function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n // UintToAddressMap\n\n struct UintToAddressMap {\n Map _inner;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) {\n return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {\n return _remove(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {\n return _contains(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns the number of elements in the map. O(1).\n */\n function length(UintToAddressMap storage map) internal view returns (uint256) {\n return _length(map._inner);\n }\n\n /**\n * @dev Returns the element stored at position `index` in the set. O(1).\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {\n (bytes32 key, bytes32 value) = _at(map._inner, index);\n return (uint256(key), address(uint160(uint256(value))));\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n *\n * _Available since v3.4._\n */\n function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) {\n (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key));\n return (success, address(uint160(uint256(value))));\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key)))));\n }\n\n /**\n * @dev Same as {get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryGet}.\n */\n function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage))));\n }\n}\n\n// File: @openzeppelin/contracts/utils/Strings.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n /**\n * @dev Converts a `uint256` to its ASCII `string` representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n uint256 index = digits - 1;\n temp = value;\n while (temp != 0) {\n buffer[index--] = bytes1(uint8(48 + temp % 10));\n temp /= 10;\n }\n return string(buffer);\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 Non-Fungible Token Standard basic implementation\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable {\n using SafeMath for uint256;\n using Address for address;\n using EnumerableSet for EnumerableSet.UintSet;\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n using Strings for uint256;\n\n // Equals to `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n // which can be also obtained as `IERC721Receiver(0).onERC721Received.selector`\n bytes4 private constant _ERC721_RECEIVED = 0x150b7a02;\n\n // Mapping from holder address to their (enumerable) set of owned tokens\n mapping (address => EnumerableSet.UintSet) private _holderTokens;\n\n // Enumerable mapping from token ids to their owners\n EnumerableMap.UintToAddressMap private _tokenOwners;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Optional mapping for token URIs\n mapping (uint256 => string) private _tokenURIs;\n\n // Base URI\n string private _baseURI;\n\n /*\n * bytes4(keccak256('balanceOf(address)')) == 0x70a08231\n * bytes4(keccak256('ownerOf(uint256)')) == 0x6352211e\n * bytes4(keccak256('approve(address,uint256)')) == 0x095ea7b3\n * bytes4(keccak256('getApproved(uint256)')) == 0x081812fc\n * bytes4(keccak256('setApprovalForAll(address,bool)')) == 0xa22cb465\n * bytes4(keccak256('isApprovedForAll(address,address)')) == 0xe985e9c5\n * bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde\n *\n * => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^\n * 0xa22cb465 ^ 0xe985e9c5 ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n /*\n * bytes4(keccak256('name()')) == 0x06fdde03\n * bytes4(keccak256('symbol()')) == 0x95d89b41\n * bytes4(keccak256('tokenURI(uint256)')) == 0xc87b56dd\n *\n * => 0x06fdde03 ^ 0x95d89b41 ^ 0xc87b56dd == 0x5b5e139f\n */\n bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f;\n\n /*\n * bytes4(keccak256('totalSupply()')) == 0x18160ddd\n * bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) == 0x2f745c59\n * bytes4(keccak256('tokenByIndex(uint256)')) == 0x4f6ccce7\n *\n * => 0x18160ddd ^ 0x2f745c59 ^ 0x4f6ccce7 == 0x780e9d63\n */\n bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor (string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n return _holderTokens[owner].length();\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n return _tokenOwners.get(tokenId, \"ERC721: owner query for nonexistent token\");\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).\n if (bytes(_tokenURI).length > 0) {\n return string(abi.encodePacked(base, _tokenURI));\n }\n // If there is a baseURI but no tokenURI, concatenate the tokenID to the baseURI.\n return string(abi.encodePacked(base, tokenId.toString()));\n }\n\n /**\n * @dev Returns the base URI set via {_setBaseURI}. This will be\n * automatically added as a prefix in {tokenURI} to each token's URI, or\n * to the token ID if no specific URI is set for that token ID.\n */\n function baseURI() public view virtual returns (string memory) {\n return _baseURI;\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\n return _holderTokens[owner].at(index);\n }\n\n /**\n * @dev See {IERC721Enumerable-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n // _tokenOwners are indexed by tokenIds, so .length() returns the number of tokenIds\n return _tokenOwners.length();\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenByIndex}.\n */\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\n (uint256 tokenId, ) = _tokenOwners.at(index);\n return tokenId;\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(_msgSender() == owner || ERC721.isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n require(operator != _msgSender(), \"ERC721: approve to caller\");\n\n _operatorApprovals[_msgSender()][operator] = approved;\n emit ApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n _safeTransfer(from, to, tokenId, _data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `_data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _tokenOwners.contains(tokenId);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || ERC721.isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n d*\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory _data) internal virtual {\n _mint(to, tokenId);\n require(_checkOnERC721Received(address(0), to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId);\n\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId); // internal owner\n\n _beforeTokenTransfer(owner, address(0), tokenId);\n\n // Clear approvals\n _approve(address(0), tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n\n _holderTokens[owner].remove(tokenId);\n\n _tokenOwners.remove(tokenId);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\"); // internal owner\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId);\n\n // Clear approvals from the previous owner\n _approve(address(0), tokenId);\n\n _holderTokens[from].remove(tokenId);\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = _tokenURI;\n }\n\n /**\n * @dev Internal function to set the base URI for all token IDs. It is\n * automatically added as a prefix to the value returned in {tokenURI},\n * or to the token ID if {tokenURI} is empty.\n */\n function _setBaseURI(string memory baseURI_) internal virtual {\n _baseURI = baseURI_;\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data)\n private returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n bytes memory returndata = to.functionCall(abi.encodeWithSelector(\n IERC721Receiver(to).onERC721Received.selector,\n _msgSender(),\n from,\n tokenId,\n _data\n ), \"ERC721: transfer to non ERC721Receiver implementer\");\n bytes4 retval = abi.decode(returndata, (bytes4));\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits an {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId); // internal owner\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n * transferred to `to`.\n * - When `from` is zero, `tokenId` will be minted for `to`.\n * - When `to` is zero, ``from``'s `tokenId` will be burned.\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual { }\n}\n", + "sourcePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "ast": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "id": 3499, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 509, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "84:31:1" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 530, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 517, + "nodeType": "Block", + "src": "719:34:1", + "statements": [ + { + "expression": { + "expression": { + "id": 514, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "736:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "736:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 513, + "id": 516, + "nodeType": "Return", + "src": "729:17:1" + } + ] + }, + "id": 518, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 510, + "nodeType": "ParameterList", + "parameters": [], + "src": "668:2:1" + }, + "returnParameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 518, + "src": "702:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "702:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "701:17:1" + }, + "scope": 530, + "src": "649:104:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 528, + "nodeType": "Block", + "src": "824:165:1", + "statements": [ + { + "expression": { + "id": 523, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "834:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 524, + "nodeType": "ExpressionStatement", + "src": "834:4:1" + }, + { + "expression": { + "expression": { + "id": 525, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "974:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "src": "974:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 522, + "id": 527, + "nodeType": "Return", + "src": "967:15:1" + } + ] + }, + "id": 529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 519, + "nodeType": "ParameterList", + "parameters": [], + "src": "776:2:1" + }, + "returnParameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "810:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 520, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "810:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "809:14:1" + }, + "scope": 530, + "src": "759:230:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "617:374:1" + }, + { + "id": 531, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1053:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 532, + "nodeType": "StructuredDocumentation", + "src": "1086:279:1", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 541, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 533, + "nodeType": "StructuredDocumentation", + "src": "1390:340:1", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 540, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1762:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 534, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1762:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1761:20:1" + }, + "returnParameters": { + "id": 539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1805:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1805:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1804:6:1" + }, + "scope": 541, + "src": "1735:76:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1366:447:1" + }, + { + "id": 542, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1873:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 544, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "1996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 545, + "nodeType": "InheritanceSpecifier", + "src": "1996:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "1907:67:1", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 655, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 546, + "nodeType": "StructuredDocumentation", + "src": "2010:88:1", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 554, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 548, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2118:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 550, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2140:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2140:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 552, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2160:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2117:67:1" + }, + "src": "2103:82:1" + }, + { + "anonymous": false, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "2191:94:1", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 563, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 557, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2305:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2305:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 559, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2328:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 561, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2354:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2354:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2304:74:1" + }, + "src": "2290:89:1" + }, + { + "anonymous": false, + "documentation": { + "id": 564, + "nodeType": "StructuredDocumentation", + "src": "2385:117:1", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 572, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 566, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2528:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2528:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2551:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2551:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 570, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2577:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 569, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2577:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2527:64:1" + }, + "src": "2507:85:1" + }, + { + "documentation": { + "id": 573, + "nodeType": "StructuredDocumentation", + "src": "2598:76:1", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2698:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 574, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2698:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2697:15:1" + }, + "returnParameters": { + "id": 579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2736:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2735:17:1" + }, + "scope": 655, + "src": "2679:74:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 581, + "nodeType": "StructuredDocumentation", + "src": "2759:131:1", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 588, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 583, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2912:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2912:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2911:17:1" + }, + "returnParameters": { + "id": 587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2952:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2951:15:1" + }, + "scope": 655, + "src": "2895:72:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 589, + "nodeType": "StructuredDocumentation", + "src": "2973:690:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 598, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 591, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3694:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3694:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3708:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3708:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3720:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3720:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3693:43:1" + }, + "returnParameters": { + "id": 597, + "nodeType": "ParameterList", + "parameters": [], + "src": "3745:0:1" + }, + "scope": 655, + "src": "3668:78:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 599, + "nodeType": "StructuredDocumentation", + "src": "3752:504:1", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 608, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 601, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4283:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4283:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 603, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4297:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 602, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4297:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4309:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4309:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4282:43:1" + }, + "returnParameters": { + "id": 607, + "nodeType": "ParameterList", + "parameters": [], + "src": "4334:0:1" + }, + "scope": 655, + "src": "4261:74:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 609, + "nodeType": "StructuredDocumentation", + "src": "4341:452:1", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 616, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 611, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4815:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4815:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4827:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4814:29:1" + }, + "returnParameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [], + "src": "4852:0:1" + }, + "scope": 655, + "src": "4798:55:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 617, + "nodeType": "StructuredDocumentation", + "src": "4859:139:1", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 619, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5024:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5024:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5023:17:1" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5064:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5064:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5063:18:1" + }, + "scope": 655, + "src": "5003:79:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 625, + "nodeType": "StructuredDocumentation", + "src": "5088:309:1", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 632, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5429:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5429:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5447:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 628, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5447:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5428:34:1" + }, + "returnParameters": { + "id": 631, + "nodeType": "ParameterList", + "parameters": [], + "src": "5471:0:1" + }, + "scope": 655, + "src": "5402:70:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 633, + "nodeType": "StructuredDocumentation", + "src": "5478:138:1", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 642, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5647:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5647:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5662:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5662:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5646:33:1" + }, + "returnParameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5703:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 639, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5703:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5702:6:1" + }, + "scope": 655, + "src": "5621:88:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 643, + "nodeType": "StructuredDocumentation", + "src": "5715:568:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 654, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6314:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6314:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6328:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6340:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6340:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6357:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 650, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6357:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6313:64:1" + }, + "returnParameters": { + "id": 653, + "nodeType": "ParameterList", + "parameters": [], + "src": "6386:0:1" + }, + "scope": 655, + "src": "6288:99:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1975:4414:1" + }, + { + "id": 656, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "6457:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 658, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "6654:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 659, + "nodeType": "InheritanceSpecifier", + "src": "6654:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 657, + "nodeType": "StructuredDocumentation", + "src": "6491:133:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 680, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 660, + "nodeType": "StructuredDocumentation", + "src": "6669:58:1", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 665, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [], + "src": "6745:2:1" + }, + "returnParameters": { + "id": 664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 663, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 665, + "src": "6771:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 662, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6771:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6770:15:1" + }, + "scope": 680, + "src": "6732:54:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 666, + "nodeType": "StructuredDocumentation", + "src": "6792:60:1", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 671, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 667, + "nodeType": "ParameterList", + "parameters": [], + "src": "6872:2:1" + }, + "returnParameters": { + "id": 670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 669, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "6898:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 668, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6897:15:1" + }, + "scope": 680, + "src": "6857:56:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 672, + "nodeType": "StructuredDocumentation", + "src": "6919:90:1", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 679, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7032:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7031:17:1" + }, + "returnParameters": { + "id": 678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7072:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 676, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7072:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7071:15:1" + }, + "scope": 680, + "src": "7014:73:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "6625:464:1" + }, + { + "id": 681, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "7161:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 683, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "7363:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 684, + "nodeType": "InheritanceSpecifier", + "src": "7363:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 682, + "nodeType": "StructuredDocumentation", + "src": "7195:136:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 709, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 685, + "nodeType": "StructuredDocumentation", + "src": "7378:82:1", + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "functionSelector": "18160ddd", + "id": 690, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 686, + "nodeType": "ParameterList", + "parameters": [], + "src": "7485:2:1" + }, + "returnParameters": { + "id": 689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 688, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "7511:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 687, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7511:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7510:9:1" + }, + "scope": 709, + "src": "7465:55:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "7526:171:1", + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "functionSelector": "2f745c59", + "id": 700, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7731:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7731:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7746:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7746:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7730:30:1" + }, + "returnParameters": { + "id": 699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 698, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7784:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7784:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7783:17:1" + }, + "scope": 709, + "src": "7702:99:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 701, + "nodeType": "StructuredDocumentation", + "src": "7807:164:1", + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "functionSelector": "4f6ccce7", + "id": 708, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 703, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "7998:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7998:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7997:15:1" + }, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "8036:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8036:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8035:9:1" + }, + "scope": 709, + "src": "7976:69:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "7332:715:1" + }, + { + "id": 710, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "8117:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 711, + "nodeType": "StructuredDocumentation", + "src": "8150:152:1", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 726, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 712, + "nodeType": "StructuredDocumentation", + "src": "8335:485:1", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 725, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8851:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8851:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8869:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8883:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8900:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 719, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8900:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8850:70:1" + }, + "returnParameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8939:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 722, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8939:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "8938:8:1" + }, + "scope": 726, + "src": "8825:122:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "8303:646:1" + }, + { + "id": 727, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9009:31:1" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 729, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "9243:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 730, + "nodeType": "InheritanceSpecifier", + "src": "9243:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "documentation": { + "id": 728, + "nodeType": "StructuredDocumentation", + "src": "9043:171:1", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "fullyImplemented": true, + "id": 781, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 733, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9340:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 731, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9340:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783031666663396137", + "id": 732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "9404:82:1", + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 738, + "mutability": "mutable", + "name": "_supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9491:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 737, + "keyType": { + "id": 735, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9499:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "9491:23:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 736, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9509:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 745, + "nodeType": "Block", + "src": "9565:193:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 742, + "name": "_INTERFACE_ID_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "9730:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 741, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "9711:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9711:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 744, + "nodeType": "ExpressionStatement", + "src": "9711:40:1" + } + ] + }, + "id": 746, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 739, + "nodeType": "ParameterList", + "parameters": [], + "src": "9562:2:1" + }, + "returnParameters": { + "id": 740, + "nodeType": "ParameterList", + "parameters": [], + "src": "9565:0:1" + }, + "scope": 781, + "src": "9550:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 540 + ], + "body": { + "id": 759, + "nodeType": "Block", + "src": "9999:57:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 755, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10016:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 757, + "indexExpression": { + "id": 756, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "10037:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10016:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 754, + "id": 758, + "nodeType": "Return", + "src": "10009:40:1" + } + ] + }, + "documentation": { + "id": 747, + "nodeType": "StructuredDocumentation", + "src": "9764:139:1", + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 760, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 751, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9975:8:1" + }, + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9935:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 748, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9935:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "9934:20:1" + }, + "returnParameters": { + "id": 754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 753, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9993:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9993:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9992:6:1" + }, + "scope": 781, + "src": "9908:148:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 779, + "nodeType": "Block", + "src": "10515:133:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 767, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10533:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10548:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "10533:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10560:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + }, + "value": "ERC165: invalid interface id" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "id": 766, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "10525:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10525:66:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 772, + "nodeType": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "expression": { + "id": 777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 773, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10601:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 775, + "indexExpression": { + "id": 774, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10622:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10637:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10601:40:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 778, + "nodeType": "ExpressionStatement", + "src": "10601:40:1" + } + ] + }, + "documentation": { + "id": 761, + "nodeType": "StructuredDocumentation", + "src": "10062:383:1", + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 780, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 763, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 780, + "src": "10478:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 762, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "10478:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "10477:20:1" + }, + "returnParameters": { + "id": 765, + "nodeType": "ParameterList", + "parameters": [], + "src": "10515:0:1" + }, + "scope": 781, + "src": "10450:198:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "9215:1435:1" + }, + { + "id": 782, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10703:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 783, + "nodeType": "StructuredDocumentation", + "src": "10736:563:1", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 1135, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 813, + "nodeType": "Block", + "src": "11535:98:1", + "statements": [ + { + "assignments": [ + 796 + ], + "declarations": [ + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 813, + "src": "11545:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 795, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 800, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 797, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11557:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "11561:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11557:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 801, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11576:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 802, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11580:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11576:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 808, + "nodeType": "IfStatement", + "src": "11572:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11591:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11598:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 806, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11590:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 794, + "id": 807, + "nodeType": "Return", + "src": "11583:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11618:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 810, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11624:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 811, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11617:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 794, + "id": 812, + "nodeType": "Return", + "src": "11610:16:1" + } + ] + }, + "documentation": { + "id": 784, + "nodeType": "StructuredDocumentation", + "src": "11323:131:1", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 814, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11475:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11475:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11486:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11486:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11474:22:1" + }, + "returnParameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 791, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11526:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 792, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11526:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11519:15:1" + }, + "scope": 1135, + "src": "11459:174:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 840, + "nodeType": "Block", + "src": "11855:75:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 826, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11869:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 827, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11873:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11869:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 833, + "nodeType": "IfStatement", + "src": "11865:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11884:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 831, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11883:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 825, + "id": 832, + "nodeType": "Return", + "src": "11876:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11911:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 835, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11917:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 836, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11921:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11917:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 838, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11910:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 825, + "id": 839, + "nodeType": "Return", + "src": "11903:20:1" + } + ] + }, + "documentation": { + "id": 815, + "nodeType": "StructuredDocumentation", + "src": "11639:135:1", + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 841, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 817, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11795:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11795:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 819, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11806:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11806:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11794:22:1" + }, + "returnParameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11840:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 821, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11840:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 824, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11846:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11846:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11839:15:1" + }, + "scope": 1135, + "src": "11779:151:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 881, + "nodeType": "Block", + "src": "12154:359:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 853, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12386:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12391:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12386:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 860, + "nodeType": "IfStatement", + "src": "12382:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12402:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12408:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 858, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12401:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 859, + "nodeType": "Return", + "src": "12394:16:1" + } + }, + { + "assignments": [ + 862 + ], + "declarations": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "12420:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12420:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 866, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12432:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 864, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12436:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12432:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 867, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12451:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 868, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12455:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 870, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12460:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 876, + "nodeType": "IfStatement", + "src": "12447:33:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12471:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12478:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 874, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12470:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 875, + "nodeType": "Return", + "src": "12463:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12498:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 878, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12504:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12497:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 852, + "id": 880, + "nodeType": "Return", + "src": "12490:16:1" + } + ] + }, + "documentation": { + "id": 842, + "nodeType": "StructuredDocumentation", + "src": "11936:137:1", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 844, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12094:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12094:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 846, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12105:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12093:22:1" + }, + "returnParameters": { + "id": 852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12139:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 848, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12139:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12145:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12145:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12138:15:1" + }, + "scope": 1135, + "src": "12078:435:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 908, + "nodeType": "Block", + "src": "12738:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 894, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12752:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12757:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12752:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 901, + "nodeType": "IfStatement", + "src": "12748:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12768:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12775:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 899, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12767:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 893, + "id": 900, + "nodeType": "Return", + "src": "12760:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12795:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 903, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "12801:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 904, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12805:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12801:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 906, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12794:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 893, + "id": 907, + "nodeType": "Return", + "src": "12787:20:1" + } + ] + }, + "documentation": { + "id": 883, + "nodeType": "StructuredDocumentation", + "src": "12519:138:1", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 909, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12678:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12678:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12689:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12689:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12677:22:1" + }, + "returnParameters": { + "id": 893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12723:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 889, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12723:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12729:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12729:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12722:15:1" + }, + "scope": 1135, + "src": "12662:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 935, + "nodeType": "Block", + "src": "13049:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 921, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13063:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13068:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13063:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 928, + "nodeType": "IfStatement", + "src": "13059:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13079:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13086:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 926, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13078:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 920, + "id": 927, + "nodeType": "Return", + "src": "13071:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13106:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 930, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "13112:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 931, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13116:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13112:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13105:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 920, + "id": 934, + "nodeType": "Return", + "src": "13098:20:1" + } + ] + }, + "documentation": { + "id": 910, + "nodeType": "StructuredDocumentation", + "src": "12820:148:1", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 912, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "12989:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12989:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 914, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13000:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 913, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13000:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12988:22:1" + }, + "returnParameters": { + "id": 920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 917, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13034:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 916, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13034:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 919, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13040:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13040:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13033:15:1" + }, + "scope": 1135, + "src": "12973:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 961, + "nodeType": "Block", + "src": "13427:108:1", + "statements": [ + { + "assignments": [ + 947 + ], + "declarations": [ + { + "constant": false, + "id": 947, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "13437:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13437:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 951, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13449:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 949, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 941, + "src": "13453:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13449:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 953, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13472:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 954, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13477:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13480:29:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 952, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13464:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 958, + "nodeType": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "expression": { + "id": 959, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13527:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 945, + "id": 960, + "nodeType": "Return", + "src": "13520:8:1" + } + ] + }, + "documentation": { + "id": 937, + "nodeType": "StructuredDocumentation", + "src": "13131:224:1", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13373:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13384:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13384:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13372:22:1" + }, + "returnParameters": { + "id": 945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13418:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13418:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13417:9:1" + }, + "scope": 1135, + "src": "13360:175:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 983, + "nodeType": "Block", + "src": "13873:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 973, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13896:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13891:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13883:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 979, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13949:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 980, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13953:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13949:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 971, + "id": 982, + "nodeType": "Return", + "src": "13942:12:1" + } + ] + }, + "documentation": { + "id": 963, + "nodeType": "StructuredDocumentation", + "src": "13541:260:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 984, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13819:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 964, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 967, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13830:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13830:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13818:22:1" + }, + "returnParameters": { + "id": 971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 970, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13864:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13864:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13863:9:1" + }, + "scope": 1135, + "src": "13806:155:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "14275:148:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 994, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14289:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14294:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14289:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "IfStatement", + "src": "14285:20:1", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14304:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 993, + "id": 998, + "nodeType": "Return", + "src": "14297:8:1" + } + }, + { + "assignments": [ + 1001 + ], + "declarations": [ + { + "constant": false, + "id": 1001, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "14315:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14315:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1005, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1002, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14327:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1003, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14331:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14327:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1007, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14350:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1008, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14354:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1010, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14359:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14362:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1006, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14342:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14342:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "expression": { + "id": 1015, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14415:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 993, + "id": 1016, + "nodeType": "Return", + "src": "14408:8:1" + } + ] + }, + "documentation": { + "id": 985, + "nodeType": "StructuredDocumentation", + "src": "13967:236:1", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14221:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 989, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14232:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 988, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14232:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14220:22:1" + }, + "returnParameters": { + "id": 993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 992, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14266:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14266:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14265:9:1" + }, + "scope": 1135, + "src": "14208:215:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1039, + "nodeType": "Block", + "src": "14954:83:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1029, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "14972:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14976:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14972:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14979:28:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14964:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14964:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1034, + "nodeType": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1035, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1021, + "src": "15025:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1036, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "15029:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15025:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1027, + "id": 1038, + "nodeType": "Return", + "src": "15018:12:1" + } + ] + }, + "documentation": { + "id": 1019, + "nodeType": "StructuredDocumentation", + "src": "14429:453:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1040, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1021, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14900:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14900:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1023, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14911:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14899:22:1" + }, + "returnParameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1026, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14945:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14945:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14944:9:1" + }, + "scope": 1135, + "src": "14887:150:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1061, + "nodeType": "Block", + "src": "15557:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1051, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15575:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15579:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15582:26:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 1050, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "15567:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15567:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1056, + "nodeType": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1057, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1043, + "src": "15626:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1058, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15630:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15626:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1049, + "id": 1060, + "nodeType": "Return", + "src": "15619:12:1" + } + ] + }, + "documentation": { + "id": 1041, + "nodeType": "StructuredDocumentation", + "src": "15043:442:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1062, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1043, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15503:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1045, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15514:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15502:22:1" + }, + "returnParameters": { + "id": 1049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1048, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15548:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15548:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15547:9:1" + }, + "scope": 1135, + "src": "15490:148:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1085, + "nodeType": "Block", + "src": "16197:68:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16215:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1076, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16220:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16215:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1078, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "16223:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1074, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "16207:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16207:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1080, + "nodeType": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16253:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1082, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16257:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16253:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1073, + "id": 1084, + "nodeType": "Return", + "src": "16246:12:1" + } + ] + }, + "documentation": { + "id": 1063, + "nodeType": "StructuredDocumentation", + "src": "15644:453:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1086, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16115:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16115:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16126:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16137:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1068, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16137:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16114:50:1" + }, + "returnParameters": { + "id": 1073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16188:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16188:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16187:9:1" + }, + "scope": 1135, + "src": "16102:163:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1109, + "nodeType": "Block", + "src": "17017:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1099, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17035:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17039:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17035:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1102, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1093, + "src": "17042:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17027:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17027:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1105, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "17072:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1106, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17076:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17072:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1097, + "id": 1108, + "nodeType": "Return", + "src": "17065:12:1" + } + ] + }, + "documentation": { + "id": 1087, + "nodeType": "StructuredDocumentation", + "src": "16271:646:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16935:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16935:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16946:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16946:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1093, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16957:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1092, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16957:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16934:50:1" + }, + "returnParameters": { + "id": 1097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1096, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "17008:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17008:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17007:9:1" + }, + "scope": 1135, + "src": "16922:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1133, + "nodeType": "Block", + "src": "17825:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1123, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17843:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17847:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17843:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1126, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "17850:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17835:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1128, + "nodeType": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1129, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "17880:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1130, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17880:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1121, + "id": 1132, + "nodeType": "Return", + "src": "17873:12:1" + } + ] + }, + "documentation": { + "id": 1111, + "nodeType": "StructuredDocumentation", + "src": "17090:635:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17743:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17743:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17754:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17754:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17765:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1116, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17765:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17742:50:1" + }, + "returnParameters": { + "id": 1121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17816:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17816:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17815:9:1" + }, + "scope": 1135, + "src": "17730:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "11300:6594:1" + }, + { + "id": 1136, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "17947:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1137, + "nodeType": "StructuredDocumentation", + "src": "17980:67:1", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 1430, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1153, + "nodeType": "Block", + "src": "18706:347:1", + "statements": [ + { + "assignments": [ + 1146 + ], + "declarations": [ + { + "constant": false, + "id": 1146, + "mutability": "mutable", + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 1153, + "src": "18903:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18903:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1147, + "nodeType": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "18990:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18992:28:1", + "value": { + "arguments": [ + { + "name": "account", + "nodeType": "YulIdentifier", + "src": "19012:7:1" + } + ], + "functionName": { + "name": "extcodesize", + "nodeType": "YulIdentifier", + "src": "19000:11:1" + }, + "nodeType": "YulFunctionCall", + "src": "19000:20:1" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "18992:4:1" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "id": 1148, + "nodeType": "InlineAssembly", + "src": "18981:41:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1149, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "19038:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19045:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19038:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1144, + "id": 1152, + "nodeType": "Return", + "src": "19031:15:1" + } + ] + }, + "documentation": { + "id": 1138, + "nodeType": "StructuredDocumentation", + "src": "18070:565:1", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1154, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1140, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18660:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18660:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18659:17:1" + }, + "returnParameters": { + "id": 1144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1143, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18700:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1142, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18700:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "18699:6:1" + }, + "scope": 1430, + "src": "18640:413:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1187, + "nodeType": "Block", + "src": "20041:320:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1165, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "20067:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20059:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1163, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20059:7:1", + "typeDescriptions": {} + } + }, + "id": 1166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20059:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "20059:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1168, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20084:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20059:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20092:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 1162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20051:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1172, + "nodeType": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "assignments": [ + 1174, + null + ], + "declarations": [ + { + "constant": false, + "id": 1174, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1187, + "src": "20213:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1173, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20213:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1181, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20263:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 1175, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1157, + "src": "20231:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "20231:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1177, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20254:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "20231:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20231:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1183, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "20284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20293:60:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 1182, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20276:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20276:78:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1186, + "nodeType": "ExpressionStatement", + "src": "20276:78:1" + } + ] + }, + "documentation": { + "id": 1155, + "nodeType": "StructuredDocumentation", + "src": "19059:906:1", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1188, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1157, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "19989:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19989:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1159, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "20016:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19988:43:1" + }, + "returnParameters": { + "id": 1161, + "nodeType": "ParameterList", + "parameters": [], + "src": "20041:0:1" + }, + "scope": 1430, + "src": "19970:391:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1204, + "nodeType": "Block", + "src": "21191:82:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1199, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "21219:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1200, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "21227:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21233:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 1198, + "name": "functionCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "src": "21206:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21206:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1197, + "id": 1203, + "nodeType": "Return", + "src": "21199:67:1" + } + ] + }, + "documentation": { + "id": 1189, + "nodeType": "StructuredDocumentation", + "src": "20367:730:1", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1205, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21124:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21124:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21140:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1192, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21140:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21123:35:1" + }, + "returnParameters": { + "id": 1197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1196, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21177:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1195, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21176:14:1" + }, + "scope": 1430, + "src": "21102:171:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1224, + "nodeType": "Block", + "src": "21612:76:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1218, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "21651:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1219, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "21659:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21665:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 1221, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "21668:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1217, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "21629:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21629:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1216, + "id": 1223, + "nodeType": "Return", + "src": "21622:59:1" + } + ] + }, + "documentation": { + "id": 1206, + "nodeType": "StructuredDocumentation", + "src": "21279:211:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1208, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21517:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21517:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21533:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1209, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21533:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1212, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21552:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1211, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "21552:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "21516:63:1" + }, + "returnParameters": { + "id": 1216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1215, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21598:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1214, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21598:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21597:14:1" + }, + "scope": 1430, + "src": "21495:193:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1244, + "nodeType": "Block", + "src": "22163:111:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1238, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "22202:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1239, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "22210:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1240, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1232, + "src": "22216:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22223:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 1237, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "22180:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22180:87:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1236, + "id": 1243, + "nodeType": "Return", + "src": "22173:94:1" + } + ] + }, + "documentation": { + "id": 1226, + "nodeType": "StructuredDocumentation", + "src": "21694:351:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1245, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1228, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22081:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22081:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1230, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22097:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1229, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22097:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1232, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22116:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "22080:50:1" + }, + "returnParameters": { + "id": 1236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1235, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22149:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1234, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22149:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22148:14:1" + }, + "scope": 1430, + "src": "22050:224:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1294, + "nodeType": "Block", + "src": "22663:382:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1262, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "22689:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22681:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22681:7:1", + "typeDescriptions": {} + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22681:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "22681:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1265, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22706:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22681:30:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 1267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22713:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 1259, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22673:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22673:81:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1269, + "nodeType": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1272, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22783:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1271, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "22772:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22772:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22792:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 1270, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22764:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22764:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1276, + "nodeType": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "assignments": [ + 1278, + 1280 + ], + "declarations": [ + { + "constant": false, + "id": 1278, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22895:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1277, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22895:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1280, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22909:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1279, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22909:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1287, + "initialValue": { + "arguments": [ + { + "id": 1285, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1250, + "src": "22964:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1281, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22936:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "22936:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1283, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22956:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "22936:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22936:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1289, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "23004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1290, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1280, + "src": "23013:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1291, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "23025:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1288, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "22986:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22986:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1258, + "id": 1293, + "nodeType": "Return", + "src": "22979:59:1" + } + ] + }, + "documentation": { + "id": 1246, + "nodeType": "StructuredDocumentation", + "src": "22280:237:1", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1295, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1248, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22553:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22553:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1250, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22569:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1249, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22569:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1252, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22588:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22588:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1254, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22603:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1253, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "22603:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "22552:78:1" + }, + "returnParameters": { + "id": 1258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1257, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22649:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1256, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22649:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22648:14:1" + }, + "scope": 1430, + "src": "22522:523:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1311, + "nodeType": "Block", + "src": "23322:97:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1306, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1298, + "src": "23358:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1307, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "23366:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23372:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 1305, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "src": "23339:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23339:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1304, + "id": 1310, + "nodeType": "Return", + "src": "23332:80:1" + } + ] + }, + "documentation": { + "id": 1296, + "nodeType": "StructuredDocumentation", + "src": "23051:166:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1298, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23250:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23250:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23266:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1299, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23266:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23249:35:1" + }, + "returnParameters": { + "id": 1304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1303, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23308:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23308:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23307:14:1" + }, + "scope": 1430, + "src": "23222:197:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1346, + "nodeType": "Block", + "src": "23731:288:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1326, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1325, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "23749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23749:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23769:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + }, + "value": "Address: static call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "id": 1324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "23741:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23741:67:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1330, + "nodeType": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "assignments": [ + 1332, + 1334 + ], + "declarations": [ + { + "constant": false, + "id": 1332, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23879:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1331, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23879:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1334, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23893:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1333, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23893:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1339, + "initialValue": { + "arguments": [ + { + "id": 1337, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "23938:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1335, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23920:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "23920:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23920:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1341, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "23978:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1342, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1334, + "src": "23987:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1343, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "23999:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1340, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "23960:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23960:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1323, + "id": 1345, + "nodeType": "Return", + "src": "23953:59:1" + } + ] + }, + "documentation": { + "id": 1313, + "nodeType": "StructuredDocumentation", + "src": "23425:173:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1315, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23631:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23631:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1317, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23647:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1316, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23647:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1319, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23666:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1318, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "23666:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "23630:63:1" + }, + "returnParameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1322, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23717:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1321, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23717:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23716:14:1" + }, + "scope": 1430, + "src": "23603:416:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1363, + "nodeType": "Block", + "src": "24295:101:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1358, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "24333:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1359, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "24341:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24347:41:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 1357, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "src": "24312:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24312:77:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1356, + "id": 1362, + "nodeType": "Return", + "src": "24305:84:1" + } + ] + }, + "documentation": { + "id": 1348, + "nodeType": "StructuredDocumentation", + "src": "24025:168:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1364, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1350, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24228:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24244:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1351, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24227:35:1" + }, + "returnParameters": { + "id": 1356, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1355, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24281:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1354, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24281:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24280:14:1" + }, + "scope": 1430, + "src": "24198:198:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1398, + "nodeType": "Block", + "src": "24707:292:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1378, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24736:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1377, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "24725:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24725:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24745:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + }, + "value": "Address: delegate call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "id": 1376, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "24717:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24717:69:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1382, + "nodeType": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "assignments": [ + 1384, + 1386 + ], + "declarations": [ + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24857:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1383, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "24857:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24871:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1385, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24871:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1391, + "initialValue": { + "arguments": [ + { + "id": 1389, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1369, + "src": "24918:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1387, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "24898:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24898:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1393, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1384, + "src": "24958:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1394, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1386, + "src": "24967:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1395, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1371, + "src": "24979:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1392, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "24940:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24940:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1375, + "id": 1397, + "nodeType": "Return", + "src": "24933:59:1" + } + ] + }, + "documentation": { + "id": 1365, + "nodeType": "StructuredDocumentation", + "src": "24402:175:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1399, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1367, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24612:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24612:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1369, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24628:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1368, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24628:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1371, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24647:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1370, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "24647:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "24611:63:1" + }, + "returnParameters": { + "id": 1375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1374, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24693:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1373, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24693:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24692:14:1" + }, + "scope": 1430, + "src": "24582:417:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1428, + "nodeType": "Block", + "src": "25134:596:1", + "statements": [ + { + "condition": { + "id": 1410, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "25148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1426, + "nodeType": "Block", + "src": "25205:519:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1414, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25289:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "25289:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25309:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25289:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1424, + "nodeType": "Block", + "src": "25661:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1421, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1405, + "src": "25686:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1420, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "25679:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25679:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1423, + "nodeType": "ExpressionStatement", + "src": "25679:20:1" + } + ] + }, + "id": 1425, + "nodeType": "IfStatement", + "src": "25285:429:1", + "trueBody": { + "id": 1419, + "nodeType": "Block", + "src": "25312:343:1", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "25496:145:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "25518:40:1", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25547:10:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "25541:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "25541:17:1" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "25522:15:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25590:2:1", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25594:10:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25586:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "25586:19:1" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "25607:15:1" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "25579:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "25579:44:1" + }, + "nodeType": "YulExpressionStatement", + "src": "25579:44:1" + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "id": 1418, + "nodeType": "InlineAssembly", + "src": "25487:154:1" + } + ] + } + } + ] + }, + "id": 1427, + "nodeType": "IfStatement", + "src": "25144:580:1", + "trueBody": { + "id": 1413, + "nodeType": "Block", + "src": "25157:42:1", + "statements": [ + { + "expression": { + "id": 1411, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25178:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1409, + "id": 1412, + "nodeType": "Return", + "src": "25171:17:1" + } + ] + } + } + ] + }, + "id": 1429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1401, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25032:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1400, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "25032:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1403, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25046:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1402, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25046:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1405, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25071:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1404, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "25071:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "25031:67:1" + }, + "returnParameters": { + "id": 1409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1408, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25120:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1407, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25120:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "25119:14:1" + }, + "scope": 1430, + "src": "25005:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3499, + "src": "18048:7684:1" + }, + { + "id": 1431, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "25791:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1432, + "nodeType": "StructuredDocumentation", + "src": "25824:686:1", + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "fullyImplemented": true, + "id": 1921, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableSet.Set", + "id": 1440, + "members": [ + { + "constant": false, + "id": 1435, + "mutability": "mutable", + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27033:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1433, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27033:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1434, + "nodeType": "ArrayTypeName", + "src": "27033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1439, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27184:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1438, + "keyType": { + "id": 1436, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "27184:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "26979:249:1", + "visibility": "public" + }, + { + "body": { + "id": 1480, + "nodeType": "Block", + "src": "27467:335:1", + "statements": [ + { + "condition": { + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "27481:22:1", + "subExpression": { + "arguments": [ + { + "id": 1451, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27492:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + { + "id": 1452, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27497:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1450, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "27482:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27482:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1478, + "nodeType": "Block", + "src": "27759:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27780:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1449, + "id": 1477, + "nodeType": "Return", + "src": "27773:12:1" + } + ] + }, + "id": 1479, + "nodeType": "IfStatement", + "src": "27477:319:1", + "trueBody": { + "id": 1475, + "nodeType": "Block", + "src": "27505:248:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1460, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27536:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "expression": { + "id": 1455, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1458, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27519:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "27519:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 1461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27519:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1462, + "nodeType": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "expression": { + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1463, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27677:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "27677:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1467, + "indexExpression": { + "id": 1465, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27690:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "27677:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1468, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27699:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1469, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27699:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "27699:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27677:40:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1472, + "nodeType": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27738:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1449, + "id": 1474, + "nodeType": "Return", + "src": "27731:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1441, + "nodeType": "StructuredDocumentation", + "src": "27234:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1481, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27412:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1442, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27412:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1445, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27429:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1444, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27411:32:1" + }, + "returnParameters": { + "id": 1449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1447, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "27461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "27460:6:1" + }, + "scope": 1921, + "src": "27398:404:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1560, + "nodeType": "Block", + "src": "28042:1440:1", + "statements": [ + { + "assignments": [ + 1492 + ], + "declarations": [ + { + "constant": false, + "id": 1492, + "mutability": "mutable", + "name": "valueIndex", + "nodeType": "VariableDeclaration", + "scope": 1560, + "src": "28152:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28152:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1497, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1493, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28173:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1494, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "28173:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1496, + "indexExpression": { + "id": 1495, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "28186:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28173:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1498, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28207:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28221:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28207:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1558, + "nodeType": "Block", + "src": "29439:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29460:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1490, + "id": 1557, + "nodeType": "Return", + "src": "29453:12:1" + } + ] + }, + "id": 1559, + "nodeType": "IfStatement", + "src": "28203:1273:1", + "trueBody": { + "id": 1555, + "nodeType": "Block", + "src": "28224:1209:1", + "statements": [ + { + "assignments": [ + 1502 + ], + "declarations": [ + { + "constant": false, + "id": 1502, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28564:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28564:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1506, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1503, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28588:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28588:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "assignments": [ + 1508 + ], + "declarations": [ + { + "constant": false, + "id": 1508, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28616:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28616:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1514, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1509, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28636:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28636:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "28636:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28657:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28636:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "assignments": [ + 1516 + ], + "declarations": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "lastvalue", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28898:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1515, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28898:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1521, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1517, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28918:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1520, + "indexExpression": { + "id": 1519, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "28930:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28918:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "expression": { + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1522, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29032:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1525, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29032:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1526, + "indexExpression": { + "id": 1524, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29044:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29032:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1527, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29061:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "29032:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1529, + "nodeType": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "expression": { + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1530, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29136:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1533, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29136:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1534, + "indexExpression": { + "id": 1532, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29149:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29136:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1535, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29162:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29178:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "29162:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29136:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1539, + "nodeType": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 1540, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29285:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "29285:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29285:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1546, + "nodeType": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "expression": { + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "29370:26:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 1547, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29377:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29377:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1550, + "indexExpression": { + "id": 1549, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "29390:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29377:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1552, + "nodeType": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29418:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1490, + "id": 1554, + "nodeType": "Return", + "src": "29411:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1482, + "nodeType": "StructuredDocumentation", + "src": "27808:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1561, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "27987:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1483, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27987:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1486, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28004:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1485, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27986:32:1" + }, + "returnParameters": { + "id": 1490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28036:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1488, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "28036:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "28035:6:1" + }, + "scope": 1921, + "src": "27970:1512:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1578, + "nodeType": "Block", + "src": "29642:48:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 1571, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "29659:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29659:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1574, + "indexExpression": { + "id": 1573, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "29672:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29659:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29682:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "29659:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1570, + "id": 1577, + "nodeType": "Return", + "src": "29652:31:1" + } + ] + }, + "documentation": { + "id": 1562, + "nodeType": "StructuredDocumentation", + "src": "29488:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1579, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1564, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29582:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1563, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29582:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29599:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1565, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "29599:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "29581:32:1" + }, + "returnParameters": { + "id": 1570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29636:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "29636:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "29635:6:1" + }, + "scope": 1921, + "src": "29563:127:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1591, + "nodeType": "Block", + "src": "29836:42:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 1587, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1582, + "src": "29853:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1588, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29853:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "29853:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1586, + "id": 1590, + "nodeType": "Return", + "src": "29846:25:1" + } + ] + }, + "documentation": { + "id": 1580, + "nodeType": "StructuredDocumentation", + "src": "29696:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1582, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29788:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1581, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29788:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "src": "29787:17:1" + }, + "returnParameters": { + "id": 1586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1585, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29827:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29826:9:1" + }, + "scope": 1921, + "src": "29771:107:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1616, + "nodeType": "Block", + "src": "30286:125:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1603, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30304:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30304:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "30304:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1606, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30325:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30304:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30332:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + }, + "value": "EnumerableSet: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "id": 1602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "30296:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30296:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1610, + "nodeType": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 1611, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30386:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30386:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1614, + "indexExpression": { + "id": 1613, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30398:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30386:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1601, + "id": 1615, + "nodeType": "Return", + "src": "30379:25:1" + } + ] + }, + "documentation": { + "id": 1593, + "nodeType": "StructuredDocumentation", + "src": "29883:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1617, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1595, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30223:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1594, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30223:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30240:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30240:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30222:32:1" + }, + "returnParameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1600, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30277:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1599, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30276:9:1" + }, + "scope": 1921, + "src": "30210:201:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableSet.Bytes32Set", + "id": 1620, + "members": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "30464:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1618, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30464:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "30436:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1636, + "nodeType": "Block", + "src": "30727:47:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1631, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "30749:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "30749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1625, + "src": "30761:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1630, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "30744:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30744:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1629, + "id": 1635, + "nodeType": "Return", + "src": "30737:30:1" + } + ] + }, + "documentation": { + "id": 1621, + "nodeType": "StructuredDocumentation", + "src": "30487:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30664:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1622, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30664:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30688:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1624, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30688:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30663:39:1" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30721:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "30721:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "30720:6:1" + }, + "scope": 1921, + "src": "30651:123:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1653, + "nodeType": "Block", + "src": "31021:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1648, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "31046:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31046:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1650, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "31058:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1647, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "31038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31038:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1646, + "id": 1652, + "nodeType": "Return", + "src": "31031:33:1" + } + ] + }, + "documentation": { + "id": 1638, + "nodeType": "StructuredDocumentation", + "src": "30780:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1654, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30958:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1639, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30958:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30982:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1641, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30982:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30957:39:1" + }, + "returnParameters": { + "id": 1646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1645, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "31015:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31015:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31014:6:1" + }, + "scope": 1921, + "src": "30942:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1670, + "nodeType": "Block", + "src": "31238:52:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1665, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1657, + "src": "31265:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31265:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1667, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1659, + "src": "31277:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1664, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "31255:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31255:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1663, + "id": 1669, + "nodeType": "Return", + "src": "31248:35:1" + } + ] + }, + "documentation": { + "id": 1655, + "nodeType": "StructuredDocumentation", + "src": "31077:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1671, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1657, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31170:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1656, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31170:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31194:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1658, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31194:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31169:39:1" + }, + "returnParameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1662, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31232:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1661, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31232:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31231:6:1" + }, + "scope": 1921, + "src": "31152:138:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "31443:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1680, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1674, + "src": "31468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1681, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31468:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1679, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "31460:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31460:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1678, + "id": 1683, + "nodeType": "Return", + "src": "31453:26:1" + } + ] + }, + "documentation": { + "id": 1672, + "nodeType": "StructuredDocumentation", + "src": "31296:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1685, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1674, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31387:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1673, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + } + ], + "src": "31386:24:1" + }, + "returnParameters": { + "id": 1678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31434:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31434:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31433:9:1" + }, + "scope": 1921, + "src": "31371:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1701, + "nodeType": "Block", + "src": "31901:46:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1696, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1688, + "src": "31922:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1697, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31922:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1698, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "31934:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1695, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "31918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31918:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1694, + "id": 1700, + "nodeType": "Return", + "src": "31911:29:1" + } + ] + }, + "documentation": { + "id": 1686, + "nodeType": "StructuredDocumentation", + "src": "31491:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1688, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31830:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1687, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31830:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1690, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31854:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31854:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31829:39:1" + }, + "returnParameters": { + "id": 1694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31892:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1692, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31892:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31891:9:1" + }, + "scope": 1921, + "src": "31818:129:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.AddressSet", + "id": 1705, + "members": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1705, + "src": "32000:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1703, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "32000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "31972:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1730, + "nodeType": "Block", + "src": "32263:74:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1716, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1708, + "src": "32285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32285:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "32321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32313:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1722, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32313:7:1", + "typeDescriptions": {} + } + }, + "id": 1725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32313:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32305:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1720, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32305:7:1", + "typeDescriptions": {} + } + }, + "id": 1726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32305:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1718, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32297:7:1", + "typeDescriptions": {} + } + }, + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32297:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1715, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "32280:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32280:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1714, + "id": 1729, + "nodeType": "Return", + "src": "32273:57:1" + } + ] + }, + "documentation": { + "id": 1706, + "nodeType": "StructuredDocumentation", + "src": "32023:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1731, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1708, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32200:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1707, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32200:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32224:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32224:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32199:39:1" + }, + "returnParameters": { + "id": 1714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1713, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32257:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1712, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32257:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32256:6:1" + }, + "scope": 1921, + "src": "32187:150:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1756, + "nodeType": "Block", + "src": "32584:77:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1742, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "32609:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1743, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32609:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1750, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "32645:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32637:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1748, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32637:7:1", + "typeDescriptions": {} + } + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32637:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32629:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32629:7:1", + "typeDescriptions": {} + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32629:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32621:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1744, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32621:7:1", + "typeDescriptions": {} + } + }, + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32621:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1741, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "32601:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32601:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1740, + "id": 1755, + "nodeType": "Return", + "src": "32594:60:1" + } + ] + }, + "documentation": { + "id": 1732, + "nodeType": "StructuredDocumentation", + "src": "32343:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1757, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1734, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32521:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1733, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32521:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1736, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32545:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32545:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32520:39:1" + }, + "returnParameters": { + "id": 1740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1739, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32578:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1738, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32578:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32577:6:1" + }, + "scope": 1921, + "src": "32505:156:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1782, + "nodeType": "Block", + "src": "32828:79:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1768, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1760, + "src": "32855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1776, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1762, + "src": "32891:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1774, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32883:7:1", + "typeDescriptions": {} + } + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32883:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32875:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32875:7:1", + "typeDescriptions": {} + } + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32875:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1770, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32867:7:1", + "typeDescriptions": {} + } + }, + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32867:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1767, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "32845:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32845:55:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1766, + "id": 1781, + "nodeType": "Return", + "src": "32838:62:1" + } + ] + }, + "documentation": { + "id": 1758, + "nodeType": "StructuredDocumentation", + "src": "32667:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1783, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1760, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32760:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1759, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32760:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1762, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32784:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32784:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32759:39:1" + }, + "returnParameters": { + "id": 1766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1765, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32822:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1764, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32822:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32821:6:1" + }, + "scope": 1921, + "src": "32742:165:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1796, + "nodeType": "Block", + "src": "33060:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1792, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1786, + "src": "33085:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33085:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1791, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "33077:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33077:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1790, + "id": 1795, + "nodeType": "Return", + "src": "33070:26:1" + } + ] + }, + "documentation": { + "id": 1784, + "nodeType": "StructuredDocumentation", + "src": "32913:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1797, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1786, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33004:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1785, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33004:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + } + ], + "src": "33003:24:1" + }, + "returnParameters": { + "id": 1790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1789, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33050:9:1" + }, + "scope": 1921, + "src": "32988:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1822, + "nodeType": "Block", + "src": "33518:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1814, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "33563:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33563:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1816, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "33575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1813, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "33559:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33559:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33551:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33551:7:1", + "typeDescriptions": {} + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33551:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33543:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1809, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "33543:7:1", + "typeDescriptions": {} + } + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33543:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33535:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33535:7:1", + "typeDescriptions": {} + } + }, + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33535:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 1806, + "id": 1821, + "nodeType": "Return", + "src": "33528:56:1" + } + ] + }, + "documentation": { + "id": 1798, + "nodeType": "StructuredDocumentation", + "src": "33108:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1823, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1800, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33447:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1799, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33447:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1802, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33471:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33471:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33446:39:1" + }, + "returnParameters": { + "id": 1806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33509:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33509:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "33508:9:1" + }, + "scope": 1921, + "src": "33435:156:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.UintSet", + "id": 1826, + "members": [ + { + "constant": false, + "id": 1825, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1826, + "src": "33639:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1824, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "33639:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "UintSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "33614:42:1", + "visibility": "public" + }, + { + "body": { + "id": 1845, + "nodeType": "Block", + "src": "33899:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1837, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1829, + "src": "33921:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "33921:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1841, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "33941:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33933:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1839, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "33933:7:1", + "typeDescriptions": {} + } + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33933:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1836, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "33916:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33916:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1835, + "id": 1844, + "nodeType": "Return", + "src": "33909:39:1" + } + ] + }, + "documentation": { + "id": 1827, + "nodeType": "StructuredDocumentation", + "src": "33662:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1846, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1829, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33839:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1828, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "33839:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1831, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33860:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33860:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33838:36:1" + }, + "returnParameters": { + "id": 1835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1834, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33893:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1833, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "33893:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "33892:6:1" + }, + "scope": 1921, + "src": "33826:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1865, + "nodeType": "Block", + "src": "34199:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1857, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1849, + "src": "34224:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34224:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1861, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "34244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34236:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1859, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34236:7:1", + "typeDescriptions": {} + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34236:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1856, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "34216:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34216:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1855, + "id": 1864, + "nodeType": "Return", + "src": "34209:42:1" + } + ] + }, + "documentation": { + "id": 1847, + "nodeType": "StructuredDocumentation", + "src": "33961:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1849, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34139:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1848, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34139:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1851, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34160:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34138:36:1" + }, + "returnParameters": { + "id": 1855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1854, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34193:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1853, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34193:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34192:6:1" + }, + "scope": 1921, + "src": "34123:135:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1885, + "nodeType": "Block", + "src": "34422:61:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1877, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1869, + "src": "34449:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34449:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1881, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "34469:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1879, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34461:7:1", + "typeDescriptions": {} + } + }, + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34461:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1876, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "34439:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34439:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1875, + "id": 1884, + "nodeType": "Return", + "src": "34432:44:1" + } + ] + }, + "documentation": { + "id": 1867, + "nodeType": "StructuredDocumentation", + "src": "34264:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1886, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1869, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34357:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1868, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34378:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34378:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34356:36:1" + }, + "returnParameters": { + "id": 1875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1874, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34416:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1873, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34416:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34415:6:1" + }, + "scope": 1921, + "src": "34339:144:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1899, + "nodeType": "Block", + "src": "34633:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1895, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1889, + "src": "34658:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34658:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1894, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "34650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34650:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1893, + "id": 1898, + "nodeType": "Return", + "src": "34643:26:1" + } + ] + }, + "documentation": { + "id": 1887, + "nodeType": "StructuredDocumentation", + "src": "34489:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1900, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1889, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34580:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1888, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + } + ], + "src": "34579:21:1" + }, + "returnParameters": { + "id": 1893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34624:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34623:9:1" + }, + "scope": 1921, + "src": "34564:112:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1919, + "nodeType": "Block", + "src": "35088:55:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1913, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "35117:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "35117:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1915, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1905, + "src": "35129:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1912, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "35113:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35113:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "35105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35105:7:1", + "typeDescriptions": {} + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35105:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1909, + "id": 1918, + "nodeType": "Return", + "src": "35098:38:1" + } + ] + }, + "documentation": { + "id": 1901, + "nodeType": "StructuredDocumentation", + "src": "34681:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1920, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35020:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1902, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "35020:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1905, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35041:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35041:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35019:36:1" + }, + "returnParameters": { + "id": 1909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1908, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35079:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1907, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35079:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35078:9:1" + }, + "scope": 1921, + "src": "35008:135:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "26511:8634:1" + }, + { + "id": 1922, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "35204:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1923, + "nodeType": "StructuredDocumentation", + "src": "35237:705:1", + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "fullyImplemented": true, + "id": 2480, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableMap.MapEntry", + "id": 1928, + "members": [ + { + "constant": false, + "id": 1925, + "mutability": "mutable", + "name": "_key", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36455:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1924, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1927, + "mutability": "mutable", + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36477:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1926, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36477:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "MapEntry", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36429:69:1", + "visibility": "public" + }, + { + "canonicalName": "EnumerableMap.Map", + "id": 1936, + "members": [ + { + "constant": false, + "id": 1931, + "mutability": "mutable", + "name": "_entries", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36567:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + }, + "typeName": { + "baseType": { + "id": 1929, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "36567:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "id": 1930, + "nodeType": "ArrayTypeName", + "src": "36567:10:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1935, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36736:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1934, + "keyType": { + "id": 1932, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "36736:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "36756:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Map", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36504:276:1", + "visibility": "public" + }, + { + "body": { + "id": 1997, + "nodeType": "Block", + "src": "37089:596:1", + "statements": [ + { + "assignments": [ + 1949 + ], + "declarations": [ + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 1997, + "src": "37197:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "37197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1954, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1950, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1953, + "indexExpression": { + "id": 1952, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37229:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37216:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1955, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37248:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37260:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "37248:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1995, + "nodeType": "Block", + "src": "37587:92:1", + "statements": [ + { + "expression": { + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 1982, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37601:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1987, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37601:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1988, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1984, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37614:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37625:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "37614:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37601:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 1989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "37601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1990, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37637:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "37601:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1992, + "nodeType": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37663:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1947, + "id": 1994, + "nodeType": "Return", + "src": "37656:12:1" + } + ] + }, + "id": 1996, + "nodeType": "IfStatement", + "src": "37244:435:1", + "trueBody": { + "id": 1981, + "nodeType": "Block", + "src": "37263:318:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1964, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37349:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1965, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37362:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1963, + "name": "MapEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1928, + "src": "37332:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_MapEntry_$1928_storage_ptr_$", + "typeString": "type(struct EnumerableMap.MapEntry storage pointer)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "nodeType": "FunctionCall", + "src": "37332:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "expression": { + "expression": { + "id": 1958, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37314:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37314:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "37314:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$1928_storage_$returns$__$", + "typeString": "function (struct EnumerableMap.MapEntry storage ref)" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37314:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1968, + "nodeType": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "expression": { + "id": 1977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1969, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37506:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37506:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1973, + "indexExpression": { + "id": 1971, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "37506:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1974, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37526:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37526:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "37526:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37506:39:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1978, + "nodeType": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37566:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1947, + "id": 1980, + "nodeType": "Return", + "src": "37559:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1937, + "nodeType": "StructuredDocumentation", + "src": "36786:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1998, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37021:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 1938, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37021:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37038:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1940, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1943, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1942, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37020:45:1" + }, + "returnParameters": { + "id": 1947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1946, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37083:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1945, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37083:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37082:6:1" + }, + "scope": 2480, + "src": "37007:678:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2078, + "nodeType": "Block", + "src": "37923:1447:1", + "statements": [ + { + "assignments": [ + 2009 + ], + "declarations": [ + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2078, + "src": "38031:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2014, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2010, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38050:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2011, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "38050:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2013, + "indexExpression": { + "id": 2012, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "38063:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38050:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2015, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38082:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38094:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "38082:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2076, + "nodeType": "Block", + "src": "39327:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39348:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2007, + "id": 2075, + "nodeType": "Return", + "src": "39341:12:1" + } + ] + }, + "id": 2077, + "nodeType": "IfStatement", + "src": "38078:1286:1", + "trueBody": { + "id": 2073, + "nodeType": "Block", + "src": "38097:1224:1", + "statements": [ + { + "assignments": [ + 2019 + ], + "declarations": [ + { + "constant": false, + "id": 2019, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38438:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2023, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2020, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38462:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38473:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38462:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "assignments": [ + 2025 + ], + "declarations": [ + { + "constant": false, + "id": 2025, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38488:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38488:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2031, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2026, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38508:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38508:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "38508:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38530:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38508:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "assignments": [ + 2033 + ], + "declarations": [ + { + "constant": false, + "id": 2033, + "mutability": "mutable", + "name": "lastEntry", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38771:26:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2032, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "38771:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2038, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2034, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38800:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38800:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2037, + "indexExpression": { + "id": 2036, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2025, + "src": "38813:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38800:23:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "expression": { + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2039, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38915:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38915:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2043, + "indexExpression": { + "id": 2041, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "38928:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "38915:27:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2044, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "38945:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "src": "38915:39:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2046, + "nodeType": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2047, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2051, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39020:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2052, + "indexExpression": { + "expression": { + "id": 2049, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "39033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "39033:14:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39020:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2053, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "39051:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39067:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "39051:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39020:48:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 2058, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39174:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2061, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39174:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "39174:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "39174:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2064, + "nodeType": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "expression": { + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "39260:24:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 2065, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39267:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2066, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39267:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2068, + "indexExpression": { + "id": 2067, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "39280:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39267:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2070, + "nodeType": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39306:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2007, + "id": 2072, + "nodeType": "Return", + "src": "39299:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1999, + "nodeType": "StructuredDocumentation", + "src": "37691:157:1", + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2079, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2001, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37870:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2000, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37870:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37887:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2002, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37887:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37869:30:1" + }, + "returnParameters": { + "id": 2007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2006, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37917:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2005, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37917:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37916:6:1" + }, + "scope": 2480, + "src": "37853:1517:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2096, + "nodeType": "Block", + "src": "39526:46:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 2089, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2082, + "src": "39543:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2090, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39543:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2092, + "indexExpression": { + "id": 2091, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2084, + "src": "39556:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "39543:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39564:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "39543:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2088, + "id": 2095, + "nodeType": "Return", + "src": "39536:29:1" + } + ] + }, + "documentation": { + "id": 2080, + "nodeType": "StructuredDocumentation", + "src": "39376:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2082, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39468:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2081, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2084, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39485:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2083, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "39485:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "39467:30:1" + }, + "returnParameters": { + "id": 2088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2087, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2086, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "39520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "39519:6:1" + }, + "scope": 2480, + "src": "39449:123:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2109, + "nodeType": "Block", + "src": "39727:43:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 2105, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "39744:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39744:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "39744:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2104, + "id": 2108, + "nodeType": "Return", + "src": "39737:26:1" + } + ] + }, + "documentation": { + "id": 2098, + "nodeType": "StructuredDocumentation", + "src": "39578:79:1", + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2100, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39679:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2099, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39679:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "src": "39678:17:1" + }, + "returnParameters": { + "id": 2104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2103, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39718:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "39718:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "39717:9:1" + }, + "scope": 2480, + "src": "39662:108:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2144, + "nodeType": "Block", + "src": "40198:189:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2123, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "40216:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2126, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40216:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40245:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + }, + "value": "EnumerableMap: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "id": 2122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "40208:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "40208:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2130, + "nodeType": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "assignments": [ + 2132 + ], + "declarations": [ + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "entry", + "nodeType": "VariableDeclaration", + "scope": 2144, + "src": "40293:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2131, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "40293:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2137, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2133, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40318:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40318:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2136, + "indexExpression": { + "id": 2135, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40331:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40318:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "expression": { + "components": [ + { + "expression": { + "id": 2138, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40355:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2139, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "40355:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 2140, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40367:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40367:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40354:26:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "functionReturnParameters": 2121, + "id": 2143, + "nodeType": "Return", + "src": "40347:33:1" + } + ] + }, + "documentation": { + "id": 2111, + "nodeType": "StructuredDocumentation", + "src": "39775:333:1", + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2145, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2113, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40126:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2112, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40126:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2115, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40143:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40143:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "40125:32:1" + }, + "returnParameters": { + "id": 2121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40180:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40180:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40189:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2119, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40189:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40179:18:1" + }, + "scope": 2480, + "src": "40113:274:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2182, + "nodeType": "Block", + "src": "40613:220:1", + "statements": [ + { + "assignments": [ + 2158 + ], + "declarations": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2182, + "src": "40623:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40623:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2163, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2159, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40642:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "40642:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2162, + "indexExpression": { + "id": 2161, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2150, + "src": "40655:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40642:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2164, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40673:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40685:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "40673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2171, + "nodeType": "IfStatement", + "src": "40669:36:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40696:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40703:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2169, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40695:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2156, + "id": 2170, + "nodeType": "Return", + "src": "40688:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40759:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 2173, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40765:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2174, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40765:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2178, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2175, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40778:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40789:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "40778:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40765:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40765:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2180, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40758:41:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "functionReturnParameters": 2156, + "id": 2181, + "nodeType": "Return", + "src": "40751:48:1" + } + ] + }, + "documentation": { + "id": 2146, + "nodeType": "StructuredDocumentation", + "src": "40393:131:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2183, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2151, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40546:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2147, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40546:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2150, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40563:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2149, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40563:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40545:30:1" + }, + "returnParameters": { + "id": 2156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2153, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40598:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2152, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "40598:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2155, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40604:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2154, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40604:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40597:15:1" + }, + "scope": 2480, + "src": "40529:304:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2215, + "nodeType": "Block", + "src": "41060:232:1", + "statements": [ + { + "assignments": [ + 2194 + ], + "declarations": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2215, + "src": "41070:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41070:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2199, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2195, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41089:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2196, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41089:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2198, + "indexExpression": { + "id": 2197, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2188, + "src": "41102:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41089:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2201, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41124:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41136:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41124:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "id": 2204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41139:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + }, + "value": "EnumerableMap: nonexistent key" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "id": 2200, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41116:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2206, + "nodeType": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2207, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41225:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2208, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41225:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2212, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2209, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41238:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41249:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41238:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41225:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2213, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41225:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2192, + "id": 2214, + "nodeType": "Return", + "src": "41218:40:1" + } + ] + }, + "documentation": { + "id": 2184, + "nodeType": "StructuredDocumentation", + "src": "40839:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2186, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "40999:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2185, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40999:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2188, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41016:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2187, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40998:30:1" + }, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2190, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41050:9:1" + }, + "scope": 2480, + "src": "40985:307:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2250, + "nodeType": "Block", + "src": "41677:212:1", + "statements": [ + { + "assignments": [ + 2229 + ], + "declarations": [ + { + "constant": false, + "id": 2229, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2250, + "src": "41687:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41687:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2234, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2230, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41706:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2231, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41706:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2233, + "indexExpression": { + "id": 2232, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "41719:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41706:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2236, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41741:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41753:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41741:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2239, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2223, + "src": "41756:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2235, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41733:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41733:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2241, + "nodeType": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2242, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41822:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41822:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2247, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2244, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41835:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41846:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41835:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41822:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41822:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2227, + "id": 2249, + "nodeType": "Return", + "src": "41815:40:1" + } + ] + }, + "documentation": { + "id": 2217, + "nodeType": "StructuredDocumentation", + "src": "41298:271:1", + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2251, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2219, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41588:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2218, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41588:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2221, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41605:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2220, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2223, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41618:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2222, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "41618:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "41587:58:1" + }, + "returnParameters": { + "id": 2227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2226, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41668:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2225, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41668:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41667:9:1" + }, + "scope": 2480, + "src": "41574:315:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableMap.UintToAddressMap", + "id": 2254, + "members": [ + { + "constant": false, + "id": 2253, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 2254, + "src": "41954:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2252, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41954:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "name": "UintToAddressMap", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "41920:51:1", + "visibility": "public" + }, + { + "body": { + "id": 2285, + "nodeType": "Block", + "src": "42293:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2267, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "42315:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42315:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2271, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2259, + "src": "42335:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42327:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2269, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42327:7:1", + "typeDescriptions": {} + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42327:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2279, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2261, + "src": "42365:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2277, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "42357:7:1", + "typeDescriptions": {} + } + }, + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42357:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42349:7:1", + "typeDescriptions": {} + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42349:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42341:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42341:7:1", + "typeDescriptions": {} + } + }, + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42341:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2266, + "name": "_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1998, + "src": "42310:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42310:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2265, + "id": 2284, + "nodeType": "Return", + "src": "42303:71:1" + } + ] + }, + "documentation": { + "id": 2255, + "nodeType": "StructuredDocumentation", + "src": "41977:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2286, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2257, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42211:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2256, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42211:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2259, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42241:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2258, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42241:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2261, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42254:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "42254:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "42210:58:1" + }, + "returnParameters": { + "id": 2265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2264, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42287:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2263, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42287:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42286:6:1" + }, + "scope": 2480, + "src": "42198:183:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2305, + "nodeType": "Block", + "src": "42623:57:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2297, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2289, + "src": "42648:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2298, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42648:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2301, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2291, + "src": "42668:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42660:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2299, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42660:7:1", + "typeDescriptions": {} + } + }, + "id": 2302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42660:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2296, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2079, + "src": "42640:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)" + } + }, + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42640:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2295, + "id": 2304, + "nodeType": "Return", + "src": "42633:40:1" + } + ] + }, + "documentation": { + "id": 2287, + "nodeType": "StructuredDocumentation", + "src": "42387:148:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2289, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42556:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2288, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42556:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2291, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42586:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42586:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42555:43:1" + }, + "returnParameters": { + "id": 2295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2294, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42617:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2293, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42617:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42616:6:1" + }, + "scope": 2480, + "src": "42540:140:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2325, + "nodeType": "Block", + "src": "42849:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2317, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2309, + "src": "42876:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42876:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2321, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "42896:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42888:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2319, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42888:7:1", + "typeDescriptions": {} + } + }, + "id": 2322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42888:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2316, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2097, + "src": "42866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42866:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2315, + "id": 2324, + "nodeType": "Return", + "src": "42859:42:1" + } + ] + }, + "documentation": { + "id": 2307, + "nodeType": "StructuredDocumentation", + "src": "42686:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2326, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2309, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42777:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2308, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42777:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2311, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42807:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42807:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42776:43:1" + }, + "returnParameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2314, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42843:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42843:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42842:6:1" + }, + "scope": 2480, + "src": "42759:149:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2339, + "nodeType": "Block", + "src": "43069:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2335, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2329, + "src": "43094:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43094:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "id": 2334, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2110, + "src": "43086:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)" + } + }, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43086:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2333, + "id": 2338, + "nodeType": "Return", + "src": "43079:26:1" + } + ] + }, + "documentation": { + "id": 2327, + "nodeType": "StructuredDocumentation", + "src": "42914:72:1", + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2340, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2329, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43007:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2328, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43007:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + } + ], + "src": "43006:30:1" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43060:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43059:9:1" + }, + "scope": 2480, + "src": "42991:121:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2378, + "nodeType": "Block", + "src": "43538:135:1", + "statements": [ + { + "assignments": [ + 2353, + 2355 + ], + "declarations": [ + { + "constant": false, + "id": 2353, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43549:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2352, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43549:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2355, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43562:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2354, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43562:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2361, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2357, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "43583:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2358, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "id": 2359, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "43595:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2356, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "43579:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)" + } + }, + "id": 2360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43579:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "expression": { + "components": [ + { + "arguments": [ + { + "id": 2364, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "43627:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43619:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43619:7:1", + "typeDescriptions": {} + } + }, + "id": 2365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43619:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2372, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2355, + "src": "43657:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43649:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43649:7:1", + "typeDescriptions": {} + } + }, + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43649:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43641:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2368, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "43641:7:1", + "typeDescriptions": {} + } + }, + "id": 2374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43641:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43633:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43633:7:1", + "typeDescriptions": {} + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43633:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2376, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43618:48:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$", + "typeString": "tuple(uint256,address payable)" + } + }, + "functionReturnParameters": 2351, + "id": 2377, + "nodeType": "Return", + "src": "43611:55:1" + } + ] + }, + "documentation": { + "id": 2341, + "nodeType": "StructuredDocumentation", + "src": "43117:318:1", + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2379, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43452:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2342, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43452:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2345, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43482:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43482:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43451:45:1" + }, + "returnParameters": { + "id": 2351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2348, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43520:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43520:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2350, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43529:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43529:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43519:18:1" + }, + "scope": 2480, + "src": "43440:233:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2417, + "nodeType": "Block", + "src": "43950:142:1", + "statements": [ + { + "assignments": [ + 2392, + 2394 + ], + "declarations": [ + { + "constant": false, + "id": 2392, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43961:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43961:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43975:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2393, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2403, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2396, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "44000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44000:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2400, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2384, + "src": "44020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44012:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2398, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44012:7:1", + "typeDescriptions": {} + } + }, + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44012:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2395, + "name": "_tryGet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2183, + "src": "43992:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)" + } + }, + "id": 2402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43992:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "expression": { + "components": [ + { + "id": 2404, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2392, + "src": "44043:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2411, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "44076:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44068:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44068:7:1", + "typeDescriptions": {} + } + }, + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44068:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2407, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44060:7:1", + "typeDescriptions": {} + } + }, + "id": 2413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44060:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44052:7:1", + "typeDescriptions": {} + } + }, + "id": 2414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44052:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2415, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44042:43:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_payable_$", + "typeString": "tuple(bool,address payable)" + } + }, + "functionReturnParameters": 2390, + "id": 2416, + "nodeType": "Return", + "src": "44035:50:1" + } + ] + }, + "documentation": { + "id": 2380, + "nodeType": "StructuredDocumentation", + "src": "43679:169:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2418, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2382, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43869:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2381, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43869:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2384, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43899:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43868:43:1" + }, + "returnParameters": { + "id": 2390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2387, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43935:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2386, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2389, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43941:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43941:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43934:15:1" + }, + "scope": 2480, + "src": "43853:239:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2446, + "nodeType": "Block", + "src": "44332:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2435, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "44378:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44378:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2439, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2423, + "src": "44398:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44390:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2437, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44390:7:1", + "typeDescriptions": {} + } + }, + "id": 2440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44390:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2434, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "src": "44373:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)" + } + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44373:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44365:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44365:7:1", + "typeDescriptions": {} + } + }, + "id": 2442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44365:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2430, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44357:7:1", + "typeDescriptions": {} + } + }, + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44357:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44349:7:1", + "typeDescriptions": {} + } + }, + "id": 2444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44349:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2427, + "id": 2445, + "nodeType": "Return", + "src": "44342:64:1" + } + ] + }, + "documentation": { + "id": 2419, + "nodeType": "StructuredDocumentation", + "src": "44098:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2447, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2421, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44257:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2420, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44257:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2423, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44287:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44287:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "44256:43:1" + }, + "returnParameters": { + "id": 2427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2426, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44323:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44323:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44322:9:1" + }, + "scope": 2480, + "src": "44244:169:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2478, + "nodeType": "Block", + "src": "44809:95:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2466, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2450, + "src": "44855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2467, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2470, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2452, + "src": "44875:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2468, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44867:7:1", + "typeDescriptions": {} + } + }, + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44867:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 2472, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "44881:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2465, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "src": "44850:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)" + } + }, + "id": 2473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44850:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44842:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44842:7:1", + "typeDescriptions": {} + } + }, + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44842:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44834:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2461, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44834:7:1", + "typeDescriptions": {} + } + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44834:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44826:7:1", + "typeDescriptions": {} + } + }, + "id": 2476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44826:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2458, + "id": 2477, + "nodeType": "Return", + "src": "44819:78:1" + } + ] + }, + "documentation": { + "id": 2448, + "nodeType": "StructuredDocumentation", + "src": "44419:269:1", + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2450, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44706:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2449, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44706:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2452, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44736:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2454, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44749:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2453, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "44749:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "44705:71:1" + }, + "returnParameters": { + "id": 2458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2457, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44799:9:1" + }, + "scope": 2480, + "src": "44693:211:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "35943:8963:1" + }, + { + "id": 2481, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "44959:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2482, + "nodeType": "StructuredDocumentation", + "src": "44992:34:1", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2566, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2564, + "nodeType": "Block", + "src": "45207:654:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2490, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45409:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45418:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45409:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2496, + "nodeType": "IfStatement", + "src": "45405:51:1", + "trueBody": { + "id": 2495, + "nodeType": "Block", + "src": "45421:35:1", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45442:3:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "functionReturnParameters": 2489, + "id": 2494, + "nodeType": "Return", + "src": "45435:10:1" + } + ] + } + }, + { + "assignments": [ + 2498 + ], + "declarations": [ + { + "constant": false, + "id": 2498, + "mutability": "mutable", + "name": "temp", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45465:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2500, + "initialValue": { + "id": 2499, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45480:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "assignments": [ + 2502 + ], + "declarations": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "digits", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45495:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45495:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2503, + "nodeType": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "body": { + "id": 2514, + "nodeType": "Block", + "src": "45537:57:1", + "statements": [ + { + "expression": { + "id": 2508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "45551:8:1", + "subExpression": { + "id": 2507, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45551:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2509, + "nodeType": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "expression": { + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2510, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45581:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45573:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2513, + "nodeType": "ExpressionStatement", + "src": "45573:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2504, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45526:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45534:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45526:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2515, + "nodeType": "WhileStatement", + "src": "45519:75:1" + }, + { + "assignments": [ + 2517 + ], + "declarations": [ + { + "constant": false, + "id": 2517, + "mutability": "mutable", + "name": "buffer", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45603:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2516, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2522, + "initialValue": { + "arguments": [ + { + "id": 2520, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45635:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "45625:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2518, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45629:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45625:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "assignments": [ + 2524 + ], + "declarations": [ + { + "constant": false, + "id": 2524, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45652:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45652:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2528, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2525, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45668:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45677:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "45668:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "expression": { + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2529, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45688:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2530, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45695:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45688:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2532, + "nodeType": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "body": { + "id": 2557, + "nodeType": "Block", + "src": "45728:96:1", + "statements": [ + { + "expression": { + "id": 2551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2536, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45742:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2539, + "indexExpression": { + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "45749:7:1", + "subExpression": { + "id": 2537, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2524, + "src": "45749:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "45742:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3438", + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45773:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2545, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45778:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3130", + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45785:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45778:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45773:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45767:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2542, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "45767:5:1", + "typeDescriptions": {} + } + }, + "id": 2549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45767:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 2540, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "45760:6:1", + "typeDescriptions": {} + } + }, + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45760:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "45742:47:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2552, + "nodeType": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "expression": { + "id": 2555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2553, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45803:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45811:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45803:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2556, + "nodeType": "ExpressionStatement", + "src": "45803:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2533, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45717:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45725:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45717:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2558, + "nodeType": "WhileStatement", + "src": "45710:114:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2561, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45847:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45840:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2559, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45840:6:1", + "typeDescriptions": {} + } + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45840:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2489, + "id": 2563, + "nodeType": "Return", + "src": "45833:21:1" + } + ] + }, + "documentation": { + "id": 2483, + "nodeType": "StructuredDocumentation", + "src": "45049:82:1", + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2485, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45154:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45154:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "45153:15:1" + }, + "returnParameters": { + "id": 2489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2488, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45192:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2487, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45192:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "45191:15:1" + }, + "scope": 2566, + "src": "45136:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "45027:836:1" + }, + { + "id": 2567, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "45922:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2569, + "name": "Context", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 530, + "src": "46099:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 2570, + "nodeType": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "baseName": { + "id": 2571, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 781, + "src": "46108:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$781", + "typeString": "contract ERC165" + } + }, + "id": 2572, + "nodeType": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "baseName": { + "id": 2573, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "46116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 2574, + "nodeType": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "baseName": { + "id": 2575, + "name": "IERC721Metadata", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 680, + "src": "46125:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Metadata_$680", + "typeString": "contract IERC721Metadata" + } + }, + "id": 2576, + "nodeType": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "baseName": { + "id": 2577, + "name": "IERC721Enumerable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 709, + "src": "46142:17:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Enumerable_$709", + "typeString": "contract IERC721Enumerable" + } + }, + "id": 2578, + "nodeType": "InheritanceSpecifier", + "src": "46142:17:1" + } + ], + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "documentation": { + "id": 2568, + "nodeType": "StructuredDocumentation", + "src": "45955:124:1", + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": true, + "id": 3498, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2581, + "libraryName": { + "id": 2579, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1135, + "src": "46172:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$1135", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "46166:27:1", + "typeName": { + "id": 2580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46185:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 2584, + "libraryName": { + "id": 2582, + "name": "Address", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1430, + "src": "46204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + }, + "nodeType": "UsingForDirective", + "src": "46198:26:1", + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46216:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 2587, + "libraryName": { + "id": 2585, + "name": "EnumerableSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1921, + "src": "46235:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableSet_$1921", + "typeString": "library EnumerableSet" + } + }, + "nodeType": "UsingForDirective", + "src": "46229:46:1", + "typeName": { + "id": 2586, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46253:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + { + "id": 2590, + "libraryName": { + "id": 2588, + "name": "EnumerableMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2480, + "src": "46286:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableMap_$2480", + "typeString": "library EnumerableMap" + } + }, + "nodeType": "UsingForDirective", + "src": "46280:55:1", + "typeName": { + "id": 2589, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46304:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + } + }, + { + "id": 2593, + "libraryName": { + "id": 2591, + "name": "Strings", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2566, + "src": "46346:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Strings_$2566", + "typeString": "library Strings" + } + }, + "nodeType": "UsingForDirective", + "src": "46340:26:1", + "typeName": { + "id": 2592, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46358:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 2596, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46544:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2594, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "46544:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783135306237613032", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46587:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_353073666_by_1", + "typeString": "int_const 353073666" + }, + "value": "0x150b7a02" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2600, + "mutability": "mutable", + "name": "_holderTokens", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46681:64:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "typeName": { + "id": 2599, + "keyType": { + "id": 2597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "46681:42:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "valueType": { + "id": 2598, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46701:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2602, + "mutability": "mutable", + "name": "_tokenOwners", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46809:51:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2601, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46809:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2606, + "mutability": "mutable", + "name": "_tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46916:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 2605, + "keyType": { + "id": 2603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46925:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "46916:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 2604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46936:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2612, + "mutability": "mutable", + "name": "_operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47023:73:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 2611, + "keyType": { + "id": 2607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47023:46:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 2610, + "keyType": { + "id": 2608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47043:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2609, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "47063:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2614, + "mutability": "mutable", + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47121:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2613, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47121:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2616, + "mutability": "mutable", + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47168:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47168:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2620, + "mutability": "mutable", + "name": "_tokenURIs", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47236:46:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 2619, + "keyType": { + "id": 2617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "47245:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "47236:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 2618, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47256:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2622, + "mutability": "mutable", + "name": "_baseURI", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47305:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2621, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47305:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2625, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48204:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2623, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48204:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783830616335386364", + "id": 2624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48251:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2628, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48527:66:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2626, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48527:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783562356531333966", + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1532892063_by_1", + "typeString": "int_const 1532892063" + }, + "value": "0x5b5e139f" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2631, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48898:68:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2629, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783738306539643633", + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48956:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2014223715_by_1", + "typeString": "int_const 2014223715" + }, + "value": "0x780e9d63" + }, + "visibility": "private" + }, + { + "body": { + "id": 2659, + "nodeType": "Block", + "src": "49143:305:1", + "statements": [ + { + "expression": { + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2639, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "49153:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2640, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "49161:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49153:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2642, + "nodeType": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "expression": { + "id": 2645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2643, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "49176:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2644, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2636, + "src": "49186:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49176:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2646, + "nodeType": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2648, + "name": "_INTERFACE_ID_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "49300:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2647, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49281:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49281:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2650, + "nodeType": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2652, + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "49350:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2651, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49331:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49331:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2654, + "nodeType": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2656, + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2631, + "src": "49409:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2655, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49390:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49390:51:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2658, + "nodeType": "ExpressionStatement", + "src": "49390:51:1" + } + ] + }, + "documentation": { + "id": 2632, + "nodeType": "StructuredDocumentation", + "src": "48973:108:1", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2660, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2634, + "mutability": "mutable", + "name": "name_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49099:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2633, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49099:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2636, + "mutability": "mutable", + "name": "symbol_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49120:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2635, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49120:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "49098:44:1" + }, + "returnParameters": { + "id": 2638, + "nodeType": "ParameterList", + "parameters": [], + "src": "49143:0:1" + }, + "scope": 3498, + "src": "49086:362:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 580 + ], + "body": { + "id": 2685, + "nodeType": "Block", + "src": "49588:137:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2670, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49606:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49623:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "49615:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49615:7:1", + "typeDescriptions": {} + } + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49615:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "49606:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49627:44:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + }, + "value": "ERC721: balance query for the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "id": 2669, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "49598:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49598:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2678, + "nodeType": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 2679, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "49689:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2681, + "indexExpression": { + "id": 2680, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49703:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "49689:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2682, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "49689:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + } + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49689:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2668, + "id": 2684, + "nodeType": "Return", + "src": "49682:36:1" + } + ] + }, + "documentation": { + "id": 2661, + "nodeType": "StructuredDocumentation", + "src": "49454:48:1", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 2686, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2665, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49561:8:1" + }, + "parameters": { + "id": 2664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2663, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49526:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49526:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49525:15:1" + }, + "returnParameters": { + "id": 2668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2667, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49579:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49579:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49578:9:1" + }, + "scope": 3498, + "src": "49507:218:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 588 + ], + "body": { + "id": 2701, + "nodeType": "Block", + "src": "49863:94:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2697, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "49897:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49906:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + }, + "value": "ERC721: owner query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "expression": { + "id": 2695, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "49880:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2696, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 2479, + "src": "49880:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + } + }, + "id": 2699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49880:70:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2694, + "id": 2700, + "nodeType": "Return", + "src": "49873:77:1" + } + ] + }, + "documentation": { + "id": 2687, + "nodeType": "StructuredDocumentation", + "src": "49731:46:1", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 2702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2691, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49836:8:1" + }, + "parameters": { + "id": 2690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2689, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49799:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49799:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49798:17:1" + }, + "returnParameters": { + "id": 2694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49854:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49854:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49853:9:1" + }, + "scope": 3498, + "src": "49782:175:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 665 + ], + "body": { + "id": 2711, + "nodeType": "Block", + "src": "50088:29:1", + "statements": [ + { + "expression": { + "id": 2709, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "50105:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2708, + "id": 2710, + "nodeType": "Return", + "src": "50098:12:1" + } + ] + }, + "documentation": { + "id": 2703, + "nodeType": "StructuredDocumentation", + "src": "49963:51:1", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 2712, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2705, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50055:8:1" + }, + "parameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [], + "src": "50032:2:1" + }, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2707, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2712, + "src": "50073:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2706, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50073:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50072:15:1" + }, + "scope": 3498, + "src": "50019:98:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 671 + ], + "body": { + "id": 2721, + "nodeType": "Block", + "src": "50252:31:1", + "statements": [ + { + "expression": { + "id": 2719, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "50269:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2718, + "id": 2720, + "nodeType": "Return", + "src": "50262:14:1" + } + ] + }, + "documentation": { + "id": 2713, + "nodeType": "StructuredDocumentation", + "src": "50123:53:1", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 2722, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2715, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50219:8:1" + }, + "parameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [], + "src": "50196:2:1" + }, + "returnParameters": { + "id": 2718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2717, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2722, + "src": "50237:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2716, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50237:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50236:15:1" + }, + "scope": 3498, + "src": "50181:102:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 679 + ], + "body": { + "id": 2789, + "nodeType": "Block", + "src": "50437:688:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2733, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50463:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2732, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "50455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50455:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50473:49:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + }, + "value": "ERC721Metadata: URI query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "id": 2731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "50447:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50447:76:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "assignments": [ + 2739 + ], + "declarations": [ + { + "constant": false, + "id": 2739, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50534:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50534:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2743, + "initialValue": { + "baseExpression": { + "id": 2740, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "50560:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 2742, + "indexExpression": { + "id": 2741, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50571:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "50560:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "assignments": [ + 2745 + ], + "declarations": [ + { + "constant": false, + "id": 2745, + "mutability": "mutable", + "name": "base", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50589:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50589:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2748, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2746, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2799, + "src": "50610:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 2747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50610:9:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2751, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50698:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50692:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50692:5:1", + "typeDescriptions": {} + } + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50692:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50692:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50714:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50692:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2759, + "nodeType": "IfStatement", + "src": "50688:70:1", + "trueBody": { + "id": 2758, + "nodeType": "Block", + "src": "50717:41:1", + "statements": [ + { + "expression": { + "id": 2756, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50738:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2757, + "nodeType": "Return", + "src": "50731:16:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2762, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50860:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2760, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50860:5:1", + "typeDescriptions": {} + } + }, + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50860:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50860:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50886:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50860:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2777, + "nodeType": "IfStatement", + "src": "50856:106:1", + "trueBody": { + "id": 2776, + "nodeType": "Block", + "src": "50889:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2771, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50934:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 2772, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50940:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2769, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "50917:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "50917:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50917:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50910:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2767, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50910:6:1", + "typeDescriptions": {} + } + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50910:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2775, + "nodeType": "Return", + "src": "50903:48:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2782, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "51092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2783, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "51098:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2565, + "src": "51098:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 2785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51098:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2780, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "51075:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "51075:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51075:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "51068:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2778, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51068:6:1", + "typeDescriptions": {} + } + }, + "id": 2787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51068:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2788, + "nodeType": "Return", + "src": "51061:57:1" + } + ] + }, + "documentation": { + "id": 2723, + "nodeType": "StructuredDocumentation", + "src": "50289:55:1", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 2790, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50404:8:1" + }, + "parameters": { + "id": 2726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2725, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50367:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50367:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "50366:17:1" + }, + "returnParameters": { + "id": 2730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50422:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2728, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50422:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50421:15:1" + }, + "scope": 3498, + "src": "50349:776:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2798, + "nodeType": "Block", + "src": "51420:32:1", + "statements": [ + { + "expression": { + "id": 2796, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "51437:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2795, + "id": 2797, + "nodeType": "Return", + "src": "51430:15:1" + } + ] + }, + "documentation": { + "id": 2791, + "nodeType": "StructuredDocumentation", + "src": "51131:221:1", + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "functionSelector": "6c0360eb", + "id": 2799, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "baseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2792, + "nodeType": "ParameterList", + "parameters": [], + "src": "51373:2:1" + }, + "returnParameters": { + "id": 2795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2799, + "src": "51405:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2793, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51405:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "51404:15:1" + }, + "scope": 3498, + "src": "51357:95:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 700 + ], + "body": { + "id": 2817, + "nodeType": "Block", + "src": "51637:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2814, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "51678:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 2810, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "51654:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2812, + "indexExpression": { + "id": 2811, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2802, + "src": "51668:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "51654:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2813, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 1920, + "src": "51654:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51654:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2809, + "id": 2816, + "nodeType": "Return", + "src": "51647:37:1" + } + ] + }, + "documentation": { + "id": 2800, + "nodeType": "StructuredDocumentation", + "src": "51458:68:1", + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "functionSelector": "2f745c59", + "id": 2818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2806, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51610:8:1" + }, + "parameters": { + "id": 2805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2802, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51560:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "51560:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2804, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51575:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2803, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51575:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51559:30:1" + }, + "returnParameters": { + "id": 2809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2808, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51628:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51628:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51627:9:1" + }, + "scope": 3498, + "src": "51531:160:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 690 + ], + "body": { + "id": 2829, + "nodeType": "Block", + "src": "51832:138:1", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2825, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "51942:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 2340, + "src": "51942:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51942:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2824, + "id": 2828, + "nodeType": "Return", + "src": "51935:28:1" + } + ] + }, + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "51697:60:1", + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 2830, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2821, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51805:8:1" + }, + "parameters": { + "id": 2820, + "nodeType": "ParameterList", + "parameters": [], + "src": "51782:2:1" + }, + "returnParameters": { + "id": 2824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2823, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2830, + "src": "51823:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51823:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51822:9:1" + }, + "scope": 3498, + "src": "51762:208:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 708 + ], + "body": { + "id": 2848, + "nodeType": "Block", + "src": "52126:85:1", + "statements": [ + { + "assignments": [ + 2840, + null + ], + "declarations": [ + { + "constant": false, + "id": 2840, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2848, + "src": "52137:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2839, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52137:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2845, + "initialValue": { + "arguments": [ + { + "id": 2843, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2833, + "src": "52174:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2841, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "52158:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 2379, + "src": "52158:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + } + }, + "id": 2844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52158:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$", + "typeString": "tuple(uint256,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "expression": { + "id": 2846, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2840, + "src": "52197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2838, + "id": 2847, + "nodeType": "Return", + "src": "52190:14:1" + } + ] + }, + "documentation": { + "id": 2831, + "nodeType": "StructuredDocumentation", + "src": "51976:61:1", + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "functionSelector": "4f6ccce7", + "id": 2849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2835, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52099:8:1" + }, + "parameters": { + "id": 2834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2833, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52064:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52064:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52063:15:1" + }, + "returnParameters": { + "id": 2838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2837, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52117:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52116:9:1" + }, + "scope": 3498, + "src": "52042:169:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 616 + ], + "body": { + "id": 2892, + "nodeType": "Block", + "src": "52338:325:1", + "statements": [ + { + "assignments": [ + 2859 + ], + "declarations": [ + { + "constant": false, + "id": 2859, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2892, + "src": "52348:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52348:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2864, + "initialValue": { + "arguments": [ + { + "id": 2862, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52379:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2860, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52364:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "52364:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52364:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2866, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52405:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2867, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52411:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52405:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "id": 2869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52418:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + }, + "value": "ERC721: approval to current owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "id": 2865, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52397:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52397:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2871, + "nodeType": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2873, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52473:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52473:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2875, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52489:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52473:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 2879, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52522:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2880, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52529:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52529:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 2877, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52498:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "52498:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52498:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "52473:69:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52556:58:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + }, + "value": "ERC721: approve caller is not owner nor approved for all" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "id": 2872, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52465:159:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2886, + "nodeType": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2888, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52644:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2889, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52648:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2887, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "52635:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52635:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2891, + "nodeType": "ExpressionStatement", + "src": "52635:21:1" + } + ] + }, + "documentation": { + "id": 2850, + "nodeType": "StructuredDocumentation", + "src": "52217:46:1", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 2893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2856, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52329:8:1" + }, + "parameters": { + "id": 2855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2852, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52285:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52285:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2854, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52297:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52284:29:1" + }, + "returnParameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [], + "src": "52338:0:1" + }, + "scope": 3498, + "src": "52268:395:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 624 + ], + "body": { + "id": 2913, + "nodeType": "Block", + "src": "52809:132:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2904, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2903, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "52827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52827:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52845:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + }, + "value": "ERC721: approved query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "id": 2902, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52819:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2908, + "nodeType": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "expression": { + "baseExpression": { + "id": 2909, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "52910:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 2911, + "indexExpression": { + "id": 2910, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52926:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "52910:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2901, + "id": 2912, + "nodeType": "Return", + "src": "52903:31:1" + } + ] + }, + "documentation": { + "id": 2894, + "nodeType": "StructuredDocumentation", + "src": "52669:50:1", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 2914, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2898, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52782:8:1" + }, + "parameters": { + "id": 2897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2896, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52745:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52744:17:1" + }, + "returnParameters": { + "id": 2901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2900, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2899, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "52799:9:1" + }, + "scope": 3498, + "src": "52724:217:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 632 + ], + "body": { + "id": 2947, + "nodeType": "Block", + "src": "53092:206:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2924, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53110:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2925, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53122:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53122:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "53110:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "id": 2928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53136:27:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + }, + "value": "ERC721: approve to caller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "id": 2923, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53102:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53102:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2930, + "nodeType": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "expression": { + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 2931, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53175:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2935, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2932, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53194:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53194:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53175:32:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2936, + "indexExpression": { + "id": 2934, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53208:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "53175:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2937, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53220:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "53175:53:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2941, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53258:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53258:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2943, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53272:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2944, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53282:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2940, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "53243:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 2945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53243:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2946, + "nodeType": "EmitStatement", + "src": "53238:53:1" + } + ] + }, + "documentation": { + "id": 2915, + "nodeType": "StructuredDocumentation", + "src": "52947:56:1", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 2948, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2921, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53083:8:1" + }, + "parameters": { + "id": 2920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2917, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53035:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53035:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2919, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53053:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2918, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53053:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53034:33:1" + }, + "returnParameters": { + "id": 2922, + "nodeType": "ParameterList", + "parameters": [], + "src": "53092:0:1" + }, + "scope": 3498, + "src": "53008:290:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 642 + ], + "body": { + "id": 2965, + "nodeType": "Block", + "src": "53467:59:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 2959, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53484:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2961, + "indexExpression": { + "id": 2960, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "53503:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2963, + "indexExpression": { + "id": 2962, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "53510:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2958, + "id": 2964, + "nodeType": "Return", + "src": "53477:42:1" + } + ] + }, + "documentation": { + "id": 2949, + "nodeType": "StructuredDocumentation", + "src": "53304:55:1", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 2966, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2955, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53443:8:1" + }, + "parameters": { + "id": 2954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53390:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53390:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2953, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53405:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53405:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "53389:33:1" + }, + "returnParameters": { + "id": 2958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2957, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2956, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53460:6:1" + }, + "scope": 3498, + "src": "53364:162:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 608 + ], + "body": { + "id": 2992, + "nodeType": "Block", + "src": "53677:211:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2979, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53766:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53766:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2981, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53780:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2978, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "53747:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53747:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53790:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 2977, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53739:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53739:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2985, + "nodeType": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2987, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2969, + "src": "53863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2988, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2971, + "src": "53869:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2989, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53873:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2986, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "53853:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53853:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2991, + "nodeType": "ExpressionStatement", + "src": "53853:28:1" + } + ] + }, + "documentation": { + "id": 2967, + "nodeType": "StructuredDocumentation", + "src": "53532:51:1", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 2993, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2975, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53668:8:1" + }, + "parameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2969, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53610:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53610:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2971, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53624:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53624:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2973, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53636:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "53636:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53609:43:1" + }, + "returnParameters": { + "id": 2976, + "nodeType": "ParameterList", + "parameters": [], + "src": "53677:0:1" + }, + "scope": 3498, + "src": "53588:300:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 598 + ], + "body": { + "id": 3011, + "nodeType": "Block", + "src": "54047:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3005, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2996, + "src": "54074:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3006, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2998, + "src": "54080:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3007, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3000, + "src": "54084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54093:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3004, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "src": "54057:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54057:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3010, + "nodeType": "ExpressionStatement", + "src": "54057:39:1" + } + ] + }, + "documentation": { + "id": 2994, + "nodeType": "StructuredDocumentation", + "src": "53894:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 3012, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3002, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54038:8:1" + }, + "parameters": { + "id": 3001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2996, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53980:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53980:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2998, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53994:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2997, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53994:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3000, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "54006:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54006:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53979:43:1" + }, + "returnParameters": { + "id": 3003, + "nodeType": "ParameterList", + "parameters": [], + "src": "54047:0:1" + }, + "scope": 3498, + "src": "53954:149:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 654 + ], + "body": { + "id": 3041, + "nodeType": "Block", + "src": "54282:169:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3027, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "54319:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54319:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3029, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3026, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "54300:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 3030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54300:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 3031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54343:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 3025, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "54292:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54292:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3033, + "nodeType": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3035, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3015, + "src": "54419:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3036, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3017, + "src": "54425:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3037, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3038, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3021, + "src": "54438:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3034, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3071, + "src": "54405:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54405:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3040, + "nodeType": "ExpressionStatement", + "src": "54405:39:1" + } + ] + }, + "documentation": { + "id": 3013, + "nodeType": "StructuredDocumentation", + "src": "54109:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 3042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3023, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54273:8:1" + }, + "parameters": { + "id": 3022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3015, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54195:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54195:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3017, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54209:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3016, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54209:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3019, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54221:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3021, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54238:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3020, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "54238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "54194:63:1" + }, + "returnParameters": { + "id": 3024, + "nodeType": "ParameterList", + "parameters": [], + "src": "54282:0:1" + }, + "scope": 3498, + "src": "54169:282:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 3070, + "nodeType": "Block", + "src": "55416:166:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3055, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55436:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55442:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3057, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55446:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3054, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "55426:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55426:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3059, + "nodeType": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3062, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55495:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3063, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55501:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3064, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55505:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3065, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3051, + "src": "55514:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3061, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "55472:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55472:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55522:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3060, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "55464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55464:111:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3069, + "nodeType": "ExpressionStatement", + "src": "55464:111:1" + } + ] + }, + "documentation": { + "id": 3043, + "nodeType": "StructuredDocumentation", + "src": "54457:851:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3071, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3045, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55336:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55336:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3047, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55350:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55350:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3049, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55362:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55362:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3051, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55379:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3050, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "55379:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "55335:63:1" + }, + "returnParameters": { + "id": 3053, + "nodeType": "ParameterList", + "parameters": [], + "src": "55416:0:1" + }, + "scope": 3498, + "src": "55313:269:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3084, + "nodeType": "Block", + "src": "55956:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3081, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "55995:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3079, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "55973:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3080, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 2326, + "src": "55973:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + } + }, + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55973:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3078, + "id": 3083, + "nodeType": "Return", + "src": "55966:37:1" + } + ] + }, + "documentation": { + "id": 3072, + "nodeType": "StructuredDocumentation", + "src": "55588:292:1", + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3085, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3074, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55902:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3073, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55902:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "55901:17:1" + }, + "returnParameters": { + "id": 3078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3077, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55950:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3076, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "55950:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "55949:6:1" + }, + "scope": 3498, + "src": "55885:125:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3126, + "nodeType": "Block", + "src": "56267:252:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3097, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56293:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3096, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "56285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56285:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 3099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56303:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + }, + "value": "ERC721: operator query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "id": 3095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "56277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56277:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3101, + "nodeType": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "assignments": [ + 3103 + ], + "declarations": [ + { + "constant": false, + "id": 3103, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3126, + "src": "56360:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56360:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3108, + "initialValue": { + "arguments": [ + { + "id": 3106, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56391:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3104, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56376:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "56376:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56376:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3109, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56417:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3110, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56428:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56417:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3113, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56449:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3112, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "56437:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56437:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3115, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56437:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:51:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 3120, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56496:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3121, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3118, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "56472:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56472:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:94:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3124, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56416:96:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3094, + "id": 3125, + "nodeType": "Return", + "src": "56409:103:1" + } + ] + }, + "documentation": { + "id": 3086, + "nodeType": "StructuredDocumentation", + "src": "56016:147:1", + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3088, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56196:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56196:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3090, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56213:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56213:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56195:34:1" + }, + "returnParameters": { + "id": 3094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3093, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56261:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3092, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "56261:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "56260:6:1" + }, + "scope": 3498, + "src": "56168:351:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3141, + "nodeType": "Block", + "src": "56915:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3136, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3130, + "src": "56935:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3137, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3132, + "src": "56939:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56948:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3135, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "src": "56925:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 3139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56925:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3140, + "nodeType": "ExpressionStatement", + "src": "56925:26:1" + } + ] + }, + "documentation": { + "id": 3128, + "nodeType": "StructuredDocumentation", + "src": "56525:320:1", + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3142, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3130, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56869:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3132, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56881:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56881:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56868:29:1" + }, + "returnParameters": { + "id": 3134, + "nodeType": "ParameterList", + "parameters": [], + "src": "56915:0:1" + }, + "scope": 3498, + "src": "56850:108:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3170, + "nodeType": "Block", + "src": "57264:162:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3153, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57280:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3154, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3152, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "57274:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57274:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3156, + "nodeType": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57341:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57333:7:1", + "typeDescriptions": {} + } + }, + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57333:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3163, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57345:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3164, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3165, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "57358:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3158, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "57310:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57310:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57366:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3157, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57302:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57302:117:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3169, + "nodeType": "ExpressionStatement", + "src": "57302:117:1" + } + ] + }, + "documentation": { + "id": 3143, + "nodeType": "StructuredDocumentation", + "src": "56964:210:1", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3171, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3145, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57198:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3144, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57198:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3147, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57210:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57210:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3149, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57227:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3148, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "57227:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "57197:49:1" + }, + "returnParameters": { + "id": 3151, + "nodeType": "ParameterList", + "parameters": [], + "src": "57264:0:1" + }, + "scope": 3498, + "src": "57179:247:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3229, + "nodeType": "Block", + "src": "57809:332:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3180, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57827:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57841:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57833:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57833:7:1", + "typeDescriptions": {} + } + }, + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57833:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "57827:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57845:34:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + }, + "value": "ERC721: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "id": 3179, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57819:61:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "57898:17:1", + "subExpression": { + "arguments": [ + { + "id": 3191, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57907:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3190, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "57899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57899:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57917:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + }, + "value": "ERC721: token already minted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "id": 3189, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57890:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57890:58:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3196, + "nodeType": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57988:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57980:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57980:7:1", + "typeDescriptions": {} + } + }, + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57980:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3202, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57992:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3203, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3197, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "57959:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57959:45:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3205, + "nodeType": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3210, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58037:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3206, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58015:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3208, + "indexExpression": { + "id": 3207, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58029:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58015:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3209, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "58015:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58015:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3212, + "nodeType": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3216, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58073:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3217, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58082:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3213, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58056:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3215, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "58056:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58056:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3219, + "nodeType": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58118:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58110:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58110:7:1", + "typeDescriptions": {} + } + }, + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58110:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3225, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58122:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3226, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3220, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58101:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58101:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3228, + "nodeType": "EmitStatement", + "src": "58096:38:1" + } + ] + }, + "documentation": { + "id": 3172, + "nodeType": "StructuredDocumentation", + "src": "57432:311:1", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3174, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57763:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57763:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3176, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57775:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57775:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "57762:29:1" + }, + "returnParameters": { + "id": 3178, + "nodeType": "ParameterList", + "parameters": [], + "src": "57809:0:1" + }, + "scope": 3498, + "src": "57748:393:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3298, + "nodeType": "Block", + "src": "58407:478:1", + "statements": [ + { + "assignments": [ + 3237 + ], + "declarations": [ + { + "constant": false, + "id": 3237, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "58417:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58417:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3242, + "initialValue": { + "arguments": [ + { + "id": 3240, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58448:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3238, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "58433:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "58433:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58433:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3244, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58506:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58521:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58513:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58513:7:1", + "typeDescriptions": {} + } + }, + "id": 3248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58513:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3249, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58525:7:1", + "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": 3243, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "58485:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58485:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3251, + "nodeType": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58588:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58580:7:1", + "typeDescriptions": {} + } + }, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58580:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3257, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58592:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3252, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "58571:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58571:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3259, + "nodeType": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 3262, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58656:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3264, + "indexExpression": { + "id": 3263, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58667:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58656:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 3261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58650:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3260, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "58650:5:1", + "typeDescriptions": {} + } + }, + "id": 3265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58650:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes storage pointer" + } + }, + "id": 3266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "58650:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 3267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58687:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "58650:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3275, + "nodeType": "IfStatement", + "src": "58646:95:1", + "trueBody": { + "id": 3274, + "nodeType": "Block", + "src": "58690:51:1", + "statements": [ + { + "expression": { + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "58704:26:1", + "subExpression": { + "baseExpression": { + "id": 3269, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58711:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3271, + "indexExpression": { + "id": 3270, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58722:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "58711:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3273, + "nodeType": "ExpressionStatement", + "src": "58704:26:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 3280, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58779:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3276, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58751:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3278, + "indexExpression": { + "id": 3277, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58765:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58751:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3279, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "58751:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58751:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3282, + "nodeType": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3286, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58818:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3283, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58798:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 2306, + "src": "58798:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + } + }, + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58798:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3288, + "nodeType": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3290, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58851:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58866:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58858:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58858:7:1", + "typeDescriptions": {} + } + }, + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58858:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3295, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58870:7:1", + "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": 3289, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58842:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58842:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3297, + "nodeType": "EmitStatement", + "src": "58837:41:1" + } + ] + }, + "documentation": { + "id": 3231, + "nodeType": "StructuredDocumentation", + "src": "58147:206:1", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3299, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3233, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3299, + "src": "58373:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "58372:17:1" + }, + "returnParameters": { + "id": 3235, + "nodeType": "ParameterList", + "parameters": [], + "src": "58407:0:1" + }, + "scope": 3498, + "src": "58358:527:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3370, + "nodeType": "Block", + "src": "59288:505:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3312, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59321:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3310, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "59306:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "59306:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59306:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3314, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59333:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "59306:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59339:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + }, + "value": "ERC721: transfer of token that is not own" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "id": 3309, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59298:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59298:85:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3318, + "nodeType": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3320, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59419:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59433:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59425:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59425:7:1", + "typeDescriptions": {} + } + }, + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59425:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "59419:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59437:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + }, + "value": "ERC721: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "id": 3319, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59411:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59411:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3328, + "nodeType": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3330, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59508:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3331, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59514:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3332, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59518:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3329, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "59487:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59487:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3334, + "nodeType": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59605:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59597:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59597:7:1", + "typeDescriptions": {} + } + }, + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59597:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3340, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59609:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3335, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "59588:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59588:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3342, + "nodeType": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3347, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59655:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3343, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59628:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3345, + "indexExpression": { + "id": 3344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59642:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59628:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3346, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "59628:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59628:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3354, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59695:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3350, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3352, + "indexExpression": { + "id": 3351, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59687:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59673:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3353, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "59673:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59673:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3356, + "nodeType": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3360, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59731:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3361, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59740:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3357, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "59714:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "59714:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59714:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3363, + "nodeType": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3365, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59768:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3366, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59774:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3367, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59778:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3364, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "59759:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59759:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3369, + "nodeType": "EmitStatement", + "src": "59754:32:1" + } + ] + }, + "documentation": { + "id": 3300, + "nodeType": "StructuredDocumentation", + "src": "58891:313:1", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3302, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59228:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3304, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59242:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59242:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3306, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59254:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3305, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59254:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "59227:43:1" + }, + "returnParameters": { + "id": 3308, + "nodeType": "ParameterList", + "parameters": [], + "src": "59288:0:1" + }, + "scope": 3498, + "src": "59209:584:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3392, + "nodeType": "Block", + "src": "60021:131:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3381, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60047:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3380, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "60039:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60039:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "id": 3383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "60057:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + }, + "value": "ERC721Metadata: URI set of nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "id": 3379, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "60031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60031:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3385, + "nodeType": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "expression": { + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3386, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "60114:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3388, + "indexExpression": { + "id": 3387, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60125:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "60114:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3389, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "60136:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60114:31:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3391, + "nodeType": "ExpressionStatement", + "src": "60114:31:1" + } + ] + }, + "documentation": { + "id": 3372, + "nodeType": "StructuredDocumentation", + "src": "59799:136:1", + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setTokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3374, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59962:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59962:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3376, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59979:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3375, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "59979:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "59961:42:1" + }, + "returnParameters": { + "id": 3378, + "nodeType": "ParameterList", + "parameters": [], + "src": "60021:0:1" + }, + "scope": 3498, + "src": "59940:212:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3403, + "nodeType": "Block", + "src": "60437:36:1", + "statements": [ + { + "expression": { + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3399, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "60447:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3400, + "name": "baseURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "60458:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60447:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3402, + "nodeType": "ExpressionStatement", + "src": "60447:19:1" + } + ] + }, + "documentation": { + "id": 3394, + "nodeType": "StructuredDocumentation", + "src": "60158:212:1", + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3404, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setBaseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3396, + "mutability": "mutable", + "name": "baseURI_", + "nodeType": "VariableDeclaration", + "scope": 3404, + "src": "60396:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3395, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "60396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "60395:24:1" + }, + "returnParameters": { + "id": 3398, + "nodeType": "ParameterList", + "parameters": [], + "src": "60437:0:1" + }, + "scope": 3498, + "src": "60375:98:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3461, + "nodeType": "Block", + "src": "61156:459:1", + "statements": [ + { + "condition": { + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "61170:16:1", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3418, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61171:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 1154, + "src": "61171:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61171:15:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3425, + "nodeType": "IfStatement", + "src": "61166:58:1", + "trueBody": { + "id": 3424, + "nodeType": "Block", + "src": "61188:36:1", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 3422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61209:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3417, + "id": 3423, + "nodeType": "Return", + "src": "61202:11:1" + } + ] + } + }, + { + "assignments": [ + 3427 + ], + "declarations": [ + { + "constant": false, + "id": 3427, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61233:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3426, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61233:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3445, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 3433, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61327:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3432, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "61311:15:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$726_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 3434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61311:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$726", + "typeString": "contract IERC721Receiver" + } + }, + "id": 3435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 725, + "src": "61311:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "61311:45:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3437, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "61370:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61370:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3439, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "61396:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3440, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "61414:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3441, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3413, + "src": "61435:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3430, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61275:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "61275:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 3442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61275:175:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61452:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "expression": { + "id": 3428, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61259:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 1225, + "src": "61259:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 3444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61259:246:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "assignments": [ + 3447 + ], + "declarations": [ + { + "constant": false, + "id": 3447, + "mutability": "mutable", + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61515:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3446, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61515:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "id": 3455, + "initialValue": { + "arguments": [ + { + "id": 3450, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3427, + "src": "61542:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 3452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "61555:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 3451, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61555:6:1", + "typeDescriptions": {} + } + } + ], + "id": 3453, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61554:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "expression": { + "id": 3448, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61531:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "61531:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61531:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3456, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "61581:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3457, + "name": "_ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "61591:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "61581:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3459, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61580:28:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3417, + "id": 3460, + "nodeType": "Return", + "src": "61573:35:1" + } + ] + }, + "documentation": { + "id": 3405, + "nodeType": "StructuredDocumentation", + "src": "60479:542:1", + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3462, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3407, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61058:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61058:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3409, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61072:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61072:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3411, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61084:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3410, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3413, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61101:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3412, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61101:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "61057:63:1" + }, + "returnParameters": { + "id": 3417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3416, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61146:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3415, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "61146:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "61145:6:1" + }, + "scope": 3498, + "src": "61026:589:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3485, + "nodeType": "Block", + "src": "61791:125:1", + "statements": [ + { + "expression": { + "id": 3474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3470, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "61801:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 3472, + "indexExpression": { + "id": 3471, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61817:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "61801:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3473, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61828:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "61801:29:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3475, + "nodeType": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 3479, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61869:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3477, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "61854:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "61854:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61854:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3481, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61879:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3482, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3476, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "61845:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61845:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3484, + "nodeType": "EmitStatement", + "src": "61840:51:1" + } + ] + }, + "documentation": { + "id": 3463, + "nodeType": "StructuredDocumentation", + "src": "61621:101:1", + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3486, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3465, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61745:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61745:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3467, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61757:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61757:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "61744:29:1" + }, + "returnParameters": { + "id": 3469, + "nodeType": "ParameterList", + "parameters": [], + "src": "61791:0:1" + }, + "scope": 3498, + "src": "61727:189:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3496, + "nodeType": "Block", + "src": "62602:3:1", + "statements": [] + }, + "documentation": { + "id": 3487, + "nodeType": "StructuredDocumentation", + "src": "61922:585:1", + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3497, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3489, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62542:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62542:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3491, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62556:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62556:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3493, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62568:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "62568:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "62541:43:1" + }, + "returnParameters": { + "id": 3495, + "nodeType": "ParameterList", + "parameters": [], + "src": "62602:0:1" + }, + "scope": 3498, + "src": "62512:93:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "46080:16527:1" + } + ], + "src": "84:62524:1" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "license": "MIT" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 509, + "name": "PragmaDirective", + "src": "84:31:1" + }, + { + "attributes": { + "abstract": true, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgSender", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 510, + "name": "ParameterList", + "src": "668:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 518, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 511, + "name": "ElementaryTypeName", + "src": "702:15:1" + } + ], + "id": 512, + "name": "VariableDeclaration", + "src": "702:15:1" + } + ], + "id": 513, + "name": "ParameterList", + "src": "701:17:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 513 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 514, + "name": "Identifier", + "src": "736:3:1" + } + ], + "id": 515, + "name": "MemberAccess", + "src": "736:10:1" + } + ], + "id": 516, + "name": "Return", + "src": "729:17:1" + } + ], + "id": 517, + "name": "Block", + "src": "719:34:1" + } + ], + "id": 518, + "name": "FunctionDefinition", + "src": "649:104:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgData", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 519, + "name": "ParameterList", + "src": "776:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 529, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 520, + "name": "ElementaryTypeName", + "src": "810:5:1" + } + ], + "id": 521, + "name": "VariableDeclaration", + "src": "810:12:1" + } + ], + "id": 522, + "name": "ParameterList", + "src": "809:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "contract Context", + "value": "this" + }, + "id": 523, + "name": "Identifier", + "src": "834:4:1" + } + ], + "id": 524, + "name": "ExpressionStatement", + "src": "834:4:1" + }, + { + "attributes": { + "functionReturnParameters": 522 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "data", + "type": "bytes calldata" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 525, + "name": "Identifier", + "src": "974:3:1" + } + ], + "id": 526, + "name": "MemberAccess", + "src": "974:8:1" + } + ], + "id": 527, + "name": "Return", + "src": "967:15:1" + } + ], + "id": 528, + "name": "Block", + "src": "824:165:1" + } + ], + "id": 529, + "name": "FunctionDefinition", + "src": "759:230:1" + } + ], + "id": 530, + "name": "ContractDefinition", + "src": "617:374:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 531, + "name": "PragmaDirective", + "src": "1053:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "id": 532, + "name": "StructuredDocumentation", + "src": "1086:279:1" + }, + { + "attributes": { + "functionSelector": "01ffc9a7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 541, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "id": 533, + "name": "StructuredDocumentation", + "src": "1390:340:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 534, + "name": "ElementaryTypeName", + "src": "1762:6:1" + } + ], + "id": 535, + "name": "VariableDeclaration", + "src": "1762:18:1" + } + ], + "id": 536, + "name": "ParameterList", + "src": "1761:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 537, + "name": "ElementaryTypeName", + "src": "1805:4:1" + } + ], + "id": 538, + "name": "VariableDeclaration", + "src": "1805:4:1" + } + ], + "id": 539, + "name": "ParameterList", + "src": "1804:6:1" + } + ], + "id": 540, + "name": "FunctionDefinition", + "src": "1735:76:1" + } + ], + "id": 541, + "name": "ContractDefinition", + "src": "1366:447:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 542, + "name": "PragmaDirective", + "src": "1873:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "id": 543, + "name": "StructuredDocumentation", + "src": "1907:67:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 544, + "name": "UserDefinedTypeName", + "src": "1996:7:1" + } + ], + "id": 545, + "name": "InheritanceSpecifier", + "src": "1996:7:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Transfer" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 546, + "name": "StructuredDocumentation", + "src": "2010:88:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "from", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 547, + "name": "ElementaryTypeName", + "src": "2118:7:1" + } + ], + "id": 548, + "name": "VariableDeclaration", + "src": "2118:20:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "to", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 549, + "name": "ElementaryTypeName", + "src": "2140:7:1" + } + ], + "id": 550, + "name": "VariableDeclaration", + "src": "2140:18:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 551, + "name": "ElementaryTypeName", + "src": "2160:7:1" + } + ], + "id": 552, + "name": "VariableDeclaration", + "src": "2160:23:1" + } + ], + "id": 553, + "name": "ParameterList", + "src": "2117:67:1" + } + ], + "id": 554, + "name": "EventDefinition", + "src": "2103:82:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Approval" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 555, + "name": "StructuredDocumentation", + "src": "2191:94:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 556, + "name": "ElementaryTypeName", + "src": "2305:7:1" + } + ], + "id": 557, + "name": "VariableDeclaration", + "src": "2305:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 558, + "name": "ElementaryTypeName", + "src": "2328:7:1" + } + ], + "id": 559, + "name": "VariableDeclaration", + "src": "2328:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 560, + "name": "ElementaryTypeName", + "src": "2354:7:1" + } + ], + "id": 561, + "name": "VariableDeclaration", + "src": "2354:23:1" + } + ], + "id": 562, + "name": "ParameterList", + "src": "2304:74:1" + } + ], + "id": 563, + "name": "EventDefinition", + "src": "2290:89:1" + }, + { + "attributes": { + "anonymous": false, + "name": "ApprovalForAll" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 564, + "name": "StructuredDocumentation", + "src": "2385:117:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 565, + "name": "ElementaryTypeName", + "src": "2528:7:1" + } + ], + "id": 566, + "name": "VariableDeclaration", + "src": "2528:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 567, + "name": "ElementaryTypeName", + "src": "2551:7:1" + } + ], + "id": 568, + "name": "VariableDeclaration", + "src": "2551:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 569, + "name": "ElementaryTypeName", + "src": "2577:4:1" + } + ], + "id": 570, + "name": "VariableDeclaration", + "src": "2577:13:1" + } + ], + "id": 571, + "name": "ParameterList", + "src": "2527:64:1" + } + ], + "id": 572, + "name": "EventDefinition", + "src": "2507:85:1" + }, + { + "attributes": { + "functionSelector": "70a08231", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "id": 573, + "name": "StructuredDocumentation", + "src": "2598:76:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 574, + "name": "ElementaryTypeName", + "src": "2698:7:1" + } + ], + "id": 575, + "name": "VariableDeclaration", + "src": "2698:13:1" + } + ], + "id": 576, + "name": "ParameterList", + "src": "2697:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "balance", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 577, + "name": "ElementaryTypeName", + "src": "2736:7:1" + } + ], + "id": 578, + "name": "VariableDeclaration", + "src": "2736:15:1" + } + ], + "id": 579, + "name": "ParameterList", + "src": "2735:17:1" + } + ], + "id": 580, + "name": "FunctionDefinition", + "src": "2679:74:1" + }, + { + "attributes": { + "functionSelector": "6352211e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 581, + "name": "StructuredDocumentation", + "src": "2759:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 582, + "name": "ElementaryTypeName", + "src": "2912:7:1" + } + ], + "id": 583, + "name": "VariableDeclaration", + "src": "2912:15:1" + } + ], + "id": 584, + "name": "ParameterList", + "src": "2911:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 585, + "name": "ElementaryTypeName", + "src": "2952:7:1" + } + ], + "id": 586, + "name": "VariableDeclaration", + "src": "2952:13:1" + } + ], + "id": 587, + "name": "ParameterList", + "src": "2951:15:1" + } + ], + "id": 588, + "name": "FunctionDefinition", + "src": "2895:72:1" + }, + { + "attributes": { + "functionSelector": "42842e0e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 589, + "name": "StructuredDocumentation", + "src": "2973:690:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 590, + "name": "ElementaryTypeName", + "src": "3694:7:1" + } + ], + "id": 591, + "name": "VariableDeclaration", + "src": "3694:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 592, + "name": "ElementaryTypeName", + "src": "3708:7:1" + } + ], + "id": 593, + "name": "VariableDeclaration", + "src": "3708:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 594, + "name": "ElementaryTypeName", + "src": "3720:7:1" + } + ], + "id": 595, + "name": "VariableDeclaration", + "src": "3720:15:1" + } + ], + "id": 596, + "name": "ParameterList", + "src": "3693:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 597, + "name": "ParameterList", + "src": "3745:0:1" + } + ], + "id": 598, + "name": "FunctionDefinition", + "src": "3668:78:1" + }, + { + "attributes": { + "functionSelector": "23b872dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "id": 599, + "name": "StructuredDocumentation", + "src": "3752:504:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 600, + "name": "ElementaryTypeName", + "src": "4283:7:1" + } + ], + "id": 601, + "name": "VariableDeclaration", + "src": "4283:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 602, + "name": "ElementaryTypeName", + "src": "4297:7:1" + } + ], + "id": 603, + "name": "VariableDeclaration", + "src": "4297:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 604, + "name": "ElementaryTypeName", + "src": "4309:7:1" + } + ], + "id": 605, + "name": "VariableDeclaration", + "src": "4309:15:1" + } + ], + "id": 606, + "name": "ParameterList", + "src": "4282:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 607, + "name": "ParameterList", + "src": "4334:0:1" + } + ], + "id": 608, + "name": "FunctionDefinition", + "src": "4261:74:1" + }, + { + "attributes": { + "functionSelector": "095ea7b3", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "id": 609, + "name": "StructuredDocumentation", + "src": "4341:452:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 610, + "name": "ElementaryTypeName", + "src": "4815:7:1" + } + ], + "id": 611, + "name": "VariableDeclaration", + "src": "4815:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 612, + "name": "ElementaryTypeName", + "src": "4827:7:1" + } + ], + "id": 613, + "name": "VariableDeclaration", + "src": "4827:15:1" + } + ], + "id": 614, + "name": "ParameterList", + "src": "4814:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 615, + "name": "ParameterList", + "src": "4852:0:1" + } + ], + "id": 616, + "name": "FunctionDefinition", + "src": "4798:55:1" + }, + { + "attributes": { + "functionSelector": "081812fc", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 617, + "name": "StructuredDocumentation", + "src": "4859:139:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 618, + "name": "ElementaryTypeName", + "src": "5024:7:1" + } + ], + "id": 619, + "name": "VariableDeclaration", + "src": "5024:15:1" + } + ], + "id": 620, + "name": "ParameterList", + "src": "5023:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 621, + "name": "ElementaryTypeName", + "src": "5064:7:1" + } + ], + "id": 622, + "name": "VariableDeclaration", + "src": "5064:16:1" + } + ], + "id": 623, + "name": "ParameterList", + "src": "5063:18:1" + } + ], + "id": 624, + "name": "FunctionDefinition", + "src": "5003:79:1" + }, + { + "attributes": { + "functionSelector": "a22cb465", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "id": 625, + "name": "StructuredDocumentation", + "src": "5088:309:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 626, + "name": "ElementaryTypeName", + "src": "5429:7:1" + } + ], + "id": 627, + "name": "VariableDeclaration", + "src": "5429:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_approved", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 628, + "name": "ElementaryTypeName", + "src": "5447:4:1" + } + ], + "id": 629, + "name": "VariableDeclaration", + "src": "5447:14:1" + } + ], + "id": 630, + "name": "ParameterList", + "src": "5428:34:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 631, + "name": "ParameterList", + "src": "5471:0:1" + } + ], + "id": 632, + "name": "FunctionDefinition", + "src": "5402:70:1" + }, + { + "attributes": { + "functionSelector": "e985e9c5", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "id": 633, + "name": "StructuredDocumentation", + "src": "5478:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 634, + "name": "ElementaryTypeName", + "src": "5647:7:1" + } + ], + "id": 635, + "name": "VariableDeclaration", + "src": "5647:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 636, + "name": "ElementaryTypeName", + "src": "5662:7:1" + } + ], + "id": 637, + "name": "VariableDeclaration", + "src": "5662:16:1" + } + ], + "id": 638, + "name": "ParameterList", + "src": "5646:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 639, + "name": "ElementaryTypeName", + "src": "5703:4:1" + } + ], + "id": 640, + "name": "VariableDeclaration", + "src": "5703:4:1" + } + ], + "id": 641, + "name": "ParameterList", + "src": "5702:6:1" + } + ], + "id": 642, + "name": "FunctionDefinition", + "src": "5621:88:1" + }, + { + "attributes": { + "functionSelector": "b88d4fde", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 643, + "name": "StructuredDocumentation", + "src": "5715:568:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 644, + "name": "ElementaryTypeName", + "src": "6314:7:1" + } + ], + "id": 645, + "name": "VariableDeclaration", + "src": "6314:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 646, + "name": "ElementaryTypeName", + "src": "6328:7:1" + } + ], + "id": 647, + "name": "VariableDeclaration", + "src": "6328:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 648, + "name": "ElementaryTypeName", + "src": "6340:7:1" + } + ], + "id": 649, + "name": "VariableDeclaration", + "src": "6340:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 654, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 650, + "name": "ElementaryTypeName", + "src": "6357:5:1" + } + ], + "id": 651, + "name": "VariableDeclaration", + "src": "6357:19:1" + } + ], + "id": 652, + "name": "ParameterList", + "src": "6313:64:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 653, + "name": "ParameterList", + "src": "6386:0:1" + } + ], + "id": 654, + "name": "FunctionDefinition", + "src": "6288:99:1" + } + ], + "id": 655, + "name": "ContractDefinition", + "src": "1975:4414:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 656, + "name": "PragmaDirective", + "src": "6457:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 657, + "name": "StructuredDocumentation", + "src": "6491:133:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 658, + "name": "UserDefinedTypeName", + "src": "6654:7:1" + } + ], + "id": 659, + "name": "InheritanceSpecifier", + "src": "6654:7:1" + }, + { + "attributes": { + "functionSelector": "06fdde03", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection name." + }, + "id": 660, + "name": "StructuredDocumentation", + "src": "6669:58:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 661, + "name": "ParameterList", + "src": "6745:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 665, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 662, + "name": "ElementaryTypeName", + "src": "6771:6:1" + } + ], + "id": 663, + "name": "VariableDeclaration", + "src": "6771:13:1" + } + ], + "id": 664, + "name": "ParameterList", + "src": "6770:15:1" + } + ], + "id": 665, + "name": "FunctionDefinition", + "src": "6732:54:1" + }, + { + "attributes": { + "functionSelector": "95d89b41", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection symbol." + }, + "id": 666, + "name": "StructuredDocumentation", + "src": "6792:60:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 667, + "name": "ParameterList", + "src": "6872:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 671, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 668, + "name": "ElementaryTypeName", + "src": "6898:6:1" + } + ], + "id": 669, + "name": "VariableDeclaration", + "src": "6898:13:1" + } + ], + "id": 670, + "name": "ParameterList", + "src": "6897:15:1" + } + ], + "id": 671, + "name": "FunctionDefinition", + "src": "6857:56:1" + }, + { + "attributes": { + "functionSelector": "c87b56dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "id": 672, + "name": "StructuredDocumentation", + "src": "6919:90:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 679, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 673, + "name": "ElementaryTypeName", + "src": "7032:7:1" + } + ], + "id": 674, + "name": "VariableDeclaration", + "src": "7032:15:1" + } + ], + "id": 675, + "name": "ParameterList", + "src": "7031:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 679, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 676, + "name": "ElementaryTypeName", + "src": "7072:6:1" + } + ], + "id": 677, + "name": "VariableDeclaration", + "src": "7072:13:1" + } + ], + "id": 678, + "name": "ParameterList", + "src": "7071:15:1" + } + ], + "id": 679, + "name": "FunctionDefinition", + "src": "7014:73:1" + } + ], + "id": 680, + "name": "ContractDefinition", + "src": "6625:464:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 681, + "name": "PragmaDirective", + "src": "7161:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 682, + "name": "StructuredDocumentation", + "src": "7195:136:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 683, + "name": "UserDefinedTypeName", + "src": "7363:7:1" + } + ], + "id": 684, + "name": "InheritanceSpecifier", + "src": "7363:7:1" + }, + { + "attributes": { + "functionSelector": "18160ddd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "id": 685, + "name": "StructuredDocumentation", + "src": "7378:82:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 686, + "name": "ParameterList", + "src": "7485:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 690, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 687, + "name": "ElementaryTypeName", + "src": "7511:7:1" + } + ], + "id": 688, + "name": "VariableDeclaration", + "src": "7511:7:1" + } + ], + "id": 689, + "name": "ParameterList", + "src": "7510:9:1" + } + ], + "id": 690, + "name": "FunctionDefinition", + "src": "7465:55:1" + }, + { + "attributes": { + "functionSelector": "2f745c59", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "id": 691, + "name": "StructuredDocumentation", + "src": "7526:171:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 692, + "name": "ElementaryTypeName", + "src": "7731:7:1" + } + ], + "id": 693, + "name": "VariableDeclaration", + "src": "7731:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 694, + "name": "ElementaryTypeName", + "src": "7746:7:1" + } + ], + "id": 695, + "name": "VariableDeclaration", + "src": "7746:13:1" + } + ], + "id": 696, + "name": "ParameterList", + "src": "7730:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 697, + "name": "ElementaryTypeName", + "src": "7784:7:1" + } + ], + "id": 698, + "name": "VariableDeclaration", + "src": "7784:15:1" + } + ], + "id": 699, + "name": "ParameterList", + "src": "7783:17:1" + } + ], + "id": 700, + "name": "FunctionDefinition", + "src": "7702:99:1" + }, + { + "attributes": { + "functionSelector": "4f6ccce7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "id": 701, + "name": "StructuredDocumentation", + "src": "7807:164:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 702, + "name": "ElementaryTypeName", + "src": "7998:7:1" + } + ], + "id": 703, + "name": "VariableDeclaration", + "src": "7998:13:1" + } + ], + "id": 704, + "name": "ParameterList", + "src": "7997:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 705, + "name": "ElementaryTypeName", + "src": "8036:7:1" + } + ], + "id": 706, + "name": "VariableDeclaration", + "src": "8036:7:1" + } + ], + "id": 707, + "name": "ParameterList", + "src": "8035:9:1" + } + ], + "id": 708, + "name": "FunctionDefinition", + "src": "7976:69:1" + } + ], + "id": 709, + "name": "ContractDefinition", + "src": "7332:715:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 710, + "name": "PragmaDirective", + "src": "8117:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "id": 711, + "name": "StructuredDocumentation", + "src": "8150:152:1" + }, + { + "attributes": { + "functionSelector": "150b7a02", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "onERC721Received", + "scope": 726, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "id": 712, + "name": "StructuredDocumentation", + "src": "8335:485:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 713, + "name": "ElementaryTypeName", + "src": "8851:7:1" + } + ], + "id": 714, + "name": "VariableDeclaration", + "src": "8851:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 715, + "name": "ElementaryTypeName", + "src": "8869:7:1" + } + ], + "id": 716, + "name": "VariableDeclaration", + "src": "8869:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 717, + "name": "ElementaryTypeName", + "src": "8883:7:1" + } + ], + "id": 718, + "name": "VariableDeclaration", + "src": "8883:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 725, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 719, + "name": "ElementaryTypeName", + "src": "8900:5:1" + } + ], + "id": 720, + "name": "VariableDeclaration", + "src": "8900:19:1" + } + ], + "id": 721, + "name": "ParameterList", + "src": "8850:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 722, + "name": "ElementaryTypeName", + "src": "8939:6:1" + } + ], + "id": 723, + "name": "VariableDeclaration", + "src": "8939:6:1" + } + ], + "id": 724, + "name": "ParameterList", + "src": "8938:8:1" + } + ], + "id": 725, + "name": "FunctionDefinition", + "src": "8825:122:1" + } + ], + "id": 726, + "name": "ContractDefinition", + "src": "8303:646:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 727, + "name": "PragmaDirective", + "src": "9009:31:1" + }, + { + "attributes": { + "abstract": true, + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "id": 728, + "name": "StructuredDocumentation", + "src": "9043:171:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 729, + "name": "UserDefinedTypeName", + "src": "9243:7:1" + } + ], + "id": 730, + "name": "InheritanceSpecifier", + "src": "9243:7:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 731, + "name": "ElementaryTypeName", + "src": "9340:6:1" + }, + { + "attributes": { + "hexvalue": "30783031666663396137", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 33540519", + "value": "0x01ffc9a7" + }, + "id": 732, + "name": "Literal", + "src": "9387:10:1" + } + ], + "id": 733, + "name": "VariableDeclaration", + "src": "9340:57:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_supportedInterfaces", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes4 => bool)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes4 => bool)" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 735, + "name": "ElementaryTypeName", + "src": "9499:6:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 736, + "name": "ElementaryTypeName", + "src": "9509:4:1" + } + ], + "id": 737, + "name": "Mapping", + "src": "9491:23:1" + }, + { + "attributes": { + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 734, + "name": "StructuredDocumentation", + "src": "9404:82:1" + } + ], + "id": 738, + "name": "VariableDeclaration", + "src": "9491:52:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 739, + "name": "ParameterList", + "src": "9562:2:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 740, + "name": "ParameterList", + "src": "9565:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 741, + "name": "Identifier", + "src": "9711:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 733, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC165" + }, + "id": 742, + "name": "Identifier", + "src": "9730:20:1" + } + ], + "id": 743, + "name": "FunctionCall", + "src": "9711:40:1" + } + ], + "id": 744, + "name": "ExpressionStatement", + "src": "9711:40:1" + } + ], + "id": 745, + "name": "Block", + "src": "9565:193:1" + } + ], + "id": 746, + "name": "FunctionDefinition", + "src": "9550:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 540 + ], + "functionSelector": "01ffc9a7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 781, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "id": 747, + "name": "StructuredDocumentation", + "src": "9764:139:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 751, + "name": "OverrideSpecifier", + "src": "9975:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 748, + "name": "ElementaryTypeName", + "src": "9935:6:1" + } + ], + "id": 749, + "name": "VariableDeclaration", + "src": "9935:18:1" + } + ], + "id": 750, + "name": "ParameterList", + "src": "9934:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 752, + "name": "ElementaryTypeName", + "src": "9993:4:1" + } + ], + "id": 753, + "name": "VariableDeclaration", + "src": "9993:4:1" + } + ], + "id": 754, + "name": "ParameterList", + "src": "9992:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 754 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 755, + "name": "Identifier", + "src": "10016:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 749, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 756, + "name": "Identifier", + "src": "10037:11:1" + } + ], + "id": 757, + "name": "IndexAccess", + "src": "10016:33:1" + } + ], + "id": 758, + "name": "Return", + "src": "10009:40:1" + } + ], + "id": 759, + "name": "Block", + "src": "9999:57:1" + } + ], + "id": 760, + "name": "FunctionDefinition", + "src": "9908:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_registerInterface", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 761, + "name": "StructuredDocumentation", + "src": "10062:383:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 780, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 762, + "name": "ElementaryTypeName", + "src": "10478:6:1" + } + ], + "id": 763, + "name": "VariableDeclaration", + "src": "10478:18:1" + } + ], + "id": 764, + "name": "ParameterList", + "src": "10477:20:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 765, + "name": "ParameterList", + "src": "10515:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 766, + "name": "Identifier", + "src": "10525:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 767, + "name": "Identifier", + "src": "10533:11:1" + }, + { + "attributes": { + "hexvalue": "30786666666666666666", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4294967295", + "value": "0xffffffff" + }, + "id": 768, + "name": "Literal", + "src": "10548:10:1" + } + ], + "id": 769, + "name": "BinaryOperation", + "src": "10533:25:1" + }, + { + "attributes": { + "hexvalue": "4552433136353a20696e76616c696420696e74657266616365206964", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC165: invalid interface id\"", + "value": "ERC165: invalid interface id" + }, + "id": 770, + "name": "Literal", + "src": "10560:30:1" + } + ], + "id": 771, + "name": "FunctionCall", + "src": "10525:66:1" + } + ], + "id": 772, + "name": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 773, + "name": "Identifier", + "src": "10601:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 774, + "name": "Identifier", + "src": "10622:11:1" + } + ], + "id": 775, + "name": "IndexAccess", + "src": "10601:33:1" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 776, + "name": "Literal", + "src": "10637:4:1" + } + ], + "id": 777, + "name": "Assignment", + "src": "10601:40:1" + } + ], + "id": 778, + "name": "ExpressionStatement", + "src": "10601:40:1" + } + ], + "id": 779, + "name": "Block", + "src": "10515:133:1" + } + ], + "id": 780, + "name": "FunctionDefinition", + "src": "10450:198:1" + } + ], + "id": 781, + "name": "ContractDefinition", + "src": "9215:1435:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 782, + "name": "PragmaDirective", + "src": "10703:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "id": 783, + "name": "StructuredDocumentation", + "src": "10736:563:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryAdd", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 784, + "name": "StructuredDocumentation", + "src": "11323:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 785, + "name": "ElementaryTypeName", + "src": "11475:7:1" + } + ], + "id": 786, + "name": "VariableDeclaration", + "src": "11475:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 787, + "name": "ElementaryTypeName", + "src": "11486:7:1" + } + ], + "id": 788, + "name": "VariableDeclaration", + "src": "11486:9:1" + } + ], + "id": 789, + "name": "ParameterList", + "src": "11474:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 790, + "name": "ElementaryTypeName", + "src": "11520:4:1" + } + ], + "id": 791, + "name": "VariableDeclaration", + "src": "11520:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 792, + "name": "ElementaryTypeName", + "src": "11526:7:1" + } + ], + "id": 793, + "name": "VariableDeclaration", + "src": "11526:7:1" + } + ], + "id": 794, + "name": "ParameterList", + "src": "11519:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 796 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 813, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 795, + "name": "ElementaryTypeName", + "src": "11545:7:1" + } + ], + "id": 796, + "name": "VariableDeclaration", + "src": "11545:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 797, + "name": "Identifier", + "src": "11557:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 788, + "type": "uint256", + "value": "b" + }, + "id": 798, + "name": "Identifier", + "src": "11561:1:1" + } + ], + "id": 799, + "name": "BinaryOperation", + "src": "11557:5:1" + } + ], + "id": 800, + "name": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 801, + "name": "Identifier", + "src": "11576:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 802, + "name": "Identifier", + "src": "11580:1:1" + } + ], + "id": 803, + "name": "BinaryOperation", + "src": "11576:5:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 804, + "name": "Literal", + "src": "11591:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 805, + "name": "Literal", + "src": "11598:1:1" + } + ], + "id": 806, + "name": "TupleExpression", + "src": "11590:10:1" + } + ], + "id": 807, + "name": "Return", + "src": "11583:17:1" + } + ], + "id": 808, + "name": "IfStatement", + "src": "11572:28:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 809, + "name": "Literal", + "src": "11618:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 810, + "name": "Identifier", + "src": "11624:1:1" + } + ], + "id": 811, + "name": "TupleExpression", + "src": "11617:9:1" + } + ], + "id": 812, + "name": "Return", + "src": "11610:16:1" + } + ], + "id": 813, + "name": "Block", + "src": "11535:98:1" + } + ], + "id": 814, + "name": "FunctionDefinition", + "src": "11459:174:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "trySub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 815, + "name": "StructuredDocumentation", + "src": "11639:135:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 816, + "name": "ElementaryTypeName", + "src": "11795:7:1" + } + ], + "id": 817, + "name": "VariableDeclaration", + "src": "11795:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 818, + "name": "ElementaryTypeName", + "src": "11806:7:1" + } + ], + "id": 819, + "name": "VariableDeclaration", + "src": "11806:9:1" + } + ], + "id": 820, + "name": "ParameterList", + "src": "11794:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 821, + "name": "ElementaryTypeName", + "src": "11840:4:1" + } + ], + "id": 822, + "name": "VariableDeclaration", + "src": "11840:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 823, + "name": "ElementaryTypeName", + "src": "11846:7:1" + } + ], + "id": 824, + "name": "VariableDeclaration", + "src": "11846:7:1" + } + ], + "id": 825, + "name": "ParameterList", + "src": "11839:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 826, + "name": "Identifier", + "src": "11869:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 827, + "name": "Identifier", + "src": "11873:1:1" + } + ], + "id": 828, + "name": "BinaryOperation", + "src": "11869:5:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 829, + "name": "Literal", + "src": "11884:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 830, + "name": "Literal", + "src": "11891:1:1" + } + ], + "id": 831, + "name": "TupleExpression", + "src": "11883:10:1" + } + ], + "id": 832, + "name": "Return", + "src": "11876:17:1" + } + ], + "id": 833, + "name": "IfStatement", + "src": "11865:28:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 834, + "name": "Literal", + "src": "11911:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 835, + "name": "Identifier", + "src": "11917:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 836, + "name": "Identifier", + "src": "11921:1:1" + } + ], + "id": 837, + "name": "BinaryOperation", + "src": "11917:5:1" + } + ], + "id": 838, + "name": "TupleExpression", + "src": "11910:13:1" + } + ], + "id": 839, + "name": "Return", + "src": "11903:20:1" + } + ], + "id": 840, + "name": "Block", + "src": "11855:75:1" + } + ], + "id": 841, + "name": "FunctionDefinition", + "src": "11779:151:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 842, + "name": "StructuredDocumentation", + "src": "11936:137:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 843, + "name": "ElementaryTypeName", + "src": "12094:7:1" + } + ], + "id": 844, + "name": "VariableDeclaration", + "src": "12094:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 845, + "name": "ElementaryTypeName", + "src": "12105:7:1" + } + ], + "id": 846, + "name": "VariableDeclaration", + "src": "12105:9:1" + } + ], + "id": 847, + "name": "ParameterList", + "src": "12093:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 848, + "name": "ElementaryTypeName", + "src": "12139:4:1" + } + ], + "id": 849, + "name": "VariableDeclaration", + "src": "12139:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 850, + "name": "ElementaryTypeName", + "src": "12145:7:1" + } + ], + "id": 851, + "name": "VariableDeclaration", + "src": "12145:7:1" + } + ], + "id": 852, + "name": "ParameterList", + "src": "12138:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 853, + "name": "Identifier", + "src": "12386:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 854, + "name": "Literal", + "src": "12391:1:1" + } + ], + "id": 855, + "name": "BinaryOperation", + "src": "12386:6:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 856, + "name": "Literal", + "src": "12402:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 857, + "name": "Literal", + "src": "12408:1:1" + } + ], + "id": 858, + "name": "TupleExpression", + "src": "12401:9:1" + } + ], + "id": 859, + "name": "Return", + "src": "12394:16:1" + } + ], + "id": 860, + "name": "IfStatement", + "src": "12382:28:1" + }, + { + "attributes": { + "assignments": [ + 862 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 881, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 861, + "name": "ElementaryTypeName", + "src": "12420:7:1" + } + ], + "id": 862, + "name": "VariableDeclaration", + "src": "12420:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 863, + "name": "Identifier", + "src": "12432:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 864, + "name": "Identifier", + "src": "12436:1:1" + } + ], + "id": 865, + "name": "BinaryOperation", + "src": "12432:5:1" + } + ], + "id": 866, + "name": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 867, + "name": "Identifier", + "src": "12451:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 868, + "name": "Identifier", + "src": "12455:1:1" + } + ], + "id": 869, + "name": "BinaryOperation", + "src": "12451:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 870, + "name": "Identifier", + "src": "12460:1:1" + } + ], + "id": 871, + "name": "BinaryOperation", + "src": "12451:10:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 872, + "name": "Literal", + "src": "12471:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 873, + "name": "Literal", + "src": "12478:1:1" + } + ], + "id": 874, + "name": "TupleExpression", + "src": "12470:10:1" + } + ], + "id": 875, + "name": "Return", + "src": "12463:17:1" + } + ], + "id": 876, + "name": "IfStatement", + "src": "12447:33:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 877, + "name": "Literal", + "src": "12498:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 878, + "name": "Identifier", + "src": "12504:1:1" + } + ], + "id": 879, + "name": "TupleExpression", + "src": "12497:9:1" + } + ], + "id": 880, + "name": "Return", + "src": "12490:16:1" + } + ], + "id": 881, + "name": "Block", + "src": "12154:359:1" + } + ], + "id": 882, + "name": "FunctionDefinition", + "src": "12078:435:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryDiv", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 883, + "name": "StructuredDocumentation", + "src": "12519:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 884, + "name": "ElementaryTypeName", + "src": "12678:7:1" + } + ], + "id": 885, + "name": "VariableDeclaration", + "src": "12678:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 886, + "name": "ElementaryTypeName", + "src": "12689:7:1" + } + ], + "id": 887, + "name": "VariableDeclaration", + "src": "12689:9:1" + } + ], + "id": 888, + "name": "ParameterList", + "src": "12677:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 889, + "name": "ElementaryTypeName", + "src": "12723:4:1" + } + ], + "id": 890, + "name": "VariableDeclaration", + "src": "12723:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 891, + "name": "ElementaryTypeName", + "src": "12729:7:1" + } + ], + "id": 892, + "name": "VariableDeclaration", + "src": "12729:7:1" + } + ], + "id": 893, + "name": "ParameterList", + "src": "12722:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 894, + "name": "Identifier", + "src": "12752:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 895, + "name": "Literal", + "src": "12757:1:1" + } + ], + "id": 896, + "name": "BinaryOperation", + "src": "12752:6:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 897, + "name": "Literal", + "src": "12768:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 898, + "name": "Literal", + "src": "12775:1:1" + } + ], + "id": 899, + "name": "TupleExpression", + "src": "12767:10:1" + } + ], + "id": 900, + "name": "Return", + "src": "12760:17:1" + } + ], + "id": 901, + "name": "IfStatement", + "src": "12748:29:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 902, + "name": "Literal", + "src": "12795:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 885, + "type": "uint256", + "value": "a" + }, + "id": 903, + "name": "Identifier", + "src": "12801:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 904, + "name": "Identifier", + "src": "12805:1:1" + } + ], + "id": 905, + "name": "BinaryOperation", + "src": "12801:5:1" + } + ], + "id": 906, + "name": "TupleExpression", + "src": "12794:13:1" + } + ], + "id": 907, + "name": "Return", + "src": "12787:20:1" + } + ], + "id": 908, + "name": "Block", + "src": "12738:76:1" + } + ], + "id": 909, + "name": "FunctionDefinition", + "src": "12662:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 910, + "name": "StructuredDocumentation", + "src": "12820:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 911, + "name": "ElementaryTypeName", + "src": "12989:7:1" + } + ], + "id": 912, + "name": "VariableDeclaration", + "src": "12989:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 913, + "name": "ElementaryTypeName", + "src": "13000:7:1" + } + ], + "id": 914, + "name": "VariableDeclaration", + "src": "13000:9:1" + } + ], + "id": 915, + "name": "ParameterList", + "src": "12988:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 916, + "name": "ElementaryTypeName", + "src": "13034:4:1" + } + ], + "id": 917, + "name": "VariableDeclaration", + "src": "13034:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 918, + "name": "ElementaryTypeName", + "src": "13040:7:1" + } + ], + "id": 919, + "name": "VariableDeclaration", + "src": "13040:7:1" + } + ], + "id": 920, + "name": "ParameterList", + "src": "13033:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 921, + "name": "Identifier", + "src": "13063:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 922, + "name": "Literal", + "src": "13068:1:1" + } + ], + "id": 923, + "name": "BinaryOperation", + "src": "13063:6:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 924, + "name": "Literal", + "src": "13079:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 925, + "name": "Literal", + "src": "13086:1:1" + } + ], + "id": 926, + "name": "TupleExpression", + "src": "13078:10:1" + } + ], + "id": 927, + "name": "Return", + "src": "13071:17:1" + } + ], + "id": 928, + "name": "IfStatement", + "src": "13059:29:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 929, + "name": "Literal", + "src": "13106:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 912, + "type": "uint256", + "value": "a" + }, + "id": 930, + "name": "Identifier", + "src": "13112:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 931, + "name": "Identifier", + "src": "13116:1:1" + } + ], + "id": 932, + "name": "BinaryOperation", + "src": "13112:5:1" + } + ], + "id": 933, + "name": "TupleExpression", + "src": "13105:13:1" + } + ], + "id": 934, + "name": "Return", + "src": "13098:20:1" + } + ], + "id": 935, + "name": "Block", + "src": "13049:76:1" + } + ], + "id": 936, + "name": "FunctionDefinition", + "src": "12973:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 937, + "name": "StructuredDocumentation", + "src": "13131:224:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 938, + "name": "ElementaryTypeName", + "src": "13373:7:1" + } + ], + "id": 939, + "name": "VariableDeclaration", + "src": "13373:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 940, + "name": "ElementaryTypeName", + "src": "13384:7:1" + } + ], + "id": 941, + "name": "VariableDeclaration", + "src": "13384:9:1" + } + ], + "id": 942, + "name": "ParameterList", + "src": "13372:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 943, + "name": "ElementaryTypeName", + "src": "13418:7:1" + } + ], + "id": 944, + "name": "VariableDeclaration", + "src": "13418:7:1" + } + ], + "id": 945, + "name": "ParameterList", + "src": "13417:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 947 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 961, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 946, + "name": "ElementaryTypeName", + "src": "13437:7:1" + } + ], + "id": 947, + "name": "VariableDeclaration", + "src": "13437:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 948, + "name": "Identifier", + "src": "13449:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 941, + "type": "uint256", + "value": "b" + }, + "id": 949, + "name": "Identifier", + "src": "13453:1:1" + } + ], + "id": 950, + "name": "BinaryOperation", + "src": "13449:5:1" + } + ], + "id": 951, + "name": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 952, + "name": "Identifier", + "src": "13464:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 953, + "name": "Identifier", + "src": "13472:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 954, + "name": "Identifier", + "src": "13477:1:1" + } + ], + "id": 955, + "name": "BinaryOperation", + "src": "13472:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: addition overflow\"", + "value": "SafeMath: addition overflow" + }, + "id": 956, + "name": "Literal", + "src": "13480:29:1" + } + ], + "id": 957, + "name": "FunctionCall", + "src": "13464:46:1" + } + ], + "id": 958, + "name": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "attributes": { + "functionReturnParameters": 945 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 959, + "name": "Identifier", + "src": "13527:1:1" + } + ], + "id": 960, + "name": "Return", + "src": "13520:8:1" + } + ], + "id": 961, + "name": "Block", + "src": "13427:108:1" + } + ], + "id": 962, + "name": "FunctionDefinition", + "src": "13360:175:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 963, + "name": "StructuredDocumentation", + "src": "13541:260:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 964, + "name": "ElementaryTypeName", + "src": "13819:7:1" + } + ], + "id": 965, + "name": "VariableDeclaration", + "src": "13819:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 966, + "name": "ElementaryTypeName", + "src": "13830:7:1" + } + ], + "id": 967, + "name": "VariableDeclaration", + "src": "13830:9:1" + } + ], + "id": 968, + "name": "ParameterList", + "src": "13818:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 969, + "name": "ElementaryTypeName", + "src": "13864:7:1" + } + ], + "id": 970, + "name": "VariableDeclaration", + "src": "13864:7:1" + } + ], + "id": 971, + "name": "ParameterList", + "src": "13863:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 972, + "name": "Identifier", + "src": "13883:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 973, + "name": "Identifier", + "src": "13891:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 974, + "name": "Identifier", + "src": "13896:1:1" + } + ], + "id": 975, + "name": "BinaryOperation", + "src": "13891:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: subtraction overflow\"", + "value": "SafeMath: subtraction overflow" + }, + "id": 976, + "name": "Literal", + "src": "13899:32:1" + } + ], + "id": 977, + "name": "FunctionCall", + "src": "13883:49:1" + } + ], + "id": 978, + "name": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "attributes": { + "functionReturnParameters": 971 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 979, + "name": "Identifier", + "src": "13949:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 980, + "name": "Identifier", + "src": "13953:1:1" + } + ], + "id": 981, + "name": "BinaryOperation", + "src": "13949:5:1" + } + ], + "id": 982, + "name": "Return", + "src": "13942:12:1" + } + ], + "id": 983, + "name": "Block", + "src": "13873:88:1" + } + ], + "id": 984, + "name": "FunctionDefinition", + "src": "13806:155:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 985, + "name": "StructuredDocumentation", + "src": "13967:236:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 986, + "name": "ElementaryTypeName", + "src": "14221:7:1" + } + ], + "id": 987, + "name": "VariableDeclaration", + "src": "14221:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 988, + "name": "ElementaryTypeName", + "src": "14232:7:1" + } + ], + "id": 989, + "name": "VariableDeclaration", + "src": "14232:9:1" + } + ], + "id": 990, + "name": "ParameterList", + "src": "14220:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 991, + "name": "ElementaryTypeName", + "src": "14266:7:1" + } + ], + "id": 992, + "name": "VariableDeclaration", + "src": "14266:7:1" + } + ], + "id": 993, + "name": "ParameterList", + "src": "14265:9:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 994, + "name": "Identifier", + "src": "14289:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 995, + "name": "Literal", + "src": "14294:1:1" + } + ], + "id": 996, + "name": "BinaryOperation", + "src": "14289:6:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 997, + "name": "Literal", + "src": "14304:1:1" + } + ], + "id": 998, + "name": "Return", + "src": "14297:8:1" + } + ], + "id": 999, + "name": "IfStatement", + "src": "14285:20:1" + }, + { + "attributes": { + "assignments": [ + 1001 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 1017, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1000, + "name": "ElementaryTypeName", + "src": "14315:7:1" + } + ], + "id": 1001, + "name": "VariableDeclaration", + "src": "14315:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1002, + "name": "Identifier", + "src": "14327:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1003, + "name": "Identifier", + "src": "14331:1:1" + } + ], + "id": 1004, + "name": "BinaryOperation", + "src": "14327:5:1" + } + ], + "id": 1005, + "name": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1006, + "name": "Identifier", + "src": "14342:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1007, + "name": "Identifier", + "src": "14350:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1008, + "name": "Identifier", + "src": "14354:1:1" + } + ], + "id": 1009, + "name": "BinaryOperation", + "src": "14350:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1010, + "name": "Identifier", + "src": "14359:1:1" + } + ], + "id": 1011, + "name": "BinaryOperation", + "src": "14350:10:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: multiplication overflow\"", + "value": "SafeMath: multiplication overflow" + }, + "id": 1012, + "name": "Literal", + "src": "14362:35:1" + } + ], + "id": 1013, + "name": "FunctionCall", + "src": "14342:56:1" + } + ], + "id": 1014, + "name": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1015, + "name": "Identifier", + "src": "14415:1:1" + } + ], + "id": 1016, + "name": "Return", + "src": "14408:8:1" + } + ], + "id": 1017, + "name": "Block", + "src": "14275:148:1" + } + ], + "id": 1018, + "name": "FunctionDefinition", + "src": "14208:215:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1019, + "name": "StructuredDocumentation", + "src": "14429:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1020, + "name": "ElementaryTypeName", + "src": "14900:7:1" + } + ], + "id": 1021, + "name": "VariableDeclaration", + "src": "14900:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1022, + "name": "ElementaryTypeName", + "src": "14911:7:1" + } + ], + "id": 1023, + "name": "VariableDeclaration", + "src": "14911:9:1" + } + ], + "id": 1024, + "name": "ParameterList", + "src": "14899:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1025, + "name": "ElementaryTypeName", + "src": "14945:7:1" + } + ], + "id": 1026, + "name": "VariableDeclaration", + "src": "14945:7:1" + } + ], + "id": 1027, + "name": "ParameterList", + "src": "14944:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1028, + "name": "Identifier", + "src": "14964:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1029, + "name": "Identifier", + "src": "14972:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1030, + "name": "Literal", + "src": "14976:1:1" + } + ], + "id": 1031, + "name": "BinaryOperation", + "src": "14972:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206469766973696f6e206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: division by zero\"", + "value": "SafeMath: division by zero" + }, + "id": 1032, + "name": "Literal", + "src": "14979:28:1" + } + ], + "id": 1033, + "name": "FunctionCall", + "src": "14964:44:1" + } + ], + "id": 1034, + "name": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "attributes": { + "functionReturnParameters": 1027 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1021, + "type": "uint256", + "value": "a" + }, + "id": 1035, + "name": "Identifier", + "src": "15025:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1036, + "name": "Identifier", + "src": "15029:1:1" + } + ], + "id": 1037, + "name": "BinaryOperation", + "src": "15025:5:1" + } + ], + "id": 1038, + "name": "Return", + "src": "15018:12:1" + } + ], + "id": 1039, + "name": "Block", + "src": "14954:83:1" + } + ], + "id": 1040, + "name": "FunctionDefinition", + "src": "14887:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1041, + "name": "StructuredDocumentation", + "src": "15043:442:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1042, + "name": "ElementaryTypeName", + "src": "15503:7:1" + } + ], + "id": 1043, + "name": "VariableDeclaration", + "src": "15503:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1044, + "name": "ElementaryTypeName", + "src": "15514:7:1" + } + ], + "id": 1045, + "name": "VariableDeclaration", + "src": "15514:9:1" + } + ], + "id": 1046, + "name": "ParameterList", + "src": "15502:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1047, + "name": "ElementaryTypeName", + "src": "15548:7:1" + } + ], + "id": 1048, + "name": "VariableDeclaration", + "src": "15548:7:1" + } + ], + "id": 1049, + "name": "ParameterList", + "src": "15547:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1050, + "name": "Identifier", + "src": "15567:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1051, + "name": "Identifier", + "src": "15575:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1052, + "name": "Literal", + "src": "15579:1:1" + } + ], + "id": 1053, + "name": "BinaryOperation", + "src": "15575:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: modulo by zero\"", + "value": "SafeMath: modulo by zero" + }, + "id": 1054, + "name": "Literal", + "src": "15582:26:1" + } + ], + "id": 1055, + "name": "FunctionCall", + "src": "15567:42:1" + } + ], + "id": 1056, + "name": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "attributes": { + "functionReturnParameters": 1049 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1043, + "type": "uint256", + "value": "a" + }, + "id": 1057, + "name": "Identifier", + "src": "15626:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1058, + "name": "Identifier", + "src": "15630:1:1" + } + ], + "id": 1059, + "name": "BinaryOperation", + "src": "15626:5:1" + } + ], + "id": 1060, + "name": "Return", + "src": "15619:12:1" + } + ], + "id": 1061, + "name": "Block", + "src": "15557:81:1" + } + ], + "id": 1062, + "name": "FunctionDefinition", + "src": "15490:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1063, + "name": "StructuredDocumentation", + "src": "15644:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1064, + "name": "ElementaryTypeName", + "src": "16115:7:1" + } + ], + "id": 1065, + "name": "VariableDeclaration", + "src": "16115:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1066, + "name": "ElementaryTypeName", + "src": "16126:7:1" + } + ], + "id": 1067, + "name": "VariableDeclaration", + "src": "16126:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1086, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1068, + "name": "ElementaryTypeName", + "src": "16137:6:1" + } + ], + "id": 1069, + "name": "VariableDeclaration", + "src": "16137:26:1" + } + ], + "id": 1070, + "name": "ParameterList", + "src": "16114:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1071, + "name": "ElementaryTypeName", + "src": "16188:7:1" + } + ], + "id": 1072, + "name": "VariableDeclaration", + "src": "16188:7:1" + } + ], + "id": 1073, + "name": "ParameterList", + "src": "16187:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1074, + "name": "Identifier", + "src": "16207:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1075, + "name": "Identifier", + "src": "16215:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1076, + "name": "Identifier", + "src": "16220:1:1" + } + ], + "id": 1077, + "name": "BinaryOperation", + "src": "16215:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1069, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1078, + "name": "Identifier", + "src": "16223:12:1" + } + ], + "id": 1079, + "name": "FunctionCall", + "src": "16207:29:1" + } + ], + "id": 1080, + "name": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "attributes": { + "functionReturnParameters": 1073 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1081, + "name": "Identifier", + "src": "16253:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1082, + "name": "Identifier", + "src": "16257:1:1" + } + ], + "id": 1083, + "name": "BinaryOperation", + "src": "16253:5:1" + } + ], + "id": 1084, + "name": "Return", + "src": "16246:12:1" + } + ], + "id": 1085, + "name": "Block", + "src": "16197:68:1" + } + ], + "id": 1086, + "name": "FunctionDefinition", + "src": "16102:163:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1087, + "name": "StructuredDocumentation", + "src": "16271:646:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1088, + "name": "ElementaryTypeName", + "src": "16935:7:1" + } + ], + "id": 1089, + "name": "VariableDeclaration", + "src": "16935:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1090, + "name": "ElementaryTypeName", + "src": "16946:7:1" + } + ], + "id": 1091, + "name": "VariableDeclaration", + "src": "16946:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1110, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1092, + "name": "ElementaryTypeName", + "src": "16957:6:1" + } + ], + "id": 1093, + "name": "VariableDeclaration", + "src": "16957:26:1" + } + ], + "id": 1094, + "name": "ParameterList", + "src": "16934:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1095, + "name": "ElementaryTypeName", + "src": "17008:7:1" + } + ], + "id": 1096, + "name": "VariableDeclaration", + "src": "17008:7:1" + } + ], + "id": 1097, + "name": "ParameterList", + "src": "17007:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1098, + "name": "Identifier", + "src": "17027:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1099, + "name": "Identifier", + "src": "17035:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1100, + "name": "Literal", + "src": "17039:1:1" + } + ], + "id": 1101, + "name": "BinaryOperation", + "src": "17035:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1093, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1102, + "name": "Identifier", + "src": "17042:12:1" + } + ], + "id": 1103, + "name": "FunctionCall", + "src": "17027:28:1" + } + ], + "id": 1104, + "name": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1097 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1089, + "type": "uint256", + "value": "a" + }, + "id": 1105, + "name": "Identifier", + "src": "17072:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1106, + "name": "Identifier", + "src": "17076:1:1" + } + ], + "id": 1107, + "name": "BinaryOperation", + "src": "17072:5:1" + } + ], + "id": 1108, + "name": "Return", + "src": "17065:12:1" + } + ], + "id": 1109, + "name": "Block", + "src": "17017:67:1" + } + ], + "id": 1110, + "name": "FunctionDefinition", + "src": "16922:162:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1111, + "name": "StructuredDocumentation", + "src": "17090:635:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1112, + "name": "ElementaryTypeName", + "src": "17743:7:1" + } + ], + "id": 1113, + "name": "VariableDeclaration", + "src": "17743:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1114, + "name": "ElementaryTypeName", + "src": "17754:7:1" + } + ], + "id": 1115, + "name": "VariableDeclaration", + "src": "17754:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1134, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1116, + "name": "ElementaryTypeName", + "src": "17765:6:1" + } + ], + "id": 1117, + "name": "VariableDeclaration", + "src": "17765:26:1" + } + ], + "id": 1118, + "name": "ParameterList", + "src": "17742:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1119, + "name": "ElementaryTypeName", + "src": "17816:7:1" + } + ], + "id": 1120, + "name": "VariableDeclaration", + "src": "17816:7:1" + } + ], + "id": 1121, + "name": "ParameterList", + "src": "17815:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1122, + "name": "Identifier", + "src": "17835:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1123, + "name": "Identifier", + "src": "17843:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1124, + "name": "Literal", + "src": "17847:1:1" + } + ], + "id": 1125, + "name": "BinaryOperation", + "src": "17843:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1117, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1126, + "name": "Identifier", + "src": "17850:12:1" + } + ], + "id": 1127, + "name": "FunctionCall", + "src": "17835:28:1" + } + ], + "id": 1128, + "name": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1121 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "uint256", + "value": "a" + }, + "id": 1129, + "name": "Identifier", + "src": "17880:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1130, + "name": "Identifier", + "src": "17884:1:1" + } + ], + "id": 1131, + "name": "BinaryOperation", + "src": "17880:5:1" + } + ], + "id": 1132, + "name": "Return", + "src": "17873:12:1" + } + ], + "id": 1133, + "name": "Block", + "src": "17825:67:1" + } + ], + "id": 1134, + "name": "FunctionDefinition", + "src": "17730:162:1" + } + ], + "id": 1135, + "name": "ContractDefinition", + "src": "11300:6594:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 1136, + "name": "PragmaDirective", + "src": "17947:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Collection of functions related to the address type" + }, + "id": 1137, + "name": "StructuredDocumentation", + "src": "17980:67:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isContract", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1138, + "name": "StructuredDocumentation", + "src": "18070:565:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "account", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1139, + "name": "ElementaryTypeName", + "src": "18660:7:1" + } + ], + "id": 1140, + "name": "VariableDeclaration", + "src": "18660:15:1" + } + ], + "id": 1141, + "name": "ParameterList", + "src": "18659:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1142, + "name": "ElementaryTypeName", + "src": "18700:4:1" + } + ], + "id": 1143, + "name": "VariableDeclaration", + "src": "18700:4:1" + } + ], + "id": 1144, + "name": "ParameterList", + "src": "18699:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1146 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "size", + "scope": 1153, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1145, + "name": "ElementaryTypeName", + "src": "18903:7:1" + } + ], + "id": 1146, + "name": "VariableDeclaration", + "src": "18903:12:1" + } + ], + "id": 1147, + "name": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "operations": "{ size := extcodesize(account) }" + }, + "children": [], + "id": 1148, + "name": "InlineAssembly", + "src": "18981:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1144 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1146, + "type": "uint256", + "value": "size" + }, + "id": 1149, + "name": "Identifier", + "src": "19038:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1150, + "name": "Literal", + "src": "19045:1:1" + } + ], + "id": 1151, + "name": "BinaryOperation", + "src": "19038:8:1" + } + ], + "id": 1152, + "name": "Return", + "src": "19031:15:1" + } + ], + "id": 1153, + "name": "Block", + "src": "18706:347:1" + } + ], + "id": 1154, + "name": "FunctionDefinition", + "src": "18640:413:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sendValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1155, + "name": "StructuredDocumentation", + "src": "19059:906:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "recipient", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 1156, + "name": "ElementaryTypeName", + "src": "19989:15:1" + } + ], + "id": 1157, + "name": "VariableDeclaration", + "src": "19989:25:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "amount", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1158, + "name": "ElementaryTypeName", + "src": "20016:7:1" + } + ], + "id": 1159, + "name": "VariableDeclaration", + "src": "20016:14:1" + } + ], + "id": 1160, + "name": "ParameterList", + "src": "19988:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1161, + "name": "ParameterList", + "src": "20041:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1162, + "name": "Identifier", + "src": "20051:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1163, + "name": "ElementaryTypeName", + "src": "20059:7:1" + } + ], + "id": 1164, + "name": "ElementaryTypeNameExpression", + "src": "20059:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1165, + "name": "Identifier", + "src": "20067:4:1" + } + ], + "id": 1166, + "name": "FunctionCall", + "src": "20059:13:1" + } + ], + "id": 1167, + "name": "MemberAccess", + "src": "20059:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1168, + "name": "Identifier", + "src": "20084:6:1" + } + ], + "id": 1169, + "name": "BinaryOperation", + "src": "20059:31:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance\"", + "value": "Address: insufficient balance" + }, + "id": 1170, + "name": "Literal", + "src": "20092:31:1" + } + ], + "id": 1171, + "name": "FunctionCall", + "src": "20051:73:1" + } + ], + "id": 1172, + "name": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "attributes": { + "assignments": [ + 1174, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1187, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1173, + "name": "ElementaryTypeName", + "src": "20213:4:1" + } + ], + "id": 1174, + "name": "VariableDeclaration", + "src": "20213:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1157, + "type": "address payable", + "value": "recipient" + }, + "id": 1175, + "name": "Identifier", + "src": "20231:9:1" + } + ], + "id": 1176, + "name": "MemberAccess", + "src": "20231:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1177, + "name": "Identifier", + "src": "20254:6:1" + } + ], + "id": 1178, + "name": "FunctionCallOptions", + "src": "20231:31:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 1179, + "name": "Literal", + "src": "20263:2:1" + } + ], + "id": 1180, + "name": "FunctionCall", + "src": "20231:35:1" + } + ], + "id": 1181, + "name": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1182, + "name": "Identifier", + "src": "20276:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1174, + "type": "bool", + "value": "success" + }, + "id": 1183, + "name": "Identifier", + "src": "20284:7:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: unable to send value, recipient may have reverted\"", + "value": "Address: unable to send value, recipient may have reverted" + }, + "id": 1184, + "name": "Literal", + "src": "20293:60:1" + } + ], + "id": 1185, + "name": "FunctionCall", + "src": "20276:78:1" + } + ], + "id": 1186, + "name": "ExpressionStatement", + "src": "20276:78:1" + } + ], + "id": 1187, + "name": "Block", + "src": "20041:320:1" + } + ], + "id": 1188, + "name": "FunctionDefinition", + "src": "19970:391:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1189, + "name": "StructuredDocumentation", + "src": "20367:730:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1205, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1190, + "name": "ElementaryTypeName", + "src": "21124:7:1" + } + ], + "id": 1191, + "name": "VariableDeclaration", + "src": "21124:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1192, + "name": "ElementaryTypeName", + "src": "21140:5:1" + } + ], + "id": 1193, + "name": "VariableDeclaration", + "src": "21140:17:1" + } + ], + "id": 1194, + "name": "ParameterList", + "src": "21123:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1195, + "name": "ElementaryTypeName", + "src": "21177:5:1" + } + ], + "id": 1196, + "name": "VariableDeclaration", + "src": "21177:12:1" + } + ], + "id": 1197, + "name": "ParameterList", + "src": "21176:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1197 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionCall" + }, + "id": 1198, + "name": "Identifier", + "src": "21206:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1191, + "type": "address", + "value": "target" + }, + "id": 1199, + "name": "Identifier", + "src": "21219:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1193, + "type": "bytes memory", + "value": "data" + }, + "id": 1200, + "name": "Identifier", + "src": "21227:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call failed\"", + "value": "Address: low-level call failed" + }, + "id": 1201, + "name": "Literal", + "src": "21233:32:1" + } + ], + "id": 1202, + "name": "FunctionCall", + "src": "21206:60:1" + } + ], + "id": 1203, + "name": "Return", + "src": "21199:67:1" + } + ], + "id": 1204, + "name": "Block", + "src": "21191:82:1" + } + ], + "id": 1205, + "name": "FunctionDefinition", + "src": "21102:171:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1206, + "name": "StructuredDocumentation", + "src": "21279:211:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1225, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1207, + "name": "ElementaryTypeName", + "src": "21517:7:1" + } + ], + "id": 1208, + "name": "VariableDeclaration", + "src": "21517:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1209, + "name": "ElementaryTypeName", + "src": "21533:5:1" + } + ], + "id": 1210, + "name": "VariableDeclaration", + "src": "21533:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1211, + "name": "ElementaryTypeName", + "src": "21552:6:1" + } + ], + "id": 1212, + "name": "VariableDeclaration", + "src": "21552:26:1" + } + ], + "id": 1213, + "name": "ParameterList", + "src": "21516:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1214, + "name": "ElementaryTypeName", + "src": "21598:5:1" + } + ], + "id": 1215, + "name": "VariableDeclaration", + "src": "21598:12:1" + } + ], + "id": 1216, + "name": "ParameterList", + "src": "21597:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1216 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1217, + "name": "Identifier", + "src": "21629:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1208, + "type": "address", + "value": "target" + }, + "id": 1218, + "name": "Identifier", + "src": "21651:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1210, + "type": "bytes memory", + "value": "data" + }, + "id": 1219, + "name": "Identifier", + "src": "21659:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1220, + "name": "Literal", + "src": "21665:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1212, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1221, + "name": "Identifier", + "src": "21668:12:1" + } + ], + "id": 1222, + "name": "FunctionCall", + "src": "21629:52:1" + } + ], + "id": 1223, + "name": "Return", + "src": "21622:59:1" + } + ], + "id": 1224, + "name": "Block", + "src": "21612:76:1" + } + ], + "id": 1225, + "name": "FunctionDefinition", + "src": "21495:193:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1226, + "name": "StructuredDocumentation", + "src": "21694:351:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1227, + "name": "ElementaryTypeName", + "src": "22081:7:1" + } + ], + "id": 1228, + "name": "VariableDeclaration", + "src": "22081:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1229, + "name": "ElementaryTypeName", + "src": "22097:5:1" + } + ], + "id": 1230, + "name": "VariableDeclaration", + "src": "22097:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1231, + "name": "ElementaryTypeName", + "src": "22116:7:1" + } + ], + "id": 1232, + "name": "VariableDeclaration", + "src": "22116:13:1" + } + ], + "id": 1233, + "name": "ParameterList", + "src": "22080:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1234, + "name": "ElementaryTypeName", + "src": "22149:5:1" + } + ], + "id": 1235, + "name": "VariableDeclaration", + "src": "22149:12:1" + } + ], + "id": 1236, + "name": "ParameterList", + "src": "22148:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1236 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1237, + "name": "Identifier", + "src": "22180:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1228, + "type": "address", + "value": "target" + }, + "id": 1238, + "name": "Identifier", + "src": "22202:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1230, + "type": "bytes memory", + "value": "data" + }, + "id": 1239, + "name": "Identifier", + "src": "22210:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1232, + "type": "uint256", + "value": "value" + }, + "id": 1240, + "name": "Identifier", + "src": "22216:5:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call with value failed\"", + "value": "Address: low-level call with value failed" + }, + "id": 1241, + "name": "Literal", + "src": "22223:43:1" + } + ], + "id": 1242, + "name": "FunctionCall", + "src": "22180:87:1" + } + ], + "id": 1243, + "name": "Return", + "src": "22173:94:1" + } + ], + "id": 1244, + "name": "Block", + "src": "22163:111:1" + } + ], + "id": 1245, + "name": "FunctionDefinition", + "src": "22050:224:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1246, + "name": "StructuredDocumentation", + "src": "22280:237:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1247, + "name": "ElementaryTypeName", + "src": "22553:7:1" + } + ], + "id": 1248, + "name": "VariableDeclaration", + "src": "22553:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1249, + "name": "ElementaryTypeName", + "src": "22569:5:1" + } + ], + "id": 1250, + "name": "VariableDeclaration", + "src": "22569:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1251, + "name": "ElementaryTypeName", + "src": "22588:7:1" + } + ], + "id": 1252, + "name": "VariableDeclaration", + "src": "22588:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1253, + "name": "ElementaryTypeName", + "src": "22603:6:1" + } + ], + "id": 1254, + "name": "VariableDeclaration", + "src": "22603:26:1" + } + ], + "id": 1255, + "name": "ParameterList", + "src": "22552:78:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1256, + "name": "ElementaryTypeName", + "src": "22649:5:1" + } + ], + "id": 1257, + "name": "VariableDeclaration", + "src": "22649:12:1" + } + ], + "id": 1258, + "name": "ParameterList", + "src": "22648:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1259, + "name": "Identifier", + "src": "22673:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1260, + "name": "ElementaryTypeName", + "src": "22681:7:1" + } + ], + "id": 1261, + "name": "ElementaryTypeNameExpression", + "src": "22681:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1262, + "name": "Identifier", + "src": "22689:4:1" + } + ], + "id": 1263, + "name": "FunctionCall", + "src": "22681:13:1" + } + ], + "id": 1264, + "name": "MemberAccess", + "src": "22681:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1265, + "name": "Identifier", + "src": "22706:5:1" + } + ], + "id": 1266, + "name": "BinaryOperation", + "src": "22681:30:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance for call\"", + "value": "Address: insufficient balance for call" + }, + "id": 1267, + "name": "Literal", + "src": "22713:40:1" + } + ], + "id": 1268, + "name": "FunctionCall", + "src": "22673:81:1" + } + ], + "id": 1269, + "name": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1270, + "name": "Identifier", + "src": "22764:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1271, + "name": "Identifier", + "src": "22772:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1272, + "name": "Identifier", + "src": "22783:6:1" + } + ], + "id": 1273, + "name": "FunctionCall", + "src": "22772:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: call to non-contract\"", + "value": "Address: call to non-contract" + }, + "id": 1274, + "name": "Literal", + "src": "22792:31:1" + } + ], + "id": 1275, + "name": "FunctionCall", + "src": "22764:60:1" + } + ], + "id": 1276, + "name": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "attributes": { + "assignments": [ + 1278, + 1280 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1294, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1277, + "name": "ElementaryTypeName", + "src": "22895:4:1" + } + ], + "id": 1278, + "name": "VariableDeclaration", + "src": "22895:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1279, + "name": "ElementaryTypeName", + "src": "22909:5:1" + } + ], + "id": 1280, + "name": "VariableDeclaration", + "src": "22909:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1281, + "name": "Identifier", + "src": "22936:6:1" + } + ], + "id": 1282, + "name": "MemberAccess", + "src": "22936:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1283, + "name": "Identifier", + "src": "22956:5:1" + } + ], + "id": 1284, + "name": "FunctionCallOptions", + "src": "22936:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1250, + "type": "bytes memory", + "value": "data" + }, + "id": 1285, + "name": "Identifier", + "src": "22964:4:1" + } + ], + "id": 1286, + "name": "FunctionCall", + "src": "22936:33:1" + } + ], + "id": 1287, + "name": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "attributes": { + "functionReturnParameters": 1258 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1288, + "name": "Identifier", + "src": "22986:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1278, + "type": "bool", + "value": "success" + }, + "id": 1289, + "name": "Identifier", + "src": "23004:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1280, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1290, + "name": "Identifier", + "src": "23013:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1254, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1291, + "name": "Identifier", + "src": "23025:12:1" + } + ], + "id": 1292, + "name": "FunctionCall", + "src": "22986:52:1" + } + ], + "id": 1293, + "name": "Return", + "src": "22979:59:1" + } + ], + "id": 1294, + "name": "Block", + "src": "22663:382:1" + } + ], + "id": 1295, + "name": "FunctionDefinition", + "src": "22522:523:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1296, + "name": "StructuredDocumentation", + "src": "23051:166:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1312, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1297, + "name": "ElementaryTypeName", + "src": "23250:7:1" + } + ], + "id": 1298, + "name": "VariableDeclaration", + "src": "23250:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1299, + "name": "ElementaryTypeName", + "src": "23266:5:1" + } + ], + "id": 1300, + "name": "VariableDeclaration", + "src": "23266:17:1" + } + ], + "id": 1301, + "name": "ParameterList", + "src": "23249:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1302, + "name": "ElementaryTypeName", + "src": "23308:5:1" + } + ], + "id": 1303, + "name": "VariableDeclaration", + "src": "23308:12:1" + } + ], + "id": 1304, + "name": "ParameterList", + "src": "23307:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1304 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "type": "function (address,bytes memory,string memory) view returns (bytes memory)", + "value": "functionStaticCall" + }, + "id": 1305, + "name": "Identifier", + "src": "23339:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1298, + "type": "address", + "value": "target" + }, + "id": 1306, + "name": "Identifier", + "src": "23358:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1300, + "type": "bytes memory", + "value": "data" + }, + "id": 1307, + "name": "Identifier", + "src": "23366:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level static call failed\"", + "value": "Address: low-level static call failed" + }, + "id": 1308, + "name": "Literal", + "src": "23372:39:1" + } + ], + "id": 1309, + "name": "FunctionCall", + "src": "23339:73:1" + } + ], + "id": 1310, + "name": "Return", + "src": "23332:80:1" + } + ], + "id": 1311, + "name": "Block", + "src": "23322:97:1" + } + ], + "id": 1312, + "name": "FunctionDefinition", + "src": "23222:197:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1313, + "name": "StructuredDocumentation", + "src": "23425:173:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1347, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1314, + "name": "ElementaryTypeName", + "src": "23631:7:1" + } + ], + "id": 1315, + "name": "VariableDeclaration", + "src": "23631:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1316, + "name": "ElementaryTypeName", + "src": "23647:5:1" + } + ], + "id": 1317, + "name": "VariableDeclaration", + "src": "23647:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1318, + "name": "ElementaryTypeName", + "src": "23666:6:1" + } + ], + "id": 1319, + "name": "VariableDeclaration", + "src": "23666:26:1" + } + ], + "id": 1320, + "name": "ParameterList", + "src": "23630:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1321, + "name": "ElementaryTypeName", + "src": "23717:5:1" + } + ], + "id": 1322, + "name": "VariableDeclaration", + "src": "23717:12:1" + } + ], + "id": 1323, + "name": "ParameterList", + "src": "23716:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1324, + "name": "Identifier", + "src": "23741:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1325, + "name": "Identifier", + "src": "23749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1326, + "name": "Identifier", + "src": "23760:6:1" + } + ], + "id": 1327, + "name": "FunctionCall", + "src": "23749:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: static call to non-contract\"", + "value": "Address: static call to non-contract" + }, + "id": 1328, + "name": "Literal", + "src": "23769:38:1" + } + ], + "id": 1329, + "name": "FunctionCall", + "src": "23741:67:1" + } + ], + "id": 1330, + "name": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "attributes": { + "assignments": [ + 1332, + 1334 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1346, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1331, + "name": "ElementaryTypeName", + "src": "23879:4:1" + } + ], + "id": 1332, + "name": "VariableDeclaration", + "src": "23879:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1346, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1333, + "name": "ElementaryTypeName", + "src": "23893:5:1" + } + ], + "id": 1334, + "name": "VariableDeclaration", + "src": "23893:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "staticcall", + "type": "function (bytes memory) view returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1335, + "name": "Identifier", + "src": "23920:6:1" + } + ], + "id": 1336, + "name": "MemberAccess", + "src": "23920:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1317, + "type": "bytes memory", + "value": "data" + }, + "id": 1337, + "name": "Identifier", + "src": "23938:4:1" + } + ], + "id": 1338, + "name": "FunctionCall", + "src": "23920:23:1" + } + ], + "id": 1339, + "name": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "attributes": { + "functionReturnParameters": 1323 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1340, + "name": "Identifier", + "src": "23960:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1332, + "type": "bool", + "value": "success" + }, + "id": 1341, + "name": "Identifier", + "src": "23978:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1334, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1342, + "name": "Identifier", + "src": "23987:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1319, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1343, + "name": "Identifier", + "src": "23999:12:1" + } + ], + "id": 1344, + "name": "FunctionCall", + "src": "23960:52:1" + } + ], + "id": 1345, + "name": "Return", + "src": "23953:59:1" + } + ], + "id": 1346, + "name": "Block", + "src": "23731:288:1" + } + ], + "id": 1347, + "name": "FunctionDefinition", + "src": "23603:416:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1348, + "name": "StructuredDocumentation", + "src": "24025:168:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1364, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1349, + "name": "ElementaryTypeName", + "src": "24228:7:1" + } + ], + "id": 1350, + "name": "VariableDeclaration", + "src": "24228:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1351, + "name": "ElementaryTypeName", + "src": "24244:5:1" + } + ], + "id": 1352, + "name": "VariableDeclaration", + "src": "24244:17:1" + } + ], + "id": 1353, + "name": "ParameterList", + "src": "24227:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1354, + "name": "ElementaryTypeName", + "src": "24281:5:1" + } + ], + "id": 1355, + "name": "VariableDeclaration", + "src": "24281:12:1" + } + ], + "id": 1356, + "name": "ParameterList", + "src": "24280:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1356 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionDelegateCall" + }, + "id": 1357, + "name": "Identifier", + "src": "24312:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1350, + "type": "address", + "value": "target" + }, + "id": 1358, + "name": "Identifier", + "src": "24333:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1352, + "type": "bytes memory", + "value": "data" + }, + "id": 1359, + "name": "Identifier", + "src": "24341:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level delegate call failed\"", + "value": "Address: low-level delegate call failed" + }, + "id": 1360, + "name": "Literal", + "src": "24347:41:1" + } + ], + "id": 1361, + "name": "FunctionCall", + "src": "24312:77:1" + } + ], + "id": 1362, + "name": "Return", + "src": "24305:84:1" + } + ], + "id": 1363, + "name": "Block", + "src": "24295:101:1" + } + ], + "id": 1364, + "name": "FunctionDefinition", + "src": "24198:198:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1365, + "name": "StructuredDocumentation", + "src": "24402:175:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1399, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1366, + "name": "ElementaryTypeName", + "src": "24612:7:1" + } + ], + "id": 1367, + "name": "VariableDeclaration", + "src": "24612:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1368, + "name": "ElementaryTypeName", + "src": "24628:5:1" + } + ], + "id": 1369, + "name": "VariableDeclaration", + "src": "24628:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1370, + "name": "ElementaryTypeName", + "src": "24647:6:1" + } + ], + "id": 1371, + "name": "VariableDeclaration", + "src": "24647:26:1" + } + ], + "id": 1372, + "name": "ParameterList", + "src": "24611:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1373, + "name": "ElementaryTypeName", + "src": "24693:5:1" + } + ], + "id": 1374, + "name": "VariableDeclaration", + "src": "24693:12:1" + } + ], + "id": 1375, + "name": "ParameterList", + "src": "24692:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1376, + "name": "Identifier", + "src": "24717:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1377, + "name": "Identifier", + "src": "24725:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1378, + "name": "Identifier", + "src": "24736:6:1" + } + ], + "id": 1379, + "name": "FunctionCall", + "src": "24725:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: delegate call to non-contract\"", + "value": "Address: delegate call to non-contract" + }, + "id": 1380, + "name": "Literal", + "src": "24745:40:1" + } + ], + "id": 1381, + "name": "FunctionCall", + "src": "24717:69:1" + } + ], + "id": 1382, + "name": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "attributes": { + "assignments": [ + 1384, + 1386 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1398, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1383, + "name": "ElementaryTypeName", + "src": "24857:4:1" + } + ], + "id": 1384, + "name": "VariableDeclaration", + "src": "24857:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1398, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1385, + "name": "ElementaryTypeName", + "src": "24871:5:1" + } + ], + "id": 1386, + "name": "VariableDeclaration", + "src": "24871:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "delegatecall", + "type": "function (bytes memory) returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1387, + "name": "Identifier", + "src": "24898:6:1" + } + ], + "id": 1388, + "name": "MemberAccess", + "src": "24898:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1369, + "type": "bytes memory", + "value": "data" + }, + "id": 1389, + "name": "Identifier", + "src": "24918:4:1" + } + ], + "id": 1390, + "name": "FunctionCall", + "src": "24898:25:1" + } + ], + "id": 1391, + "name": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "attributes": { + "functionReturnParameters": 1375 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1392, + "name": "Identifier", + "src": "24940:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1384, + "type": "bool", + "value": "success" + }, + "id": 1393, + "name": "Identifier", + "src": "24958:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1386, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1394, + "name": "Identifier", + "src": "24967:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1371, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1395, + "name": "Identifier", + "src": "24979:12:1" + } + ], + "id": 1396, + "name": "FunctionCall", + "src": "24940:52:1" + } + ], + "id": 1397, + "name": "Return", + "src": "24933:59:1" + } + ], + "id": 1398, + "name": "Block", + "src": "24707:292:1" + } + ], + "id": 1399, + "name": "FunctionDefinition", + "src": "24582:417:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_verifyCallResult", + "scope": 1430, + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1429, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1400, + "name": "ElementaryTypeName", + "src": "25032:4:1" + } + ], + "id": 1401, + "name": "VariableDeclaration", + "src": "25032:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1402, + "name": "ElementaryTypeName", + "src": "25046:5:1" + } + ], + "id": 1403, + "name": "VariableDeclaration", + "src": "25046:23:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1404, + "name": "ElementaryTypeName", + "src": "25071:6:1" + } + ], + "id": 1405, + "name": "VariableDeclaration", + "src": "25071:26:1" + } + ], + "id": 1406, + "name": "ParameterList", + "src": "25031:67:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1407, + "name": "ElementaryTypeName", + "src": "25120:5:1" + } + ], + "id": 1408, + "name": "VariableDeclaration", + "src": "25120:12:1" + } + ], + "id": 1409, + "name": "ParameterList", + "src": "25119:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1401, + "type": "bool", + "value": "success" + }, + "id": 1410, + "name": "Identifier", + "src": "25148:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1409 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1411, + "name": "Identifier", + "src": "25178:10:1" + } + ], + "id": 1412, + "name": "Return", + "src": "25171:17:1" + } + ], + "id": 1413, + "name": "Block", + "src": "25157:42:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1414, + "name": "Identifier", + "src": "25289:10:1" + } + ], + "id": 1415, + "name": "MemberAccess", + "src": "25289:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1416, + "name": "Literal", + "src": "25309:1:1" + } + ], + "id": 1417, + "name": "BinaryOperation", + "src": "25289:21:1" + }, + { + "children": [ + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "operations": "{\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n}" + }, + "children": [], + "id": 1418, + "name": "InlineAssembly", + "src": "25487:154:1" + } + ], + "id": 1419, + "name": "Block", + "src": "25312:343:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "type": "function (string memory) pure", + "value": "revert" + }, + "id": 1420, + "name": "Identifier", + "src": "25679:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1405, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1421, + "name": "Identifier", + "src": "25686:12:1" + } + ], + "id": 1422, + "name": "FunctionCall", + "src": "25679:20:1" + } + ], + "id": 1423, + "name": "ExpressionStatement", + "src": "25679:20:1" + } + ], + "id": 1424, + "name": "Block", + "src": "25661:53:1" + } + ], + "id": 1425, + "name": "IfStatement", + "src": "25285:429:1" + } + ], + "id": 1426, + "name": "Block", + "src": "25205:519:1" + } + ], + "id": 1427, + "name": "IfStatement", + "src": "25144:580:1" + } + ], + "id": 1428, + "name": "Block", + "src": "25134:596:1" + } + ], + "id": 1429, + "name": "FunctionDefinition", + "src": "25005:725:1" + } + ], + "id": 1430, + "name": "ContractDefinition", + "src": "18048:7684:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1431, + "name": "PragmaDirective", + "src": "25791:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "id": 1432, + "name": "StructuredDocumentation", + "src": "25824:686:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Set", + "name": "Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_values", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "bytes32[]" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1433, + "name": "ElementaryTypeName", + "src": "27033:7:1" + } + ], + "id": 1434, + "name": "ArrayTypeName", + "src": "27033:9:1" + } + ], + "id": 1435, + "name": "VariableDeclaration", + "src": "27033:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1436, + "name": "ElementaryTypeName", + "src": "27193:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1437, + "name": "ElementaryTypeName", + "src": "27204:7:1" + } + ], + "id": 1438, + "name": "Mapping", + "src": "27184:28:1" + } + ], + "id": 1439, + "name": "VariableDeclaration", + "src": "27184:37:1" + } + ], + "id": 1440, + "name": "StructDefinition", + "src": "26979:249:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1441, + "name": "StructuredDocumentation", + "src": "27234:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1481, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1442, + "name": "UserDefinedTypeName", + "src": "27412:3:1" + } + ], + "id": 1443, + "name": "VariableDeclaration", + "src": "27412:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1444, + "name": "ElementaryTypeName", + "src": "27429:7:1" + } + ], + "id": 1445, + "name": "VariableDeclaration", + "src": "27429:13:1" + } + ], + "id": 1446, + "name": "ParameterList", + "src": "27411:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1447, + "name": "ElementaryTypeName", + "src": "27461:4:1" + } + ], + "id": 1448, + "name": "VariableDeclaration", + "src": "27461:4:1" + } + ], + "id": 1449, + "name": "ParameterList", + "src": "27460:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1450, + "name": "Identifier", + "src": "27482:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1451, + "name": "Identifier", + "src": "27492:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1452, + "name": "Identifier", + "src": "27497:5:1" + } + ], + "id": 1453, + "name": "FunctionCall", + "src": "27482:21:1" + } + ], + "id": 1454, + "name": "UnaryOperation", + "src": "27481:22:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1455, + "name": "Identifier", + "src": "27519:3:1" + } + ], + "id": 1458, + "name": "MemberAccess", + "src": "27519:11:1" + } + ], + "id": 1459, + "name": "MemberAccess", + "src": "27519:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1460, + "name": "Identifier", + "src": "27536:5:1" + } + ], + "id": 1461, + "name": "FunctionCall", + "src": "27519:23:1" + } + ], + "id": 1462, + "name": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1463, + "name": "Identifier", + "src": "27677:3:1" + } + ], + "id": 1466, + "name": "MemberAccess", + "src": "27677:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1465, + "name": "Identifier", + "src": "27690:5:1" + } + ], + "id": 1467, + "name": "IndexAccess", + "src": "27677:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1468, + "name": "Identifier", + "src": "27699:3:1" + } + ], + "id": 1469, + "name": "MemberAccess", + "src": "27699:11:1" + } + ], + "id": 1470, + "name": "MemberAccess", + "src": "27699:18:1" + } + ], + "id": 1471, + "name": "Assignment", + "src": "27677:40:1" + } + ], + "id": 1472, + "name": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1473, + "name": "Literal", + "src": "27738:4:1" + } + ], + "id": 1474, + "name": "Return", + "src": "27731:11:1" + } + ], + "id": 1475, + "name": "Block", + "src": "27505:248:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1476, + "name": "Literal", + "src": "27780:5:1" + } + ], + "id": 1477, + "name": "Return", + "src": "27773:12:1" + } + ], + "id": 1478, + "name": "Block", + "src": "27759:37:1" + } + ], + "id": 1479, + "name": "IfStatement", + "src": "27477:319:1" + } + ], + "id": 1480, + "name": "Block", + "src": "27467:335:1" + } + ], + "id": 1481, + "name": "FunctionDefinition", + "src": "27398:404:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1482, + "name": "StructuredDocumentation", + "src": "27808:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1561, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1483, + "name": "UserDefinedTypeName", + "src": "27987:3:1" + } + ], + "id": 1484, + "name": "VariableDeclaration", + "src": "27987:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1485, + "name": "ElementaryTypeName", + "src": "28004:7:1" + } + ], + "id": 1486, + "name": "VariableDeclaration", + "src": "28004:13:1" + } + ], + "id": 1487, + "name": "ParameterList", + "src": "27986:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1488, + "name": "ElementaryTypeName", + "src": "28036:4:1" + } + ], + "id": 1489, + "name": "VariableDeclaration", + "src": "28036:4:1" + } + ], + "id": 1490, + "name": "ParameterList", + "src": "28035:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1492 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "valueIndex", + "scope": 1560, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1491, + "name": "ElementaryTypeName", + "src": "28152:7:1" + } + ], + "id": 1492, + "name": "VariableDeclaration", + "src": "28152:18:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1493, + "name": "Identifier", + "src": "28173:3:1" + } + ], + "id": 1494, + "name": "MemberAccess", + "src": "28173:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1495, + "name": "Identifier", + "src": "28186:5:1" + } + ], + "id": 1496, + "name": "IndexAccess", + "src": "28173:19:1" + } + ], + "id": 1497, + "name": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1498, + "name": "Identifier", + "src": "28207:10:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1499, + "name": "Literal", + "src": "28221:1:1" + } + ], + "id": 1500, + "name": "BinaryOperation", + "src": "28207:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1501, + "name": "ElementaryTypeName", + "src": "28564:7:1" + } + ], + "id": 1502, + "name": "VariableDeclaration", + "src": "28564:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1503, + "name": "Identifier", + "src": "28588:10:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1504, + "name": "Literal", + "src": "28601:1:1" + } + ], + "id": 1505, + "name": "BinaryOperation", + "src": "28588:14:1" + } + ], + "id": 1506, + "name": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "attributes": { + "assignments": [ + 1508 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1507, + "name": "ElementaryTypeName", + "src": "28616:7:1" + } + ], + "id": 1508, + "name": "VariableDeclaration", + "src": "28616:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1509, + "name": "Identifier", + "src": "28636:3:1" + } + ], + "id": 1510, + "name": "MemberAccess", + "src": "28636:11:1" + } + ], + "id": 1511, + "name": "MemberAccess", + "src": "28636:18:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1512, + "name": "Literal", + "src": "28657:1:1" + } + ], + "id": 1513, + "name": "BinaryOperation", + "src": "28636:22:1" + } + ], + "id": 1514, + "name": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "attributes": { + "assignments": [ + 1516 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastvalue", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1515, + "name": "ElementaryTypeName", + "src": "28898:7:1" + } + ], + "id": 1516, + "name": "VariableDeclaration", + "src": "28898:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1517, + "name": "Identifier", + "src": "28918:3:1" + } + ], + "id": 1518, + "name": "MemberAccess", + "src": "28918:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1508, + "type": "uint256", + "value": "lastIndex" + }, + "id": 1519, + "name": "Identifier", + "src": "28930:9:1" + } + ], + "id": 1520, + "name": "IndexAccess", + "src": "28918:22:1" + } + ], + "id": 1521, + "name": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1522, + "name": "Identifier", + "src": "29032:3:1" + } + ], + "id": 1525, + "name": "MemberAccess", + "src": "29032:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1524, + "name": "Identifier", + "src": "29044:13:1" + } + ], + "id": 1526, + "name": "IndexAccess", + "src": "29032:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1527, + "name": "Identifier", + "src": "29061:9:1" + } + ], + "id": 1528, + "name": "Assignment", + "src": "29032:38:1" + } + ], + "id": 1529, + "name": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1530, + "name": "Identifier", + "src": "29136:3:1" + } + ], + "id": 1533, + "name": "MemberAccess", + "src": "29136:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1532, + "name": "Identifier", + "src": "29149:9:1" + } + ], + "id": 1534, + "name": "IndexAccess", + "src": "29136:23:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1535, + "name": "Identifier", + "src": "29162:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1536, + "name": "Literal", + "src": "29178:1:1" + } + ], + "id": 1537, + "name": "BinaryOperation", + "src": "29162:17:1" + } + ], + "id": 1538, + "name": "Assignment", + "src": "29136:43:1" + } + ], + "id": 1539, + "name": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1540, + "name": "Identifier", + "src": "29285:3:1" + } + ], + "id": 1543, + "name": "MemberAccess", + "src": "29285:11:1" + } + ], + "id": 1544, + "name": "MemberAccess", + "src": "29285:15:1" + } + ], + "id": 1545, + "name": "FunctionCall", + "src": "29285:17:1" + } + ], + "id": 1546, + "name": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1547, + "name": "Identifier", + "src": "29377:3:1" + } + ], + "id": 1548, + "name": "MemberAccess", + "src": "29377:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1549, + "name": "Identifier", + "src": "29390:5:1" + } + ], + "id": 1550, + "name": "IndexAccess", + "src": "29377:19:1" + } + ], + "id": 1551, + "name": "UnaryOperation", + "src": "29370:26:1" + } + ], + "id": 1552, + "name": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1553, + "name": "Literal", + "src": "29418:4:1" + } + ], + "id": 1554, + "name": "Return", + "src": "29411:11:1" + } + ], + "id": 1555, + "name": "Block", + "src": "28224:1209:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1556, + "name": "Literal", + "src": "29460:5:1" + } + ], + "id": 1557, + "name": "Return", + "src": "29453:12:1" + } + ], + "id": 1558, + "name": "Block", + "src": "29439:37:1" + } + ], + "id": 1559, + "name": "IfStatement", + "src": "28203:1273:1" + } + ], + "id": 1560, + "name": "Block", + "src": "28042:1440:1" + } + ], + "id": 1561, + "name": "FunctionDefinition", + "src": "27970:1512:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1562, + "name": "StructuredDocumentation", + "src": "29488:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1579, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1563, + "name": "UserDefinedTypeName", + "src": "29582:3:1" + } + ], + "id": 1564, + "name": "VariableDeclaration", + "src": "29582:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1565, + "name": "ElementaryTypeName", + "src": "29599:7:1" + } + ], + "id": 1566, + "name": "VariableDeclaration", + "src": "29599:13:1" + } + ], + "id": 1567, + "name": "ParameterList", + "src": "29581:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1568, + "name": "ElementaryTypeName", + "src": "29636:4:1" + } + ], + "id": 1569, + "name": "VariableDeclaration", + "src": "29636:4:1" + } + ], + "id": 1570, + "name": "ParameterList", + "src": "29635:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1570 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1564, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1571, + "name": "Identifier", + "src": "29659:3:1" + } + ], + "id": 1572, + "name": "MemberAccess", + "src": "29659:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1566, + "type": "bytes32", + "value": "value" + }, + "id": 1573, + "name": "Identifier", + "src": "29672:5:1" + } + ], + "id": 1574, + "name": "IndexAccess", + "src": "29659:19:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1575, + "name": "Literal", + "src": "29682:1:1" + } + ], + "id": 1576, + "name": "BinaryOperation", + "src": "29659:24:1" + } + ], + "id": 1577, + "name": "Return", + "src": "29652:31:1" + } + ], + "id": 1578, + "name": "Block", + "src": "29642:48:1" + } + ], + "id": 1579, + "name": "FunctionDefinition", + "src": "29563:127:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1580, + "name": "StructuredDocumentation", + "src": "29696:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1592, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1581, + "name": "UserDefinedTypeName", + "src": "29788:3:1" + } + ], + "id": 1582, + "name": "VariableDeclaration", + "src": "29788:15:1" + } + ], + "id": 1583, + "name": "ParameterList", + "src": "29787:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1592, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1584, + "name": "ElementaryTypeName", + "src": "29827:7:1" + } + ], + "id": 1585, + "name": "VariableDeclaration", + "src": "29827:7:1" + } + ], + "id": 1586, + "name": "ParameterList", + "src": "29826:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1586 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1582, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1587, + "name": "Identifier", + "src": "29853:3:1" + } + ], + "id": 1588, + "name": "MemberAccess", + "src": "29853:11:1" + } + ], + "id": 1589, + "name": "MemberAccess", + "src": "29853:18:1" + } + ], + "id": 1590, + "name": "Return", + "src": "29846:25:1" + } + ], + "id": 1591, + "name": "Block", + "src": "29836:42:1" + } + ], + "id": 1592, + "name": "FunctionDefinition", + "src": "29771:107:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1593, + "name": "StructuredDocumentation", + "src": "29883:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1617, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1594, + "name": "UserDefinedTypeName", + "src": "30223:3:1" + } + ], + "id": 1595, + "name": "VariableDeclaration", + "src": "30223:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1596, + "name": "ElementaryTypeName", + "src": "30240:7:1" + } + ], + "id": 1597, + "name": "VariableDeclaration", + "src": "30240:13:1" + } + ], + "id": 1598, + "name": "ParameterList", + "src": "30222:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1599, + "name": "ElementaryTypeName", + "src": "30277:7:1" + } + ], + "id": 1600, + "name": "VariableDeclaration", + "src": "30277:7:1" + } + ], + "id": 1601, + "name": "ParameterList", + "src": "30276:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1602, + "name": "Identifier", + "src": "30296:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1603, + "name": "Identifier", + "src": "30304:3:1" + } + ], + "id": 1604, + "name": "MemberAccess", + "src": "30304:11:1" + } + ], + "id": 1605, + "name": "MemberAccess", + "src": "30304:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1606, + "name": "Identifier", + "src": "30325:5:1" + } + ], + "id": 1607, + "name": "BinaryOperation", + "src": "30304:26:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableSet: index out of bounds\"", + "value": "EnumerableSet: index out of bounds" + }, + "id": 1608, + "name": "Literal", + "src": "30332:36:1" + } + ], + "id": 1609, + "name": "FunctionCall", + "src": "30296:73:1" + } + ], + "id": 1610, + "name": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "attributes": { + "functionReturnParameters": 1601 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1611, + "name": "Identifier", + "src": "30386:3:1" + } + ], + "id": 1612, + "name": "MemberAccess", + "src": "30386:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1613, + "name": "Identifier", + "src": "30398:5:1" + } + ], + "id": 1614, + "name": "IndexAccess", + "src": "30386:18:1" + } + ], + "id": 1615, + "name": "Return", + "src": "30379:25:1" + } + ], + "id": 1616, + "name": "Block", + "src": "30286:125:1" + } + ], + "id": 1617, + "name": "FunctionDefinition", + "src": "30210:201:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Bytes32Set", + "name": "Bytes32Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1620, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1618, + "name": "UserDefinedTypeName", + "src": "30464:3:1" + } + ], + "id": 1619, + "name": "VariableDeclaration", + "src": "30464:10:1" + } + ], + "id": 1620, + "name": "StructDefinition", + "src": "30436:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1621, + "name": "StructuredDocumentation", + "src": "30487:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1637, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1622, + "name": "UserDefinedTypeName", + "src": "30664:10:1" + } + ], + "id": 1623, + "name": "VariableDeclaration", + "src": "30664:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1624, + "name": "ElementaryTypeName", + "src": "30688:7:1" + } + ], + "id": 1625, + "name": "VariableDeclaration", + "src": "30688:13:1" + } + ], + "id": 1626, + "name": "ParameterList", + "src": "30663:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1627, + "name": "ElementaryTypeName", + "src": "30721:4:1" + } + ], + "id": 1628, + "name": "VariableDeclaration", + "src": "30721:4:1" + } + ], + "id": 1629, + "name": "ParameterList", + "src": "30720:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1629 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1630, + "name": "Identifier", + "src": "30744:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1623, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1631, + "name": "Identifier", + "src": "30749:3:1" + } + ], + "id": 1632, + "name": "MemberAccess", + "src": "30749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1625, + "type": "bytes32", + "value": "value" + }, + "id": 1633, + "name": "Identifier", + "src": "30761:5:1" + } + ], + "id": 1634, + "name": "FunctionCall", + "src": "30744:23:1" + } + ], + "id": 1635, + "name": "Return", + "src": "30737:30:1" + } + ], + "id": 1636, + "name": "Block", + "src": "30727:47:1" + } + ], + "id": 1637, + "name": "FunctionDefinition", + "src": "30651:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1638, + "name": "StructuredDocumentation", + "src": "30780:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1654, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1639, + "name": "UserDefinedTypeName", + "src": "30958:10:1" + } + ], + "id": 1640, + "name": "VariableDeclaration", + "src": "30958:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1641, + "name": "ElementaryTypeName", + "src": "30982:7:1" + } + ], + "id": 1642, + "name": "VariableDeclaration", + "src": "30982:13:1" + } + ], + "id": 1643, + "name": "ParameterList", + "src": "30957:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1644, + "name": "ElementaryTypeName", + "src": "31015:4:1" + } + ], + "id": 1645, + "name": "VariableDeclaration", + "src": "31015:4:1" + } + ], + "id": 1646, + "name": "ParameterList", + "src": "31014:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1646 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1647, + "name": "Identifier", + "src": "31038:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1640, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1648, + "name": "Identifier", + "src": "31046:3:1" + } + ], + "id": 1649, + "name": "MemberAccess", + "src": "31046:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1642, + "type": "bytes32", + "value": "value" + }, + "id": 1650, + "name": "Identifier", + "src": "31058:5:1" + } + ], + "id": 1651, + "name": "FunctionCall", + "src": "31038:26:1" + } + ], + "id": 1652, + "name": "Return", + "src": "31031:33:1" + } + ], + "id": 1653, + "name": "Block", + "src": "31021:50:1" + } + ], + "id": 1654, + "name": "FunctionDefinition", + "src": "30942:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1655, + "name": "StructuredDocumentation", + "src": "31077:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1671, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1656, + "name": "UserDefinedTypeName", + "src": "31170:10:1" + } + ], + "id": 1657, + "name": "VariableDeclaration", + "src": "31170:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1658, + "name": "ElementaryTypeName", + "src": "31194:7:1" + } + ], + "id": 1659, + "name": "VariableDeclaration", + "src": "31194:13:1" + } + ], + "id": 1660, + "name": "ParameterList", + "src": "31169:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1661, + "name": "ElementaryTypeName", + "src": "31232:4:1" + } + ], + "id": 1662, + "name": "VariableDeclaration", + "src": "31232:4:1" + } + ], + "id": 1663, + "name": "ParameterList", + "src": "31231:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1663 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1664, + "name": "Identifier", + "src": "31255:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1657, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1665, + "name": "Identifier", + "src": "31265:3:1" + } + ], + "id": 1666, + "name": "MemberAccess", + "src": "31265:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1659, + "type": "bytes32", + "value": "value" + }, + "id": 1667, + "name": "Identifier", + "src": "31277:5:1" + } + ], + "id": 1668, + "name": "FunctionCall", + "src": "31255:28:1" + } + ], + "id": 1669, + "name": "Return", + "src": "31248:35:1" + } + ], + "id": 1670, + "name": "Block", + "src": "31238:52:1" + } + ], + "id": 1671, + "name": "FunctionDefinition", + "src": "31152:138:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1672, + "name": "StructuredDocumentation", + "src": "31296:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1685, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1673, + "name": "UserDefinedTypeName", + "src": "31387:10:1" + } + ], + "id": 1674, + "name": "VariableDeclaration", + "src": "31387:22:1" + } + ], + "id": 1675, + "name": "ParameterList", + "src": "31386:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1685, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1676, + "name": "ElementaryTypeName", + "src": "31434:7:1" + } + ], + "id": 1677, + "name": "VariableDeclaration", + "src": "31434:7:1" + } + ], + "id": 1678, + "name": "ParameterList", + "src": "31433:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1678 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1679, + "name": "Identifier", + "src": "31460:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1674, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1680, + "name": "Identifier", + "src": "31468:3:1" + } + ], + "id": 1681, + "name": "MemberAccess", + "src": "31468:10:1" + } + ], + "id": 1682, + "name": "FunctionCall", + "src": "31460:19:1" + } + ], + "id": 1683, + "name": "Return", + "src": "31453:26:1" + } + ], + "id": 1684, + "name": "Block", + "src": "31443:43:1" + } + ], + "id": 1685, + "name": "FunctionDefinition", + "src": "31371:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1686, + "name": "StructuredDocumentation", + "src": "31491:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1702, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1687, + "name": "UserDefinedTypeName", + "src": "31830:10:1" + } + ], + "id": 1688, + "name": "VariableDeclaration", + "src": "31830:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1689, + "name": "ElementaryTypeName", + "src": "31854:7:1" + } + ], + "id": 1690, + "name": "VariableDeclaration", + "src": "31854:13:1" + } + ], + "id": 1691, + "name": "ParameterList", + "src": "31829:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1692, + "name": "ElementaryTypeName", + "src": "31892:7:1" + } + ], + "id": 1693, + "name": "VariableDeclaration", + "src": "31892:7:1" + } + ], + "id": 1694, + "name": "ParameterList", + "src": "31891:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1695, + "name": "Identifier", + "src": "31918:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1688, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1696, + "name": "Identifier", + "src": "31922:3:1" + } + ], + "id": 1697, + "name": "MemberAccess", + "src": "31922:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1690, + "type": "uint256", + "value": "index" + }, + "id": 1698, + "name": "Identifier", + "src": "31934:5:1" + } + ], + "id": 1699, + "name": "FunctionCall", + "src": "31918:22:1" + } + ], + "id": 1700, + "name": "Return", + "src": "31911:29:1" + } + ], + "id": 1701, + "name": "Block", + "src": "31901:46:1" + } + ], + "id": 1702, + "name": "FunctionDefinition", + "src": "31818:129:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.AddressSet", + "name": "AddressSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1705, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1703, + "name": "UserDefinedTypeName", + "src": "32000:3:1" + } + ], + "id": 1704, + "name": "VariableDeclaration", + "src": "32000:10:1" + } + ], + "id": 1705, + "name": "StructDefinition", + "src": "31972:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1706, + "name": "StructuredDocumentation", + "src": "32023:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1731, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1707, + "name": "UserDefinedTypeName", + "src": "32200:10:1" + } + ], + "id": 1708, + "name": "VariableDeclaration", + "src": "32200:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1709, + "name": "ElementaryTypeName", + "src": "32224:7:1" + } + ], + "id": 1710, + "name": "VariableDeclaration", + "src": "32224:13:1" + } + ], + "id": 1711, + "name": "ParameterList", + "src": "32199:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1712, + "name": "ElementaryTypeName", + "src": "32257:4:1" + } + ], + "id": 1713, + "name": "VariableDeclaration", + "src": "32257:4:1" + } + ], + "id": 1714, + "name": "ParameterList", + "src": "32256:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1714 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1715, + "name": "Identifier", + "src": "32280:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1708, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1716, + "name": "Identifier", + "src": "32285:3:1" + } + ], + "id": 1717, + "name": "MemberAccess", + "src": "32285:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1718, + "name": "ElementaryTypeName", + "src": "32297:7:1" + } + ], + "id": 1719, + "name": "ElementaryTypeNameExpression", + "src": "32297:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1720, + "name": "ElementaryTypeName", + "src": "32305:7:1" + } + ], + "id": 1721, + "name": "ElementaryTypeNameExpression", + "src": "32305:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1722, + "name": "ElementaryTypeName", + "src": "32313:7:1" + } + ], + "id": 1723, + "name": "ElementaryTypeNameExpression", + "src": "32313:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1710, + "type": "address", + "value": "value" + }, + "id": 1724, + "name": "Identifier", + "src": "32321:5:1" + } + ], + "id": 1725, + "name": "FunctionCall", + "src": "32313:14:1" + } + ], + "id": 1726, + "name": "FunctionCall", + "src": "32305:23:1" + } + ], + "id": 1727, + "name": "FunctionCall", + "src": "32297:32:1" + } + ], + "id": 1728, + "name": "FunctionCall", + "src": "32280:50:1" + } + ], + "id": 1729, + "name": "Return", + "src": "32273:57:1" + } + ], + "id": 1730, + "name": "Block", + "src": "32263:74:1" + } + ], + "id": 1731, + "name": "FunctionDefinition", + "src": "32187:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1732, + "name": "StructuredDocumentation", + "src": "32343:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1757, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1733, + "name": "UserDefinedTypeName", + "src": "32521:10:1" + } + ], + "id": 1734, + "name": "VariableDeclaration", + "src": "32521:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1735, + "name": "ElementaryTypeName", + "src": "32545:7:1" + } + ], + "id": 1736, + "name": "VariableDeclaration", + "src": "32545:13:1" + } + ], + "id": 1737, + "name": "ParameterList", + "src": "32520:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1738, + "name": "ElementaryTypeName", + "src": "32578:4:1" + } + ], + "id": 1739, + "name": "VariableDeclaration", + "src": "32578:4:1" + } + ], + "id": 1740, + "name": "ParameterList", + "src": "32577:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1740 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1741, + "name": "Identifier", + "src": "32601:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1734, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1742, + "name": "Identifier", + "src": "32609:3:1" + } + ], + "id": 1743, + "name": "MemberAccess", + "src": "32609:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1744, + "name": "ElementaryTypeName", + "src": "32621:7:1" + } + ], + "id": 1745, + "name": "ElementaryTypeNameExpression", + "src": "32621:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1746, + "name": "ElementaryTypeName", + "src": "32629:7:1" + } + ], + "id": 1747, + "name": "ElementaryTypeNameExpression", + "src": "32629:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1748, + "name": "ElementaryTypeName", + "src": "32637:7:1" + } + ], + "id": 1749, + "name": "ElementaryTypeNameExpression", + "src": "32637:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1736, + "type": "address", + "value": "value" + }, + "id": 1750, + "name": "Identifier", + "src": "32645:5:1" + } + ], + "id": 1751, + "name": "FunctionCall", + "src": "32637:14:1" + } + ], + "id": 1752, + "name": "FunctionCall", + "src": "32629:23:1" + } + ], + "id": 1753, + "name": "FunctionCall", + "src": "32621:32:1" + } + ], + "id": 1754, + "name": "FunctionCall", + "src": "32601:53:1" + } + ], + "id": 1755, + "name": "Return", + "src": "32594:60:1" + } + ], + "id": 1756, + "name": "Block", + "src": "32584:77:1" + } + ], + "id": 1757, + "name": "FunctionDefinition", + "src": "32505:156:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1758, + "name": "StructuredDocumentation", + "src": "32667:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1783, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1759, + "name": "UserDefinedTypeName", + "src": "32760:10:1" + } + ], + "id": 1760, + "name": "VariableDeclaration", + "src": "32760:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1761, + "name": "ElementaryTypeName", + "src": "32784:7:1" + } + ], + "id": 1762, + "name": "VariableDeclaration", + "src": "32784:13:1" + } + ], + "id": 1763, + "name": "ParameterList", + "src": "32759:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1764, + "name": "ElementaryTypeName", + "src": "32822:4:1" + } + ], + "id": 1765, + "name": "VariableDeclaration", + "src": "32822:4:1" + } + ], + "id": 1766, + "name": "ParameterList", + "src": "32821:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1766 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1767, + "name": "Identifier", + "src": "32845:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1760, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1768, + "name": "Identifier", + "src": "32855:3:1" + } + ], + "id": 1769, + "name": "MemberAccess", + "src": "32855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1770, + "name": "ElementaryTypeName", + "src": "32867:7:1" + } + ], + "id": 1771, + "name": "ElementaryTypeNameExpression", + "src": "32867:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1772, + "name": "ElementaryTypeName", + "src": "32875:7:1" + } + ], + "id": 1773, + "name": "ElementaryTypeNameExpression", + "src": "32875:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1774, + "name": "ElementaryTypeName", + "src": "32883:7:1" + } + ], + "id": 1775, + "name": "ElementaryTypeNameExpression", + "src": "32883:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1762, + "type": "address", + "value": "value" + }, + "id": 1776, + "name": "Identifier", + "src": "32891:5:1" + } + ], + "id": 1777, + "name": "FunctionCall", + "src": "32883:14:1" + } + ], + "id": 1778, + "name": "FunctionCall", + "src": "32875:23:1" + } + ], + "id": 1779, + "name": "FunctionCall", + "src": "32867:32:1" + } + ], + "id": 1780, + "name": "FunctionCall", + "src": "32845:55:1" + } + ], + "id": 1781, + "name": "Return", + "src": "32838:62:1" + } + ], + "id": 1782, + "name": "Block", + "src": "32828:79:1" + } + ], + "id": 1783, + "name": "FunctionDefinition", + "src": "32742:165:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1784, + "name": "StructuredDocumentation", + "src": "32913:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1797, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1785, + "name": "UserDefinedTypeName", + "src": "33004:10:1" + } + ], + "id": 1786, + "name": "VariableDeclaration", + "src": "33004:22:1" + } + ], + "id": 1787, + "name": "ParameterList", + "src": "33003:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1797, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1788, + "name": "ElementaryTypeName", + "src": "33051:7:1" + } + ], + "id": 1789, + "name": "VariableDeclaration", + "src": "33051:7:1" + } + ], + "id": 1790, + "name": "ParameterList", + "src": "33050:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1790 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1791, + "name": "Identifier", + "src": "33077:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1786, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1792, + "name": "Identifier", + "src": "33085:3:1" + } + ], + "id": 1793, + "name": "MemberAccess", + "src": "33085:10:1" + } + ], + "id": 1794, + "name": "FunctionCall", + "src": "33077:19:1" + } + ], + "id": 1795, + "name": "Return", + "src": "33070:26:1" + } + ], + "id": 1796, + "name": "Block", + "src": "33060:43:1" + } + ], + "id": 1797, + "name": "FunctionDefinition", + "src": "32988:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1798, + "name": "StructuredDocumentation", + "src": "33108:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1823, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1799, + "name": "UserDefinedTypeName", + "src": "33447:10:1" + } + ], + "id": 1800, + "name": "VariableDeclaration", + "src": "33447:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1801, + "name": "ElementaryTypeName", + "src": "33471:7:1" + } + ], + "id": 1802, + "name": "VariableDeclaration", + "src": "33471:13:1" + } + ], + "id": 1803, + "name": "ParameterList", + "src": "33446:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1804, + "name": "ElementaryTypeName", + "src": "33509:7:1" + } + ], + "id": 1805, + "name": "VariableDeclaration", + "src": "33509:7:1" + } + ], + "id": 1806, + "name": "ParameterList", + "src": "33508:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1806 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1807, + "name": "ElementaryTypeName", + "src": "33535:7:1" + } + ], + "id": 1808, + "name": "ElementaryTypeNameExpression", + "src": "33535:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1809, + "name": "ElementaryTypeName", + "src": "33543:7:1" + } + ], + "id": 1810, + "name": "ElementaryTypeNameExpression", + "src": "33543:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1811, + "name": "ElementaryTypeName", + "src": "33551:7:1" + } + ], + "id": 1812, + "name": "ElementaryTypeNameExpression", + "src": "33551:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1813, + "name": "Identifier", + "src": "33559:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1800, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1814, + "name": "Identifier", + "src": "33563:3:1" + } + ], + "id": 1815, + "name": "MemberAccess", + "src": "33563:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1802, + "type": "uint256", + "value": "index" + }, + "id": 1816, + "name": "Identifier", + "src": "33575:5:1" + } + ], + "id": 1817, + "name": "FunctionCall", + "src": "33559:22:1" + } + ], + "id": 1818, + "name": "FunctionCall", + "src": "33551:31:1" + } + ], + "id": 1819, + "name": "FunctionCall", + "src": "33543:40:1" + } + ], + "id": 1820, + "name": "FunctionCall", + "src": "33535:49:1" + } + ], + "id": 1821, + "name": "Return", + "src": "33528:56:1" + } + ], + "id": 1822, + "name": "Block", + "src": "33518:73:1" + } + ], + "id": 1823, + "name": "FunctionDefinition", + "src": "33435:156:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.UintSet", + "name": "UintSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1826, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1824, + "name": "UserDefinedTypeName", + "src": "33639:3:1" + } + ], + "id": 1825, + "name": "VariableDeclaration", + "src": "33639:10:1" + } + ], + "id": 1826, + "name": "StructDefinition", + "src": "33614:42:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1827, + "name": "StructuredDocumentation", + "src": "33662:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1846, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1828, + "name": "UserDefinedTypeName", + "src": "33839:7:1" + } + ], + "id": 1829, + "name": "VariableDeclaration", + "src": "33839:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1830, + "name": "ElementaryTypeName", + "src": "33860:7:1" + } + ], + "id": 1831, + "name": "VariableDeclaration", + "src": "33860:13:1" + } + ], + "id": 1832, + "name": "ParameterList", + "src": "33838:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1833, + "name": "ElementaryTypeName", + "src": "33893:4:1" + } + ], + "id": 1834, + "name": "VariableDeclaration", + "src": "33893:4:1" + } + ], + "id": 1835, + "name": "ParameterList", + "src": "33892:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1835 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1836, + "name": "Identifier", + "src": "33916:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1829, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1837, + "name": "Identifier", + "src": "33921:3:1" + } + ], + "id": 1838, + "name": "MemberAccess", + "src": "33921:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1839, + "name": "ElementaryTypeName", + "src": "33933:7:1" + } + ], + "id": 1840, + "name": "ElementaryTypeNameExpression", + "src": "33933:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1831, + "type": "uint256", + "value": "value" + }, + "id": 1841, + "name": "Identifier", + "src": "33941:5:1" + } + ], + "id": 1842, + "name": "FunctionCall", + "src": "33933:14:1" + } + ], + "id": 1843, + "name": "FunctionCall", + "src": "33916:32:1" + } + ], + "id": 1844, + "name": "Return", + "src": "33909:39:1" + } + ], + "id": 1845, + "name": "Block", + "src": "33899:56:1" + } + ], + "id": 1846, + "name": "FunctionDefinition", + "src": "33826:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1847, + "name": "StructuredDocumentation", + "src": "33961:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1866, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1848, + "name": "UserDefinedTypeName", + "src": "34139:7:1" + } + ], + "id": 1849, + "name": "VariableDeclaration", + "src": "34139:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1850, + "name": "ElementaryTypeName", + "src": "34160:7:1" + } + ], + "id": 1851, + "name": "VariableDeclaration", + "src": "34160:13:1" + } + ], + "id": 1852, + "name": "ParameterList", + "src": "34138:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1853, + "name": "ElementaryTypeName", + "src": "34193:4:1" + } + ], + "id": 1854, + "name": "VariableDeclaration", + "src": "34193:4:1" + } + ], + "id": 1855, + "name": "ParameterList", + "src": "34192:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1855 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1856, + "name": "Identifier", + "src": "34216:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1849, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1857, + "name": "Identifier", + "src": "34224:3:1" + } + ], + "id": 1858, + "name": "MemberAccess", + "src": "34224:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1859, + "name": "ElementaryTypeName", + "src": "34236:7:1" + } + ], + "id": 1860, + "name": "ElementaryTypeNameExpression", + "src": "34236:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1851, + "type": "uint256", + "value": "value" + }, + "id": 1861, + "name": "Identifier", + "src": "34244:5:1" + } + ], + "id": 1862, + "name": "FunctionCall", + "src": "34236:14:1" + } + ], + "id": 1863, + "name": "FunctionCall", + "src": "34216:35:1" + } + ], + "id": 1864, + "name": "Return", + "src": "34209:42:1" + } + ], + "id": 1865, + "name": "Block", + "src": "34199:59:1" + } + ], + "id": 1866, + "name": "FunctionDefinition", + "src": "34123:135:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1867, + "name": "StructuredDocumentation", + "src": "34264:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1886, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1868, + "name": "UserDefinedTypeName", + "src": "34357:7:1" + } + ], + "id": 1869, + "name": "VariableDeclaration", + "src": "34357:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1870, + "name": "ElementaryTypeName", + "src": "34378:7:1" + } + ], + "id": 1871, + "name": "VariableDeclaration", + "src": "34378:13:1" + } + ], + "id": 1872, + "name": "ParameterList", + "src": "34356:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1873, + "name": "ElementaryTypeName", + "src": "34416:4:1" + } + ], + "id": 1874, + "name": "VariableDeclaration", + "src": "34416:4:1" + } + ], + "id": 1875, + "name": "ParameterList", + "src": "34415:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1875 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1876, + "name": "Identifier", + "src": "34439:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1869, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1877, + "name": "Identifier", + "src": "34449:3:1" + } + ], + "id": 1878, + "name": "MemberAccess", + "src": "34449:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1879, + "name": "ElementaryTypeName", + "src": "34461:7:1" + } + ], + "id": 1880, + "name": "ElementaryTypeNameExpression", + "src": "34461:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1871, + "type": "uint256", + "value": "value" + }, + "id": 1881, + "name": "Identifier", + "src": "34469:5:1" + } + ], + "id": 1882, + "name": "FunctionCall", + "src": "34461:14:1" + } + ], + "id": 1883, + "name": "FunctionCall", + "src": "34439:37:1" + } + ], + "id": 1884, + "name": "Return", + "src": "34432:44:1" + } + ], + "id": 1885, + "name": "Block", + "src": "34422:61:1" + } + ], + "id": 1886, + "name": "FunctionDefinition", + "src": "34339:144:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1887, + "name": "StructuredDocumentation", + "src": "34489:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1900, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1888, + "name": "UserDefinedTypeName", + "src": "34580:7:1" + } + ], + "id": 1889, + "name": "VariableDeclaration", + "src": "34580:19:1" + } + ], + "id": 1890, + "name": "ParameterList", + "src": "34579:21:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1900, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1891, + "name": "ElementaryTypeName", + "src": "34624:7:1" + } + ], + "id": 1892, + "name": "VariableDeclaration", + "src": "34624:7:1" + } + ], + "id": 1893, + "name": "ParameterList", + "src": "34623:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1894, + "name": "Identifier", + "src": "34650:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1889, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1895, + "name": "Identifier", + "src": "34658:3:1" + } + ], + "id": 1896, + "name": "MemberAccess", + "src": "34658:10:1" + } + ], + "id": 1897, + "name": "FunctionCall", + "src": "34650:19:1" + } + ], + "id": 1898, + "name": "Return", + "src": "34643:26:1" + } + ], + "id": 1899, + "name": "Block", + "src": "34633:43:1" + } + ], + "id": 1900, + "name": "FunctionDefinition", + "src": "34564:112:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1901, + "name": "StructuredDocumentation", + "src": "34681:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1920, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1902, + "name": "UserDefinedTypeName", + "src": "35020:7:1" + } + ], + "id": 1903, + "name": "VariableDeclaration", + "src": "35020:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1904, + "name": "ElementaryTypeName", + "src": "35041:7:1" + } + ], + "id": 1905, + "name": "VariableDeclaration", + "src": "35041:13:1" + } + ], + "id": 1906, + "name": "ParameterList", + "src": "35019:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1907, + "name": "ElementaryTypeName", + "src": "35079:7:1" + } + ], + "id": 1908, + "name": "VariableDeclaration", + "src": "35079:7:1" + } + ], + "id": 1909, + "name": "ParameterList", + "src": "35078:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1909 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1910, + "name": "ElementaryTypeName", + "src": "35105:7:1" + } + ], + "id": 1911, + "name": "ElementaryTypeNameExpression", + "src": "35105:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1912, + "name": "Identifier", + "src": "35113:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1903, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1913, + "name": "Identifier", + "src": "35117:3:1" + } + ], + "id": 1914, + "name": "MemberAccess", + "src": "35117:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1905, + "type": "uint256", + "value": "index" + }, + "id": 1915, + "name": "Identifier", + "src": "35129:5:1" + } + ], + "id": 1916, + "name": "FunctionCall", + "src": "35113:22:1" + } + ], + "id": 1917, + "name": "FunctionCall", + "src": "35105:31:1" + } + ], + "id": 1918, + "name": "Return", + "src": "35098:38:1" + } + ], + "id": 1919, + "name": "Block", + "src": "35088:55:1" + } + ], + "id": 1920, + "name": "FunctionDefinition", + "src": "35008:135:1" + } + ], + "id": 1921, + "name": "ContractDefinition", + "src": "26511:8634:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1922, + "name": "PragmaDirective", + "src": "35204:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "id": 1923, + "name": "StructuredDocumentation", + "src": "35237:705:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.MapEntry", + "name": "MapEntry", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_key", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1924, + "name": "ElementaryTypeName", + "src": "36455:7:1" + } + ], + "id": 1925, + "name": "VariableDeclaration", + "src": "36455:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_value", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1926, + "name": "ElementaryTypeName", + "src": "36477:7:1" + } + ], + "id": 1927, + "name": "VariableDeclaration", + "src": "36477:14:1" + } + ], + "id": 1928, + "name": "StructDefinition", + "src": "36429:69:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.Map", + "name": "Map", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_entries", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.MapEntry[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "struct EnumerableMap.MapEntry[]" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 1929, + "name": "UserDefinedTypeName", + "src": "36567:8:1" + } + ], + "id": 1930, + "name": "ArrayTypeName", + "src": "36567:10:1" + } + ], + "id": 1931, + "name": "VariableDeclaration", + "src": "36567:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1932, + "name": "ElementaryTypeName", + "src": "36745:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1933, + "name": "ElementaryTypeName", + "src": "36756:7:1" + } + ], + "id": 1934, + "name": "Mapping", + "src": "36736:28:1" + } + ], + "id": 1935, + "name": "VariableDeclaration", + "src": "36736:37:1" + } + ], + "id": 1936, + "name": "StructDefinition", + "src": "36504:276:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1937, + "name": "StructuredDocumentation", + "src": "36786:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 1998, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 1938, + "name": "UserDefinedTypeName", + "src": "37021:3:1" + } + ], + "id": 1939, + "name": "VariableDeclaration", + "src": "37021:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1940, + "name": "ElementaryTypeName", + "src": "37038:7:1" + } + ], + "id": 1941, + "name": "VariableDeclaration", + "src": "37038:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1942, + "name": "ElementaryTypeName", + "src": "37051:7:1" + } + ], + "id": 1943, + "name": "VariableDeclaration", + "src": "37051:13:1" + } + ], + "id": 1944, + "name": "ParameterList", + "src": "37020:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1945, + "name": "ElementaryTypeName", + "src": "37083:4:1" + } + ], + "id": 1946, + "name": "VariableDeclaration", + "src": "37083:4:1" + } + ], + "id": 1947, + "name": "ParameterList", + "src": "37082:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1949 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 1997, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1948, + "name": "ElementaryTypeName", + "src": "37197:7:1" + } + ], + "id": 1949, + "name": "VariableDeclaration", + "src": "37197:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1950, + "name": "Identifier", + "src": "37216:3:1" + } + ], + "id": 1951, + "name": "MemberAccess", + "src": "37216:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1952, + "name": "Identifier", + "src": "37229:3:1" + } + ], + "id": 1953, + "name": "IndexAccess", + "src": "37216:17:1" + } + ], + "id": 1954, + "name": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1955, + "name": "Identifier", + "src": "37248:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1956, + "name": "Literal", + "src": "37260:1:1" + } + ], + "id": 1957, + "name": "BinaryOperation", + "src": "37248:13:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (struct EnumerableMap.MapEntry storage ref)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1958, + "name": "Identifier", + "src": "37314:3:1" + } + ], + "id": 1961, + "name": "MemberAccess", + "src": "37314:12:1" + } + ], + "id": 1962, + "name": "MemberAccess", + "src": "37314:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": true, + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "tryCall": false, + "type": "struct EnumerableMap.MapEntry memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1928, + "type": "type(struct EnumerableMap.MapEntry storage pointer)", + "value": "MapEntry" + }, + "id": 1963, + "name": "Identifier", + "src": "37332:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1964, + "name": "Identifier", + "src": "37349:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1965, + "name": "Identifier", + "src": "37362:5:1" + } + ], + "id": 1966, + "name": "FunctionCall", + "src": "37332:38:1" + } + ], + "id": 1967, + "name": "FunctionCall", + "src": "37314:57:1" + } + ], + "id": 1968, + "name": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1969, + "name": "Identifier", + "src": "37506:3:1" + } + ], + "id": 1972, + "name": "MemberAccess", + "src": "37506:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1971, + "name": "Identifier", + "src": "37519:3:1" + } + ], + "id": 1973, + "name": "IndexAccess", + "src": "37506:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1974, + "name": "Identifier", + "src": "37526:3:1" + } + ], + "id": 1975, + "name": "MemberAccess", + "src": "37526:12:1" + } + ], + "id": 1976, + "name": "MemberAccess", + "src": "37526:19:1" + } + ], + "id": 1977, + "name": "Assignment", + "src": "37506:39:1" + } + ], + "id": 1978, + "name": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1979, + "name": "Literal", + "src": "37566:4:1" + } + ], + "id": 1980, + "name": "Return", + "src": "37559:11:1" + } + ], + "id": 1981, + "name": "Block", + "src": "37263:318:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1982, + "name": "Identifier", + "src": "37601:3:1" + } + ], + "id": 1987, + "name": "MemberAccess", + "src": "37601:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1984, + "name": "Identifier", + "src": "37614:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1985, + "name": "Literal", + "src": "37625:1:1" + } + ], + "id": 1986, + "name": "BinaryOperation", + "src": "37614:12:1" + } + ], + "id": 1988, + "name": "IndexAccess", + "src": "37601:26:1" + } + ], + "id": 1989, + "name": "MemberAccess", + "src": "37601:33:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1990, + "name": "Identifier", + "src": "37637:5:1" + } + ], + "id": 1991, + "name": "Assignment", + "src": "37601:41:1" + } + ], + "id": 1992, + "name": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1993, + "name": "Literal", + "src": "37663:5:1" + } + ], + "id": 1994, + "name": "Return", + "src": "37656:12:1" + } + ], + "id": 1995, + "name": "Block", + "src": "37587:92:1" + } + ], + "id": 1996, + "name": "IfStatement", + "src": "37244:435:1" + } + ], + "id": 1997, + "name": "Block", + "src": "37089:596:1" + } + ], + "id": 1998, + "name": "FunctionDefinition", + "src": "37007:678:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 1999, + "name": "StructuredDocumentation", + "src": "37691:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2079, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2000, + "name": "UserDefinedTypeName", + "src": "37870:3:1" + } + ], + "id": 2001, + "name": "VariableDeclaration", + "src": "37870:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2002, + "name": "ElementaryTypeName", + "src": "37887:7:1" + } + ], + "id": 2003, + "name": "VariableDeclaration", + "src": "37887:11:1" + } + ], + "id": 2004, + "name": "ParameterList", + "src": "37869:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2005, + "name": "ElementaryTypeName", + "src": "37917:4:1" + } + ], + "id": 2006, + "name": "VariableDeclaration", + "src": "37917:4:1" + } + ], + "id": 2007, + "name": "ParameterList", + "src": "37916:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2009 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2078, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2008, + "name": "ElementaryTypeName", + "src": "38031:7:1" + } + ], + "id": 2009, + "name": "VariableDeclaration", + "src": "38031:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2010, + "name": "Identifier", + "src": "38050:3:1" + } + ], + "id": 2011, + "name": "MemberAccess", + "src": "38050:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2012, + "name": "Identifier", + "src": "38063:3:1" + } + ], + "id": 2013, + "name": "IndexAccess", + "src": "38050:17:1" + } + ], + "id": 2014, + "name": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2015, + "name": "Identifier", + "src": "38082:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2016, + "name": "Literal", + "src": "38094:1:1" + } + ], + "id": 2017, + "name": "BinaryOperation", + "src": "38082:13:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2019 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2018, + "name": "ElementaryTypeName", + "src": "38438:7:1" + } + ], + "id": 2019, + "name": "VariableDeclaration", + "src": "38438:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2020, + "name": "Identifier", + "src": "38462:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2021, + "name": "Literal", + "src": "38473:1:1" + } + ], + "id": 2022, + "name": "BinaryOperation", + "src": "38462:12:1" + } + ], + "id": 2023, + "name": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "attributes": { + "assignments": [ + 2025 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2024, + "name": "ElementaryTypeName", + "src": "38488:7:1" + } + ], + "id": 2025, + "name": "VariableDeclaration", + "src": "38488:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2026, + "name": "Identifier", + "src": "38508:3:1" + } + ], + "id": 2027, + "name": "MemberAccess", + "src": "38508:12:1" + } + ], + "id": 2028, + "name": "MemberAccess", + "src": "38508:19:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2029, + "name": "Literal", + "src": "38530:1:1" + } + ], + "id": 2030, + "name": "BinaryOperation", + "src": "38508:23:1" + } + ], + "id": 2031, + "name": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "attributes": { + "assignments": [ + 2033 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastEntry", + "scope": 2073, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2032, + "name": "UserDefinedTypeName", + "src": "38771:8:1" + } + ], + "id": 2033, + "name": "VariableDeclaration", + "src": "38771:26:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2034, + "name": "Identifier", + "src": "38800:3:1" + } + ], + "id": 2035, + "name": "MemberAccess", + "src": "38800:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2025, + "type": "uint256", + "value": "lastIndex" + }, + "id": 2036, + "name": "Identifier", + "src": "38813:9:1" + } + ], + "id": 2037, + "name": "IndexAccess", + "src": "38800:23:1" + } + ], + "id": 2038, + "name": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2039, + "name": "Identifier", + "src": "38915:3:1" + } + ], + "id": 2042, + "name": "MemberAccess", + "src": "38915:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2041, + "name": "Identifier", + "src": "38928:13:1" + } + ], + "id": 2043, + "name": "IndexAccess", + "src": "38915:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2044, + "name": "Identifier", + "src": "38945:9:1" + } + ], + "id": 2045, + "name": "Assignment", + "src": "38915:39:1" + } + ], + "id": 2046, + "name": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2047, + "name": "Identifier", + "src": "39020:3:1" + } + ], + "id": 2051, + "name": "MemberAccess", + "src": "39020:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2049, + "name": "Identifier", + "src": "39033:9:1" + } + ], + "id": 2050, + "name": "MemberAccess", + "src": "39033:14:1" + } + ], + "id": 2052, + "name": "IndexAccess", + "src": "39020:28:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2053, + "name": "Identifier", + "src": "39051:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2054, + "name": "Literal", + "src": "39067:1:1" + } + ], + "id": 2055, + "name": "BinaryOperation", + "src": "39051:17:1" + } + ], + "id": 2056, + "name": "Assignment", + "src": "39020:48:1" + } + ], + "id": 2057, + "name": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2058, + "name": "Identifier", + "src": "39174:3:1" + } + ], + "id": 2061, + "name": "MemberAccess", + "src": "39174:12:1" + } + ], + "id": 2062, + "name": "MemberAccess", + "src": "39174:16:1" + } + ], + "id": 2063, + "name": "FunctionCall", + "src": "39174:18:1" + } + ], + "id": 2064, + "name": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2065, + "name": "Identifier", + "src": "39267:3:1" + } + ], + "id": 2066, + "name": "MemberAccess", + "src": "39267:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2067, + "name": "Identifier", + "src": "39280:3:1" + } + ], + "id": 2068, + "name": "IndexAccess", + "src": "39267:17:1" + } + ], + "id": 2069, + "name": "UnaryOperation", + "src": "39260:24:1" + } + ], + "id": 2070, + "name": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2071, + "name": "Literal", + "src": "39306:4:1" + } + ], + "id": 2072, + "name": "Return", + "src": "39299:11:1" + } + ], + "id": 2073, + "name": "Block", + "src": "38097:1224:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2074, + "name": "Literal", + "src": "39348:5:1" + } + ], + "id": 2075, + "name": "Return", + "src": "39341:12:1" + } + ], + "id": 2076, + "name": "Block", + "src": "39327:37:1" + } + ], + "id": 2077, + "name": "IfStatement", + "src": "38078:1286:1" + } + ], + "id": 2078, + "name": "Block", + "src": "37923:1447:1" + } + ], + "id": 2079, + "name": "FunctionDefinition", + "src": "37853:1517:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2080, + "name": "StructuredDocumentation", + "src": "39376:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2097, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2081, + "name": "UserDefinedTypeName", + "src": "39468:3:1" + } + ], + "id": 2082, + "name": "VariableDeclaration", + "src": "39468:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2083, + "name": "ElementaryTypeName", + "src": "39485:7:1" + } + ], + "id": 2084, + "name": "VariableDeclaration", + "src": "39485:11:1" + } + ], + "id": 2085, + "name": "ParameterList", + "src": "39467:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2086, + "name": "ElementaryTypeName", + "src": "39520:4:1" + } + ], + "id": 2087, + "name": "VariableDeclaration", + "src": "39520:4:1" + } + ], + "id": 2088, + "name": "ParameterList", + "src": "39519:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2088 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2082, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2089, + "name": "Identifier", + "src": "39543:3:1" + } + ], + "id": 2090, + "name": "MemberAccess", + "src": "39543:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2084, + "type": "bytes32", + "value": "key" + }, + "id": 2091, + "name": "Identifier", + "src": "39556:3:1" + } + ], + "id": 2092, + "name": "IndexAccess", + "src": "39543:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2093, + "name": "Literal", + "src": "39564:1:1" + } + ], + "id": 2094, + "name": "BinaryOperation", + "src": "39543:22:1" + } + ], + "id": 2095, + "name": "Return", + "src": "39536:29:1" + } + ], + "id": 2096, + "name": "Block", + "src": "39526:46:1" + } + ], + "id": 2097, + "name": "FunctionDefinition", + "src": "39449:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2098, + "name": "StructuredDocumentation", + "src": "39578:79:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2110, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2099, + "name": "UserDefinedTypeName", + "src": "39679:3:1" + } + ], + "id": 2100, + "name": "VariableDeclaration", + "src": "39679:15:1" + } + ], + "id": 2101, + "name": "ParameterList", + "src": "39678:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2102, + "name": "ElementaryTypeName", + "src": "39718:7:1" + } + ], + "id": 2103, + "name": "VariableDeclaration", + "src": "39718:7:1" + } + ], + "id": 2104, + "name": "ParameterList", + "src": "39717:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2104 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2100, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2105, + "name": "Identifier", + "src": "39744:3:1" + } + ], + "id": 2106, + "name": "MemberAccess", + "src": "39744:12:1" + } + ], + "id": 2107, + "name": "MemberAccess", + "src": "39744:19:1" + } + ], + "id": 2108, + "name": "Return", + "src": "39737:26:1" + } + ], + "id": 2109, + "name": "Block", + "src": "39727:43:1" + } + ], + "id": 2110, + "name": "FunctionDefinition", + "src": "39662:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2111, + "name": "StructuredDocumentation", + "src": "39775:333:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2145, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2112, + "name": "UserDefinedTypeName", + "src": "40126:3:1" + } + ], + "id": 2113, + "name": "VariableDeclaration", + "src": "40126:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2114, + "name": "ElementaryTypeName", + "src": "40143:7:1" + } + ], + "id": 2115, + "name": "VariableDeclaration", + "src": "40143:13:1" + } + ], + "id": 2116, + "name": "ParameterList", + "src": "40125:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2117, + "name": "ElementaryTypeName", + "src": "40180:7:1" + } + ], + "id": 2118, + "name": "VariableDeclaration", + "src": "40180:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2119, + "name": "ElementaryTypeName", + "src": "40189:7:1" + } + ], + "id": 2120, + "name": "VariableDeclaration", + "src": "40189:7:1" + } + ], + "id": 2121, + "name": "ParameterList", + "src": "40179:18:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2122, + "name": "Identifier", + "src": "40208:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2123, + "name": "Identifier", + "src": "40216:3:1" + } + ], + "id": 2124, + "name": "MemberAccess", + "src": "40216:12:1" + } + ], + "id": 2125, + "name": "MemberAccess", + "src": "40216:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2126, + "name": "Identifier", + "src": "40238:5:1" + } + ], + "id": 2127, + "name": "BinaryOperation", + "src": "40216:27:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: index out of bounds\"", + "value": "EnumerableMap: index out of bounds" + }, + "id": 2128, + "name": "Literal", + "src": "40245:36:1" + } + ], + "id": 2129, + "name": "FunctionCall", + "src": "40208:74:1" + } + ], + "id": 2130, + "name": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "attributes": { + "assignments": [ + 2132 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "entry", + "scope": 2144, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2131, + "name": "UserDefinedTypeName", + "src": "40293:8:1" + } + ], + "id": 2132, + "name": "VariableDeclaration", + "src": "40293:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2133, + "name": "Identifier", + "src": "40318:3:1" + } + ], + "id": 2134, + "name": "MemberAccess", + "src": "40318:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2135, + "name": "Identifier", + "src": "40331:5:1" + } + ], + "id": 2136, + "name": "IndexAccess", + "src": "40318:19:1" + } + ], + "id": 2137, + "name": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2121 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bytes32,bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2138, + "name": "Identifier", + "src": "40355:5:1" + } + ], + "id": 2139, + "name": "MemberAccess", + "src": "40355:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2140, + "name": "Identifier", + "src": "40367:5:1" + } + ], + "id": 2141, + "name": "MemberAccess", + "src": "40367:12:1" + } + ], + "id": 2142, + "name": "TupleExpression", + "src": "40354:26:1" + } + ], + "id": 2143, + "name": "Return", + "src": "40347:33:1" + } + ], + "id": 2144, + "name": "Block", + "src": "40198:189:1" + } + ], + "id": 2145, + "name": "FunctionDefinition", + "src": "40113:274:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2146, + "name": "StructuredDocumentation", + "src": "40393:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2183, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2147, + "name": "UserDefinedTypeName", + "src": "40546:3:1" + } + ], + "id": 2148, + "name": "VariableDeclaration", + "src": "40546:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2149, + "name": "ElementaryTypeName", + "src": "40563:7:1" + } + ], + "id": 2150, + "name": "VariableDeclaration", + "src": "40563:11:1" + } + ], + "id": 2151, + "name": "ParameterList", + "src": "40545:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2152, + "name": "ElementaryTypeName", + "src": "40598:4:1" + } + ], + "id": 2153, + "name": "VariableDeclaration", + "src": "40598:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2154, + "name": "ElementaryTypeName", + "src": "40604:7:1" + } + ], + "id": 2155, + "name": "VariableDeclaration", + "src": "40604:7:1" + } + ], + "id": 2156, + "name": "ParameterList", + "src": "40597:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2158 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2182, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2157, + "name": "ElementaryTypeName", + "src": "40623:7:1" + } + ], + "id": 2158, + "name": "VariableDeclaration", + "src": "40623:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2159, + "name": "Identifier", + "src": "40642:3:1" + } + ], + "id": 2160, + "name": "MemberAccess", + "src": "40642:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2150, + "type": "bytes32", + "value": "key" + }, + "id": 2161, + "name": "Identifier", + "src": "40655:3:1" + } + ], + "id": 2162, + "name": "IndexAccess", + "src": "40642:17:1" + } + ], + "id": 2163, + "name": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2164, + "name": "Identifier", + "src": "40673:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2165, + "name": "Literal", + "src": "40685:1:1" + } + ], + "id": 2166, + "name": "BinaryOperation", + "src": "40673:13:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2167, + "name": "Literal", + "src": "40696:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2168, + "name": "Literal", + "src": "40703:1:1" + } + ], + "id": 2169, + "name": "TupleExpression", + "src": "40695:10:1" + } + ], + "id": 2170, + "name": "Return", + "src": "40688:17:1" + } + ], + "id": 2171, + "name": "IfStatement", + "src": "40669:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,bytes32)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2172, + "name": "Literal", + "src": "40759:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2173, + "name": "Identifier", + "src": "40765:3:1" + } + ], + "id": 2174, + "name": "MemberAccess", + "src": "40765:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2175, + "name": "Identifier", + "src": "40778:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2176, + "name": "Literal", + "src": "40789:1:1" + } + ], + "id": 2177, + "name": "BinaryOperation", + "src": "40778:12:1" + } + ], + "id": 2178, + "name": "IndexAccess", + "src": "40765:26:1" + } + ], + "id": 2179, + "name": "MemberAccess", + "src": "40765:33:1" + } + ], + "id": 2180, + "name": "TupleExpression", + "src": "40758:41:1" + } + ], + "id": 2181, + "name": "Return", + "src": "40751:48:1" + } + ], + "id": 2182, + "name": "Block", + "src": "40613:220:1" + } + ], + "id": 2183, + "name": "FunctionDefinition", + "src": "40529:304:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2184, + "name": "StructuredDocumentation", + "src": "40839:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2216, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2185, + "name": "UserDefinedTypeName", + "src": "40999:3:1" + } + ], + "id": 2186, + "name": "VariableDeclaration", + "src": "40999:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2187, + "name": "ElementaryTypeName", + "src": "41016:7:1" + } + ], + "id": 2188, + "name": "VariableDeclaration", + "src": "41016:11:1" + } + ], + "id": 2189, + "name": "ParameterList", + "src": "40998:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2190, + "name": "ElementaryTypeName", + "src": "41051:7:1" + } + ], + "id": 2191, + "name": "VariableDeclaration", + "src": "41051:7:1" + } + ], + "id": 2192, + "name": "ParameterList", + "src": "41050:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2194 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2215, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2193, + "name": "ElementaryTypeName", + "src": "41070:7:1" + } + ], + "id": 2194, + "name": "VariableDeclaration", + "src": "41070:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2195, + "name": "Identifier", + "src": "41089:3:1" + } + ], + "id": 2196, + "name": "MemberAccess", + "src": "41089:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2188, + "type": "bytes32", + "value": "key" + }, + "id": 2197, + "name": "Identifier", + "src": "41102:3:1" + } + ], + "id": 2198, + "name": "IndexAccess", + "src": "41089:17:1" + } + ], + "id": 2199, + "name": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2200, + "name": "Identifier", + "src": "41116:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2201, + "name": "Identifier", + "src": "41124:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2202, + "name": "Literal", + "src": "41136:1:1" + } + ], + "id": 2203, + "name": "BinaryOperation", + "src": "41124:13:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: nonexistent key\"", + "value": "EnumerableMap: nonexistent key" + }, + "id": 2204, + "name": "Literal", + "src": "41139:32:1" + } + ], + "id": 2205, + "name": "FunctionCall", + "src": "41116:56:1" + } + ], + "id": 2206, + "name": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "attributes": { + "functionReturnParameters": 2192 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2207, + "name": "Identifier", + "src": "41225:3:1" + } + ], + "id": 2208, + "name": "MemberAccess", + "src": "41225:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2209, + "name": "Identifier", + "src": "41238:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2210, + "name": "Literal", + "src": "41249:1:1" + } + ], + "id": 2211, + "name": "BinaryOperation", + "src": "41238:12:1" + } + ], + "id": 2212, + "name": "IndexAccess", + "src": "41225:26:1" + } + ], + "id": 2213, + "name": "MemberAccess", + "src": "41225:33:1" + } + ], + "id": 2214, + "name": "Return", + "src": "41218:40:1" + } + ], + "id": 2215, + "name": "Block", + "src": "41060:232:1" + } + ], + "id": 2216, + "name": "FunctionDefinition", + "src": "40985:307:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2217, + "name": "StructuredDocumentation", + "src": "41298:271:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2251, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2218, + "name": "UserDefinedTypeName", + "src": "41588:3:1" + } + ], + "id": 2219, + "name": "VariableDeclaration", + "src": "41588:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2220, + "name": "ElementaryTypeName", + "src": "41605:7:1" + } + ], + "id": 2221, + "name": "VariableDeclaration", + "src": "41605:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2251, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2222, + "name": "ElementaryTypeName", + "src": "41618:6:1" + } + ], + "id": 2223, + "name": "VariableDeclaration", + "src": "41618:26:1" + } + ], + "id": 2224, + "name": "ParameterList", + "src": "41587:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2225, + "name": "ElementaryTypeName", + "src": "41668:7:1" + } + ], + "id": 2226, + "name": "VariableDeclaration", + "src": "41668:7:1" + } + ], + "id": 2227, + "name": "ParameterList", + "src": "41667:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2229 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2250, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2228, + "name": "ElementaryTypeName", + "src": "41687:7:1" + } + ], + "id": 2229, + "name": "VariableDeclaration", + "src": "41687:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2230, + "name": "Identifier", + "src": "41706:3:1" + } + ], + "id": 2231, + "name": "MemberAccess", + "src": "41706:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2221, + "type": "bytes32", + "value": "key" + }, + "id": 2232, + "name": "Identifier", + "src": "41719:3:1" + } + ], + "id": 2233, + "name": "IndexAccess", + "src": "41706:17:1" + } + ], + "id": 2234, + "name": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2235, + "name": "Identifier", + "src": "41733:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2236, + "name": "Identifier", + "src": "41741:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2237, + "name": "Literal", + "src": "41753:1:1" + } + ], + "id": 2238, + "name": "BinaryOperation", + "src": "41741:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2223, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2239, + "name": "Identifier", + "src": "41756:12:1" + } + ], + "id": 2240, + "name": "FunctionCall", + "src": "41733:36:1" + } + ], + "id": 2241, + "name": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2227 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2242, + "name": "Identifier", + "src": "41822:3:1" + } + ], + "id": 2243, + "name": "MemberAccess", + "src": "41822:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2244, + "name": "Identifier", + "src": "41835:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2245, + "name": "Literal", + "src": "41846:1:1" + } + ], + "id": 2246, + "name": "BinaryOperation", + "src": "41835:12:1" + } + ], + "id": 2247, + "name": "IndexAccess", + "src": "41822:26:1" + } + ], + "id": 2248, + "name": "MemberAccess", + "src": "41822:33:1" + } + ], + "id": 2249, + "name": "Return", + "src": "41815:40:1" + } + ], + "id": 2250, + "name": "Block", + "src": "41677:212:1" + } + ], + "id": 2251, + "name": "FunctionDefinition", + "src": "41574:315:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.UintToAddressMap", + "name": "UintToAddressMap", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 2254, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2252, + "name": "UserDefinedTypeName", + "src": "41954:3:1" + } + ], + "id": 2253, + "name": "VariableDeclaration", + "src": "41954:10:1" + } + ], + "id": 2254, + "name": "StructDefinition", + "src": "41920:51:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2255, + "name": "StructuredDocumentation", + "src": "41977:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2286, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2256, + "name": "UserDefinedTypeName", + "src": "42211:16:1" + } + ], + "id": 2257, + "name": "VariableDeclaration", + "src": "42211:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2258, + "name": "ElementaryTypeName", + "src": "42241:7:1" + } + ], + "id": 2259, + "name": "VariableDeclaration", + "src": "42241:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2260, + "name": "ElementaryTypeName", + "src": "42254:7:1" + } + ], + "id": 2261, + "name": "VariableDeclaration", + "src": "42254:13:1" + } + ], + "id": 2262, + "name": "ParameterList", + "src": "42210:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2263, + "name": "ElementaryTypeName", + "src": "42287:4:1" + } + ], + "id": 2264, + "name": "VariableDeclaration", + "src": "42287:4:1" + } + ], + "id": 2265, + "name": "ParameterList", + "src": "42286:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2265 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1998, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)", + "value": "_set" + }, + "id": 2266, + "name": "Identifier", + "src": "42310:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2257, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2267, + "name": "Identifier", + "src": "42315:3:1" + } + ], + "id": 2268, + "name": "MemberAccess", + "src": "42315:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2269, + "name": "ElementaryTypeName", + "src": "42327:7:1" + } + ], + "id": 2270, + "name": "ElementaryTypeNameExpression", + "src": "42327:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2259, + "type": "uint256", + "value": "key" + }, + "id": 2271, + "name": "Identifier", + "src": "42335:3:1" + } + ], + "id": 2272, + "name": "FunctionCall", + "src": "42327:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2273, + "name": "ElementaryTypeName", + "src": "42341:7:1" + } + ], + "id": 2274, + "name": "ElementaryTypeNameExpression", + "src": "42341:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2275, + "name": "ElementaryTypeName", + "src": "42349:7:1" + } + ], + "id": 2276, + "name": "ElementaryTypeNameExpression", + "src": "42349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2277, + "name": "ElementaryTypeName", + "src": "42357:7:1" + } + ], + "id": 2278, + "name": "ElementaryTypeNameExpression", + "src": "42357:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2261, + "type": "address", + "value": "value" + }, + "id": 2279, + "name": "Identifier", + "src": "42365:5:1" + } + ], + "id": 2280, + "name": "FunctionCall", + "src": "42357:14:1" + } + ], + "id": 2281, + "name": "FunctionCall", + "src": "42349:23:1" + } + ], + "id": 2282, + "name": "FunctionCall", + "src": "42341:32:1" + } + ], + "id": 2283, + "name": "FunctionCall", + "src": "42310:64:1" + } + ], + "id": 2284, + "name": "Return", + "src": "42303:71:1" + } + ], + "id": 2285, + "name": "Block", + "src": "42293:88:1" + } + ], + "id": 2286, + "name": "FunctionDefinition", + "src": "42198:183:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2287, + "name": "StructuredDocumentation", + "src": "42387:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2306, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2288, + "name": "UserDefinedTypeName", + "src": "42556:16:1" + } + ], + "id": 2289, + "name": "VariableDeclaration", + "src": "42556:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2290, + "name": "ElementaryTypeName", + "src": "42586:7:1" + } + ], + "id": 2291, + "name": "VariableDeclaration", + "src": "42586:11:1" + } + ], + "id": 2292, + "name": "ParameterList", + "src": "42555:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2293, + "name": "ElementaryTypeName", + "src": "42617:4:1" + } + ], + "id": 2294, + "name": "VariableDeclaration", + "src": "42617:4:1" + } + ], + "id": 2295, + "name": "ParameterList", + "src": "42616:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2295 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2079, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 2296, + "name": "Identifier", + "src": "42640:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2289, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2297, + "name": "Identifier", + "src": "42648:3:1" + } + ], + "id": 2298, + "name": "MemberAccess", + "src": "42648:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2299, + "name": "ElementaryTypeName", + "src": "42660:7:1" + } + ], + "id": 2300, + "name": "ElementaryTypeNameExpression", + "src": "42660:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2291, + "type": "uint256", + "value": "key" + }, + "id": 2301, + "name": "Identifier", + "src": "42668:3:1" + } + ], + "id": 2302, + "name": "FunctionCall", + "src": "42660:12:1" + } + ], + "id": 2303, + "name": "FunctionCall", + "src": "42640:33:1" + } + ], + "id": 2304, + "name": "Return", + "src": "42633:40:1" + } + ], + "id": 2305, + "name": "Block", + "src": "42623:57:1" + } + ], + "id": 2306, + "name": "FunctionDefinition", + "src": "42540:140:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2307, + "name": "StructuredDocumentation", + "src": "42686:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2326, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2308, + "name": "UserDefinedTypeName", + "src": "42777:16:1" + } + ], + "id": 2309, + "name": "VariableDeclaration", + "src": "42777:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2310, + "name": "ElementaryTypeName", + "src": "42807:7:1" + } + ], + "id": 2311, + "name": "VariableDeclaration", + "src": "42807:11:1" + } + ], + "id": 2312, + "name": "ParameterList", + "src": "42776:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2313, + "name": "ElementaryTypeName", + "src": "42843:4:1" + } + ], + "id": 2314, + "name": "VariableDeclaration", + "src": "42843:4:1" + } + ], + "id": 2315, + "name": "ParameterList", + "src": "42842:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2315 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2097, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 2316, + "name": "Identifier", + "src": "42866:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2309, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2317, + "name": "Identifier", + "src": "42876:3:1" + } + ], + "id": 2318, + "name": "MemberAccess", + "src": "42876:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2319, + "name": "ElementaryTypeName", + "src": "42888:7:1" + } + ], + "id": 2320, + "name": "ElementaryTypeNameExpression", + "src": "42888:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2311, + "type": "uint256", + "value": "key" + }, + "id": 2321, + "name": "Identifier", + "src": "42896:3:1" + } + ], + "id": 2322, + "name": "FunctionCall", + "src": "42888:12:1" + } + ], + "id": 2323, + "name": "FunctionCall", + "src": "42866:35:1" + } + ], + "id": 2324, + "name": "Return", + "src": "42859:42:1" + } + ], + "id": 2325, + "name": "Block", + "src": "42849:59:1" + } + ], + "id": 2326, + "name": "FunctionDefinition", + "src": "42759:149:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2327, + "name": "StructuredDocumentation", + "src": "42914:72:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2340, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2328, + "name": "UserDefinedTypeName", + "src": "43007:16:1" + } + ], + "id": 2329, + "name": "VariableDeclaration", + "src": "43007:28:1" + } + ], + "id": 2330, + "name": "ParameterList", + "src": "43006:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2340, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2331, + "name": "ElementaryTypeName", + "src": "43060:7:1" + } + ], + "id": 2332, + "name": "VariableDeclaration", + "src": "43060:7:1" + } + ], + "id": 2333, + "name": "ParameterList", + "src": "43059:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2333 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2110, + "type": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 2334, + "name": "Identifier", + "src": "43086:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2329, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2335, + "name": "Identifier", + "src": "43094:3:1" + } + ], + "id": 2336, + "name": "MemberAccess", + "src": "43094:10:1" + } + ], + "id": 2337, + "name": "FunctionCall", + "src": "43086:19:1" + } + ], + "id": 2338, + "name": "Return", + "src": "43079:26:1" + } + ], + "id": 2339, + "name": "Block", + "src": "43069:43:1" + } + ], + "id": 2340, + "name": "FunctionDefinition", + "src": "42991:121:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2341, + "name": "StructuredDocumentation", + "src": "43117:318:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2379, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2342, + "name": "UserDefinedTypeName", + "src": "43452:16:1" + } + ], + "id": 2343, + "name": "VariableDeclaration", + "src": "43452:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2344, + "name": "ElementaryTypeName", + "src": "43482:7:1" + } + ], + "id": 2345, + "name": "VariableDeclaration", + "src": "43482:13:1" + } + ], + "id": 2346, + "name": "ParameterList", + "src": "43451:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2347, + "name": "ElementaryTypeName", + "src": "43520:7:1" + } + ], + "id": 2348, + "name": "VariableDeclaration", + "src": "43520:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2349, + "name": "ElementaryTypeName", + "src": "43529:7:1" + } + ], + "id": 2350, + "name": "VariableDeclaration", + "src": "43529:7:1" + } + ], + "id": 2351, + "name": "ParameterList", + "src": "43519:18:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2353, + 2355 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2352, + "name": "ElementaryTypeName", + "src": "43549:7:1" + } + ], + "id": 2353, + "name": "VariableDeclaration", + "src": "43549:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2354, + "name": "ElementaryTypeName", + "src": "43562:7:1" + } + ], + "id": 2355, + "name": "VariableDeclaration", + "src": "43562:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bytes32,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2145, + "type": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)", + "value": "_at" + }, + "id": 2356, + "name": "Identifier", + "src": "43579:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2343, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2357, + "name": "Identifier", + "src": "43583:3:1" + } + ], + "id": 2358, + "name": "MemberAccess", + "src": "43583:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2345, + "type": "uint256", + "value": "index" + }, + "id": 2359, + "name": "Identifier", + "src": "43595:5:1" + } + ], + "id": 2360, + "name": "FunctionCall", + "src": "43579:22:1" + } + ], + "id": 2361, + "name": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "attributes": { + "functionReturnParameters": 2351 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(uint256,address payable)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2362, + "name": "ElementaryTypeName", + "src": "43619:7:1" + } + ], + "id": 2363, + "name": "ElementaryTypeNameExpression", + "src": "43619:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2353, + "type": "bytes32", + "value": "key" + }, + "id": 2364, + "name": "Identifier", + "src": "43627:3:1" + } + ], + "id": 2365, + "name": "FunctionCall", + "src": "43619:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2366, + "name": "ElementaryTypeName", + "src": "43633:7:1" + } + ], + "id": 2367, + "name": "ElementaryTypeNameExpression", + "src": "43633:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2368, + "name": "ElementaryTypeName", + "src": "43641:7:1" + } + ], + "id": 2369, + "name": "ElementaryTypeNameExpression", + "src": "43641:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2370, + "name": "ElementaryTypeName", + "src": "43649:7:1" + } + ], + "id": 2371, + "name": "ElementaryTypeNameExpression", + "src": "43649:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2355, + "type": "bytes32", + "value": "value" + }, + "id": 2372, + "name": "Identifier", + "src": "43657:5:1" + } + ], + "id": 2373, + "name": "FunctionCall", + "src": "43649:14:1" + } + ], + "id": 2374, + "name": "FunctionCall", + "src": "43641:23:1" + } + ], + "id": 2375, + "name": "FunctionCall", + "src": "43633:32:1" + } + ], + "id": 2376, + "name": "TupleExpression", + "src": "43618:48:1" + } + ], + "id": 2377, + "name": "Return", + "src": "43611:55:1" + } + ], + "id": 2378, + "name": "Block", + "src": "43538:135:1" + } + ], + "id": 2379, + "name": "FunctionDefinition", + "src": "43440:233:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2380, + "name": "StructuredDocumentation", + "src": "43679:169:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2418, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2381, + "name": "UserDefinedTypeName", + "src": "43869:16:1" + } + ], + "id": 2382, + "name": "VariableDeclaration", + "src": "43869:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2383, + "name": "ElementaryTypeName", + "src": "43899:7:1" + } + ], + "id": 2384, + "name": "VariableDeclaration", + "src": "43899:11:1" + } + ], + "id": 2385, + "name": "ParameterList", + "src": "43868:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2386, + "name": "ElementaryTypeName", + "src": "43935:4:1" + } + ], + "id": 2387, + "name": "VariableDeclaration", + "src": "43935:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2388, + "name": "ElementaryTypeName", + "src": "43941:7:1" + } + ], + "id": 2389, + "name": "VariableDeclaration", + "src": "43941:7:1" + } + ], + "id": 2390, + "name": "ParameterList", + "src": "43934:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2392, + 2394 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "43961:4:1" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "43961:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "43975:7:1" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "43975:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2183, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)", + "value": "_tryGet" + }, + "id": 2395, + "name": "Identifier", + "src": "43992:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2382, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2396, + "name": "Identifier", + "src": "44000:3:1" + } + ], + "id": 2397, + "name": "MemberAccess", + "src": "44000:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "44012:7:1" + } + ], + "id": 2399, + "name": "ElementaryTypeNameExpression", + "src": "44012:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2384, + "type": "uint256", + "value": "key" + }, + "id": 2400, + "name": "Identifier", + "src": "44020:3:1" + } + ], + "id": 2401, + "name": "FunctionCall", + "src": "44012:12:1" + } + ], + "id": 2402, + "name": "FunctionCall", + "src": "43992:33:1" + } + ], + "id": 2403, + "name": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "attributes": { + "functionReturnParameters": 2390 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,address payable)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2392, + "type": "bool", + "value": "success" + }, + "id": 2404, + "name": "Identifier", + "src": "44043:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2405, + "name": "ElementaryTypeName", + "src": "44052:7:1" + } + ], + "id": 2406, + "name": "ElementaryTypeNameExpression", + "src": "44052:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "44060:7:1" + } + ], + "id": 2408, + "name": "ElementaryTypeNameExpression", + "src": "44060:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "44068:7:1" + } + ], + "id": 2410, + "name": "ElementaryTypeNameExpression", + "src": "44068:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2394, + "type": "bytes32", + "value": "value" + }, + "id": 2411, + "name": "Identifier", + "src": "44076:5:1" + } + ], + "id": 2412, + "name": "FunctionCall", + "src": "44068:14:1" + } + ], + "id": 2413, + "name": "FunctionCall", + "src": "44060:23:1" + } + ], + "id": 2414, + "name": "FunctionCall", + "src": "44052:32:1" + } + ], + "id": 2415, + "name": "TupleExpression", + "src": "44042:43:1" + } + ], + "id": 2416, + "name": "Return", + "src": "44035:50:1" + } + ], + "id": 2417, + "name": "Block", + "src": "43950:142:1" + } + ], + "id": 2418, + "name": "FunctionDefinition", + "src": "43853:239:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2419, + "name": "StructuredDocumentation", + "src": "44098:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2447, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2420, + "name": "UserDefinedTypeName", + "src": "44257:16:1" + } + ], + "id": 2421, + "name": "VariableDeclaration", + "src": "44257:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2422, + "name": "ElementaryTypeName", + "src": "44287:7:1" + } + ], + "id": 2423, + "name": "VariableDeclaration", + "src": "44287:11:1" + } + ], + "id": 2424, + "name": "ParameterList", + "src": "44256:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2425, + "name": "ElementaryTypeName", + "src": "44323:7:1" + } + ], + "id": 2426, + "name": "VariableDeclaration", + "src": "44323:7:1" + } + ], + "id": 2427, + "name": "ParameterList", + "src": "44322:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2427 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2428, + "name": "ElementaryTypeName", + "src": "44349:7:1" + } + ], + "id": 2429, + "name": "ElementaryTypeNameExpression", + "src": "44349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2430, + "name": "ElementaryTypeName", + "src": "44357:7:1" + } + ], + "id": 2431, + "name": "ElementaryTypeNameExpression", + "src": "44357:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2432, + "name": "ElementaryTypeName", + "src": "44365:7:1" + } + ], + "id": 2433, + "name": "ElementaryTypeNameExpression", + "src": "44365:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)", + "value": "_get" + }, + "id": 2434, + "name": "Identifier", + "src": "44373:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2421, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2435, + "name": "Identifier", + "src": "44378:3:1" + } + ], + "id": 2436, + "name": "MemberAccess", + "src": "44378:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "44390:7:1" + } + ], + "id": 2438, + "name": "ElementaryTypeNameExpression", + "src": "44390:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2423, + "type": "uint256", + "value": "key" + }, + "id": 2439, + "name": "Identifier", + "src": "44398:3:1" + } + ], + "id": 2440, + "name": "FunctionCall", + "src": "44390:12:1" + } + ], + "id": 2441, + "name": "FunctionCall", + "src": "44373:30:1" + } + ], + "id": 2442, + "name": "FunctionCall", + "src": "44365:39:1" + } + ], + "id": 2443, + "name": "FunctionCall", + "src": "44357:48:1" + } + ], + "id": 2444, + "name": "FunctionCall", + "src": "44349:57:1" + } + ], + "id": 2445, + "name": "Return", + "src": "44342:64:1" + } + ], + "id": 2446, + "name": "Block", + "src": "44332:81:1" + } + ], + "id": 2447, + "name": "FunctionDefinition", + "src": "44244:169:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2448, + "name": "StructuredDocumentation", + "src": "44419:269:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2479, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2449, + "name": "UserDefinedTypeName", + "src": "44706:16:1" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "44706:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2451, + "name": "ElementaryTypeName", + "src": "44736:7:1" + } + ], + "id": 2452, + "name": "VariableDeclaration", + "src": "44736:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2479, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "44749:6:1" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "44749:26:1" + } + ], + "id": 2455, + "name": "ParameterList", + "src": "44705:71:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2456, + "name": "ElementaryTypeName", + "src": "44800:7:1" + } + ], + "id": 2457, + "name": "VariableDeclaration", + "src": "44800:7:1" + } + ], + "id": 2458, + "name": "ParameterList", + "src": "44799:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2458 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "44826:7:1" + } + ], + "id": 2460, + "name": "ElementaryTypeNameExpression", + "src": "44826:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "44834:7:1" + } + ], + "id": 2462, + "name": "ElementaryTypeNameExpression", + "src": "44834:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2463, + "name": "ElementaryTypeName", + "src": "44842:7:1" + } + ], + "id": 2464, + "name": "ElementaryTypeNameExpression", + "src": "44842:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)", + "value": "_get" + }, + "id": 2465, + "name": "Identifier", + "src": "44850:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2450, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2466, + "name": "Identifier", + "src": "44855:3:1" + } + ], + "id": 2467, + "name": "MemberAccess", + "src": "44855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2468, + "name": "ElementaryTypeName", + "src": "44867:7:1" + } + ], + "id": 2469, + "name": "ElementaryTypeNameExpression", + "src": "44867:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2452, + "type": "uint256", + "value": "key" + }, + "id": 2470, + "name": "Identifier", + "src": "44875:3:1" + } + ], + "id": 2471, + "name": "FunctionCall", + "src": "44867:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2454, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2472, + "name": "Identifier", + "src": "44881:12:1" + } + ], + "id": 2473, + "name": "FunctionCall", + "src": "44850:44:1" + } + ], + "id": 2474, + "name": "FunctionCall", + "src": "44842:53:1" + } + ], + "id": 2475, + "name": "FunctionCall", + "src": "44834:62:1" + } + ], + "id": 2476, + "name": "FunctionCall", + "src": "44826:71:1" + } + ], + "id": 2477, + "name": "Return", + "src": "44819:78:1" + } + ], + "id": 2478, + "name": "Block", + "src": "44809:95:1" + } + ], + "id": 2479, + "name": "FunctionDefinition", + "src": "44693:211:1" + } + ], + "id": 2480, + "name": "ContractDefinition", + "src": "35943:8963:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2481, + "name": "PragmaDirective", + "src": "44959:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev String operations." + }, + "id": 2482, + "name": "StructuredDocumentation", + "src": "44992:34:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toString", + "scope": 2566, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2483, + "name": "StructuredDocumentation", + "src": "45049:82:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2565, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2484, + "name": "ElementaryTypeName", + "src": "45154:7:1" + } + ], + "id": 2485, + "name": "VariableDeclaration", + "src": "45154:13:1" + } + ], + "id": 2486, + "name": "ParameterList", + "src": "45153:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2565, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "45192:6:1" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "45192:13:1" + } + ], + "id": 2489, + "name": "ParameterList", + "src": "45191:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2490, + "name": "Identifier", + "src": "45409:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2491, + "name": "Literal", + "src": "45418:1:1" + } + ], + "id": 2492, + "name": "BinaryOperation", + "src": "45409:10:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"0\"", + "value": "0" + }, + "id": 2493, + "name": "Literal", + "src": "45442:3:1" + } + ], + "id": 2494, + "name": "Return", + "src": "45435:10:1" + } + ], + "id": 2495, + "name": "Block", + "src": "45421:35:1" + } + ], + "id": 2496, + "name": "IfStatement", + "src": "45405:51:1" + }, + { + "attributes": { + "assignments": [ + 2498 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "temp", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2497, + "name": "ElementaryTypeName", + "src": "45465:7:1" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "45465:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2499, + "name": "Identifier", + "src": "45480:5:1" + } + ], + "id": 2500, + "name": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "attributes": { + "assignments": [ + 2502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "digits", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "45495:7:1" + } + ], + "id": 2502, + "name": "VariableDeclaration", + "src": "45495:14:1" + } + ], + "id": 2503, + "name": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2504, + "name": "Identifier", + "src": "45526:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2505, + "name": "Literal", + "src": "45534:1:1" + } + ], + "id": 2506, + "name": "BinaryOperation", + "src": "45526:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2507, + "name": "Identifier", + "src": "45551:6:1" + } + ], + "id": 2508, + "name": "UnaryOperation", + "src": "45551:8:1" + } + ], + "id": 2509, + "name": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2510, + "name": "Identifier", + "src": "45573:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2511, + "name": "Literal", + "src": "45581:2:1" + } + ], + "id": 2512, + "name": "Assignment", + "src": "45573:10:1" + } + ], + "id": 2513, + "name": "ExpressionStatement", + "src": "45573:10:1" + } + ], + "id": 2514, + "name": "Block", + "src": "45537:57:1" + } + ], + "id": 2515, + "name": "WhileStatement", + "src": "45519:75:1" + }, + { + "attributes": { + "assignments": [ + 2517 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "buffer", + "scope": 2564, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2516, + "name": "ElementaryTypeName", + "src": "45603:5:1" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "45603:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "function (uint256) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "45629:5:1" + } + ], + "id": 2519, + "name": "NewExpression", + "src": "45625:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2520, + "name": "Identifier", + "src": "45635:6:1" + } + ], + "id": 2521, + "name": "FunctionCall", + "src": "45625:17:1" + } + ], + "id": 2522, + "name": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "attributes": { + "assignments": [ + 2524 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2523, + "name": "ElementaryTypeName", + "src": "45652:7:1" + } + ], + "id": 2524, + "name": "VariableDeclaration", + "src": "45652:13:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2525, + "name": "Identifier", + "src": "45668:6:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2526, + "name": "Literal", + "src": "45677:1:1" + } + ], + "id": 2527, + "name": "BinaryOperation", + "src": "45668:10:1" + } + ], + "id": 2528, + "name": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2529, + "name": "Identifier", + "src": "45688:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2530, + "name": "Identifier", + "src": "45695:5:1" + } + ], + "id": 2531, + "name": "Assignment", + "src": "45688:12:1" + } + ], + "id": 2532, + "name": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2533, + "name": "Identifier", + "src": "45717:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2534, + "name": "Literal", + "src": "45725:1:1" + } + ], + "id": 2535, + "name": "BinaryOperation", + "src": "45717:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2536, + "name": "Identifier", + "src": "45742:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "--", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2524, + "type": "uint256", + "value": "index" + }, + "id": 2537, + "name": "Identifier", + "src": "45749:5:1" + } + ], + "id": 2538, + "name": "UnaryOperation", + "src": "45749:7:1" + } + ], + "id": 2539, + "name": "IndexAccess", + "src": "45742:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes1", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes1)" + }, + "children": [ + { + "attributes": { + "name": "bytes1" + }, + "id": 2540, + "name": "ElementaryTypeName", + "src": "45760:6:1" + } + ], + "id": 2541, + "name": "ElementaryTypeNameExpression", + "src": "45760:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 2542, + "name": "ElementaryTypeName", + "src": "45767:5:1" + } + ], + "id": 2543, + "name": "ElementaryTypeNameExpression", + "src": "45767:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "hexvalue": "3438", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 48", + "value": "48" + }, + "id": 2544, + "name": "Literal", + "src": "45773:2:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2545, + "name": "Identifier", + "src": "45778:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2546, + "name": "Literal", + "src": "45785:2:1" + } + ], + "id": 2547, + "name": "BinaryOperation", + "src": "45778:9:1" + } + ], + "id": 2548, + "name": "BinaryOperation", + "src": "45773:14:1" + } + ], + "id": 2549, + "name": "FunctionCall", + "src": "45767:21:1" + } + ], + "id": 2550, + "name": "FunctionCall", + "src": "45760:29:1" + } + ], + "id": 2551, + "name": "Assignment", + "src": "45742:47:1" + } + ], + "id": 2552, + "name": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2553, + "name": "Identifier", + "src": "45803:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2554, + "name": "Literal", + "src": "45811:2:1" + } + ], + "id": 2555, + "name": "Assignment", + "src": "45803:10:1" + } + ], + "id": 2556, + "name": "ExpressionStatement", + "src": "45803:10:1" + } + ], + "id": 2557, + "name": "Block", + "src": "45728:96:1" + } + ], + "id": 2558, + "name": "WhileStatement", + "src": "45710:114:1" + }, + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2559, + "name": "ElementaryTypeName", + "src": "45840:6:1" + } + ], + "id": 2560, + "name": "ElementaryTypeNameExpression", + "src": "45840:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2561, + "name": "Identifier", + "src": "45847:6:1" + } + ], + "id": 2562, + "name": "FunctionCall", + "src": "45840:14:1" + } + ], + "id": 2563, + "name": "Return", + "src": "45833:21:1" + } + ], + "id": 2564, + "name": "Block", + "src": "45207:654:1" + } + ], + "id": 2565, + "name": "FunctionDefinition", + "src": "45136:725:1" + } + ], + "id": 2566, + "name": "ContractDefinition", + "src": "45027:836:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2567, + "name": "PragmaDirective", + "src": "45922:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 2568, + "name": "StructuredDocumentation", + "src": "45955:124:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "Context", + "referencedDeclaration": 530, + "type": "contract Context" + }, + "id": 2569, + "name": "UserDefinedTypeName", + "src": "46099:7:1" + } + ], + "id": 2570, + "name": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "ERC165", + "referencedDeclaration": 781, + "type": "contract ERC165" + }, + "id": 2571, + "name": "UserDefinedTypeName", + "src": "46108:6:1" + } + ], + "id": 2572, + "name": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 2573, + "name": "UserDefinedTypeName", + "src": "46116:7:1" + } + ], + "id": 2574, + "name": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Metadata", + "referencedDeclaration": 680, + "type": "contract IERC721Metadata" + }, + "id": 2575, + "name": "UserDefinedTypeName", + "src": "46125:15:1" + } + ], + "id": 2576, + "name": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Enumerable", + "referencedDeclaration": 709, + "type": "contract IERC721Enumerable" + }, + "id": 2577, + "name": "UserDefinedTypeName", + "src": "46142:17:1" + } + ], + "id": 2578, + "name": "InheritanceSpecifier", + "src": "46142:17:1" + }, + { + "children": [ + { + "attributes": { + "name": "SafeMath", + "referencedDeclaration": 1135, + "type": "library SafeMath" + }, + "id": 2579, + "name": "UserDefinedTypeName", + "src": "46172:8:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2580, + "name": "ElementaryTypeName", + "src": "46185:7:1" + } + ], + "id": 2581, + "name": "UsingForDirective", + "src": "46166:27:1" + }, + { + "children": [ + { + "attributes": { + "name": "Address", + "referencedDeclaration": 1430, + "type": "library Address" + }, + "id": 2582, + "name": "UserDefinedTypeName", + "src": "46204:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "46216:7:1" + } + ], + "id": 2584, + "name": "UsingForDirective", + "src": "46198:26:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableSet", + "referencedDeclaration": 1921, + "type": "library EnumerableSet" + }, + "id": 2585, + "name": "UserDefinedTypeName", + "src": "46235:13:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2586, + "name": "UserDefinedTypeName", + "src": "46253:21:1" + } + ], + "id": 2587, + "name": "UsingForDirective", + "src": "46229:46:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableMap", + "referencedDeclaration": 2480, + "type": "library EnumerableMap" + }, + "id": 2588, + "name": "UserDefinedTypeName", + "src": "46286:13:1" + }, + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2589, + "name": "UserDefinedTypeName", + "src": "46304:30:1" + } + ], + "id": 2590, + "name": "UsingForDirective", + "src": "46280:55:1" + }, + { + "children": [ + { + "attributes": { + "name": "Strings", + "referencedDeclaration": 2566, + "type": "library Strings" + }, + "id": 2591, + "name": "UserDefinedTypeName", + "src": "46346:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2592, + "name": "ElementaryTypeName", + "src": "46358:7:1" + } + ], + "id": 2593, + "name": "UsingForDirective", + "src": "46340:26:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "46544:6:1" + }, + { + "attributes": { + "hexvalue": "30783135306237613032", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 353073666", + "value": "0x150b7a02" + }, + "id": 2595, + "name": "Literal", + "src": "46587:10:1" + } + ], + "id": 2596, + "name": "VariableDeclaration", + "src": "46544:53:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_holderTokens", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => struct EnumerableSet.UintSet)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct EnumerableSet.UintSet)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2597, + "name": "ElementaryTypeName", + "src": "46690:7:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2598, + "name": "UserDefinedTypeName", + "src": "46701:21:1" + } + ], + "id": 2599, + "name": "Mapping", + "src": "46681:42:1" + } + ], + "id": 2600, + "name": "VariableDeclaration", + "src": "46681:64:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenOwners", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2601, + "name": "UserDefinedTypeName", + "src": "46809:30:1" + } + ], + "id": 2602, + "name": "VariableDeclaration", + "src": "46809:51:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => address)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => address)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2603, + "name": "ElementaryTypeName", + "src": "46925:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "46936:7:1" + } + ], + "id": 2605, + "name": "Mapping", + "src": "46916:28:1" + } + ], + "id": 2606, + "name": "VariableDeclaration", + "src": "46916:52:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_operatorApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => mapping(address => bool))", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => mapping(address => bool))" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2607, + "name": "ElementaryTypeName", + "src": "47032:7:1" + }, + { + "attributes": { + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2608, + "name": "ElementaryTypeName", + "src": "47052:7:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2609, + "name": "ElementaryTypeName", + "src": "47063:4:1" + } + ], + "id": 2610, + "name": "Mapping", + "src": "47043:25:1" + } + ], + "id": 2611, + "name": "Mapping", + "src": "47023:46:1" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "47023:73:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_name", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "47121:6:1" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "47121:20:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_symbol", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "47168:6:1" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "47168:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURIs", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => string)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => string)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "47245:7:1" + }, + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2618, + "name": "ElementaryTypeName", + "src": "47256:6:1" + } + ], + "id": 2619, + "name": "Mapping", + "src": "47236:27:1" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "47236:46:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_baseURI", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2621, + "name": "ElementaryTypeName", + "src": "47305:6:1" + } + ], + "id": 2622, + "name": "VariableDeclaration", + "src": "47305:23:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2623, + "name": "ElementaryTypeName", + "src": "48204:6:1" + }, + { + "attributes": { + "hexvalue": "30783830616335386364", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2158778573", + "value": "0x80ac58cd" + }, + "id": 2624, + "name": "Literal", + "src": "48251:10:1" + } + ], + "id": 2625, + "name": "VariableDeclaration", + "src": "48204:57:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2626, + "name": "ElementaryTypeName", + "src": "48527:6:1" + }, + { + "attributes": { + "hexvalue": "30783562356531333966", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1532892063", + "value": "0x5b5e139f" + }, + "id": 2627, + "name": "Literal", + "src": "48583:10:1" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "48527:66:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "48898:6:1" + }, + { + "attributes": { + "hexvalue": "30783738306539643633", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2014223715", + "value": "0x780e9d63" + }, + "id": 2630, + "name": "Literal", + "src": "48956:10:1" + } + ], + "id": 2631, + "name": "VariableDeclaration", + "src": "48898:68:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2632, + "name": "StructuredDocumentation", + "src": "48973:108:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "name_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2633, + "name": "ElementaryTypeName", + "src": "49099:6:1" + } + ], + "id": 2634, + "name": "VariableDeclaration", + "src": "49099:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "symbol_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2635, + "name": "ElementaryTypeName", + "src": "49120:6:1" + } + ], + "id": 2636, + "name": "VariableDeclaration", + "src": "49120:21:1" + } + ], + "id": 2637, + "name": "ParameterList", + "src": "49098:44:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2638, + "name": "ParameterList", + "src": "49143:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2639, + "name": "Identifier", + "src": "49153:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2634, + "type": "string memory", + "value": "name_" + }, + "id": 2640, + "name": "Identifier", + "src": "49161:5:1" + } + ], + "id": 2641, + "name": "Assignment", + "src": "49153:13:1" + } + ], + "id": 2642, + "name": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2643, + "name": "Identifier", + "src": "49176:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2636, + "type": "string memory", + "value": "symbol_" + }, + "id": 2644, + "name": "Identifier", + "src": "49186:7:1" + } + ], + "id": 2645, + "name": "Assignment", + "src": "49176:17:1" + } + ], + "id": 2646, + "name": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2647, + "name": "Identifier", + "src": "49281:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2625, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721" + }, + "id": 2648, + "name": "Identifier", + "src": "49300:20:1" + } + ], + "id": 2649, + "name": "FunctionCall", + "src": "49281:40:1" + } + ], + "id": 2650, + "name": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2651, + "name": "Identifier", + "src": "49331:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2628, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_METADATA" + }, + "id": 2652, + "name": "Identifier", + "src": "49350:29:1" + } + ], + "id": 2653, + "name": "FunctionCall", + "src": "49331:49:1" + } + ], + "id": 2654, + "name": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2655, + "name": "Identifier", + "src": "49390:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2631, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_ENUMERABLE" + }, + "id": 2656, + "name": "Identifier", + "src": "49409:31:1" + } + ], + "id": 2657, + "name": "FunctionCall", + "src": "49390:51:1" + } + ], + "id": 2658, + "name": "ExpressionStatement", + "src": "49390:51:1" + } + ], + "id": 2659, + "name": "Block", + "src": "49143:305:1" + } + ], + "id": 2660, + "name": "FunctionDefinition", + "src": "49086:362:1" + }, + { + "attributes": { + "baseFunctions": [ + 580 + ], + "functionSelector": "70a08231", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-balanceOf}." + }, + "id": 2661, + "name": "StructuredDocumentation", + "src": "49454:48:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2665, + "name": "OverrideSpecifier", + "src": "49561:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2662, + "name": "ElementaryTypeName", + "src": "49526:7:1" + } + ], + "id": 2663, + "name": "VariableDeclaration", + "src": "49526:13:1" + } + ], + "id": 2664, + "name": "ParameterList", + "src": "49525:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2666, + "name": "ElementaryTypeName", + "src": "49579:7:1" + } + ], + "id": 2667, + "name": "VariableDeclaration", + "src": "49579:7:1" + } + ], + "id": 2668, + "name": "ParameterList", + "src": "49578:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2669, + "name": "Identifier", + "src": "49598:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2670, + "name": "Identifier", + "src": "49606:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2671, + "name": "ElementaryTypeName", + "src": "49615:7:1" + } + ], + "id": 2672, + "name": "ElementaryTypeNameExpression", + "src": "49615:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2673, + "name": "Literal", + "src": "49623:1:1" + } + ], + "id": 2674, + "name": "FunctionCall", + "src": "49615:10:1" + } + ], + "id": 2675, + "name": "BinaryOperation", + "src": "49606:19:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: balance query for the zero address\"", + "value": "ERC721: balance query for the zero address" + }, + "id": 2676, + "name": "Literal", + "src": "49627:44:1" + } + ], + "id": 2677, + "name": "FunctionCall", + "src": "49598:74:1" + } + ], + "id": 2678, + "name": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "attributes": { + "functionReturnParameters": 2668 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 1900, + "type": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2679, + "name": "Identifier", + "src": "49689:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2680, + "name": "Identifier", + "src": "49703:5:1" + } + ], + "id": 2681, + "name": "IndexAccess", + "src": "49689:20:1" + } + ], + "id": 2682, + "name": "MemberAccess", + "src": "49689:27:1" + } + ], + "id": 2683, + "name": "FunctionCall", + "src": "49689:29:1" + } + ], + "id": 2684, + "name": "Return", + "src": "49682:36:1" + } + ], + "id": 2685, + "name": "Block", + "src": "49588:137:1" + } + ], + "id": 2686, + "name": "FunctionDefinition", + "src": "49507:218:1" + }, + { + "attributes": { + "baseFunctions": [ + 588 + ], + "functionSelector": "6352211e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-ownerOf}." + }, + "id": 2687, + "name": "StructuredDocumentation", + "src": "49731:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2691, + "name": "OverrideSpecifier", + "src": "49836:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2688, + "name": "ElementaryTypeName", + "src": "49799:7:1" + } + ], + "id": 2689, + "name": "VariableDeclaration", + "src": "49799:15:1" + } + ], + "id": 2690, + "name": "ParameterList", + "src": "49798:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2692, + "name": "ElementaryTypeName", + "src": "49854:7:1" + } + ], + "id": 2693, + "name": "VariableDeclaration", + "src": "49854:7:1" + } + ], + "id": 2694, + "name": "ParameterList", + "src": "49853:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "get", + "referencedDeclaration": 2479, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2695, + "name": "Identifier", + "src": "49880:12:1" + } + ], + "id": 2696, + "name": "MemberAccess", + "src": "49880:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2689, + "type": "uint256", + "value": "tokenId" + }, + "id": 2697, + "name": "Identifier", + "src": "49897:7:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: owner query for nonexistent token\"", + "value": "ERC721: owner query for nonexistent token" + }, + "id": 2698, + "name": "Literal", + "src": "49906:43:1" + } + ], + "id": 2699, + "name": "FunctionCall", + "src": "49880:70:1" + } + ], + "id": 2700, + "name": "Return", + "src": "49873:77:1" + } + ], + "id": 2701, + "name": "Block", + "src": "49863:94:1" + } + ], + "id": 2702, + "name": "FunctionDefinition", + "src": "49782:175:1" + }, + { + "attributes": { + "baseFunctions": [ + 665 + ], + "functionSelector": "06fdde03", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-name}." + }, + "id": 2703, + "name": "StructuredDocumentation", + "src": "49963:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2705, + "name": "OverrideSpecifier", + "src": "50055:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2704, + "name": "ParameterList", + "src": "50032:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2712, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2706, + "name": "ElementaryTypeName", + "src": "50073:6:1" + } + ], + "id": 2707, + "name": "VariableDeclaration", + "src": "50073:13:1" + } + ], + "id": 2708, + "name": "ParameterList", + "src": "50072:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2708 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2709, + "name": "Identifier", + "src": "50105:5:1" + } + ], + "id": 2710, + "name": "Return", + "src": "50098:12:1" + } + ], + "id": 2711, + "name": "Block", + "src": "50088:29:1" + } + ], + "id": 2712, + "name": "FunctionDefinition", + "src": "50019:98:1" + }, + { + "attributes": { + "baseFunctions": [ + 671 + ], + "functionSelector": "95d89b41", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-symbol}." + }, + "id": 2713, + "name": "StructuredDocumentation", + "src": "50123:53:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2715, + "name": "OverrideSpecifier", + "src": "50219:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2714, + "name": "ParameterList", + "src": "50196:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2722, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2716, + "name": "ElementaryTypeName", + "src": "50237:6:1" + } + ], + "id": 2717, + "name": "VariableDeclaration", + "src": "50237:13:1" + } + ], + "id": 2718, + "name": "ParameterList", + "src": "50236:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2718 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2719, + "name": "Identifier", + "src": "50269:7:1" + } + ], + "id": 2720, + "name": "Return", + "src": "50262:14:1" + } + ], + "id": 2721, + "name": "Block", + "src": "50252:31:1" + } + ], + "id": 2722, + "name": "FunctionDefinition", + "src": "50181:102:1" + }, + { + "attributes": { + "baseFunctions": [ + 679 + ], + "functionSelector": "c87b56dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "id": 2723, + "name": "StructuredDocumentation", + "src": "50289:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2727, + "name": "OverrideSpecifier", + "src": "50404:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2790, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2724, + "name": "ElementaryTypeName", + "src": "50367:7:1" + } + ], + "id": 2725, + "name": "VariableDeclaration", + "src": "50367:15:1" + } + ], + "id": 2726, + "name": "ParameterList", + "src": "50366:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2790, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2728, + "name": "ElementaryTypeName", + "src": "50422:6:1" + } + ], + "id": 2729, + "name": "VariableDeclaration", + "src": "50422:13:1" + } + ], + "id": 2730, + "name": "ParameterList", + "src": "50421:15:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2731, + "name": "Identifier", + "src": "50447:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2732, + "name": "Identifier", + "src": "50455:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2733, + "name": "Identifier", + "src": "50463:7:1" + } + ], + "id": 2734, + "name": "FunctionCall", + "src": "50455:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI query for nonexistent token\"", + "value": "ERC721Metadata: URI query for nonexistent token" + }, + "id": 2735, + "name": "Literal", + "src": "50473:49:1" + } + ], + "id": 2736, + "name": "FunctionCall", + "src": "50447:76:1" + } + ], + "id": 2737, + "name": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "attributes": { + "assignments": [ + 2739 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2738, + "name": "ElementaryTypeName", + "src": "50534:6:1" + } + ], + "id": 2739, + "name": "VariableDeclaration", + "src": "50534:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 2740, + "name": "Identifier", + "src": "50560:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2741, + "name": "Identifier", + "src": "50571:7:1" + } + ], + "id": 2742, + "name": "IndexAccess", + "src": "50560:19:1" + } + ], + "id": 2743, + "name": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "attributes": { + "assignments": [ + 2745 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "base", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2744, + "name": "ElementaryTypeName", + "src": "50589:6:1" + } + ], + "id": 2745, + "name": "VariableDeclaration", + "src": "50589:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2799, + "type": "function () view returns (string memory)", + "value": "baseURI" + }, + "id": 2746, + "name": "Identifier", + "src": "50610:7:1" + } + ], + "id": 2747, + "name": "FunctionCall", + "src": "50610:9:1" + } + ], + "id": 2748, + "name": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2749, + "name": "ElementaryTypeName", + "src": "50692:5:1" + } + ], + "id": 2750, + "name": "ElementaryTypeNameExpression", + "src": "50692:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2751, + "name": "Identifier", + "src": "50698:4:1" + } + ], + "id": 2752, + "name": "FunctionCall", + "src": "50692:11:1" + } + ], + "id": 2753, + "name": "MemberAccess", + "src": "50692:18:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2754, + "name": "Literal", + "src": "50714:1:1" + } + ], + "id": 2755, + "name": "BinaryOperation", + "src": "50692:23:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2756, + "name": "Identifier", + "src": "50738:9:1" + } + ], + "id": 2757, + "name": "Return", + "src": "50731:16:1" + } + ], + "id": 2758, + "name": "Block", + "src": "50717:41:1" + } + ], + "id": 2759, + "name": "IfStatement", + "src": "50688:70:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2760, + "name": "ElementaryTypeName", + "src": "50860:5:1" + } + ], + "id": 2761, + "name": "ElementaryTypeNameExpression", + "src": "50860:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2762, + "name": "Identifier", + "src": "50866:9:1" + } + ], + "id": 2763, + "name": "FunctionCall", + "src": "50860:16:1" + } + ], + "id": 2764, + "name": "MemberAccess", + "src": "50860:23:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2765, + "name": "Literal", + "src": "50886:1:1" + } + ], + "id": 2766, + "name": "BinaryOperation", + "src": "50860:27:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2767, + "name": "ElementaryTypeName", + "src": "50910:6:1" + } + ], + "id": 2768, + "name": "ElementaryTypeNameExpression", + "src": "50910:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2769, + "name": "Identifier", + "src": "50917:3:1" + } + ], + "id": 2770, + "name": "MemberAccess", + "src": "50917:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2771, + "name": "Identifier", + "src": "50934:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2772, + "name": "Identifier", + "src": "50940:9:1" + } + ], + "id": 2773, + "name": "FunctionCall", + "src": "50917:33:1" + } + ], + "id": 2774, + "name": "FunctionCall", + "src": "50910:41:1" + } + ], + "id": 2775, + "name": "Return", + "src": "50903:48:1" + } + ], + "id": 2776, + "name": "Block", + "src": "50889:73:1" + } + ], + "id": 2777, + "name": "IfStatement", + "src": "50856:106:1" + }, + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2778, + "name": "ElementaryTypeName", + "src": "51068:6:1" + } + ], + "id": 2779, + "name": "ElementaryTypeNameExpression", + "src": "51068:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2780, + "name": "Identifier", + "src": "51075:3:1" + } + ], + "id": 2781, + "name": "MemberAccess", + "src": "51075:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2782, + "name": "Identifier", + "src": "51092:4:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "toString", + "referencedDeclaration": 2565, + "type": "function (uint256) pure returns (string memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2783, + "name": "Identifier", + "src": "51098:7:1" + } + ], + "id": 2784, + "name": "MemberAccess", + "src": "51098:16:1" + } + ], + "id": 2785, + "name": "FunctionCall", + "src": "51098:18:1" + } + ], + "id": 2786, + "name": "FunctionCall", + "src": "51075:42:1" + } + ], + "id": 2787, + "name": "FunctionCall", + "src": "51068:50:1" + } + ], + "id": 2788, + "name": "Return", + "src": "51061:57:1" + } + ], + "id": 2789, + "name": "Block", + "src": "50437:688:1" + } + ], + "id": 2790, + "name": "FunctionDefinition", + "src": "50349:776:1" + }, + { + "attributes": { + "functionSelector": "6c0360eb", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "baseURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "id": 2791, + "name": "StructuredDocumentation", + "src": "51131:221:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2792, + "name": "ParameterList", + "src": "51373:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2799, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2793, + "name": "ElementaryTypeName", + "src": "51405:6:1" + } + ], + "id": 2794, + "name": "VariableDeclaration", + "src": "51405:13:1" + } + ], + "id": 2795, + "name": "ParameterList", + "src": "51404:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2795 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 2796, + "name": "Identifier", + "src": "51437:8:1" + } + ], + "id": 2797, + "name": "Return", + "src": "51430:15:1" + } + ], + "id": 2798, + "name": "Block", + "src": "51420:32:1" + } + ], + "id": 2799, + "name": "FunctionDefinition", + "src": "51357:95:1" + }, + { + "attributes": { + "baseFunctions": [ + 700 + ], + "functionSelector": "2f745c59", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "id": 2800, + "name": "StructuredDocumentation", + "src": "51458:68:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2806, + "name": "OverrideSpecifier", + "src": "51610:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2801, + "name": "ElementaryTypeName", + "src": "51560:7:1" + } + ], + "id": 2802, + "name": "VariableDeclaration", + "src": "51560:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2803, + "name": "ElementaryTypeName", + "src": "51575:7:1" + } + ], + "id": 2804, + "name": "VariableDeclaration", + "src": "51575:13:1" + } + ], + "id": 2805, + "name": "ParameterList", + "src": "51559:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2807, + "name": "ElementaryTypeName", + "src": "51628:7:1" + } + ], + "id": 2808, + "name": "VariableDeclaration", + "src": "51628:7:1" + } + ], + "id": 2809, + "name": "ParameterList", + "src": "51627:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2809 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 1920, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2810, + "name": "Identifier", + "src": "51654:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2802, + "type": "address", + "value": "owner" + }, + "id": 2811, + "name": "Identifier", + "src": "51668:5:1" + } + ], + "id": 2812, + "name": "IndexAccess", + "src": "51654:20:1" + } + ], + "id": 2813, + "name": "MemberAccess", + "src": "51654:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2804, + "type": "uint256", + "value": "index" + }, + "id": 2814, + "name": "Identifier", + "src": "51678:5:1" + } + ], + "id": 2815, + "name": "FunctionCall", + "src": "51654:30:1" + } + ], + "id": 2816, + "name": "Return", + "src": "51647:37:1" + } + ], + "id": 2817, + "name": "Block", + "src": "51637:54:1" + } + ], + "id": 2818, + "name": "FunctionDefinition", + "src": "51531:160:1" + }, + { + "attributes": { + "baseFunctions": [ + 690 + ], + "functionSelector": "18160ddd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "id": 2819, + "name": "StructuredDocumentation", + "src": "51697:60:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2821, + "name": "OverrideSpecifier", + "src": "51805:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2820, + "name": "ParameterList", + "src": "51782:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2830, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2822, + "name": "ElementaryTypeName", + "src": "51823:7:1" + } + ], + "id": 2823, + "name": "VariableDeclaration", + "src": "51823:7:1" + } + ], + "id": 2824, + "name": "ParameterList", + "src": "51822:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2824 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 2340, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2825, + "name": "Identifier", + "src": "51942:12:1" + } + ], + "id": 2826, + "name": "MemberAccess", + "src": "51942:19:1" + } + ], + "id": 2827, + "name": "FunctionCall", + "src": "51942:21:1" + } + ], + "id": 2828, + "name": "Return", + "src": "51935:28:1" + } + ], + "id": 2829, + "name": "Block", + "src": "51832:138:1" + } + ], + "id": 2830, + "name": "FunctionDefinition", + "src": "51762:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 708 + ], + "functionSelector": "4f6ccce7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "id": 2831, + "name": "StructuredDocumentation", + "src": "51976:61:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2835, + "name": "OverrideSpecifier", + "src": "52099:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2832, + "name": "ElementaryTypeName", + "src": "52064:7:1" + } + ], + "id": 2833, + "name": "VariableDeclaration", + "src": "52064:13:1" + } + ], + "id": 2834, + "name": "ParameterList", + "src": "52063:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2836, + "name": "ElementaryTypeName", + "src": "52117:7:1" + } + ], + "id": 2837, + "name": "VariableDeclaration", + "src": "52117:7:1" + } + ], + "id": 2838, + "name": "ParameterList", + "src": "52116:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2840, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2848, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2839, + "name": "ElementaryTypeName", + "src": "52137:7:1" + } + ], + "id": 2840, + "name": "VariableDeclaration", + "src": "52137:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(uint256,address)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 2379, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2841, + "name": "Identifier", + "src": "52158:12:1" + } + ], + "id": 2842, + "name": "MemberAccess", + "src": "52158:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2833, + "type": "uint256", + "value": "index" + }, + "id": 2843, + "name": "Identifier", + "src": "52174:5:1" + } + ], + "id": 2844, + "name": "FunctionCall", + "src": "52158:22:1" + } + ], + "id": 2845, + "name": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2838 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2840, + "type": "uint256", + "value": "tokenId" + }, + "id": 2846, + "name": "Identifier", + "src": "52197:7:1" + } + ], + "id": 2847, + "name": "Return", + "src": "52190:14:1" + } + ], + "id": 2848, + "name": "Block", + "src": "52126:85:1" + } + ], + "id": 2849, + "name": "FunctionDefinition", + "src": "52042:169:1" + }, + { + "attributes": { + "baseFunctions": [ + 616 + ], + "functionSelector": "095ea7b3", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-approve}." + }, + "id": 2850, + "name": "StructuredDocumentation", + "src": "52217:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2856, + "name": "OverrideSpecifier", + "src": "52329:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2851, + "name": "ElementaryTypeName", + "src": "52285:7:1" + } + ], + "id": 2852, + "name": "VariableDeclaration", + "src": "52285:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2853, + "name": "ElementaryTypeName", + "src": "52297:7:1" + } + ], + "id": 2854, + "name": "VariableDeclaration", + "src": "52297:15:1" + } + ], + "id": 2855, + "name": "ParameterList", + "src": "52284:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2857, + "name": "ParameterList", + "src": "52338:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2859 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2892, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2858, + "name": "ElementaryTypeName", + "src": "52348:7:1" + } + ], + "id": 2859, + "name": "VariableDeclaration", + "src": "52348:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2860, + "name": "Identifier", + "src": "52364:6:1" + } + ], + "id": 2861, + "name": "MemberAccess", + "src": "52364:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2862, + "name": "Identifier", + "src": "52379:7:1" + } + ], + "id": 2863, + "name": "FunctionCall", + "src": "52364:23:1" + } + ], + "id": 2864, + "name": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2865, + "name": "Identifier", + "src": "52397:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2866, + "name": "Identifier", + "src": "52405:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2867, + "name": "Identifier", + "src": "52411:5:1" + } + ], + "id": 2868, + "name": "BinaryOperation", + "src": "52405:11:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approval to current owner\"", + "value": "ERC721: approval to current owner" + }, + "id": 2869, + "name": "Literal", + "src": "52418:35:1" + } + ], + "id": 2870, + "name": "FunctionCall", + "src": "52397:57:1" + } + ], + "id": 2871, + "name": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2872, + "name": "Identifier", + "src": "52465:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2873, + "name": "Identifier", + "src": "52473:10:1" + } + ], + "id": 2874, + "name": "FunctionCall", + "src": "52473:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2875, + "name": "Identifier", + "src": "52489:5:1" + } + ], + "id": 2876, + "name": "BinaryOperation", + "src": "52473:21:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2877, + "name": "Identifier", + "src": "52498:6:1" + } + ], + "id": 2878, + "name": "MemberAccess", + "src": "52498:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2879, + "name": "Identifier", + "src": "52522:5:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2880, + "name": "Identifier", + "src": "52529:10:1" + } + ], + "id": 2881, + "name": "FunctionCall", + "src": "52529:12:1" + } + ], + "id": 2882, + "name": "FunctionCall", + "src": "52498:44:1" + } + ], + "id": 2883, + "name": "BinaryOperation", + "src": "52473:69:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve caller is not owner nor approved for all\"", + "value": "ERC721: approve caller is not owner nor approved for all" + }, + "id": 2884, + "name": "Literal", + "src": "52556:58:1" + } + ], + "id": 2885, + "name": "FunctionCall", + "src": "52465:159:1" + } + ], + "id": 2886, + "name": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 2887, + "name": "Identifier", + "src": "52635:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2888, + "name": "Identifier", + "src": "52644:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2889, + "name": "Identifier", + "src": "52648:7:1" + } + ], + "id": 2890, + "name": "FunctionCall", + "src": "52635:21:1" + } + ], + "id": 2891, + "name": "ExpressionStatement", + "src": "52635:21:1" + } + ], + "id": 2892, + "name": "Block", + "src": "52338:325:1" + } + ], + "id": 2893, + "name": "FunctionDefinition", + "src": "52268:395:1" + }, + { + "attributes": { + "baseFunctions": [ + 624 + ], + "functionSelector": "081812fc", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-getApproved}." + }, + "id": 2894, + "name": "StructuredDocumentation", + "src": "52669:50:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2898, + "name": "OverrideSpecifier", + "src": "52782:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2895, + "name": "ElementaryTypeName", + "src": "52745:7:1" + } + ], + "id": 2896, + "name": "VariableDeclaration", + "src": "52745:15:1" + } + ], + "id": 2897, + "name": "ParameterList", + "src": "52744:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2899, + "name": "ElementaryTypeName", + "src": "52800:7:1" + } + ], + "id": 2900, + "name": "VariableDeclaration", + "src": "52800:7:1" + } + ], + "id": 2901, + "name": "ParameterList", + "src": "52799:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2902, + "name": "Identifier", + "src": "52819:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2903, + "name": "Identifier", + "src": "52827:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2904, + "name": "Identifier", + "src": "52835:7:1" + } + ], + "id": 2905, + "name": "FunctionCall", + "src": "52827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approved query for nonexistent token\"", + "value": "ERC721: approved query for nonexistent token" + }, + "id": 2906, + "name": "Literal", + "src": "52845:46:1" + } + ], + "id": 2907, + "name": "FunctionCall", + "src": "52819:73:1" + } + ], + "id": 2908, + "name": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "attributes": { + "functionReturnParameters": 2901 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 2909, + "name": "Identifier", + "src": "52910:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2910, + "name": "Identifier", + "src": "52926:7:1" + } + ], + "id": 2911, + "name": "IndexAccess", + "src": "52910:24:1" + } + ], + "id": 2912, + "name": "Return", + "src": "52903:31:1" + } + ], + "id": 2913, + "name": "Block", + "src": "52809:132:1" + } + ], + "id": 2914, + "name": "FunctionDefinition", + "src": "52724:217:1" + }, + { + "attributes": { + "baseFunctions": [ + 632 + ], + "functionSelector": "a22cb465", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "id": 2915, + "name": "StructuredDocumentation", + "src": "52947:56:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2921, + "name": "OverrideSpecifier", + "src": "53083:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2916, + "name": "ElementaryTypeName", + "src": "53035:7:1" + } + ], + "id": 2917, + "name": "VariableDeclaration", + "src": "53035:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "approved", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2918, + "name": "ElementaryTypeName", + "src": "53053:4:1" + } + ], + "id": 2919, + "name": "VariableDeclaration", + "src": "53053:13:1" + } + ], + "id": 2920, + "name": "ParameterList", + "src": "53034:33:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2922, + "name": "ParameterList", + "src": "53092:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2923, + "name": "Identifier", + "src": "53102:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2924, + "name": "Identifier", + "src": "53110:8:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2925, + "name": "Identifier", + "src": "53122:10:1" + } + ], + "id": 2926, + "name": "FunctionCall", + "src": "53122:12:1" + } + ], + "id": 2927, + "name": "BinaryOperation", + "src": "53110:24:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f766520746f2063616c6c6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve to caller\"", + "value": "ERC721: approve to caller" + }, + "id": 2928, + "name": "Literal", + "src": "53136:27:1" + } + ], + "id": 2929, + "name": "FunctionCall", + "src": "53102:62:1" + } + ], + "id": 2930, + "name": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2931, + "name": "Identifier", + "src": "53175:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2932, + "name": "Identifier", + "src": "53194:10:1" + } + ], + "id": 2933, + "name": "FunctionCall", + "src": "53194:12:1" + } + ], + "id": 2935, + "name": "IndexAccess", + "src": "53175:32:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2934, + "name": "Identifier", + "src": "53208:8:1" + } + ], + "id": 2936, + "name": "IndexAccess", + "src": "53175:42:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2937, + "name": "Identifier", + "src": "53220:8:1" + } + ], + "id": 2938, + "name": "Assignment", + "src": "53175:53:1" + } + ], + "id": 2939, + "name": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 572, + "type": "function (address,address,bool)", + "value": "ApprovalForAll" + }, + "id": 2940, + "name": "Identifier", + "src": "53243:14:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2941, + "name": "Identifier", + "src": "53258:10:1" + } + ], + "id": 2942, + "name": "FunctionCall", + "src": "53258:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2943, + "name": "Identifier", + "src": "53272:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2944, + "name": "Identifier", + "src": "53282:8:1" + } + ], + "id": 2945, + "name": "FunctionCall", + "src": "53243:48:1" + } + ], + "id": 2946, + "name": "EmitStatement", + "src": "53238:53:1" + } + ], + "id": 2947, + "name": "Block", + "src": "53092:206:1" + } + ], + "id": 2948, + "name": "FunctionDefinition", + "src": "53008:290:1" + }, + { + "attributes": { + "baseFunctions": [ + 642 + ], + "functionSelector": "e985e9c5", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "id": 2949, + "name": "StructuredDocumentation", + "src": "53304:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2955, + "name": "OverrideSpecifier", + "src": "53443:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2950, + "name": "ElementaryTypeName", + "src": "53390:7:1" + } + ], + "id": 2951, + "name": "VariableDeclaration", + "src": "53390:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2952, + "name": "ElementaryTypeName", + "src": "53405:7:1" + } + ], + "id": 2953, + "name": "VariableDeclaration", + "src": "53405:16:1" + } + ], + "id": 2954, + "name": "ParameterList", + "src": "53389:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2956, + "name": "ElementaryTypeName", + "src": "53461:4:1" + } + ], + "id": 2957, + "name": "VariableDeclaration", + "src": "53461:4:1" + } + ], + "id": 2958, + "name": "ParameterList", + "src": "53460:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2958 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2959, + "name": "Identifier", + "src": "53484:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2951, + "type": "address", + "value": "owner" + }, + "id": 2960, + "name": "Identifier", + "src": "53503:5:1" + } + ], + "id": 2961, + "name": "IndexAccess", + "src": "53484:25:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2953, + "type": "address", + "value": "operator" + }, + "id": 2962, + "name": "Identifier", + "src": "53510:8:1" + } + ], + "id": 2963, + "name": "IndexAccess", + "src": "53484:35:1" + } + ], + "id": 2964, + "name": "Return", + "src": "53477:42:1" + } + ], + "id": 2965, + "name": "Block", + "src": "53467:59:1" + } + ], + "id": 2966, + "name": "FunctionDefinition", + "src": "53364:162:1" + }, + { + "attributes": { + "baseFunctions": [ + 608 + ], + "functionSelector": "23b872dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-transferFrom}." + }, + "id": 2967, + "name": "StructuredDocumentation", + "src": "53532:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2975, + "name": "OverrideSpecifier", + "src": "53668:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2968, + "name": "ElementaryTypeName", + "src": "53610:7:1" + } + ], + "id": 2969, + "name": "VariableDeclaration", + "src": "53610:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2970, + "name": "ElementaryTypeName", + "src": "53624:7:1" + } + ], + "id": 2971, + "name": "VariableDeclaration", + "src": "53624:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2972, + "name": "ElementaryTypeName", + "src": "53636:7:1" + } + ], + "id": 2973, + "name": "VariableDeclaration", + "src": "53636:15:1" + } + ], + "id": 2974, + "name": "ParameterList", + "src": "53609:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2976, + "name": "ParameterList", + "src": "53677:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2977, + "name": "Identifier", + "src": "53739:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 2978, + "name": "Identifier", + "src": "53747:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2979, + "name": "Identifier", + "src": "53766:10:1" + } + ], + "id": 2980, + "name": "FunctionCall", + "src": "53766:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2981, + "name": "Identifier", + "src": "53780:7:1" + } + ], + "id": 2982, + "name": "FunctionCall", + "src": "53747:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 2983, + "name": "Literal", + "src": "53790:51:1" + } + ], + "id": 2984, + "name": "FunctionCall", + "src": "53739:103:1" + } + ], + "id": 2985, + "name": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 2986, + "name": "Identifier", + "src": "53853:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2969, + "type": "address", + "value": "from" + }, + "id": 2987, + "name": "Identifier", + "src": "53863:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2971, + "type": "address", + "value": "to" + }, + "id": 2988, + "name": "Identifier", + "src": "53869:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2989, + "name": "Identifier", + "src": "53873:7:1" + } + ], + "id": 2990, + "name": "FunctionCall", + "src": "53853:28:1" + } + ], + "id": 2991, + "name": "ExpressionStatement", + "src": "53853:28:1" + } + ], + "id": 2992, + "name": "Block", + "src": "53677:211:1" + } + ], + "id": 2993, + "name": "FunctionDefinition", + "src": "53588:300:1" + }, + { + "attributes": { + "baseFunctions": [ + 598 + ], + "functionSelector": "42842e0e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 2994, + "name": "StructuredDocumentation", + "src": "53894:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3002, + "name": "OverrideSpecifier", + "src": "54038:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2995, + "name": "ElementaryTypeName", + "src": "53980:7:1" + } + ], + "id": 2996, + "name": "VariableDeclaration", + "src": "53980:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2997, + "name": "ElementaryTypeName", + "src": "53994:7:1" + } + ], + "id": 2998, + "name": "VariableDeclaration", + "src": "53994:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2999, + "name": "ElementaryTypeName", + "src": "54006:7:1" + } + ], + "id": 3000, + "name": "VariableDeclaration", + "src": "54006:15:1" + } + ], + "id": 3001, + "name": "ParameterList", + "src": "53979:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3003, + "name": "ParameterList", + "src": "54047:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "type": "function (address,address,uint256,bytes memory)", + "value": "safeTransferFrom" + }, + "id": 3004, + "name": "Identifier", + "src": "54057:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2996, + "type": "address", + "value": "from" + }, + "id": 3005, + "name": "Identifier", + "src": "54074:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2998, + "type": "address", + "value": "to" + }, + "id": 3006, + "name": "Identifier", + "src": "54080:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3000, + "type": "uint256", + "value": "tokenId" + }, + "id": 3007, + "name": "Identifier", + "src": "54084:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3008, + "name": "Literal", + "src": "54093:2:1" + } + ], + "id": 3009, + "name": "FunctionCall", + "src": "54057:39:1" + } + ], + "id": 3010, + "name": "ExpressionStatement", + "src": "54057:39:1" + } + ], + "id": 3011, + "name": "Block", + "src": "54047:56:1" + } + ], + "id": 3012, + "name": "FunctionDefinition", + "src": "53954:149:1" + }, + { + "attributes": { + "baseFunctions": [ + 654 + ], + "functionSelector": "b88d4fde", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 3013, + "name": "StructuredDocumentation", + "src": "54109:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3023, + "name": "OverrideSpecifier", + "src": "54273:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3014, + "name": "ElementaryTypeName", + "src": "54195:7:1" + } + ], + "id": 3015, + "name": "VariableDeclaration", + "src": "54195:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3016, + "name": "ElementaryTypeName", + "src": "54209:7:1" + } + ], + "id": 3017, + "name": "VariableDeclaration", + "src": "54209:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3018, + "name": "ElementaryTypeName", + "src": "54221:7:1" + } + ], + "id": 3019, + "name": "VariableDeclaration", + "src": "54221:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3042, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3020, + "name": "ElementaryTypeName", + "src": "54238:5:1" + } + ], + "id": 3021, + "name": "VariableDeclaration", + "src": "54238:18:1" + } + ], + "id": 3022, + "name": "ParameterList", + "src": "54194:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3024, + "name": "ParameterList", + "src": "54282:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3025, + "name": "Identifier", + "src": "54292:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 3026, + "name": "Identifier", + "src": "54300:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3027, + "name": "Identifier", + "src": "54319:10:1" + } + ], + "id": 3028, + "name": "FunctionCall", + "src": "54319:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3029, + "name": "Identifier", + "src": "54333:7:1" + } + ], + "id": 3030, + "name": "FunctionCall", + "src": "54300:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 3031, + "name": "Literal", + "src": "54343:51:1" + } + ], + "id": 3032, + "name": "FunctionCall", + "src": "54292:103:1" + } + ], + "id": 3033, + "name": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3071, + "type": "function (address,address,uint256,bytes memory)", + "value": "_safeTransfer" + }, + "id": 3034, + "name": "Identifier", + "src": "54405:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3015, + "type": "address", + "value": "from" + }, + "id": 3035, + "name": "Identifier", + "src": "54419:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3017, + "type": "address", + "value": "to" + }, + "id": 3036, + "name": "Identifier", + "src": "54425:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3037, + "name": "Identifier", + "src": "54429:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3021, + "type": "bytes memory", + "value": "_data" + }, + "id": 3038, + "name": "Identifier", + "src": "54438:5:1" + } + ], + "id": 3039, + "name": "FunctionCall", + "src": "54405:39:1" + } + ], + "id": 3040, + "name": "ExpressionStatement", + "src": "54405:39:1" + } + ], + "id": 3041, + "name": "Block", + "src": "54282:169:1" + } + ], + "id": 3042, + "name": "FunctionDefinition", + "src": "54169:282:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3043, + "name": "StructuredDocumentation", + "src": "54457:851:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3044, + "name": "ElementaryTypeName", + "src": "55336:7:1" + } + ], + "id": 3045, + "name": "VariableDeclaration", + "src": "55336:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3046, + "name": "ElementaryTypeName", + "src": "55350:7:1" + } + ], + "id": 3047, + "name": "VariableDeclaration", + "src": "55350:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3048, + "name": "ElementaryTypeName", + "src": "55362:7:1" + } + ], + "id": 3049, + "name": "VariableDeclaration", + "src": "55362:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3071, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3050, + "name": "ElementaryTypeName", + "src": "55379:5:1" + } + ], + "id": 3051, + "name": "VariableDeclaration", + "src": "55379:18:1" + } + ], + "id": 3052, + "name": "ParameterList", + "src": "55335:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3053, + "name": "ParameterList", + "src": "55416:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 3054, + "name": "Identifier", + "src": "55426:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3055, + "name": "Identifier", + "src": "55436:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3056, + "name": "Identifier", + "src": "55442:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3057, + "name": "Identifier", + "src": "55446:7:1" + } + ], + "id": 3058, + "name": "FunctionCall", + "src": "55426:28:1" + } + ], + "id": 3059, + "name": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3060, + "name": "Identifier", + "src": "55464:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3061, + "name": "Identifier", + "src": "55472:22:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3062, + "name": "Identifier", + "src": "55495:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3063, + "name": "Identifier", + "src": "55501:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3064, + "name": "Identifier", + "src": "55505:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3051, + "type": "bytes memory", + "value": "_data" + }, + "id": 3065, + "name": "Identifier", + "src": "55514:5:1" + } + ], + "id": 3066, + "name": "FunctionCall", + "src": "55472:48:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3067, + "name": "Literal", + "src": "55522:52:1" + } + ], + "id": 3068, + "name": "FunctionCall", + "src": "55464:111:1" + } + ], + "id": 3069, + "name": "ExpressionStatement", + "src": "55464:111:1" + } + ], + "id": 3070, + "name": "Block", + "src": "55416:166:1" + } + ], + "id": 3071, + "name": "FunctionDefinition", + "src": "55313:269:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_exists", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3072, + "name": "StructuredDocumentation", + "src": "55588:292:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3073, + "name": "ElementaryTypeName", + "src": "55902:7:1" + } + ], + "id": 3074, + "name": "VariableDeclaration", + "src": "55902:15:1" + } + ], + "id": 3075, + "name": "ParameterList", + "src": "55901:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3076, + "name": "ElementaryTypeName", + "src": "55950:4:1" + } + ], + "id": 3077, + "name": "VariableDeclaration", + "src": "55950:4:1" + } + ], + "id": 3078, + "name": "ParameterList", + "src": "55949:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3078 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "contains", + "referencedDeclaration": 2326, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3079, + "name": "Identifier", + "src": "55973:12:1" + } + ], + "id": 3080, + "name": "MemberAccess", + "src": "55973:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3074, + "type": "uint256", + "value": "tokenId" + }, + "id": 3081, + "name": "Identifier", + "src": "55995:7:1" + } + ], + "id": 3082, + "name": "FunctionCall", + "src": "55973:30:1" + } + ], + "id": 3083, + "name": "Return", + "src": "55966:37:1" + } + ], + "id": 3084, + "name": "Block", + "src": "55956:54:1" + } + ], + "id": 3085, + "name": "FunctionDefinition", + "src": "55885:125:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_isApprovedOrOwner", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3086, + "name": "StructuredDocumentation", + "src": "56016:147:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "spender", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3087, + "name": "ElementaryTypeName", + "src": "56196:7:1" + } + ], + "id": 3088, + "name": "VariableDeclaration", + "src": "56196:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3089, + "name": "ElementaryTypeName", + "src": "56213:7:1" + } + ], + "id": 3090, + "name": "VariableDeclaration", + "src": "56213:15:1" + } + ], + "id": 3091, + "name": "ParameterList", + "src": "56195:34:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3092, + "name": "ElementaryTypeName", + "src": "56261:4:1" + } + ], + "id": 3093, + "name": "VariableDeclaration", + "src": "56261:4:1" + } + ], + "id": 3094, + "name": "ParameterList", + "src": "56260:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3095, + "name": "Identifier", + "src": "56277:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3096, + "name": "Identifier", + "src": "56285:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3097, + "name": "Identifier", + "src": "56293:7:1" + } + ], + "id": 3098, + "name": "FunctionCall", + "src": "56285:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: operator query for nonexistent token\"", + "value": "ERC721: operator query for nonexistent token" + }, + "id": 3099, + "name": "Literal", + "src": "56303:46:1" + } + ], + "id": 3100, + "name": "FunctionCall", + "src": "56277:73:1" + } + ], + "id": 3101, + "name": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "attributes": { + "assignments": [ + 3103 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3126, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3102, + "name": "ElementaryTypeName", + "src": "56360:7:1" + } + ], + "id": 3103, + "name": "VariableDeclaration", + "src": "56360:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3104, + "name": "Identifier", + "src": "56376:6:1" + } + ], + "id": 3105, + "name": "MemberAccess", + "src": "56376:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3106, + "name": "Identifier", + "src": "56391:7:1" + } + ], + "id": 3107, + "name": "FunctionCall", + "src": "56376:23:1" + } + ], + "id": 3108, + "name": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "attributes": { + "functionReturnParameters": 3094 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3109, + "name": "Identifier", + "src": "56417:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3110, + "name": "Identifier", + "src": "56428:5:1" + } + ], + "id": 3111, + "name": "BinaryOperation", + "src": "56417:16:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2914, + "type": "function (uint256) view returns (address)", + "value": "getApproved" + }, + "id": 3112, + "name": "Identifier", + "src": "56437:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3113, + "name": "Identifier", + "src": "56449:7:1" + } + ], + "id": 3114, + "name": "FunctionCall", + "src": "56437:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3115, + "name": "Identifier", + "src": "56461:7:1" + } + ], + "id": 3116, + "name": "BinaryOperation", + "src": "56437:31:1" + } + ], + "id": 3117, + "name": "BinaryOperation", + "src": "56417:51:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3118, + "name": "Identifier", + "src": "56472:6:1" + } + ], + "id": 3119, + "name": "MemberAccess", + "src": "56472:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3120, + "name": "Identifier", + "src": "56496:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3121, + "name": "Identifier", + "src": "56503:7:1" + } + ], + "id": 3122, + "name": "FunctionCall", + "src": "56472:39:1" + } + ], + "id": 3123, + "name": "BinaryOperation", + "src": "56417:94:1" + } + ], + "id": 3124, + "name": "TupleExpression", + "src": "56416:96:1" + } + ], + "id": 3125, + "name": "Return", + "src": "56409:103:1" + } + ], + "id": 3126, + "name": "Block", + "src": "56267:252:1" + } + ], + "id": 3127, + "name": "FunctionDefinition", + "src": "56168:351:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3128, + "name": "StructuredDocumentation", + "src": "56525:320:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3129, + "name": "ElementaryTypeName", + "src": "56869:7:1" + } + ], + "id": 3130, + "name": "VariableDeclaration", + "src": "56869:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3131, + "name": "ElementaryTypeName", + "src": "56881:7:1" + } + ], + "id": 3132, + "name": "VariableDeclaration", + "src": "56881:15:1" + } + ], + "id": 3133, + "name": "ParameterList", + "src": "56868:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3134, + "name": "ParameterList", + "src": "56915:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "type": "function (address,uint256,bytes memory)", + "value": "_safeMint" + }, + "id": 3135, + "name": "Identifier", + "src": "56925:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3130, + "type": "address", + "value": "to" + }, + "id": 3136, + "name": "Identifier", + "src": "56935:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3132, + "type": "uint256", + "value": "tokenId" + }, + "id": 3137, + "name": "Identifier", + "src": "56939:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3138, + "name": "Literal", + "src": "56948:2:1" + } + ], + "id": 3139, + "name": "FunctionCall", + "src": "56925:26:1" + } + ], + "id": 3140, + "name": "ExpressionStatement", + "src": "56925:26:1" + } + ], + "id": 3141, + "name": "Block", + "src": "56915:43:1" + } + ], + "id": 3142, + "name": "FunctionDefinition", + "src": "56850:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3143, + "name": "StructuredDocumentation", + "src": "56964:210:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3144, + "name": "ElementaryTypeName", + "src": "57198:7:1" + } + ], + "id": 3145, + "name": "VariableDeclaration", + "src": "57198:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3146, + "name": "ElementaryTypeName", + "src": "57210:7:1" + } + ], + "id": 3147, + "name": "VariableDeclaration", + "src": "57210:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3171, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3148, + "name": "ElementaryTypeName", + "src": "57227:5:1" + } + ], + "id": 3149, + "name": "VariableDeclaration", + "src": "57227:18:1" + } + ], + "id": 3150, + "name": "ParameterList", + "src": "57197:49:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3151, + "name": "ParameterList", + "src": "57264:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3230, + "type": "function (address,uint256)", + "value": "_mint" + }, + "id": 3152, + "name": "Identifier", + "src": "57274:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3153, + "name": "Identifier", + "src": "57280:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3154, + "name": "Identifier", + "src": "57284:7:1" + } + ], + "id": 3155, + "name": "FunctionCall", + "src": "57274:18:1" + } + ], + "id": 3156, + "name": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3157, + "name": "Identifier", + "src": "57302:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3158, + "name": "Identifier", + "src": "57310:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3159, + "name": "ElementaryTypeName", + "src": "57333:7:1" + } + ], + "id": 3160, + "name": "ElementaryTypeNameExpression", + "src": "57333:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3161, + "name": "Literal", + "src": "57341:1:1" + } + ], + "id": 3162, + "name": "FunctionCall", + "src": "57333:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3163, + "name": "Identifier", + "src": "57345:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3164, + "name": "Identifier", + "src": "57349:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3149, + "type": "bytes memory", + "value": "_data" + }, + "id": 3165, + "name": "Identifier", + "src": "57358:5:1" + } + ], + "id": 3166, + "name": "FunctionCall", + "src": "57310:54:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3167, + "name": "Literal", + "src": "57366:52:1" + } + ], + "id": 3168, + "name": "FunctionCall", + "src": "57302:117:1" + } + ], + "id": 3169, + "name": "ExpressionStatement", + "src": "57302:117:1" + } + ], + "id": 3170, + "name": "Block", + "src": "57264:162:1" + } + ], + "id": 3171, + "name": "FunctionDefinition", + "src": "57179:247:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_mint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3172, + "name": "StructuredDocumentation", + "src": "57432:311:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3173, + "name": "ElementaryTypeName", + "src": "57763:7:1" + } + ], + "id": 3174, + "name": "VariableDeclaration", + "src": "57763:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3175, + "name": "ElementaryTypeName", + "src": "57775:7:1" + } + ], + "id": 3176, + "name": "VariableDeclaration", + "src": "57775:15:1" + } + ], + "id": 3177, + "name": "ParameterList", + "src": "57762:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3178, + "name": "ParameterList", + "src": "57809:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3179, + "name": "Identifier", + "src": "57819:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3180, + "name": "Identifier", + "src": "57827:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3181, + "name": "ElementaryTypeName", + "src": "57833:7:1" + } + ], + "id": 3182, + "name": "ElementaryTypeNameExpression", + "src": "57833:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3183, + "name": "Literal", + "src": "57841:1:1" + } + ], + "id": 3184, + "name": "FunctionCall", + "src": "57833:10:1" + } + ], + "id": 3185, + "name": "BinaryOperation", + "src": "57827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: mint to the zero address\"", + "value": "ERC721: mint to the zero address" + }, + "id": 3186, + "name": "Literal", + "src": "57845:34:1" + } + ], + "id": 3187, + "name": "FunctionCall", + "src": "57819:61:1" + } + ], + "id": 3188, + "name": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3189, + "name": "Identifier", + "src": "57890:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3190, + "name": "Identifier", + "src": "57899:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3191, + "name": "Identifier", + "src": "57907:7:1" + } + ], + "id": 3192, + "name": "FunctionCall", + "src": "57899:16:1" + } + ], + "id": 3193, + "name": "UnaryOperation", + "src": "57898:17:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: token already minted\"", + "value": "ERC721: token already minted" + }, + "id": 3194, + "name": "Literal", + "src": "57917:30:1" + } + ], + "id": 3195, + "name": "FunctionCall", + "src": "57890:58:1" + } + ], + "id": 3196, + "name": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3197, + "name": "Identifier", + "src": "57959:20:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3198, + "name": "ElementaryTypeName", + "src": "57980:7:1" + } + ], + "id": 3199, + "name": "ElementaryTypeNameExpression", + "src": "57980:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3200, + "name": "Literal", + "src": "57988:1:1" + } + ], + "id": 3201, + "name": "FunctionCall", + "src": "57980:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3202, + "name": "Identifier", + "src": "57992:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3203, + "name": "Identifier", + "src": "57996:7:1" + } + ], + "id": 3204, + "name": "FunctionCall", + "src": "57959:45:1" + } + ], + "id": 3205, + "name": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3206, + "name": "Identifier", + "src": "58015:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3207, + "name": "Identifier", + "src": "58029:2:1" + } + ], + "id": 3208, + "name": "IndexAccess", + "src": "58015:17:1" + } + ], + "id": 3209, + "name": "MemberAccess", + "src": "58015:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3210, + "name": "Identifier", + "src": "58037:7:1" + } + ], + "id": 3211, + "name": "FunctionCall", + "src": "58015:30:1" + } + ], + "id": 3212, + "name": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3213, + "name": "Identifier", + "src": "58056:12:1" + } + ], + "id": 3215, + "name": "MemberAccess", + "src": "58056:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3216, + "name": "Identifier", + "src": "58073:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3217, + "name": "Identifier", + "src": "58082:2:1" + } + ], + "id": 3218, + "name": "FunctionCall", + "src": "58056:29:1" + } + ], + "id": 3219, + "name": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3220, + "name": "Identifier", + "src": "58101:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3221, + "name": "ElementaryTypeName", + "src": "58110:7:1" + } + ], + "id": 3222, + "name": "ElementaryTypeNameExpression", + "src": "58110:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3223, + "name": "Literal", + "src": "58118:1:1" + } + ], + "id": 3224, + "name": "FunctionCall", + "src": "58110:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3225, + "name": "Identifier", + "src": "58122:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3226, + "name": "Identifier", + "src": "58126:7:1" + } + ], + "id": 3227, + "name": "FunctionCall", + "src": "58101:33:1" + } + ], + "id": 3228, + "name": "EmitStatement", + "src": "58096:38:1" + } + ], + "id": 3229, + "name": "Block", + "src": "57809:332:1" + } + ], + "id": 3230, + "name": "FunctionDefinition", + "src": "57748:393:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_burn", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3231, + "name": "StructuredDocumentation", + "src": "58147:206:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3299, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3232, + "name": "ElementaryTypeName", + "src": "58373:7:1" + } + ], + "id": 3233, + "name": "VariableDeclaration", + "src": "58373:15:1" + } + ], + "id": 3234, + "name": "ParameterList", + "src": "58372:17:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3235, + "name": "ParameterList", + "src": "58407:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 3237 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3298, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3236, + "name": "ElementaryTypeName", + "src": "58417:7:1" + } + ], + "id": 3237, + "name": "VariableDeclaration", + "src": "58417:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3238, + "name": "Identifier", + "src": "58433:6:1" + } + ], + "id": 3239, + "name": "MemberAccess", + "src": "58433:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3240, + "name": "Identifier", + "src": "58448:7:1" + } + ], + "id": 3241, + "name": "FunctionCall", + "src": "58433:23:1" + } + ], + "id": 3242, + "name": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3243, + "name": "Identifier", + "src": "58485:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3244, + "name": "Identifier", + "src": "58506:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3245, + "name": "ElementaryTypeName", + "src": "58513:7:1" + } + ], + "id": 3246, + "name": "ElementaryTypeNameExpression", + "src": "58513:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3247, + "name": "Literal", + "src": "58521:1:1" + } + ], + "id": 3248, + "name": "FunctionCall", + "src": "58513:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3249, + "name": "Identifier", + "src": "58525:7:1" + } + ], + "id": 3250, + "name": "FunctionCall", + "src": "58485:48:1" + } + ], + "id": 3251, + "name": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3252, + "name": "Identifier", + "src": "58571:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3253, + "name": "ElementaryTypeName", + "src": "58580:7:1" + } + ], + "id": 3254, + "name": "ElementaryTypeNameExpression", + "src": "58580:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3255, + "name": "Literal", + "src": "58588:1:1" + } + ], + "id": 3256, + "name": "FunctionCall", + "src": "58580:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3257, + "name": "Identifier", + "src": "58592:7:1" + } + ], + "id": 3258, + "name": "FunctionCall", + "src": "58571:29:1" + } + ], + "id": 3259, + "name": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes storage pointer", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 3260, + "name": "ElementaryTypeName", + "src": "58650:5:1" + } + ], + "id": 3261, + "name": "ElementaryTypeNameExpression", + "src": "58650:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3262, + "name": "Identifier", + "src": "58656:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3263, + "name": "Identifier", + "src": "58667:7:1" + } + ], + "id": 3264, + "name": "IndexAccess", + "src": "58656:19:1" + } + ], + "id": 3265, + "name": "FunctionCall", + "src": "58650:26:1" + } + ], + "id": 3266, + "name": "MemberAccess", + "src": "58650:33:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3267, + "name": "Literal", + "src": "58687:1:1" + } + ], + "id": 3268, + "name": "BinaryOperation", + "src": "58650:38:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3269, + "name": "Identifier", + "src": "58711:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3270, + "name": "Identifier", + "src": "58722:7:1" + } + ], + "id": 3271, + "name": "IndexAccess", + "src": "58711:19:1" + } + ], + "id": 3272, + "name": "UnaryOperation", + "src": "58704:26:1" + } + ], + "id": 3273, + "name": "ExpressionStatement", + "src": "58704:26:1" + } + ], + "id": 3274, + "name": "Block", + "src": "58690:51:1" + } + ], + "id": 3275, + "name": "IfStatement", + "src": "58646:95:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3276, + "name": "Identifier", + "src": "58751:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3277, + "name": "Identifier", + "src": "58765:5:1" + } + ], + "id": 3278, + "name": "IndexAccess", + "src": "58751:20:1" + } + ], + "id": 3279, + "name": "MemberAccess", + "src": "58751:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3280, + "name": "Identifier", + "src": "58779:7:1" + } + ], + "id": 3281, + "name": "FunctionCall", + "src": "58751:36:1" + } + ], + "id": 3282, + "name": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 2306, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3283, + "name": "Identifier", + "src": "58798:12:1" + } + ], + "id": 3285, + "name": "MemberAccess", + "src": "58798:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3286, + "name": "Identifier", + "src": "58818:7:1" + } + ], + "id": 3287, + "name": "FunctionCall", + "src": "58798:28:1" + } + ], + "id": 3288, + "name": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3289, + "name": "Identifier", + "src": "58842:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3290, + "name": "Identifier", + "src": "58851:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3291, + "name": "ElementaryTypeName", + "src": "58858:7:1" + } + ], + "id": 3292, + "name": "ElementaryTypeNameExpression", + "src": "58858:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3293, + "name": "Literal", + "src": "58866:1:1" + } + ], + "id": 3294, + "name": "FunctionCall", + "src": "58858:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3295, + "name": "Identifier", + "src": "58870:7:1" + } + ], + "id": 3296, + "name": "FunctionCall", + "src": "58842:36:1" + } + ], + "id": 3297, + "name": "EmitStatement", + "src": "58837:41:1" + } + ], + "id": 3298, + "name": "Block", + "src": "58407:478:1" + } + ], + "id": 3299, + "name": "FunctionDefinition", + "src": "58358:527:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_transfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3300, + "name": "StructuredDocumentation", + "src": "58891:313:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3301, + "name": "ElementaryTypeName", + "src": "59228:7:1" + } + ], + "id": 3302, + "name": "VariableDeclaration", + "src": "59228:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3303, + "name": "ElementaryTypeName", + "src": "59242:7:1" + } + ], + "id": 3304, + "name": "VariableDeclaration", + "src": "59242:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3305, + "name": "ElementaryTypeName", + "src": "59254:7:1" + } + ], + "id": 3306, + "name": "VariableDeclaration", + "src": "59254:15:1" + } + ], + "id": 3307, + "name": "ParameterList", + "src": "59227:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3308, + "name": "ParameterList", + "src": "59288:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3309, + "name": "Identifier", + "src": "59298:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3310, + "name": "Identifier", + "src": "59306:6:1" + } + ], + "id": 3311, + "name": "MemberAccess", + "src": "59306:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3312, + "name": "Identifier", + "src": "59321:7:1" + } + ], + "id": 3313, + "name": "FunctionCall", + "src": "59306:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3314, + "name": "Identifier", + "src": "59333:4:1" + } + ], + "id": 3315, + "name": "BinaryOperation", + "src": "59306:31:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer of token that is not own\"", + "value": "ERC721: transfer of token that is not own" + }, + "id": 3316, + "name": "Literal", + "src": "59339:43:1" + } + ], + "id": 3317, + "name": "FunctionCall", + "src": "59298:85:1" + } + ], + "id": 3318, + "name": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3319, + "name": "Identifier", + "src": "59411:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3320, + "name": "Identifier", + "src": "59419:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3321, + "name": "ElementaryTypeName", + "src": "59425:7:1" + } + ], + "id": 3322, + "name": "ElementaryTypeNameExpression", + "src": "59425:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3323, + "name": "Literal", + "src": "59433:1:1" + } + ], + "id": 3324, + "name": "FunctionCall", + "src": "59425:10:1" + } + ], + "id": 3325, + "name": "BinaryOperation", + "src": "59419:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to the zero address\"", + "value": "ERC721: transfer to the zero address" + }, + "id": 3326, + "name": "Literal", + "src": "59437:38:1" + } + ], + "id": 3327, + "name": "FunctionCall", + "src": "59411:65:1" + } + ], + "id": 3328, + "name": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3329, + "name": "Identifier", + "src": "59487:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3330, + "name": "Identifier", + "src": "59508:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3331, + "name": "Identifier", + "src": "59514:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3332, + "name": "Identifier", + "src": "59518:7:1" + } + ], + "id": 3333, + "name": "FunctionCall", + "src": "59487:39:1" + } + ], + "id": 3334, + "name": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3335, + "name": "Identifier", + "src": "59588:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3336, + "name": "ElementaryTypeName", + "src": "59597:7:1" + } + ], + "id": 3337, + "name": "ElementaryTypeNameExpression", + "src": "59597:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3338, + "name": "Literal", + "src": "59605:1:1" + } + ], + "id": 3339, + "name": "FunctionCall", + "src": "59597:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3340, + "name": "Identifier", + "src": "59609:7:1" + } + ], + "id": 3341, + "name": "FunctionCall", + "src": "59588:29:1" + } + ], + "id": 3342, + "name": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3343, + "name": "Identifier", + "src": "59628:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3344, + "name": "Identifier", + "src": "59642:4:1" + } + ], + "id": 3345, + "name": "IndexAccess", + "src": "59628:19:1" + } + ], + "id": 3346, + "name": "MemberAccess", + "src": "59628:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3347, + "name": "Identifier", + "src": "59655:7:1" + } + ], + "id": 3348, + "name": "FunctionCall", + "src": "59628:35:1" + } + ], + "id": 3349, + "name": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3350, + "name": "Identifier", + "src": "59673:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3351, + "name": "Identifier", + "src": "59687:2:1" + } + ], + "id": 3352, + "name": "IndexAccess", + "src": "59673:17:1" + } + ], + "id": 3353, + "name": "MemberAccess", + "src": "59673:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3354, + "name": "Identifier", + "src": "59695:7:1" + } + ], + "id": 3355, + "name": "FunctionCall", + "src": "59673:30:1" + } + ], + "id": 3356, + "name": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3357, + "name": "Identifier", + "src": "59714:12:1" + } + ], + "id": 3359, + "name": "MemberAccess", + "src": "59714:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3360, + "name": "Identifier", + "src": "59731:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3361, + "name": "Identifier", + "src": "59740:2:1" + } + ], + "id": 3362, + "name": "FunctionCall", + "src": "59714:29:1" + } + ], + "id": 3363, + "name": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3364, + "name": "Identifier", + "src": "59759:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3365, + "name": "Identifier", + "src": "59768:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3366, + "name": "Identifier", + "src": "59774:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3367, + "name": "Identifier", + "src": "59778:7:1" + } + ], + "id": 3368, + "name": "FunctionCall", + "src": "59759:27:1" + } + ], + "id": 3369, + "name": "EmitStatement", + "src": "59754:32:1" + } + ], + "id": 3370, + "name": "Block", + "src": "59288:505:1" + } + ], + "id": 3371, + "name": "FunctionDefinition", + "src": "59209:584:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setTokenURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3372, + "name": "StructuredDocumentation", + "src": "59799:136:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3393, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3373, + "name": "ElementaryTypeName", + "src": "59962:7:1" + } + ], + "id": 3374, + "name": "VariableDeclaration", + "src": "59962:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 3393, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3375, + "name": "ElementaryTypeName", + "src": "59979:6:1" + } + ], + "id": 3376, + "name": "VariableDeclaration", + "src": "59979:23:1" + } + ], + "id": 3377, + "name": "ParameterList", + "src": "59961:42:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3378, + "name": "ParameterList", + "src": "60021:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3379, + "name": "Identifier", + "src": "60031:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3380, + "name": "Identifier", + "src": "60039:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3381, + "name": "Identifier", + "src": "60047:7:1" + } + ], + "id": 3382, + "name": "FunctionCall", + "src": "60039:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI set of nonexistent token\"", + "value": "ERC721Metadata: URI set of nonexistent token" + }, + "id": 3383, + "name": "Literal", + "src": "60057:46:1" + } + ], + "id": 3384, + "name": "FunctionCall", + "src": "60031:73:1" + } + ], + "id": 3385, + "name": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3386, + "name": "Identifier", + "src": "60114:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3387, + "name": "Identifier", + "src": "60125:7:1" + } + ], + "id": 3388, + "name": "IndexAccess", + "src": "60114:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3376, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 3389, + "name": "Identifier", + "src": "60136:9:1" + } + ], + "id": 3390, + "name": "Assignment", + "src": "60114:31:1" + } + ], + "id": 3391, + "name": "ExpressionStatement", + "src": "60114:31:1" + } + ], + "id": 3392, + "name": "Block", + "src": "60021:131:1" + } + ], + "id": 3393, + "name": "FunctionDefinition", + "src": "59940:212:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setBaseURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3394, + "name": "StructuredDocumentation", + "src": "60158:212:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "baseURI_", + "scope": 3404, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3395, + "name": "ElementaryTypeName", + "src": "60396:6:1" + } + ], + "id": 3396, + "name": "VariableDeclaration", + "src": "60396:22:1" + } + ], + "id": 3397, + "name": "ParameterList", + "src": "60395:24:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3398, + "name": "ParameterList", + "src": "60437:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 3399, + "name": "Identifier", + "src": "60447:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3396, + "type": "string memory", + "value": "baseURI_" + }, + "id": 3400, + "name": "Identifier", + "src": "60458:8:1" + } + ], + "id": 3401, + "name": "Assignment", + "src": "60447:19:1" + } + ], + "id": 3402, + "name": "ExpressionStatement", + "src": "60447:19:1" + } + ], + "id": 3403, + "name": "Block", + "src": "60437:36:1" + } + ], + "id": 3404, + "name": "FunctionDefinition", + "src": "60375:98:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_checkOnERC721Received", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3405, + "name": "StructuredDocumentation", + "src": "60479:542:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3406, + "name": "ElementaryTypeName", + "src": "61058:7:1" + } + ], + "id": 3407, + "name": "VariableDeclaration", + "src": "61058:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3408, + "name": "ElementaryTypeName", + "src": "61072:7:1" + } + ], + "id": 3409, + "name": "VariableDeclaration", + "src": "61072:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3410, + "name": "ElementaryTypeName", + "src": "61084:7:1" + } + ], + "id": 3411, + "name": "VariableDeclaration", + "src": "61084:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3462, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3412, + "name": "ElementaryTypeName", + "src": "61101:5:1" + } + ], + "id": 3413, + "name": "VariableDeclaration", + "src": "61101:18:1" + } + ], + "id": 3414, + "name": "ParameterList", + "src": "61057:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3415, + "name": "ElementaryTypeName", + "src": "61146:4:1" + } + ], + "id": 3416, + "name": "VariableDeclaration", + "src": "61146:4:1" + } + ], + "id": 3417, + "name": "ParameterList", + "src": "61145:6:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isContract", + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3418, + "name": "Identifier", + "src": "61171:2:1" + } + ], + "id": 3419, + "name": "MemberAccess", + "src": "61171:13:1" + } + ], + "id": 3420, + "name": "FunctionCall", + "src": "61171:15:1" + } + ], + "id": 3421, + "name": "UnaryOperation", + "src": "61170:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 3422, + "name": "Literal", + "src": "61209:4:1" + } + ], + "id": 3423, + "name": "Return", + "src": "61202:11:1" + } + ], + "id": 3424, + "name": "Block", + "src": "61188:36:1" + } + ], + "id": 3425, + "name": "IfStatement", + "src": "61166:58:1" + }, + { + "attributes": { + "assignments": [ + 3427 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 3461, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3426, + "name": "ElementaryTypeName", + "src": "61233:5:1" + } + ], + "id": 3427, + "name": "VariableDeclaration", + "src": "61233:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "functionCall", + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3428, + "name": "Identifier", + "src": "61259:2:1" + } + ], + "id": 3429, + "name": "MemberAccess", + "src": "61259:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodeWithSelector", + "type": "function (bytes4) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3430, + "name": "Identifier", + "src": "61275:3:1" + } + ], + "id": 3431, + "name": "MemberAccess", + "src": "61275:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "selector", + "type": "bytes4" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "onERC721Received", + "referencedDeclaration": 725, + "type": "function (address,address,uint256,bytes memory) external returns (bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "contract IERC721Receiver", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 726, + "type": "type(contract IERC721Receiver)", + "value": "IERC721Receiver" + }, + "id": 3432, + "name": "Identifier", + "src": "61311:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3433, + "name": "Identifier", + "src": "61327:2:1" + } + ], + "id": 3434, + "name": "FunctionCall", + "src": "61311:19:1" + } + ], + "id": 3435, + "name": "MemberAccess", + "src": "61311:36:1" + } + ], + "id": 3436, + "name": "MemberAccess", + "src": "61311:45:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3437, + "name": "Identifier", + "src": "61370:10:1" + } + ], + "id": 3438, + "name": "FunctionCall", + "src": "61370:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3407, + "type": "address", + "value": "from" + }, + "id": 3439, + "name": "Identifier", + "src": "61396:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3411, + "type": "uint256", + "value": "tokenId" + }, + "id": 3440, + "name": "Identifier", + "src": "61414:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3413, + "type": "bytes memory", + "value": "_data" + }, + "id": 3441, + "name": "Identifier", + "src": "61435:5:1" + } + ], + "id": 3442, + "name": "FunctionCall", + "src": "61275:175:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3443, + "name": "Literal", + "src": "61452:52:1" + } + ], + "id": 3444, + "name": "FunctionCall", + "src": "61259:246:1" + } + ], + "id": 3445, + "name": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "attributes": { + "assignments": [ + 3447 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "retval", + "scope": 3461, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 3446, + "name": "ElementaryTypeName", + "src": "61515:6:1" + } + ], + "id": 3447, + "name": "VariableDeclaration", + "src": "61515:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes4", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "decode", + "type": "function () pure" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3448, + "name": "Identifier", + "src": "61531:3:1" + } + ], + "id": 3449, + "name": "MemberAccess", + "src": "61531:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3427, + "type": "bytes memory", + "value": "returndata" + }, + "id": 3450, + "name": "Identifier", + "src": "61542:10:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "name": "bytes4" + }, + "id": 3451, + "name": "ElementaryTypeName", + "src": "61555:6:1" + } + ], + "id": 3452, + "name": "ElementaryTypeNameExpression", + "src": "61555:6:1" + } + ], + "id": 3453, + "name": "TupleExpression", + "src": "61554:8:1" + } + ], + "id": 3454, + "name": "FunctionCall", + "src": "61531:32:1" + } + ], + "id": 3455, + "name": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3447, + "type": "bytes4", + "value": "retval" + }, + "id": 3456, + "name": "Identifier", + "src": "61581:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2596, + "type": "bytes4", + "value": "_ERC721_RECEIVED" + }, + "id": 3457, + "name": "Identifier", + "src": "61591:16:1" + } + ], + "id": 3458, + "name": "BinaryOperation", + "src": "61581:26:1" + } + ], + "id": 3459, + "name": "TupleExpression", + "src": "61580:28:1" + } + ], + "id": 3460, + "name": "Return", + "src": "61573:35:1" + } + ], + "id": 3461, + "name": "Block", + "src": "61156:459:1" + } + ], + "id": 3462, + "name": "FunctionDefinition", + "src": "61026:589:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3463, + "name": "StructuredDocumentation", + "src": "61621:101:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3464, + "name": "ElementaryTypeName", + "src": "61745:7:1" + } + ], + "id": 3465, + "name": "VariableDeclaration", + "src": "61745:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3466, + "name": "ElementaryTypeName", + "src": "61757:7:1" + } + ], + "id": 3467, + "name": "VariableDeclaration", + "src": "61757:15:1" + } + ], + "id": 3468, + "name": "ParameterList", + "src": "61744:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3469, + "name": "ParameterList", + "src": "61791:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 3470, + "name": "Identifier", + "src": "61801:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3471, + "name": "Identifier", + "src": "61817:7:1" + } + ], + "id": 3472, + "name": "IndexAccess", + "src": "61801:24:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3473, + "name": "Identifier", + "src": "61828:2:1" + } + ], + "id": 3474, + "name": "Assignment", + "src": "61801:29:1" + } + ], + "id": 3475, + "name": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 563, + "type": "function (address,address,uint256)", + "value": "Approval" + }, + "id": 3476, + "name": "Identifier", + "src": "61845:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3477, + "name": "Identifier", + "src": "61854:6:1" + } + ], + "id": 3478, + "name": "MemberAccess", + "src": "61854:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3479, + "name": "Identifier", + "src": "61869:7:1" + } + ], + "id": 3480, + "name": "FunctionCall", + "src": "61854:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3481, + "name": "Identifier", + "src": "61879:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3482, + "name": "Identifier", + "src": "61883:7:1" + } + ], + "id": 3483, + "name": "FunctionCall", + "src": "61845:46:1" + } + ], + "id": 3484, + "name": "EmitStatement", + "src": "61840:51:1" + } + ], + "id": 3485, + "name": "Block", + "src": "61791:125:1" + } + ], + "id": 3486, + "name": "FunctionDefinition", + "src": "61727:189:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_beforeTokenTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3487, + "name": "StructuredDocumentation", + "src": "61922:585:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3488, + "name": "ElementaryTypeName", + "src": "62542:7:1" + } + ], + "id": 3489, + "name": "VariableDeclaration", + "src": "62542:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3490, + "name": "ElementaryTypeName", + "src": "62556:7:1" + } + ], + "id": 3491, + "name": "VariableDeclaration", + "src": "62556:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3492, + "name": "ElementaryTypeName", + "src": "62568:7:1" + } + ], + "id": 3493, + "name": "VariableDeclaration", + "src": "62568:15:1" + } + ], + "id": 3494, + "name": "ParameterList", + "src": "62541:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3495, + "name": "ParameterList", + "src": "62602:0:1" + }, + { + "attributes": { + "statements": [ + null + ] + }, + "children": [], + "id": 3496, + "name": "Block", + "src": "62602:3:1" + } + ], + "id": 3497, + "name": "FunctionDefinition", + "src": "62512:93:1" + } + ], + "id": 3498, + "name": "ContractDefinition", + "src": "46080:16527:1" + } + ], + "id": 3499, + "name": "SourceUnit", + "src": "84:62524:1" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-13T11:18:08.421Z", + "devdoc": { + "details": "Wrappers over Solidity's arithmetic operations with added overflow checks. Arithmetic operations in Solidity wrap on overflow. This can easily result in bugs, because programmers usually assume that an overflow raises an error, which is the standard behavior in high level programming languages. `SafeMath` restores this intuition by reverting the transaction when an operation overflows. Using this library instead of the unchecked operations eliminates an entire class of bugs, so it's recommended to use it always.", + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/abis/Strings.json b/src/abis/Strings.json new file mode 100644 index 0000000..d8d38c2 --- /dev/null +++ b/src/abis/Strings.json @@ -0,0 +1,77558 @@ +{ + "contractName": "Strings", + "abi": [], + "metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"String operations.\",\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":\"Strings\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol\":{\"keccak256\":\"0xac9220652f9879c5fb3116025d59e8fbf6c2c3d149aed9f617b88edd31402044\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48de100723de94a6590c6db5bae5098a93445194389c3f3eeb104c7239ef3044\",\"dweb:/ipfs/QmVHLEtfLqBqX7XQRHfLuuwtufRBFJFHfgY4zbFRpaZwXC\"]}},\"version\":1}", + "bytecode": "0x60566023600b82828239805160001a607314601657fe5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f3b850744b70c896ab5702b181a7df4f4a083750e51124b83b96fbcc0d60321464736f6c63430007060033", + "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220f3b850744b70c896ab5702b181a7df4f4a083750e51124b83b96fbcc0d60321464736f6c63430007060033", + "immutableReferences": {}, + "generatedSources": [], + "deployedGeneratedSources": [], + "sourceMap": "45027:836:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;", + "deployedSourceMap": "45027:836:1:-:0;;;;;;;;", + "source": "// SPDX-License-Identifier: MIT\n\n// File: @openzeppelin/contracts/utils/Context.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/*\n * @dev Provides information about the current execution context, including the\n * sender of the transaction and its data. While these are generally available\n * via msg.sender and msg.data, they should not be accessed in such a direct\n * manner, since when dealing with GSN meta-transactions the account sending and\n * paying for execution may not be the actual sender (as far as an application\n * is concerned).\n *\n * This contract is only required for intermediate, library-like contracts.\n */\nabstract contract Context {\n function _msgSender() internal view virtual returns (address payable) {\n return msg.sender;\n }\n\n function _msgData() internal view virtual returns (bytes memory) {\n this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691\n return msg.data;\n }\n}\n\n// File: @openzeppelin/contracts/introspection/IERC165.sol\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Interface of the ERC165 standard, as defined in the\n * https://eips.ethereum.org/EIPS/eip-165[EIP].\n *\n * Implementers can declare support of contract interfaces, which can then be\n * queried by others ({ERC165Checker}).\n *\n * For an implementation, see {ERC165}.\n */\ninterface IERC165 {\n /**\n * @dev Returns true if this contract implements the interface defined by\n * `interfaceId`. See the corresponding\n * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n * to learn more about how these ids are created.\n *\n * This function call must use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @dev Required interface of an ERC721 compliant contract.\n */\ninterface IERC721 is IERC165 {\n /**\n * @dev Emitted when `tokenId` token is transferred from `from` to `to`.\n */\n event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.\n */\n event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);\n\n /**\n * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\n */\n event ApprovalForAll(address indexed owner, address indexed operator, bool approved);\n\n /**\n * @dev Returns the number of tokens in ``owner``'s account.\n */\n function balanceOf(address owner) external view returns (uint256 balance);\n\n /**\n * @dev Returns the owner of the `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function ownerOf(uint256 tokenId) external view returns (address owner);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Transfers `tokenId` token from `from` to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n *\n * Emits a {Transfer} event.\n */\n function transferFrom(address from, address to, uint256 tokenId) external;\n\n /**\n * @dev Gives permission to `to` to transfer `tokenId` token to another account.\n * The approval is cleared when the token is transferred.\n *\n * Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n *\n * Requirements:\n *\n * - The caller must own the token or be an approved operator.\n * - `tokenId` must exist.\n *\n * Emits an {Approval} event.\n */\n function approve(address to, uint256 tokenId) external;\n\n /**\n * @dev Returns the account approved for `tokenId` token.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function getApproved(uint256 tokenId) external view returns (address operator);\n\n /**\n * @dev Approve or remove `operator` as an operator for the caller.\n * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n *\n * Requirements:\n *\n * - The `operator` cannot be the caller.\n *\n * Emits an {ApprovalForAll} event.\n */\n function setApprovalForAll(address operator, bool _approved) external;\n\n /**\n * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n *\n * See {setApprovalForAll}\n */\n function isApprovedForAll(address owner, address operator) external view returns (bool);\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external;\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Metadata is IERC721 {\n\n /**\n * @dev Returns the token collection name.\n */\n function name() external view returns (string memory);\n\n /**\n * @dev Returns the token collection symbol.\n */\n function symbol() external view returns (string memory);\n\n /**\n * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.\n */\n function tokenURI(uint256 tokenId) external view returns (string memory);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol\n\n\npragma solidity >=0.6.2 <0.8.0;\n\n\n/**\n * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n * @dev See https://eips.ethereum.org/EIPS/eip-721\n */\ninterface IERC721Enumerable is IERC721 {\n\n /**\n * @dev Returns the total amount of tokens stored by the contract.\n */\n function totalSupply() external view returns (uint256);\n\n /**\n * @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n * Use along with {balanceOf} to enumerate all of ``owner``'s tokens.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId);\n\n /**\n * @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n * Use along with {totalSupply} to enumerate all tokens.\n */\n function tokenByIndex(uint256 index) external view returns (uint256);\n}\n\n// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\n\n\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 token receiver interface\n * @dev Interface for any contract that wants to support safeTransfers\n * from ERC721 asset contracts.\n */\ninterface IERC721Receiver {\n /**\n * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n * by `operator` from `from`, this function is called.\n *\n * It must return its Solidity selector to confirm the token transfer.\n * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n *\n * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.\n */\n function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4);\n}\n\n// File: @openzeppelin/contracts/introspection/ERC165.sol\npragma solidity >=0.6.0 <0.8.0;\n\n\n/**\n * @dev Implementation of the {IERC165} interface.\n *\n * Contracts may inherit from this and call {_registerInterface} to declare\n * their support of an interface.\n */\nabstract contract ERC165 is IERC165 {\n /*\n * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7\n */\n bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;\n\n /**\n * @dev Mapping of interface ids to whether or not it's supported.\n */\n mapping(bytes4 => bool) private _supportedInterfaces;\n\n constructor () {\n // Derived contracts need only register support for their own interfaces,\n // we register support for ERC165 itself here\n _registerInterface(_INTERFACE_ID_ERC165);\n }\n\n /**\n * @dev See {IERC165-supportsInterface}.\n *\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {\n return _supportedInterfaces[interfaceId];\n }\n\n /**\n * @dev Registers the contract as an implementer of the interface defined by\n * `interfaceId`. Support of the actual ERC165 interface is automatic and\n * registering its interface id is not required.\n *\n * See {IERC165-supportsInterface}.\n *\n * Requirements:\n *\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).\n */\n function _registerInterface(bytes4 interfaceId) internal virtual {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n\n// File: @openzeppelin/contracts/math/SafeMath.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Wrappers over Solidity's arithmetic operations with added overflow\n * checks.\n *\n * Arithmetic operations in Solidity wrap on overflow. This can easily result\n * in bugs, because programmers usually assume that an overflow raises an\n * error, which is the standard behavior in high level programming languages.\n * `SafeMath` restores this intuition by reverting the transaction when an\n * operation overflows.\n *\n * Using this library instead of the unchecked operations eliminates an entire\n * class of bugs, so it's recommended to use it always.\n */\nlibrary SafeMath {\n /**\n * @dev Returns the addition of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n uint256 c = a + b;\n if (c < a) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the substraction of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b > a) return (false, 0);\n return (true, a - b);\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n *\n * _Available since v3.4._\n */\n function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n // Gas optimization: this is cheaper than requiring 'a' not being zero, but the\n // benefit is lost if 'b' is also tested.\n // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522\n if (a == 0) return (true, 0);\n uint256 c = a * b;\n if (c / a != b) return (false, 0);\n return (true, c);\n }\n\n /**\n * @dev Returns the division of two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a / b);\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n *\n * _Available since v3.4._\n */\n function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {\n if (b == 0) return (false, 0);\n return (true, a % b);\n }\n\n /**\n * @dev Returns the addition of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `+` operator.\n *\n * Requirements:\n *\n * - Addition cannot overflow.\n */\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\n uint256 c = a + b;\n require(c >= a, \"SafeMath: addition overflow\");\n return c;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting on\n * overflow (when the result is negative).\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b <= a, \"SafeMath: subtraction overflow\");\n return a - b;\n }\n\n /**\n * @dev Returns the multiplication of two unsigned integers, reverting on\n * overflow.\n *\n * Counterpart to Solidity's `*` operator.\n *\n * Requirements:\n *\n * - Multiplication cannot overflow.\n */\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\n if (a == 0) return 0;\n uint256 c = a * b;\n require(c / a == b, \"SafeMath: multiplication overflow\");\n return c;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting on\n * division by zero. The result is rounded towards zero.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: division by zero\");\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting when dividing by zero.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b) internal pure returns (uint256) {\n require(b > 0, \"SafeMath: modulo by zero\");\n return a % b;\n }\n\n /**\n * @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n * overflow (when the result is negative).\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {trySub}.\n *\n * Counterpart to Solidity's `-` operator.\n *\n * Requirements:\n *\n * - Subtraction cannot overflow.\n */\n function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b <= a, errorMessage);\n return a - b;\n }\n\n /**\n * @dev Returns the integer division of two unsigned integers, reverting with custom message on\n * division by zero. The result is rounded towards zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryDiv}.\n *\n * Counterpart to Solidity's `/` operator. Note: this function uses a\n * `revert` opcode (which leaves remaining gas untouched) while Solidity\n * uses an invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a / b;\n }\n\n /**\n * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n * reverting with custom message when dividing by zero.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryMod}.\n *\n * Counterpart to Solidity's `%` operator. This function uses a `revert`\n * opcode (which leaves remaining gas untouched) while Solidity uses an\n * invalid opcode to revert (consuming all remaining gas).\n *\n * Requirements:\n *\n * - The divisor cannot be zero.\n */\n function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {\n require(b > 0, errorMessage);\n return a % b;\n }\n}\n\n// File: @openzeppelin/contracts/utils/Address.sol\npragma solidity >=0.6.2 <0.8.0;\n\n/**\n * @dev Collection of functions related to the address type\n */\nlibrary Address {\n /**\n * @dev Returns true if `account` is a contract.\n *\n * [IMPORTANT]\n * ====\n * It is unsafe to assume that an address for which this function returns\n * false is an externally-owned account (EOA) and not a contract.\n *\n * Among others, `isContract` will return false for the following\n * types of addresses:\n *\n * - an externally-owned account\n * - a contract in construction\n * - an address where a contract will be created\n * - an address where a contract lived, but was destroyed\n * ====\n */\n function isContract(address account) internal view returns (bool) {\n // This method relies on extcodesize, which returns 0 for contracts in\n // construction, since the code is only stored at the end of the\n // constructor execution.\n\n uint256 size;\n // solhint-disable-next-line no-inline-assembly\n assembly { size := extcodesize(account) }\n return size > 0;\n }\n\n /**\n * @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n * `recipient`, forwarding all available gas and reverting on errors.\n *\n * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n * of certain opcodes, possibly making contracts go over the 2300 gas limit\n * imposed by `transfer`, making them unable to receive funds via\n * `transfer`. {sendValue} removes this limitation.\n *\n * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n *\n * IMPORTANT: because control is transferred to `recipient`, care must be\n * taken to not create reentrancy vulnerabilities. Consider using\n * {ReentrancyGuard} or the\n * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].\n */\n function sendValue(address payable recipient, uint256 amount) internal {\n require(address(this).balance >= amount, \"Address: insufficient balance\");\n\n // solhint-disable-next-line avoid-low-level-calls, avoid-call-value\n (bool success, ) = recipient.call{ value: amount }(\"\");\n require(success, \"Address: unable to send value, recipient may have reverted\");\n }\n\n /**\n * @dev Performs a Solidity function call using a low level `call`. A\n * plain`call` is an unsafe replacement for a function call: use this\n * function instead.\n *\n * If `target` reverts with a revert reason, it is bubbled up by this\n * function (like regular Solidity function calls).\n *\n * Returns the raw returned data. To convert to the expected return value,\n * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n *\n * Requirements:\n *\n * - `target` must be a contract.\n * - calling `target` with `data` must not revert.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionCall(target, data, \"Address: low-level call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n * `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n return functionCallWithValue(target, data, 0, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but also transferring `value` wei to `target`.\n *\n * Requirements:\n *\n * - the calling contract must have an ETH balance of at least `value`.\n * - the called Solidity function must be `payable`.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {\n return functionCallWithValue(target, data, value, \"Address: low-level call with value failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n * with `errorMessage` as a fallback revert reason when `target` reverts.\n *\n * _Available since v3.1._\n */\n function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {\n require(address(this).balance >= value, \"Address: insufficient balance for call\");\n require(isContract(target), \"Address: call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.call{ value: value }(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {\n return functionStaticCall(target, data, \"Address: low-level static call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a static call.\n *\n * _Available since v3.3._\n */\n function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) {\n require(isContract(target), \"Address: static call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.staticcall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {\n return functionDelegateCall(target, data, \"Address: low-level delegate call failed\");\n }\n\n /**\n * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n * but performing a delegate call.\n *\n * _Available since v3.4._\n */\n function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {\n require(isContract(target), \"Address: delegate call to non-contract\");\n\n // solhint-disable-next-line avoid-low-level-calls\n (bool success, bytes memory returndata) = target.delegatecall(data);\n return _verifyCallResult(success, returndata, errorMessage);\n }\n\n function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) {\n if (success) {\n return returndata;\n } else {\n // Look for revert reason and bubble it up if present\n if (returndata.length > 0) {\n // The easiest way to bubble the revert reason is using memory via assembly\n\n // solhint-disable-next-line no-inline-assembly\n assembly {\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n }\n } else {\n revert(errorMessage);\n }\n }\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableSet.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing\n * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n * types.\n *\n * Sets have the following properties:\n *\n * - Elements are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Elements are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableSet for EnumerableSet.AddressSet;\n *\n * // Declare a set state variable\n * EnumerableSet.AddressSet private mySet;\n * }\n * ```\n *\n * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n * and `uint256` (`UintSet`) are supported.\n */\nlibrary EnumerableSet {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Set type with\n // bytes32 values.\n // The Set implementation uses private functions, and user-facing\n // implementations (such as AddressSet) are just wrappers around the\n // underlying Set.\n // This means that we can only create new EnumerableSets for types that fit\n // in bytes32.\n\n struct Set {\n // Storage of set values\n bytes32[] _values;\n\n // Position of the value in the `values` array, plus 1 because index 0\n // means a value is not in the set.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function _add(Set storage set, bytes32 value) private returns (bool) {\n if (!_contains(set, value)) {\n set._values.push(value);\n // The value is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n set._indexes[value] = set._values.length;\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function _remove(Set storage set, bytes32 value) private returns (bool) {\n // We read and store the value's index to prevent multiple reads from the same storage slot\n uint256 valueIndex = set._indexes[value];\n\n if (valueIndex != 0) { // Equivalent to contains(set, value)\n // To delete an element from the _values array in O(1), we swap the element to delete with the last one in\n // the array, and then remove the last element (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = valueIndex - 1;\n uint256 lastIndex = set._values.length - 1;\n\n // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n bytes32 lastvalue = set._values[lastIndex];\n\n // Move the last value to the index where the value to delete is\n set._values[toDeleteIndex] = lastvalue;\n // Update the index for the moved value\n set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved value was stored\n set._values.pop();\n\n // Delete the index for the deleted slot\n delete set._indexes[value];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function _contains(Set storage set, bytes32 value) private view returns (bool) {\n return set._indexes[value] != 0;\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function _length(Set storage set) private view returns (uint256) {\n return set._values.length;\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Set storage set, uint256 index) private view returns (bytes32) {\n require(set._values.length > index, \"EnumerableSet: index out of bounds\");\n return set._values[index];\n }\n\n // Bytes32Set\n\n struct Bytes32Set {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _add(set._inner, value);\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) {\n return _remove(set._inner, value);\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) {\n return _contains(set._inner, value);\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(Bytes32Set storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) {\n return _at(set._inner, index);\n }\n\n // AddressSet\n\n struct AddressSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(AddressSet storage set, address value) internal returns (bool) {\n return _add(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(AddressSet storage set, address value) internal returns (bool) {\n return _remove(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(AddressSet storage set, address value) internal view returns (bool) {\n return _contains(set._inner, bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Returns the number of values in the set. O(1).\n */\n function length(AddressSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(AddressSet storage set, uint256 index) internal view returns (address) {\n return address(uint160(uint256(_at(set._inner, index))));\n }\n\n\n // UintSet\n\n struct UintSet {\n Set _inner;\n }\n\n /**\n * @dev Add a value to a set. O(1).\n *\n * Returns true if the value was added to the set, that is if it was not\n * already present.\n */\n function add(UintSet storage set, uint256 value) internal returns (bool) {\n return _add(set._inner, bytes32(value));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the value was removed from the set, that is if it was\n * present.\n */\n function remove(UintSet storage set, uint256 value) internal returns (bool) {\n return _remove(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns true if the value is in the set. O(1).\n */\n function contains(UintSet storage set, uint256 value) internal view returns (bool) {\n return _contains(set._inner, bytes32(value));\n }\n\n /**\n * @dev Returns the number of values on the set. O(1).\n */\n function length(UintSet storage set) internal view returns (uint256) {\n return _length(set._inner);\n }\n\n /**\n * @dev Returns the value stored at position `index` in the set. O(1).\n *\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintSet storage set, uint256 index) internal view returns (uint256) {\n return uint256(_at(set._inner, index));\n }\n}\n\n// File: @openzeppelin/contracts/utils/EnumerableMap.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev Library for managing an enumerable variant of Solidity's\n * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n * type.\n *\n * Maps have the following properties:\n *\n * - Entries are added, removed, and checked for existence in constant time\n * (O(1)).\n * - Entries are enumerated in O(n). No guarantees are made on the ordering.\n *\n * ```\n * contract Example {\n * // Add the library methods\n * using EnumerableMap for EnumerableMap.UintToAddressMap;\n *\n * // Declare a set state variable\n * EnumerableMap.UintToAddressMap private myMap;\n * }\n * ```\n *\n * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n * supported.\n */\nlibrary EnumerableMap {\n // To implement this library for multiple types with as little code\n // repetition as possible, we write it in terms of a generic Map type with\n // bytes32 keys and values.\n // The Map implementation uses private functions, and user-facing\n // implementations (such as Uint256ToAddressMap) are just wrappers around\n // the underlying Map.\n // This means that we can only create new EnumerableMaps for types that fit\n // in bytes32.\n\n struct MapEntry {\n bytes32 _key;\n bytes32 _value;\n }\n\n struct Map {\n // Storage of map keys and values\n MapEntry[] _entries;\n\n // Position of the entry defined by a key in the `entries` array, plus 1\n // because index 0 means a key is not in the map.\n mapping (bytes32 => uint256) _indexes;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex == 0) { // Equivalent to !contains(map, key)\n map._entries.push(MapEntry({ _key: key, _value: value }));\n // The entry is stored at length-1, but we add 1 to all indexes\n // and use 0 as a sentinel value\n map._indexes[key] = map._entries.length;\n return true;\n } else {\n map._entries[keyIndex - 1]._value = value;\n return false;\n }\n }\n\n /**\n * @dev Removes a key-value pair from a map. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function _remove(Map storage map, bytes32 key) private returns (bool) {\n // We read and store the key's index to prevent multiple reads from the same storage slot\n uint256 keyIndex = map._indexes[key];\n\n if (keyIndex != 0) { // Equivalent to contains(map, key)\n // To delete a key-value pair from the _entries array in O(1), we swap the entry to delete with the last one\n // in the array, and then remove the last entry (sometimes called as 'swap and pop').\n // This modifies the order of the array, as noted in {at}.\n\n uint256 toDeleteIndex = keyIndex - 1;\n uint256 lastIndex = map._entries.length - 1;\n\n // When the entry to delete is the last one, the swap operation is unnecessary. However, since this occurs\n // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement.\n\n MapEntry storage lastEntry = map._entries[lastIndex];\n\n // Move the last entry to the index where the entry to delete is\n map._entries[toDeleteIndex] = lastEntry;\n // Update the index for the moved entry\n map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based\n\n // Delete the slot where the moved entry was stored\n map._entries.pop();\n\n // Delete the index for the deleted slot\n delete map._indexes[key];\n\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function _contains(Map storage map, bytes32 key) private view returns (bool) {\n return map._indexes[key] != 0;\n }\n\n /**\n * @dev Returns the number of key-value pairs in the map. O(1).\n */\n function _length(Map storage map) private view returns (uint256) {\n return map._entries.length;\n }\n\n /**\n * @dev Returns the key-value pair stored at position `index` in the map. O(1).\n *\n * Note that there are no guarantees on the ordering of entries inside the\n * array, and it may change when more entries are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) {\n require(map._entries.length > index, \"EnumerableMap: index out of bounds\");\n\n MapEntry storage entry = map._entries[index];\n return (entry._key, entry._value);\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n */\n function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) {\n uint256 keyIndex = map._indexes[key];\n if (keyIndex == 0) return (false, 0); // Equivalent to contains(map, key)\n return (true, map._entries[keyIndex - 1]._value); // All indexes are 1-based\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function _get(Map storage map, bytes32 key) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, \"EnumerableMap: nonexistent key\"); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n /**\n * @dev Same as {_get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {_tryGet}.\n */\n function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) {\n uint256 keyIndex = map._indexes[key];\n require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key)\n return map._entries[keyIndex - 1]._value; // All indexes are 1-based\n }\n\n // UintToAddressMap\n\n struct UintToAddressMap {\n Map _inner;\n }\n\n /**\n * @dev Adds a key-value pair to a map, or updates the value for an existing\n * key. O(1).\n *\n * Returns true if the key was added to the map, that is if it was not\n * already present.\n */\n function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) {\n return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value))));\n }\n\n /**\n * @dev Removes a value from a set. O(1).\n *\n * Returns true if the key was removed from the map, that is if it was present.\n */\n function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) {\n return _remove(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns true if the key is in the map. O(1).\n */\n function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) {\n return _contains(map._inner, bytes32(key));\n }\n\n /**\n * @dev Returns the number of elements in the map. O(1).\n */\n function length(UintToAddressMap storage map) internal view returns (uint256) {\n return _length(map._inner);\n }\n\n /**\n * @dev Returns the element stored at position `index` in the set. O(1).\n * Note that there are no guarantees on the ordering of values inside the\n * array, and it may change when more values are added or removed.\n *\n * Requirements:\n *\n * - `index` must be strictly less than {length}.\n */\n function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) {\n (bytes32 key, bytes32 value) = _at(map._inner, index);\n return (uint256(key), address(uint160(uint256(value))));\n }\n\n /**\n * @dev Tries to returns the value associated with `key`. O(1).\n * Does not revert if `key` is not in the map.\n *\n * _Available since v3.4._\n */\n function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) {\n (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key));\n return (success, address(uint160(uint256(value))));\n }\n\n /**\n * @dev Returns the value associated with `key`. O(1).\n *\n * Requirements:\n *\n * - `key` must be in the map.\n */\n function get(UintToAddressMap storage map, uint256 key) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key)))));\n }\n\n /**\n * @dev Same as {get}, with a custom error message when `key` is not in the map.\n *\n * CAUTION: This function is deprecated because it requires allocating memory for the error\n * message unnecessarily. For custom revert reasons use {tryGet}.\n */\n function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) {\n return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage))));\n }\n}\n\n// File: @openzeppelin/contracts/utils/Strings.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @dev String operations.\n */\nlibrary Strings {\n /**\n * @dev Converts a `uint256` to its ASCII `string` representation.\n */\n function toString(uint256 value) internal pure returns (string memory) {\n // Inspired by OraclizeAPI's implementation - MIT licence\n // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol\n\n if (value == 0) {\n return \"0\";\n }\n uint256 temp = value;\n uint256 digits;\n while (temp != 0) {\n digits++;\n temp /= 10;\n }\n bytes memory buffer = new bytes(digits);\n uint256 index = digits - 1;\n temp = value;\n while (temp != 0) {\n buffer[index--] = bytes1(uint8(48 + temp % 10));\n temp /= 10;\n }\n return string(buffer);\n }\n}\n\n// File: @openzeppelin/contracts/token/ERC721/ERC721.sol\npragma solidity >=0.6.0 <0.8.0;\n\n/**\n * @title ERC721 Non-Fungible Token Standard basic implementation\n * @dev see https://eips.ethereum.org/EIPS/eip-721\n */\ncontract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable {\n using SafeMath for uint256;\n using Address for address;\n using EnumerableSet for EnumerableSet.UintSet;\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n using Strings for uint256;\n\n // Equals to `bytes4(keccak256(\"onERC721Received(address,address,uint256,bytes)\"))`\n // which can be also obtained as `IERC721Receiver(0).onERC721Received.selector`\n bytes4 private constant _ERC721_RECEIVED = 0x150b7a02;\n\n // Mapping from holder address to their (enumerable) set of owned tokens\n mapping (address => EnumerableSet.UintSet) private _holderTokens;\n\n // Enumerable mapping from token ids to their owners\n EnumerableMap.UintToAddressMap private _tokenOwners;\n\n // Mapping from token ID to approved address\n mapping (uint256 => address) private _tokenApprovals;\n\n // Mapping from owner to operator approvals\n mapping (address => mapping (address => bool)) private _operatorApprovals;\n\n // Token name\n string private _name;\n\n // Token symbol\n string private _symbol;\n\n // Optional mapping for token URIs\n mapping (uint256 => string) private _tokenURIs;\n\n // Base URI\n string private _baseURI;\n\n /*\n * bytes4(keccak256('balanceOf(address)')) == 0x70a08231\n * bytes4(keccak256('ownerOf(uint256)')) == 0x6352211e\n * bytes4(keccak256('approve(address,uint256)')) == 0x095ea7b3\n * bytes4(keccak256('getApproved(uint256)')) == 0x081812fc\n * bytes4(keccak256('setApprovalForAll(address,bool)')) == 0xa22cb465\n * bytes4(keccak256('isApprovedForAll(address,address)')) == 0xe985e9c5\n * bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd\n * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e\n * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde\n *\n * => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^\n * 0xa22cb465 ^ 0xe985e9c5 ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd\n */\n bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd;\n\n /*\n * bytes4(keccak256('name()')) == 0x06fdde03\n * bytes4(keccak256('symbol()')) == 0x95d89b41\n * bytes4(keccak256('tokenURI(uint256)')) == 0xc87b56dd\n *\n * => 0x06fdde03 ^ 0x95d89b41 ^ 0xc87b56dd == 0x5b5e139f\n */\n bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f;\n\n /*\n * bytes4(keccak256('totalSupply()')) == 0x18160ddd\n * bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) == 0x2f745c59\n * bytes4(keccak256('tokenByIndex(uint256)')) == 0x4f6ccce7\n *\n * => 0x18160ddd ^ 0x2f745c59 ^ 0x4f6ccce7 == 0x780e9d63\n */\n bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63;\n\n /**\n * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection.\n */\n constructor (string memory name_, string memory symbol_) {\n _name = name_;\n _symbol = symbol_;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(_INTERFACE_ID_ERC721);\n _registerInterface(_INTERFACE_ID_ERC721_METADATA);\n _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE);\n }\n\n /**\n * @dev See {IERC721-balanceOf}.\n */\n function balanceOf(address owner) public view virtual override returns (uint256) {\n require(owner != address(0), \"ERC721: balance query for the zero address\");\n return _holderTokens[owner].length();\n }\n\n /**\n * @dev See {IERC721-ownerOf}.\n */\n function ownerOf(uint256 tokenId) public view virtual override returns (address) {\n return _tokenOwners.get(tokenId, \"ERC721: owner query for nonexistent token\");\n }\n\n /**\n * @dev See {IERC721Metadata-name}.\n */\n function name() public view virtual override returns (string memory) {\n return _name;\n }\n\n /**\n * @dev See {IERC721Metadata-symbol}.\n */\n function symbol() public view virtual override returns (string memory) {\n return _symbol;\n }\n\n /**\n * @dev See {IERC721Metadata-tokenURI}.\n */\n function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {\n require(_exists(tokenId), \"ERC721Metadata: URI query for nonexistent token\");\n\n string memory _tokenURI = _tokenURIs[tokenId];\n string memory base = baseURI();\n\n // If there is no base URI, return the token URI.\n if (bytes(base).length == 0) {\n return _tokenURI;\n }\n // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked).\n if (bytes(_tokenURI).length > 0) {\n return string(abi.encodePacked(base, _tokenURI));\n }\n // If there is a baseURI but no tokenURI, concatenate the tokenID to the baseURI.\n return string(abi.encodePacked(base, tokenId.toString()));\n }\n\n /**\n * @dev Returns the base URI set via {_setBaseURI}. This will be\n * automatically added as a prefix in {tokenURI} to each token's URI, or\n * to the token ID if no specific URI is set for that token ID.\n */\n function baseURI() public view virtual returns (string memory) {\n return _baseURI;\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}.\n */\n function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) {\n return _holderTokens[owner].at(index);\n }\n\n /**\n * @dev See {IERC721Enumerable-totalSupply}.\n */\n function totalSupply() public view virtual override returns (uint256) {\n // _tokenOwners are indexed by tokenIds, so .length() returns the number of tokenIds\n return _tokenOwners.length();\n }\n\n /**\n * @dev See {IERC721Enumerable-tokenByIndex}.\n */\n function tokenByIndex(uint256 index) public view virtual override returns (uint256) {\n (uint256 tokenId, ) = _tokenOwners.at(index);\n return tokenId;\n }\n\n /**\n * @dev See {IERC721-approve}.\n */\n function approve(address to, uint256 tokenId) public virtual override {\n address owner = ERC721.ownerOf(tokenId);\n require(to != owner, \"ERC721: approval to current owner\");\n\n require(_msgSender() == owner || ERC721.isApprovedForAll(owner, _msgSender()),\n \"ERC721: approve caller is not owner nor approved for all\"\n );\n\n _approve(to, tokenId);\n }\n\n /**\n * @dev See {IERC721-getApproved}.\n */\n function getApproved(uint256 tokenId) public view virtual override returns (address) {\n require(_exists(tokenId), \"ERC721: approved query for nonexistent token\");\n\n return _tokenApprovals[tokenId];\n }\n\n /**\n * @dev See {IERC721-setApprovalForAll}.\n */\n function setApprovalForAll(address operator, bool approved) public virtual override {\n require(operator != _msgSender(), \"ERC721: approve to caller\");\n\n _operatorApprovals[_msgSender()][operator] = approved;\n emit ApprovalForAll(_msgSender(), operator, approved);\n }\n\n /**\n * @dev See {IERC721-isApprovedForAll}.\n */\n function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) {\n return _operatorApprovals[owner][operator];\n }\n\n /**\n * @dev See {IERC721-transferFrom}.\n */\n function transferFrom(address from, address to, uint256 tokenId) public virtual override {\n //solhint-disable-next-line max-line-length\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n\n _transfer(from, to, tokenId);\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override {\n safeTransferFrom(from, to, tokenId, \"\");\n }\n\n /**\n * @dev See {IERC721-safeTransferFrom}.\n */\n function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public virtual override {\n require(_isApprovedOrOwner(_msgSender(), tokenId), \"ERC721: transfer caller is not owner nor approved\");\n _safeTransfer(from, to, tokenId, _data);\n }\n\n /**\n * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n * are aware of the ERC721 protocol to prevent tokens from being forever locked.\n *\n * `_data` is additional data, it has no specified format and it is sent in call to `to`.\n *\n * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n * implement alternative mechanisms to perform token transfer, such as signature-based.\n *\n * Requirements:\n *\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n * - `tokenId` token must exist and be owned by `from`.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual {\n _transfer(from, to, tokenId);\n require(_checkOnERC721Received(from, to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Returns whether `tokenId` exists.\n *\n * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n *\n * Tokens start existing when they are minted (`_mint`),\n * and stop existing when they are burned (`_burn`).\n */\n function _exists(uint256 tokenId) internal view virtual returns (bool) {\n return _tokenOwners.contains(tokenId);\n }\n\n /**\n * @dev Returns whether `spender` is allowed to manage `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) {\n require(_exists(tokenId), \"ERC721: operator query for nonexistent token\");\n address owner = ERC721.ownerOf(tokenId);\n return (spender == owner || getApproved(tokenId) == spender || ERC721.isApprovedForAll(owner, spender));\n }\n\n /**\n * @dev Safely mints `tokenId` and transfers it to `to`.\n *\n * Requirements:\n d*\n * - `tokenId` must not exist.\n * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n *\n * Emits a {Transfer} event.\n */\n function _safeMint(address to, uint256 tokenId) internal virtual {\n _safeMint(to, tokenId, \"\");\n }\n\n /**\n * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n * forwarded in {IERC721Receiver-onERC721Received} to contract recipients.\n */\n function _safeMint(address to, uint256 tokenId, bytes memory _data) internal virtual {\n _mint(to, tokenId);\n require(_checkOnERC721Received(address(0), to, tokenId, _data), \"ERC721: transfer to non ERC721Receiver implementer\");\n }\n\n /**\n * @dev Mints `tokenId` and transfers it to `to`.\n *\n * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n *\n * Requirements:\n *\n * - `tokenId` must not exist.\n * - `to` cannot be the zero address.\n *\n * Emits a {Transfer} event.\n */\n function _mint(address to, uint256 tokenId) internal virtual {\n require(to != address(0), \"ERC721: mint to the zero address\");\n require(!_exists(tokenId), \"ERC721: token already minted\");\n\n _beforeTokenTransfer(address(0), to, tokenId);\n\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(address(0), to, tokenId);\n }\n\n /**\n * @dev Destroys `tokenId`.\n * The approval is cleared when the token is burned.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n *\n * Emits a {Transfer} event.\n */\n function _burn(uint256 tokenId) internal virtual {\n address owner = ERC721.ownerOf(tokenId); // internal owner\n\n _beforeTokenTransfer(owner, address(0), tokenId);\n\n // Clear approvals\n _approve(address(0), tokenId);\n\n // Clear metadata (if any)\n if (bytes(_tokenURIs[tokenId]).length != 0) {\n delete _tokenURIs[tokenId];\n }\n\n _holderTokens[owner].remove(tokenId);\n\n _tokenOwners.remove(tokenId);\n\n emit Transfer(owner, address(0), tokenId);\n }\n\n /**\n * @dev Transfers `tokenId` from `from` to `to`.\n * As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n *\n * Requirements:\n *\n * - `to` cannot be the zero address.\n * - `tokenId` token must be owned by `from`.\n *\n * Emits a {Transfer} event.\n */\n function _transfer(address from, address to, uint256 tokenId) internal virtual {\n require(ERC721.ownerOf(tokenId) == from, \"ERC721: transfer of token that is not own\"); // internal owner\n require(to != address(0), \"ERC721: transfer to the zero address\");\n\n _beforeTokenTransfer(from, to, tokenId);\n\n // Clear approvals from the previous owner\n _approve(address(0), tokenId);\n\n _holderTokens[from].remove(tokenId);\n _holderTokens[to].add(tokenId);\n\n _tokenOwners.set(tokenId, to);\n\n emit Transfer(from, to, tokenId);\n }\n\n /**\n * @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n *\n * Requirements:\n *\n * - `tokenId` must exist.\n */\n function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual {\n require(_exists(tokenId), \"ERC721Metadata: URI set of nonexistent token\");\n _tokenURIs[tokenId] = _tokenURI;\n }\n\n /**\n * @dev Internal function to set the base URI for all token IDs. It is\n * automatically added as a prefix to the value returned in {tokenURI},\n * or to the token ID if {tokenURI} is empty.\n */\n function _setBaseURI(string memory baseURI_) internal virtual {\n _baseURI = baseURI_;\n }\n\n /**\n * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n * The call is not executed if the target address is not a contract.\n *\n * @param from address representing the previous owner of the given token ID\n * @param to target address that will receive the tokens\n * @param tokenId uint256 ID of the token to be transferred\n * @param _data bytes optional data to send along with the call\n * @return bool whether the call correctly returned the expected magic value\n */\n function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data)\n private returns (bool)\n {\n if (!to.isContract()) {\n return true;\n }\n bytes memory returndata = to.functionCall(abi.encodeWithSelector(\n IERC721Receiver(to).onERC721Received.selector,\n _msgSender(),\n from,\n tokenId,\n _data\n ), \"ERC721: transfer to non ERC721Receiver implementer\");\n bytes4 retval = abi.decode(returndata, (bytes4));\n return (retval == _ERC721_RECEIVED);\n }\n\n /**\n * @dev Approve `to` to operate on `tokenId`\n *\n * Emits an {Approval} event.\n */\n function _approve(address to, uint256 tokenId) internal virtual {\n _tokenApprovals[tokenId] = to;\n emit Approval(ERC721.ownerOf(tokenId), to, tokenId); // internal owner\n }\n\n /**\n * @dev Hook that is called before any token transfer. This includes minting\n * and burning.\n *\n * Calling conditions:\n *\n * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n * transferred to `to`.\n * - When `from` is zero, `tokenId` will be minted for `to`.\n * - When `to` is zero, ``from``'s `tokenId` will be burned.\n * - `from` cannot be the zero address.\n * - `to` cannot be the zero address.\n *\n * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks].\n */\n function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual { }\n}\n", + "sourcePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "ast": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "id": 3499, + "license": "MIT", + "nodeType": "SourceUnit", + "nodes": [ + { + "id": 509, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "84:31:1" + }, + { + "abstract": true, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "contract", + "fullyImplemented": true, + "id": 530, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 517, + "nodeType": "Block", + "src": "719:34:1", + "statements": [ + { + "expression": { + "expression": { + "id": 514, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "736:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 515, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "sender", + "nodeType": "MemberAccess", + "src": "736:10:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 513, + "id": 516, + "nodeType": "Return", + "src": "729:17:1" + } + ] + }, + "id": 518, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgSender", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 510, + "nodeType": "ParameterList", + "parameters": [], + "src": "668:2:1" + }, + "returnParameters": { + "id": 513, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 512, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 518, + "src": "702:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 511, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "702:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + } + ], + "src": "701:17:1" + }, + "scope": 530, + "src": "649:104:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 528, + "nodeType": "Block", + "src": "824:165:1", + "statements": [ + { + "expression": { + "id": 523, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "834:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 524, + "nodeType": "ExpressionStatement", + "src": "834:4:1" + }, + { + "expression": { + "expression": { + "id": 525, + "name": "msg", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967281, + "src": "974:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_message", + "typeString": "msg" + } + }, + "id": 526, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "data", + "nodeType": "MemberAccess", + "src": "974:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes calldata" + } + }, + "functionReturnParameters": 522, + "id": 527, + "nodeType": "Return", + "src": "967:15:1" + } + ] + }, + "id": 529, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_msgData", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 519, + "nodeType": "ParameterList", + "parameters": [], + "src": "776:2:1" + }, + "returnParameters": { + "id": 522, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 521, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 529, + "src": "810:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 520, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "810:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "809:14:1" + }, + "scope": 530, + "src": "759:230:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "617:374:1" + }, + { + "id": 531, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1053:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 532, + "nodeType": "StructuredDocumentation", + "src": "1086:279:1", + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "fullyImplemented": false, + "id": 541, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 533, + "nodeType": "StructuredDocumentation", + "src": "1390:340:1", + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 540, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 536, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 535, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1762:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 534, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "1762:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "1761:20:1" + }, + "returnParameters": { + "id": 539, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 538, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 540, + "src": "1805:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 537, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "1805:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "1804:6:1" + }, + "scope": 541, + "src": "1735:76:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1366:447:1" + }, + { + "id": 542, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "1873:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 544, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "1996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 545, + "nodeType": "InheritanceSpecifier", + "src": "1996:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "documentation": { + "id": 543, + "nodeType": "StructuredDocumentation", + "src": "1907:67:1", + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "fullyImplemented": false, + "id": 655, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "anonymous": false, + "documentation": { + "id": 546, + "nodeType": "StructuredDocumentation", + "src": "2010:88:1", + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 554, + "name": "Transfer", + "nodeType": "EventDefinition", + "parameters": { + "id": 553, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 548, + "indexed": true, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2118:20:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 547, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2118:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 550, + "indexed": true, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2140:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 549, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2140:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 552, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 554, + "src": "2160:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 551, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2117:67:1" + }, + "src": "2103:82:1" + }, + { + "anonymous": false, + "documentation": { + "id": 555, + "nodeType": "StructuredDocumentation", + "src": "2191:94:1", + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 563, + "name": "Approval", + "nodeType": "EventDefinition", + "parameters": { + "id": 562, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 557, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2305:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 556, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2305:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 559, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2328:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 558, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 561, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 563, + "src": "2354:23:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 560, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2354:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2304:74:1" + }, + "src": "2290:89:1" + }, + { + "anonymous": false, + "documentation": { + "id": 564, + "nodeType": "StructuredDocumentation", + "src": "2385:117:1", + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 572, + "name": "ApprovalForAll", + "nodeType": "EventDefinition", + "parameters": { + "id": 571, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 566, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2528:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 565, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2528:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 568, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2551:24:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 567, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2551:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 570, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 572, + "src": "2577:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 569, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "2577:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "2527:64:1" + }, + "src": "2507:85:1" + }, + { + "documentation": { + "id": 573, + "nodeType": "StructuredDocumentation", + "src": "2598:76:1", + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "functionSelector": "70a08231", + "id": 580, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 576, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 575, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2698:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 574, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2698:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2697:15:1" + }, + "returnParameters": { + "id": 579, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 578, + "mutability": "mutable", + "name": "balance", + "nodeType": "VariableDeclaration", + "scope": 580, + "src": "2736:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 577, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2735:17:1" + }, + "scope": 655, + "src": "2679:74:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 581, + "nodeType": "StructuredDocumentation", + "src": "2759:131:1", + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "6352211e", + "id": 588, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 584, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 583, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2912:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 582, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "2912:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "2911:17:1" + }, + "returnParameters": { + "id": 587, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 586, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 588, + "src": "2952:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 585, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "2952:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "2951:15:1" + }, + "scope": 655, + "src": "2895:72:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 589, + "nodeType": "StructuredDocumentation", + "src": "2973:690:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "42842e0e", + "id": 598, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 596, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 591, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3694:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 590, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3694:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 593, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3708:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 592, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "3708:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 595, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 598, + "src": "3720:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 594, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "3720:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "3693:43:1" + }, + "returnParameters": { + "id": 597, + "nodeType": "ParameterList", + "parameters": [], + "src": "3745:0:1" + }, + "scope": 655, + "src": "3668:78:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 599, + "nodeType": "StructuredDocumentation", + "src": "3752:504:1", + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "functionSelector": "23b872dd", + "id": 608, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 606, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 601, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4283:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 600, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4283:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 603, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4297:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 602, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4297:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 605, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 608, + "src": "4309:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 604, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4309:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4282:43:1" + }, + "returnParameters": { + "id": 607, + "nodeType": "ParameterList", + "parameters": [], + "src": "4334:0:1" + }, + "scope": 655, + "src": "4261:74:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 609, + "nodeType": "StructuredDocumentation", + "src": "4341:452:1", + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "functionSelector": "095ea7b3", + "id": 616, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 614, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 611, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4815:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 610, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "4815:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 613, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 616, + "src": "4827:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 612, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "4827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "4814:29:1" + }, + "returnParameters": { + "id": 615, + "nodeType": "ParameterList", + "parameters": [], + "src": "4852:0:1" + }, + "scope": 655, + "src": "4798:55:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 617, + "nodeType": "StructuredDocumentation", + "src": "4859:139:1", + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "functionSelector": "081812fc", + "id": 624, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 620, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 619, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5024:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 618, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "5024:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "5023:17:1" + }, + "returnParameters": { + "id": 623, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 622, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 624, + "src": "5064:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 621, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5064:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5063:18:1" + }, + "scope": 655, + "src": "5003:79:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 625, + "nodeType": "StructuredDocumentation", + "src": "5088:309:1", + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "functionSelector": "a22cb465", + "id": 632, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 630, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 627, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5429:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 626, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5429:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 629, + "mutability": "mutable", + "name": "_approved", + "nodeType": "VariableDeclaration", + "scope": 632, + "src": "5447:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 628, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5447:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5428:34:1" + }, + "returnParameters": { + "id": 631, + "nodeType": "ParameterList", + "parameters": [], + "src": "5471:0:1" + }, + "scope": 655, + "src": "5402:70:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 633, + "nodeType": "StructuredDocumentation", + "src": "5478:138:1", + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "functionSelector": "e985e9c5", + "id": 642, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 638, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 635, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5647:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 634, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5647:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 637, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5662:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 636, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "5662:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "5646:33:1" + }, + "returnParameters": { + "id": 641, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 640, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 642, + "src": "5703:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 639, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "5703:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "5702:6:1" + }, + "scope": 655, + "src": "5621:88:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 643, + "nodeType": "StructuredDocumentation", + "src": "5715:568:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "functionSelector": "b88d4fde", + "id": 654, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 652, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 645, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6314:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 644, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6314:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 647, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6328:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 646, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "6328:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 649, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6340:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 648, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "6340:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 651, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 654, + "src": "6357:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 650, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "6357:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "6313:64:1" + }, + "returnParameters": { + "id": 653, + "nodeType": "ParameterList", + "parameters": [], + "src": "6386:0:1" + }, + "scope": 655, + "src": "6288:99:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "1975:4414:1" + }, + { + "id": 656, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "6457:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 658, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "6654:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 659, + "nodeType": "InheritanceSpecifier", + "src": "6654:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 657, + "nodeType": "StructuredDocumentation", + "src": "6491:133:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 680, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 660, + "nodeType": "StructuredDocumentation", + "src": "6669:58:1", + "text": " @dev Returns the token collection name." + }, + "functionSelector": "06fdde03", + "id": 665, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 661, + "nodeType": "ParameterList", + "parameters": [], + "src": "6745:2:1" + }, + "returnParameters": { + "id": 664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 663, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 665, + "src": "6771:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 662, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6771:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6770:15:1" + }, + "scope": 680, + "src": "6732:54:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 666, + "nodeType": "StructuredDocumentation", + "src": "6792:60:1", + "text": " @dev Returns the token collection symbol." + }, + "functionSelector": "95d89b41", + "id": 671, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 667, + "nodeType": "ParameterList", + "parameters": [], + "src": "6872:2:1" + }, + "returnParameters": { + "id": 670, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 669, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 671, + "src": "6898:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 668, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "6898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "6897:15:1" + }, + "scope": 680, + "src": "6857:56:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 672, + "nodeType": "StructuredDocumentation", + "src": "6919:90:1", + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "functionSelector": "c87b56dd", + "id": 679, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 674, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7032:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 673, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7031:17:1" + }, + "returnParameters": { + "id": 678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 679, + "src": "7072:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 676, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "7072:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "7071:15:1" + }, + "scope": 680, + "src": "7014:73:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "6625:464:1" + }, + { + "id": 681, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "7161:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 683, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "7363:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 684, + "nodeType": "InheritanceSpecifier", + "src": "7363:7:1" + } + ], + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "documentation": { + "id": 682, + "nodeType": "StructuredDocumentation", + "src": "7195:136:1", + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": false, + "id": 709, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 685, + "nodeType": "StructuredDocumentation", + "src": "7378:82:1", + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "functionSelector": "18160ddd", + "id": 690, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 686, + "nodeType": "ParameterList", + "parameters": [], + "src": "7485:2:1" + }, + "returnParameters": { + "id": 689, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 688, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 690, + "src": "7511:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 687, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7511:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7510:9:1" + }, + "scope": 709, + "src": "7465:55:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 691, + "nodeType": "StructuredDocumentation", + "src": "7526:171:1", + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "functionSelector": "2f745c59", + "id": 700, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 696, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 693, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7731:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "7731:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 695, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7746:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 694, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7746:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7730:30:1" + }, + "returnParameters": { + "id": 699, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 698, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 700, + "src": "7784:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 697, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7784:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7783:17:1" + }, + "scope": 709, + "src": "7702:99:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + { + "documentation": { + "id": 701, + "nodeType": "StructuredDocumentation", + "src": "7807:164:1", + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "functionSelector": "4f6ccce7", + "id": 708, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 704, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 703, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "7998:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 702, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "7998:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "7997:15:1" + }, + "returnParameters": { + "id": 707, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 706, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 708, + "src": "8036:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 705, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8036:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "8035:9:1" + }, + "scope": 709, + "src": "7976:69:1", + "stateMutability": "view", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "7332:715:1" + }, + { + "id": 710, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "8117:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "interface", + "documentation": { + "id": 711, + "nodeType": "StructuredDocumentation", + "src": "8150:152:1", + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "fullyImplemented": false, + "id": 726, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "nodeType": "ContractDefinition", + "nodes": [ + { + "documentation": { + "id": 712, + "nodeType": "StructuredDocumentation", + "src": "8335:485:1", + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "functionSelector": "150b7a02", + "id": 725, + "implemented": false, + "kind": "function", + "modifiers": [], + "name": "onERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 721, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 714, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8851:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 713, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8851:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 716, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8869:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 715, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "8869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 718, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8883:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 717, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "8883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 720, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8900:19:1", + "stateVariable": false, + "storageLocation": "calldata", + "typeDescriptions": { + "typeIdentifier": "t_bytes_calldata_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 719, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "8900:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "8850:70:1" + }, + "returnParameters": { + "id": 724, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 723, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 725, + "src": "8939:6:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 722, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "8939:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "8938:8:1" + }, + "scope": 726, + "src": "8825:122:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + } + ], + "scope": 3499, + "src": "8303:646:1" + }, + { + "id": 727, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "9009:31:1" + }, + { + "abstract": true, + "baseContracts": [ + { + "baseName": { + "id": 729, + "name": "IERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 541, + "src": "9243:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC165_$541", + "typeString": "contract IERC165" + } + }, + "id": 730, + "nodeType": "InheritanceSpecifier", + "src": "9243:7:1" + } + ], + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "documentation": { + "id": 728, + "nodeType": "StructuredDocumentation", + "src": "9043:171:1", + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "fullyImplemented": true, + "id": 781, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "nodeType": "ContractDefinition", + "nodes": [ + { + "constant": true, + "id": 733, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9340:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 731, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9340:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783031666663396137", + "id": 732, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "9387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_33540519_by_1", + "typeString": "int_const 33540519" + }, + "value": "0x01ffc9a7" + }, + "visibility": "private" + }, + { + "constant": false, + "documentation": { + "id": 734, + "nodeType": "StructuredDocumentation", + "src": "9404:82:1", + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 738, + "mutability": "mutable", + "name": "_supportedInterfaces", + "nodeType": "VariableDeclaration", + "scope": 781, + "src": "9491:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "typeName": { + "id": 737, + "keyType": { + "id": 735, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9499:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "Mapping", + "src": "9491:23:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + }, + "valueType": { + "id": 736, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9509:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + }, + "visibility": "private" + }, + { + "body": { + "id": 745, + "nodeType": "Block", + "src": "9565:193:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 742, + "name": "_INTERFACE_ID_ERC165", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 733, + "src": "9730:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 741, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "9711:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 743, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "9711:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 744, + "nodeType": "ExpressionStatement", + "src": "9711:40:1" + } + ] + }, + "id": 746, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 739, + "nodeType": "ParameterList", + "parameters": [], + "src": "9562:2:1" + }, + "returnParameters": { + "id": 740, + "nodeType": "ParameterList", + "parameters": [], + "src": "9565:0:1" + }, + "scope": 781, + "src": "9550:208:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "baseFunctions": [ + 540 + ], + "body": { + "id": 759, + "nodeType": "Block", + "src": "9999:57:1", + "statements": [ + { + "expression": { + "baseExpression": { + "id": 755, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10016:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 757, + "indexExpression": { + "id": 756, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 749, + "src": "10037:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "10016:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 754, + "id": 758, + "nodeType": "Return", + "src": "10009:40:1" + } + ] + }, + "documentation": { + "id": 747, + "nodeType": "StructuredDocumentation", + "src": "9764:139:1", + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "functionSelector": "01ffc9a7", + "id": 760, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "supportsInterface", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 751, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "9975:8:1" + }, + "parameters": { + "id": 750, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 749, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9935:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 748, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "9935:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "9934:20:1" + }, + "returnParameters": { + "id": 754, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 753, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 760, + "src": "9993:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 752, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "9993:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "9992:6:1" + }, + "scope": 781, + "src": "9908:148:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 779, + "nodeType": "Block", + "src": "10515:133:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 769, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 767, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10533:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30786666666666666666", + "id": 768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10548:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_4294967295_by_1", + "typeString": "int_const 4294967295" + }, + "value": "0xffffffff" + }, + "src": "10533:25:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", + "id": 770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10560:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + }, + "value": "ERC165: invalid interface id" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "id": 766, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "10525:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 771, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "10525:66:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 772, + "nodeType": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "expression": { + "id": 777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 773, + "name": "_supportedInterfaces", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 738, + "src": "10601:20:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", + "typeString": "mapping(bytes4 => bool)" + } + }, + "id": 775, + "indexExpression": { + "id": 774, + "name": "interfaceId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 763, + "src": "10622:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "10601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "hexValue": "74727565", + "id": 776, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "10637:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "src": "10601:40:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 778, + "nodeType": "ExpressionStatement", + "src": "10601:40:1" + } + ] + }, + "documentation": { + "id": 761, + "nodeType": "StructuredDocumentation", + "src": "10062:383:1", + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 780, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_registerInterface", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 764, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 763, + "mutability": "mutable", + "name": "interfaceId", + "nodeType": "VariableDeclaration", + "scope": 780, + "src": "10478:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 762, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "10478:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "src": "10477:20:1" + }, + "returnParameters": { + "id": 765, + "nodeType": "ParameterList", + "parameters": [], + "src": "10515:0:1" + }, + "scope": 781, + "src": "10450:198:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "9215:1435:1" + }, + { + "id": 782, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "10703:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 783, + "nodeType": "StructuredDocumentation", + "src": "10736:563:1", + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "fullyImplemented": true, + "id": 1135, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 813, + "nodeType": "Block", + "src": "11535:98:1", + "statements": [ + { + "assignments": [ + 796 + ], + "declarations": [ + { + "constant": false, + "id": 796, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 813, + "src": "11545:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 795, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11545:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 800, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 799, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 797, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11557:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 798, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 788, + "src": "11561:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11557:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 803, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 801, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11576:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<", + "rightExpression": { + "id": 802, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 786, + "src": "11580:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11576:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 808, + "nodeType": "IfStatement", + "src": "11572:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 804, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11591:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 805, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11598:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 806, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11590:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 794, + "id": 807, + "nodeType": "Return", + "src": "11583:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 809, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11618:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 810, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 796, + "src": "11624:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 811, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11617:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 794, + "id": 812, + "nodeType": "Return", + "src": "11610:16:1" + } + ] + }, + "documentation": { + "id": 784, + "nodeType": "StructuredDocumentation", + "src": "11323:131:1", + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 814, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryAdd", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 789, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 786, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11475:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 785, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11475:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 788, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11486:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 787, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11486:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11474:22:1" + }, + "returnParameters": { + "id": 794, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 791, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 790, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 793, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 814, + "src": "11526:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 792, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11526:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11519:15:1" + }, + "scope": 1135, + "src": "11459:174:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 840, + "nodeType": "Block", + "src": "11855:75:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 828, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 826, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11869:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 827, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11873:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11869:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 833, + "nodeType": "IfStatement", + "src": "11865:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 829, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11884:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 830, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 831, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11883:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 825, + "id": 832, + "nodeType": "Return", + "src": "11876:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 834, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "11911:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 837, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 835, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 817, + "src": "11917:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 836, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 819, + "src": "11921:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "11917:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 838, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "11910:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 825, + "id": 839, + "nodeType": "Return", + "src": "11903:20:1" + } + ] + }, + "documentation": { + "id": 815, + "nodeType": "StructuredDocumentation", + "src": "11639:135:1", + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 841, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "trySub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 820, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 817, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11795:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 816, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11795:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 819, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11806:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 818, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11806:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11794:22:1" + }, + "returnParameters": { + "id": 825, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 822, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11840:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 821, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "11840:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 824, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 841, + "src": "11846:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 823, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "11846:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "11839:15:1" + }, + "scope": 1135, + "src": "11779:151:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 881, + "nodeType": "Block", + "src": "12154:359:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 855, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 853, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12386:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 854, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12391:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12386:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 860, + "nodeType": "IfStatement", + "src": "12382:28:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 856, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12402:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "hexValue": "30", + "id": 857, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12408:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 858, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12401:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 859, + "nodeType": "Return", + "src": "12394:16:1" + } + }, + { + "assignments": [ + 862 + ], + "declarations": [ + { + "constant": false, + "id": 862, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 881, + "src": "12420:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 861, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12420:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 866, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 865, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 863, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12432:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 864, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12436:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12432:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 871, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 869, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 867, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12451:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 868, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 844, + "src": "12455:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 870, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 846, + "src": "12460:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12451:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 876, + "nodeType": "IfStatement", + "src": "12447:33:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 872, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12471:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 873, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12478:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 874, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12470:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 852, + "id": 875, + "nodeType": "Return", + "src": "12463:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 877, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12498:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "id": 878, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 862, + "src": "12504:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 879, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12497:9:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 852, + "id": 880, + "nodeType": "Return", + "src": "12490:16:1" + } + ] + }, + "documentation": { + "id": 842, + "nodeType": "StructuredDocumentation", + "src": "11936:137:1", + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 882, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 847, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 844, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12094:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 843, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12094:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 846, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12105:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 845, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12093:22:1" + }, + "returnParameters": { + "id": 852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 849, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12139:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 848, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12139:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 851, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 882, + "src": "12145:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12145:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12138:15:1" + }, + "scope": 1135, + "src": "12078:435:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 908, + "nodeType": "Block", + "src": "12738:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 896, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 894, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12752:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 895, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12757:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "12752:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 901, + "nodeType": "IfStatement", + "src": "12748:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 897, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12768:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 898, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12775:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 899, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12767:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 893, + "id": 900, + "nodeType": "Return", + "src": "12760:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 902, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "12795:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 903, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 885, + "src": "12801:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 904, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 887, + "src": "12805:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "12801:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 906, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "12794:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 893, + "id": 907, + "nodeType": "Return", + "src": "12787:20:1" + } + ] + }, + "documentation": { + "id": 883, + "nodeType": "StructuredDocumentation", + "src": "12519:138:1", + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 909, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryDiv", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 888, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 885, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12678:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 884, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12678:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 887, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12689:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 886, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12689:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12677:22:1" + }, + "returnParameters": { + "id": 893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 890, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12723:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 889, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "12723:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 909, + "src": "12729:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12729:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12722:15:1" + }, + "scope": 1135, + "src": "12662:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 935, + "nodeType": "Block", + "src": "13049:76:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 923, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 921, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13063:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 922, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13068:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "13063:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 928, + "nodeType": "IfStatement", + "src": "13059:29:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 924, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13079:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 925, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13086:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 926, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13078:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 920, + "id": 927, + "nodeType": "Return", + "src": "13071:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 929, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13106:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 932, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 930, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 912, + "src": "13112:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 931, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 914, + "src": "13116:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13112:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "id": 933, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "13105:13:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_uint256_$", + "typeString": "tuple(bool,uint256)" + } + }, + "functionReturnParameters": 920, + "id": 934, + "nodeType": "Return", + "src": "13098:20:1" + } + ] + }, + "documentation": { + "id": 910, + "nodeType": "StructuredDocumentation", + "src": "12820:148:1", + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 936, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryMod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 915, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 912, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "12989:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 911, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "12989:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 914, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13000:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 913, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13000:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "12988:22:1" + }, + "returnParameters": { + "id": 920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 917, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13034:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 916, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "13034:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 919, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 936, + "src": "13040:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 918, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13040:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13033:15:1" + }, + "scope": 1135, + "src": "12973:152:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 961, + "nodeType": "Block", + "src": "13427:108:1", + "statements": [ + { + "assignments": [ + 947 + ], + "declarations": [ + { + "constant": false, + "id": 947, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 961, + "src": "13437:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 946, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13437:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 951, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 950, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 948, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13449:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "id": 949, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 941, + "src": "13453:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13449:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 955, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 953, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13472:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 954, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 939, + "src": "13477:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "id": 956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13480:29:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + }, + "value": "SafeMath: addition overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "id": 952, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13464:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 958, + "nodeType": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "expression": { + "id": 959, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 947, + "src": "13527:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 945, + "id": 960, + "nodeType": "Return", + "src": "13520:8:1" + } + ] + }, + "documentation": { + "id": 937, + "nodeType": "StructuredDocumentation", + "src": "13131:224:1", + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 962, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 942, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 939, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13373:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 938, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 941, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13384:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 940, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13384:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13372:22:1" + }, + "returnParameters": { + "id": 945, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 944, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 962, + "src": "13418:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 943, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13418:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13417:9:1" + }, + "scope": 1135, + "src": "13360:175:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 983, + "nodeType": "Block", + "src": "13873:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 975, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 973, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13891:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 974, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13896:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13891:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "id": 976, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "13899:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + }, + "value": "SafeMath: subtraction overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "id": 972, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "13883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "13883:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 978, + "nodeType": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 981, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 979, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 965, + "src": "13949:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 980, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 967, + "src": "13953:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "13949:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 971, + "id": 982, + "nodeType": "Return", + "src": "13942:12:1" + } + ] + }, + "documentation": { + "id": 963, + "nodeType": "StructuredDocumentation", + "src": "13541:260:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 984, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 968, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 965, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13819:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 964, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 967, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13830:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 966, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13830:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13818:22:1" + }, + "returnParameters": { + "id": 971, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 970, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 984, + "src": "13864:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 969, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "13864:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "13863:9:1" + }, + "scope": 1135, + "src": "13806:155:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1017, + "nodeType": "Block", + "src": "14275:148:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 996, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 994, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14289:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 995, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14294:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14289:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 999, + "nodeType": "IfStatement", + "src": "14285:20:1", + "trueBody": { + "expression": { + "hexValue": "30", + "id": 997, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14304:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "functionReturnParameters": 993, + "id": 998, + "nodeType": "Return", + "src": "14297:8:1" + } + }, + { + "assignments": [ + 1001 + ], + "declarations": [ + { + "constant": false, + "id": 1001, + "mutability": "mutable", + "name": "c", + "nodeType": "VariableDeclaration", + "scope": 1017, + "src": "14315:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1000, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14315:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1005, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1004, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1002, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14327:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "*", + "rightExpression": { + "id": 1003, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14331:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14327:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1011, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1007, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14350:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1008, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 987, + "src": "14354:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 1010, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 989, + "src": "14359:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "14350:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "id": 1012, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14362:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + }, + "value": "SafeMath: multiplication overflow" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "id": 1006, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14342:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1013, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14342:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1014, + "nodeType": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "expression": { + "id": 1015, + "name": "c", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1001, + "src": "14415:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 993, + "id": 1016, + "nodeType": "Return", + "src": "14408:8:1" + } + ] + }, + "documentation": { + "id": 985, + "nodeType": "StructuredDocumentation", + "src": "13967:236:1", + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 1018, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mul", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 990, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 987, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14221:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 986, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 989, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14232:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 988, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14232:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14220:22:1" + }, + "returnParameters": { + "id": 993, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 992, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1018, + "src": "14266:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 991, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14266:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14265:9:1" + }, + "scope": 1135, + "src": "14208:215:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1039, + "nodeType": "Block", + "src": "14954:83:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1031, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1029, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "14972:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1030, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14976:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "14972:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206469766973696f6e206279207a65726f", + "id": 1032, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "14979:28:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + }, + "value": "SafeMath: division by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "id": 1028, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "14964:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1033, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "14964:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1034, + "nodeType": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1037, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1035, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1021, + "src": "15025:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1036, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1023, + "src": "15029:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15025:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1027, + "id": 1038, + "nodeType": "Return", + "src": "15018:12:1" + } + ] + }, + "documentation": { + "id": 1019, + "nodeType": "StructuredDocumentation", + "src": "14429:453:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1040, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1024, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1021, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14900:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1020, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14900:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1023, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14911:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1022, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14911:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14899:22:1" + }, + "returnParameters": { + "id": 1027, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1026, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1040, + "src": "14945:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1025, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "14945:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "14944:9:1" + }, + "scope": 1135, + "src": "14887:150:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1061, + "nodeType": "Block", + "src": "15557:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1053, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1051, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15575:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1052, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15579:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "15575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "id": 1054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "15582:26:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + }, + "value": "SafeMath: modulo by zero" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "id": 1050, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "15567:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "15567:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1056, + "nodeType": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1059, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1057, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1043, + "src": "15626:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1058, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1045, + "src": "15630:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "15626:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1049, + "id": 1060, + "nodeType": "Return", + "src": "15619:12:1" + } + ] + }, + "documentation": { + "id": 1041, + "nodeType": "StructuredDocumentation", + "src": "15043:442:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1062, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1046, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1043, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15503:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1042, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1045, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15514:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1044, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15514:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15502:22:1" + }, + "returnParameters": { + "id": 1049, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1048, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1062, + "src": "15548:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1047, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "15548:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "15547:9:1" + }, + "scope": 1135, + "src": "15490:148:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1085, + "nodeType": "Block", + "src": "16197:68:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1077, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1075, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16215:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "<=", + "rightExpression": { + "id": 1076, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16220:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16215:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1078, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1069, + "src": "16223:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1074, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "16207:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1079, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "16207:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1080, + "nodeType": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1083, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1081, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1065, + "src": "16253:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "id": 1082, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1067, + "src": "16257:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "16253:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1073, + "id": 1084, + "nodeType": "Return", + "src": "16246:12:1" + } + ] + }, + "documentation": { + "id": 1063, + "nodeType": "StructuredDocumentation", + "src": "15644:453:1", + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1086, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sub", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1070, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1065, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16115:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1064, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16115:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1067, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16126:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1066, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1069, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16137:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1068, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16137:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16114:50:1" + }, + "returnParameters": { + "id": 1073, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1072, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1086, + "src": "16188:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1071, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16188:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "16187:9:1" + }, + "scope": 1135, + "src": "16102:163:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1109, + "nodeType": "Block", + "src": "17017:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1101, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1099, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17035:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1100, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17039:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17035:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1102, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1093, + "src": "17042:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1098, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17027:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1103, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17027:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1104, + "nodeType": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1105, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1089, + "src": "17072:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "/", + "rightExpression": { + "id": 1106, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1091, + "src": "17076:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17072:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1097, + "id": 1108, + "nodeType": "Return", + "src": "17065:12:1" + } + ] + }, + "documentation": { + "id": 1087, + "nodeType": "StructuredDocumentation", + "src": "16271:646:1", + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "div", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1089, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16935:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1088, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16935:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1091, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16946:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1090, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "16946:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1093, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "16957:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1092, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "16957:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "16934:50:1" + }, + "returnParameters": { + "id": 1097, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1096, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1110, + "src": "17008:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1095, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17008:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17007:9:1" + }, + "scope": 1135, + "src": "16922:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1133, + "nodeType": "Block", + "src": "17825:67:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1123, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17843:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1124, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "17847:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "17843:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1126, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1117, + "src": "17850:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "17835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "17835:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1128, + "nodeType": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1131, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1129, + "name": "a", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1113, + "src": "17880:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "id": 1130, + "name": "b", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1115, + "src": "17884:1:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "17880:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1121, + "id": 1132, + "nodeType": "Return", + "src": "17873:12:1" + } + ] + }, + "documentation": { + "id": 1111, + "nodeType": "StructuredDocumentation", + "src": "17090:635:1", + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1134, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "mod", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1118, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1113, + "mutability": "mutable", + "name": "a", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17743:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1112, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17743:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1115, + "mutability": "mutable", + "name": "b", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17754:9:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17754:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1117, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17765:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1116, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "17765:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "17742:50:1" + }, + "returnParameters": { + "id": 1121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1134, + "src": "17816:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1119, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "17816:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "17815:9:1" + }, + "scope": 1135, + "src": "17730:162:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "11300:6594:1" + }, + { + "id": 1136, + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "17947:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1137, + "nodeType": "StructuredDocumentation", + "src": "17980:67:1", + "text": " @dev Collection of functions related to the address type" + }, + "fullyImplemented": true, + "id": 1430, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 1153, + "nodeType": "Block", + "src": "18706:347:1", + "statements": [ + { + "assignments": [ + 1146 + ], + "declarations": [ + { + "constant": false, + "id": 1146, + "mutability": "mutable", + "name": "size", + "nodeType": "VariableDeclaration", + "scope": 1153, + "src": "18903:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1145, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "18903:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1147, + "nodeType": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "AST": { + "nodeType": "YulBlock", + "src": "18990:32:1", + "statements": [ + { + "nodeType": "YulAssignment", + "src": "18992:28:1", + "value": { + "arguments": [ + { + "name": "account", + "nodeType": "YulIdentifier", + "src": "19012:7:1" + } + ], + "functionName": { + "name": "extcodesize", + "nodeType": "YulIdentifier", + "src": "19000:11:1" + }, + "nodeType": "YulFunctionCall", + "src": "19000:20:1" + }, + "variableNames": [ + { + "name": "size", + "nodeType": "YulIdentifier", + "src": "18992:4:1" + } + ] + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "id": 1148, + "nodeType": "InlineAssembly", + "src": "18981:41:1" + }, + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1151, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1149, + "name": "size", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1146, + "src": "19038:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1150, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "19045:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "19038:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1144, + "id": 1152, + "nodeType": "Return", + "src": "19031:15:1" + } + ] + }, + "documentation": { + "id": 1138, + "nodeType": "StructuredDocumentation", + "src": "18070:565:1", + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1154, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isContract", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1141, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1140, + "mutability": "mutable", + "name": "account", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18660:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1139, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "18660:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "18659:17:1" + }, + "returnParameters": { + "id": 1144, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1143, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1154, + "src": "18700:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1142, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "18700:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "18699:6:1" + }, + "scope": 1430, + "src": "18640:413:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1187, + "nodeType": "Block", + "src": "20041:320:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1169, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1165, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "20067:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1164, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "20059:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1163, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "20059:7:1", + "typeDescriptions": {} + } + }, + "id": 1166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20059:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1167, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "20059:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1168, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20084:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "20059:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "id": 1170, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20092:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + }, + "value": "Address: insufficient balance" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "id": 1162, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1171, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20051:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1172, + "nodeType": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "assignments": [ + 1174, + null + ], + "declarations": [ + { + "constant": false, + "id": 1174, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1187, + "src": "20213:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1173, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "20213:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + null + ], + "id": 1181, + "initialValue": { + "arguments": [ + { + "hexValue": "", + "id": 1179, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20263:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "expression": { + "id": 1175, + "name": "recipient", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1157, + "src": "20231:9:1", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "id": 1176, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "20231:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1178, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1177, + "name": "amount", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1159, + "src": "20254:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "20231:31:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1180, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20231:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1183, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1174, + "src": "20284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "id": 1184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "20293:60:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + }, + "value": "Address: unable to send value, recipient may have reverted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "id": 1182, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "20276:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "20276:78:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1186, + "nodeType": "ExpressionStatement", + "src": "20276:78:1" + } + ] + }, + "documentation": { + "id": 1155, + "nodeType": "StructuredDocumentation", + "src": "19059:906:1", + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1188, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "sendValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1160, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1157, + "mutability": "mutable", + "name": "recipient", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "19989:25:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + "typeName": { + "id": 1156, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "19989:15:1", + "stateMutability": "payable", + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1159, + "mutability": "mutable", + "name": "amount", + "nodeType": "VariableDeclaration", + "scope": 1188, + "src": "20016:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1158, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "20016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "19988:43:1" + }, + "returnParameters": { + "id": 1161, + "nodeType": "ParameterList", + "parameters": [], + "src": "20041:0:1" + }, + "scope": 1430, + "src": "19970:391:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1204, + "nodeType": "Block", + "src": "21191:82:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1199, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1191, + "src": "21219:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1200, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1193, + "src": "21227:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "id": 1201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21233:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + }, + "value": "Address: low-level call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "id": 1198, + "name": "functionCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "src": "21206:12:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1202, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21206:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1197, + "id": 1203, + "nodeType": "Return", + "src": "21199:67:1" + } + ] + }, + "documentation": { + "id": 1189, + "nodeType": "StructuredDocumentation", + "src": "20367:730:1", + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1205, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1194, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1191, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21124:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1190, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21124:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1193, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21140:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1192, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21140:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21123:35:1" + }, + "returnParameters": { + "id": 1197, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1196, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1205, + "src": "21177:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1195, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21177:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21176:14:1" + }, + "scope": 1430, + "src": "21102:171:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1224, + "nodeType": "Block", + "src": "21612:76:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1218, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1208, + "src": "21651:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1219, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1210, + "src": "21659:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "30", + "id": 1220, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "21665:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + { + "id": 1221, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1212, + "src": "21668:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1217, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "21629:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1222, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "21629:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1216, + "id": 1223, + "nodeType": "Return", + "src": "21622:59:1" + } + ] + }, + "documentation": { + "id": 1206, + "nodeType": "StructuredDocumentation", + "src": "21279:211:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1225, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1213, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1208, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21517:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1207, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "21517:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1210, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21533:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1209, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21533:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1212, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21552:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1211, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "21552:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "21516:63:1" + }, + "returnParameters": { + "id": 1216, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1215, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1225, + "src": "21598:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1214, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "21598:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "21597:14:1" + }, + "scope": 1430, + "src": "21495:193:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1244, + "nodeType": "Block", + "src": "22163:111:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1238, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1228, + "src": "22202:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1239, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1230, + "src": "22210:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1240, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1232, + "src": "22216:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "id": 1241, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22223:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + }, + "value": "Address: low-level call with value failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "id": 1237, + "name": "functionCallWithValue", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "src": "22180:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,uint256,string memory) returns (bytes memory)" + } + }, + "id": 1242, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22180:87:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1236, + "id": 1243, + "nodeType": "Return", + "src": "22173:94:1" + } + ] + }, + "documentation": { + "id": 1226, + "nodeType": "StructuredDocumentation", + "src": "21694:351:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1245, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1233, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1228, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22081:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1227, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22081:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1230, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22097:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1229, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22097:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1232, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22116:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1231, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "22080:50:1" + }, + "returnParameters": { + "id": 1236, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1235, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1245, + "src": "22149:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1234, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22149:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22148:14:1" + }, + "scope": 1430, + "src": "22050:224:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1294, + "nodeType": "Block", + "src": "22663:382:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 1262, + "name": "this", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967268, + "src": "22689:4:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "id": 1261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "22681:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22681:7:1", + "typeDescriptions": {} + } + }, + "id": 1263, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22681:13:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1264, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "balance", + "nodeType": "MemberAccess", + "src": "22681:21:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">=", + "rightExpression": { + "id": 1265, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22706:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "22681:30:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "id": 1267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22713:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + }, + "value": "Address: insufficient balance for call" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "id": 1259, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22673:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22673:81:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1269, + "nodeType": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1272, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22783:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1271, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "22772:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1273, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22772:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "22792:31:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + }, + "value": "Address: call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "id": 1270, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "22764:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1275, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22764:60:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1276, + "nodeType": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "assignments": [ + 1278, + 1280 + ], + "declarations": [ + { + "constant": false, + "id": 1278, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22895:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1277, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "22895:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1280, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1294, + "src": "22909:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1279, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22909:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1287, + "initialValue": { + "arguments": [ + { + "id": 1285, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1250, + "src": "22964:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1281, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1248, + "src": "22936:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "call", + "nodeType": "MemberAccess", + "src": "22936:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1284, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "nodeType": "FunctionCallOptions", + "options": [ + { + "id": 1283, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1252, + "src": "22956:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "src": "22936:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$value", + "typeString": "function (bytes memory) payable returns (bool,bytes memory)" + } + }, + "id": 1286, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22936:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1289, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1278, + "src": "23004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1290, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1280, + "src": "23013:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1291, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1254, + "src": "23025:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1288, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "22986:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1292, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "22986:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1258, + "id": 1293, + "nodeType": "Return", + "src": "22979:59:1" + } + ] + }, + "documentation": { + "id": 1246, + "nodeType": "StructuredDocumentation", + "src": "22280:237:1", + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1295, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionCallWithValue", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1255, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1248, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22553:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1247, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "22553:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1250, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22569:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1249, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22569:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1252, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22588:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1251, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "22588:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1254, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22603:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1253, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "22603:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "22552:78:1" + }, + "returnParameters": { + "id": 1258, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1257, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1295, + "src": "22649:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1256, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "22649:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "22648:14:1" + }, + "scope": 1430, + "src": "22522:523:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1311, + "nodeType": "Block", + "src": "23322:97:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1306, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1298, + "src": "23358:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1307, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1300, + "src": "23366:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "id": 1308, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23372:39:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + }, + "value": "Address: low-level static call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "id": 1305, + "name": "functionStaticCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "src": "23339:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) view returns (bytes memory)" + } + }, + "id": 1309, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23339:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1304, + "id": 1310, + "nodeType": "Return", + "src": "23332:80:1" + } + ] + }, + "documentation": { + "id": 1296, + "nodeType": "StructuredDocumentation", + "src": "23051:166:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1312, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1301, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1298, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23250:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1297, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23250:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1300, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23266:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1299, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23266:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23249:35:1" + }, + "returnParameters": { + "id": 1304, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1303, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1312, + "src": "23308:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1302, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23308:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23307:14:1" + }, + "scope": 1430, + "src": "23222:197:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1346, + "nodeType": "Block", + "src": "23731:288:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1326, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1325, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "23749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23749:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1328, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "23769:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + }, + "value": "Address: static call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "id": 1324, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "23741:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1329, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23741:67:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1330, + "nodeType": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "assignments": [ + 1332, + 1334 + ], + "declarations": [ + { + "constant": false, + "id": 1332, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23879:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1331, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "23879:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1334, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1346, + "src": "23893:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1333, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23893:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1339, + "initialValue": { + "arguments": [ + { + "id": 1337, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1317, + "src": "23938:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1335, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1315, + "src": "23920:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1336, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "staticcall", + "nodeType": "MemberAccess", + "src": "23920:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) view returns (bool,bytes memory)" + } + }, + "id": 1338, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23920:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1341, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1332, + "src": "23978:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1342, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1334, + "src": "23987:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1343, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1319, + "src": "23999:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1340, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "23960:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1344, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "23960:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1323, + "id": 1345, + "nodeType": "Return", + "src": "23953:59:1" + } + ] + }, + "documentation": { + "id": 1313, + "nodeType": "StructuredDocumentation", + "src": "23425:173:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1347, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionStaticCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1320, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1315, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23631:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1314, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "23631:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1317, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23647:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1316, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23647:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1319, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23666:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1318, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "23666:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "23630:63:1" + }, + "returnParameters": { + "id": 1323, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1322, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1347, + "src": "23717:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1321, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "23717:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "23716:14:1" + }, + "scope": 1430, + "src": "23603:416:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1363, + "nodeType": "Block", + "src": "24295:101:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1358, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1350, + "src": "24333:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 1359, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1352, + "src": "24341:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "id": 1360, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24347:41:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + }, + "value": "Address: low-level delegate call failed" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "id": 1357, + "name": "functionDelegateCall", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "src": "24312:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 1361, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24312:77:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1356, + "id": 1362, + "nodeType": "Return", + "src": "24305:84:1" + } + ] + }, + "documentation": { + "id": 1348, + "nodeType": "StructuredDocumentation", + "src": "24025:168:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1364, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1353, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1350, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24228:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1352, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24244:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1351, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24227:35:1" + }, + "returnParameters": { + "id": 1356, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1355, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1364, + "src": "24281:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1354, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24281:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24280:14:1" + }, + "scope": 1430, + "src": "24198:198:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1398, + "nodeType": "Block", + "src": "24707:292:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1378, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24736:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1377, + "name": "isContract", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1154, + "src": "24725:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 1379, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24725:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "id": 1380, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "24745:40:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + }, + "value": "Address: delegate call to non-contract" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "id": 1376, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "24717:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1381, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24717:69:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1382, + "nodeType": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "assignments": [ + 1384, + 1386 + ], + "declarations": [ + { + "constant": false, + "id": 1384, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24857:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1383, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "24857:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1386, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1398, + "src": "24871:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1385, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24871:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 1391, + "initialValue": { + "arguments": [ + { + "id": 1389, + "name": "data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1369, + "src": "24918:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 1387, + "name": "target", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1367, + "src": "24898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 1388, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "delegatecall", + "nodeType": "MemberAccess", + "src": "24898:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_baredelegatecall_nonpayable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "function (bytes memory) returns (bool,bytes memory)" + } + }, + "id": 1390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24898:25:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes_memory_ptr_$", + "typeString": "tuple(bool,bytes memory)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "expression": { + "arguments": [ + { + "id": 1393, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1384, + "src": "24958:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 1394, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1386, + "src": "24967:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "id": 1395, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1371, + "src": "24979:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1392, + "name": "_verifyCallResult", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1429, + "src": "24940:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_bool_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bool,bytes memory,string memory) pure returns (bytes memory)" + } + }, + "id": 1396, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "24940:52:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1375, + "id": 1397, + "nodeType": "Return", + "src": "24933:59:1" + } + ] + }, + "documentation": { + "id": 1365, + "nodeType": "StructuredDocumentation", + "src": "24402:175:1", + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1399, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "functionDelegateCall", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1372, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1367, + "mutability": "mutable", + "name": "target", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24612:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "24612:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1369, + "mutability": "mutable", + "name": "data", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24628:17:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1368, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24628:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1371, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24647:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1370, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "24647:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "24611:63:1" + }, + "returnParameters": { + "id": 1375, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1374, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1399, + "src": "24693:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1373, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "24693:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "24692:14:1" + }, + "scope": 1430, + "src": "24582:417:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1428, + "nodeType": "Block", + "src": "25134:596:1", + "statements": [ + { + "condition": { + "id": 1410, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1401, + "src": "25148:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1426, + "nodeType": "Block", + "src": "25205:519:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1417, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "id": 1414, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25289:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 1415, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "25289:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 1416, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "25309:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "25289:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1424, + "nodeType": "Block", + "src": "25661:53:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1421, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1405, + "src": "25686:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 1420, + "name": "revert", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "src": "25679:6:1", + "typeDescriptions": { + "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", + "typeString": "function (string memory) pure" + } + }, + "id": 1422, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "25679:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1423, + "nodeType": "ExpressionStatement", + "src": "25679:20:1" + } + ] + }, + "id": 1425, + "nodeType": "IfStatement", + "src": "25285:429:1", + "trueBody": { + "id": 1419, + "nodeType": "Block", + "src": "25312:343:1", + "statements": [ + { + "AST": { + "nodeType": "YulBlock", + "src": "25496:145:1", + "statements": [ + { + "nodeType": "YulVariableDeclaration", + "src": "25518:40:1", + "value": { + "arguments": [ + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25547:10:1" + } + ], + "functionName": { + "name": "mload", + "nodeType": "YulIdentifier", + "src": "25541:5:1" + }, + "nodeType": "YulFunctionCall", + "src": "25541:17:1" + }, + "variables": [ + { + "name": "returndata_size", + "nodeType": "YulTypedName", + "src": "25522:15:1", + "type": "" + } + ] + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "kind": "number", + "nodeType": "YulLiteral", + "src": "25590:2:1", + "type": "", + "value": "32" + }, + { + "name": "returndata", + "nodeType": "YulIdentifier", + "src": "25594:10:1" + } + ], + "functionName": { + "name": "add", + "nodeType": "YulIdentifier", + "src": "25586:3:1" + }, + "nodeType": "YulFunctionCall", + "src": "25586:19:1" + }, + { + "name": "returndata_size", + "nodeType": "YulIdentifier", + "src": "25607:15:1" + } + ], + "functionName": { + "name": "revert", + "nodeType": "YulIdentifier", + "src": "25579:6:1" + }, + "nodeType": "YulFunctionCall", + "src": "25579:44:1" + }, + "nodeType": "YulExpressionStatement", + "src": "25579:44:1" + } + ] + }, + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "id": 1418, + "nodeType": "InlineAssembly", + "src": "25487:154:1" + } + ] + } + } + ] + }, + "id": 1427, + "nodeType": "IfStatement", + "src": "25144:580:1", + "trueBody": { + "id": 1413, + "nodeType": "Block", + "src": "25157:42:1", + "statements": [ + { + "expression": { + "id": 1411, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1403, + "src": "25178:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "functionReturnParameters": 1409, + "id": 1412, + "nodeType": "Return", + "src": "25171:17:1" + } + ] + } + } + ] + }, + "id": 1429, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_verifyCallResult", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1406, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1401, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25032:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1400, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "25032:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1403, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25046:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1402, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25046:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1405, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25071:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 1404, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "25071:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "25031:67:1" + }, + "returnParameters": { + "id": 1409, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1408, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1429, + "src": "25120:12:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 1407, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "25120:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "25119:14:1" + }, + "scope": 1430, + "src": "25005:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + } + ], + "scope": 3499, + "src": "18048:7684:1" + }, + { + "id": 1431, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "25791:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1432, + "nodeType": "StructuredDocumentation", + "src": "25824:686:1", + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "fullyImplemented": true, + "id": 1921, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableSet.Set", + "id": 1440, + "members": [ + { + "constant": false, + "id": 1435, + "mutability": "mutable", + "name": "_values", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27033:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + }, + "typeName": { + "baseType": { + "id": 1433, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27033:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1434, + "nodeType": "ArrayTypeName", + "src": "27033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr", + "typeString": "bytes32[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1439, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1440, + "src": "27184:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1438, + "keyType": { + "id": 1436, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27193:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "27184:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1437, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "27204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "26979:249:1", + "visibility": "public" + }, + { + "body": { + "id": 1480, + "nodeType": "Block", + "src": "27467:335:1", + "statements": [ + { + "condition": { + "id": 1454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "27481:22:1", + "subExpression": { + "arguments": [ + { + "id": 1451, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27492:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + { + "id": 1452, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27497:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1450, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "27482:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1453, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27482:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1478, + "nodeType": "Block", + "src": "27759:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1476, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27780:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1449, + "id": 1477, + "nodeType": "Return", + "src": "27773:12:1" + } + ] + }, + "id": 1479, + "nodeType": "IfStatement", + "src": "27477:319:1", + "trueBody": { + "id": 1475, + "nodeType": "Block", + "src": "27505:248:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 1460, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27536:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "expression": { + "expression": { + "id": 1455, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1458, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27519:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1459, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "27519:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_bytes32_$returns$__$", + "typeString": "function (bytes32)" + } + }, + "id": 1461, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "27519:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1462, + "nodeType": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "expression": { + "id": 1471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1463, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27677:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1466, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "27677:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1467, + "indexExpression": { + "id": 1465, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1445, + "src": "27690:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "27677:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1468, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1443, + "src": "27699:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1469, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "27699:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1470, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "27699:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "27677:40:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1472, + "nodeType": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1473, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "27738:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1449, + "id": 1474, + "nodeType": "Return", + "src": "27731:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1441, + "nodeType": "StructuredDocumentation", + "src": "27234:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1481, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1446, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1443, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27412:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1442, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27412:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1445, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27429:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1444, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "27429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27411:32:1" + }, + "returnParameters": { + "id": 1449, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1448, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1481, + "src": "27461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1447, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "27461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "27460:6:1" + }, + "scope": 1921, + "src": "27398:404:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1560, + "nodeType": "Block", + "src": "28042:1440:1", + "statements": [ + { + "assignments": [ + 1492 + ], + "declarations": [ + { + "constant": false, + "id": 1492, + "mutability": "mutable", + "name": "valueIndex", + "nodeType": "VariableDeclaration", + "scope": 1560, + "src": "28152:18:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1491, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28152:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1497, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1493, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28173:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1494, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "28173:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1496, + "indexExpression": { + "id": 1495, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "28186:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28173:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1500, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1498, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28207:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1499, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28221:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "28207:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1558, + "nodeType": "Block", + "src": "29439:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 1556, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29460:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1490, + "id": 1557, + "nodeType": "Return", + "src": "29453:12:1" + } + ] + }, + "id": 1559, + "nodeType": "IfStatement", + "src": "28203:1273:1", + "trueBody": { + "id": 1555, + "nodeType": "Block", + "src": "28224:1209:1", + "statements": [ + { + "assignments": [ + 1502 + ], + "declarations": [ + { + "constant": false, + "id": 1502, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28564:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28564:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1506, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1505, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1503, + "name": "valueIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1492, + "src": "28588:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1504, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28601:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28588:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "assignments": [ + 1508 + ], + "declarations": [ + { + "constant": false, + "id": 1508, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28616:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1507, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "28616:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1514, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1513, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1509, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28636:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1510, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28636:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1511, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "28636:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1512, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "28657:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "28636:22:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "assignments": [ + 1516 + ], + "declarations": [ + { + "constant": false, + "id": 1516, + "mutability": "mutable", + "name": "lastvalue", + "nodeType": "VariableDeclaration", + "scope": 1555, + "src": "28898:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1515, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28898:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 1521, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1517, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "28918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1518, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "28918:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1520, + "indexExpression": { + "id": 1519, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1508, + "src": "28930:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "28918:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "expression": { + "id": 1528, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1522, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29032:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1525, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29032:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1526, + "indexExpression": { + "id": 1524, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29044:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29032:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1527, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29061:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "29032:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1529, + "nodeType": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "expression": { + "id": 1538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1530, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29136:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1533, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29136:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1534, + "indexExpression": { + "id": 1532, + "name": "lastvalue", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1516, + "src": "29149:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29136:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1537, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1535, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1502, + "src": "29162:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 1536, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29178:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "29162:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "29136:43:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1539, + "nodeType": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 1540, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1543, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29285:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1544, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "29285:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 1545, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "29285:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1546, + "nodeType": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "expression": { + "id": 1551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "29370:26:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 1547, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1484, + "src": "29377:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1548, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29377:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1550, + "indexExpression": { + "id": 1549, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1486, + "src": "29390:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "29377:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1552, + "nodeType": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1553, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29418:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1490, + "id": 1554, + "nodeType": "Return", + "src": "29411:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1482, + "nodeType": "StructuredDocumentation", + "src": "27808:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1561, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1487, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1484, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "27987:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1483, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "27987:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1486, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28004:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1485, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "28004:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "27986:32:1" + }, + "returnParameters": { + "id": 1490, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1489, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1561, + "src": "28036:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1488, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "28036:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "28035:6:1" + }, + "scope": 1921, + "src": "27970:1512:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1578, + "nodeType": "Block", + "src": "29642:48:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1576, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 1571, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1564, + "src": "29659:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1572, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1439, + "src": "29659:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1574, + "indexExpression": { + "id": 1573, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1566, + "src": "29672:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "29659:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 1575, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "29682:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "29659:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1570, + "id": 1577, + "nodeType": "Return", + "src": "29652:31:1" + } + ] + }, + "documentation": { + "id": 1562, + "nodeType": "StructuredDocumentation", + "src": "29488:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1579, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1567, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1564, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29582:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1563, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29582:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1566, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29599:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1565, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "29599:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "29581:32:1" + }, + "returnParameters": { + "id": 1570, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1569, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1579, + "src": "29636:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1568, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "29636:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "29635:6:1" + }, + "scope": 1921, + "src": "29563:127:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1591, + "nodeType": "Block", + "src": "29836:42:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 1587, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1582, + "src": "29853:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1588, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "29853:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1589, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "29853:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1586, + "id": 1590, + "nodeType": "Return", + "src": "29846:25:1" + } + ] + }, + "documentation": { + "id": 1580, + "nodeType": "StructuredDocumentation", + "src": "29696:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1592, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1583, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1582, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29788:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1581, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "29788:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "src": "29787:17:1" + }, + "returnParameters": { + "id": 1586, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1585, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1592, + "src": "29827:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1584, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "29827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "29826:9:1" + }, + "scope": 1921, + "src": "29771:107:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 1616, + "nodeType": "Block", + "src": "30286:125:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1607, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 1603, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30304:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1604, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30304:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1605, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "30304:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 1606, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30325:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "30304:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "id": 1608, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "30332:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + }, + "value": "EnumerableSet: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "id": 1602, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "30296:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 1609, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30296:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1610, + "nodeType": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 1611, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1595, + "src": "30386:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + } + }, + "id": 1612, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_values", + "nodeType": "MemberAccess", + "referencedDeclaration": 1435, + "src": "30386:11:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_bytes32_$dyn_storage", + "typeString": "bytes32[] storage ref" + } + }, + "id": 1614, + "indexExpression": { + "id": 1613, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1597, + "src": "30398:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "30386:18:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1601, + "id": 1615, + "nodeType": "Return", + "src": "30379:25:1" + } + ] + }, + "documentation": { + "id": 1593, + "nodeType": "StructuredDocumentation", + "src": "29883:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1617, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1598, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1595, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30223:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1594, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30223:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1597, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30240:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1596, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "30240:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "30222:32:1" + }, + "returnParameters": { + "id": 1601, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1600, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1617, + "src": "30277:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1599, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30276:9:1" + }, + "scope": 1921, + "src": "30210:201:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableSet.Bytes32Set", + "id": 1620, + "members": [ + { + "constant": false, + "id": 1619, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1620, + "src": "30464:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1618, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "30464:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "Bytes32Set", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "30436:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1636, + "nodeType": "Block", + "src": "30727:47:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1631, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1623, + "src": "30749:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1632, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "30749:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1633, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1625, + "src": "30761:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1630, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "30744:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1634, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "30744:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1629, + "id": 1635, + "nodeType": "Return", + "src": "30737:30:1" + } + ] + }, + "documentation": { + "id": 1621, + "nodeType": "StructuredDocumentation", + "src": "30487:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1637, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1626, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1623, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30664:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1622, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30664:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1625, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30688:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1624, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30688:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30663:39:1" + }, + "returnParameters": { + "id": 1629, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1628, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1637, + "src": "30721:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1627, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "30721:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "30720:6:1" + }, + "scope": 1921, + "src": "30651:123:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1653, + "nodeType": "Block", + "src": "31021:50:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1648, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1640, + "src": "31046:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1649, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31046:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1650, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1642, + "src": "31058:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1647, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "31038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1651, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31038:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1646, + "id": 1652, + "nodeType": "Return", + "src": "31031:33:1" + } + ] + }, + "documentation": { + "id": 1638, + "nodeType": "StructuredDocumentation", + "src": "30780:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1654, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1643, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1640, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30958:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1639, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "30958:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1642, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "30982:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1641, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "30982:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "30957:39:1" + }, + "returnParameters": { + "id": 1646, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1645, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1654, + "src": "31015:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1644, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31015:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31014:6:1" + }, + "scope": 1921, + "src": "30942:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1670, + "nodeType": "Block", + "src": "31238:52:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1665, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1657, + "src": "31265:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1666, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31265:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1667, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1659, + "src": "31277:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1664, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "31255:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1668, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31255:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1663, + "id": 1669, + "nodeType": "Return", + "src": "31248:35:1" + } + ] + }, + "documentation": { + "id": 1655, + "nodeType": "StructuredDocumentation", + "src": "31077:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1671, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1660, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1657, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31170:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1656, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31170:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1659, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31194:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1658, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31194:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31169:39:1" + }, + "returnParameters": { + "id": 1663, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1662, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1671, + "src": "31232:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1661, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "31232:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "31231:6:1" + }, + "scope": 1921, + "src": "31152:138:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1684, + "nodeType": "Block", + "src": "31443:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1680, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1674, + "src": "31468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1681, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31468:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1679, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "31460:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1682, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31460:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1678, + "id": 1683, + "nodeType": "Return", + "src": "31453:26:1" + } + ] + }, + "documentation": { + "id": 1672, + "nodeType": "StructuredDocumentation", + "src": "31296:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1685, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1675, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1674, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31387:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1673, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31387:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + } + ], + "src": "31386:24:1" + }, + "returnParameters": { + "id": 1678, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1677, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1685, + "src": "31434:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1676, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31434:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31433:9:1" + }, + "scope": 1921, + "src": "31371:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1701, + "nodeType": "Block", + "src": "31901:46:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1696, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1688, + "src": "31922:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set storage pointer" + } + }, + "id": 1697, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1619, + "src": "31922:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1698, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1690, + "src": "31934:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1695, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "31918:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "31918:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 1694, + "id": 1700, + "nodeType": "Return", + "src": "31911:29:1" + } + ] + }, + "documentation": { + "id": 1686, + "nodeType": "StructuredDocumentation", + "src": "31491:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1691, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1688, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31830:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + }, + "typeName": { + "id": 1687, + "name": "Bytes32Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1620, + "src": "31830:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Bytes32Set_$1620_storage_ptr", + "typeString": "struct EnumerableSet.Bytes32Set" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1690, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31854:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1689, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "31854:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "31829:39:1" + }, + "returnParameters": { + "id": 1694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1702, + "src": "31892:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1692, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "31892:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "31891:9:1" + }, + "scope": 1921, + "src": "31818:129:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.AddressSet", + "id": 1705, + "members": [ + { + "constant": false, + "id": 1704, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1705, + "src": "32000:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1703, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "32000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "AddressSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "31972:45:1", + "visibility": "public" + }, + { + "body": { + "id": 1730, + "nodeType": "Block", + "src": "32263:74:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1716, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1708, + "src": "32285:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1717, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32285:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1724, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1710, + "src": "32321:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1723, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32313:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1722, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32313:7:1", + "typeDescriptions": {} + } + }, + "id": 1725, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32313:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1721, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32305:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1720, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32305:7:1", + "typeDescriptions": {} + } + }, + "id": 1726, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32305:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1719, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1718, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32297:7:1", + "typeDescriptions": {} + } + }, + "id": 1727, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32297:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1715, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "32280:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1728, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32280:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1714, + "id": 1729, + "nodeType": "Return", + "src": "32273:57:1" + } + ] + }, + "documentation": { + "id": 1706, + "nodeType": "StructuredDocumentation", + "src": "32023:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1731, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1711, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1708, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32200:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1707, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32200:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1710, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32224:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1709, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32224:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32199:39:1" + }, + "returnParameters": { + "id": 1714, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1713, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1731, + "src": "32257:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1712, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32257:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32256:6:1" + }, + "scope": 1921, + "src": "32187:150:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1756, + "nodeType": "Block", + "src": "32584:77:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1742, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1734, + "src": "32609:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1743, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32609:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1750, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1736, + "src": "32645:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1749, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32637:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1748, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32637:7:1", + "typeDescriptions": {} + } + }, + "id": 1751, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32637:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1747, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32629:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1746, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32629:7:1", + "typeDescriptions": {} + } + }, + "id": 1752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32629:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1745, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32621:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1744, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32621:7:1", + "typeDescriptions": {} + } + }, + "id": 1753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32621:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1741, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "32601:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1754, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32601:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1740, + "id": 1755, + "nodeType": "Return", + "src": "32594:60:1" + } + ] + }, + "documentation": { + "id": 1732, + "nodeType": "StructuredDocumentation", + "src": "32343:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1757, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1737, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1734, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32521:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1733, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32521:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1736, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32545:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1735, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32545:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32520:39:1" + }, + "returnParameters": { + "id": 1740, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1739, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1757, + "src": "32578:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1738, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32578:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32577:6:1" + }, + "scope": 1921, + "src": "32505:156:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1782, + "nodeType": "Block", + "src": "32828:79:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1768, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1760, + "src": "32855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1769, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "32855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 1776, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1762, + "src": "32891:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 1775, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1774, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "32883:7:1", + "typeDescriptions": {} + } + }, + "id": 1777, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32883:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1773, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32875:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1772, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "32875:7:1", + "typeDescriptions": {} + } + }, + "id": 1778, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32875:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1771, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "32867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1770, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "32867:7:1", + "typeDescriptions": {} + } + }, + "id": 1779, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32867:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1767, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "32845:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1780, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "32845:55:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1766, + "id": 1781, + "nodeType": "Return", + "src": "32838:62:1" + } + ] + }, + "documentation": { + "id": 1758, + "nodeType": "StructuredDocumentation", + "src": "32667:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1783, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1763, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1760, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32760:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1759, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "32760:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1762, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32784:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1761, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "32784:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "32759:39:1" + }, + "returnParameters": { + "id": 1766, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1765, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1783, + "src": "32822:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1764, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "32822:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "32821:6:1" + }, + "scope": 1921, + "src": "32742:165:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1796, + "nodeType": "Block", + "src": "33060:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1792, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1786, + "src": "33085:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1793, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33085:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1791, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "33077:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1794, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33077:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1790, + "id": 1795, + "nodeType": "Return", + "src": "33070:26:1" + } + ] + }, + "documentation": { + "id": 1784, + "nodeType": "StructuredDocumentation", + "src": "32913:70:1", + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1797, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1787, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1786, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33004:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1785, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33004:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + } + ], + "src": "33003:24:1" + }, + "returnParameters": { + "id": 1790, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1789, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1797, + "src": "33051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1788, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33050:9:1" + }, + "scope": 1921, + "src": "32988:115:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1822, + "nodeType": "Block", + "src": "33518:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1814, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1800, + "src": "33563:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet storage pointer" + } + }, + "id": 1815, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1704, + "src": "33563:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1816, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1802, + "src": "33575:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1813, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "33559:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1817, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33559:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1812, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33551:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1811, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33551:7:1", + "typeDescriptions": {} + } + }, + "id": 1818, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33551:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1810, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33543:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 1809, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "33543:7:1", + "typeDescriptions": {} + } + }, + "id": 1819, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33543:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 1808, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33535:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 1807, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33535:7:1", + "typeDescriptions": {} + } + }, + "id": 1820, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33535:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 1806, + "id": 1821, + "nodeType": "Return", + "src": "33528:56:1" + } + ] + }, + "documentation": { + "id": 1798, + "nodeType": "StructuredDocumentation", + "src": "33108:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1823, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1803, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1800, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33447:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + }, + "typeName": { + "id": 1799, + "name": "AddressSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1705, + "src": "33447:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_AddressSet_$1705_storage_ptr", + "typeString": "struct EnumerableSet.AddressSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1802, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33471:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1801, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33471:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33446:39:1" + }, + "returnParameters": { + "id": 1806, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1805, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1823, + "src": "33509:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 1804, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "33509:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "33508:9:1" + }, + "scope": 1921, + "src": "33435:156:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "canonicalName": "EnumerableSet.UintSet", + "id": 1826, + "members": [ + { + "constant": false, + "id": 1825, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 1826, + "src": "33639:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + }, + "typeName": { + "id": 1824, + "name": "Set", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1440, + "src": "33639:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set" + } + }, + "visibility": "internal" + } + ], + "name": "UintSet", + "nodeType": "StructDefinition", + "scope": 1921, + "src": "33614:42:1", + "visibility": "public" + }, + { + "body": { + "id": 1845, + "nodeType": "Block", + "src": "33899:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1837, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1829, + "src": "33921:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1838, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "33921:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1841, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1831, + "src": "33941:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1840, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "33933:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1839, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "33933:7:1", + "typeDescriptions": {} + } + }, + "id": 1842, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33933:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1836, + "name": "_add", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1481, + "src": "33916:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1843, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "33916:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1835, + "id": 1844, + "nodeType": "Return", + "src": "33909:39:1" + } + ] + }, + "documentation": { + "id": 1827, + "nodeType": "StructuredDocumentation", + "src": "33662:159:1", + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1846, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "add", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1832, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1829, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33839:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1828, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "33839:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1831, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33860:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1830, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "33860:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "33838:36:1" + }, + "returnParameters": { + "id": 1835, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1834, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1846, + "src": "33893:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1833, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "33893:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "33892:6:1" + }, + "scope": 1921, + "src": "33826:129:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1865, + "nodeType": "Block", + "src": "34199:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1857, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1849, + "src": "34224:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1858, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34224:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1861, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1851, + "src": "34244:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1860, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34236:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1859, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34236:7:1", + "typeDescriptions": {} + } + }, + "id": 1862, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34236:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1856, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1561, + "src": "34216:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)" + } + }, + "id": 1863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34216:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1855, + "id": 1864, + "nodeType": "Return", + "src": "34209:42:1" + } + ] + }, + "documentation": { + "id": 1847, + "nodeType": "StructuredDocumentation", + "src": "33961:157:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1866, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1852, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1849, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34139:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1848, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34139:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1851, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34160:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1850, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34160:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34138:36:1" + }, + "returnParameters": { + "id": 1855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1854, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1866, + "src": "34193:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1853, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34193:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34192:6:1" + }, + "scope": 1921, + "src": "34123:135:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1885, + "nodeType": "Block", + "src": "34422:61:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1877, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1869, + "src": "34449:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1878, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34449:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "arguments": [ + { + "id": 1881, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1871, + "src": "34469:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1880, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "34461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 1879, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "34461:7:1", + "typeDescriptions": {} + } + }, + "id": 1882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34461:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1876, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1579, + "src": "34439:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)" + } + }, + "id": 1883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34439:37:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 1875, + "id": 1884, + "nodeType": "Return", + "src": "34432:44:1" + } + ] + }, + "documentation": { + "id": 1867, + "nodeType": "StructuredDocumentation", + "src": "34264:70:1", + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1886, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1872, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1869, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34357:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1868, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1871, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34378:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1870, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34378:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34356:36:1" + }, + "returnParameters": { + "id": 1875, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1874, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1886, + "src": "34416:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1873, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "34416:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "34415:6:1" + }, + "scope": 1921, + "src": "34339:144:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1899, + "nodeType": "Block", + "src": "34633:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 1895, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1889, + "src": "34658:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1896, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "34658:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "id": 1894, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1592, + "src": "34650:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)" + } + }, + "id": 1897, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "34650:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1893, + "id": 1898, + "nodeType": "Return", + "src": "34643:26:1" + } + ] + }, + "documentation": { + "id": 1887, + "nodeType": "StructuredDocumentation", + "src": "34489:70:1", + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1900, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1890, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1889, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34580:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1888, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "34580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + } + ], + "src": "34579:21:1" + }, + "returnParameters": { + "id": 1893, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1892, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1900, + "src": "34624:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1891, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "34624:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "34623:9:1" + }, + "scope": 1921, + "src": "34564:112:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 1919, + "nodeType": "Block", + "src": "35088:55:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 1913, + "name": "set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1903, + "src": "35117:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet storage pointer" + } + }, + "id": 1914, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 1825, + "src": "35117:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + }, + { + "id": 1915, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1905, + "src": "35129:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 1912, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1617, + "src": "35113:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Set_$1440_storage_ptr_$_t_uint256_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)" + } + }, + "id": 1916, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35113:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1911, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "35105:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 1910, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35105:7:1", + "typeDescriptions": {} + } + }, + "id": 1917, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "35105:31:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 1909, + "id": 1918, + "nodeType": "Return", + "src": "35098:38:1" + } + ] + }, + "documentation": { + "id": 1901, + "nodeType": "StructuredDocumentation", + "src": "34681:322:1", + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1920, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1906, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1903, + "mutability": "mutable", + "name": "set", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35020:19:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + }, + "typeName": { + "id": 1902, + "name": "UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "35020:7:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1905, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35041:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1904, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35041:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35019:36:1" + }, + "returnParameters": { + "id": 1909, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1908, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1920, + "src": "35079:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1907, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "35079:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "35078:9:1" + }, + "scope": 1921, + "src": "35008:135:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "26511:8634:1" + }, + { + "id": 1922, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "35204:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 1923, + "nodeType": "StructuredDocumentation", + "src": "35237:705:1", + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "fullyImplemented": true, + "id": 2480, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "nodeType": "ContractDefinition", + "nodes": [ + { + "canonicalName": "EnumerableMap.MapEntry", + "id": 1928, + "members": [ + { + "constant": false, + "id": 1925, + "mutability": "mutable", + "name": "_key", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36455:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1924, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1927, + "mutability": "mutable", + "name": "_value", + "nodeType": "VariableDeclaration", + "scope": 1928, + "src": "36477:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1926, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36477:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "name": "MapEntry", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36429:69:1", + "visibility": "public" + }, + { + "canonicalName": "EnumerableMap.Map", + "id": 1936, + "members": [ + { + "constant": false, + "id": 1931, + "mutability": "mutable", + "name": "_entries", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36567:19:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + }, + "typeName": { + "baseType": { + "id": 1929, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "36567:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "id": 1930, + "nodeType": "ArrayTypeName", + "src": "36567:10:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry[]" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1935, + "mutability": "mutable", + "name": "_indexes", + "nodeType": "VariableDeclaration", + "scope": 1936, + "src": "36736:37:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "typeName": { + "id": 1934, + "keyType": { + "id": 1932, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "36745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Mapping", + "src": "36736:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + }, + "valueType": { + "id": 1933, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "36756:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + "visibility": "internal" + } + ], + "name": "Map", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "36504:276:1", + "visibility": "public" + }, + { + "body": { + "id": 1997, + "nodeType": "Block", + "src": "37089:596:1", + "statements": [ + { + "assignments": [ + 1949 + ], + "declarations": [ + { + "constant": false, + "id": 1949, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 1997, + "src": "37197:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 1948, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "37197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 1954, + "initialValue": { + "baseExpression": { + "expression": { + "id": 1950, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1951, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1953, + "indexExpression": { + "id": 1952, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37229:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37216:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1957, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1955, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37248:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 1956, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37260:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "37248:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 1995, + "nodeType": "Block", + "src": "37587:92:1", + "statements": [ + { + "expression": { + "id": 1991, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "expression": { + "baseExpression": { + "expression": { + "id": 1982, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37601:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1987, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37601:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1988, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 1986, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 1984, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1949, + "src": "37614:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 1985, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37625:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "37614:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "37601:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 1989, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "37601:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 1990, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37637:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "src": "37601:41:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "id": 1992, + "nodeType": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "expression": { + "hexValue": "66616c7365", + "id": 1993, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37663:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 1947, + "id": 1994, + "nodeType": "Return", + "src": "37656:12:1" + } + ] + }, + "id": 1996, + "nodeType": "IfStatement", + "src": "37244:435:1", + "trueBody": { + "id": 1981, + "nodeType": "Block", + "src": "37263:318:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 1964, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37349:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 1965, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1943, + "src": "37362:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 1963, + "name": "MapEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1928, + "src": "37332:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_struct$_MapEntry_$1928_storage_ptr_$", + "typeString": "type(struct EnumerableMap.MapEntry storage pointer)" + } + }, + "id": 1966, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "structConstructorCall", + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "nodeType": "FunctionCall", + "src": "37332:38:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "expression": { + "expression": { + "id": 1958, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37314:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1961, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37314:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1962, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "push", + "nodeType": "MemberAccess", + "src": "37314:17:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypush_nonpayable$_t_struct$_MapEntry_$1928_storage_$returns$__$", + "typeString": "function (struct EnumerableMap.MapEntry storage ref)" + } + }, + "id": 1967, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "37314:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 1968, + "nodeType": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "expression": { + "id": 1977, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 1969, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37506:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1972, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "37506:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 1973, + "indexExpression": { + "id": 1971, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1941, + "src": "37519:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "37506:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "expression": { + "expression": { + "id": 1974, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1939, + "src": "37526:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 1975, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "37526:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 1976, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "37526:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "37506:39:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 1978, + "nodeType": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 1979, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "37566:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 1947, + "id": 1980, + "nodeType": "Return", + "src": "37559:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1937, + "nodeType": "StructuredDocumentation", + "src": "36786:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1998, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 1944, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1939, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37021:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 1938, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37021:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1941, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37038:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1940, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37038:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 1943, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37051:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 1942, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37020:45:1" + }, + "returnParameters": { + "id": 1947, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 1946, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 1998, + "src": "37083:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 1945, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37083:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37082:6:1" + }, + "scope": 2480, + "src": "37007:678:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2078, + "nodeType": "Block", + "src": "37923:1447:1", + "statements": [ + { + "assignments": [ + 2009 + ], + "declarations": [ + { + "constant": false, + "id": 2009, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2078, + "src": "38031:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2008, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2014, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2010, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38050:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2011, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "38050:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2013, + "indexExpression": { + "id": 2012, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "38063:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38050:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2017, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2015, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38082:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2016, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38094:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "38082:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "falseBody": { + "id": 2076, + "nodeType": "Block", + "src": "39327:37:1", + "statements": [ + { + "expression": { + "hexValue": "66616c7365", + "id": 2074, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39348:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + "functionReturnParameters": 2007, + "id": 2075, + "nodeType": "Return", + "src": "39341:12:1" + } + ] + }, + "id": 2077, + "nodeType": "IfStatement", + "src": "38078:1286:1", + "trueBody": { + "id": 2073, + "nodeType": "Block", + "src": "38097:1224:1", + "statements": [ + { + "assignments": [ + 2019 + ], + "declarations": [ + { + "constant": false, + "id": 2019, + "mutability": "mutable", + "name": "toDeleteIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38438:21:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38438:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2023, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2022, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2020, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2009, + "src": "38462:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2021, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38473:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38462:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "assignments": [ + 2025 + ], + "declarations": [ + { + "constant": false, + "id": 2025, + "mutability": "mutable", + "name": "lastIndex", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38488:17:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2024, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "38488:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2031, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2026, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38508:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2027, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38508:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "38508:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2029, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "38530:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "38508:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "assignments": [ + 2033 + ], + "declarations": [ + { + "constant": false, + "id": 2033, + "mutability": "mutable", + "name": "lastEntry", + "nodeType": "VariableDeclaration", + "scope": 2073, + "src": "38771:26:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2032, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "38771:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2038, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2034, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38800:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2035, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38800:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2037, + "indexExpression": { + "id": 2036, + "name": "lastIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2025, + "src": "38813:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "38800:23:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "expression": { + "id": 2045, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2039, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "38915:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2042, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "38915:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2043, + "indexExpression": { + "id": 2041, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "38928:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "38915:27:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2044, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "38945:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "src": "38915:39:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2046, + "nodeType": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "expression": { + "id": 2056, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "expression": { + "id": 2047, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2051, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39020:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2052, + "indexExpression": { + "expression": { + "id": 2049, + "name": "lastEntry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2033, + "src": "39033:9:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2050, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "39033:14:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39020:28:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2055, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2053, + "name": "toDeleteIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2019, + "src": "39051:13:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "hexValue": "31", + "id": 2054, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39067:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "39051:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "39020:48:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2057, + "nodeType": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "expression": { + "id": 2058, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39174:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2061, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39174:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2062, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "pop", + "nodeType": "MemberAccess", + "src": "39174:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_arraypop_nonpayable$__$returns$__$", + "typeString": "function ()" + } + }, + "id": 2063, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "39174:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2064, + "nodeType": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "expression": { + "id": 2069, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "39260:24:1", + "subExpression": { + "baseExpression": { + "expression": { + "id": 2065, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2001, + "src": "39267:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2066, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39267:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2068, + "indexExpression": { + "id": 2067, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2003, + "src": "39280:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "39267:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2070, + "nodeType": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "expression": { + "hexValue": "74727565", + "id": 2071, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39306:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 2007, + "id": 2072, + "nodeType": "Return", + "src": "39299:11:1" + } + ] + } + } + ] + }, + "documentation": { + "id": 1999, + "nodeType": "StructuredDocumentation", + "src": "37691:157:1", + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2079, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2004, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2001, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37870:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2000, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "37870:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2003, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37887:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2002, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "37887:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "37869:30:1" + }, + "returnParameters": { + "id": 2007, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2006, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2079, + "src": "37917:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2005, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "37917:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "37916:6:1" + }, + "scope": 2480, + "src": "37853:1517:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2096, + "nodeType": "Block", + "src": "39526:46:1", + "statements": [ + { + "expression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2094, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "baseExpression": { + "expression": { + "id": 2089, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2082, + "src": "39543:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2090, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "39543:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2092, + "indexExpression": { + "id": 2091, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2084, + "src": "39556:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "39543:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2093, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "39564:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "39543:22:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2088, + "id": 2095, + "nodeType": "Return", + "src": "39536:29:1" + } + ] + }, + "documentation": { + "id": 2080, + "nodeType": "StructuredDocumentation", + "src": "39376:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2097, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2085, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2082, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39468:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2081, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39468:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2084, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39485:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2083, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "39485:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "39467:30:1" + }, + "returnParameters": { + "id": 2088, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2087, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2097, + "src": "39520:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2086, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "39520:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "39519:6:1" + }, + "scope": 2480, + "src": "39449:123:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2109, + "nodeType": "Block", + "src": "39727:43:1", + "statements": [ + { + "expression": { + "expression": { + "expression": { + "id": 2105, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2100, + "src": "39744:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2106, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "39744:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "39744:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2104, + "id": 2108, + "nodeType": "Return", + "src": "39737:26:1" + } + ] + }, + "documentation": { + "id": 2098, + "nodeType": "StructuredDocumentation", + "src": "39578:79:1", + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2110, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2101, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2100, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39679:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2099, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "39679:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "src": "39678:17:1" + }, + "returnParameters": { + "id": 2104, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2103, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2110, + "src": "39718:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2102, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "39718:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "39717:9:1" + }, + "scope": 2480, + "src": "39662:108:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2144, + "nodeType": "Block", + "src": "40198:189:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2127, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "expression": { + "id": 2123, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40216:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2124, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40216:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2125, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "40216:19:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "id": 2126, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "40216:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "id": 2128, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40245:36:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + }, + "value": "EnumerableMap: index out of bounds" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "id": 2122, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "40208:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2129, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "40208:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2130, + "nodeType": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "assignments": [ + 2132 + ], + "declarations": [ + { + "constant": false, + "id": 2132, + "mutability": "mutable", + "name": "entry", + "nodeType": "VariableDeclaration", + "scope": 2144, + "src": "40293:22:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + }, + "typeName": { + "id": 2131, + "name": "MapEntry", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1928, + "src": "40293:8:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry" + } + }, + "visibility": "internal" + } + ], + "id": 2137, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2133, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2113, + "src": "40318:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2134, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40318:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2136, + "indexExpression": { + "id": 2135, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2115, + "src": "40331:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40318:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "expression": { + "components": [ + { + "expression": { + "id": 2138, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40355:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2139, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_key", + "nodeType": "MemberAccess", + "referencedDeclaration": 1925, + "src": "40355:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "expression": { + "id": 2140, + "name": "entry", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2132, + "src": "40367:5:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage_ptr", + "typeString": "struct EnumerableMap.MapEntry storage pointer" + } + }, + "id": 2141, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40367:12:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2142, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40354:26:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "functionReturnParameters": 2121, + "id": 2143, + "nodeType": "Return", + "src": "40347:33:1" + } + ] + }, + "documentation": { + "id": 2111, + "nodeType": "StructuredDocumentation", + "src": "39775:333:1", + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2145, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2116, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2113, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40126:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2112, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40126:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2115, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40143:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2114, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40143:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "40125:32:1" + }, + "returnParameters": { + "id": 2121, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2118, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40180:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2117, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40180:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2120, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2145, + "src": "40189:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2119, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40189:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40179:18:1" + }, + "scope": 2480, + "src": "40113:274:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2182, + "nodeType": "Block", + "src": "40613:220:1", + "statements": [ + { + "assignments": [ + 2158 + ], + "declarations": [ + { + "constant": false, + "id": 2158, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2182, + "src": "40623:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2157, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "40623:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2163, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2159, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40642:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2160, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "40642:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2162, + "indexExpression": { + "id": 2161, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2150, + "src": "40655:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40642:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2164, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40673:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2165, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40685:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "40673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2171, + "nodeType": "IfStatement", + "src": "40669:36:1", + "trueBody": { + "expression": { + "components": [ + { + "hexValue": "66616c7365", + "id": 2167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40696:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "false" + }, + { + "hexValue": "30", + "id": 2168, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40703:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "id": 2169, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40695:10:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_rational_0_by_1_$", + "typeString": "tuple(bool,int_const 0)" + } + }, + "functionReturnParameters": 2156, + "id": 2170, + "nodeType": "Return", + "src": "40688:17:1" + } + }, + { + "expression": { + "components": [ + { + "hexValue": "74727565", + "id": 2172, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40759:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + { + "expression": { + "baseExpression": { + "expression": { + "id": 2173, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2148, + "src": "40765:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2174, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "40765:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2178, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2177, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2175, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2158, + "src": "40778:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2176, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "40789:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "40778:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "40765:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2179, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "40765:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "id": 2180, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "40758:41:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "functionReturnParameters": 2156, + "id": 2181, + "nodeType": "Return", + "src": "40751:48:1" + } + ] + }, + "documentation": { + "id": 2146, + "nodeType": "StructuredDocumentation", + "src": "40393:131:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2183, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2151, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2148, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40546:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2147, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40546:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2150, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40563:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2149, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40563:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40545:30:1" + }, + "returnParameters": { + "id": 2156, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2153, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40598:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2152, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "40598:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2155, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2183, + "src": "40604:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2154, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "40604:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40597:15:1" + }, + "scope": 2480, + "src": "40529:304:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2215, + "nodeType": "Block", + "src": "41060:232:1", + "statements": [ + { + "assignments": [ + 2194 + ], + "declarations": [ + { + "constant": false, + "id": 2194, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2215, + "src": "41070:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2193, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41070:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2199, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2195, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41089:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2196, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41089:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2198, + "indexExpression": { + "id": 2197, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2188, + "src": "41102:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41089:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2203, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2201, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41124:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2202, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41136:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41124:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "id": 2204, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41139:32:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + }, + "value": "EnumerableMap: nonexistent key" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "id": 2200, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2205, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41116:56:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2206, + "nodeType": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2207, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2186, + "src": "41225:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2208, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41225:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2212, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2209, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2194, + "src": "41238:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2210, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41249:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41238:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41225:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2213, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41225:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2192, + "id": 2214, + "nodeType": "Return", + "src": "41218:40:1" + } + ] + }, + "documentation": { + "id": 2184, + "nodeType": "StructuredDocumentation", + "src": "40839:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2216, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2189, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2186, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "40999:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2185, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "40999:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2188, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41016:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2187, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41016:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "40998:30:1" + }, + "returnParameters": { + "id": 2192, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2191, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2216, + "src": "41051:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2190, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41051:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41050:9:1" + }, + "scope": 2480, + "src": "40985:307:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 2250, + "nodeType": "Block", + "src": "41677:212:1", + "statements": [ + { + "assignments": [ + 2229 + ], + "declarations": [ + { + "constant": false, + "id": 2229, + "mutability": "mutable", + "name": "keyIndex", + "nodeType": "VariableDeclaration", + "scope": 2250, + "src": "41687:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2228, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "41687:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2234, + "initialValue": { + "baseExpression": { + "expression": { + "id": 2230, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41706:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2231, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_indexes", + "nodeType": "MemberAccess", + "referencedDeclaration": 1935, + "src": "41706:12:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_bytes32_$_t_uint256_$", + "typeString": "mapping(bytes32 => uint256)" + } + }, + "id": 2233, + "indexExpression": { + "id": 2232, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2221, + "src": "41719:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41706:17:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2238, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2236, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41741:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2237, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41753:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "41741:13:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "id": 2239, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2223, + "src": "41756:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2235, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "41733:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2240, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "41733:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2241, + "nodeType": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "expression": { + "expression": { + "baseExpression": { + "expression": { + "id": 2242, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2219, + "src": "41822:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map storage pointer" + } + }, + "id": 2243, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_entries", + "nodeType": "MemberAccess", + "referencedDeclaration": 1931, + "src": "41822:12:1", + "typeDescriptions": { + "typeIdentifier": "t_array$_t_struct$_MapEntry_$1928_storage_$dyn_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref[] storage ref" + } + }, + "id": 2247, + "indexExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2246, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2244, + "name": "keyIndex", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2229, + "src": "41835:8:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2245, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "41846:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "41835:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "41822:26:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_MapEntry_$1928_storage", + "typeString": "struct EnumerableMap.MapEntry storage ref" + } + }, + "id": 2248, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_value", + "nodeType": "MemberAccess", + "referencedDeclaration": 1927, + "src": "41822:33:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "functionReturnParameters": 2227, + "id": 2249, + "nodeType": "Return", + "src": "41815:40:1" + } + ] + }, + "documentation": { + "id": 2217, + "nodeType": "StructuredDocumentation", + "src": "41298:271:1", + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2251, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2224, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2219, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41588:15:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2218, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41588:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2221, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41605:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2220, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41605:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2223, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41618:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2222, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "41618:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "41587:58:1" + }, + "returnParameters": { + "id": 2227, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2226, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2251, + "src": "41668:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2225, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "41668:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "src": "41667:9:1" + }, + "scope": 2480, + "src": "41574:315:1", + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + { + "canonicalName": "EnumerableMap.UintToAddressMap", + "id": 2254, + "members": [ + { + "constant": false, + "id": 2253, + "mutability": "mutable", + "name": "_inner", + "nodeType": "VariableDeclaration", + "scope": 2254, + "src": "41954:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + }, + "typeName": { + "id": 2252, + "name": "Map", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1936, + "src": "41954:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage_ptr", + "typeString": "struct EnumerableMap.Map" + } + }, + "visibility": "internal" + } + ], + "name": "UintToAddressMap", + "nodeType": "StructDefinition", + "scope": 2480, + "src": "41920:51:1", + "visibility": "public" + }, + { + "body": { + "id": 2285, + "nodeType": "Block", + "src": "42293:88:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2267, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2257, + "src": "42315:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2268, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42315:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2271, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2259, + "src": "42335:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2270, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42327:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2269, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42327:7:1", + "typeDescriptions": {} + } + }, + "id": 2272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42327:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2279, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2261, + "src": "42365:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 2278, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2277, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "42357:7:1", + "typeDescriptions": {} + } + }, + "id": 2280, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42357:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2276, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2275, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42349:7:1", + "typeDescriptions": {} + } + }, + "id": 2281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42349:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2274, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42341:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2273, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42341:7:1", + "typeDescriptions": {} + } + }, + "id": 2282, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42341:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2266, + "name": "_set", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 1998, + "src": "42310:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)" + } + }, + "id": 2283, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42310:64:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2265, + "id": 2284, + "nodeType": "Return", + "src": "42303:71:1" + } + ] + }, + "documentation": { + "id": 2255, + "nodeType": "StructuredDocumentation", + "src": "41977:216:1", + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2286, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "set", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2262, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2257, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42211:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2256, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42211:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2259, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42241:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2258, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42241:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2261, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42254:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2260, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "42254:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "42210:58:1" + }, + "returnParameters": { + "id": 2265, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2264, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2286, + "src": "42287:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2263, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42287:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42286:6:1" + }, + "scope": 2480, + "src": "42198:183:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2305, + "nodeType": "Block", + "src": "42623:57:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2297, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2289, + "src": "42648:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2298, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42648:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2301, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2291, + "src": "42668:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2300, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42660:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2299, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42660:7:1", + "typeDescriptions": {} + } + }, + "id": 2302, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42660:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2296, + "name": "_remove", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2079, + "src": "42640:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)" + } + }, + "id": 2303, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42640:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2295, + "id": 2304, + "nodeType": "Return", + "src": "42633:40:1" + } + ] + }, + "documentation": { + "id": 2287, + "nodeType": "StructuredDocumentation", + "src": "42387:148:1", + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2306, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "remove", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2292, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2289, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42556:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2288, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42556:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2291, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42586:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2290, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42586:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42555:43:1" + }, + "returnParameters": { + "id": 2295, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2294, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2306, + "src": "42617:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2293, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42617:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42616:6:1" + }, + "scope": 2480, + "src": "42540:140:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2325, + "nodeType": "Block", + "src": "42849:59:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2317, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2309, + "src": "42876:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2318, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "42876:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2321, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2311, + "src": "42896:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2320, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "42888:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2319, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "42888:7:1", + "typeDescriptions": {} + } + }, + "id": 2322, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42888:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2316, + "name": "_contains", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2097, + "src": "42866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)" + } + }, + "id": 2323, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "42866:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2315, + "id": 2324, + "nodeType": "Return", + "src": "42859:42:1" + } + ] + }, + "documentation": { + "id": 2307, + "nodeType": "StructuredDocumentation", + "src": "42686:68:1", + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2326, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "contains", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2312, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2309, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42777:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2308, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "42777:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2311, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42807:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2310, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "42807:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "42776:43:1" + }, + "returnParameters": { + "id": 2315, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2314, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2326, + "src": "42843:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2313, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "42843:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "42842:6:1" + }, + "scope": 2480, + "src": "42759:149:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2339, + "nodeType": "Block", + "src": "43069:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "expression": { + "id": 2335, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2329, + "src": "43094:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2336, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43094:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "id": 2334, + "name": "_length", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2110, + "src": "43086:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$returns$_t_uint256_$", + "typeString": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)" + } + }, + "id": 2337, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43086:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2333, + "id": 2338, + "nodeType": "Return", + "src": "43079:26:1" + } + ] + }, + "documentation": { + "id": 2327, + "nodeType": "StructuredDocumentation", + "src": "42914:72:1", + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2340, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "length", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2330, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2329, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43007:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2328, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43007:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + } + ], + "src": "43006:30:1" + }, + "returnParameters": { + "id": 2333, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2332, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2340, + "src": "43060:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2331, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43059:9:1" + }, + "scope": 2480, + "src": "42991:121:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2378, + "nodeType": "Block", + "src": "43538:135:1", + "statements": [ + { + "assignments": [ + 2353, + 2355 + ], + "declarations": [ + { + "constant": false, + "id": 2353, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43549:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2352, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43549:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2355, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2378, + "src": "43562:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2354, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43562:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2361, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2357, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2343, + "src": "43583:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2358, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "43583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "id": 2359, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2345, + "src": "43595:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2356, + "name": "_at", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2145, + "src": "43579:3:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_uint256_$returns$_t_bytes32_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)" + } + }, + "id": 2360, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43579:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bytes32_$_t_bytes32_$", + "typeString": "tuple(bytes32,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "expression": { + "components": [ + { + "arguments": [ + { + "id": 2364, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2353, + "src": "43627:3:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2363, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43619:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2362, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43619:7:1", + "typeDescriptions": {} + } + }, + "id": 2365, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43619:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2372, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2355, + "src": "43657:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2371, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43649:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2370, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43649:7:1", + "typeDescriptions": {} + } + }, + "id": 2373, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43649:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2369, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43641:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2368, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "43641:7:1", + "typeDescriptions": {} + } + }, + "id": 2374, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43641:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2367, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "43633:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2366, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43633:7:1", + "typeDescriptions": {} + } + }, + "id": 2375, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43633:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2376, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "43618:48:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_payable_$", + "typeString": "tuple(uint256,address payable)" + } + }, + "functionReturnParameters": 2351, + "id": 2377, + "nodeType": "Return", + "src": "43611:55:1" + } + ] + }, + "documentation": { + "id": 2341, + "nodeType": "StructuredDocumentation", + "src": "43117:318:1", + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2379, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "at", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2346, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2343, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43452:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2342, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43452:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2345, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43482:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2344, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43482:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43451:45:1" + }, + "returnParameters": { + "id": 2351, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2348, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43520:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2347, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43520:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2350, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2379, + "src": "43529:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2349, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43529:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43519:18:1" + }, + "scope": 2480, + "src": "43440:233:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2417, + "nodeType": "Block", + "src": "43950:142:1", + "statements": [ + { + "assignments": [ + 2392, + 2394 + ], + "declarations": [ + { + "constant": false, + "id": 2392, + "mutability": "mutable", + "name": "success", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43961:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2391, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43961:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2394, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2417, + "src": "43975:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + "typeName": { + "id": 2393, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "43975:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + "visibility": "internal" + } + ], + "id": 2403, + "initialValue": { + "arguments": [ + { + "expression": { + "id": 2396, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2382, + "src": "44000:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2397, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44000:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2400, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2384, + "src": "44020:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2399, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44012:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2398, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44012:7:1", + "typeDescriptions": {} + } + }, + "id": 2401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44012:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2395, + "name": "_tryGet", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2183, + "src": "43992:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bool_$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)" + } + }, + "id": 2402, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "43992:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_bytes32_$", + "typeString": "tuple(bool,bytes32)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "expression": { + "components": [ + { + "id": 2404, + "name": "success", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2392, + "src": "44043:7:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "id": 2411, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2394, + "src": "44076:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2410, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44068:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2409, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44068:7:1", + "typeDescriptions": {} + } + }, + "id": 2412, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44068:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2408, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44060:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2407, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44060:7:1", + "typeDescriptions": {} + } + }, + "id": 2413, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44060:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2406, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2405, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44052:7:1", + "typeDescriptions": {} + } + }, + "id": 2414, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44052:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "id": 2415, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "44042:43:1", + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_bool_$_t_address_payable_$", + "typeString": "tuple(bool,address payable)" + } + }, + "functionReturnParameters": 2390, + "id": 2416, + "nodeType": "Return", + "src": "44035:50:1" + } + ] + }, + "documentation": { + "id": 2380, + "nodeType": "StructuredDocumentation", + "src": "43679:169:1", + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2418, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tryGet", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2385, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2382, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43869:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2381, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "43869:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2384, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43899:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2383, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "43899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "43868:43:1" + }, + "returnParameters": { + "id": 2390, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2387, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43935:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2386, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "43935:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2389, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2418, + "src": "43941:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2388, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "43941:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "43934:15:1" + }, + "scope": 2480, + "src": "43853:239:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2446, + "nodeType": "Block", + "src": "44332:81:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2435, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2421, + "src": "44378:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2436, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44378:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2439, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2423, + "src": "44398:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2438, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44390:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2437, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44390:7:1", + "typeDescriptions": {} + } + }, + "id": 2440, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44390:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2434, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "src": "44373:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)" + } + }, + "id": 2441, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44373:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2433, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44365:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2432, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44365:7:1", + "typeDescriptions": {} + } + }, + "id": 2442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44365:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44357:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2430, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44357:7:1", + "typeDescriptions": {} + } + }, + "id": 2443, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44357:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2429, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2428, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44349:7:1", + "typeDescriptions": {} + } + }, + "id": 2444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44349:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2427, + "id": 2445, + "nodeType": "Return", + "src": "44342:64:1" + } + ] + }, + "documentation": { + "id": 2419, + "nodeType": "StructuredDocumentation", + "src": "44098:141:1", + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2447, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2424, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2421, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44257:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2420, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44257:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2423, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44287:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2422, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44287:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "44256:43:1" + }, + "returnParameters": { + "id": 2427, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2426, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2447, + "src": "44323:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2425, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44323:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44322:9:1" + }, + "scope": 2480, + "src": "44244:169:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + { + "body": { + "id": 2478, + "nodeType": "Block", + "src": "44809:95:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "expression": { + "id": 2466, + "name": "map", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2450, + "src": "44855:3:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap storage pointer" + } + }, + "id": 2467, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "_inner", + "nodeType": "MemberAccess", + "referencedDeclaration": 2253, + "src": "44855:10:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + }, + { + "arguments": [ + { + "id": 2470, + "name": "key", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2452, + "src": "44875:3:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2469, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44867:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes32_$", + "typeString": "type(bytes32)" + }, + "typeName": { + "id": 2468, + "name": "bytes32", + "nodeType": "ElementaryTypeName", + "src": "44867:7:1", + "typeDescriptions": {} + } + }, + "id": 2471, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44867:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + }, + { + "id": 2472, + "name": "errorMessage", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2454, + "src": "44881:12:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2465, + "name": "_get", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "src": "44850:4:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_Map_$1936_storage_ptr_$_t_bytes32_$_t_string_memory_ptr_$returns$_t_bytes32_$", + "typeString": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)" + } + }, + "id": 2473, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44850:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "id": 2464, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44842:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint256_$", + "typeString": "type(uint256)" + }, + "typeName": { + "id": 2463, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44842:7:1", + "typeDescriptions": {} + } + }, + "id": 2474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44842:53:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2462, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44834:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint160_$", + "typeString": "type(uint160)" + }, + "typeName": { + "id": 2461, + "name": "uint160", + "nodeType": "ElementaryTypeName", + "src": "44834:7:1", + "typeDescriptions": {} + } + }, + "id": 2475, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44834:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "id": 2460, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "44826:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2459, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44826:7:1", + "typeDescriptions": {} + } + }, + "id": 2476, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "44826:71:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "functionReturnParameters": 2458, + "id": 2477, + "nodeType": "Return", + "src": "44819:78:1" + } + ] + }, + "documentation": { + "id": 2448, + "nodeType": "StructuredDocumentation", + "src": "44419:269:1", + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2479, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "get", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2455, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2450, + "mutability": "mutable", + "name": "map", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44706:28:1", + "stateVariable": false, + "storageLocation": "storage", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2449, + "name": "UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "44706:16:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2452, + "mutability": "mutable", + "name": "key", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44736:11:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2451, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "44736:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2454, + "mutability": "mutable", + "name": "errorMessage", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44749:26:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2453, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "44749:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "44705:71:1" + }, + "returnParameters": { + "id": 2458, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2457, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2479, + "src": "44800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2456, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "44800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "44799:9:1" + }, + "scope": 2480, + "src": "44693:211:1", + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "35943:8963:1" + }, + { + "id": 2481, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "44959:31:1" + }, + { + "abstract": false, + "baseContracts": [], + "contractDependencies": [], + "contractKind": "library", + "documentation": { + "id": 2482, + "nodeType": "StructuredDocumentation", + "src": "44992:34:1", + "text": " @dev String operations." + }, + "fullyImplemented": true, + "id": 2566, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "nodeType": "ContractDefinition", + "nodes": [ + { + "body": { + "id": 2564, + "nodeType": "Block", + "src": "45207:654:1", + "statements": [ + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2492, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2490, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45409:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2491, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45418:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45409:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2496, + "nodeType": "IfStatement", + "src": "45405:51:1", + "trueBody": { + "id": 2495, + "nodeType": "Block", + "src": "45421:35:1", + "statements": [ + { + "expression": { + "hexValue": "30", + "id": 2493, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45442:3:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_044852b2a670ade5407e78fb2863c51de9fcb96542a07186fe3aeda6bb8a116d", + "typeString": "literal_string \"0\"" + }, + "value": "0" + }, + "functionReturnParameters": 2489, + "id": 2494, + "nodeType": "Return", + "src": "45435:10:1" + } + ] + } + }, + { + "assignments": [ + 2498 + ], + "declarations": [ + { + "constant": false, + "id": 2498, + "mutability": "mutable", + "name": "temp", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45465:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2497, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2500, + "initialValue": { + "id": 2499, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45480:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "assignments": [ + 2502 + ], + "declarations": [ + { + "constant": false, + "id": 2502, + "mutability": "mutable", + "name": "digits", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45495:14:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2501, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45495:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2503, + "nodeType": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "body": { + "id": 2514, + "nodeType": "Block", + "src": "45537:57:1", + "statements": [ + { + "expression": { + "id": 2508, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "++", + "prefix": false, + "src": "45551:8:1", + "subExpression": { + "id": 2507, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45551:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2509, + "nodeType": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "expression": { + "id": 2512, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2510, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45573:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2511, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45581:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45573:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2513, + "nodeType": "ExpressionStatement", + "src": "45573:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2506, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2504, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45526:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2505, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45534:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45526:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2515, + "nodeType": "WhileStatement", + "src": "45519:75:1" + }, + { + "assignments": [ + 2517 + ], + "declarations": [ + { + "constant": false, + "id": 2517, + "mutability": "mutable", + "name": "buffer", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45603:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 2516, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45603:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 2522, + "initialValue": { + "arguments": [ + { + "id": 2520, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45635:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2519, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "NewExpression", + "src": "45625:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (uint256) pure returns (bytes memory)" + }, + "typeName": { + "id": 2518, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "45629:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + } + }, + "id": 2521, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45625:17:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "assignments": [ + 2524 + ], + "declarations": [ + { + "constant": false, + "id": 2524, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2564, + "src": "45652:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2523, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45652:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "id": 2528, + "initialValue": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2527, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2525, + "name": "digits", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2502, + "src": "45668:6:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "-", + "rightExpression": { + "hexValue": "31", + "id": 2526, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45677:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1_by_1", + "typeString": "int_const 1" + }, + "value": "1" + }, + "src": "45668:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "expression": { + "id": 2531, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2529, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45688:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2530, + "name": "value", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2485, + "src": "45695:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45688:12:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2532, + "nodeType": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "body": { + "id": 2557, + "nodeType": "Block", + "src": "45728:96:1", + "statements": [ + { + "expression": { + "id": 2551, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 2536, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45742:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2539, + "indexExpression": { + "id": 2538, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "--", + "prefix": false, + "src": "45749:7:1", + "subExpression": { + "id": 2537, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2524, + "src": "45749:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "45742:15:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "arguments": [ + { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2548, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "hexValue": "3438", + "id": 2544, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45773:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_48_by_1", + "typeString": "int_const 48" + }, + "value": "48" + }, + "nodeType": "BinaryOperation", + "operator": "+", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2547, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2545, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45778:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "%", + "rightExpression": { + "hexValue": "3130", + "id": 2546, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45785:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45778:9:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "src": "45773:14:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2543, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45767:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_uint8_$", + "typeString": "type(uint8)" + }, + "typeName": { + "id": 2542, + "name": "uint8", + "nodeType": "ElementaryTypeName", + "src": "45767:5:1", + "typeDescriptions": {} + } + }, + "id": 2549, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45767:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "id": 2541, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45760:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes1_$", + "typeString": "type(bytes1)" + }, + "typeName": { + "id": 2540, + "name": "bytes1", + "nodeType": "ElementaryTypeName", + "src": "45760:6:1", + "typeDescriptions": {} + } + }, + "id": 2550, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45760:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "src": "45742:47:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes1", + "typeString": "bytes1" + } + }, + "id": 2552, + "nodeType": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "expression": { + "id": 2555, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2553, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45803:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Assignment", + "operator": "/=", + "rightHandSide": { + "hexValue": "3130", + "id": 2554, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45811:2:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_10_by_1", + "typeString": "int_const 10" + }, + "value": "10" + }, + "src": "45803:10:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2556, + "nodeType": "ExpressionStatement", + "src": "45803:10:1" + } + ] + }, + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2535, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2533, + "name": "temp", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2498, + "src": "45717:4:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 2534, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "45725:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "45717:9:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2558, + "nodeType": "WhileStatement", + "src": "45710:114:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2561, + "name": "buffer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2517, + "src": "45847:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2560, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "45840:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2559, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45840:6:1", + "typeDescriptions": {} + } + }, + "id": 2562, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "45840:14:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2489, + "id": 2563, + "nodeType": "Return", + "src": "45833:21:1" + } + ] + }, + "documentation": { + "id": 2483, + "nodeType": "StructuredDocumentation", + "src": "45049:82:1", + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2565, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "toString", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2486, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2485, + "mutability": "mutable", + "name": "value", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45154:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2484, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "45154:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "45153:15:1" + }, + "returnParameters": { + "id": 2489, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2488, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2565, + "src": "45192:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2487, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "45192:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "45191:15:1" + }, + "scope": 2566, + "src": "45136:725:1", + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "45027:836:1" + }, + { + "id": 2567, + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ], + "nodeType": "PragmaDirective", + "src": "45922:31:1" + }, + { + "abstract": false, + "baseContracts": [ + { + "baseName": { + "id": 2569, + "name": "Context", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 530, + "src": "46099:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Context_$530", + "typeString": "contract Context" + } + }, + "id": 2570, + "nodeType": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "baseName": { + "id": 2571, + "name": "ERC165", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 781, + "src": "46108:6:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_ERC165_$781", + "typeString": "contract ERC165" + } + }, + "id": 2572, + "nodeType": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "baseName": { + "id": 2573, + "name": "IERC721", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 655, + "src": "46116:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721_$655", + "typeString": "contract IERC721" + } + }, + "id": 2574, + "nodeType": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "baseName": { + "id": 2575, + "name": "IERC721Metadata", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 680, + "src": "46125:15:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Metadata_$680", + "typeString": "contract IERC721Metadata" + } + }, + "id": 2576, + "nodeType": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "baseName": { + "id": 2577, + "name": "IERC721Enumerable", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 709, + "src": "46142:17:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Enumerable_$709", + "typeString": "contract IERC721Enumerable" + } + }, + "id": 2578, + "nodeType": "InheritanceSpecifier", + "src": "46142:17:1" + } + ], + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "documentation": { + "id": 2568, + "nodeType": "StructuredDocumentation", + "src": "45955:124:1", + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "fullyImplemented": true, + "id": 3498, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "nodeType": "ContractDefinition", + "nodes": [ + { + "id": 2581, + "libraryName": { + "id": 2579, + "name": "SafeMath", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1135, + "src": "46172:8:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_SafeMath_$1135", + "typeString": "library SafeMath" + } + }, + "nodeType": "UsingForDirective", + "src": "46166:27:1", + "typeName": { + "id": 2580, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46185:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "id": 2584, + "libraryName": { + "id": 2582, + "name": "Address", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1430, + "src": "46204:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + }, + "nodeType": "UsingForDirective", + "src": "46198:26:1", + "typeName": { + "id": 2583, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46216:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + { + "id": 2587, + "libraryName": { + "id": 2585, + "name": "EnumerableSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1921, + "src": "46235:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableSet_$1921", + "typeString": "library EnumerableSet" + } + }, + "nodeType": "UsingForDirective", + "src": "46229:46:1", + "typeName": { + "id": 2586, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46253:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + { + "id": 2590, + "libraryName": { + "id": 2588, + "name": "EnumerableMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2480, + "src": "46286:13:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_EnumerableMap_$2480", + "typeString": "library EnumerableMap" + } + }, + "nodeType": "UsingForDirective", + "src": "46280:55:1", + "typeName": { + "id": 2589, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46304:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + } + }, + { + "id": 2593, + "libraryName": { + "id": 2591, + "name": "Strings", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2566, + "src": "46346:7:1", + "typeDescriptions": { + "typeIdentifier": "t_contract$_Strings_$2566", + "typeString": "library Strings" + } + }, + "nodeType": "UsingForDirective", + "src": "46340:26:1", + "typeName": { + "id": 2592, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46358:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + }, + { + "constant": true, + "id": 2596, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46544:53:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2594, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "46544:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783135306237613032", + "id": 2595, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "46587:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_353073666_by_1", + "typeString": "int_const 353073666" + }, + "value": "0x150b7a02" + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2600, + "mutability": "mutable", + "name": "_holderTokens", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46681:64:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "typeName": { + "id": 2599, + "keyType": { + "id": 2597, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46690:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "46681:42:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet)" + }, + "valueType": { + "id": 2598, + "name": "EnumerableSet.UintSet", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 1826, + "src": "46701:21:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage_ptr", + "typeString": "struct EnumerableSet.UintSet" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2602, + "mutability": "mutable", + "name": "_tokenOwners", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46809:51:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap" + }, + "typeName": { + "id": 2601, + "name": "EnumerableMap.UintToAddressMap", + "nodeType": "UserDefinedTypeName", + "referencedDeclaration": 2254, + "src": "46809:30:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage_ptr", + "typeString": "struct EnumerableMap.UintToAddressMap" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2606, + "mutability": "mutable", + "name": "_tokenApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "46916:52:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "typeName": { + "id": 2605, + "keyType": { + "id": 2603, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "46925:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "46916:28:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + }, + "valueType": { + "id": 2604, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "46936:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2612, + "mutability": "mutable", + "name": "_operatorApprovals", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47023:73:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "typeName": { + "id": 2611, + "keyType": { + "id": 2607, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47032:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47023:46:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + }, + "valueType": { + "id": 2610, + "keyType": { + "id": 2608, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "47052:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Mapping", + "src": "47043:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + }, + "valueType": { + "id": 2609, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "47063:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2614, + "mutability": "mutable", + "name": "_name", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47121:20:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2613, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47121:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2616, + "mutability": "mutable", + "name": "_symbol", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47168:22:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2615, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47168:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2620, + "mutability": "mutable", + "name": "_tokenURIs", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47236:46:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "typeName": { + "id": 2619, + "keyType": { + "id": 2617, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "47245:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "Mapping", + "src": "47236:27:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string)" + }, + "valueType": { + "id": 2618, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47256:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + } + }, + "visibility": "private" + }, + { + "constant": false, + "id": 2622, + "mutability": "mutable", + "name": "_baseURI", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "47305:23:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string" + }, + "typeName": { + "id": 2621, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "47305:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2625, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48204:57:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2623, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48204:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783830616335386364", + "id": 2624, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48251:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2158778573_by_1", + "typeString": "int_const 2158778573" + }, + "value": "0x80ac58cd" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2628, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48527:66:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2626, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48527:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783562356531333966", + "id": 2627, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48583:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_1532892063_by_1", + "typeString": "int_const 1532892063" + }, + "value": "0x5b5e139f" + }, + "visibility": "private" + }, + { + "constant": true, + "id": 2631, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "VariableDeclaration", + "scope": 3498, + "src": "48898:68:1", + "stateVariable": true, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 2629, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "48898:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "value": { + "hexValue": "30783738306539643633", + "id": 2630, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "48956:10:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_2014223715_by_1", + "typeString": "int_const 2014223715" + }, + "value": "0x780e9d63" + }, + "visibility": "private" + }, + { + "body": { + "id": 2659, + "nodeType": "Block", + "src": "49143:305:1", + "statements": [ + { + "expression": { + "id": 2641, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2639, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "49153:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2640, + "name": "name_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2634, + "src": "49161:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49153:13:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2642, + "nodeType": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "expression": { + "id": 2645, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 2643, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "49176:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2644, + "name": "symbol_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2636, + "src": "49186:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "49176:17:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 2646, + "nodeType": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2648, + "name": "_INTERFACE_ID_ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2625, + "src": "49300:20:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2647, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49281:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2649, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49281:40:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2650, + "nodeType": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2652, + "name": "_INTERFACE_ID_ERC721_METADATA", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2628, + "src": "49350:29:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2651, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49331:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2653, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49331:49:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2654, + "nodeType": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2656, + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2631, + "src": "49409:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "id": 2655, + "name": "_registerInterface", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 780, + "src": "49390:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", + "typeString": "function (bytes4)" + } + }, + "id": 2657, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49390:51:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2658, + "nodeType": "ExpressionStatement", + "src": "49390:51:1" + } + ] + }, + "documentation": { + "id": 2632, + "nodeType": "StructuredDocumentation", + "src": "48973:108:1", + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2660, + "implemented": true, + "kind": "constructor", + "modifiers": [], + "name": "", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2637, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2634, + "mutability": "mutable", + "name": "name_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49099:19:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2633, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49099:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2636, + "mutability": "mutable", + "name": "symbol_", + "nodeType": "VariableDeclaration", + "scope": 2660, + "src": "49120:21:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2635, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "49120:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "49098:44:1" + }, + "returnParameters": { + "id": 2638, + "nodeType": "ParameterList", + "parameters": [], + "src": "49143:0:1" + }, + "scope": 3498, + "src": "49086:362:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + { + "baseFunctions": [ + 580 + ], + "body": { + "id": 2685, + "nodeType": "Block", + "src": "49588:137:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2675, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2670, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49606:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 2673, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49623:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 2672, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "49615:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 2671, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49615:7:1", + "typeDescriptions": {} + } + }, + "id": 2674, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49615:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "49606:19:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "id": 2676, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49627:44:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + }, + "value": "ERC721: balance query for the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "id": 2669, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "49598:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2677, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49598:74:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2678, + "nodeType": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "baseExpression": { + "id": 2679, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "49689:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2681, + "indexExpression": { + "id": 2680, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2663, + "src": "49703:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "49689:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2682, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 1900, + "src": "49689:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + } + }, + "id": 2683, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49689:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2668, + "id": 2684, + "nodeType": "Return", + "src": "49682:36:1" + } + ] + }, + "documentation": { + "id": 2661, + "nodeType": "StructuredDocumentation", + "src": "49454:48:1", + "text": " @dev See {IERC721-balanceOf}." + }, + "functionSelector": "70a08231", + "id": 2686, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "balanceOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2665, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49561:8:1" + }, + "parameters": { + "id": 2664, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2663, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49526:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2662, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49526:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49525:15:1" + }, + "returnParameters": { + "id": 2668, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2667, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2686, + "src": "49579:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2666, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49579:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49578:9:1" + }, + "scope": 3498, + "src": "49507:218:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 588 + ], + "body": { + "id": 2701, + "nodeType": "Block", + "src": "49863:94:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2697, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2689, + "src": "49897:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2698, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "49906:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + }, + "value": "ERC721: owner query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "expression": { + "id": 2695, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "49880:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2696, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "get", + "nodeType": "MemberAccess", + "referencedDeclaration": 2479, + "src": "49880:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_string_memory_ptr_$returns$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + } + }, + "id": 2699, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "49880:70:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2694, + "id": 2700, + "nodeType": "Return", + "src": "49873:77:1" + } + ] + }, + "documentation": { + "id": 2687, + "nodeType": "StructuredDocumentation", + "src": "49731:46:1", + "text": " @dev See {IERC721-ownerOf}." + }, + "functionSelector": "6352211e", + "id": 2702, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "ownerOf", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2691, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "49836:8:1" + }, + "parameters": { + "id": 2690, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2689, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49799:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2688, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "49799:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "49798:17:1" + }, + "returnParameters": { + "id": 2694, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2693, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2702, + "src": "49854:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2692, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "49854:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "49853:9:1" + }, + "scope": 3498, + "src": "49782:175:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 665 + ], + "body": { + "id": 2711, + "nodeType": "Block", + "src": "50088:29:1", + "statements": [ + { + "expression": { + "id": 2709, + "name": "_name", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2614, + "src": "50105:5:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2708, + "id": 2710, + "nodeType": "Return", + "src": "50098:12:1" + } + ] + }, + "documentation": { + "id": 2703, + "nodeType": "StructuredDocumentation", + "src": "49963:51:1", + "text": " @dev See {IERC721Metadata-name}." + }, + "functionSelector": "06fdde03", + "id": 2712, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "name", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2705, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50055:8:1" + }, + "parameters": { + "id": 2704, + "nodeType": "ParameterList", + "parameters": [], + "src": "50032:2:1" + }, + "returnParameters": { + "id": 2708, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2707, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2712, + "src": "50073:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2706, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50073:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50072:15:1" + }, + "scope": 3498, + "src": "50019:98:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 671 + ], + "body": { + "id": 2721, + "nodeType": "Block", + "src": "50252:31:1", + "statements": [ + { + "expression": { + "id": 2719, + "name": "_symbol", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2616, + "src": "50269:7:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2718, + "id": 2720, + "nodeType": "Return", + "src": "50262:14:1" + } + ] + }, + "documentation": { + "id": 2713, + "nodeType": "StructuredDocumentation", + "src": "50123:53:1", + "text": " @dev See {IERC721Metadata-symbol}." + }, + "functionSelector": "95d89b41", + "id": 2722, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "symbol", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2715, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50219:8:1" + }, + "parameters": { + "id": 2714, + "nodeType": "ParameterList", + "parameters": [], + "src": "50196:2:1" + }, + "returnParameters": { + "id": 2718, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2717, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2722, + "src": "50237:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2716, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50237:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50236:15:1" + }, + "scope": 3498, + "src": "50181:102:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 679 + ], + "body": { + "id": 2789, + "nodeType": "Block", + "src": "50437:688:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2733, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50463:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2732, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "50455:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2734, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50455:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2735, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50473:49:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + }, + "value": "ERC721Metadata: URI query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "id": 2731, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "50447:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2736, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50447:76:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2737, + "nodeType": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "assignments": [ + 2739 + ], + "declarations": [ + { + "constant": false, + "id": 2739, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50534:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2738, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50534:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2743, + "initialValue": { + "baseExpression": { + "id": 2740, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "50560:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 2742, + "indexExpression": { + "id": 2741, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "50571:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "50560:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "assignments": [ + 2745 + ], + "declarations": [ + { + "constant": false, + "id": 2745, + "mutability": "mutable", + "name": "base", + "nodeType": "VariableDeclaration", + "scope": 2789, + "src": "50589:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2744, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50589:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "id": 2748, + "initialValue": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2746, + "name": "baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2799, + "src": "50610:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", + "typeString": "function () view returns (string memory)" + } + }, + "id": 2747, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50610:9:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2755, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2751, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50698:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2750, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50692:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2749, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50692:5:1", + "typeDescriptions": {} + } + }, + "id": 2752, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50692:11:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2753, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50692:18:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "hexValue": "30", + "id": 2754, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50714:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50692:23:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2759, + "nodeType": "IfStatement", + "src": "50688:70:1", + "trueBody": { + "id": 2758, + "nodeType": "Block", + "src": "50717:41:1", + "statements": [ + { + "expression": { + "id": 2756, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50738:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2757, + "nodeType": "Return", + "src": "50731:16:1" + } + ] + } + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 2766, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "id": 2762, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50866:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "id": 2761, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50860:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 2760, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "50860:5:1", + "typeDescriptions": {} + } + }, + "id": 2763, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50860:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "id": 2764, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "50860:23:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": ">", + "rightExpression": { + "hexValue": "30", + "id": 2765, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "50886:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "50860:27:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2777, + "nodeType": "IfStatement", + "src": "50856:106:1", + "trueBody": { + "id": 2776, + "nodeType": "Block", + "src": "50889:73:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2771, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "50934:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "id": 2772, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2739, + "src": "50940:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2769, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "50917:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2770, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "50917:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2773, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50917:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2768, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "50910:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2767, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50910:6:1", + "typeDescriptions": {} + } + }, + "id": 2774, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "50910:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2775, + "nodeType": "Return", + "src": "50903:48:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2782, + "name": "base", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2745, + "src": "51092:4:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2783, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2725, + "src": "51098:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "id": 2784, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "toString", + "nodeType": "MemberAccess", + "referencedDeclaration": 2565, + "src": "51098:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", + "typeString": "function (uint256) pure returns (string memory)" + } + }, + "id": 2785, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51098:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "expression": { + "id": 2780, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "51075:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 2781, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodePacked", + "nodeType": "MemberAccess", + "src": "51075:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", + "typeString": "function () pure returns (bytes memory)" + } + }, + "id": 2786, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51075:42:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 2779, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "51068:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_string_storage_ptr_$", + "typeString": "type(string storage pointer)" + }, + "typeName": { + "id": 2778, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51068:6:1", + "typeDescriptions": {} + } + }, + "id": 2787, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51068:50:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "functionReturnParameters": 2730, + "id": 2788, + "nodeType": "Return", + "src": "51061:57:1" + } + ] + }, + "documentation": { + "id": 2723, + "nodeType": "StructuredDocumentation", + "src": "50289:55:1", + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "functionSelector": "c87b56dd", + "id": 2790, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenURI", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2727, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "50404:8:1" + }, + "parameters": { + "id": 2726, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2725, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50367:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2724, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "50367:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "50366:17:1" + }, + "returnParameters": { + "id": 2730, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2729, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2790, + "src": "50422:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2728, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "50422:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "50421:15:1" + }, + "scope": 3498, + "src": "50349:776:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 2798, + "nodeType": "Block", + "src": "51420:32:1", + "statements": [ + { + "expression": { + "id": 2796, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "51437:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "functionReturnParameters": 2795, + "id": 2797, + "nodeType": "Return", + "src": "51430:15:1" + } + ] + }, + "documentation": { + "id": 2791, + "nodeType": "StructuredDocumentation", + "src": "51131:221:1", + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "functionSelector": "6c0360eb", + "id": 2799, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "baseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 2792, + "nodeType": "ParameterList", + "parameters": [], + "src": "51373:2:1" + }, + "returnParameters": { + "id": 2795, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2794, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2799, + "src": "51405:13:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 2793, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "51405:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "51404:15:1" + }, + "scope": 3498, + "src": "51357:95:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 700 + ], + "body": { + "id": 2817, + "nodeType": "Block", + "src": "51637:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 2814, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2804, + "src": "51678:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 2810, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "51654:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 2812, + "indexExpression": { + "id": 2811, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2802, + "src": "51668:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "51654:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 2813, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 1920, + "src": "51654:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_uint256_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + } + }, + "id": 2815, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51654:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2809, + "id": 2816, + "nodeType": "Return", + "src": "51647:37:1" + } + ] + }, + "documentation": { + "id": 2800, + "nodeType": "StructuredDocumentation", + "src": "51458:68:1", + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "functionSelector": "2f745c59", + "id": 2818, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenOfOwnerByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2806, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51610:8:1" + }, + "parameters": { + "id": 2805, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2802, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51560:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2801, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "51560:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2804, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51575:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2803, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51575:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51559:30:1" + }, + "returnParameters": { + "id": 2809, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2808, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2818, + "src": "51628:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2807, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51628:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51627:9:1" + }, + "scope": 3498, + "src": "51531:160:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 690 + ], + "body": { + "id": 2829, + "nodeType": "Block", + "src": "51832:138:1", + "statements": [ + { + "expression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 2825, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "51942:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2826, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "referencedDeclaration": 2340, + "src": "51942:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + } + }, + "id": 2827, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "51942:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2824, + "id": 2828, + "nodeType": "Return", + "src": "51935:28:1" + } + ] + }, + "documentation": { + "id": 2819, + "nodeType": "StructuredDocumentation", + "src": "51697:60:1", + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "functionSelector": "18160ddd", + "id": 2830, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "totalSupply", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2821, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "51805:8:1" + }, + "parameters": { + "id": 2820, + "nodeType": "ParameterList", + "parameters": [], + "src": "51782:2:1" + }, + "returnParameters": { + "id": 2824, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2823, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2830, + "src": "51823:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2822, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "51823:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "51822:9:1" + }, + "scope": 3498, + "src": "51762:208:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 708 + ], + "body": { + "id": 2848, + "nodeType": "Block", + "src": "52126:85:1", + "statements": [ + { + "assignments": [ + 2840, + null + ], + "declarations": [ + { + "constant": false, + "id": 2840, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2848, + "src": "52137:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2839, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52137:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + null + ], + "id": 2845, + "initialValue": { + "arguments": [ + { + "id": 2843, + "name": "index", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2833, + "src": "52174:5:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2841, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "52158:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 2842, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "at", + "nodeType": "MemberAccess", + "referencedDeclaration": 2379, + "src": "52158:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_address_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + } + }, + "id": 2844, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52158:22:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$_t_uint256_$_t_address_$", + "typeString": "tuple(uint256,address)" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "expression": { + "id": 2846, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2840, + "src": "52197:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "functionReturnParameters": 2838, + "id": 2847, + "nodeType": "Return", + "src": "52190:14:1" + } + ] + }, + "documentation": { + "id": 2831, + "nodeType": "StructuredDocumentation", + "src": "51976:61:1", + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "functionSelector": "4f6ccce7", + "id": 2849, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "tokenByIndex", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2835, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52099:8:1" + }, + "parameters": { + "id": 2834, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2833, + "mutability": "mutable", + "name": "index", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52064:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2832, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52064:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52063:15:1" + }, + "returnParameters": { + "id": 2838, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2837, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2849, + "src": "52117:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2836, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52117:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52116:9:1" + }, + "scope": 3498, + "src": "52042:169:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 616 + ], + "body": { + "id": 2892, + "nodeType": "Block", + "src": "52338:325:1", + "statements": [ + { + "assignments": [ + 2859 + ], + "declarations": [ + { + "constant": false, + "id": 2859, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2892, + "src": "52348:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2858, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52348:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 2864, + "initialValue": { + "arguments": [ + { + "id": 2862, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52379:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 2860, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52364:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2861, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "52364:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 2863, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52364:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2868, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2866, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52405:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "id": 2867, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52411:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52405:11:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "id": 2869, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52418:35:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + }, + "value": "ERC721: approval to current owner" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "id": 2865, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52397:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2870, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52397:57:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2871, + "nodeType": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 2883, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2876, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2873, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52473:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2874, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52473:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 2875, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52489:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "52473:21:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 2879, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2859, + "src": "52522:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2880, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "52529:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2881, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52529:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "expression": { + "id": 2877, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "52498:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 2878, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "52498:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 2882, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52498:44:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "52473:69:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "id": 2884, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52556:58:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + }, + "value": "ERC721: approve caller is not owner nor approved for all" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "id": 2872, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52465:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2885, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52465:159:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2886, + "nodeType": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2888, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2852, + "src": "52644:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2889, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2854, + "src": "52648:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2887, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "52635:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 2890, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52635:21:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2891, + "nodeType": "ExpressionStatement", + "src": "52635:21:1" + } + ] + }, + "documentation": { + "id": 2850, + "nodeType": "StructuredDocumentation", + "src": "52217:46:1", + "text": " @dev See {IERC721-approve}." + }, + "functionSelector": "095ea7b3", + "id": 2893, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "approve", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2856, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52329:8:1" + }, + "parameters": { + "id": 2855, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2852, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52285:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2851, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52285:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2854, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2893, + "src": "52297:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2853, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52297:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52284:29:1" + }, + "returnParameters": { + "id": 2857, + "nodeType": "ParameterList", + "parameters": [], + "src": "52338:0:1" + }, + "scope": 3498, + "src": "52268:395:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 624 + ], + "body": { + "id": 2913, + "nodeType": "Block", + "src": "52809:132:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 2904, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52835:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2903, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "52827:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 2905, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52827:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 2906, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "52845:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + }, + "value": "ERC721: approved query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "id": 2902, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "52819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2907, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "52819:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2908, + "nodeType": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "expression": { + "baseExpression": { + "id": 2909, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "52910:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 2911, + "indexExpression": { + "id": 2910, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2896, + "src": "52926:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "52910:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "functionReturnParameters": 2901, + "id": 2912, + "nodeType": "Return", + "src": "52903:31:1" + } + ] + }, + "documentation": { + "id": 2894, + "nodeType": "StructuredDocumentation", + "src": "52669:50:1", + "text": " @dev See {IERC721-getApproved}." + }, + "functionSelector": "081812fc", + "id": 2914, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "getApproved", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2898, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "52782:8:1" + }, + "parameters": { + "id": 2897, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2896, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52745:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2895, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "52745:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "52744:17:1" + }, + "returnParameters": { + "id": 2901, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2900, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2914, + "src": "52800:7:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2899, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "52800:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "52799:9:1" + }, + "scope": 3498, + "src": "52724:217:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 632 + ], + "body": { + "id": 2947, + "nodeType": "Block", + "src": "53092:206:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 2927, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 2924, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53110:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2925, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53122:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2926, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53122:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "53110:24:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", + "id": 2928, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53136:27:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + }, + "value": "ERC721: approve to caller" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "id": 2923, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53102:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2929, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53102:62:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2930, + "nodeType": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "expression": { + "id": 2938, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "baseExpression": { + "id": 2931, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53175:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2935, + "indexExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2932, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53194:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2933, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53194:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53175:32:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2936, + "indexExpression": { + "id": 2934, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53208:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "53175:42:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 2937, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53220:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "53175:53:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 2939, + "nodeType": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2941, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53258:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2942, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53258:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2943, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2917, + "src": "53272:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2944, + "name": "approved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2919, + "src": "53282:8:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "id": 2940, + "name": "ApprovalForAll", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 572, + "src": "53243:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", + "typeString": "function (address,address,bool)" + } + }, + "id": 2945, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53243:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2946, + "nodeType": "EmitStatement", + "src": "53238:53:1" + } + ] + }, + "documentation": { + "id": 2915, + "nodeType": "StructuredDocumentation", + "src": "52947:56:1", + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "functionSelector": "a22cb465", + "id": 2948, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "setApprovalForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2921, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53083:8:1" + }, + "parameters": { + "id": 2920, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2917, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53035:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2916, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53035:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2919, + "mutability": "mutable", + "name": "approved", + "nodeType": "VariableDeclaration", + "scope": 2948, + "src": "53053:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2918, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53053:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53034:33:1" + }, + "returnParameters": { + "id": 2922, + "nodeType": "ParameterList", + "parameters": [], + "src": "53092:0:1" + }, + "scope": 3498, + "src": "53008:290:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 642 + ], + "body": { + "id": 2965, + "nodeType": "Block", + "src": "53467:59:1", + "statements": [ + { + "expression": { + "baseExpression": { + "baseExpression": { + "id": 2959, + "name": "_operatorApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2612, + "src": "53484:18:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", + "typeString": "mapping(address => mapping(address => bool))" + } + }, + "id": 2961, + "indexExpression": { + "id": 2960, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2951, + "src": "53503:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:25:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", + "typeString": "mapping(address => bool)" + } + }, + "id": 2963, + "indexExpression": { + "id": 2962, + "name": "operator", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2953, + "src": "53510:8:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "53484:35:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 2958, + "id": 2964, + "nodeType": "Return", + "src": "53477:42:1" + } + ] + }, + "documentation": { + "id": 2949, + "nodeType": "StructuredDocumentation", + "src": "53304:55:1", + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "functionSelector": "e985e9c5", + "id": 2966, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "isApprovedForAll", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2955, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53443:8:1" + }, + "parameters": { + "id": 2954, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2951, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53390:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2950, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53390:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2953, + "mutability": "mutable", + "name": "operator", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53405:16:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2952, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53405:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "src": "53389:33:1" + }, + "returnParameters": { + "id": 2958, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2957, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 2966, + "src": "53461:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 2956, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "53461:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "53460:6:1" + }, + "scope": 3498, + "src": "53364:162:1", + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 608 + ], + "body": { + "id": 2992, + "nodeType": "Block", + "src": "53677:211:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 2979, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "53766:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 2980, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53766:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 2981, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53780:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2978, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "53747:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 2982, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53747:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 2983, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "53790:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 2977, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "53739:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 2984, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53739:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2985, + "nodeType": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 2987, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2969, + "src": "53863:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2988, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2971, + "src": "53869:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 2989, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2973, + "src": "53873:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 2986, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "53853:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 2990, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "53853:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 2991, + "nodeType": "ExpressionStatement", + "src": "53853:28:1" + } + ] + }, + "documentation": { + "id": 2967, + "nodeType": "StructuredDocumentation", + "src": "53532:51:1", + "text": " @dev See {IERC721-transferFrom}." + }, + "functionSelector": "23b872dd", + "id": 2993, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "transferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 2975, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "53668:8:1" + }, + "parameters": { + "id": 2974, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2969, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53610:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2968, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53610:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2971, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53624:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2970, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53624:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2973, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 2993, + "src": "53636:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2972, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "53636:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53609:43:1" + }, + "returnParameters": { + "id": 2976, + "nodeType": "ParameterList", + "parameters": [], + "src": "53677:0:1" + }, + "scope": 3498, + "src": "53588:300:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 598 + ], + "body": { + "id": 3011, + "nodeType": "Block", + "src": "54047:56:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3005, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2996, + "src": "54074:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3006, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2998, + "src": "54080:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3007, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3000, + "src": "54084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3008, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54093:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3004, + "name": "safeTransferFrom", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "src": "54057:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3009, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54057:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3010, + "nodeType": "ExpressionStatement", + "src": "54057:39:1" + } + ] + }, + "documentation": { + "id": 2994, + "nodeType": "StructuredDocumentation", + "src": "53894:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "42842e0e", + "id": 3012, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3002, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54038:8:1" + }, + "parameters": { + "id": 3001, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 2996, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53980:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2995, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53980:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 2998, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "53994:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 2997, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "53994:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3000, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3012, + "src": "54006:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 2999, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54006:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "53979:43:1" + }, + "returnParameters": { + "id": 3003, + "nodeType": "ParameterList", + "parameters": [], + "src": "54047:0:1" + }, + "scope": 3498, + "src": "53954:149:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "baseFunctions": [ + 654 + ], + "body": { + "id": 3041, + "nodeType": "Block", + "src": "54282:169:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3027, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "54319:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3028, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54319:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3029, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3026, + "name": "_isApprovedOrOwner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3127, + "src": "54300:18:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", + "typeString": "function (address,uint256) view returns (bool)" + } + }, + "id": 3030, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54300:41:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "id": 3031, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "54343:51:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + }, + "value": "ERC721: transfer caller is not owner nor approved" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "id": 3025, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "54292:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3032, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54292:103:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3033, + "nodeType": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3035, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3015, + "src": "54419:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3036, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3017, + "src": "54425:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3037, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3019, + "src": "54429:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3038, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3021, + "src": "54438:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3034, + "name": "_safeTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3071, + "src": "54405:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,address,uint256,bytes memory)" + } + }, + "id": 3039, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "54405:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3040, + "nodeType": "ExpressionStatement", + "src": "54405:39:1" + } + ] + }, + "documentation": { + "id": 3013, + "nodeType": "StructuredDocumentation", + "src": "54109:55:1", + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "functionSelector": "b88d4fde", + "id": 3042, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "safeTransferFrom", + "nodeType": "FunctionDefinition", + "overrides": { + "id": 3023, + "nodeType": "OverrideSpecifier", + "overrides": [], + "src": "54273:8:1" + }, + "parameters": { + "id": 3022, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3015, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54195:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3014, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54195:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3017, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54209:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3016, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "54209:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3019, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54221:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3018, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "54221:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3021, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3042, + "src": "54238:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3020, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "54238:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "54194:63:1" + }, + "returnParameters": { + "id": 3024, + "nodeType": "ParameterList", + "parameters": [], + "src": "54282:0:1" + }, + "scope": 3498, + "src": "54169:282:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + { + "body": { + "id": 3070, + "nodeType": "Block", + "src": "55416:166:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3055, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55436:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3056, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55442:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3057, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55446:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3054, + "name": "_transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3371, + "src": "55426:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3058, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55426:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3059, + "nodeType": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3062, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3045, + "src": "55495:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3063, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3047, + "src": "55501:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3064, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3049, + "src": "55505:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3065, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3051, + "src": "55514:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3061, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "55472:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3066, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55472:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3067, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "55522:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3060, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "55464:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3068, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55464:111:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3069, + "nodeType": "ExpressionStatement", + "src": "55464:111:1" + } + ] + }, + "documentation": { + "id": 3043, + "nodeType": "StructuredDocumentation", + "src": "54457:851:1", + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3071, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3052, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3045, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55336:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3044, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55336:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3047, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55350:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3046, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "55350:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3049, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55362:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3048, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55362:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3051, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3071, + "src": "55379:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3050, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "55379:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "55335:63:1" + }, + "returnParameters": { + "id": 3053, + "nodeType": "ParameterList", + "parameters": [], + "src": "55416:0:1" + }, + "scope": 3498, + "src": "55313:269:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3084, + "nodeType": "Block", + "src": "55956:54:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3081, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3074, + "src": "55995:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3079, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "55973:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3080, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "contains", + "nodeType": "MemberAccess", + "referencedDeclaration": 2326, + "src": "55973:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + } + }, + "id": 3082, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "55973:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3078, + "id": 3083, + "nodeType": "Return", + "src": "55966:37:1" + } + ] + }, + "documentation": { + "id": 3072, + "nodeType": "StructuredDocumentation", + "src": "55588:292:1", + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3085, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_exists", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3075, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3074, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55902:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3073, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "55902:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "55901:17:1" + }, + "returnParameters": { + "id": 3078, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3077, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3085, + "src": "55950:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3076, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "55950:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "55949:6:1" + }, + "scope": 3498, + "src": "55885:125:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3126, + "nodeType": "Block", + "src": "56267:252:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3097, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56293:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3096, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "56285:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3098, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56285:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "id": 3099, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56303:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + }, + "value": "ERC721: operator query for nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "id": 3095, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "56277:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3100, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56277:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3101, + "nodeType": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "assignments": [ + 3103 + ], + "declarations": [ + { + "constant": false, + "id": 3103, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3126, + "src": "56360:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3102, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56360:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3108, + "initialValue": { + "arguments": [ + { + "id": 3106, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56391:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3104, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56376:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3105, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "56376:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3107, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56376:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3123, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "id": 3117, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3111, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3109, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56417:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3110, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56428:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56417:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3116, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3113, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3090, + "src": "56449:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3112, + "name": "getApproved", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2914, + "src": "56437:11:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3114, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56437:20:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3115, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56461:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "56437:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:51:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "nodeType": "BinaryOperation", + "operator": "||", + "rightExpression": { + "arguments": [ + { + "id": 3120, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3103, + "src": "56496:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3121, + "name": "spender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3088, + "src": "56503:7:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3118, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "56472:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3119, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isApprovedForAll", + "nodeType": "MemberAccess", + "referencedDeclaration": 2966, + "src": "56472:23:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", + "typeString": "function (address,address) view returns (bool)" + } + }, + "id": 3122, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56472:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "src": "56417:94:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3124, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "56416:96:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3094, + "id": 3125, + "nodeType": "Return", + "src": "56409:103:1" + } + ] + }, + "documentation": { + "id": 3086, + "nodeType": "StructuredDocumentation", + "src": "56016:147:1", + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3127, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_isApprovedOrOwner", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3091, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3088, + "mutability": "mutable", + "name": "spender", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56196:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3087, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56196:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3090, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56213:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3089, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56213:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56195:34:1" + }, + "returnParameters": { + "id": 3094, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3093, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3127, + "src": "56261:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3092, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "56261:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "56260:6:1" + }, + "scope": 3498, + "src": "56168:351:1", + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3141, + "nodeType": "Block", + "src": "56915:43:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3136, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3130, + "src": "56935:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3137, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3132, + "src": "56939:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "hexValue": "", + "id": 3138, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "56948:2:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + }, + "value": "" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "id": 3135, + "name": "_safeMint", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "src": "56925:9:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", + "typeString": "function (address,uint256,bytes memory)" + } + }, + "id": 3139, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "56925:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3140, + "nodeType": "ExpressionStatement", + "src": "56925:26:1" + } + ] + }, + "documentation": { + "id": 3128, + "nodeType": "StructuredDocumentation", + "src": "56525:320:1", + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3142, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3133, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3130, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56869:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3129, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "56869:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3132, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3142, + "src": "56881:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3131, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "56881:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "56868:29:1" + }, + "returnParameters": { + "id": 3134, + "nodeType": "ParameterList", + "parameters": [], + "src": "56915:0:1" + }, + "scope": 3498, + "src": "56850:108:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3170, + "nodeType": "Block", + "src": "57264:162:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "id": 3153, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57280:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3154, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57284:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3152, + "name": "_mint", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3230, + "src": "57274:5:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3155, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57274:18:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3156, + "nodeType": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3161, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57341:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3160, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57333:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3159, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57333:7:1", + "typeDescriptions": {} + } + }, + "id": 3162, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57333:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3163, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3145, + "src": "57345:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3164, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3147, + "src": "57349:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3165, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3149, + "src": "57358:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "id": 3158, + "name": "_checkOnERC721Received", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3462, + "src": "57310:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", + "typeString": "function (address,address,uint256,bytes memory) returns (bool)" + } + }, + "id": 3166, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57310:54:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3167, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57366:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "id": 3157, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57302:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3168, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57302:117:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3169, + "nodeType": "ExpressionStatement", + "src": "57302:117:1" + } + ] + }, + "documentation": { + "id": 3143, + "nodeType": "StructuredDocumentation", + "src": "56964:210:1", + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3171, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_safeMint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3150, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3145, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57198:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3144, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57198:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3147, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57210:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3146, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57210:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3149, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3171, + "src": "57227:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3148, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "57227:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "57197:49:1" + }, + "returnParameters": { + "id": 3151, + "nodeType": "ParameterList", + "parameters": [], + "src": "57264:0:1" + }, + "scope": 3498, + "src": "57179:247:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3229, + "nodeType": "Block", + "src": "57809:332:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3185, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3180, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57827:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3183, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57841:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3182, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57833:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3181, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57833:7:1", + "typeDescriptions": {} + } + }, + "id": 3184, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57833:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "57827:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "id": 3186, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57845:34:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + }, + "value": "ERC721: mint to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "id": 3179, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57819:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3187, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57819:61:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3188, + "nodeType": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3193, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "57898:17:1", + "subExpression": { + "arguments": [ + { + "id": 3191, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57907:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3190, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "57899:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3192, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57899:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "id": 3194, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57917:30:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + }, + "value": "ERC721: token already minted" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "id": 3189, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "57890:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3195, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57890:58:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3196, + "nodeType": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3200, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "57988:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3199, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "57980:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3198, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57980:7:1", + "typeDescriptions": {} + } + }, + "id": 3201, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57980:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3202, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "57992:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3203, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "57996:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3197, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "57959:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3204, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "57959:45:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3205, + "nodeType": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3210, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58037:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3206, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58015:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3208, + "indexExpression": { + "id": 3207, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58029:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58015:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3209, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "58015:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3211, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58015:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3212, + "nodeType": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3216, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58073:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3217, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58082:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3213, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58056:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3215, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "58056:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3218, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58056:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3219, + "nodeType": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3223, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58118:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3222, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58110:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3221, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58110:7:1", + "typeDescriptions": {} + } + }, + "id": 3224, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58110:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3225, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3174, + "src": "58122:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3226, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3176, + "src": "58126:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3220, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58101:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3227, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58101:33:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3228, + "nodeType": "EmitStatement", + "src": "58096:38:1" + } + ] + }, + "documentation": { + "id": 3172, + "nodeType": "StructuredDocumentation", + "src": "57432:311:1", + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3230, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_mint", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3177, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3174, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57763:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3173, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "57763:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3176, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3230, + "src": "57775:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3175, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "57775:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "57762:29:1" + }, + "returnParameters": { + "id": 3178, + "nodeType": "ParameterList", + "parameters": [], + "src": "57809:0:1" + }, + "scope": 3498, + "src": "57748:393:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3298, + "nodeType": "Block", + "src": "58407:478:1", + "statements": [ + { + "assignments": [ + 3237 + ], + "declarations": [ + { + "constant": false, + "id": 3237, + "mutability": "mutable", + "name": "owner", + "nodeType": "VariableDeclaration", + "scope": 3298, + "src": "58417:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3236, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58417:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + } + ], + "id": 3242, + "initialValue": { + "arguments": [ + { + "id": 3240, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58448:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3238, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "58433:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3239, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "58433:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3241, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58433:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3244, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58506:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3247, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58521:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3246, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58513:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3245, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58513:7:1", + "typeDescriptions": {} + } + }, + "id": 3248, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58513:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3249, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58525:7:1", + "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": 3243, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "58485:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3250, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58485:48:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3251, + "nodeType": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3255, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58588:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3254, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58580:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3253, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58580:7:1", + "typeDescriptions": {} + } + }, + "id": 3256, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58580:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3257, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58592:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3252, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "58571:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3258, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58571:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3259, + "nodeType": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "condition": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "id": 3268, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "expression": { + "arguments": [ + { + "baseExpression": { + "id": 3262, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58656:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3264, + "indexExpression": { + "id": 3263, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58667:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58656:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "id": 3261, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58650:5:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", + "typeString": "type(bytes storage pointer)" + }, + "typeName": { + "id": 3260, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "58650:5:1", + "typeDescriptions": {} + } + }, + "id": 3265, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58650:26:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes storage pointer" + } + }, + "id": 3266, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "length", + "nodeType": "MemberAccess", + "src": "58650:33:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "hexValue": "30", + "id": 3267, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58687:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + }, + "src": "58650:38:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3275, + "nodeType": "IfStatement", + "src": "58646:95:1", + "trueBody": { + "id": 3274, + "nodeType": "Block", + "src": "58690:51:1", + "statements": [ + { + "expression": { + "id": 3272, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "delete", + "prefix": true, + "src": "58704:26:1", + "subExpression": { + "baseExpression": { + "id": 3269, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "58711:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3271, + "indexExpression": { + "id": 3270, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58722:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "58711:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3273, + "nodeType": "ExpressionStatement", + "src": "58704:26:1" + } + ] + } + }, + { + "expression": { + "arguments": [ + { + "id": 3280, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58779:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3276, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "58751:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3278, + "indexExpression": { + "id": 3277, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58765:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "58751:20:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3279, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "58751:27:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3281, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58751:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3282, + "nodeType": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3286, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58818:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3283, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "58798:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3285, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 2306, + "src": "58798:19:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + } + }, + "id": 3287, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58798:28:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3288, + "nodeType": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3290, + "name": "owner", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3237, + "src": "58851:5:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "arguments": [ + { + "hexValue": "30", + "id": 3293, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "58866:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3292, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "58858:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3291, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "58858:7:1", + "typeDescriptions": {} + } + }, + "id": 3294, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58858:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3295, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3233, + "src": "58870:7:1", + "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": 3289, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "58842:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3296, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "58842:36:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3297, + "nodeType": "EmitStatement", + "src": "58837:41:1" + } + ] + }, + "documentation": { + "id": 3231, + "nodeType": "StructuredDocumentation", + "src": "58147:206:1", + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3299, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_burn", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3234, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3233, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3299, + "src": "58373:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3232, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "58373:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "58372:17:1" + }, + "returnParameters": { + "id": 3235, + "nodeType": "ParameterList", + "parameters": [], + "src": "58407:0:1" + }, + "scope": 3498, + "src": "58358:527:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3370, + "nodeType": "Block", + "src": "59288:505:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3315, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "arguments": [ + { + "id": 3312, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59321:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3310, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "59306:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3311, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "59306:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3313, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59306:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3314, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59333:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "59306:31:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "id": 3316, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59339:43:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + }, + "value": "ERC721: transfer of token that is not own" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "id": 3309, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59298:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3317, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59298:85:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3318, + "nodeType": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "expression": { + "arguments": [ + { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "id": 3325, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3320, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59419:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "BinaryOperation", + "operator": "!=", + "rightExpression": { + "arguments": [ + { + "hexValue": "30", + "id": 3323, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59433:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3322, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59425:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3321, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59425:7:1", + "typeDescriptions": {} + } + }, + "id": 3324, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59425:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + "src": "59419:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "id": 3326, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59437:38:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + }, + "value": "ERC721: transfer to the zero address" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "id": 3319, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "59411:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3327, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59411:65:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3328, + "nodeType": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3330, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59508:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3331, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59514:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3332, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59518:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3329, + "name": "_beforeTokenTransfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3497, + "src": "59487:20:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3333, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59487:39:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3334, + "nodeType": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "hexValue": "30", + "id": 3338, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "number", + "lValueRequested": false, + "nodeType": "Literal", + "src": "59605:1:1", + "typeDescriptions": { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + "value": "0" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "id": 3337, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "59597:7:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_address_$", + "typeString": "type(address)" + }, + "typeName": { + "id": 3336, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59597:7:1", + "typeDescriptions": {} + } + }, + "id": 3339, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59597:10:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3340, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59609:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3335, + "name": "_approve", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3486, + "src": "59588:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,uint256)" + } + }, + "id": 3341, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59588:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3342, + "nodeType": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3347, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59655:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3343, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59628:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3345, + "indexExpression": { + "id": 3344, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59642:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59628:19:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3346, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "remove", + "nodeType": "MemberAccess", + "referencedDeclaration": 1866, + "src": "59628:26:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3348, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59628:35:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3349, + "nodeType": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3354, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59695:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "baseExpression": { + "id": 3350, + "name": "_holderTokens", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2600, + "src": "59673:13:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_address_$_t_struct$_UintSet_$1826_storage_$", + "typeString": "mapping(address => struct EnumerableSet.UintSet storage ref)" + } + }, + "id": 3352, + "indexExpression": { + "id": 3351, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59687:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "nodeType": "IndexAccess", + "src": "59673:17:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintSet_$1826_storage", + "typeString": "struct EnumerableSet.UintSet storage ref" + } + }, + "id": 3353, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "add", + "nodeType": "MemberAccess", + "referencedDeclaration": 1846, + "src": "59673:21:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintSet_$1826_storage_ptr_$_t_uint256_$returns$_t_bool_$bound_to$_t_struct$_UintSet_$1826_storage_ptr_$", + "typeString": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + } + }, + "id": 3355, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59673:30:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3356, + "nodeType": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "expression": { + "arguments": [ + { + "id": 3360, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59731:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3361, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59740:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "expression": { + "id": 3357, + "name": "_tokenOwners", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2602, + "src": "59714:12:1", + "typeDescriptions": { + "typeIdentifier": "t_struct$_UintToAddressMap_$2254_storage", + "typeString": "struct EnumerableMap.UintToAddressMap storage ref" + } + }, + "id": 3359, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "memberName": "set", + "nodeType": "MemberAccess", + "referencedDeclaration": 2286, + "src": "59714:16:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_struct$_UintToAddressMap_$2254_storage_ptr_$_t_uint256_$_t_address_$returns$_t_bool_$bound_to$_t_struct$_UintToAddressMap_$2254_storage_ptr_$", + "typeString": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + } + }, + "id": 3362, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59714:29:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3363, + "nodeType": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "id": 3365, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3302, + "src": "59768:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3366, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3304, + "src": "59774:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3367, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3306, + "src": "59778:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3364, + "name": "Transfer", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 554, + "src": "59759:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3368, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "59759:27:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3369, + "nodeType": "EmitStatement", + "src": "59754:32:1" + } + ] + }, + "documentation": { + "id": 3300, + "nodeType": "StructuredDocumentation", + "src": "58891:313:1", + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3371, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_transfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3307, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3302, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59228:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3301, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59228:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3304, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59242:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3303, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "59242:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3306, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3371, + "src": "59254:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3305, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59254:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "59227:43:1" + }, + "returnParameters": { + "id": 3308, + "nodeType": "ParameterList", + "parameters": [], + "src": "59288:0:1" + }, + "scope": 3498, + "src": "59209:584:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3392, + "nodeType": "Block", + "src": "60021:131:1", + "statements": [ + { + "expression": { + "arguments": [ + { + "arguments": [ + { + "id": 3381, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60047:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3380, + "name": "_exists", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3085, + "src": "60039:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", + "typeString": "function (uint256) view returns (bool)" + } + }, + "id": 3382, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60039:16:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + { + "hexValue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "id": 3383, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "60057:46:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + }, + "value": "ERC721Metadata: URI set of nonexistent token" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "id": 3379, + "name": "require", + "nodeType": "Identifier", + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "src": "60031:7:1", + "typeDescriptions": { + "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", + "typeString": "function (bool,string memory) pure" + } + }, + "id": 3384, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "60031:73:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3385, + "nodeType": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "expression": { + "id": 3390, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3386, + "name": "_tokenURIs", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2620, + "src": "60114:10:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$", + "typeString": "mapping(uint256 => string storage ref)" + } + }, + "id": 3388, + "indexExpression": { + "id": 3387, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3374, + "src": "60125:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "60114:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3389, + "name": "_tokenURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3376, + "src": "60136:9:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60114:31:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3391, + "nodeType": "ExpressionStatement", + "src": "60114:31:1" + } + ] + }, + "documentation": { + "id": 3372, + "nodeType": "StructuredDocumentation", + "src": "59799:136:1", + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3393, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setTokenURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3377, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3374, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59962:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3373, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "59962:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3376, + "mutability": "mutable", + "name": "_tokenURI", + "nodeType": "VariableDeclaration", + "scope": 3393, + "src": "59979:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3375, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "59979:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "59961:42:1" + }, + "returnParameters": { + "id": 3378, + "nodeType": "ParameterList", + "parameters": [], + "src": "60021:0:1" + }, + "scope": 3498, + "src": "59940:212:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3403, + "nodeType": "Block", + "src": "60437:36:1", + "statements": [ + { + "expression": { + "id": 3401, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "id": 3399, + "name": "_baseURI", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2622, + "src": "60447:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3400, + "name": "baseURI_", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3396, + "src": "60458:8:1", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + }, + "src": "60447:19:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + }, + "id": 3402, + "nodeType": "ExpressionStatement", + "src": "60447:19:1" + } + ] + }, + "documentation": { + "id": 3394, + "nodeType": "StructuredDocumentation", + "src": "60158:212:1", + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3404, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_setBaseURI", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3397, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3396, + "mutability": "mutable", + "name": "baseURI_", + "nodeType": "VariableDeclaration", + "scope": 3404, + "src": "60396:22:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string" + }, + "typeName": { + "id": 3395, + "name": "string", + "nodeType": "ElementaryTypeName", + "src": "60396:6:1", + "typeDescriptions": { + "typeIdentifier": "t_string_storage_ptr", + "typeString": "string" + } + }, + "visibility": "internal" + } + ], + "src": "60395:24:1" + }, + "returnParameters": { + "id": 3398, + "nodeType": "ParameterList", + "parameters": [], + "src": "60437:0:1" + }, + "scope": 3498, + "src": "60375:98:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3461, + "nodeType": "Block", + "src": "61156:459:1", + "statements": [ + { + "condition": { + "id": 3421, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "UnaryOperation", + "operator": "!", + "prefix": true, + "src": "61170:16:1", + "subExpression": { + "arguments": [], + "expression": { + "argumentTypes": [], + "expression": { + "id": 3418, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61171:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3419, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "isContract", + "nodeType": "MemberAccess", + "referencedDeclaration": 1154, + "src": "61171:13:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", + "typeString": "function (address) view returns (bool)" + } + }, + "id": 3420, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61171:15:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "id": 3425, + "nodeType": "IfStatement", + "src": "61166:58:1", + "trueBody": { + "id": 3424, + "nodeType": "Block", + "src": "61188:36:1", + "statements": [ + { + "expression": { + "hexValue": "74727565", + "id": 3422, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "bool", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61209:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "value": "true" + }, + "functionReturnParameters": 3417, + "id": 3423, + "nodeType": "Return", + "src": "61202:11:1" + } + ] + } + }, + { + "assignments": [ + 3427 + ], + "declarations": [ + { + "constant": false, + "id": 3427, + "mutability": "mutable", + "name": "returndata", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61233:23:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3426, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61233:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "id": 3445, + "initialValue": { + "arguments": [ + { + "arguments": [ + { + "expression": { + "expression": { + "arguments": [ + { + "id": 3433, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61327:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "id": 3432, + "name": "IERC721Receiver", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 726, + "src": "61311:15:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$726_$", + "typeString": "type(contract IERC721Receiver)" + } + }, + "id": 3434, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "typeConversion", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61311:19:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_contract$_IERC721Receiver_$726", + "typeString": "contract IERC721Receiver" + } + }, + "id": 3435, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "onERC721Received", + "nodeType": "MemberAccess", + "referencedDeclaration": 725, + "src": "61311:36:1", + "typeDescriptions": { + "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", + "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" + } + }, + "id": 3436, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "selector", + "nodeType": "MemberAccess", + "src": "61311:45:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + { + "arguments": [], + "expression": { + "argumentTypes": [], + "id": 3437, + "name": "_msgSender", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 518, + "src": "61370:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$__$returns$_t_address_payable_$", + "typeString": "function () view returns (address payable)" + } + }, + "id": 3438, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61370:12:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + }, + { + "id": 3439, + "name": "from", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3407, + "src": "61396:4:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3440, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3411, + "src": "61414:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + { + "id": 3441, + "name": "_data", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3413, + "src": "61435:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "expression": { + "id": 3430, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61275:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3431, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "encodeWithSelector", + "nodeType": "MemberAccess", + "src": "61275:22:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$", + "typeString": "function (bytes4) pure returns (bytes memory)" + } + }, + "id": 3442, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61275:175:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "id": 3443, + "isConstant": false, + "isLValue": false, + "isPure": true, + "kind": "string", + "lValueRequested": false, + "nodeType": "Literal", + "src": "61452:52:1", + "typeDescriptions": { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + }, + "value": "ERC721: transfer to non ERC721Receiver implementer" + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "expression": { + "id": 3428, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3409, + "src": "61259:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3429, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "functionCall", + "nodeType": "MemberAccess", + "referencedDeclaration": 1225, + "src": "61259:15:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$bound_to$_t_address_$", + "typeString": "function (address,bytes memory,string memory) returns (bytes memory)" + } + }, + "id": 3444, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61259:246:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "assignments": [ + 3447 + ], + "declarations": [ + { + "constant": false, + "id": 3447, + "mutability": "mutable", + "name": "retval", + "nodeType": "VariableDeclaration", + "scope": 3461, + "src": "61515:13:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "typeName": { + "id": 3446, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61515:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "visibility": "internal" + } + ], + "id": 3455, + "initialValue": { + "arguments": [ + { + "id": 3450, + "name": "returndata", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3427, + "src": "61542:10:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + }, + { + "components": [ + { + "id": 3452, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "ElementaryTypeNameExpression", + "src": "61555:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + }, + "typeName": { + "id": 3451, + "name": "bytes4", + "nodeType": "ElementaryTypeName", + "src": "61555:6:1", + "typeDescriptions": {} + } + } + ], + "id": 3453, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61554:8:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "expression": { + "id": 3448, + "name": "abi", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 4294967295, + "src": "61531:3:1", + "typeDescriptions": { + "typeIdentifier": "t_magic_abi", + "typeString": "abi" + } + }, + "id": 3449, + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "memberName": "decode", + "nodeType": "MemberAccess", + "src": "61531:10:1", + "typeDescriptions": { + "typeIdentifier": "t_function_abidecode_pure$__$returns$__$", + "typeString": "function () pure" + } + }, + "id": 3454, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61531:32:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "expression": { + "components": [ + { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "id": 3458, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftExpression": { + "id": 3456, + "name": "retval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3447, + "src": "61581:6:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "nodeType": "BinaryOperation", + "operator": "==", + "rightExpression": { + "id": 3457, + "name": "_ERC721_RECEIVED", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2596, + "src": "61591:16:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + }, + "src": "61581:26:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + } + ], + "id": 3459, + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "nodeType": "TupleExpression", + "src": "61580:28:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "functionReturnParameters": 3417, + "id": 3460, + "nodeType": "Return", + "src": "61573:35:1" + } + ] + }, + "documentation": { + "id": 3405, + "nodeType": "StructuredDocumentation", + "src": "60479:542:1", + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3462, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_checkOnERC721Received", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3414, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3407, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61058:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3406, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61058:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3409, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61072:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3408, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61072:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3411, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61084:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3410, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61084:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3413, + "mutability": "mutable", + "name": "_data", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61101:18:1", + "stateVariable": false, + "storageLocation": "memory", + "typeDescriptions": { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes" + }, + "typeName": { + "id": 3412, + "name": "bytes", + "nodeType": "ElementaryTypeName", + "src": "61101:5:1", + "typeDescriptions": { + "typeIdentifier": "t_bytes_storage_ptr", + "typeString": "bytes" + } + }, + "visibility": "internal" + } + ], + "src": "61057:63:1" + }, + "returnParameters": { + "id": 3417, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3416, + "mutability": "mutable", + "name": "", + "nodeType": "VariableDeclaration", + "scope": 3462, + "src": "61146:4:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "typeName": { + "id": 3415, + "name": "bool", + "nodeType": "ElementaryTypeName", + "src": "61146:4:1", + "typeDescriptions": { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + }, + "visibility": "internal" + } + ], + "src": "61145:6:1" + }, + "scope": 3498, + "src": "61026:589:1", + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + { + "body": { + "id": 3485, + "nodeType": "Block", + "src": "61791:125:1", + "statements": [ + { + "expression": { + "id": 3474, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "leftHandSide": { + "baseExpression": { + "id": 3470, + "name": "_tokenApprovals", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 2606, + "src": "61801:15:1", + "typeDescriptions": { + "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", + "typeString": "mapping(uint256 => address)" + } + }, + "id": 3472, + "indexExpression": { + "id": 3471, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61817:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "nodeType": "IndexAccess", + "src": "61801:24:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "nodeType": "Assignment", + "operator": "=", + "rightHandSide": { + "id": 3473, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61828:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "src": "61801:29:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "id": 3475, + "nodeType": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "eventCall": { + "arguments": [ + { + "arguments": [ + { + "id": 3479, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61869:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "expression": { + "id": 3477, + "name": "ERC721", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3498, + "src": "61854:6:1", + "typeDescriptions": { + "typeIdentifier": "t_type$_t_contract$_ERC721_$3498_$", + "typeString": "type(contract ERC721)" + } + }, + "id": 3478, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "memberName": "ownerOf", + "nodeType": "MemberAccess", + "referencedDeclaration": 2702, + "src": "61854:14:1", + "typeDescriptions": { + "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", + "typeString": "function (uint256) view returns (address)" + } + }, + "id": 3480, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61854:23:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3481, + "name": "to", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3465, + "src": "61879:2:1", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + { + "id": 3482, + "name": "tokenId", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 3467, + "src": "61883:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + } + ], + "expression": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "id": 3476, + "name": "Approval", + "nodeType": "Identifier", + "overloadedDeclarations": [], + "referencedDeclaration": 563, + "src": "61845:8:1", + "typeDescriptions": { + "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", + "typeString": "function (address,address,uint256)" + } + }, + "id": 3483, + "isConstant": false, + "isLValue": false, + "isPure": false, + "kind": "functionCall", + "lValueRequested": false, + "names": [], + "nodeType": "FunctionCall", + "src": "61845:46:1", + "tryCall": false, + "typeDescriptions": { + "typeIdentifier": "t_tuple$__$", + "typeString": "tuple()" + } + }, + "id": 3484, + "nodeType": "EmitStatement", + "src": "61840:51:1" + } + ] + }, + "documentation": { + "id": 3463, + "nodeType": "StructuredDocumentation", + "src": "61621:101:1", + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3486, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_approve", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3468, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3465, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61745:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3464, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "61745:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3467, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3486, + "src": "61757:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3466, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "61757:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "61744:29:1" + }, + "returnParameters": { + "id": 3469, + "nodeType": "ParameterList", + "parameters": [], + "src": "61791:0:1" + }, + "scope": 3498, + "src": "61727:189:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + { + "body": { + "id": 3496, + "nodeType": "Block", + "src": "62602:3:1", + "statements": [] + }, + "documentation": { + "id": 3487, + "nodeType": "StructuredDocumentation", + "src": "61922:585:1", + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3497, + "implemented": true, + "kind": "function", + "modifiers": [], + "name": "_beforeTokenTransfer", + "nodeType": "FunctionDefinition", + "parameters": { + "id": 3494, + "nodeType": "ParameterList", + "parameters": [ + { + "constant": false, + "id": 3489, + "mutability": "mutable", + "name": "from", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62542:12:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3488, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62542:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3491, + "mutability": "mutable", + "name": "to", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62556:10:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "typeName": { + "id": 3490, + "name": "address", + "nodeType": "ElementaryTypeName", + "src": "62556:7:1", + "stateMutability": "nonpayable", + "typeDescriptions": { + "typeIdentifier": "t_address", + "typeString": "address" + } + }, + "visibility": "internal" + }, + { + "constant": false, + "id": 3493, + "mutability": "mutable", + "name": "tokenId", + "nodeType": "VariableDeclaration", + "scope": 3497, + "src": "62568:15:1", + "stateVariable": false, + "storageLocation": "default", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "typeName": { + "id": 3492, + "name": "uint256", + "nodeType": "ElementaryTypeName", + "src": "62568:7:1", + "typeDescriptions": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + }, + "visibility": "internal" + } + ], + "src": "62541:43:1" + }, + "returnParameters": { + "id": 3495, + "nodeType": "ParameterList", + "parameters": [], + "src": "62602:0:1" + }, + "scope": 3498, + "src": "62512:93:1", + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + } + ], + "scope": 3499, + "src": "46080:16527:1" + } + ], + "src": "84:62524:1" + }, + "legacyAST": { + "attributes": { + "absolutePath": "/home/pavansoratur/Github/cryptoboys-NFT-marketplace/src/contracts/ERC721.sol", + "exportedSymbols": { + "Address": [ + 1430 + ], + "Context": [ + 530 + ], + "ERC165": [ + 781 + ], + "ERC721": [ + 3498 + ], + "EnumerableMap": [ + 2480 + ], + "EnumerableSet": [ + 1921 + ], + "IERC165": [ + 541 + ], + "IERC721": [ + 655 + ], + "IERC721Enumerable": [ + 709 + ], + "IERC721Metadata": [ + 680 + ], + "IERC721Receiver": [ + 726 + ], + "SafeMath": [ + 1135 + ], + "Strings": [ + 2566 + ] + }, + "license": "MIT" + }, + "children": [ + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 509, + "name": "PragmaDirective", + "src": "84:31:1" + }, + { + "attributes": { + "abstract": true, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 530 + ], + "name": "Context", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgSender", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 510, + "name": "ParameterList", + "src": "668:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 518, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 511, + "name": "ElementaryTypeName", + "src": "702:15:1" + } + ], + "id": 512, + "name": "VariableDeclaration", + "src": "702:15:1" + } + ], + "id": 513, + "name": "ParameterList", + "src": "701:17:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 513 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "sender", + "type": "address payable" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 514, + "name": "Identifier", + "src": "736:3:1" + } + ], + "id": 515, + "name": "MemberAccess", + "src": "736:10:1" + } + ], + "id": 516, + "name": "Return", + "src": "729:17:1" + } + ], + "id": 517, + "name": "Block", + "src": "719:34:1" + } + ], + "id": 518, + "name": "FunctionDefinition", + "src": "649:104:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_msgData", + "scope": 530, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 519, + "name": "ParameterList", + "src": "776:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 529, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 520, + "name": "ElementaryTypeName", + "src": "810:5:1" + } + ], + "id": 521, + "name": "VariableDeclaration", + "src": "810:12:1" + } + ], + "id": 522, + "name": "ParameterList", + "src": "809:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "contract Context", + "value": "this" + }, + "id": 523, + "name": "Identifier", + "src": "834:4:1" + } + ], + "id": 524, + "name": "ExpressionStatement", + "src": "834:4:1" + }, + { + "attributes": { + "functionReturnParameters": 522 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "data", + "type": "bytes calldata" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967281, + "type": "msg", + "value": "msg" + }, + "id": 525, + "name": "Identifier", + "src": "974:3:1" + } + ], + "id": 526, + "name": "MemberAccess", + "src": "974:8:1" + } + ], + "id": 527, + "name": "Return", + "src": "967:15:1" + } + ], + "id": 528, + "name": "Block", + "src": "824:165:1" + } + ], + "id": 529, + "name": "FunctionDefinition", + "src": "759:230:1" + } + ], + "id": 530, + "name": "ContractDefinition", + "src": "617:374:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 531, + "name": "PragmaDirective", + "src": "1053:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 541 + ], + "name": "IERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Interface of the ERC165 standard, as defined in the\n https://eips.ethereum.org/EIPS/eip-165[EIP].\n Implementers can declare support of contract interfaces, which can then be\n queried by others ({ERC165Checker}).\n For an implementation, see {ERC165}." + }, + "id": 532, + "name": "StructuredDocumentation", + "src": "1086:279:1" + }, + { + "attributes": { + "functionSelector": "01ffc9a7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 541, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if this contract implements the interface defined by\n `interfaceId`. See the corresponding\n https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]\n to learn more about how these ids are created.\n This function call must use less than 30 000 gas." + }, + "id": 533, + "name": "StructuredDocumentation", + "src": "1390:340:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 534, + "name": "ElementaryTypeName", + "src": "1762:6:1" + } + ], + "id": 535, + "name": "VariableDeclaration", + "src": "1762:18:1" + } + ], + "id": 536, + "name": "ParameterList", + "src": "1761:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 540, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 537, + "name": "ElementaryTypeName", + "src": "1805:4:1" + } + ], + "id": 538, + "name": "VariableDeclaration", + "src": "1805:4:1" + } + ], + "id": 539, + "name": "ParameterList", + "src": "1804:6:1" + } + ], + "id": 540, + "name": "FunctionDefinition", + "src": "1735:76:1" + } + ], + "id": 541, + "name": "ContractDefinition", + "src": "1366:447:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 542, + "name": "PragmaDirective", + "src": "1873:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 655, + 541 + ], + "name": "IERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Required interface of an ERC721 compliant contract." + }, + "id": 543, + "name": "StructuredDocumentation", + "src": "1907:67:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 544, + "name": "UserDefinedTypeName", + "src": "1996:7:1" + } + ], + "id": 545, + "name": "InheritanceSpecifier", + "src": "1996:7:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Transfer" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." + }, + "id": 546, + "name": "StructuredDocumentation", + "src": "2010:88:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "from", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 547, + "name": "ElementaryTypeName", + "src": "2118:7:1" + } + ], + "id": 548, + "name": "VariableDeclaration", + "src": "2118:20:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "to", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 549, + "name": "ElementaryTypeName", + "src": "2140:7:1" + } + ], + "id": 550, + "name": "VariableDeclaration", + "src": "2140:18:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 554, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 551, + "name": "ElementaryTypeName", + "src": "2160:7:1" + } + ], + "id": 552, + "name": "VariableDeclaration", + "src": "2160:23:1" + } + ], + "id": 553, + "name": "ParameterList", + "src": "2117:67:1" + } + ], + "id": 554, + "name": "EventDefinition", + "src": "2103:82:1" + }, + { + "attributes": { + "anonymous": false, + "name": "Approval" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." + }, + "id": 555, + "name": "StructuredDocumentation", + "src": "2191:94:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 556, + "name": "ElementaryTypeName", + "src": "2305:7:1" + } + ], + "id": 557, + "name": "VariableDeclaration", + "src": "2305:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "approved", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 558, + "name": "ElementaryTypeName", + "src": "2328:7:1" + } + ], + "id": 559, + "name": "VariableDeclaration", + "src": "2328:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "tokenId", + "scope": 563, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 560, + "name": "ElementaryTypeName", + "src": "2354:7:1" + } + ], + "id": 561, + "name": "VariableDeclaration", + "src": "2354:23:1" + } + ], + "id": 562, + "name": "ParameterList", + "src": "2304:74:1" + } + ], + "id": 563, + "name": "EventDefinition", + "src": "2290:89:1" + }, + { + "attributes": { + "anonymous": false, + "name": "ApprovalForAll" + }, + "children": [ + { + "attributes": { + "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." + }, + "id": 564, + "name": "StructuredDocumentation", + "src": "2385:117:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "owner", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 565, + "name": "ElementaryTypeName", + "src": "2528:7:1" + } + ], + "id": 566, + "name": "VariableDeclaration", + "src": "2528:21:1" + }, + { + "attributes": { + "constant": false, + "indexed": true, + "mutability": "mutable", + "name": "operator", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 567, + "name": "ElementaryTypeName", + "src": "2551:7:1" + } + ], + "id": 568, + "name": "VariableDeclaration", + "src": "2551:24:1" + }, + { + "attributes": { + "constant": false, + "indexed": false, + "mutability": "mutable", + "name": "approved", + "scope": 572, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 569, + "name": "ElementaryTypeName", + "src": "2577:4:1" + } + ], + "id": 570, + "name": "VariableDeclaration", + "src": "2577:13:1" + } + ], + "id": 571, + "name": "ParameterList", + "src": "2527:64:1" + } + ], + "id": 572, + "name": "EventDefinition", + "src": "2507:85:1" + }, + { + "attributes": { + "functionSelector": "70a08231", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of tokens in ``owner``'s account." + }, + "id": 573, + "name": "StructuredDocumentation", + "src": "2598:76:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 574, + "name": "ElementaryTypeName", + "src": "2698:7:1" + } + ], + "id": 575, + "name": "VariableDeclaration", + "src": "2698:13:1" + } + ], + "id": 576, + "name": "ParameterList", + "src": "2697:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "balance", + "scope": 580, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 577, + "name": "ElementaryTypeName", + "src": "2736:7:1" + } + ], + "id": 578, + "name": "VariableDeclaration", + "src": "2736:15:1" + } + ], + "id": 579, + "name": "ParameterList", + "src": "2735:17:1" + } + ], + "id": 580, + "name": "FunctionDefinition", + "src": "2679:74:1" + }, + { + "attributes": { + "functionSelector": "6352211e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 581, + "name": "StructuredDocumentation", + "src": "2759:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 582, + "name": "ElementaryTypeName", + "src": "2912:7:1" + } + ], + "id": 583, + "name": "VariableDeclaration", + "src": "2912:15:1" + } + ], + "id": 584, + "name": "ParameterList", + "src": "2911:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 588, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 585, + "name": "ElementaryTypeName", + "src": "2952:7:1" + } + ], + "id": 586, + "name": "VariableDeclaration", + "src": "2952:13:1" + } + ], + "id": 587, + "name": "ParameterList", + "src": "2951:15:1" + } + ], + "id": 588, + "name": "FunctionDefinition", + "src": "2895:72:1" + }, + { + "attributes": { + "functionSelector": "42842e0e", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 589, + "name": "StructuredDocumentation", + "src": "2973:690:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 590, + "name": "ElementaryTypeName", + "src": "3694:7:1" + } + ], + "id": 591, + "name": "VariableDeclaration", + "src": "3694:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 592, + "name": "ElementaryTypeName", + "src": "3708:7:1" + } + ], + "id": 593, + "name": "VariableDeclaration", + "src": "3708:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 598, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 594, + "name": "ElementaryTypeName", + "src": "3720:7:1" + } + ], + "id": 595, + "name": "VariableDeclaration", + "src": "3720:15:1" + } + ], + "id": 596, + "name": "ParameterList", + "src": "3693:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 597, + "name": "ParameterList", + "src": "3745:0:1" + } + ], + "id": 598, + "name": "FunctionDefinition", + "src": "3668:78:1" + }, + { + "attributes": { + "functionSelector": "23b872dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." + }, + "id": 599, + "name": "StructuredDocumentation", + "src": "3752:504:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 600, + "name": "ElementaryTypeName", + "src": "4283:7:1" + } + ], + "id": 601, + "name": "VariableDeclaration", + "src": "4283:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 602, + "name": "ElementaryTypeName", + "src": "4297:7:1" + } + ], + "id": 603, + "name": "VariableDeclaration", + "src": "4297:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 608, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 604, + "name": "ElementaryTypeName", + "src": "4309:7:1" + } + ], + "id": 605, + "name": "VariableDeclaration", + "src": "4309:15:1" + } + ], + "id": 606, + "name": "ParameterList", + "src": "4282:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 607, + "name": "ParameterList", + "src": "4334:0:1" + } + ], + "id": 608, + "name": "FunctionDefinition", + "src": "4261:74:1" + }, + { + "attributes": { + "functionSelector": "095ea7b3", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." + }, + "id": 609, + "name": "StructuredDocumentation", + "src": "4341:452:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 610, + "name": "ElementaryTypeName", + "src": "4815:7:1" + } + ], + "id": 611, + "name": "VariableDeclaration", + "src": "4815:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 616, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 612, + "name": "ElementaryTypeName", + "src": "4827:7:1" + } + ], + "id": 613, + "name": "VariableDeclaration", + "src": "4827:15:1" + } + ], + "id": 614, + "name": "ParameterList", + "src": "4814:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 615, + "name": "ParameterList", + "src": "4852:0:1" + } + ], + "id": 616, + "name": "FunctionDefinition", + "src": "4798:55:1" + }, + { + "attributes": { + "functionSelector": "081812fc", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." + }, + "id": 617, + "name": "StructuredDocumentation", + "src": "4859:139:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 618, + "name": "ElementaryTypeName", + "src": "5024:7:1" + } + ], + "id": 619, + "name": "VariableDeclaration", + "src": "5024:15:1" + } + ], + "id": 620, + "name": "ParameterList", + "src": "5023:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 624, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 621, + "name": "ElementaryTypeName", + "src": "5064:7:1" + } + ], + "id": 622, + "name": "VariableDeclaration", + "src": "5064:16:1" + } + ], + "id": 623, + "name": "ParameterList", + "src": "5063:18:1" + } + ], + "id": 624, + "name": "FunctionDefinition", + "src": "5003:79:1" + }, + { + "attributes": { + "functionSelector": "a22cb465", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." + }, + "id": 625, + "name": "StructuredDocumentation", + "src": "5088:309:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 626, + "name": "ElementaryTypeName", + "src": "5429:7:1" + } + ], + "id": 627, + "name": "VariableDeclaration", + "src": "5429:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_approved", + "scope": 632, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 628, + "name": "ElementaryTypeName", + "src": "5447:4:1" + } + ], + "id": 629, + "name": "VariableDeclaration", + "src": "5447:14:1" + } + ], + "id": 630, + "name": "ParameterList", + "src": "5428:34:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 631, + "name": "ParameterList", + "src": "5471:0:1" + } + ], + "id": 632, + "name": "FunctionDefinition", + "src": "5402:70:1" + }, + { + "attributes": { + "functionSelector": "e985e9c5", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 655, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.\n See {setApprovalForAll}" + }, + "id": 633, + "name": "StructuredDocumentation", + "src": "5478:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 634, + "name": "ElementaryTypeName", + "src": "5647:7:1" + } + ], + "id": 635, + "name": "VariableDeclaration", + "src": "5647:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 636, + "name": "ElementaryTypeName", + "src": "5662:7:1" + } + ], + "id": 637, + "name": "VariableDeclaration", + "src": "5662:16:1" + } + ], + "id": 638, + "name": "ParameterList", + "src": "5646:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 642, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 639, + "name": "ElementaryTypeName", + "src": "5703:4:1" + } + ], + "id": 640, + "name": "VariableDeclaration", + "src": "5703:4:1" + } + ], + "id": 641, + "name": "ParameterList", + "src": "5702:6:1" + } + ], + "id": 642, + "name": "FunctionDefinition", + "src": "5621:88:1" + }, + { + "attributes": { + "functionSelector": "b88d4fde", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 655, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 643, + "name": "StructuredDocumentation", + "src": "5715:568:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 644, + "name": "ElementaryTypeName", + "src": "6314:7:1" + } + ], + "id": 645, + "name": "VariableDeclaration", + "src": "6314:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 646, + "name": "ElementaryTypeName", + "src": "6328:7:1" + } + ], + "id": 647, + "name": "VariableDeclaration", + "src": "6328:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 654, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 648, + "name": "ElementaryTypeName", + "src": "6340:7:1" + } + ], + "id": 649, + "name": "VariableDeclaration", + "src": "6340:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 654, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 650, + "name": "ElementaryTypeName", + "src": "6357:5:1" + } + ], + "id": 651, + "name": "VariableDeclaration", + "src": "6357:19:1" + } + ], + "id": 652, + "name": "ParameterList", + "src": "6313:64:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 653, + "name": "ParameterList", + "src": "6386:0:1" + } + ], + "id": 654, + "name": "FunctionDefinition", + "src": "6288:99:1" + } + ], + "id": 655, + "name": "ContractDefinition", + "src": "1975:4414:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 656, + "name": "PragmaDirective", + "src": "6457:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 680, + 655, + 541 + ], + "name": "IERC721Metadata", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional metadata extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 657, + "name": "StructuredDocumentation", + "src": "6491:133:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 658, + "name": "UserDefinedTypeName", + "src": "6654:7:1" + } + ], + "id": 659, + "name": "InheritanceSpecifier", + "src": "6654:7:1" + }, + { + "attributes": { + "functionSelector": "06fdde03", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection name." + }, + "id": 660, + "name": "StructuredDocumentation", + "src": "6669:58:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 661, + "name": "ParameterList", + "src": "6745:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 665, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 662, + "name": "ElementaryTypeName", + "src": "6771:6:1" + } + ], + "id": 663, + "name": "VariableDeclaration", + "src": "6771:13:1" + } + ], + "id": 664, + "name": "ParameterList", + "src": "6770:15:1" + } + ], + "id": 665, + "name": "FunctionDefinition", + "src": "6732:54:1" + }, + { + "attributes": { + "functionSelector": "95d89b41", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the token collection symbol." + }, + "id": 666, + "name": "StructuredDocumentation", + "src": "6792:60:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 667, + "name": "ParameterList", + "src": "6872:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 671, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 668, + "name": "ElementaryTypeName", + "src": "6898:6:1" + } + ], + "id": 669, + "name": "VariableDeclaration", + "src": "6898:13:1" + } + ], + "id": 670, + "name": "ParameterList", + "src": "6897:15:1" + } + ], + "id": 671, + "name": "FunctionDefinition", + "src": "6857:56:1" + }, + { + "attributes": { + "functionSelector": "c87b56dd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 680, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token." + }, + "id": 672, + "name": "StructuredDocumentation", + "src": "6919:90:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 679, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 673, + "name": "ElementaryTypeName", + "src": "7032:7:1" + } + ], + "id": 674, + "name": "VariableDeclaration", + "src": "7032:15:1" + } + ], + "id": 675, + "name": "ParameterList", + "src": "7031:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 679, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 676, + "name": "ElementaryTypeName", + "src": "7072:6:1" + } + ], + "id": 677, + "name": "VariableDeclaration", + "src": "7072:13:1" + } + ], + "id": 678, + "name": "ParameterList", + "src": "7071:15:1" + } + ], + "id": 679, + "name": "FunctionDefinition", + "src": "7014:73:1" + } + ], + "id": 680, + "name": "ContractDefinition", + "src": "6625:464:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 681, + "name": "PragmaDirective", + "src": "7161:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 541, + 655 + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 709, + 655, + 541 + ], + "name": "IERC721Enumerable", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC-721 Non-Fungible Token Standard, optional enumeration extension\n @dev See https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 682, + "name": "StructuredDocumentation", + "src": "7195:136:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 683, + "name": "UserDefinedTypeName", + "src": "7363:7:1" + } + ], + "id": 684, + "name": "InheritanceSpecifier", + "src": "7363:7:1" + }, + { + "attributes": { + "functionSelector": "18160ddd", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the total amount of tokens stored by the contract." + }, + "id": 685, + "name": "StructuredDocumentation", + "src": "7378:82:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 686, + "name": "ParameterList", + "src": "7485:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 690, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 687, + "name": "ElementaryTypeName", + "src": "7511:7:1" + } + ], + "id": 688, + "name": "VariableDeclaration", + "src": "7511:7:1" + } + ], + "id": 689, + "name": "ParameterList", + "src": "7510:9:1" + } + ], + "id": 690, + "name": "FunctionDefinition", + "src": "7465:55:1" + }, + { + "attributes": { + "functionSelector": "2f745c59", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID owned by `owner` at a given `index` of its token list.\n Use along with {balanceOf} to enumerate all of ``owner``'s tokens." + }, + "id": 691, + "name": "StructuredDocumentation", + "src": "7526:171:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 692, + "name": "ElementaryTypeName", + "src": "7731:7:1" + } + ], + "id": 693, + "name": "VariableDeclaration", + "src": "7731:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 694, + "name": "ElementaryTypeName", + "src": "7746:7:1" + } + ], + "id": 695, + "name": "VariableDeclaration", + "src": "7746:13:1" + } + ], + "id": 696, + "name": "ParameterList", + "src": "7730:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 700, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 697, + "name": "ElementaryTypeName", + "src": "7784:7:1" + } + ], + "id": 698, + "name": "VariableDeclaration", + "src": "7784:15:1" + } + ], + "id": 699, + "name": "ParameterList", + "src": "7783:17:1" + } + ], + "id": 700, + "name": "FunctionDefinition", + "src": "7702:99:1" + }, + { + "attributes": { + "functionSelector": "4f6ccce7", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 709, + "stateMutability": "view", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns a token ID at a given `index` of all the tokens stored by the contract.\n Use along with {totalSupply} to enumerate all tokens." + }, + "id": 701, + "name": "StructuredDocumentation", + "src": "7807:164:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 702, + "name": "ElementaryTypeName", + "src": "7998:7:1" + } + ], + "id": 703, + "name": "VariableDeclaration", + "src": "7998:13:1" + } + ], + "id": 704, + "name": "ParameterList", + "src": "7997:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 708, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 705, + "name": "ElementaryTypeName", + "src": "8036:7:1" + } + ], + "id": 706, + "name": "VariableDeclaration", + "src": "8036:7:1" + } + ], + "id": 707, + "name": "ParameterList", + "src": "8035:9:1" + } + ], + "id": 708, + "name": "FunctionDefinition", + "src": "7976:69:1" + } + ], + "id": 709, + "name": "ContractDefinition", + "src": "7332:715:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 710, + "name": "PragmaDirective", + "src": "8117:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "interface", + "fullyImplemented": false, + "linearizedBaseContracts": [ + 726 + ], + "name": "IERC721Receiver", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 token receiver interface\n @dev Interface for any contract that wants to support safeTransfers\n from ERC721 asset contracts." + }, + "id": 711, + "name": "StructuredDocumentation", + "src": "8150:152:1" + }, + { + "attributes": { + "functionSelector": "150b7a02", + "implemented": false, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "onERC721Received", + "scope": 726, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "external" + }, + "children": [ + { + "attributes": { + "text": " @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}\n by `operator` from `from`, this function is called.\n It must return its Solidity selector to confirm the token transfer.\n If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.\n The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`." + }, + "id": 712, + "name": "StructuredDocumentation", + "src": "8335:485:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 713, + "name": "ElementaryTypeName", + "src": "8851:7:1" + } + ], + "id": 714, + "name": "VariableDeclaration", + "src": "8851:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 715, + "name": "ElementaryTypeName", + "src": "8869:7:1" + } + ], + "id": 716, + "name": "VariableDeclaration", + "src": "8869:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 717, + "name": "ElementaryTypeName", + "src": "8883:7:1" + } + ], + "id": 718, + "name": "VariableDeclaration", + "src": "8883:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 725, + "stateVariable": false, + "storageLocation": "calldata", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 719, + "name": "ElementaryTypeName", + "src": "8900:5:1" + } + ], + "id": 720, + "name": "VariableDeclaration", + "src": "8900:19:1" + } + ], + "id": 721, + "name": "ParameterList", + "src": "8850:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 725, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 722, + "name": "ElementaryTypeName", + "src": "8939:6:1" + } + ], + "id": 723, + "name": "VariableDeclaration", + "src": "8939:6:1" + } + ], + "id": 724, + "name": "ParameterList", + "src": "8938:8:1" + } + ], + "id": 725, + "name": "FunctionDefinition", + "src": "8825:122:1" + } + ], + "id": 726, + "name": "ContractDefinition", + "src": "8303:646:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 727, + "name": "PragmaDirective", + "src": "9009:31:1" + }, + { + "attributes": { + "abstract": true, + "contractDependencies": [ + 541 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 781, + 541 + ], + "name": "ERC165", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface." + }, + "id": 728, + "name": "StructuredDocumentation", + "src": "9043:171:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC165", + "referencedDeclaration": 541, + "type": "contract IERC165" + }, + "id": 729, + "name": "UserDefinedTypeName", + "src": "9243:7:1" + } + ], + "id": 730, + "name": "InheritanceSpecifier", + "src": "9243:7:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC165", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 731, + "name": "ElementaryTypeName", + "src": "9340:6:1" + }, + { + "attributes": { + "hexvalue": "30783031666663396137", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 33540519", + "value": "0x01ffc9a7" + }, + "id": 732, + "name": "Literal", + "src": "9387:10:1" + } + ], + "id": 733, + "name": "VariableDeclaration", + "src": "9340:57:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_supportedInterfaces", + "scope": 781, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(bytes4 => bool)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes4 => bool)" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 735, + "name": "ElementaryTypeName", + "src": "9499:6:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 736, + "name": "ElementaryTypeName", + "src": "9509:4:1" + } + ], + "id": 737, + "name": "Mapping", + "src": "9491:23:1" + }, + { + "attributes": { + "text": " @dev Mapping of interface ids to whether or not it's supported." + }, + "id": 734, + "name": "StructuredDocumentation", + "src": "9404:82:1" + } + ], + "id": 738, + "name": "VariableDeclaration", + "src": "9491:52:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 739, + "name": "ParameterList", + "src": "9562:2:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 740, + "name": "ParameterList", + "src": "9565:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 741, + "name": "Identifier", + "src": "9711:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 733, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC165" + }, + "id": 742, + "name": "Identifier", + "src": "9730:20:1" + } + ], + "id": 743, + "name": "FunctionCall", + "src": "9711:40:1" + } + ], + "id": 744, + "name": "ExpressionStatement", + "src": "9711:40:1" + } + ], + "id": 745, + "name": "Block", + "src": "9565:193:1" + } + ], + "id": 746, + "name": "FunctionDefinition", + "src": "9550:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 540 + ], + "functionSelector": "01ffc9a7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "supportsInterface", + "scope": 781, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas." + }, + "id": 747, + "name": "StructuredDocumentation", + "src": "9764:139:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 751, + "name": "OverrideSpecifier", + "src": "9975:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 748, + "name": "ElementaryTypeName", + "src": "9935:6:1" + } + ], + "id": 749, + "name": "VariableDeclaration", + "src": "9935:18:1" + } + ], + "id": 750, + "name": "ParameterList", + "src": "9934:20:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 760, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 752, + "name": "ElementaryTypeName", + "src": "9993:4:1" + } + ], + "id": 753, + "name": "VariableDeclaration", + "src": "9993:4:1" + } + ], + "id": 754, + "name": "ParameterList", + "src": "9992:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 754 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 755, + "name": "Identifier", + "src": "10016:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 749, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 756, + "name": "Identifier", + "src": "10037:11:1" + } + ], + "id": 757, + "name": "IndexAccess", + "src": "10016:33:1" + } + ], + "id": 758, + "name": "Return", + "src": "10009:40:1" + } + ], + "id": 759, + "name": "Block", + "src": "9999:57:1" + } + ], + "id": 760, + "name": "FunctionDefinition", + "src": "9908:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_registerInterface", + "scope": 781, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Registers the contract as an implementer of the interface defined by\n `interfaceId`. Support of the actual ERC165 interface is automatic and\n registering its interface id is not required.\n See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)." + }, + "id": 761, + "name": "StructuredDocumentation", + "src": "10062:383:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "interfaceId", + "scope": 780, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 762, + "name": "ElementaryTypeName", + "src": "10478:6:1" + } + ], + "id": 763, + "name": "VariableDeclaration", + "src": "10478:18:1" + } + ], + "id": 764, + "name": "ParameterList", + "src": "10477:20:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 765, + "name": "ParameterList", + "src": "10515:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", + "typeString": "literal_string \"ERC165: invalid interface id\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 766, + "name": "Identifier", + "src": "10525:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 767, + "name": "Identifier", + "src": "10533:11:1" + }, + { + "attributes": { + "hexvalue": "30786666666666666666", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 4294967295", + "value": "0xffffffff" + }, + "id": 768, + "name": "Literal", + "src": "10548:10:1" + } + ], + "id": 769, + "name": "BinaryOperation", + "src": "10533:25:1" + }, + { + "attributes": { + "hexvalue": "4552433136353a20696e76616c696420696e74657266616365206964", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC165: invalid interface id\"", + "value": "ERC165: invalid interface id" + }, + "id": 770, + "name": "Literal", + "src": "10560:30:1" + } + ], + "id": 771, + "name": "FunctionCall", + "src": "10525:66:1" + } + ], + "id": 772, + "name": "ExpressionStatement", + "src": "10525:66:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 738, + "type": "mapping(bytes4 => bool)", + "value": "_supportedInterfaces" + }, + "id": 773, + "name": "Identifier", + "src": "10601:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 763, + "type": "bytes4", + "value": "interfaceId" + }, + "id": 774, + "name": "Identifier", + "src": "10622:11:1" + } + ], + "id": 775, + "name": "IndexAccess", + "src": "10601:33:1" + }, + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 776, + "name": "Literal", + "src": "10637:4:1" + } + ], + "id": 777, + "name": "Assignment", + "src": "10601:40:1" + } + ], + "id": 778, + "name": "ExpressionStatement", + "src": "10601:40:1" + } + ], + "id": 779, + "name": "Block", + "src": "10515:133:1" + } + ], + "id": 780, + "name": "FunctionDefinition", + "src": "10450:198:1" + } + ], + "id": 781, + "name": "ContractDefinition", + "src": "9215:1435:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 782, + "name": "PragmaDirective", + "src": "10703:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1135 + ], + "name": "SafeMath", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Wrappers over Solidity's arithmetic operations with added overflow\n checks.\n Arithmetic operations in Solidity wrap on overflow. This can easily result\n in bugs, because programmers usually assume that an overflow raises an\n error, which is the standard behavior in high level programming languages.\n `SafeMath` restores this intuition by reverting the transaction when an\n operation overflows.\n Using this library instead of the unchecked operations eliminates an entire\n class of bugs, so it's recommended to use it always." + }, + "id": 783, + "name": "StructuredDocumentation", + "src": "10736:563:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryAdd", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 784, + "name": "StructuredDocumentation", + "src": "11323:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 785, + "name": "ElementaryTypeName", + "src": "11475:7:1" + } + ], + "id": 786, + "name": "VariableDeclaration", + "src": "11475:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 787, + "name": "ElementaryTypeName", + "src": "11486:7:1" + } + ], + "id": 788, + "name": "VariableDeclaration", + "src": "11486:9:1" + } + ], + "id": 789, + "name": "ParameterList", + "src": "11474:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 790, + "name": "ElementaryTypeName", + "src": "11520:4:1" + } + ], + "id": 791, + "name": "VariableDeclaration", + "src": "11520:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 814, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 792, + "name": "ElementaryTypeName", + "src": "11526:7:1" + } + ], + "id": 793, + "name": "VariableDeclaration", + "src": "11526:7:1" + } + ], + "id": 794, + "name": "ParameterList", + "src": "11519:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 796 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 813, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 795, + "name": "ElementaryTypeName", + "src": "11545:7:1" + } + ], + "id": 796, + "name": "VariableDeclaration", + "src": "11545:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 797, + "name": "Identifier", + "src": "11557:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 788, + "type": "uint256", + "value": "b" + }, + "id": 798, + "name": "Identifier", + "src": "11561:1:1" + } + ], + "id": 799, + "name": "BinaryOperation", + "src": "11557:5:1" + } + ], + "id": 800, + "name": "VariableDeclarationStatement", + "src": "11545:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 801, + "name": "Identifier", + "src": "11576:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 786, + "type": "uint256", + "value": "a" + }, + "id": 802, + "name": "Identifier", + "src": "11580:1:1" + } + ], + "id": 803, + "name": "BinaryOperation", + "src": "11576:5:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 804, + "name": "Literal", + "src": "11591:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 805, + "name": "Literal", + "src": "11598:1:1" + } + ], + "id": 806, + "name": "TupleExpression", + "src": "11590:10:1" + } + ], + "id": 807, + "name": "Return", + "src": "11583:17:1" + } + ], + "id": 808, + "name": "IfStatement", + "src": "11572:28:1" + }, + { + "attributes": { + "functionReturnParameters": 794 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 809, + "name": "Literal", + "src": "11618:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 796, + "type": "uint256", + "value": "c" + }, + "id": 810, + "name": "Identifier", + "src": "11624:1:1" + } + ], + "id": 811, + "name": "TupleExpression", + "src": "11617:9:1" + } + ], + "id": 812, + "name": "Return", + "src": "11610:16:1" + } + ], + "id": 813, + "name": "Block", + "src": "11535:98:1" + } + ], + "id": 814, + "name": "FunctionDefinition", + "src": "11459:174:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "trySub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the substraction of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 815, + "name": "StructuredDocumentation", + "src": "11639:135:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 816, + "name": "ElementaryTypeName", + "src": "11795:7:1" + } + ], + "id": 817, + "name": "VariableDeclaration", + "src": "11795:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 818, + "name": "ElementaryTypeName", + "src": "11806:7:1" + } + ], + "id": 819, + "name": "VariableDeclaration", + "src": "11806:9:1" + } + ], + "id": 820, + "name": "ParameterList", + "src": "11794:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 821, + "name": "ElementaryTypeName", + "src": "11840:4:1" + } + ], + "id": 822, + "name": "VariableDeclaration", + "src": "11840:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 841, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 823, + "name": "ElementaryTypeName", + "src": "11846:7:1" + } + ], + "id": 824, + "name": "VariableDeclaration", + "src": "11846:7:1" + } + ], + "id": 825, + "name": "ParameterList", + "src": "11839:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 826, + "name": "Identifier", + "src": "11869:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 827, + "name": "Identifier", + "src": "11873:1:1" + } + ], + "id": 828, + "name": "BinaryOperation", + "src": "11869:5:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 829, + "name": "Literal", + "src": "11884:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 830, + "name": "Literal", + "src": "11891:1:1" + } + ], + "id": 831, + "name": "TupleExpression", + "src": "11883:10:1" + } + ], + "id": 832, + "name": "Return", + "src": "11876:17:1" + } + ], + "id": 833, + "name": "IfStatement", + "src": "11865:28:1" + }, + { + "attributes": { + "functionReturnParameters": 825 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 834, + "name": "Literal", + "src": "11911:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 817, + "type": "uint256", + "value": "a" + }, + "id": 835, + "name": "Identifier", + "src": "11917:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 819, + "type": "uint256", + "value": "b" + }, + "id": 836, + "name": "Identifier", + "src": "11921:1:1" + } + ], + "id": 837, + "name": "BinaryOperation", + "src": "11917:5:1" + } + ], + "id": 838, + "name": "TupleExpression", + "src": "11910:13:1" + } + ], + "id": 839, + "name": "Return", + "src": "11903:20:1" + } + ], + "id": 840, + "name": "Block", + "src": "11855:75:1" + } + ], + "id": 841, + "name": "FunctionDefinition", + "src": "11779:151:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, with an overflow flag.\n _Available since v3.4._" + }, + "id": 842, + "name": "StructuredDocumentation", + "src": "11936:137:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 843, + "name": "ElementaryTypeName", + "src": "12094:7:1" + } + ], + "id": 844, + "name": "VariableDeclaration", + "src": "12094:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 845, + "name": "ElementaryTypeName", + "src": "12105:7:1" + } + ], + "id": 846, + "name": "VariableDeclaration", + "src": "12105:9:1" + } + ], + "id": 847, + "name": "ParameterList", + "src": "12093:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 848, + "name": "ElementaryTypeName", + "src": "12139:4:1" + } + ], + "id": 849, + "name": "VariableDeclaration", + "src": "12139:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 882, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 850, + "name": "ElementaryTypeName", + "src": "12145:7:1" + } + ], + "id": 851, + "name": "VariableDeclaration", + "src": "12145:7:1" + } + ], + "id": 852, + "name": "ParameterList", + "src": "12138:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 853, + "name": "Identifier", + "src": "12386:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 854, + "name": "Literal", + "src": "12391:1:1" + } + ], + "id": 855, + "name": "BinaryOperation", + "src": "12386:6:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 856, + "name": "Literal", + "src": "12402:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 857, + "name": "Literal", + "src": "12408:1:1" + } + ], + "id": 858, + "name": "TupleExpression", + "src": "12401:9:1" + } + ], + "id": 859, + "name": "Return", + "src": "12394:16:1" + } + ], + "id": 860, + "name": "IfStatement", + "src": "12382:28:1" + }, + { + "attributes": { + "assignments": [ + 862 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 881, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 861, + "name": "ElementaryTypeName", + "src": "12420:7:1" + } + ], + "id": 862, + "name": "VariableDeclaration", + "src": "12420:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 863, + "name": "Identifier", + "src": "12432:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 864, + "name": "Identifier", + "src": "12436:1:1" + } + ], + "id": 865, + "name": "BinaryOperation", + "src": "12432:5:1" + } + ], + "id": 866, + "name": "VariableDeclarationStatement", + "src": "12420:17:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 867, + "name": "Identifier", + "src": "12451:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 844, + "type": "uint256", + "value": "a" + }, + "id": 868, + "name": "Identifier", + "src": "12455:1:1" + } + ], + "id": 869, + "name": "BinaryOperation", + "src": "12451:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 846, + "type": "uint256", + "value": "b" + }, + "id": 870, + "name": "Identifier", + "src": "12460:1:1" + } + ], + "id": 871, + "name": "BinaryOperation", + "src": "12451:10:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 872, + "name": "Literal", + "src": "12471:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 873, + "name": "Literal", + "src": "12478:1:1" + } + ], + "id": 874, + "name": "TupleExpression", + "src": "12470:10:1" + } + ], + "id": 875, + "name": "Return", + "src": "12463:17:1" + } + ], + "id": 876, + "name": "IfStatement", + "src": "12447:33:1" + }, + { + "attributes": { + "functionReturnParameters": 852 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 877, + "name": "Literal", + "src": "12498:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 862, + "type": "uint256", + "value": "c" + }, + "id": 878, + "name": "Identifier", + "src": "12504:1:1" + } + ], + "id": 879, + "name": "TupleExpression", + "src": "12497:9:1" + } + ], + "id": 880, + "name": "Return", + "src": "12490:16:1" + } + ], + "id": 881, + "name": "Block", + "src": "12154:359:1" + } + ], + "id": 882, + "name": "FunctionDefinition", + "src": "12078:435:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryDiv", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the division of two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 883, + "name": "StructuredDocumentation", + "src": "12519:138:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 884, + "name": "ElementaryTypeName", + "src": "12678:7:1" + } + ], + "id": 885, + "name": "VariableDeclaration", + "src": "12678:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 886, + "name": "ElementaryTypeName", + "src": "12689:7:1" + } + ], + "id": 887, + "name": "VariableDeclaration", + "src": "12689:9:1" + } + ], + "id": 888, + "name": "ParameterList", + "src": "12677:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 889, + "name": "ElementaryTypeName", + "src": "12723:4:1" + } + ], + "id": 890, + "name": "VariableDeclaration", + "src": "12723:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 909, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 891, + "name": "ElementaryTypeName", + "src": "12729:7:1" + } + ], + "id": 892, + "name": "VariableDeclaration", + "src": "12729:7:1" + } + ], + "id": 893, + "name": "ParameterList", + "src": "12722:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 894, + "name": "Identifier", + "src": "12752:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 895, + "name": "Literal", + "src": "12757:1:1" + } + ], + "id": 896, + "name": "BinaryOperation", + "src": "12752:6:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 897, + "name": "Literal", + "src": "12768:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 898, + "name": "Literal", + "src": "12775:1:1" + } + ], + "id": 899, + "name": "TupleExpression", + "src": "12767:10:1" + } + ], + "id": 900, + "name": "Return", + "src": "12760:17:1" + } + ], + "id": 901, + "name": "IfStatement", + "src": "12748:29:1" + }, + { + "attributes": { + "functionReturnParameters": 893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 902, + "name": "Literal", + "src": "12795:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 885, + "type": "uint256", + "value": "a" + }, + "id": 903, + "name": "Identifier", + "src": "12801:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 887, + "type": "uint256", + "value": "b" + }, + "id": 904, + "name": "Identifier", + "src": "12805:1:1" + } + ], + "id": 905, + "name": "BinaryOperation", + "src": "12801:5:1" + } + ], + "id": 906, + "name": "TupleExpression", + "src": "12794:13:1" + } + ], + "id": 907, + "name": "Return", + "src": "12787:20:1" + } + ], + "id": 908, + "name": "Block", + "src": "12738:76:1" + } + ], + "id": 909, + "name": "FunctionDefinition", + "src": "12662:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryMod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag.\n _Available since v3.4._" + }, + "id": 910, + "name": "StructuredDocumentation", + "src": "12820:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 911, + "name": "ElementaryTypeName", + "src": "12989:7:1" + } + ], + "id": 912, + "name": "VariableDeclaration", + "src": "12989:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 913, + "name": "ElementaryTypeName", + "src": "13000:7:1" + } + ], + "id": 914, + "name": "VariableDeclaration", + "src": "13000:9:1" + } + ], + "id": 915, + "name": "ParameterList", + "src": "12988:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 916, + "name": "ElementaryTypeName", + "src": "13034:4:1" + } + ], + "id": 917, + "name": "VariableDeclaration", + "src": "13034:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 936, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 918, + "name": "ElementaryTypeName", + "src": "13040:7:1" + } + ], + "id": 919, + "name": "VariableDeclaration", + "src": "13040:7:1" + } + ], + "id": 920, + "name": "ParameterList", + "src": "13033:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 921, + "name": "Identifier", + "src": "13063:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 922, + "name": "Literal", + "src": "13068:1:1" + } + ], + "id": 923, + "name": "BinaryOperation", + "src": "13063:6:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 924, + "name": "Literal", + "src": "13079:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 925, + "name": "Literal", + "src": "13086:1:1" + } + ], + "id": 926, + "name": "TupleExpression", + "src": "13078:10:1" + } + ], + "id": 927, + "name": "Return", + "src": "13071:17:1" + } + ], + "id": 928, + "name": "IfStatement", + "src": "13059:29:1" + }, + { + "attributes": { + "functionReturnParameters": 920 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,uint256)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 929, + "name": "Literal", + "src": "13106:4:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 912, + "type": "uint256", + "value": "a" + }, + "id": 930, + "name": "Identifier", + "src": "13112:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 914, + "type": "uint256", + "value": "b" + }, + "id": 931, + "name": "Identifier", + "src": "13116:1:1" + } + ], + "id": 932, + "name": "BinaryOperation", + "src": "13112:5:1" + } + ], + "id": 933, + "name": "TupleExpression", + "src": "13105:13:1" + } + ], + "id": 934, + "name": "Return", + "src": "13098:20:1" + } + ], + "id": 935, + "name": "Block", + "src": "13049:76:1" + } + ], + "id": 936, + "name": "FunctionDefinition", + "src": "12973:152:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the addition of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `+` operator.\n Requirements:\n - Addition cannot overflow." + }, + "id": 937, + "name": "StructuredDocumentation", + "src": "13131:224:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 938, + "name": "ElementaryTypeName", + "src": "13373:7:1" + } + ], + "id": 939, + "name": "VariableDeclaration", + "src": "13373:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 940, + "name": "ElementaryTypeName", + "src": "13384:7:1" + } + ], + "id": 941, + "name": "VariableDeclaration", + "src": "13384:9:1" + } + ], + "id": 942, + "name": "ParameterList", + "src": "13372:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 962, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 943, + "name": "ElementaryTypeName", + "src": "13418:7:1" + } + ], + "id": 944, + "name": "VariableDeclaration", + "src": "13418:7:1" + } + ], + "id": 945, + "name": "ParameterList", + "src": "13417:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 947 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 961, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 946, + "name": "ElementaryTypeName", + "src": "13437:7:1" + } + ], + "id": 947, + "name": "VariableDeclaration", + "src": "13437:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 948, + "name": "Identifier", + "src": "13449:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 941, + "type": "uint256", + "value": "b" + }, + "id": 949, + "name": "Identifier", + "src": "13453:1:1" + } + ], + "id": 950, + "name": "BinaryOperation", + "src": "13449:5:1" + } + ], + "id": 951, + "name": "VariableDeclarationStatement", + "src": "13437:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_30cc447bcc13b3e22b45cef0dd9b0b514842d836dd9b6eb384e20dedfb47723a", + "typeString": "literal_string \"SafeMath: addition overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 952, + "name": "Identifier", + "src": "13464:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 953, + "name": "Identifier", + "src": "13472:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 939, + "type": "uint256", + "value": "a" + }, + "id": 954, + "name": "Identifier", + "src": "13477:1:1" + } + ], + "id": 955, + "name": "BinaryOperation", + "src": "13472:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206164646974696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: addition overflow\"", + "value": "SafeMath: addition overflow" + }, + "id": 956, + "name": "Literal", + "src": "13480:29:1" + } + ], + "id": 957, + "name": "FunctionCall", + "src": "13464:46:1" + } + ], + "id": 958, + "name": "ExpressionStatement", + "src": "13464:46:1" + }, + { + "attributes": { + "functionReturnParameters": 945 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 947, + "type": "uint256", + "value": "c" + }, + "id": 959, + "name": "Identifier", + "src": "13527:1:1" + } + ], + "id": 960, + "name": "Return", + "src": "13520:8:1" + } + ], + "id": 961, + "name": "Block", + "src": "13427:108:1" + } + ], + "id": 962, + "name": "FunctionDefinition", + "src": "13360:175:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting on\n overflow (when the result is negative).\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 963, + "name": "StructuredDocumentation", + "src": "13541:260:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 964, + "name": "ElementaryTypeName", + "src": "13819:7:1" + } + ], + "id": 965, + "name": "VariableDeclaration", + "src": "13819:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 966, + "name": "ElementaryTypeName", + "src": "13830:7:1" + } + ], + "id": 967, + "name": "VariableDeclaration", + "src": "13830:9:1" + } + ], + "id": 968, + "name": "ParameterList", + "src": "13818:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 984, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 969, + "name": "ElementaryTypeName", + "src": "13864:7:1" + } + ], + "id": 970, + "name": "VariableDeclaration", + "src": "13864:7:1" + } + ], + "id": 971, + "name": "ParameterList", + "src": "13863:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_50b058e9b5320e58880d88223c9801cd9eecdcf90323d5c2318bc1b6b916e862", + "typeString": "literal_string \"SafeMath: subtraction overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 972, + "name": "Identifier", + "src": "13883:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 973, + "name": "Identifier", + "src": "13891:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 974, + "name": "Identifier", + "src": "13896:1:1" + } + ], + "id": 975, + "name": "BinaryOperation", + "src": "13891:6:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a207375627472616374696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: subtraction overflow\"", + "value": "SafeMath: subtraction overflow" + }, + "id": 976, + "name": "Literal", + "src": "13899:32:1" + } + ], + "id": 977, + "name": "FunctionCall", + "src": "13883:49:1" + } + ], + "id": 978, + "name": "ExpressionStatement", + "src": "13883:49:1" + }, + { + "attributes": { + "functionReturnParameters": 971 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 965, + "type": "uint256", + "value": "a" + }, + "id": 979, + "name": "Identifier", + "src": "13949:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 967, + "type": "uint256", + "value": "b" + }, + "id": 980, + "name": "Identifier", + "src": "13953:1:1" + } + ], + "id": 981, + "name": "BinaryOperation", + "src": "13949:5:1" + } + ], + "id": 982, + "name": "Return", + "src": "13942:12:1" + } + ], + "id": 983, + "name": "Block", + "src": "13873:88:1" + } + ], + "id": 984, + "name": "FunctionDefinition", + "src": "13806:155:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mul", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the multiplication of two unsigned integers, reverting on\n overflow.\n Counterpart to Solidity's `*` operator.\n Requirements:\n - Multiplication cannot overflow." + }, + "id": 985, + "name": "StructuredDocumentation", + "src": "13967:236:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 986, + "name": "ElementaryTypeName", + "src": "14221:7:1" + } + ], + "id": 987, + "name": "VariableDeclaration", + "src": "14221:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 988, + "name": "ElementaryTypeName", + "src": "14232:7:1" + } + ], + "id": 989, + "name": "VariableDeclaration", + "src": "14232:9:1" + } + ], + "id": 990, + "name": "ParameterList", + "src": "14220:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1018, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 991, + "name": "ElementaryTypeName", + "src": "14266:7:1" + } + ], + "id": 992, + "name": "VariableDeclaration", + "src": "14266:7:1" + } + ], + "id": 993, + "name": "ParameterList", + "src": "14265:9:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 994, + "name": "Identifier", + "src": "14289:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 995, + "name": "Literal", + "src": "14294:1:1" + } + ], + "id": 996, + "name": "BinaryOperation", + "src": "14289:6:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 997, + "name": "Literal", + "src": "14304:1:1" + } + ], + "id": 998, + "name": "Return", + "src": "14297:8:1" + } + ], + "id": 999, + "name": "IfStatement", + "src": "14285:20:1" + }, + { + "attributes": { + "assignments": [ + 1001 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "c", + "scope": 1017, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1000, + "name": "ElementaryTypeName", + "src": "14315:7:1" + } + ], + "id": 1001, + "name": "VariableDeclaration", + "src": "14315:9:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "*", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1002, + "name": "Identifier", + "src": "14327:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1003, + "name": "Identifier", + "src": "14331:1:1" + } + ], + "id": 1004, + "name": "BinaryOperation", + "src": "14327:5:1" + } + ], + "id": 1005, + "name": "VariableDeclarationStatement", + "src": "14315:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9113bb53c2876a3805b2c9242029423fc540a728243ce887ab24c82cf119fba3", + "typeString": "literal_string \"SafeMath: multiplication overflow\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1006, + "name": "Identifier", + "src": "14342:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1007, + "name": "Identifier", + "src": "14350:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 987, + "type": "uint256", + "value": "a" + }, + "id": 1008, + "name": "Identifier", + "src": "14354:1:1" + } + ], + "id": 1009, + "name": "BinaryOperation", + "src": "14350:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 989, + "type": "uint256", + "value": "b" + }, + "id": 1010, + "name": "Identifier", + "src": "14359:1:1" + } + ], + "id": 1011, + "name": "BinaryOperation", + "src": "14350:10:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: multiplication overflow\"", + "value": "SafeMath: multiplication overflow" + }, + "id": 1012, + "name": "Literal", + "src": "14362:35:1" + } + ], + "id": 1013, + "name": "FunctionCall", + "src": "14342:56:1" + } + ], + "id": 1014, + "name": "ExpressionStatement", + "src": "14342:56:1" + }, + { + "attributes": { + "functionReturnParameters": 993 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1001, + "type": "uint256", + "value": "c" + }, + "id": 1015, + "name": "Identifier", + "src": "14415:1:1" + } + ], + "id": 1016, + "name": "Return", + "src": "14408:8:1" + } + ], + "id": 1017, + "name": "Block", + "src": "14275:148:1" + } + ], + "id": 1018, + "name": "FunctionDefinition", + "src": "14208:215:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting on\n division by zero. The result is rounded towards zero.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1019, + "name": "StructuredDocumentation", + "src": "14429:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1020, + "name": "ElementaryTypeName", + "src": "14900:7:1" + } + ], + "id": 1021, + "name": "VariableDeclaration", + "src": "14900:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1022, + "name": "ElementaryTypeName", + "src": "14911:7:1" + } + ], + "id": 1023, + "name": "VariableDeclaration", + "src": "14911:9:1" + } + ], + "id": 1024, + "name": "ParameterList", + "src": "14899:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1040, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1025, + "name": "ElementaryTypeName", + "src": "14945:7:1" + } + ], + "id": 1026, + "name": "VariableDeclaration", + "src": "14945:7:1" + } + ], + "id": 1027, + "name": "ParameterList", + "src": "14944:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5b7cc70dda4dc2143e5adb63bd5d1f349504f461dbdfd9bc76fac1f8ca6d019f", + "typeString": "literal_string \"SafeMath: division by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1028, + "name": "Identifier", + "src": "14964:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1029, + "name": "Identifier", + "src": "14972:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1030, + "name": "Literal", + "src": "14976:1:1" + } + ], + "id": 1031, + "name": "BinaryOperation", + "src": "14972:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206469766973696f6e206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: division by zero\"", + "value": "SafeMath: division by zero" + }, + "id": 1032, + "name": "Literal", + "src": "14979:28:1" + } + ], + "id": 1033, + "name": "FunctionCall", + "src": "14964:44:1" + } + ], + "id": 1034, + "name": "ExpressionStatement", + "src": "14964:44:1" + }, + { + "attributes": { + "functionReturnParameters": 1027 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1021, + "type": "uint256", + "value": "a" + }, + "id": 1035, + "name": "Identifier", + "src": "15025:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1023, + "type": "uint256", + "value": "b" + }, + "id": 1036, + "name": "Identifier", + "src": "15029:1:1" + } + ], + "id": 1037, + "name": "BinaryOperation", + "src": "15025:5:1" + } + ], + "id": 1038, + "name": "Return", + "src": "15018:12:1" + } + ], + "id": 1039, + "name": "Block", + "src": "14954:83:1" + } + ], + "id": 1040, + "name": "FunctionDefinition", + "src": "14887:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting when dividing by zero.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1041, + "name": "StructuredDocumentation", + "src": "15043:442:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1042, + "name": "ElementaryTypeName", + "src": "15503:7:1" + } + ], + "id": 1043, + "name": "VariableDeclaration", + "src": "15503:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1044, + "name": "ElementaryTypeName", + "src": "15514:7:1" + } + ], + "id": 1045, + "name": "VariableDeclaration", + "src": "15514:9:1" + } + ], + "id": 1046, + "name": "ParameterList", + "src": "15502:22:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1062, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1047, + "name": "ElementaryTypeName", + "src": "15548:7:1" + } + ], + "id": 1048, + "name": "VariableDeclaration", + "src": "15548:7:1" + } + ], + "id": 1049, + "name": "ParameterList", + "src": "15547:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_726e51f7b81fce0a68f5f214f445e275313b20b1633f08ce954ee39abf8d7832", + "typeString": "literal_string \"SafeMath: modulo by zero\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1050, + "name": "Identifier", + "src": "15567:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1051, + "name": "Identifier", + "src": "15575:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1052, + "name": "Literal", + "src": "15579:1:1" + } + ], + "id": 1053, + "name": "BinaryOperation", + "src": "15575:5:1" + }, + { + "attributes": { + "hexvalue": "536166654d6174683a206d6f64756c6f206279207a65726f", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"SafeMath: modulo by zero\"", + "value": "SafeMath: modulo by zero" + }, + "id": 1054, + "name": "Literal", + "src": "15582:26:1" + } + ], + "id": 1055, + "name": "FunctionCall", + "src": "15567:42:1" + } + ], + "id": 1056, + "name": "ExpressionStatement", + "src": "15567:42:1" + }, + { + "attributes": { + "functionReturnParameters": 1049 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1043, + "type": "uint256", + "value": "a" + }, + "id": 1057, + "name": "Identifier", + "src": "15626:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1045, + "type": "uint256", + "value": "b" + }, + "id": 1058, + "name": "Identifier", + "src": "15630:1:1" + } + ], + "id": 1059, + "name": "BinaryOperation", + "src": "15626:5:1" + } + ], + "id": 1060, + "name": "Return", + "src": "15619:12:1" + } + ], + "id": 1061, + "name": "Block", + "src": "15557:81:1" + } + ], + "id": 1062, + "name": "FunctionDefinition", + "src": "15490:148:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sub", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the subtraction of two unsigned integers, reverting with custom message on\n overflow (when the result is negative).\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {trySub}.\n Counterpart to Solidity's `-` operator.\n Requirements:\n - Subtraction cannot overflow." + }, + "id": 1063, + "name": "StructuredDocumentation", + "src": "15644:453:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1064, + "name": "ElementaryTypeName", + "src": "16115:7:1" + } + ], + "id": 1065, + "name": "VariableDeclaration", + "src": "16115:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1066, + "name": "ElementaryTypeName", + "src": "16126:7:1" + } + ], + "id": 1067, + "name": "VariableDeclaration", + "src": "16126:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1086, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1068, + "name": "ElementaryTypeName", + "src": "16137:6:1" + } + ], + "id": 1069, + "name": "VariableDeclaration", + "src": "16137:26:1" + } + ], + "id": 1070, + "name": "ParameterList", + "src": "16114:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1086, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1071, + "name": "ElementaryTypeName", + "src": "16188:7:1" + } + ], + "id": 1072, + "name": "VariableDeclaration", + "src": "16188:7:1" + } + ], + "id": 1073, + "name": "ParameterList", + "src": "16187:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1074, + "name": "Identifier", + "src": "16207:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "<=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1075, + "name": "Identifier", + "src": "16215:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1076, + "name": "Identifier", + "src": "16220:1:1" + } + ], + "id": 1077, + "name": "BinaryOperation", + "src": "16215:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1069, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1078, + "name": "Identifier", + "src": "16223:12:1" + } + ], + "id": 1079, + "name": "FunctionCall", + "src": "16207:29:1" + } + ], + "id": 1080, + "name": "ExpressionStatement", + "src": "16207:29:1" + }, + { + "attributes": { + "functionReturnParameters": 1073 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1065, + "type": "uint256", + "value": "a" + }, + "id": 1081, + "name": "Identifier", + "src": "16253:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1067, + "type": "uint256", + "value": "b" + }, + "id": 1082, + "name": "Identifier", + "src": "16257:1:1" + } + ], + "id": 1083, + "name": "BinaryOperation", + "src": "16253:5:1" + } + ], + "id": 1084, + "name": "Return", + "src": "16246:12:1" + } + ], + "id": 1085, + "name": "Block", + "src": "16197:68:1" + } + ], + "id": 1086, + "name": "FunctionDefinition", + "src": "16102:163:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "div", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the integer division of two unsigned integers, reverting with custom message on\n division by zero. The result is rounded towards zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryDiv}.\n Counterpart to Solidity's `/` operator. Note: this function uses a\n `revert` opcode (which leaves remaining gas untouched) while Solidity\n uses an invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1087, + "name": "StructuredDocumentation", + "src": "16271:646:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1088, + "name": "ElementaryTypeName", + "src": "16935:7:1" + } + ], + "id": 1089, + "name": "VariableDeclaration", + "src": "16935:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1090, + "name": "ElementaryTypeName", + "src": "16946:7:1" + } + ], + "id": 1091, + "name": "VariableDeclaration", + "src": "16946:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1110, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1092, + "name": "ElementaryTypeName", + "src": "16957:6:1" + } + ], + "id": 1093, + "name": "VariableDeclaration", + "src": "16957:26:1" + } + ], + "id": 1094, + "name": "ParameterList", + "src": "16934:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1095, + "name": "ElementaryTypeName", + "src": "17008:7:1" + } + ], + "id": 1096, + "name": "VariableDeclaration", + "src": "17008:7:1" + } + ], + "id": 1097, + "name": "ParameterList", + "src": "17007:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1098, + "name": "Identifier", + "src": "17027:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1099, + "name": "Identifier", + "src": "17035:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1100, + "name": "Literal", + "src": "17039:1:1" + } + ], + "id": 1101, + "name": "BinaryOperation", + "src": "17035:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1093, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1102, + "name": "Identifier", + "src": "17042:12:1" + } + ], + "id": 1103, + "name": "FunctionCall", + "src": "17027:28:1" + } + ], + "id": 1104, + "name": "ExpressionStatement", + "src": "17027:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1097 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1089, + "type": "uint256", + "value": "a" + }, + "id": 1105, + "name": "Identifier", + "src": "17072:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1091, + "type": "uint256", + "value": "b" + }, + "id": 1106, + "name": "Identifier", + "src": "17076:1:1" + } + ], + "id": 1107, + "name": "BinaryOperation", + "src": "17072:5:1" + } + ], + "id": 1108, + "name": "Return", + "src": "17065:12:1" + } + ], + "id": 1109, + "name": "Block", + "src": "17017:67:1" + } + ], + "id": 1110, + "name": "FunctionDefinition", + "src": "16922:162:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "mod", + "scope": 1135, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),\n reverting with custom message when dividing by zero.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryMod}.\n Counterpart to Solidity's `%` operator. This function uses a `revert`\n opcode (which leaves remaining gas untouched) while Solidity uses an\n invalid opcode to revert (consuming all remaining gas).\n Requirements:\n - The divisor cannot be zero." + }, + "id": 1111, + "name": "StructuredDocumentation", + "src": "17090:635:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "a", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1112, + "name": "ElementaryTypeName", + "src": "17743:7:1" + } + ], + "id": 1113, + "name": "VariableDeclaration", + "src": "17743:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "b", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1114, + "name": "ElementaryTypeName", + "src": "17754:7:1" + } + ], + "id": 1115, + "name": "VariableDeclaration", + "src": "17754:9:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1134, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1116, + "name": "ElementaryTypeName", + "src": "17765:6:1" + } + ], + "id": 1117, + "name": "VariableDeclaration", + "src": "17765:26:1" + } + ], + "id": 1118, + "name": "ParameterList", + "src": "17742:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1134, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1119, + "name": "ElementaryTypeName", + "src": "17816:7:1" + } + ], + "id": 1120, + "name": "VariableDeclaration", + "src": "17816:7:1" + } + ], + "id": 1121, + "name": "ParameterList", + "src": "17815:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1122, + "name": "Identifier", + "src": "17835:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1123, + "name": "Identifier", + "src": "17843:1:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1124, + "name": "Literal", + "src": "17847:1:1" + } + ], + "id": 1125, + "name": "BinaryOperation", + "src": "17843:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1117, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1126, + "name": "Identifier", + "src": "17850:12:1" + } + ], + "id": 1127, + "name": "FunctionCall", + "src": "17835:28:1" + } + ], + "id": 1128, + "name": "ExpressionStatement", + "src": "17835:28:1" + }, + { + "attributes": { + "functionReturnParameters": 1121 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1113, + "type": "uint256", + "value": "a" + }, + "id": 1129, + "name": "Identifier", + "src": "17880:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1115, + "type": "uint256", + "value": "b" + }, + "id": 1130, + "name": "Identifier", + "src": "17884:1:1" + } + ], + "id": 1131, + "name": "BinaryOperation", + "src": "17880:5:1" + } + ], + "id": 1132, + "name": "Return", + "src": "17873:12:1" + } + ], + "id": 1133, + "name": "Block", + "src": "17825:67:1" + } + ], + "id": 1134, + "name": "FunctionDefinition", + "src": "17730:162:1" + } + ], + "id": 1135, + "name": "ContractDefinition", + "src": "11300:6594:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".2", + "<", + "0.8", + ".0" + ] + }, + "id": 1136, + "name": "PragmaDirective", + "src": "17947:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1430 + ], + "name": "Address", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Collection of functions related to the address type" + }, + "id": 1137, + "name": "StructuredDocumentation", + "src": "17980:67:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isContract", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if `account` is a contract.\n [IMPORTANT]\n ====\n It is unsafe to assume that an address for which this function returns\n false is an externally-owned account (EOA) and not a contract.\n Among others, `isContract` will return false for the following\n types of addresses:\n - an externally-owned account\n - a contract in construction\n - an address where a contract will be created\n - an address where a contract lived, but was destroyed\n ====" + }, + "id": 1138, + "name": "StructuredDocumentation", + "src": "18070:565:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "account", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1139, + "name": "ElementaryTypeName", + "src": "18660:7:1" + } + ], + "id": 1140, + "name": "VariableDeclaration", + "src": "18660:15:1" + } + ], + "id": 1141, + "name": "ParameterList", + "src": "18659:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1154, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1142, + "name": "ElementaryTypeName", + "src": "18700:4:1" + } + ], + "id": 1143, + "name": "VariableDeclaration", + "src": "18700:4:1" + } + ], + "id": 1144, + "name": "ParameterList", + "src": "18699:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1146 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "size", + "scope": 1153, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1145, + "name": "ElementaryTypeName", + "src": "18903:7:1" + } + ], + "id": 1146, + "name": "VariableDeclaration", + "src": "18903:12:1" + } + ], + "id": 1147, + "name": "VariableDeclarationStatement", + "src": "18903:12:1" + }, + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1140, + "isOffset": false, + "isSlot": false, + "src": "19012:7:1", + "valueSize": 1 + }, + { + "declaration": 1146, + "isOffset": false, + "isSlot": false, + "src": "18992:4:1", + "valueSize": 1 + } + ], + "operations": "{ size := extcodesize(account) }" + }, + "children": [], + "id": 1148, + "name": "InlineAssembly", + "src": "18981:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1144 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1146, + "type": "uint256", + "value": "size" + }, + "id": 1149, + "name": "Identifier", + "src": "19038:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1150, + "name": "Literal", + "src": "19045:1:1" + } + ], + "id": 1151, + "name": "BinaryOperation", + "src": "19038:8:1" + } + ], + "id": 1152, + "name": "Return", + "src": "19031:15:1" + } + ], + "id": 1153, + "name": "Block", + "src": "18706:347:1" + } + ], + "id": 1154, + "name": "FunctionDefinition", + "src": "18640:413:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "sendValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Replacement for Solidity's `transfer`: sends `amount` wei to\n `recipient`, forwarding all available gas and reverting on errors.\n https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost\n of certain opcodes, possibly making contracts go over the 2300 gas limit\n imposed by `transfer`, making them unable to receive funds via\n `transfer`. {sendValue} removes this limitation.\n https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].\n IMPORTANT: because control is transferred to `recipient`, care must be\n taken to not create reentrancy vulnerabilities. Consider using\n {ReentrancyGuard} or the\n https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]." + }, + "id": 1155, + "name": "StructuredDocumentation", + "src": "19059:906:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "recipient", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "address payable", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "payable", + "type": "address payable" + }, + "id": 1156, + "name": "ElementaryTypeName", + "src": "19989:15:1" + } + ], + "id": 1157, + "name": "VariableDeclaration", + "src": "19989:25:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "amount", + "scope": 1188, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1158, + "name": "ElementaryTypeName", + "src": "20016:7:1" + } + ], + "id": 1159, + "name": "VariableDeclaration", + "src": "20016:14:1" + } + ], + "id": 1160, + "name": "ParameterList", + "src": "19988:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 1161, + "name": "ParameterList", + "src": "20041:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5597a22abd0ef5332f8053862eb236db7590f17e2b93a53f63a103becfb561f9", + "typeString": "literal_string \"Address: insufficient balance\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1162, + "name": "Identifier", + "src": "20051:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1163, + "name": "ElementaryTypeName", + "src": "20059:7:1" + } + ], + "id": 1164, + "name": "ElementaryTypeNameExpression", + "src": "20059:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1165, + "name": "Identifier", + "src": "20067:4:1" + } + ], + "id": 1166, + "name": "FunctionCall", + "src": "20059:13:1" + } + ], + "id": 1167, + "name": "MemberAccess", + "src": "20059:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1168, + "name": "Identifier", + "src": "20084:6:1" + } + ], + "id": 1169, + "name": "BinaryOperation", + "src": "20059:31:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e6365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance\"", + "value": "Address: insufficient balance" + }, + "id": 1170, + "name": "Literal", + "src": "20092:31:1" + } + ], + "id": 1171, + "name": "FunctionCall", + "src": "20051:73:1" + } + ], + "id": 1172, + "name": "ExpressionStatement", + "src": "20051:73:1" + }, + { + "attributes": { + "assignments": [ + 1174, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1187, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1173, + "name": "ElementaryTypeName", + "src": "20213:4:1" + } + ], + "id": 1174, + "name": "VariableDeclaration", + "src": "20213:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1157, + "type": "address payable", + "value": "recipient" + }, + "id": 1175, + "name": "Identifier", + "src": "20231:9:1" + } + ], + "id": 1176, + "name": "MemberAccess", + "src": "20231:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1159, + "type": "uint256", + "value": "amount" + }, + "id": 1177, + "name": "Identifier", + "src": "20254:6:1" + } + ], + "id": 1178, + "name": "FunctionCallOptions", + "src": "20231:31:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 1179, + "name": "Literal", + "src": "20263:2:1" + } + ], + "id": 1180, + "name": "FunctionCall", + "src": "20231:35:1" + } + ], + "id": 1181, + "name": "VariableDeclarationStatement", + "src": "20212:54:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_51ddaa38748c0a1144620fb5bfe8edab31ea437571ad591a7734bbfd0429aeae", + "typeString": "literal_string \"Address: unable to send value, recipient may have reverted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1182, + "name": "Identifier", + "src": "20276:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1174, + "type": "bool", + "value": "success" + }, + "id": 1183, + "name": "Identifier", + "src": "20284:7:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: unable to send value, recipient may have reverted\"", + "value": "Address: unable to send value, recipient may have reverted" + }, + "id": 1184, + "name": "Literal", + "src": "20293:60:1" + } + ], + "id": 1185, + "name": "FunctionCall", + "src": "20276:78:1" + } + ], + "id": 1186, + "name": "ExpressionStatement", + "src": "20276:78:1" + } + ], + "id": 1187, + "name": "Block", + "src": "20041:320:1" + } + ], + "id": 1188, + "name": "FunctionDefinition", + "src": "19970:391:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Performs a Solidity function call using a low level `call`. A\n plain`call` is an unsafe replacement for a function call: use this\n function instead.\n If `target` reverts with a revert reason, it is bubbled up by this\n function (like regular Solidity function calls).\n Returns the raw returned data. To convert to the expected return value,\n use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].\n Requirements:\n - `target` must be a contract.\n - calling `target` with `data` must not revert.\n _Available since v3.1._" + }, + "id": 1189, + "name": "StructuredDocumentation", + "src": "20367:730:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1205, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1190, + "name": "ElementaryTypeName", + "src": "21124:7:1" + } + ], + "id": 1191, + "name": "VariableDeclaration", + "src": "21124:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1192, + "name": "ElementaryTypeName", + "src": "21140:5:1" + } + ], + "id": 1193, + "name": "VariableDeclaration", + "src": "21140:17:1" + } + ], + "id": 1194, + "name": "ParameterList", + "src": "21123:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1205, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1195, + "name": "ElementaryTypeName", + "src": "21177:5:1" + } + ], + "id": 1196, + "name": "VariableDeclaration", + "src": "21177:12:1" + } + ], + "id": 1197, + "name": "ParameterList", + "src": "21176:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1197 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_24d7ab5d382116e64324f19950ca9340b8af1ddeb09a8d026e0a3c6a01dcc9df", + "typeString": "literal_string \"Address: low-level call failed\"" + } + ], + "overloadedDeclarations": [ + 1205, + 1225 + ], + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionCall" + }, + "id": 1198, + "name": "Identifier", + "src": "21206:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1191, + "type": "address", + "value": "target" + }, + "id": 1199, + "name": "Identifier", + "src": "21219:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1193, + "type": "bytes memory", + "value": "data" + }, + "id": 1200, + "name": "Identifier", + "src": "21227:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call failed\"", + "value": "Address: low-level call failed" + }, + "id": 1201, + "name": "Literal", + "src": "21233:32:1" + } + ], + "id": 1202, + "name": "FunctionCall", + "src": "21206:60:1" + } + ], + "id": 1203, + "name": "Return", + "src": "21199:67:1" + } + ], + "id": 1204, + "name": "Block", + "src": "21191:82:1" + } + ], + "id": 1205, + "name": "FunctionDefinition", + "src": "21102:171:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with\n `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1206, + "name": "StructuredDocumentation", + "src": "21279:211:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1225, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1207, + "name": "ElementaryTypeName", + "src": "21517:7:1" + } + ], + "id": 1208, + "name": "VariableDeclaration", + "src": "21517:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1209, + "name": "ElementaryTypeName", + "src": "21533:5:1" + } + ], + "id": 1210, + "name": "VariableDeclaration", + "src": "21533:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1211, + "name": "ElementaryTypeName", + "src": "21552:6:1" + } + ], + "id": 1212, + "name": "VariableDeclaration", + "src": "21552:26:1" + } + ], + "id": 1213, + "name": "ParameterList", + "src": "21516:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1225, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1214, + "name": "ElementaryTypeName", + "src": "21598:5:1" + } + ], + "id": 1215, + "name": "VariableDeclaration", + "src": "21598:12:1" + } + ], + "id": 1216, + "name": "ParameterList", + "src": "21597:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1216 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1217, + "name": "Identifier", + "src": "21629:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1208, + "type": "address", + "value": "target" + }, + "id": 1218, + "name": "Identifier", + "src": "21651:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1210, + "type": "bytes memory", + "value": "data" + }, + "id": 1219, + "name": "Identifier", + "src": "21659:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1220, + "name": "Literal", + "src": "21665:1:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1212, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1221, + "name": "Identifier", + "src": "21668:12:1" + } + ], + "id": 1222, + "name": "FunctionCall", + "src": "21629:52:1" + } + ], + "id": 1223, + "name": "Return", + "src": "21622:59:1" + } + ], + "id": 1224, + "name": "Block", + "src": "21612:76:1" + } + ], + "id": 1225, + "name": "FunctionDefinition", + "src": "21495:193:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but also transferring `value` wei to `target`.\n Requirements:\n - the calling contract must have an ETH balance of at least `value`.\n - the called Solidity function must be `payable`.\n _Available since v3.1._" + }, + "id": 1226, + "name": "StructuredDocumentation", + "src": "21694:351:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1227, + "name": "ElementaryTypeName", + "src": "22081:7:1" + } + ], + "id": 1228, + "name": "VariableDeclaration", + "src": "22081:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1229, + "name": "ElementaryTypeName", + "src": "22097:5:1" + } + ], + "id": 1230, + "name": "VariableDeclaration", + "src": "22097:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1245, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1231, + "name": "ElementaryTypeName", + "src": "22116:7:1" + } + ], + "id": 1232, + "name": "VariableDeclaration", + "src": "22116:13:1" + } + ], + "id": 1233, + "name": "ParameterList", + "src": "22080:50:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1245, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1234, + "name": "ElementaryTypeName", + "src": "22149:5:1" + } + ], + "id": 1235, + "name": "VariableDeclaration", + "src": "22149:12:1" + } + ], + "id": 1236, + "name": "ParameterList", + "src": "22148:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1236 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_88a4a0b5e975840320a0475d4027005235904fdb5ece94df156f3d717cb2dbfc", + "typeString": "literal_string \"Address: low-level call with value failed\"" + } + ], + "overloadedDeclarations": [ + 1245, + 1295 + ], + "referencedDeclaration": 1295, + "type": "function (address,bytes memory,uint256,string memory) returns (bytes memory)", + "value": "functionCallWithValue" + }, + "id": 1237, + "name": "Identifier", + "src": "22180:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1228, + "type": "address", + "value": "target" + }, + "id": 1238, + "name": "Identifier", + "src": "22202:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1230, + "type": "bytes memory", + "value": "data" + }, + "id": 1239, + "name": "Identifier", + "src": "22210:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1232, + "type": "uint256", + "value": "value" + }, + "id": 1240, + "name": "Identifier", + "src": "22216:5:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2063616c6c20776974682076616c7565206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level call with value failed\"", + "value": "Address: low-level call with value failed" + }, + "id": 1241, + "name": "Literal", + "src": "22223:43:1" + } + ], + "id": 1242, + "name": "FunctionCall", + "src": "22180:87:1" + } + ], + "id": 1243, + "name": "Return", + "src": "22173:94:1" + } + ], + "id": 1244, + "name": "Block", + "src": "22163:111:1" + } + ], + "id": 1245, + "name": "FunctionDefinition", + "src": "22050:224:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionCallWithValue", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but\n with `errorMessage` as a fallback revert reason when `target` reverts.\n _Available since v3.1._" + }, + "id": 1246, + "name": "StructuredDocumentation", + "src": "22280:237:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1247, + "name": "ElementaryTypeName", + "src": "22553:7:1" + } + ], + "id": 1248, + "name": "VariableDeclaration", + "src": "22553:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1249, + "name": "ElementaryTypeName", + "src": "22569:5:1" + } + ], + "id": 1250, + "name": "VariableDeclaration", + "src": "22569:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1295, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1251, + "name": "ElementaryTypeName", + "src": "22588:7:1" + } + ], + "id": 1252, + "name": "VariableDeclaration", + "src": "22588:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1253, + "name": "ElementaryTypeName", + "src": "22603:6:1" + } + ], + "id": 1254, + "name": "VariableDeclaration", + "src": "22603:26:1" + } + ], + "id": 1255, + "name": "ParameterList", + "src": "22552:78:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1295, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1256, + "name": "ElementaryTypeName", + "src": "22649:5:1" + } + ], + "id": 1257, + "name": "VariableDeclaration", + "src": "22649:12:1" + } + ], + "id": 1258, + "name": "ParameterList", + "src": "22648:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_565f1a77334fc4792800921178c71e4521acffab18ff9e7885b49377ee80ab4c", + "typeString": "literal_string \"Address: insufficient balance for call\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1259, + "name": "Identifier", + "src": "22673:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "balance", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_contract$_Address_$1430", + "typeString": "library Address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1260, + "name": "ElementaryTypeName", + "src": "22681:7:1" + } + ], + "id": 1261, + "name": "ElementaryTypeNameExpression", + "src": "22681:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967268, + "type": "library Address", + "value": "this" + }, + "id": 1262, + "name": "Identifier", + "src": "22689:4:1" + } + ], + "id": 1263, + "name": "FunctionCall", + "src": "22681:13:1" + } + ], + "id": 1264, + "name": "MemberAccess", + "src": "22681:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1265, + "name": "Identifier", + "src": "22706:5:1" + } + ], + "id": 1266, + "name": "BinaryOperation", + "src": "22681:30:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: insufficient balance for call\"", + "value": "Address: insufficient balance for call" + }, + "id": 1267, + "name": "Literal", + "src": "22713:40:1" + } + ], + "id": 1268, + "name": "FunctionCall", + "src": "22673:81:1" + } + ], + "id": 1269, + "name": "ExpressionStatement", + "src": "22673:81:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_cc2e4e38850b7c0a3e942cfed89b71c77302df25bcb2ec297a0c4ff9ff6b90ad", + "typeString": "literal_string \"Address: call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1270, + "name": "Identifier", + "src": "22764:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1271, + "name": "Identifier", + "src": "22772:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1272, + "name": "Identifier", + "src": "22783:6:1" + } + ], + "id": 1273, + "name": "FunctionCall", + "src": "22772:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: call to non-contract\"", + "value": "Address: call to non-contract" + }, + "id": 1274, + "name": "Literal", + "src": "22792:31:1" + } + ], + "id": 1275, + "name": "FunctionCall", + "src": "22764:60:1" + } + ], + "id": 1276, + "name": "ExpressionStatement", + "src": "22764:60:1" + }, + { + "attributes": { + "assignments": [ + 1278, + 1280 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1294, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1277, + "name": "ElementaryTypeName", + "src": "22895:4:1" + } + ], + "id": 1278, + "name": "VariableDeclaration", + "src": "22895:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1294, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1279, + "name": "ElementaryTypeName", + "src": "22909:5:1" + } + ], + "id": 1280, + "name": "VariableDeclaration", + "src": "22909:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "names": [ + "value" + ], + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "call", + "type": "function (bytes memory) payable returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1248, + "type": "address", + "value": "target" + }, + "id": 1281, + "name": "Identifier", + "src": "22936:6:1" + } + ], + "id": 1282, + "name": "MemberAccess", + "src": "22936:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1252, + "type": "uint256", + "value": "value" + }, + "id": 1283, + "name": "Identifier", + "src": "22956:5:1" + } + ], + "id": 1284, + "name": "FunctionCallOptions", + "src": "22936:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1250, + "type": "bytes memory", + "value": "data" + }, + "id": 1285, + "name": "Identifier", + "src": "22964:4:1" + } + ], + "id": 1286, + "name": "FunctionCall", + "src": "22936:33:1" + } + ], + "id": 1287, + "name": "VariableDeclarationStatement", + "src": "22894:75:1" + }, + { + "attributes": { + "functionReturnParameters": 1258 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1288, + "name": "Identifier", + "src": "22986:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1278, + "type": "bool", + "value": "success" + }, + "id": 1289, + "name": "Identifier", + "src": "23004:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1280, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1290, + "name": "Identifier", + "src": "23013:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1254, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1291, + "name": "Identifier", + "src": "23025:12:1" + } + ], + "id": 1292, + "name": "FunctionCall", + "src": "22986:52:1" + } + ], + "id": 1293, + "name": "Return", + "src": "22979:59:1" + } + ], + "id": 1294, + "name": "Block", + "src": "22663:382:1" + } + ], + "id": 1295, + "name": "FunctionDefinition", + "src": "22522:523:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1296, + "name": "StructuredDocumentation", + "src": "23051:166:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1312, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1297, + "name": "ElementaryTypeName", + "src": "23250:7:1" + } + ], + "id": 1298, + "name": "VariableDeclaration", + "src": "23250:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1299, + "name": "ElementaryTypeName", + "src": "23266:5:1" + } + ], + "id": 1300, + "name": "VariableDeclaration", + "src": "23266:17:1" + } + ], + "id": 1301, + "name": "ParameterList", + "src": "23249:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1312, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1302, + "name": "ElementaryTypeName", + "src": "23308:5:1" + } + ], + "id": 1303, + "name": "VariableDeclaration", + "src": "23308:12:1" + } + ], + "id": 1304, + "name": "ParameterList", + "src": "23307:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1304 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_90ec82aa826a536a4cbfae44ecfa384680faa9a4b77344bce96aa761ad904df0", + "typeString": "literal_string \"Address: low-level static call failed\"" + } + ], + "overloadedDeclarations": [ + 1312, + 1347 + ], + "referencedDeclaration": 1347, + "type": "function (address,bytes memory,string memory) view returns (bytes memory)", + "value": "functionStaticCall" + }, + "id": 1305, + "name": "Identifier", + "src": "23339:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1298, + "type": "address", + "value": "target" + }, + "id": 1306, + "name": "Identifier", + "src": "23358:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1300, + "type": "bytes memory", + "value": "data" + }, + "id": 1307, + "name": "Identifier", + "src": "23366:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c207374617469632063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level static call failed\"", + "value": "Address: low-level static call failed" + }, + "id": 1308, + "name": "Literal", + "src": "23372:39:1" + } + ], + "id": 1309, + "name": "FunctionCall", + "src": "23339:73:1" + } + ], + "id": 1310, + "name": "Return", + "src": "23332:80:1" + } + ], + "id": 1311, + "name": "Block", + "src": "23322:97:1" + } + ], + "id": 1312, + "name": "FunctionDefinition", + "src": "23222:197:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionStaticCall", + "scope": 1430, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a static call.\n _Available since v3.3._" + }, + "id": 1313, + "name": "StructuredDocumentation", + "src": "23425:173:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1347, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1314, + "name": "ElementaryTypeName", + "src": "23631:7:1" + } + ], + "id": 1315, + "name": "VariableDeclaration", + "src": "23631:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1316, + "name": "ElementaryTypeName", + "src": "23647:5:1" + } + ], + "id": 1317, + "name": "VariableDeclaration", + "src": "23647:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1318, + "name": "ElementaryTypeName", + "src": "23666:6:1" + } + ], + "id": 1319, + "name": "VariableDeclaration", + "src": "23666:26:1" + } + ], + "id": 1320, + "name": "ParameterList", + "src": "23630:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1347, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1321, + "name": "ElementaryTypeName", + "src": "23717:5:1" + } + ], + "id": 1322, + "name": "VariableDeclaration", + "src": "23717:12:1" + } + ], + "id": 1323, + "name": "ParameterList", + "src": "23716:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c79cc78e4f16ce3933a42b84c73868f93bb4a59c031a0acf576679de98c608a9", + "typeString": "literal_string \"Address: static call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1324, + "name": "Identifier", + "src": "23741:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1325, + "name": "Identifier", + "src": "23749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1326, + "name": "Identifier", + "src": "23760:6:1" + } + ], + "id": 1327, + "name": "FunctionCall", + "src": "23749:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a207374617469632063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: static call to non-contract\"", + "value": "Address: static call to non-contract" + }, + "id": 1328, + "name": "Literal", + "src": "23769:38:1" + } + ], + "id": 1329, + "name": "FunctionCall", + "src": "23741:67:1" + } + ], + "id": 1330, + "name": "ExpressionStatement", + "src": "23741:67:1" + }, + { + "attributes": { + "assignments": [ + 1332, + 1334 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1346, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1331, + "name": "ElementaryTypeName", + "src": "23879:4:1" + } + ], + "id": 1332, + "name": "VariableDeclaration", + "src": "23879:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1346, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1333, + "name": "ElementaryTypeName", + "src": "23893:5:1" + } + ], + "id": 1334, + "name": "VariableDeclaration", + "src": "23893:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "staticcall", + "type": "function (bytes memory) view returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1315, + "type": "address", + "value": "target" + }, + "id": 1335, + "name": "Identifier", + "src": "23920:6:1" + } + ], + "id": 1336, + "name": "MemberAccess", + "src": "23920:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1317, + "type": "bytes memory", + "value": "data" + }, + "id": 1337, + "name": "Identifier", + "src": "23938:4:1" + } + ], + "id": 1338, + "name": "FunctionCall", + "src": "23920:23:1" + } + ], + "id": 1339, + "name": "VariableDeclarationStatement", + "src": "23878:65:1" + }, + { + "attributes": { + "functionReturnParameters": 1323 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1340, + "name": "Identifier", + "src": "23960:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1332, + "type": "bool", + "value": "success" + }, + "id": 1341, + "name": "Identifier", + "src": "23978:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1334, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1342, + "name": "Identifier", + "src": "23987:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1319, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1343, + "name": "Identifier", + "src": "23999:12:1" + } + ], + "id": 1344, + "name": "FunctionCall", + "src": "23960:52:1" + } + ], + "id": 1345, + "name": "Return", + "src": "23953:59:1" + } + ], + "id": 1346, + "name": "Block", + "src": "23731:288:1" + } + ], + "id": 1347, + "name": "FunctionDefinition", + "src": "23603:416:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1348, + "name": "StructuredDocumentation", + "src": "24025:168:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1364, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1349, + "name": "ElementaryTypeName", + "src": "24228:7:1" + } + ], + "id": 1350, + "name": "VariableDeclaration", + "src": "24228:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1351, + "name": "ElementaryTypeName", + "src": "24244:5:1" + } + ], + "id": 1352, + "name": "VariableDeclaration", + "src": "24244:17:1" + } + ], + "id": 1353, + "name": "ParameterList", + "src": "24227:35:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1364, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1354, + "name": "ElementaryTypeName", + "src": "24281:5:1" + } + ], + "id": 1355, + "name": "VariableDeclaration", + "src": "24281:12:1" + } + ], + "id": 1356, + "name": "ParameterList", + "src": "24280:14:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1356 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_9fdcd12e4b726339b32a442b0a448365d5d85c96b2d2cff917b4f66c63110398", + "typeString": "literal_string \"Address: low-level delegate call failed\"" + } + ], + "overloadedDeclarations": [ + 1364, + 1399 + ], + "referencedDeclaration": 1399, + "type": "function (address,bytes memory,string memory) returns (bytes memory)", + "value": "functionDelegateCall" + }, + "id": 1357, + "name": "Identifier", + "src": "24312:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1350, + "type": "address", + "value": "target" + }, + "id": 1358, + "name": "Identifier", + "src": "24333:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1352, + "type": "bytes memory", + "value": "data" + }, + "id": 1359, + "name": "Identifier", + "src": "24341:4:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: low-level delegate call failed\"", + "value": "Address: low-level delegate call failed" + }, + "id": 1360, + "name": "Literal", + "src": "24347:41:1" + } + ], + "id": 1361, + "name": "FunctionCall", + "src": "24312:77:1" + } + ], + "id": 1362, + "name": "Return", + "src": "24305:84:1" + } + ], + "id": 1363, + "name": "Block", + "src": "24295:101:1" + } + ], + "id": 1364, + "name": "FunctionDefinition", + "src": "24198:198:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "functionDelegateCall", + "scope": 1430, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],\n but performing a delegate call.\n _Available since v3.4._" + }, + "id": 1365, + "name": "StructuredDocumentation", + "src": "24402:175:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "target", + "scope": 1399, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1366, + "name": "ElementaryTypeName", + "src": "24612:7:1" + } + ], + "id": 1367, + "name": "VariableDeclaration", + "src": "24612:14:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "data", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1368, + "name": "ElementaryTypeName", + "src": "24628:5:1" + } + ], + "id": 1369, + "name": "VariableDeclaration", + "src": "24628:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1370, + "name": "ElementaryTypeName", + "src": "24647:6:1" + } + ], + "id": 1371, + "name": "VariableDeclaration", + "src": "24647:26:1" + } + ], + "id": 1372, + "name": "ParameterList", + "src": "24611:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1399, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1373, + "name": "ElementaryTypeName", + "src": "24693:5:1" + } + ], + "id": 1374, + "name": "VariableDeclaration", + "src": "24693:12:1" + } + ], + "id": 1375, + "name": "ParameterList", + "src": "24692:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b94ded0918034cf8f896e19fa3cfdef1188cd569c577264a3622e49152f88520", + "typeString": "literal_string \"Address: delegate call to non-contract\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1376, + "name": "Identifier", + "src": "24717:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)", + "value": "isContract" + }, + "id": 1377, + "name": "Identifier", + "src": "24725:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1378, + "name": "Identifier", + "src": "24736:6:1" + } + ], + "id": 1379, + "name": "FunctionCall", + "src": "24725:18:1" + }, + { + "attributes": { + "hexvalue": "416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6e7472616374", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"Address: delegate call to non-contract\"", + "value": "Address: delegate call to non-contract" + }, + "id": 1380, + "name": "Literal", + "src": "24745:40:1" + } + ], + "id": 1381, + "name": "FunctionCall", + "src": "24717:69:1" + } + ], + "id": 1382, + "name": "ExpressionStatement", + "src": "24717:69:1" + }, + { + "attributes": { + "assignments": [ + 1384, + 1386 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1398, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1383, + "name": "ElementaryTypeName", + "src": "24857:4:1" + } + ], + "id": 1384, + "name": "VariableDeclaration", + "src": "24857:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1398, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1385, + "name": "ElementaryTypeName", + "src": "24871:5:1" + } + ], + "id": 1386, + "name": "VariableDeclaration", + "src": "24871:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes memory)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "delegatecall", + "type": "function (bytes memory) returns (bool,bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1367, + "type": "address", + "value": "target" + }, + "id": 1387, + "name": "Identifier", + "src": "24898:6:1" + } + ], + "id": 1388, + "name": "MemberAccess", + "src": "24898:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1369, + "type": "bytes memory", + "value": "data" + }, + "id": 1389, + "name": "Identifier", + "src": "24918:4:1" + } + ], + "id": 1390, + "name": "FunctionCall", + "src": "24898:25:1" + } + ], + "id": 1391, + "name": "VariableDeclarationStatement", + "src": "24856:67:1" + }, + { + "attributes": { + "functionReturnParameters": 1375 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1429, + "type": "function (bool,bytes memory,string memory) pure returns (bytes memory)", + "value": "_verifyCallResult" + }, + "id": 1392, + "name": "Identifier", + "src": "24940:17:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1384, + "type": "bool", + "value": "success" + }, + "id": 1393, + "name": "Identifier", + "src": "24958:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1386, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1394, + "name": "Identifier", + "src": "24967:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1371, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1395, + "name": "Identifier", + "src": "24979:12:1" + } + ], + "id": 1396, + "name": "FunctionCall", + "src": "24940:52:1" + } + ], + "id": 1397, + "name": "Return", + "src": "24933:59:1" + } + ], + "id": 1398, + "name": "Block", + "src": "24707:292:1" + } + ], + "id": 1399, + "name": "FunctionDefinition", + "src": "24582:417:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_verifyCallResult", + "scope": 1430, + "stateMutability": "pure", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 1429, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1400, + "name": "ElementaryTypeName", + "src": "25032:4:1" + } + ], + "id": 1401, + "name": "VariableDeclaration", + "src": "25032:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1402, + "name": "ElementaryTypeName", + "src": "25046:5:1" + } + ], + "id": 1403, + "name": "VariableDeclaration", + "src": "25046:23:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 1404, + "name": "ElementaryTypeName", + "src": "25071:6:1" + } + ], + "id": 1405, + "name": "VariableDeclaration", + "src": "25071:26:1" + } + ], + "id": 1406, + "name": "ParameterList", + "src": "25031:67:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1429, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 1407, + "name": "ElementaryTypeName", + "src": "25120:5:1" + } + ], + "id": 1408, + "name": "VariableDeclaration", + "src": "25120:12:1" + } + ], + "id": 1409, + "name": "ParameterList", + "src": "25119:14:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1401, + "type": "bool", + "value": "success" + }, + "id": 1410, + "name": "Identifier", + "src": "25148:7:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1409 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1411, + "name": "Identifier", + "src": "25178:10:1" + } + ], + "id": 1412, + "name": "Return", + "src": "25171:17:1" + } + ], + "id": 1413, + "name": "Block", + "src": "25157:42:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1403, + "type": "bytes memory", + "value": "returndata" + }, + "id": 1414, + "name": "Identifier", + "src": "25289:10:1" + } + ], + "id": 1415, + "name": "MemberAccess", + "src": "25289:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1416, + "name": "Literal", + "src": "25309:1:1" + } + ], + "id": 1417, + "name": "BinaryOperation", + "src": "25289:21:1" + }, + { + "children": [ + { + "attributes": { + "evmVersion": "istanbul", + "externalReferences": [ + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25547:10:1", + "valueSize": 1 + }, + { + "declaration": 1403, + "isOffset": false, + "isSlot": false, + "src": "25594:10:1", + "valueSize": 1 + } + ], + "operations": "{\n let returndata_size := mload(returndata)\n revert(add(32, returndata), returndata_size)\n}" + }, + "children": [], + "id": 1418, + "name": "InlineAssembly", + "src": "25487:154:1" + } + ], + "id": 1419, + "name": "Block", + "src": "25312:343:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967277, + 4294967277 + ], + "referencedDeclaration": 4294967277, + "type": "function (string memory) pure", + "value": "revert" + }, + "id": 1420, + "name": "Identifier", + "src": "25679:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1405, + "type": "string memory", + "value": "errorMessage" + }, + "id": 1421, + "name": "Identifier", + "src": "25686:12:1" + } + ], + "id": 1422, + "name": "FunctionCall", + "src": "25679:20:1" + } + ], + "id": 1423, + "name": "ExpressionStatement", + "src": "25679:20:1" + } + ], + "id": 1424, + "name": "Block", + "src": "25661:53:1" + } + ], + "id": 1425, + "name": "IfStatement", + "src": "25285:429:1" + } + ], + "id": 1426, + "name": "Block", + "src": "25205:519:1" + } + ], + "id": 1427, + "name": "IfStatement", + "src": "25144:580:1" + } + ], + "id": 1428, + "name": "Block", + "src": "25134:596:1" + } + ], + "id": 1429, + "name": "FunctionDefinition", + "src": "25005:725:1" + } + ], + "id": 1430, + "name": "ContractDefinition", + "src": "18048:7684:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1431, + "name": "PragmaDirective", + "src": "25791:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 1921 + ], + "name": "EnumerableSet", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing\n https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive\n types.\n Sets have the following properties:\n - Elements are added, removed, and checked for existence in constant time\n (O(1)).\n - Elements are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableSet for EnumerableSet.AddressSet;\n // Declare a set state variable\n EnumerableSet.AddressSet private mySet;\n }\n ```\n As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`)\n and `uint256` (`UintSet`) are supported." + }, + "id": 1432, + "name": "StructuredDocumentation", + "src": "25824:686:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Set", + "name": "Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_values", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "bytes32[]" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1433, + "name": "ElementaryTypeName", + "src": "27033:7:1" + } + ], + "id": 1434, + "name": "ArrayTypeName", + "src": "27033:9:1" + } + ], + "id": 1435, + "name": "VariableDeclaration", + "src": "27033:17:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1440, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1436, + "name": "ElementaryTypeName", + "src": "27193:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1437, + "name": "ElementaryTypeName", + "src": "27204:7:1" + } + ], + "id": 1438, + "name": "Mapping", + "src": "27184:28:1" + } + ], + "id": 1439, + "name": "VariableDeclaration", + "src": "27184:37:1" + } + ], + "id": 1440, + "name": "StructDefinition", + "src": "26979:249:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1441, + "name": "StructuredDocumentation", + "src": "27234:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1481, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1442, + "name": "UserDefinedTypeName", + "src": "27412:3:1" + } + ], + "id": 1443, + "name": "VariableDeclaration", + "src": "27412:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1444, + "name": "ElementaryTypeName", + "src": "27429:7:1" + } + ], + "id": 1445, + "name": "VariableDeclaration", + "src": "27429:13:1" + } + ], + "id": 1446, + "name": "ParameterList", + "src": "27411:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1481, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1447, + "name": "ElementaryTypeName", + "src": "27461:4:1" + } + ], + "id": 1448, + "name": "VariableDeclaration", + "src": "27461:4:1" + } + ], + "id": 1449, + "name": "ParameterList", + "src": "27460:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage_ptr", + "typeString": "struct EnumerableSet.Set storage pointer" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1450, + "name": "Identifier", + "src": "27482:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1451, + "name": "Identifier", + "src": "27492:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1452, + "name": "Identifier", + "src": "27497:5:1" + } + ], + "id": 1453, + "name": "FunctionCall", + "src": "27482:21:1" + } + ], + "id": 1454, + "name": "UnaryOperation", + "src": "27481:22:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1455, + "name": "Identifier", + "src": "27519:3:1" + } + ], + "id": 1458, + "name": "MemberAccess", + "src": "27519:11:1" + } + ], + "id": 1459, + "name": "MemberAccess", + "src": "27519:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1460, + "name": "Identifier", + "src": "27536:5:1" + } + ], + "id": 1461, + "name": "FunctionCall", + "src": "27519:23:1" + } + ], + "id": 1462, + "name": "ExpressionStatement", + "src": "27519:23:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1463, + "name": "Identifier", + "src": "27677:3:1" + } + ], + "id": 1466, + "name": "MemberAccess", + "src": "27677:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1445, + "type": "bytes32", + "value": "value" + }, + "id": 1465, + "name": "Identifier", + "src": "27690:5:1" + } + ], + "id": 1467, + "name": "IndexAccess", + "src": "27677:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1443, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1468, + "name": "Identifier", + "src": "27699:3:1" + } + ], + "id": 1469, + "name": "MemberAccess", + "src": "27699:11:1" + } + ], + "id": 1470, + "name": "MemberAccess", + "src": "27699:18:1" + } + ], + "id": 1471, + "name": "Assignment", + "src": "27677:40:1" + } + ], + "id": 1472, + "name": "ExpressionStatement", + "src": "27677:40:1" + }, + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1473, + "name": "Literal", + "src": "27738:4:1" + } + ], + "id": 1474, + "name": "Return", + "src": "27731:11:1" + } + ], + "id": 1475, + "name": "Block", + "src": "27505:248:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1449 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1476, + "name": "Literal", + "src": "27780:5:1" + } + ], + "id": 1477, + "name": "Return", + "src": "27773:12:1" + } + ], + "id": 1478, + "name": "Block", + "src": "27759:37:1" + } + ], + "id": 1479, + "name": "IfStatement", + "src": "27477:319:1" + } + ], + "id": 1480, + "name": "Block", + "src": "27467:335:1" + } + ], + "id": 1481, + "name": "FunctionDefinition", + "src": "27398:404:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1482, + "name": "StructuredDocumentation", + "src": "27808:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1561, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1483, + "name": "UserDefinedTypeName", + "src": "27987:3:1" + } + ], + "id": 1484, + "name": "VariableDeclaration", + "src": "27987:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1485, + "name": "ElementaryTypeName", + "src": "28004:7:1" + } + ], + "id": 1486, + "name": "VariableDeclaration", + "src": "28004:13:1" + } + ], + "id": 1487, + "name": "ParameterList", + "src": "27986:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1561, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1488, + "name": "ElementaryTypeName", + "src": "28036:4:1" + } + ], + "id": 1489, + "name": "VariableDeclaration", + "src": "28036:4:1" + } + ], + "id": 1490, + "name": "ParameterList", + "src": "28035:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1492 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "valueIndex", + "scope": 1560, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1491, + "name": "ElementaryTypeName", + "src": "28152:7:1" + } + ], + "id": 1492, + "name": "VariableDeclaration", + "src": "28152:18:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1493, + "name": "Identifier", + "src": "28173:3:1" + } + ], + "id": 1494, + "name": "MemberAccess", + "src": "28173:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1495, + "name": "Identifier", + "src": "28186:5:1" + } + ], + "id": 1496, + "name": "IndexAccess", + "src": "28173:19:1" + } + ], + "id": 1497, + "name": "VariableDeclarationStatement", + "src": "28152:40:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1498, + "name": "Identifier", + "src": "28207:10:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1499, + "name": "Literal", + "src": "28221:1:1" + } + ], + "id": 1500, + "name": "BinaryOperation", + "src": "28207:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1501, + "name": "ElementaryTypeName", + "src": "28564:7:1" + } + ], + "id": 1502, + "name": "VariableDeclaration", + "src": "28564:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1492, + "type": "uint256", + "value": "valueIndex" + }, + "id": 1503, + "name": "Identifier", + "src": "28588:10:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1504, + "name": "Literal", + "src": "28601:1:1" + } + ], + "id": 1505, + "name": "BinaryOperation", + "src": "28588:14:1" + } + ], + "id": 1506, + "name": "VariableDeclarationStatement", + "src": "28564:38:1" + }, + { + "attributes": { + "assignments": [ + 1508 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1507, + "name": "ElementaryTypeName", + "src": "28616:7:1" + } + ], + "id": 1508, + "name": "VariableDeclaration", + "src": "28616:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1509, + "name": "Identifier", + "src": "28636:3:1" + } + ], + "id": 1510, + "name": "MemberAccess", + "src": "28636:11:1" + } + ], + "id": 1511, + "name": "MemberAccess", + "src": "28636:18:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1512, + "name": "Literal", + "src": "28657:1:1" + } + ], + "id": 1513, + "name": "BinaryOperation", + "src": "28636:22:1" + } + ], + "id": 1514, + "name": "VariableDeclarationStatement", + "src": "28616:42:1" + }, + { + "attributes": { + "assignments": [ + 1516 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastvalue", + "scope": 1555, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1515, + "name": "ElementaryTypeName", + "src": "28898:7:1" + } + ], + "id": 1516, + "name": "VariableDeclaration", + "src": "28898:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1517, + "name": "Identifier", + "src": "28918:3:1" + } + ], + "id": 1518, + "name": "MemberAccess", + "src": "28918:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1508, + "type": "uint256", + "value": "lastIndex" + }, + "id": 1519, + "name": "Identifier", + "src": "28930:9:1" + } + ], + "id": 1520, + "name": "IndexAccess", + "src": "28918:22:1" + } + ], + "id": 1521, + "name": "VariableDeclarationStatement", + "src": "28898:42:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1522, + "name": "Identifier", + "src": "29032:3:1" + } + ], + "id": 1525, + "name": "MemberAccess", + "src": "29032:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1524, + "name": "Identifier", + "src": "29044:13:1" + } + ], + "id": 1526, + "name": "IndexAccess", + "src": "29032:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1527, + "name": "Identifier", + "src": "29061:9:1" + } + ], + "id": 1528, + "name": "Assignment", + "src": "29032:38:1" + } + ], + "id": 1529, + "name": "ExpressionStatement", + "src": "29032:38:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1530, + "name": "Identifier", + "src": "29136:3:1" + } + ], + "id": 1533, + "name": "MemberAccess", + "src": "29136:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1516, + "type": "bytes32", + "value": "lastvalue" + }, + "id": 1532, + "name": "Identifier", + "src": "29149:9:1" + } + ], + "id": 1534, + "name": "IndexAccess", + "src": "29136:23:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1502, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 1535, + "name": "Identifier", + "src": "29162:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1536, + "name": "Literal", + "src": "29178:1:1" + } + ], + "id": 1537, + "name": "BinaryOperation", + "src": "29162:17:1" + } + ], + "id": 1538, + "name": "Assignment", + "src": "29136:43:1" + } + ], + "id": 1539, + "name": "ExpressionStatement", + "src": "29136:43:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1540, + "name": "Identifier", + "src": "29285:3:1" + } + ], + "id": 1543, + "name": "MemberAccess", + "src": "29285:11:1" + } + ], + "id": 1544, + "name": "MemberAccess", + "src": "29285:15:1" + } + ], + "id": 1545, + "name": "FunctionCall", + "src": "29285:17:1" + } + ], + "id": 1546, + "name": "ExpressionStatement", + "src": "29285:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1484, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1547, + "name": "Identifier", + "src": "29377:3:1" + } + ], + "id": 1548, + "name": "MemberAccess", + "src": "29377:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1486, + "type": "bytes32", + "value": "value" + }, + "id": 1549, + "name": "Identifier", + "src": "29390:5:1" + } + ], + "id": 1550, + "name": "IndexAccess", + "src": "29377:19:1" + } + ], + "id": 1551, + "name": "UnaryOperation", + "src": "29370:26:1" + } + ], + "id": 1552, + "name": "ExpressionStatement", + "src": "29370:26:1" + }, + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1553, + "name": "Literal", + "src": "29418:4:1" + } + ], + "id": 1554, + "name": "Return", + "src": "29411:11:1" + } + ], + "id": 1555, + "name": "Block", + "src": "28224:1209:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1490 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1556, + "name": "Literal", + "src": "29460:5:1" + } + ], + "id": 1557, + "name": "Return", + "src": "29453:12:1" + } + ], + "id": 1558, + "name": "Block", + "src": "29439:37:1" + } + ], + "id": 1559, + "name": "IfStatement", + "src": "28203:1273:1" + } + ], + "id": 1560, + "name": "Block", + "src": "28042:1440:1" + } + ], + "id": 1561, + "name": "FunctionDefinition", + "src": "27970:1512:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1562, + "name": "StructuredDocumentation", + "src": "29488:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1579, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1563, + "name": "UserDefinedTypeName", + "src": "29582:3:1" + } + ], + "id": 1564, + "name": "VariableDeclaration", + "src": "29582:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1565, + "name": "ElementaryTypeName", + "src": "29599:7:1" + } + ], + "id": 1566, + "name": "VariableDeclaration", + "src": "29599:13:1" + } + ], + "id": 1567, + "name": "ParameterList", + "src": "29581:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1579, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1568, + "name": "ElementaryTypeName", + "src": "29636:4:1" + } + ], + "id": 1569, + "name": "VariableDeclaration", + "src": "29636:4:1" + } + ], + "id": 1570, + "name": "ParameterList", + "src": "29635:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1570 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1439, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1564, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1571, + "name": "Identifier", + "src": "29659:3:1" + } + ], + "id": 1572, + "name": "MemberAccess", + "src": "29659:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1566, + "type": "bytes32", + "value": "value" + }, + "id": 1573, + "name": "Identifier", + "src": "29672:5:1" + } + ], + "id": 1574, + "name": "IndexAccess", + "src": "29659:19:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1575, + "name": "Literal", + "src": "29682:1:1" + } + ], + "id": 1576, + "name": "BinaryOperation", + "src": "29659:24:1" + } + ], + "id": 1577, + "name": "Return", + "src": "29652:31:1" + } + ], + "id": 1578, + "name": "Block", + "src": "29642:48:1" + } + ], + "id": 1579, + "name": "FunctionDefinition", + "src": "29563:127:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1580, + "name": "StructuredDocumentation", + "src": "29696:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1592, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1581, + "name": "UserDefinedTypeName", + "src": "29788:3:1" + } + ], + "id": 1582, + "name": "VariableDeclaration", + "src": "29788:15:1" + } + ], + "id": 1583, + "name": "ParameterList", + "src": "29787:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1592, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1584, + "name": "ElementaryTypeName", + "src": "29827:7:1" + } + ], + "id": 1585, + "name": "VariableDeclaration", + "src": "29827:7:1" + } + ], + "id": 1586, + "name": "ParameterList", + "src": "29826:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1586 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1582, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1587, + "name": "Identifier", + "src": "29853:3:1" + } + ], + "id": 1588, + "name": "MemberAccess", + "src": "29853:11:1" + } + ], + "id": 1589, + "name": "MemberAccess", + "src": "29853:18:1" + } + ], + "id": 1590, + "name": "Return", + "src": "29846:25:1" + } + ], + "id": 1591, + "name": "Block", + "src": "29836:42:1" + } + ], + "id": 1592, + "name": "FunctionDefinition", + "src": "29771:107:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1593, + "name": "StructuredDocumentation", + "src": "29883:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1617, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1594, + "name": "UserDefinedTypeName", + "src": "30223:3:1" + } + ], + "id": 1595, + "name": "VariableDeclaration", + "src": "30223:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1596, + "name": "ElementaryTypeName", + "src": "30240:7:1" + } + ], + "id": 1597, + "name": "VariableDeclaration", + "src": "30240:13:1" + } + ], + "id": 1598, + "name": "ParameterList", + "src": "30222:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1617, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1599, + "name": "ElementaryTypeName", + "src": "30277:7:1" + } + ], + "id": 1600, + "name": "VariableDeclaration", + "src": "30277:7:1" + } + ], + "id": 1601, + "name": "ParameterList", + "src": "30276:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_045d6834e6193a687012a3ad777f612279e549b6945364d9d2324f48610d3cbb", + "typeString": "literal_string \"EnumerableSet: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 1602, + "name": "Identifier", + "src": "30296:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1603, + "name": "Identifier", + "src": "30304:3:1" + } + ], + "id": 1604, + "name": "MemberAccess", + "src": "30304:11:1" + } + ], + "id": 1605, + "name": "MemberAccess", + "src": "30304:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1606, + "name": "Identifier", + "src": "30325:5:1" + } + ], + "id": 1607, + "name": "BinaryOperation", + "src": "30304:26:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableSet: index out of bounds\"", + "value": "EnumerableSet: index out of bounds" + }, + "id": 1608, + "name": "Literal", + "src": "30332:36:1" + } + ], + "id": 1609, + "name": "FunctionCall", + "src": "30296:73:1" + } + ], + "id": 1610, + "name": "ExpressionStatement", + "src": "30296:73:1" + }, + { + "attributes": { + "functionReturnParameters": 1601 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_values", + "referencedDeclaration": 1435, + "type": "bytes32[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1595, + "type": "struct EnumerableSet.Set storage pointer", + "value": "set" + }, + "id": 1611, + "name": "Identifier", + "src": "30386:3:1" + } + ], + "id": 1612, + "name": "MemberAccess", + "src": "30386:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1597, + "type": "uint256", + "value": "index" + }, + "id": 1613, + "name": "Identifier", + "src": "30398:5:1" + } + ], + "id": 1614, + "name": "IndexAccess", + "src": "30386:18:1" + } + ], + "id": 1615, + "name": "Return", + "src": "30379:25:1" + } + ], + "id": 1616, + "name": "Block", + "src": "30286:125:1" + } + ], + "id": 1617, + "name": "FunctionDefinition", + "src": "30210:201:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.Bytes32Set", + "name": "Bytes32Set", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1620, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1618, + "name": "UserDefinedTypeName", + "src": "30464:3:1" + } + ], + "id": 1619, + "name": "VariableDeclaration", + "src": "30464:10:1" + } + ], + "id": 1620, + "name": "StructDefinition", + "src": "30436:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1621, + "name": "StructuredDocumentation", + "src": "30487:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1637, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1622, + "name": "UserDefinedTypeName", + "src": "30664:10:1" + } + ], + "id": 1623, + "name": "VariableDeclaration", + "src": "30664:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1624, + "name": "ElementaryTypeName", + "src": "30688:7:1" + } + ], + "id": 1625, + "name": "VariableDeclaration", + "src": "30688:13:1" + } + ], + "id": 1626, + "name": "ParameterList", + "src": "30663:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1637, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1627, + "name": "ElementaryTypeName", + "src": "30721:4:1" + } + ], + "id": 1628, + "name": "VariableDeclaration", + "src": "30721:4:1" + } + ], + "id": 1629, + "name": "ParameterList", + "src": "30720:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1629 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1630, + "name": "Identifier", + "src": "30744:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1623, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1631, + "name": "Identifier", + "src": "30749:3:1" + } + ], + "id": 1632, + "name": "MemberAccess", + "src": "30749:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1625, + "type": "bytes32", + "value": "value" + }, + "id": 1633, + "name": "Identifier", + "src": "30761:5:1" + } + ], + "id": 1634, + "name": "FunctionCall", + "src": "30744:23:1" + } + ], + "id": 1635, + "name": "Return", + "src": "30737:30:1" + } + ], + "id": 1636, + "name": "Block", + "src": "30727:47:1" + } + ], + "id": 1637, + "name": "FunctionDefinition", + "src": "30651:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1638, + "name": "StructuredDocumentation", + "src": "30780:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1654, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1639, + "name": "UserDefinedTypeName", + "src": "30958:10:1" + } + ], + "id": 1640, + "name": "VariableDeclaration", + "src": "30958:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1641, + "name": "ElementaryTypeName", + "src": "30982:7:1" + } + ], + "id": 1642, + "name": "VariableDeclaration", + "src": "30982:13:1" + } + ], + "id": 1643, + "name": "ParameterList", + "src": "30957:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1654, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1644, + "name": "ElementaryTypeName", + "src": "31015:4:1" + } + ], + "id": 1645, + "name": "VariableDeclaration", + "src": "31015:4:1" + } + ], + "id": 1646, + "name": "ParameterList", + "src": "31014:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1646 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1647, + "name": "Identifier", + "src": "31038:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1640, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1648, + "name": "Identifier", + "src": "31046:3:1" + } + ], + "id": 1649, + "name": "MemberAccess", + "src": "31046:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1642, + "type": "bytes32", + "value": "value" + }, + "id": 1650, + "name": "Identifier", + "src": "31058:5:1" + } + ], + "id": 1651, + "name": "FunctionCall", + "src": "31038:26:1" + } + ], + "id": 1652, + "name": "Return", + "src": "31031:33:1" + } + ], + "id": 1653, + "name": "Block", + "src": "31021:50:1" + } + ], + "id": 1654, + "name": "FunctionDefinition", + "src": "30942:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1655, + "name": "StructuredDocumentation", + "src": "31077:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1671, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1656, + "name": "UserDefinedTypeName", + "src": "31170:10:1" + } + ], + "id": 1657, + "name": "VariableDeclaration", + "src": "31170:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1658, + "name": "ElementaryTypeName", + "src": "31194:7:1" + } + ], + "id": 1659, + "name": "VariableDeclaration", + "src": "31194:13:1" + } + ], + "id": 1660, + "name": "ParameterList", + "src": "31169:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1671, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1661, + "name": "ElementaryTypeName", + "src": "31232:4:1" + } + ], + "id": 1662, + "name": "VariableDeclaration", + "src": "31232:4:1" + } + ], + "id": 1663, + "name": "ParameterList", + "src": "31231:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1663 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1664, + "name": "Identifier", + "src": "31255:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1657, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1665, + "name": "Identifier", + "src": "31265:3:1" + } + ], + "id": 1666, + "name": "MemberAccess", + "src": "31265:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1659, + "type": "bytes32", + "value": "value" + }, + "id": 1667, + "name": "Identifier", + "src": "31277:5:1" + } + ], + "id": 1668, + "name": "FunctionCall", + "src": "31255:28:1" + } + ], + "id": 1669, + "name": "Return", + "src": "31248:35:1" + } + ], + "id": 1670, + "name": "Block", + "src": "31238:52:1" + } + ], + "id": 1671, + "name": "FunctionDefinition", + "src": "31152:138:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1672, + "name": "StructuredDocumentation", + "src": "31296:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1685, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1673, + "name": "UserDefinedTypeName", + "src": "31387:10:1" + } + ], + "id": 1674, + "name": "VariableDeclaration", + "src": "31387:22:1" + } + ], + "id": 1675, + "name": "ParameterList", + "src": "31386:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1685, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1676, + "name": "ElementaryTypeName", + "src": "31434:7:1" + } + ], + "id": 1677, + "name": "VariableDeclaration", + "src": "31434:7:1" + } + ], + "id": 1678, + "name": "ParameterList", + "src": "31433:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1678 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1679, + "name": "Identifier", + "src": "31460:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1674, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1680, + "name": "Identifier", + "src": "31468:3:1" + } + ], + "id": 1681, + "name": "MemberAccess", + "src": "31468:10:1" + } + ], + "id": 1682, + "name": "FunctionCall", + "src": "31460:19:1" + } + ], + "id": 1683, + "name": "Return", + "src": "31453:26:1" + } + ], + "id": 1684, + "name": "Block", + "src": "31443:43:1" + } + ], + "id": 1685, + "name": "FunctionDefinition", + "src": "31371:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1686, + "name": "StructuredDocumentation", + "src": "31491:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1702, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.Bytes32Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Bytes32Set", + "referencedDeclaration": 1620, + "type": "struct EnumerableSet.Bytes32Set" + }, + "id": 1687, + "name": "UserDefinedTypeName", + "src": "31830:10:1" + } + ], + "id": 1688, + "name": "VariableDeclaration", + "src": "31830:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1689, + "name": "ElementaryTypeName", + "src": "31854:7:1" + } + ], + "id": 1690, + "name": "VariableDeclaration", + "src": "31854:13:1" + } + ], + "id": 1691, + "name": "ParameterList", + "src": "31829:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1702, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1692, + "name": "ElementaryTypeName", + "src": "31892:7:1" + } + ], + "id": 1693, + "name": "VariableDeclaration", + "src": "31892:7:1" + } + ], + "id": 1694, + "name": "ParameterList", + "src": "31891:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1695, + "name": "Identifier", + "src": "31918:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1619, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1688, + "type": "struct EnumerableSet.Bytes32Set storage pointer", + "value": "set" + }, + "id": 1696, + "name": "Identifier", + "src": "31922:3:1" + } + ], + "id": 1697, + "name": "MemberAccess", + "src": "31922:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1690, + "type": "uint256", + "value": "index" + }, + "id": 1698, + "name": "Identifier", + "src": "31934:5:1" + } + ], + "id": 1699, + "name": "FunctionCall", + "src": "31918:22:1" + } + ], + "id": 1700, + "name": "Return", + "src": "31911:29:1" + } + ], + "id": 1701, + "name": "Block", + "src": "31901:46:1" + } + ], + "id": 1702, + "name": "FunctionDefinition", + "src": "31818:129:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.AddressSet", + "name": "AddressSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1705, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1703, + "name": "UserDefinedTypeName", + "src": "32000:3:1" + } + ], + "id": 1704, + "name": "VariableDeclaration", + "src": "32000:10:1" + } + ], + "id": 1705, + "name": "StructDefinition", + "src": "31972:45:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1706, + "name": "StructuredDocumentation", + "src": "32023:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1731, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1707, + "name": "UserDefinedTypeName", + "src": "32200:10:1" + } + ], + "id": 1708, + "name": "VariableDeclaration", + "src": "32200:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1709, + "name": "ElementaryTypeName", + "src": "32224:7:1" + } + ], + "id": 1710, + "name": "VariableDeclaration", + "src": "32224:13:1" + } + ], + "id": 1711, + "name": "ParameterList", + "src": "32199:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1731, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1712, + "name": "ElementaryTypeName", + "src": "32257:4:1" + } + ], + "id": 1713, + "name": "VariableDeclaration", + "src": "32257:4:1" + } + ], + "id": 1714, + "name": "ParameterList", + "src": "32256:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1714 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1715, + "name": "Identifier", + "src": "32280:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1708, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1716, + "name": "Identifier", + "src": "32285:3:1" + } + ], + "id": 1717, + "name": "MemberAccess", + "src": "32285:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1718, + "name": "ElementaryTypeName", + "src": "32297:7:1" + } + ], + "id": 1719, + "name": "ElementaryTypeNameExpression", + "src": "32297:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1720, + "name": "ElementaryTypeName", + "src": "32305:7:1" + } + ], + "id": 1721, + "name": "ElementaryTypeNameExpression", + "src": "32305:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1722, + "name": "ElementaryTypeName", + "src": "32313:7:1" + } + ], + "id": 1723, + "name": "ElementaryTypeNameExpression", + "src": "32313:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1710, + "type": "address", + "value": "value" + }, + "id": 1724, + "name": "Identifier", + "src": "32321:5:1" + } + ], + "id": 1725, + "name": "FunctionCall", + "src": "32313:14:1" + } + ], + "id": 1726, + "name": "FunctionCall", + "src": "32305:23:1" + } + ], + "id": 1727, + "name": "FunctionCall", + "src": "32297:32:1" + } + ], + "id": 1728, + "name": "FunctionCall", + "src": "32280:50:1" + } + ], + "id": 1729, + "name": "Return", + "src": "32273:57:1" + } + ], + "id": 1730, + "name": "Block", + "src": "32263:74:1" + } + ], + "id": 1731, + "name": "FunctionDefinition", + "src": "32187:150:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1732, + "name": "StructuredDocumentation", + "src": "32343:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1757, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1733, + "name": "UserDefinedTypeName", + "src": "32521:10:1" + } + ], + "id": 1734, + "name": "VariableDeclaration", + "src": "32521:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1735, + "name": "ElementaryTypeName", + "src": "32545:7:1" + } + ], + "id": 1736, + "name": "VariableDeclaration", + "src": "32545:13:1" + } + ], + "id": 1737, + "name": "ParameterList", + "src": "32520:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1757, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1738, + "name": "ElementaryTypeName", + "src": "32578:4:1" + } + ], + "id": 1739, + "name": "VariableDeclaration", + "src": "32578:4:1" + } + ], + "id": 1740, + "name": "ParameterList", + "src": "32577:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1740 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1741, + "name": "Identifier", + "src": "32601:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1734, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1742, + "name": "Identifier", + "src": "32609:3:1" + } + ], + "id": 1743, + "name": "MemberAccess", + "src": "32609:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1744, + "name": "ElementaryTypeName", + "src": "32621:7:1" + } + ], + "id": 1745, + "name": "ElementaryTypeNameExpression", + "src": "32621:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1746, + "name": "ElementaryTypeName", + "src": "32629:7:1" + } + ], + "id": 1747, + "name": "ElementaryTypeNameExpression", + "src": "32629:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1748, + "name": "ElementaryTypeName", + "src": "32637:7:1" + } + ], + "id": 1749, + "name": "ElementaryTypeNameExpression", + "src": "32637:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1736, + "type": "address", + "value": "value" + }, + "id": 1750, + "name": "Identifier", + "src": "32645:5:1" + } + ], + "id": 1751, + "name": "FunctionCall", + "src": "32637:14:1" + } + ], + "id": 1752, + "name": "FunctionCall", + "src": "32629:23:1" + } + ], + "id": 1753, + "name": "FunctionCall", + "src": "32621:32:1" + } + ], + "id": 1754, + "name": "FunctionCall", + "src": "32601:53:1" + } + ], + "id": 1755, + "name": "Return", + "src": "32594:60:1" + } + ], + "id": 1756, + "name": "Block", + "src": "32584:77:1" + } + ], + "id": 1757, + "name": "FunctionDefinition", + "src": "32505:156:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1758, + "name": "StructuredDocumentation", + "src": "32667:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1783, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1759, + "name": "UserDefinedTypeName", + "src": "32760:10:1" + } + ], + "id": 1760, + "name": "VariableDeclaration", + "src": "32760:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1761, + "name": "ElementaryTypeName", + "src": "32784:7:1" + } + ], + "id": 1762, + "name": "VariableDeclaration", + "src": "32784:13:1" + } + ], + "id": 1763, + "name": "ParameterList", + "src": "32759:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1783, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1764, + "name": "ElementaryTypeName", + "src": "32822:4:1" + } + ], + "id": 1765, + "name": "VariableDeclaration", + "src": "32822:4:1" + } + ], + "id": 1766, + "name": "ParameterList", + "src": "32821:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1766 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1767, + "name": "Identifier", + "src": "32845:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1760, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1768, + "name": "Identifier", + "src": "32855:3:1" + } + ], + "id": 1769, + "name": "MemberAccess", + "src": "32855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1770, + "name": "ElementaryTypeName", + "src": "32867:7:1" + } + ], + "id": 1771, + "name": "ElementaryTypeNameExpression", + "src": "32867:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1772, + "name": "ElementaryTypeName", + "src": "32875:7:1" + } + ], + "id": 1773, + "name": "ElementaryTypeNameExpression", + "src": "32875:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1774, + "name": "ElementaryTypeName", + "src": "32883:7:1" + } + ], + "id": 1775, + "name": "ElementaryTypeNameExpression", + "src": "32883:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1762, + "type": "address", + "value": "value" + }, + "id": 1776, + "name": "Identifier", + "src": "32891:5:1" + } + ], + "id": 1777, + "name": "FunctionCall", + "src": "32883:14:1" + } + ], + "id": 1778, + "name": "FunctionCall", + "src": "32875:23:1" + } + ], + "id": 1779, + "name": "FunctionCall", + "src": "32867:32:1" + } + ], + "id": 1780, + "name": "FunctionCall", + "src": "32845:55:1" + } + ], + "id": 1781, + "name": "Return", + "src": "32838:62:1" + } + ], + "id": 1782, + "name": "Block", + "src": "32828:79:1" + } + ], + "id": 1783, + "name": "FunctionDefinition", + "src": "32742:165:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values in the set. O(1)." + }, + "id": 1784, + "name": "StructuredDocumentation", + "src": "32913:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1797, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1785, + "name": "UserDefinedTypeName", + "src": "33004:10:1" + } + ], + "id": 1786, + "name": "VariableDeclaration", + "src": "33004:22:1" + } + ], + "id": 1787, + "name": "ParameterList", + "src": "33003:24:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1797, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1788, + "name": "ElementaryTypeName", + "src": "33051:7:1" + } + ], + "id": 1789, + "name": "VariableDeclaration", + "src": "33051:7:1" + } + ], + "id": 1790, + "name": "ParameterList", + "src": "33050:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1790 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1791, + "name": "Identifier", + "src": "33077:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1786, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1792, + "name": "Identifier", + "src": "33085:3:1" + } + ], + "id": 1793, + "name": "MemberAccess", + "src": "33085:10:1" + } + ], + "id": 1794, + "name": "FunctionCall", + "src": "33077:19:1" + } + ], + "id": 1795, + "name": "Return", + "src": "33070:26:1" + } + ], + "id": 1796, + "name": "Block", + "src": "33060:43:1" + } + ], + "id": 1797, + "name": "FunctionDefinition", + "src": "32988:115:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1798, + "name": "StructuredDocumentation", + "src": "33108:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1823, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.AddressSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "AddressSet", + "referencedDeclaration": 1705, + "type": "struct EnumerableSet.AddressSet" + }, + "id": 1799, + "name": "UserDefinedTypeName", + "src": "33447:10:1" + } + ], + "id": 1800, + "name": "VariableDeclaration", + "src": "33447:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1801, + "name": "ElementaryTypeName", + "src": "33471:7:1" + } + ], + "id": 1802, + "name": "VariableDeclaration", + "src": "33471:13:1" + } + ], + "id": 1803, + "name": "ParameterList", + "src": "33446:39:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1823, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 1804, + "name": "ElementaryTypeName", + "src": "33509:7:1" + } + ], + "id": 1805, + "name": "VariableDeclaration", + "src": "33509:7:1" + } + ], + "id": 1806, + "name": "ParameterList", + "src": "33508:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1806 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 1807, + "name": "ElementaryTypeName", + "src": "33535:7:1" + } + ], + "id": 1808, + "name": "ElementaryTypeNameExpression", + "src": "33535:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 1809, + "name": "ElementaryTypeName", + "src": "33543:7:1" + } + ], + "id": 1810, + "name": "ElementaryTypeNameExpression", + "src": "33543:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1811, + "name": "ElementaryTypeName", + "src": "33551:7:1" + } + ], + "id": 1812, + "name": "ElementaryTypeNameExpression", + "src": "33551:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1813, + "name": "Identifier", + "src": "33559:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1704, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1800, + "type": "struct EnumerableSet.AddressSet storage pointer", + "value": "set" + }, + "id": 1814, + "name": "Identifier", + "src": "33563:3:1" + } + ], + "id": 1815, + "name": "MemberAccess", + "src": "33563:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1802, + "type": "uint256", + "value": "index" + }, + "id": 1816, + "name": "Identifier", + "src": "33575:5:1" + } + ], + "id": 1817, + "name": "FunctionCall", + "src": "33559:22:1" + } + ], + "id": 1818, + "name": "FunctionCall", + "src": "33551:31:1" + } + ], + "id": 1819, + "name": "FunctionCall", + "src": "33543:40:1" + } + ], + "id": 1820, + "name": "FunctionCall", + "src": "33535:49:1" + } + ], + "id": 1821, + "name": "Return", + "src": "33528:56:1" + } + ], + "id": 1822, + "name": "Block", + "src": "33518:73:1" + } + ], + "id": 1823, + "name": "FunctionDefinition", + "src": "33435:156:1" + }, + { + "attributes": { + "canonicalName": "EnumerableSet.UintSet", + "name": "UintSet", + "scope": 1921, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 1826, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableSet.Set", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Set", + "referencedDeclaration": 1440, + "type": "struct EnumerableSet.Set" + }, + "id": 1824, + "name": "UserDefinedTypeName", + "src": "33639:3:1" + } + ], + "id": 1825, + "name": "VariableDeclaration", + "src": "33639:10:1" + } + ], + "id": 1826, + "name": "StructDefinition", + "src": "33614:42:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "add", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Add a value to a set. O(1).\n Returns true if the value was added to the set, that is if it was not\n already present." + }, + "id": 1827, + "name": "StructuredDocumentation", + "src": "33662:159:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1846, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1828, + "name": "UserDefinedTypeName", + "src": "33839:7:1" + } + ], + "id": 1829, + "name": "VariableDeclaration", + "src": "33839:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1830, + "name": "ElementaryTypeName", + "src": "33860:7:1" + } + ], + "id": 1831, + "name": "VariableDeclaration", + "src": "33860:13:1" + } + ], + "id": 1832, + "name": "ParameterList", + "src": "33838:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1846, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1833, + "name": "ElementaryTypeName", + "src": "33893:4:1" + } + ], + "id": 1834, + "name": "VariableDeclaration", + "src": "33893:4:1" + } + ], + "id": 1835, + "name": "ParameterList", + "src": "33892:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1835 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1481, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_add" + }, + "id": 1836, + "name": "Identifier", + "src": "33916:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1829, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1837, + "name": "Identifier", + "src": "33921:3:1" + } + ], + "id": 1838, + "name": "MemberAccess", + "src": "33921:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1839, + "name": "ElementaryTypeName", + "src": "33933:7:1" + } + ], + "id": 1840, + "name": "ElementaryTypeNameExpression", + "src": "33933:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1831, + "type": "uint256", + "value": "value" + }, + "id": 1841, + "name": "Identifier", + "src": "33941:5:1" + } + ], + "id": 1842, + "name": "FunctionCall", + "src": "33933:14:1" + } + ], + "id": 1843, + "name": "FunctionCall", + "src": "33916:32:1" + } + ], + "id": 1844, + "name": "Return", + "src": "33909:39:1" + } + ], + "id": 1845, + "name": "Block", + "src": "33899:56:1" + } + ], + "id": 1846, + "name": "FunctionDefinition", + "src": "33826:129:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 1921, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the value was removed from the set, that is if it was\n present." + }, + "id": 1847, + "name": "StructuredDocumentation", + "src": "33961:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1866, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1848, + "name": "UserDefinedTypeName", + "src": "34139:7:1" + } + ], + "id": 1849, + "name": "VariableDeclaration", + "src": "34139:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1850, + "name": "ElementaryTypeName", + "src": "34160:7:1" + } + ], + "id": 1851, + "name": "VariableDeclaration", + "src": "34160:13:1" + } + ], + "id": 1852, + "name": "ParameterList", + "src": "34138:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1866, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1853, + "name": "ElementaryTypeName", + "src": "34193:4:1" + } + ], + "id": 1854, + "name": "VariableDeclaration", + "src": "34193:4:1" + } + ], + "id": 1855, + "name": "ParameterList", + "src": "34192:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1855 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1561, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 1856, + "name": "Identifier", + "src": "34216:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1849, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1857, + "name": "Identifier", + "src": "34224:3:1" + } + ], + "id": 1858, + "name": "MemberAccess", + "src": "34224:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1859, + "name": "ElementaryTypeName", + "src": "34236:7:1" + } + ], + "id": 1860, + "name": "ElementaryTypeNameExpression", + "src": "34236:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1851, + "type": "uint256", + "value": "value" + }, + "id": 1861, + "name": "Identifier", + "src": "34244:5:1" + } + ], + "id": 1862, + "name": "FunctionCall", + "src": "34236:14:1" + } + ], + "id": 1863, + "name": "FunctionCall", + "src": "34216:35:1" + } + ], + "id": 1864, + "name": "Return", + "src": "34209:42:1" + } + ], + "id": 1865, + "name": "Block", + "src": "34199:59:1" + } + ], + "id": 1866, + "name": "FunctionDefinition", + "src": "34123:135:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the value is in the set. O(1)." + }, + "id": 1867, + "name": "StructuredDocumentation", + "src": "34264:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1886, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1868, + "name": "UserDefinedTypeName", + "src": "34357:7:1" + } + ], + "id": 1869, + "name": "VariableDeclaration", + "src": "34357:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1870, + "name": "ElementaryTypeName", + "src": "34378:7:1" + } + ], + "id": 1871, + "name": "VariableDeclaration", + "src": "34378:13:1" + } + ], + "id": 1872, + "name": "ParameterList", + "src": "34356:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1886, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1873, + "name": "ElementaryTypeName", + "src": "34416:4:1" + } + ], + "id": 1874, + "name": "VariableDeclaration", + "src": "34416:4:1" + } + ], + "id": 1875, + "name": "ParameterList", + "src": "34415:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1875 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1579, + "type": "function (struct EnumerableSet.Set storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 1876, + "name": "Identifier", + "src": "34439:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1869, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1877, + "name": "Identifier", + "src": "34449:3:1" + } + ], + "id": 1878, + "name": "MemberAccess", + "src": "34449:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 1879, + "name": "ElementaryTypeName", + "src": "34461:7:1" + } + ], + "id": 1880, + "name": "ElementaryTypeNameExpression", + "src": "34461:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1871, + "type": "uint256", + "value": "value" + }, + "id": 1881, + "name": "Identifier", + "src": "34469:5:1" + } + ], + "id": 1882, + "name": "FunctionCall", + "src": "34461:14:1" + } + ], + "id": 1883, + "name": "FunctionCall", + "src": "34439:37:1" + } + ], + "id": 1884, + "name": "Return", + "src": "34432:44:1" + } + ], + "id": 1885, + "name": "Block", + "src": "34422:61:1" + } + ], + "id": 1886, + "name": "FunctionDefinition", + "src": "34339:144:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of values on the set. O(1)." + }, + "id": 1887, + "name": "StructuredDocumentation", + "src": "34489:70:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1900, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1888, + "name": "UserDefinedTypeName", + "src": "34580:7:1" + } + ], + "id": 1889, + "name": "VariableDeclaration", + "src": "34580:19:1" + } + ], + "id": 1890, + "name": "ParameterList", + "src": "34579:21:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1900, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1891, + "name": "ElementaryTypeName", + "src": "34624:7:1" + } + ], + "id": 1892, + "name": "VariableDeclaration", + "src": "34624:7:1" + } + ], + "id": 1893, + "name": "ParameterList", + "src": "34623:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1893 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1592, + "type": "function (struct EnumerableSet.Set storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 1894, + "name": "Identifier", + "src": "34650:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1889, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1895, + "name": "Identifier", + "src": "34658:3:1" + } + ], + "id": 1896, + "name": "MemberAccess", + "src": "34658:10:1" + } + ], + "id": 1897, + "name": "FunctionCall", + "src": "34650:19:1" + } + ], + "id": 1898, + "name": "Return", + "src": "34643:26:1" + } + ], + "id": 1899, + "name": "Block", + "src": "34633:43:1" + } + ], + "id": 1900, + "name": "FunctionDefinition", + "src": "34564:112:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 1921, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 1901, + "name": "StructuredDocumentation", + "src": "34681:322:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "set", + "scope": 1920, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableSet.UintSet", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 1902, + "name": "UserDefinedTypeName", + "src": "35020:7:1" + } + ], + "id": 1903, + "name": "VariableDeclaration", + "src": "35020:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1904, + "name": "ElementaryTypeName", + "src": "35041:7:1" + } + ], + "id": 1905, + "name": "VariableDeclaration", + "src": "35041:13:1" + } + ], + "id": 1906, + "name": "ParameterList", + "src": "35019:36:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1920, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1907, + "name": "ElementaryTypeName", + "src": "35079:7:1" + } + ], + "id": 1908, + "name": "VariableDeclaration", + "src": "35079:7:1" + } + ], + "id": 1909, + "name": "ParameterList", + "src": "35078:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 1909 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 1910, + "name": "ElementaryTypeName", + "src": "35105:7:1" + } + ], + "id": 1911, + "name": "ElementaryTypeNameExpression", + "src": "35105:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Set_$1440_storage", + "typeString": "struct EnumerableSet.Set storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1617, + "type": "function (struct EnumerableSet.Set storage pointer,uint256) view returns (bytes32)", + "value": "_at" + }, + "id": 1912, + "name": "Identifier", + "src": "35113:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 1825, + "type": "struct EnumerableSet.Set storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1903, + "type": "struct EnumerableSet.UintSet storage pointer", + "value": "set" + }, + "id": 1913, + "name": "Identifier", + "src": "35117:3:1" + } + ], + "id": 1914, + "name": "MemberAccess", + "src": "35117:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1905, + "type": "uint256", + "value": "index" + }, + "id": 1915, + "name": "Identifier", + "src": "35129:5:1" + } + ], + "id": 1916, + "name": "FunctionCall", + "src": "35113:22:1" + } + ], + "id": 1917, + "name": "FunctionCall", + "src": "35105:31:1" + } + ], + "id": 1918, + "name": "Return", + "src": "35098:38:1" + } + ], + "id": 1919, + "name": "Block", + "src": "35088:55:1" + } + ], + "id": 1920, + "name": "FunctionDefinition", + "src": "35008:135:1" + } + ], + "id": 1921, + "name": "ContractDefinition", + "src": "26511:8634:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 1922, + "name": "PragmaDirective", + "src": "35204:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2480 + ], + "name": "EnumerableMap", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev Library for managing an enumerable variant of Solidity's\n https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`]\n type.\n Maps have the following properties:\n - Entries are added, removed, and checked for existence in constant time\n (O(1)).\n - Entries are enumerated in O(n). No guarantees are made on the ordering.\n ```\n contract Example {\n // Add the library methods\n using EnumerableMap for EnumerableMap.UintToAddressMap;\n // Declare a set state variable\n EnumerableMap.UintToAddressMap private myMap;\n }\n ```\n As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are\n supported." + }, + "id": 1923, + "name": "StructuredDocumentation", + "src": "35237:705:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.MapEntry", + "name": "MapEntry", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_key", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1924, + "name": "ElementaryTypeName", + "src": "36455:7:1" + } + ], + "id": 1925, + "name": "VariableDeclaration", + "src": "36455:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_value", + "scope": 1928, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1926, + "name": "ElementaryTypeName", + "src": "36477:7:1" + } + ], + "id": 1927, + "name": "VariableDeclaration", + "src": "36477:14:1" + } + ], + "id": 1928, + "name": "StructDefinition", + "src": "36429:69:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.Map", + "name": "Map", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_entries", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.MapEntry[]", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "struct EnumerableMap.MapEntry[]" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 1929, + "name": "UserDefinedTypeName", + "src": "36567:8:1" + } + ], + "id": 1930, + "name": "ArrayTypeName", + "src": "36567:10:1" + } + ], + "id": 1931, + "name": "VariableDeclaration", + "src": "36567:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_indexes", + "scope": 1936, + "stateVariable": false, + "storageLocation": "default", + "type": "mapping(bytes32 => uint256)", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1932, + "name": "ElementaryTypeName", + "src": "36745:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1933, + "name": "ElementaryTypeName", + "src": "36756:7:1" + } + ], + "id": 1934, + "name": "Mapping", + "src": "36736:28:1" + } + ], + "id": 1935, + "name": "VariableDeclaration", + "src": "36736:37:1" + } + ], + "id": 1936, + "name": "StructDefinition", + "src": "36504:276:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 1937, + "name": "StructuredDocumentation", + "src": "36786:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 1998, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 1938, + "name": "UserDefinedTypeName", + "src": "37021:3:1" + } + ], + "id": 1939, + "name": "VariableDeclaration", + "src": "37021:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1940, + "name": "ElementaryTypeName", + "src": "37038:7:1" + } + ], + "id": 1941, + "name": "VariableDeclaration", + "src": "37038:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 1942, + "name": "ElementaryTypeName", + "src": "37051:7:1" + } + ], + "id": 1943, + "name": "VariableDeclaration", + "src": "37051:13:1" + } + ], + "id": 1944, + "name": "ParameterList", + "src": "37020:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 1998, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 1945, + "name": "ElementaryTypeName", + "src": "37083:4:1" + } + ], + "id": 1946, + "name": "VariableDeclaration", + "src": "37083:4:1" + } + ], + "id": 1947, + "name": "ParameterList", + "src": "37082:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 1949 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 1997, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 1948, + "name": "ElementaryTypeName", + "src": "37197:7:1" + } + ], + "id": 1949, + "name": "VariableDeclaration", + "src": "37197:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1950, + "name": "Identifier", + "src": "37216:3:1" + } + ], + "id": 1951, + "name": "MemberAccess", + "src": "37216:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1952, + "name": "Identifier", + "src": "37229:3:1" + } + ], + "id": 1953, + "name": "IndexAccess", + "src": "37216:17:1" + } + ], + "id": 1954, + "name": "VariableDeclarationStatement", + "src": "37197:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1955, + "name": "Identifier", + "src": "37248:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 1956, + "name": "Literal", + "src": "37260:1:1" + } + ], + "id": 1957, + "name": "BinaryOperation", + "src": "37248:13:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_MapEntry_$1928_memory_ptr", + "typeString": "struct EnumerableMap.MapEntry memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "push", + "type": "function (struct EnumerableMap.MapEntry storage ref)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1958, + "name": "Identifier", + "src": "37314:3:1" + } + ], + "id": 1961, + "name": "MemberAccess", + "src": "37314:12:1" + } + ], + "id": 1962, + "name": "MemberAccess", + "src": "37314:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": true, + "lValueRequested": false, + "names": [ + "_key", + "_value" + ], + "tryCall": false, + "type": "struct EnumerableMap.MapEntry memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1928, + "type": "type(struct EnumerableMap.MapEntry storage pointer)", + "value": "MapEntry" + }, + "id": 1963, + "name": "Identifier", + "src": "37332:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1964, + "name": "Identifier", + "src": "37349:3:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1965, + "name": "Identifier", + "src": "37362:5:1" + } + ], + "id": 1966, + "name": "FunctionCall", + "src": "37332:38:1" + } + ], + "id": 1967, + "name": "FunctionCall", + "src": "37314:57:1" + } + ], + "id": 1968, + "name": "ExpressionStatement", + "src": "37314:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1969, + "name": "Identifier", + "src": "37506:3:1" + } + ], + "id": 1972, + "name": "MemberAccess", + "src": "37506:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1941, + "type": "bytes32", + "value": "key" + }, + "id": 1971, + "name": "Identifier", + "src": "37519:3:1" + } + ], + "id": 1973, + "name": "IndexAccess", + "src": "37506:17:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1974, + "name": "Identifier", + "src": "37526:3:1" + } + ], + "id": 1975, + "name": "MemberAccess", + "src": "37526:12:1" + } + ], + "id": 1976, + "name": "MemberAccess", + "src": "37526:19:1" + } + ], + "id": 1977, + "name": "Assignment", + "src": "37506:39:1" + } + ], + "id": 1978, + "name": "ExpressionStatement", + "src": "37506:39:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 1979, + "name": "Literal", + "src": "37566:4:1" + } + ], + "id": 1980, + "name": "Return", + "src": "37559:11:1" + } + ], + "id": 1981, + "name": "Block", + "src": "37263:318:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1939, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 1982, + "name": "Identifier", + "src": "37601:3:1" + } + ], + "id": 1987, + "name": "MemberAccess", + "src": "37601:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1949, + "type": "uint256", + "value": "keyIndex" + }, + "id": 1984, + "name": "Identifier", + "src": "37614:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 1985, + "name": "Literal", + "src": "37625:1:1" + } + ], + "id": 1986, + "name": "BinaryOperation", + "src": "37614:12:1" + } + ], + "id": 1988, + "name": "IndexAccess", + "src": "37601:26:1" + } + ], + "id": 1989, + "name": "MemberAccess", + "src": "37601:33:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1943, + "type": "bytes32", + "value": "value" + }, + "id": 1990, + "name": "Identifier", + "src": "37637:5:1" + } + ], + "id": 1991, + "name": "Assignment", + "src": "37601:41:1" + } + ], + "id": 1992, + "name": "ExpressionStatement", + "src": "37601:41:1" + }, + { + "attributes": { + "functionReturnParameters": 1947 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 1993, + "name": "Literal", + "src": "37663:5:1" + } + ], + "id": 1994, + "name": "Return", + "src": "37656:12:1" + } + ], + "id": 1995, + "name": "Block", + "src": "37587:92:1" + } + ], + "id": 1996, + "name": "IfStatement", + "src": "37244:435:1" + } + ], + "id": 1997, + "name": "Block", + "src": "37089:596:1" + } + ], + "id": 1998, + "name": "FunctionDefinition", + "src": "37007:678:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a key-value pair from a map. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 1999, + "name": "StructuredDocumentation", + "src": "37691:157:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2079, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2000, + "name": "UserDefinedTypeName", + "src": "37870:3:1" + } + ], + "id": 2001, + "name": "VariableDeclaration", + "src": "37870:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2002, + "name": "ElementaryTypeName", + "src": "37887:7:1" + } + ], + "id": 2003, + "name": "VariableDeclaration", + "src": "37887:11:1" + } + ], + "id": 2004, + "name": "ParameterList", + "src": "37869:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2079, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2005, + "name": "ElementaryTypeName", + "src": "37917:4:1" + } + ], + "id": 2006, + "name": "VariableDeclaration", + "src": "37917:4:1" + } + ], + "id": 2007, + "name": "ParameterList", + "src": "37916:6:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2009 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2078, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2008, + "name": "ElementaryTypeName", + "src": "38031:7:1" + } + ], + "id": 2009, + "name": "VariableDeclaration", + "src": "38031:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2010, + "name": "Identifier", + "src": "38050:3:1" + } + ], + "id": 2011, + "name": "MemberAccess", + "src": "38050:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2012, + "name": "Identifier", + "src": "38063:3:1" + } + ], + "id": 2013, + "name": "IndexAccess", + "src": "38050:17:1" + } + ], + "id": 2014, + "name": "VariableDeclarationStatement", + "src": "38031:36:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2015, + "name": "Identifier", + "src": "38082:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2016, + "name": "Literal", + "src": "38094:1:1" + } + ], + "id": 2017, + "name": "BinaryOperation", + "src": "38082:13:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2019 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "toDeleteIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2018, + "name": "ElementaryTypeName", + "src": "38438:7:1" + } + ], + "id": 2019, + "name": "VariableDeclaration", + "src": "38438:21:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2009, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2020, + "name": "Identifier", + "src": "38462:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2021, + "name": "Literal", + "src": "38473:1:1" + } + ], + "id": 2022, + "name": "BinaryOperation", + "src": "38462:12:1" + } + ], + "id": 2023, + "name": "VariableDeclarationStatement", + "src": "38438:36:1" + }, + { + "attributes": { + "assignments": [ + 2025 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastIndex", + "scope": 2073, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2024, + "name": "ElementaryTypeName", + "src": "38488:7:1" + } + ], + "id": 2025, + "name": "VariableDeclaration", + "src": "38488:17:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2026, + "name": "Identifier", + "src": "38508:3:1" + } + ], + "id": 2027, + "name": "MemberAccess", + "src": "38508:12:1" + } + ], + "id": 2028, + "name": "MemberAccess", + "src": "38508:19:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2029, + "name": "Literal", + "src": "38530:1:1" + } + ], + "id": 2030, + "name": "BinaryOperation", + "src": "38508:23:1" + } + ], + "id": 2031, + "name": "VariableDeclarationStatement", + "src": "38488:43:1" + }, + { + "attributes": { + "assignments": [ + 2033 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "lastEntry", + "scope": 2073, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2032, + "name": "UserDefinedTypeName", + "src": "38771:8:1" + } + ], + "id": 2033, + "name": "VariableDeclaration", + "src": "38771:26:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2034, + "name": "Identifier", + "src": "38800:3:1" + } + ], + "id": 2035, + "name": "MemberAccess", + "src": "38800:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2025, + "type": "uint256", + "value": "lastIndex" + }, + "id": 2036, + "name": "Identifier", + "src": "38813:9:1" + } + ], + "id": 2037, + "name": "IndexAccess", + "src": "38800:23:1" + } + ], + "id": 2038, + "name": "VariableDeclarationStatement", + "src": "38771:52:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2039, + "name": "Identifier", + "src": "38915:3:1" + } + ], + "id": 2042, + "name": "MemberAccess", + "src": "38915:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2041, + "name": "Identifier", + "src": "38928:13:1" + } + ], + "id": 2043, + "name": "IndexAccess", + "src": "38915:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2044, + "name": "Identifier", + "src": "38945:9:1" + } + ], + "id": 2045, + "name": "Assignment", + "src": "38915:39:1" + } + ], + "id": 2046, + "name": "ExpressionStatement", + "src": "38915:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2047, + "name": "Identifier", + "src": "39020:3:1" + } + ], + "id": 2051, + "name": "MemberAccess", + "src": "39020:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2033, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "lastEntry" + }, + "id": 2049, + "name": "Identifier", + "src": "39033:9:1" + } + ], + "id": 2050, + "name": "MemberAccess", + "src": "39033:14:1" + } + ], + "id": 2052, + "name": "IndexAccess", + "src": "39020:28:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2019, + "type": "uint256", + "value": "toDeleteIndex" + }, + "id": 2053, + "name": "Identifier", + "src": "39051:13:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2054, + "name": "Literal", + "src": "39067:1:1" + } + ], + "id": 2055, + "name": "BinaryOperation", + "src": "39051:17:1" + } + ], + "id": 2056, + "name": "Assignment", + "src": "39020:48:1" + } + ], + "id": 2057, + "name": "ExpressionStatement", + "src": "39020:48:1" + }, + { + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "pop", + "type": "function ()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2058, + "name": "Identifier", + "src": "39174:3:1" + } + ], + "id": 2061, + "name": "MemberAccess", + "src": "39174:12:1" + } + ], + "id": 2062, + "name": "MemberAccess", + "src": "39174:16:1" + } + ], + "id": 2063, + "name": "FunctionCall", + "src": "39174:18:1" + } + ], + "id": 2064, + "name": "ExpressionStatement", + "src": "39174:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2001, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2065, + "name": "Identifier", + "src": "39267:3:1" + } + ], + "id": 2066, + "name": "MemberAccess", + "src": "39267:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2003, + "type": "bytes32", + "value": "key" + }, + "id": 2067, + "name": "Identifier", + "src": "39280:3:1" + } + ], + "id": 2068, + "name": "IndexAccess", + "src": "39267:17:1" + } + ], + "id": 2069, + "name": "UnaryOperation", + "src": "39260:24:1" + } + ], + "id": 2070, + "name": "ExpressionStatement", + "src": "39260:24:1" + }, + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2071, + "name": "Literal", + "src": "39306:4:1" + } + ], + "id": 2072, + "name": "Return", + "src": "39299:11:1" + } + ], + "id": 2073, + "name": "Block", + "src": "38097:1224:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2007 + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2074, + "name": "Literal", + "src": "39348:5:1" + } + ], + "id": 2075, + "name": "Return", + "src": "39341:12:1" + } + ], + "id": 2076, + "name": "Block", + "src": "39327:37:1" + } + ], + "id": 2077, + "name": "IfStatement", + "src": "38078:1286:1" + } + ], + "id": 2078, + "name": "Block", + "src": "37923:1447:1" + } + ], + "id": 2079, + "name": "FunctionDefinition", + "src": "37853:1517:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2080, + "name": "StructuredDocumentation", + "src": "39376:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2097, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2081, + "name": "UserDefinedTypeName", + "src": "39468:3:1" + } + ], + "id": 2082, + "name": "VariableDeclaration", + "src": "39468:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2083, + "name": "ElementaryTypeName", + "src": "39485:7:1" + } + ], + "id": 2084, + "name": "VariableDeclaration", + "src": "39485:11:1" + } + ], + "id": 2085, + "name": "ParameterList", + "src": "39467:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2097, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2086, + "name": "ElementaryTypeName", + "src": "39520:4:1" + } + ], + "id": 2087, + "name": "VariableDeclaration", + "src": "39520:4:1" + } + ], + "id": 2088, + "name": "ParameterList", + "src": "39519:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2088 + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2082, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2089, + "name": "Identifier", + "src": "39543:3:1" + } + ], + "id": 2090, + "name": "MemberAccess", + "src": "39543:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2084, + "type": "bytes32", + "value": "key" + }, + "id": 2091, + "name": "Identifier", + "src": "39556:3:1" + } + ], + "id": 2092, + "name": "IndexAccess", + "src": "39543:17:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2093, + "name": "Literal", + "src": "39564:1:1" + } + ], + "id": 2094, + "name": "BinaryOperation", + "src": "39543:22:1" + } + ], + "id": 2095, + "name": "Return", + "src": "39536:29:1" + } + ], + "id": 2096, + "name": "Block", + "src": "39526:46:1" + } + ], + "id": 2097, + "name": "FunctionDefinition", + "src": "39449:123:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of key-value pairs in the map. O(1)." + }, + "id": 2098, + "name": "StructuredDocumentation", + "src": "39578:79:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2110, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2099, + "name": "UserDefinedTypeName", + "src": "39679:3:1" + } + ], + "id": 2100, + "name": "VariableDeclaration", + "src": "39679:15:1" + } + ], + "id": 2101, + "name": "ParameterList", + "src": "39678:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2110, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2102, + "name": "ElementaryTypeName", + "src": "39718:7:1" + } + ], + "id": 2103, + "name": "VariableDeclaration", + "src": "39718:7:1" + } + ], + "id": 2104, + "name": "ParameterList", + "src": "39717:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2104 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2100, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2105, + "name": "Identifier", + "src": "39744:3:1" + } + ], + "id": 2106, + "name": "MemberAccess", + "src": "39744:12:1" + } + ], + "id": 2107, + "name": "MemberAccess", + "src": "39744:19:1" + } + ], + "id": 2108, + "name": "Return", + "src": "39737:26:1" + } + ], + "id": 2109, + "name": "Block", + "src": "39727:43:1" + } + ], + "id": 2110, + "name": "FunctionDefinition", + "src": "39662:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the key-value pair stored at position `index` in the map. O(1).\n Note that there are no guarantees on the ordering of entries inside the\n array, and it may change when more entries are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2111, + "name": "StructuredDocumentation", + "src": "39775:333:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2145, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2112, + "name": "UserDefinedTypeName", + "src": "40126:3:1" + } + ], + "id": 2113, + "name": "VariableDeclaration", + "src": "40126:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2114, + "name": "ElementaryTypeName", + "src": "40143:7:1" + } + ], + "id": 2115, + "name": "VariableDeclaration", + "src": "40143:13:1" + } + ], + "id": 2116, + "name": "ParameterList", + "src": "40125:32:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2117, + "name": "ElementaryTypeName", + "src": "40180:7:1" + } + ], + "id": 2118, + "name": "VariableDeclaration", + "src": "40180:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2145, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2119, + "name": "ElementaryTypeName", + "src": "40189:7:1" + } + ], + "id": 2120, + "name": "VariableDeclaration", + "src": "40189:7:1" + } + ], + "id": 2121, + "name": "ParameterList", + "src": "40179:18:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_86631030b9066a18616a068fc09fce83d18af4765cb1d2166fa475228f4db155", + "typeString": "literal_string \"EnumerableMap: index out of bounds\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2122, + "name": "Identifier", + "src": "40208:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2123, + "name": "Identifier", + "src": "40216:3:1" + } + ], + "id": 2124, + "name": "MemberAccess", + "src": "40216:12:1" + } + ], + "id": 2125, + "name": "MemberAccess", + "src": "40216:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2126, + "name": "Identifier", + "src": "40238:5:1" + } + ], + "id": 2127, + "name": "BinaryOperation", + "src": "40216:27:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: index out of bounds\"", + "value": "EnumerableMap: index out of bounds" + }, + "id": 2128, + "name": "Literal", + "src": "40245:36:1" + } + ], + "id": 2129, + "name": "FunctionCall", + "src": "40208:74:1" + } + ], + "id": 2130, + "name": "ExpressionStatement", + "src": "40208:74:1" + }, + { + "attributes": { + "assignments": [ + 2132 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "entry", + "scope": 2144, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.MapEntry", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "MapEntry", + "referencedDeclaration": 1928, + "type": "struct EnumerableMap.MapEntry" + }, + "id": 2131, + "name": "UserDefinedTypeName", + "src": "40293:8:1" + } + ], + "id": 2132, + "name": "VariableDeclaration", + "src": "40293:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2113, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2133, + "name": "Identifier", + "src": "40318:3:1" + } + ], + "id": 2134, + "name": "MemberAccess", + "src": "40318:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2115, + "type": "uint256", + "value": "index" + }, + "id": 2135, + "name": "Identifier", + "src": "40331:5:1" + } + ], + "id": 2136, + "name": "IndexAccess", + "src": "40318:19:1" + } + ], + "id": 2137, + "name": "VariableDeclarationStatement", + "src": "40293:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2121 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bytes32,bytes32)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_key", + "referencedDeclaration": 1925, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2138, + "name": "Identifier", + "src": "40355:5:1" + } + ], + "id": 2139, + "name": "MemberAccess", + "src": "40355:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2132, + "type": "struct EnumerableMap.MapEntry storage pointer", + "value": "entry" + }, + "id": 2140, + "name": "Identifier", + "src": "40367:5:1" + } + ], + "id": 2141, + "name": "MemberAccess", + "src": "40367:12:1" + } + ], + "id": 2142, + "name": "TupleExpression", + "src": "40354:26:1" + } + ], + "id": 2143, + "name": "Return", + "src": "40347:33:1" + } + ], + "id": 2144, + "name": "Block", + "src": "40198:189:1" + } + ], + "id": 2145, + "name": "FunctionDefinition", + "src": "40113:274:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map." + }, + "id": 2146, + "name": "StructuredDocumentation", + "src": "40393:131:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2183, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2147, + "name": "UserDefinedTypeName", + "src": "40546:3:1" + } + ], + "id": 2148, + "name": "VariableDeclaration", + "src": "40546:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2149, + "name": "ElementaryTypeName", + "src": "40563:7:1" + } + ], + "id": 2150, + "name": "VariableDeclaration", + "src": "40563:11:1" + } + ], + "id": 2151, + "name": "ParameterList", + "src": "40545:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2152, + "name": "ElementaryTypeName", + "src": "40598:4:1" + } + ], + "id": 2153, + "name": "VariableDeclaration", + "src": "40598:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2183, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2154, + "name": "ElementaryTypeName", + "src": "40604:7:1" + } + ], + "id": 2155, + "name": "VariableDeclaration", + "src": "40604:7:1" + } + ], + "id": 2156, + "name": "ParameterList", + "src": "40597:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2158 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2182, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2157, + "name": "ElementaryTypeName", + "src": "40623:7:1" + } + ], + "id": 2158, + "name": "VariableDeclaration", + "src": "40623:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2159, + "name": "Identifier", + "src": "40642:3:1" + } + ], + "id": 2160, + "name": "MemberAccess", + "src": "40642:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2150, + "type": "bytes32", + "value": "key" + }, + "id": 2161, + "name": "Identifier", + "src": "40655:3:1" + } + ], + "id": 2162, + "name": "IndexAccess", + "src": "40642:17:1" + } + ], + "id": 2163, + "name": "VariableDeclarationStatement", + "src": "40623:36:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2164, + "name": "Identifier", + "src": "40673:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2165, + "name": "Literal", + "src": "40685:1:1" + } + ], + "id": 2166, + "name": "BinaryOperation", + "src": "40673:13:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "tuple(bool,int_const 0)" + }, + "children": [ + { + "attributes": { + "hexvalue": "66616c7365", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "false" + }, + "id": 2167, + "name": "Literal", + "src": "40696:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2168, + "name": "Literal", + "src": "40703:1:1" + } + ], + "id": 2169, + "name": "TupleExpression", + "src": "40695:10:1" + } + ], + "id": 2170, + "name": "Return", + "src": "40688:17:1" + } + ], + "id": 2171, + "name": "IfStatement", + "src": "40669:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2156 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,bytes32)" + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 2172, + "name": "Literal", + "src": "40759:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2148, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2173, + "name": "Identifier", + "src": "40765:3:1" + } + ], + "id": 2174, + "name": "MemberAccess", + "src": "40765:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2158, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2175, + "name": "Identifier", + "src": "40778:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2176, + "name": "Literal", + "src": "40789:1:1" + } + ], + "id": 2177, + "name": "BinaryOperation", + "src": "40778:12:1" + } + ], + "id": 2178, + "name": "IndexAccess", + "src": "40765:26:1" + } + ], + "id": 2179, + "name": "MemberAccess", + "src": "40765:33:1" + } + ], + "id": 2180, + "name": "TupleExpression", + "src": "40758:41:1" + } + ], + "id": 2181, + "name": "Return", + "src": "40751:48:1" + } + ], + "id": 2182, + "name": "Block", + "src": "40613:220:1" + } + ], + "id": 2183, + "name": "FunctionDefinition", + "src": "40529:304:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2184, + "name": "StructuredDocumentation", + "src": "40839:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2216, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2185, + "name": "UserDefinedTypeName", + "src": "40999:3:1" + } + ], + "id": 2186, + "name": "VariableDeclaration", + "src": "40999:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2187, + "name": "ElementaryTypeName", + "src": "41016:7:1" + } + ], + "id": 2188, + "name": "VariableDeclaration", + "src": "41016:11:1" + } + ], + "id": 2189, + "name": "ParameterList", + "src": "40998:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2216, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2190, + "name": "ElementaryTypeName", + "src": "41051:7:1" + } + ], + "id": 2191, + "name": "VariableDeclaration", + "src": "41051:7:1" + } + ], + "id": 2192, + "name": "ParameterList", + "src": "41050:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2194 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2215, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2193, + "name": "ElementaryTypeName", + "src": "41070:7:1" + } + ], + "id": 2194, + "name": "VariableDeclaration", + "src": "41070:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2195, + "name": "Identifier", + "src": "41089:3:1" + } + ], + "id": 2196, + "name": "MemberAccess", + "src": "41089:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2188, + "type": "bytes32", + "value": "key" + }, + "id": 2197, + "name": "Identifier", + "src": "41102:3:1" + } + ], + "id": 2198, + "name": "IndexAccess", + "src": "41089:17:1" + } + ], + "id": 2199, + "name": "VariableDeclarationStatement", + "src": "41070:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_d3551e30d3095fd81287b88f7139bb09818e34280e85ee821994ebaebbed7072", + "typeString": "literal_string \"EnumerableMap: nonexistent key\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2200, + "name": "Identifier", + "src": "41116:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2201, + "name": "Identifier", + "src": "41124:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2202, + "name": "Literal", + "src": "41136:1:1" + } + ], + "id": 2203, + "name": "BinaryOperation", + "src": "41124:13:1" + }, + { + "attributes": { + "hexvalue": "456e756d657261626c654d61703a206e6f6e6578697374656e74206b6579", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"EnumerableMap: nonexistent key\"", + "value": "EnumerableMap: nonexistent key" + }, + "id": 2204, + "name": "Literal", + "src": "41139:32:1" + } + ], + "id": 2205, + "name": "FunctionCall", + "src": "41116:56:1" + } + ], + "id": 2206, + "name": "ExpressionStatement", + "src": "41116:56:1" + }, + { + "attributes": { + "functionReturnParameters": 2192 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2186, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2207, + "name": "Identifier", + "src": "41225:3:1" + } + ], + "id": 2208, + "name": "MemberAccess", + "src": "41225:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2194, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2209, + "name": "Identifier", + "src": "41238:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2210, + "name": "Literal", + "src": "41249:1:1" + } + ], + "id": 2211, + "name": "BinaryOperation", + "src": "41238:12:1" + } + ], + "id": 2212, + "name": "IndexAccess", + "src": "41225:26:1" + } + ], + "id": 2213, + "name": "MemberAccess", + "src": "41225:33:1" + } + ], + "id": 2214, + "name": "Return", + "src": "41218:40:1" + } + ], + "id": 2215, + "name": "Block", + "src": "41060:232:1" + } + ], + "id": 2216, + "name": "FunctionDefinition", + "src": "40985:307:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {_get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {_tryGet}." + }, + "id": 2217, + "name": "StructuredDocumentation", + "src": "41298:271:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2251, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2218, + "name": "UserDefinedTypeName", + "src": "41588:3:1" + } + ], + "id": 2219, + "name": "VariableDeclaration", + "src": "41588:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2220, + "name": "ElementaryTypeName", + "src": "41605:7:1" + } + ], + "id": 2221, + "name": "VariableDeclaration", + "src": "41605:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2251, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2222, + "name": "ElementaryTypeName", + "src": "41618:6:1" + } + ], + "id": 2223, + "name": "VariableDeclaration", + "src": "41618:26:1" + } + ], + "id": 2224, + "name": "ParameterList", + "src": "41587:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2251, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2225, + "name": "ElementaryTypeName", + "src": "41668:7:1" + } + ], + "id": 2226, + "name": "VariableDeclaration", + "src": "41668:7:1" + } + ], + "id": 2227, + "name": "ParameterList", + "src": "41667:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2229 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "keyIndex", + "scope": 2250, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2228, + "name": "ElementaryTypeName", + "src": "41687:7:1" + } + ], + "id": 2229, + "name": "VariableDeclaration", + "src": "41687:16:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_indexes", + "referencedDeclaration": 1935, + "type": "mapping(bytes32 => uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2230, + "name": "Identifier", + "src": "41706:3:1" + } + ], + "id": 2231, + "name": "MemberAccess", + "src": "41706:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2221, + "type": "bytes32", + "value": "key" + }, + "id": 2232, + "name": "Identifier", + "src": "41719:3:1" + } + ], + "id": 2233, + "name": "IndexAccess", + "src": "41706:17:1" + } + ], + "id": 2234, + "name": "VariableDeclarationStatement", + "src": "41687:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2235, + "name": "Identifier", + "src": "41733:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2236, + "name": "Identifier", + "src": "41741:8:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2237, + "name": "Literal", + "src": "41753:1:1" + } + ], + "id": 2238, + "name": "BinaryOperation", + "src": "41741:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2223, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2239, + "name": "Identifier", + "src": "41756:12:1" + } + ], + "id": 2240, + "name": "FunctionCall", + "src": "41733:36:1" + } + ], + "id": 2241, + "name": "ExpressionStatement", + "src": "41733:36:1" + }, + { + "attributes": { + "functionReturnParameters": 2227 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_value", + "referencedDeclaration": 1927, + "type": "bytes32" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableMap.MapEntry storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_entries", + "referencedDeclaration": 1931, + "type": "struct EnumerableMap.MapEntry storage ref[] storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2219, + "type": "struct EnumerableMap.Map storage pointer", + "value": "map" + }, + "id": 2242, + "name": "Identifier", + "src": "41822:3:1" + } + ], + "id": 2243, + "name": "MemberAccess", + "src": "41822:12:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2229, + "type": "uint256", + "value": "keyIndex" + }, + "id": 2244, + "name": "Identifier", + "src": "41835:8:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2245, + "name": "Literal", + "src": "41846:1:1" + } + ], + "id": 2246, + "name": "BinaryOperation", + "src": "41835:12:1" + } + ], + "id": 2247, + "name": "IndexAccess", + "src": "41822:26:1" + } + ], + "id": 2248, + "name": "MemberAccess", + "src": "41822:33:1" + } + ], + "id": 2249, + "name": "Return", + "src": "41815:40:1" + } + ], + "id": 2250, + "name": "Block", + "src": "41677:212:1" + } + ], + "id": 2251, + "name": "FunctionDefinition", + "src": "41574:315:1" + }, + { + "attributes": { + "canonicalName": "EnumerableMap.UintToAddressMap", + "name": "UintToAddressMap", + "scope": 2480, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_inner", + "scope": 2254, + "stateVariable": false, + "storageLocation": "default", + "type": "struct EnumerableMap.Map", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "Map", + "referencedDeclaration": 1936, + "type": "struct EnumerableMap.Map" + }, + "id": 2252, + "name": "UserDefinedTypeName", + "src": "41954:3:1" + } + ], + "id": 2253, + "name": "VariableDeclaration", + "src": "41954:10:1" + } + ], + "id": 2254, + "name": "StructDefinition", + "src": "41920:51:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "set", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Adds a key-value pair to a map, or updates the value for an existing\n key. O(1).\n Returns true if the key was added to the map, that is if it was not\n already present." + }, + "id": 2255, + "name": "StructuredDocumentation", + "src": "41977:216:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2286, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2256, + "name": "UserDefinedTypeName", + "src": "42211:16:1" + } + ], + "id": 2257, + "name": "VariableDeclaration", + "src": "42211:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2258, + "name": "ElementaryTypeName", + "src": "42241:7:1" + } + ], + "id": 2259, + "name": "VariableDeclaration", + "src": "42241:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2260, + "name": "ElementaryTypeName", + "src": "42254:7:1" + } + ], + "id": 2261, + "name": "VariableDeclaration", + "src": "42254:13:1" + } + ], + "id": 2262, + "name": "ParameterList", + "src": "42210:58:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2286, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2263, + "name": "ElementaryTypeName", + "src": "42287:4:1" + } + ], + "id": 2264, + "name": "VariableDeclaration", + "src": "42287:4:1" + } + ], + "id": 2265, + "name": "ParameterList", + "src": "42286:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2265 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 1998, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,bytes32) returns (bool)", + "value": "_set" + }, + "id": 2266, + "name": "Identifier", + "src": "42310:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2257, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2267, + "name": "Identifier", + "src": "42315:3:1" + } + ], + "id": 2268, + "name": "MemberAccess", + "src": "42315:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2269, + "name": "ElementaryTypeName", + "src": "42327:7:1" + } + ], + "id": 2270, + "name": "ElementaryTypeNameExpression", + "src": "42327:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2259, + "type": "uint256", + "value": "key" + }, + "id": 2271, + "name": "Identifier", + "src": "42335:3:1" + } + ], + "id": 2272, + "name": "FunctionCall", + "src": "42327:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2273, + "name": "ElementaryTypeName", + "src": "42341:7:1" + } + ], + "id": 2274, + "name": "ElementaryTypeNameExpression", + "src": "42341:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2275, + "name": "ElementaryTypeName", + "src": "42349:7:1" + } + ], + "id": 2276, + "name": "ElementaryTypeNameExpression", + "src": "42349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2277, + "name": "ElementaryTypeName", + "src": "42357:7:1" + } + ], + "id": 2278, + "name": "ElementaryTypeNameExpression", + "src": "42357:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2261, + "type": "address", + "value": "value" + }, + "id": 2279, + "name": "Identifier", + "src": "42365:5:1" + } + ], + "id": 2280, + "name": "FunctionCall", + "src": "42357:14:1" + } + ], + "id": 2281, + "name": "FunctionCall", + "src": "42349:23:1" + } + ], + "id": 2282, + "name": "FunctionCall", + "src": "42341:32:1" + } + ], + "id": 2283, + "name": "FunctionCall", + "src": "42310:64:1" + } + ], + "id": 2284, + "name": "Return", + "src": "42303:71:1" + } + ], + "id": 2285, + "name": "Block", + "src": "42293:88:1" + } + ], + "id": 2286, + "name": "FunctionDefinition", + "src": "42198:183:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "remove", + "scope": 2480, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Removes a value from a set. O(1).\n Returns true if the key was removed from the map, that is if it was present." + }, + "id": 2287, + "name": "StructuredDocumentation", + "src": "42387:148:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2306, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2288, + "name": "UserDefinedTypeName", + "src": "42556:16:1" + } + ], + "id": 2289, + "name": "VariableDeclaration", + "src": "42556:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2290, + "name": "ElementaryTypeName", + "src": "42586:7:1" + } + ], + "id": 2291, + "name": "VariableDeclaration", + "src": "42586:11:1" + } + ], + "id": 2292, + "name": "ParameterList", + "src": "42555:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2306, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2293, + "name": "ElementaryTypeName", + "src": "42617:4:1" + } + ], + "id": 2294, + "name": "VariableDeclaration", + "src": "42617:4:1" + } + ], + "id": 2295, + "name": "ParameterList", + "src": "42616:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2295 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2079, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) returns (bool)", + "value": "_remove" + }, + "id": 2296, + "name": "Identifier", + "src": "42640:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2289, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2297, + "name": "Identifier", + "src": "42648:3:1" + } + ], + "id": 2298, + "name": "MemberAccess", + "src": "42648:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2299, + "name": "ElementaryTypeName", + "src": "42660:7:1" + } + ], + "id": 2300, + "name": "ElementaryTypeNameExpression", + "src": "42660:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2291, + "type": "uint256", + "value": "key" + }, + "id": 2301, + "name": "Identifier", + "src": "42668:3:1" + } + ], + "id": 2302, + "name": "FunctionCall", + "src": "42660:12:1" + } + ], + "id": 2303, + "name": "FunctionCall", + "src": "42640:33:1" + } + ], + "id": 2304, + "name": "Return", + "src": "42633:40:1" + } + ], + "id": 2305, + "name": "Block", + "src": "42623:57:1" + } + ], + "id": 2306, + "name": "FunctionDefinition", + "src": "42540:140:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "contains", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns true if the key is in the map. O(1)." + }, + "id": 2307, + "name": "StructuredDocumentation", + "src": "42686:68:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2326, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2308, + "name": "UserDefinedTypeName", + "src": "42777:16:1" + } + ], + "id": 2309, + "name": "VariableDeclaration", + "src": "42777:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2310, + "name": "ElementaryTypeName", + "src": "42807:7:1" + } + ], + "id": 2311, + "name": "VariableDeclaration", + "src": "42807:11:1" + } + ], + "id": 2312, + "name": "ParameterList", + "src": "42776:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2326, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2313, + "name": "ElementaryTypeName", + "src": "42843:4:1" + } + ], + "id": 2314, + "name": "VariableDeclaration", + "src": "42843:4:1" + } + ], + "id": 2315, + "name": "ParameterList", + "src": "42842:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2315 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2097, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool)", + "value": "_contains" + }, + "id": 2316, + "name": "Identifier", + "src": "42866:9:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2309, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2317, + "name": "Identifier", + "src": "42876:3:1" + } + ], + "id": 2318, + "name": "MemberAccess", + "src": "42876:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2319, + "name": "ElementaryTypeName", + "src": "42888:7:1" + } + ], + "id": 2320, + "name": "ElementaryTypeNameExpression", + "src": "42888:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2311, + "type": "uint256", + "value": "key" + }, + "id": 2321, + "name": "Identifier", + "src": "42896:3:1" + } + ], + "id": 2322, + "name": "FunctionCall", + "src": "42888:12:1" + } + ], + "id": 2323, + "name": "FunctionCall", + "src": "42866:35:1" + } + ], + "id": 2324, + "name": "Return", + "src": "42859:42:1" + } + ], + "id": 2325, + "name": "Block", + "src": "42849:59:1" + } + ], + "id": 2326, + "name": "FunctionDefinition", + "src": "42759:149:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "length", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the number of elements in the map. O(1)." + }, + "id": 2327, + "name": "StructuredDocumentation", + "src": "42914:72:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2340, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2328, + "name": "UserDefinedTypeName", + "src": "43007:16:1" + } + ], + "id": 2329, + "name": "VariableDeclaration", + "src": "43007:28:1" + } + ], + "id": 2330, + "name": "ParameterList", + "src": "43006:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2340, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2331, + "name": "ElementaryTypeName", + "src": "43060:7:1" + } + ], + "id": 2332, + "name": "VariableDeclaration", + "src": "43060:7:1" + } + ], + "id": 2333, + "name": "ParameterList", + "src": "43059:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2333 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2110, + "type": "function (struct EnumerableMap.Map storage pointer) view returns (uint256)", + "value": "_length" + }, + "id": 2334, + "name": "Identifier", + "src": "43086:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2329, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2335, + "name": "Identifier", + "src": "43094:3:1" + } + ], + "id": 2336, + "name": "MemberAccess", + "src": "43094:10:1" + } + ], + "id": 2337, + "name": "FunctionCall", + "src": "43086:19:1" + } + ], + "id": 2338, + "name": "Return", + "src": "43079:26:1" + } + ], + "id": 2339, + "name": "Block", + "src": "43069:43:1" + } + ], + "id": 2340, + "name": "FunctionDefinition", + "src": "42991:121:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "at", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the element stored at position `index` in the set. O(1).\n Note that there are no guarantees on the ordering of values inside the\n array, and it may change when more values are added or removed.\n Requirements:\n - `index` must be strictly less than {length}." + }, + "id": 2341, + "name": "StructuredDocumentation", + "src": "43117:318:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2379, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2342, + "name": "UserDefinedTypeName", + "src": "43452:16:1" + } + ], + "id": 2343, + "name": "VariableDeclaration", + "src": "43452:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2344, + "name": "ElementaryTypeName", + "src": "43482:7:1" + } + ], + "id": 2345, + "name": "VariableDeclaration", + "src": "43482:13:1" + } + ], + "id": 2346, + "name": "ParameterList", + "src": "43451:45:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2347, + "name": "ElementaryTypeName", + "src": "43520:7:1" + } + ], + "id": 2348, + "name": "VariableDeclaration", + "src": "43520:7:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2379, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2349, + "name": "ElementaryTypeName", + "src": "43529:7:1" + } + ], + "id": 2350, + "name": "VariableDeclaration", + "src": "43529:7:1" + } + ], + "id": 2351, + "name": "ParameterList", + "src": "43519:18:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2353, + 2355 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2352, + "name": "ElementaryTypeName", + "src": "43549:7:1" + } + ], + "id": 2353, + "name": "VariableDeclaration", + "src": "43549:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2378, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2354, + "name": "ElementaryTypeName", + "src": "43562:7:1" + } + ], + "id": 2355, + "name": "VariableDeclaration", + "src": "43562:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bytes32,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2145, + "type": "function (struct EnumerableMap.Map storage pointer,uint256) view returns (bytes32,bytes32)", + "value": "_at" + }, + "id": 2356, + "name": "Identifier", + "src": "43579:3:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2343, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2357, + "name": "Identifier", + "src": "43583:3:1" + } + ], + "id": 2358, + "name": "MemberAccess", + "src": "43583:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2345, + "type": "uint256", + "value": "index" + }, + "id": 2359, + "name": "Identifier", + "src": "43595:5:1" + } + ], + "id": 2360, + "name": "FunctionCall", + "src": "43579:22:1" + } + ], + "id": 2361, + "name": "VariableDeclarationStatement", + "src": "43548:53:1" + }, + { + "attributes": { + "functionReturnParameters": 2351 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(uint256,address payable)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2362, + "name": "ElementaryTypeName", + "src": "43619:7:1" + } + ], + "id": 2363, + "name": "ElementaryTypeNameExpression", + "src": "43619:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2353, + "type": "bytes32", + "value": "key" + }, + "id": 2364, + "name": "Identifier", + "src": "43627:3:1" + } + ], + "id": 2365, + "name": "FunctionCall", + "src": "43619:12:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2366, + "name": "ElementaryTypeName", + "src": "43633:7:1" + } + ], + "id": 2367, + "name": "ElementaryTypeNameExpression", + "src": "43633:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2368, + "name": "ElementaryTypeName", + "src": "43641:7:1" + } + ], + "id": 2369, + "name": "ElementaryTypeNameExpression", + "src": "43641:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2370, + "name": "ElementaryTypeName", + "src": "43649:7:1" + } + ], + "id": 2371, + "name": "ElementaryTypeNameExpression", + "src": "43649:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2355, + "type": "bytes32", + "value": "value" + }, + "id": 2372, + "name": "Identifier", + "src": "43657:5:1" + } + ], + "id": 2373, + "name": "FunctionCall", + "src": "43649:14:1" + } + ], + "id": 2374, + "name": "FunctionCall", + "src": "43641:23:1" + } + ], + "id": 2375, + "name": "FunctionCall", + "src": "43633:32:1" + } + ], + "id": 2376, + "name": "TupleExpression", + "src": "43618:48:1" + } + ], + "id": 2377, + "name": "Return", + "src": "43611:55:1" + } + ], + "id": 2378, + "name": "Block", + "src": "43538:135:1" + } + ], + "id": 2379, + "name": "FunctionDefinition", + "src": "43440:233:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tryGet", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Tries to returns the value associated with `key`. O(1).\n Does not revert if `key` is not in the map.\n _Available since v3.4._" + }, + "id": 2380, + "name": "StructuredDocumentation", + "src": "43679:169:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2418, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2381, + "name": "UserDefinedTypeName", + "src": "43869:16:1" + } + ], + "id": 2382, + "name": "VariableDeclaration", + "src": "43869:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2383, + "name": "ElementaryTypeName", + "src": "43899:7:1" + } + ], + "id": 2384, + "name": "VariableDeclaration", + "src": "43899:11:1" + } + ], + "id": 2385, + "name": "ParameterList", + "src": "43868:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2386, + "name": "ElementaryTypeName", + "src": "43935:4:1" + } + ], + "id": 2387, + "name": "VariableDeclaration", + "src": "43935:4:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2418, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2388, + "name": "ElementaryTypeName", + "src": "43941:7:1" + } + ], + "id": 2389, + "name": "VariableDeclaration", + "src": "43941:7:1" + } + ], + "id": 2390, + "name": "ParameterList", + "src": "43934:15:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2392, + 2394 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "success", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2391, + "name": "ElementaryTypeName", + "src": "43961:4:1" + } + ], + "id": 2392, + "name": "VariableDeclaration", + "src": "43961:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2417, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes32", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes32", + "type": "bytes32" + }, + "id": 2393, + "name": "ElementaryTypeName", + "src": "43975:7:1" + } + ], + "id": 2394, + "name": "VariableDeclaration", + "src": "43975:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(bool,bytes32)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2183, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bool,bytes32)", + "value": "_tryGet" + }, + "id": 2395, + "name": "Identifier", + "src": "43992:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2382, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2396, + "name": "Identifier", + "src": "44000:3:1" + } + ], + "id": 2397, + "name": "MemberAccess", + "src": "44000:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2398, + "name": "ElementaryTypeName", + "src": "44012:7:1" + } + ], + "id": 2399, + "name": "ElementaryTypeNameExpression", + "src": "44012:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2384, + "type": "uint256", + "value": "key" + }, + "id": 2400, + "name": "Identifier", + "src": "44020:3:1" + } + ], + "id": 2401, + "name": "FunctionCall", + "src": "44012:12:1" + } + ], + "id": 2402, + "name": "FunctionCall", + "src": "43992:33:1" + } + ], + "id": 2403, + "name": "VariableDeclarationStatement", + "src": "43960:65:1" + }, + { + "attributes": { + "functionReturnParameters": 2390 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "tuple(bool,address payable)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2392, + "type": "bool", + "value": "success" + }, + "id": 2404, + "name": "Identifier", + "src": "44043:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2405, + "name": "ElementaryTypeName", + "src": "44052:7:1" + } + ], + "id": 2406, + "name": "ElementaryTypeNameExpression", + "src": "44052:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2407, + "name": "ElementaryTypeName", + "src": "44060:7:1" + } + ], + "id": 2408, + "name": "ElementaryTypeNameExpression", + "src": "44060:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2409, + "name": "ElementaryTypeName", + "src": "44068:7:1" + } + ], + "id": 2410, + "name": "ElementaryTypeNameExpression", + "src": "44068:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2394, + "type": "bytes32", + "value": "value" + }, + "id": 2411, + "name": "Identifier", + "src": "44076:5:1" + } + ], + "id": 2412, + "name": "FunctionCall", + "src": "44068:14:1" + } + ], + "id": 2413, + "name": "FunctionCall", + "src": "44060:23:1" + } + ], + "id": 2414, + "name": "FunctionCall", + "src": "44052:32:1" + } + ], + "id": 2415, + "name": "TupleExpression", + "src": "44042:43:1" + } + ], + "id": 2416, + "name": "Return", + "src": "44035:50:1" + } + ], + "id": 2417, + "name": "Block", + "src": "43950:142:1" + } + ], + "id": 2418, + "name": "FunctionDefinition", + "src": "43853:239:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the value associated with `key`. O(1).\n Requirements:\n - `key` must be in the map." + }, + "id": 2419, + "name": "StructuredDocumentation", + "src": "44098:141:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2447, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2420, + "name": "UserDefinedTypeName", + "src": "44257:16:1" + } + ], + "id": 2421, + "name": "VariableDeclaration", + "src": "44257:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2422, + "name": "ElementaryTypeName", + "src": "44287:7:1" + } + ], + "id": 2423, + "name": "VariableDeclaration", + "src": "44287:11:1" + } + ], + "id": 2424, + "name": "ParameterList", + "src": "44256:43:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2447, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2425, + "name": "ElementaryTypeName", + "src": "44323:7:1" + } + ], + "id": 2426, + "name": "VariableDeclaration", + "src": "44323:7:1" + } + ], + "id": 2427, + "name": "ParameterList", + "src": "44322:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2427 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2428, + "name": "ElementaryTypeName", + "src": "44349:7:1" + } + ], + "id": 2429, + "name": "ElementaryTypeNameExpression", + "src": "44349:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2430, + "name": "ElementaryTypeName", + "src": "44357:7:1" + } + ], + "id": 2431, + "name": "ElementaryTypeNameExpression", + "src": "44357:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2432, + "name": "ElementaryTypeName", + "src": "44365:7:1" + } + ], + "id": 2433, + "name": "ElementaryTypeNameExpression", + "src": "44365:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2216, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32) view returns (bytes32)", + "value": "_get" + }, + "id": 2434, + "name": "Identifier", + "src": "44373:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2421, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2435, + "name": "Identifier", + "src": "44378:3:1" + } + ], + "id": 2436, + "name": "MemberAccess", + "src": "44378:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2437, + "name": "ElementaryTypeName", + "src": "44390:7:1" + } + ], + "id": 2438, + "name": "ElementaryTypeNameExpression", + "src": "44390:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2423, + "type": "uint256", + "value": "key" + }, + "id": 2439, + "name": "Identifier", + "src": "44398:3:1" + } + ], + "id": 2440, + "name": "FunctionCall", + "src": "44390:12:1" + } + ], + "id": 2441, + "name": "FunctionCall", + "src": "44373:30:1" + } + ], + "id": 2442, + "name": "FunctionCall", + "src": "44365:39:1" + } + ], + "id": 2443, + "name": "FunctionCall", + "src": "44357:48:1" + } + ], + "id": 2444, + "name": "FunctionCall", + "src": "44349:57:1" + } + ], + "id": 2445, + "name": "Return", + "src": "44342:64:1" + } + ], + "id": 2446, + "name": "Block", + "src": "44332:81:1" + } + ], + "id": 2447, + "name": "FunctionDefinition", + "src": "44244:169:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "get", + "scope": 2480, + "stateMutability": "view", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {get}, with a custom error message when `key` is not in the map.\n CAUTION: This function is deprecated because it requires allocating memory for the error\n message unnecessarily. For custom revert reasons use {tryGet}." + }, + "id": 2448, + "name": "StructuredDocumentation", + "src": "44419:269:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "map", + "scope": 2479, + "stateVariable": false, + "storageLocation": "storage", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2449, + "name": "UserDefinedTypeName", + "src": "44706:16:1" + } + ], + "id": 2450, + "name": "VariableDeclaration", + "src": "44706:28:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "key", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2451, + "name": "ElementaryTypeName", + "src": "44736:7:1" + } + ], + "id": 2452, + "name": "VariableDeclaration", + "src": "44736:11:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "errorMessage", + "scope": 2479, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2453, + "name": "ElementaryTypeName", + "src": "44749:6:1" + } + ], + "id": 2454, + "name": "VariableDeclaration", + "src": "44749:26:1" + } + ], + "id": 2455, + "name": "ParameterList", + "src": "44705:71:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2479, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2456, + "name": "ElementaryTypeName", + "src": "44800:7:1" + } + ], + "id": 2457, + "name": "VariableDeclaration", + "src": "44800:7:1" + } + ], + "id": 2458, + "name": "ParameterList", + "src": "44799:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2458 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint160", + "typeString": "uint160" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2459, + "name": "ElementaryTypeName", + "src": "44826:7:1" + } + ], + "id": 2460, + "name": "ElementaryTypeNameExpression", + "src": "44826:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint160", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint160)" + }, + "children": [ + { + "attributes": { + "name": "uint160" + }, + "id": 2461, + "name": "ElementaryTypeName", + "src": "44834:7:1" + } + ], + "id": 2462, + "name": "ElementaryTypeNameExpression", + "src": "44834:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint256)" + }, + "children": [ + { + "attributes": { + "name": "uint256" + }, + "id": 2463, + "name": "ElementaryTypeName", + "src": "44842:7:1" + } + ], + "id": 2464, + "name": "ElementaryTypeNameExpression", + "src": "44842:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_struct$_Map_$1936_storage", + "typeString": "struct EnumerableMap.Map storage ref" + }, + { + "typeIdentifier": "t_bytes32", + "typeString": "bytes32" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "overloadedDeclarations": [ + 2216, + 2251 + ], + "referencedDeclaration": 2251, + "type": "function (struct EnumerableMap.Map storage pointer,bytes32,string memory) view returns (bytes32)", + "value": "_get" + }, + "id": 2465, + "name": "Identifier", + "src": "44850:4:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "_inner", + "referencedDeclaration": 2253, + "type": "struct EnumerableMap.Map storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2450, + "type": "struct EnumerableMap.UintToAddressMap storage pointer", + "value": "map" + }, + "id": 2466, + "name": "Identifier", + "src": "44855:3:1" + } + ], + "id": 2467, + "name": "MemberAccess", + "src": "44855:10:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes32", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes32)" + }, + "children": [ + { + "attributes": { + "name": "bytes32" + }, + "id": 2468, + "name": "ElementaryTypeName", + "src": "44867:7:1" + } + ], + "id": 2469, + "name": "ElementaryTypeNameExpression", + "src": "44867:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2452, + "type": "uint256", + "value": "key" + }, + "id": 2470, + "name": "Identifier", + "src": "44875:3:1" + } + ], + "id": 2471, + "name": "FunctionCall", + "src": "44867:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2454, + "type": "string memory", + "value": "errorMessage" + }, + "id": 2472, + "name": "Identifier", + "src": "44881:12:1" + } + ], + "id": 2473, + "name": "FunctionCall", + "src": "44850:44:1" + } + ], + "id": 2474, + "name": "FunctionCall", + "src": "44842:53:1" + } + ], + "id": 2475, + "name": "FunctionCall", + "src": "44834:62:1" + } + ], + "id": 2476, + "name": "FunctionCall", + "src": "44826:71:1" + } + ], + "id": 2477, + "name": "Return", + "src": "44819:78:1" + } + ], + "id": 2478, + "name": "Block", + "src": "44809:95:1" + } + ], + "id": 2479, + "name": "FunctionDefinition", + "src": "44693:211:1" + } + ], + "id": 2480, + "name": "ContractDefinition", + "src": "35943:8963:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2481, + "name": "PragmaDirective", + "src": "44959:31:1" + }, + { + "attributes": { + "abstract": false, + "baseContracts": [ + null + ], + "contractDependencies": [ + null + ], + "contractKind": "library", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 2566 + ], + "name": "Strings", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @dev String operations." + }, + "id": 2482, + "name": "StructuredDocumentation", + "src": "44992:34:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "toString", + "scope": 2566, + "stateMutability": "pure", + "virtual": false, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Converts a `uint256` to its ASCII `string` representation." + }, + "id": 2483, + "name": "StructuredDocumentation", + "src": "45049:82:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "value", + "scope": 2565, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2484, + "name": "ElementaryTypeName", + "src": "45154:7:1" + } + ], + "id": 2485, + "name": "VariableDeclaration", + "src": "45154:13:1" + } + ], + "id": 2486, + "name": "ParameterList", + "src": "45153:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2565, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2487, + "name": "ElementaryTypeName", + "src": "45192:6:1" + } + ], + "id": 2488, + "name": "VariableDeclaration", + "src": "45192:13:1" + } + ], + "id": 2489, + "name": "ParameterList", + "src": "45191:15:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2490, + "name": "Identifier", + "src": "45409:5:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2491, + "name": "Literal", + "src": "45418:1:1" + } + ], + "id": 2492, + "name": "BinaryOperation", + "src": "45409:10:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"0\"", + "value": "0" + }, + "id": 2493, + "name": "Literal", + "src": "45442:3:1" + } + ], + "id": 2494, + "name": "Return", + "src": "45435:10:1" + } + ], + "id": 2495, + "name": "Block", + "src": "45421:35:1" + } + ], + "id": 2496, + "name": "IfStatement", + "src": "45405:51:1" + }, + { + "attributes": { + "assignments": [ + 2498 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "temp", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2497, + "name": "ElementaryTypeName", + "src": "45465:7:1" + } + ], + "id": 2498, + "name": "VariableDeclaration", + "src": "45465:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2499, + "name": "Identifier", + "src": "45480:5:1" + } + ], + "id": 2500, + "name": "VariableDeclarationStatement", + "src": "45465:20:1" + }, + { + "attributes": { + "assignments": [ + 2502 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "digits", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2501, + "name": "ElementaryTypeName", + "src": "45495:7:1" + } + ], + "id": 2502, + "name": "VariableDeclaration", + "src": "45495:14:1" + } + ], + "id": 2503, + "name": "VariableDeclarationStatement", + "src": "45495:14:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2504, + "name": "Identifier", + "src": "45526:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2505, + "name": "Literal", + "src": "45534:1:1" + } + ], + "id": 2506, + "name": "BinaryOperation", + "src": "45526:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "++", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2507, + "name": "Identifier", + "src": "45551:6:1" + } + ], + "id": 2508, + "name": "UnaryOperation", + "src": "45551:8:1" + } + ], + "id": 2509, + "name": "ExpressionStatement", + "src": "45551:8:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2510, + "name": "Identifier", + "src": "45573:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2511, + "name": "Literal", + "src": "45581:2:1" + } + ], + "id": 2512, + "name": "Assignment", + "src": "45573:10:1" + } + ], + "id": 2513, + "name": "ExpressionStatement", + "src": "45573:10:1" + } + ], + "id": 2514, + "name": "Block", + "src": "45537:57:1" + } + ], + "id": 2515, + "name": "WhileStatement", + "src": "45519:75:1" + }, + { + "attributes": { + "assignments": [ + 2517 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "buffer", + "scope": 2564, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2516, + "name": "ElementaryTypeName", + "src": "45603:5:1" + } + ], + "id": 2517, + "name": "VariableDeclaration", + "src": "45603:19:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "function (uint256) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 2518, + "name": "ElementaryTypeName", + "src": "45629:5:1" + } + ], + "id": 2519, + "name": "NewExpression", + "src": "45625:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2520, + "name": "Identifier", + "src": "45635:6:1" + } + ], + "id": 2521, + "name": "FunctionCall", + "src": "45625:17:1" + } + ], + "id": 2522, + "name": "VariableDeclarationStatement", + "src": "45603:39:1" + }, + { + "attributes": { + "assignments": [ + 2524 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2564, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2523, + "name": "ElementaryTypeName", + "src": "45652:7:1" + } + ], + "id": 2524, + "name": "VariableDeclaration", + "src": "45652:13:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "-", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2502, + "type": "uint256", + "value": "digits" + }, + "id": 2525, + "name": "Identifier", + "src": "45668:6:1" + }, + { + "attributes": { + "hexvalue": "31", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1", + "value": "1" + }, + "id": 2526, + "name": "Literal", + "src": "45677:1:1" + } + ], + "id": 2527, + "name": "BinaryOperation", + "src": "45668:10:1" + } + ], + "id": 2528, + "name": "VariableDeclarationStatement", + "src": "45652:26:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2529, + "name": "Identifier", + "src": "45688:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2485, + "type": "uint256", + "value": "value" + }, + "id": 2530, + "name": "Identifier", + "src": "45695:5:1" + } + ], + "id": 2531, + "name": "Assignment", + "src": "45688:12:1" + } + ], + "id": 2532, + "name": "ExpressionStatement", + "src": "45688:12:1" + }, + { + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2533, + "name": "Identifier", + "src": "45717:4:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2534, + "name": "Literal", + "src": "45725:1:1" + } + ], + "id": 2535, + "name": "BinaryOperation", + "src": "45717:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bytes1" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2536, + "name": "Identifier", + "src": "45742:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "--", + "prefix": false, + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2524, + "type": "uint256", + "value": "index" + }, + "id": 2537, + "name": "Identifier", + "src": "45749:5:1" + } + ], + "id": 2538, + "name": "UnaryOperation", + "src": "45749:7:1" + } + ], + "id": 2539, + "name": "IndexAccess", + "src": "45742:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes1", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint8", + "typeString": "uint8" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes1)" + }, + "children": [ + { + "attributes": { + "name": "bytes1" + }, + "id": 2540, + "name": "ElementaryTypeName", + "src": "45760:6:1" + } + ], + "id": 2541, + "name": "ElementaryTypeNameExpression", + "src": "45760:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint8", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(uint8)" + }, + "children": [ + { + "attributes": { + "name": "uint8" + }, + "id": 2542, + "name": "ElementaryTypeName", + "src": "45767:5:1" + } + ], + "id": 2543, + "name": "ElementaryTypeNameExpression", + "src": "45767:5:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "+", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "hexvalue": "3438", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 48", + "value": "48" + }, + "id": 2544, + "name": "Literal", + "src": "45773:2:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "%", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2545, + "name": "Identifier", + "src": "45778:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2546, + "name": "Literal", + "src": "45785:2:1" + } + ], + "id": 2547, + "name": "BinaryOperation", + "src": "45778:9:1" + } + ], + "id": 2548, + "name": "BinaryOperation", + "src": "45773:14:1" + } + ], + "id": 2549, + "name": "FunctionCall", + "src": "45767:21:1" + } + ], + "id": 2550, + "name": "FunctionCall", + "src": "45760:29:1" + } + ], + "id": 2551, + "name": "Assignment", + "src": "45742:47:1" + } + ], + "id": 2552, + "name": "ExpressionStatement", + "src": "45742:47:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "/=", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2498, + "type": "uint256", + "value": "temp" + }, + "id": 2553, + "name": "Identifier", + "src": "45803:4:1" + }, + { + "attributes": { + "hexvalue": "3130", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 10", + "value": "10" + }, + "id": 2554, + "name": "Literal", + "src": "45811:2:1" + } + ], + "id": 2555, + "name": "Assignment", + "src": "45803:10:1" + } + ], + "id": 2556, + "name": "ExpressionStatement", + "src": "45803:10:1" + } + ], + "id": 2557, + "name": "Block", + "src": "45728:96:1" + } + ], + "id": 2558, + "name": "WhileStatement", + "src": "45710:114:1" + }, + { + "attributes": { + "functionReturnParameters": 2489 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2559, + "name": "ElementaryTypeName", + "src": "45840:6:1" + } + ], + "id": 2560, + "name": "ElementaryTypeNameExpression", + "src": "45840:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2517, + "type": "bytes memory", + "value": "buffer" + }, + "id": 2561, + "name": "Identifier", + "src": "45847:6:1" + } + ], + "id": 2562, + "name": "FunctionCall", + "src": "45840:14:1" + } + ], + "id": 2563, + "name": "Return", + "src": "45833:21:1" + } + ], + "id": 2564, + "name": "Block", + "src": "45207:654:1" + } + ], + "id": 2565, + "name": "FunctionDefinition", + "src": "45136:725:1" + } + ], + "id": 2566, + "name": "ContractDefinition", + "src": "45027:836:1" + }, + { + "attributes": { + "literals": [ + "solidity", + ">=", + "0.6", + ".0", + "<", + "0.8", + ".0" + ] + }, + "id": 2567, + "name": "PragmaDirective", + "src": "45922:31:1" + }, + { + "attributes": { + "abstract": false, + "contractDependencies": [ + 530, + 541, + 655, + 680, + 709, + 781 + ], + "contractKind": "contract", + "fullyImplemented": true, + "linearizedBaseContracts": [ + 3498, + 709, + 680, + 655, + 781, + 541, + 530 + ], + "name": "ERC721", + "scope": 3499 + }, + "children": [ + { + "attributes": { + "text": " @title ERC721 Non-Fungible Token Standard basic implementation\n @dev see https://eips.ethereum.org/EIPS/eip-721" + }, + "id": 2568, + "name": "StructuredDocumentation", + "src": "45955:124:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "Context", + "referencedDeclaration": 530, + "type": "contract Context" + }, + "id": 2569, + "name": "UserDefinedTypeName", + "src": "46099:7:1" + } + ], + "id": 2570, + "name": "InheritanceSpecifier", + "src": "46099:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "ERC165", + "referencedDeclaration": 781, + "type": "contract ERC165" + }, + "id": 2571, + "name": "UserDefinedTypeName", + "src": "46108:6:1" + } + ], + "id": 2572, + "name": "InheritanceSpecifier", + "src": "46108:6:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721", + "referencedDeclaration": 655, + "type": "contract IERC721" + }, + "id": 2573, + "name": "UserDefinedTypeName", + "src": "46116:7:1" + } + ], + "id": 2574, + "name": "InheritanceSpecifier", + "src": "46116:7:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Metadata", + "referencedDeclaration": 680, + "type": "contract IERC721Metadata" + }, + "id": 2575, + "name": "UserDefinedTypeName", + "src": "46125:15:1" + } + ], + "id": 2576, + "name": "InheritanceSpecifier", + "src": "46125:15:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "name": "IERC721Enumerable", + "referencedDeclaration": 709, + "type": "contract IERC721Enumerable" + }, + "id": 2577, + "name": "UserDefinedTypeName", + "src": "46142:17:1" + } + ], + "id": 2578, + "name": "InheritanceSpecifier", + "src": "46142:17:1" + }, + { + "children": [ + { + "attributes": { + "name": "SafeMath", + "referencedDeclaration": 1135, + "type": "library SafeMath" + }, + "id": 2579, + "name": "UserDefinedTypeName", + "src": "46172:8:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2580, + "name": "ElementaryTypeName", + "src": "46185:7:1" + } + ], + "id": 2581, + "name": "UsingForDirective", + "src": "46166:27:1" + }, + { + "children": [ + { + "attributes": { + "name": "Address", + "referencedDeclaration": 1430, + "type": "library Address" + }, + "id": 2582, + "name": "UserDefinedTypeName", + "src": "46204:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2583, + "name": "ElementaryTypeName", + "src": "46216:7:1" + } + ], + "id": 2584, + "name": "UsingForDirective", + "src": "46198:26:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableSet", + "referencedDeclaration": 1921, + "type": "library EnumerableSet" + }, + "id": 2585, + "name": "UserDefinedTypeName", + "src": "46235:13:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2586, + "name": "UserDefinedTypeName", + "src": "46253:21:1" + } + ], + "id": 2587, + "name": "UsingForDirective", + "src": "46229:46:1" + }, + { + "children": [ + { + "attributes": { + "name": "EnumerableMap", + "referencedDeclaration": 2480, + "type": "library EnumerableMap" + }, + "id": 2588, + "name": "UserDefinedTypeName", + "src": "46286:13:1" + }, + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2589, + "name": "UserDefinedTypeName", + "src": "46304:30:1" + } + ], + "id": 2590, + "name": "UsingForDirective", + "src": "46280:55:1" + }, + { + "children": [ + { + "attributes": { + "name": "Strings", + "referencedDeclaration": 2566, + "type": "library Strings" + }, + "id": 2591, + "name": "UserDefinedTypeName", + "src": "46346:7:1" + }, + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2592, + "name": "ElementaryTypeName", + "src": "46358:7:1" + } + ], + "id": 2593, + "name": "UsingForDirective", + "src": "46340:26:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_ERC721_RECEIVED", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2594, + "name": "ElementaryTypeName", + "src": "46544:6:1" + }, + { + "attributes": { + "hexvalue": "30783135306237613032", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 353073666", + "value": "0x150b7a02" + }, + "id": 2595, + "name": "Literal", + "src": "46587:10:1" + } + ], + "id": 2596, + "name": "VariableDeclaration", + "src": "46544:53:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_holderTokens", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => struct EnumerableSet.UintSet)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => struct EnumerableSet.UintSet)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2597, + "name": "ElementaryTypeName", + "src": "46690:7:1" + }, + { + "attributes": { + "name": "EnumerableSet.UintSet", + "referencedDeclaration": 1826, + "type": "struct EnumerableSet.UintSet" + }, + "id": 2598, + "name": "UserDefinedTypeName", + "src": "46701:21:1" + } + ], + "id": 2599, + "name": "Mapping", + "src": "46681:42:1" + } + ], + "id": 2600, + "name": "VariableDeclaration", + "src": "46681:64:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenOwners", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "struct EnumerableMap.UintToAddressMap", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "EnumerableMap.UintToAddressMap", + "referencedDeclaration": 2254, + "type": "struct EnumerableMap.UintToAddressMap" + }, + "id": 2601, + "name": "UserDefinedTypeName", + "src": "46809:30:1" + } + ], + "id": 2602, + "name": "VariableDeclaration", + "src": "46809:51:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => address)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => address)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2603, + "name": "ElementaryTypeName", + "src": "46925:7:1" + }, + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2604, + "name": "ElementaryTypeName", + "src": "46936:7:1" + } + ], + "id": 2605, + "name": "Mapping", + "src": "46916:28:1" + } + ], + "id": 2606, + "name": "VariableDeclaration", + "src": "46916:52:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_operatorApprovals", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(address => mapping(address => bool))", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(address => mapping(address => bool))" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2607, + "name": "ElementaryTypeName", + "src": "47032:7:1" + }, + { + "attributes": { + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "name": "address", + "type": "address" + }, + "id": 2608, + "name": "ElementaryTypeName", + "src": "47052:7:1" + }, + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2609, + "name": "ElementaryTypeName", + "src": "47063:4:1" + } + ], + "id": 2610, + "name": "Mapping", + "src": "47043:25:1" + } + ], + "id": 2611, + "name": "Mapping", + "src": "47023:46:1" + } + ], + "id": 2612, + "name": "VariableDeclaration", + "src": "47023:73:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_name", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2613, + "name": "ElementaryTypeName", + "src": "47121:6:1" + } + ], + "id": 2614, + "name": "VariableDeclaration", + "src": "47121:20:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_symbol", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2615, + "name": "ElementaryTypeName", + "src": "47168:6:1" + } + ], + "id": 2616, + "name": "VariableDeclaration", + "src": "47168:22:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURIs", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "mapping(uint256 => string)", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "type": "mapping(uint256 => string)" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2617, + "name": "ElementaryTypeName", + "src": "47245:7:1" + }, + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2618, + "name": "ElementaryTypeName", + "src": "47256:6:1" + } + ], + "id": 2619, + "name": "Mapping", + "src": "47236:27:1" + } + ], + "id": 2620, + "name": "VariableDeclaration", + "src": "47236:46:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_baseURI", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "string", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2621, + "name": "ElementaryTypeName", + "src": "47305:6:1" + } + ], + "id": 2622, + "name": "VariableDeclaration", + "src": "47305:23:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2623, + "name": "ElementaryTypeName", + "src": "48204:6:1" + }, + { + "attributes": { + "hexvalue": "30783830616335386364", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2158778573", + "value": "0x80ac58cd" + }, + "id": 2624, + "name": "Literal", + "src": "48251:10:1" + } + ], + "id": 2625, + "name": "VariableDeclaration", + "src": "48204:57:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_METADATA", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2626, + "name": "ElementaryTypeName", + "src": "48527:6:1" + }, + { + "attributes": { + "hexvalue": "30783562356531333966", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 1532892063", + "value": "0x5b5e139f" + }, + "id": 2627, + "name": "Literal", + "src": "48583:10:1" + } + ], + "id": 2628, + "name": "VariableDeclaration", + "src": "48527:66:1" + }, + { + "attributes": { + "constant": true, + "mutability": "constant", + "name": "_INTERFACE_ID_ERC721_ENUMERABLE", + "scope": 3498, + "stateVariable": true, + "storageLocation": "default", + "type": "bytes4", + "visibility": "private" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 2629, + "name": "ElementaryTypeName", + "src": "48898:6:1" + }, + { + "attributes": { + "hexvalue": "30783738306539643633", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 2014223715", + "value": "0x780e9d63" + }, + "id": 2630, + "name": "Literal", + "src": "48956:10:1" + } + ], + "id": 2631, + "name": "VariableDeclaration", + "src": "48898:68:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": true, + "kind": "constructor", + "modifiers": [ + null + ], + "name": "", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." + }, + "id": 2632, + "name": "StructuredDocumentation", + "src": "48973:108:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "name_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2633, + "name": "ElementaryTypeName", + "src": "49099:6:1" + } + ], + "id": 2634, + "name": "VariableDeclaration", + "src": "49099:19:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "symbol_", + "scope": 2660, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2635, + "name": "ElementaryTypeName", + "src": "49120:6:1" + } + ], + "id": 2636, + "name": "VariableDeclaration", + "src": "49120:21:1" + } + ], + "id": 2637, + "name": "ParameterList", + "src": "49098:44:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2638, + "name": "ParameterList", + "src": "49143:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2639, + "name": "Identifier", + "src": "49153:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2634, + "type": "string memory", + "value": "name_" + }, + "id": 2640, + "name": "Identifier", + "src": "49161:5:1" + } + ], + "id": 2641, + "name": "Assignment", + "src": "49153:13:1" + } + ], + "id": 2642, + "name": "ExpressionStatement", + "src": "49153:13:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2643, + "name": "Identifier", + "src": "49176:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2636, + "type": "string memory", + "value": "symbol_" + }, + "id": 2644, + "name": "Identifier", + "src": "49186:7:1" + } + ], + "id": 2645, + "name": "Assignment", + "src": "49176:17:1" + } + ], + "id": 2646, + "name": "ExpressionStatement", + "src": "49176:17:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2647, + "name": "Identifier", + "src": "49281:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2625, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721" + }, + "id": 2648, + "name": "Identifier", + "src": "49300:20:1" + } + ], + "id": 2649, + "name": "FunctionCall", + "src": "49281:40:1" + } + ], + "id": 2650, + "name": "ExpressionStatement", + "src": "49281:40:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2651, + "name": "Identifier", + "src": "49331:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2628, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_METADATA" + }, + "id": 2652, + "name": "Identifier", + "src": "49350:29:1" + } + ], + "id": 2653, + "name": "FunctionCall", + "src": "49331:49:1" + } + ], + "id": 2654, + "name": "ExpressionStatement", + "src": "49331:49:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 780, + "type": "function (bytes4)", + "value": "_registerInterface" + }, + "id": 2655, + "name": "Identifier", + "src": "49390:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2631, + "type": "bytes4", + "value": "_INTERFACE_ID_ERC721_ENUMERABLE" + }, + "id": 2656, + "name": "Identifier", + "src": "49409:31:1" + } + ], + "id": 2657, + "name": "FunctionCall", + "src": "49390:51:1" + } + ], + "id": 2658, + "name": "ExpressionStatement", + "src": "49390:51:1" + } + ], + "id": 2659, + "name": "Block", + "src": "49143:305:1" + } + ], + "id": 2660, + "name": "FunctionDefinition", + "src": "49086:362:1" + }, + { + "attributes": { + "baseFunctions": [ + 580 + ], + "functionSelector": "70a08231", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "balanceOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-balanceOf}." + }, + "id": 2661, + "name": "StructuredDocumentation", + "src": "49454:48:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2665, + "name": "OverrideSpecifier", + "src": "49561:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2662, + "name": "ElementaryTypeName", + "src": "49526:7:1" + } + ], + "id": 2663, + "name": "VariableDeclaration", + "src": "49526:13:1" + } + ], + "id": 2664, + "name": "ParameterList", + "src": "49525:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2686, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2666, + "name": "ElementaryTypeName", + "src": "49579:7:1" + } + ], + "id": 2667, + "name": "VariableDeclaration", + "src": "49579:7:1" + } + ], + "id": 2668, + "name": "ParameterList", + "src": "49578:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_7395d4d3901c50cdfcab223d072f9aa36241df5d883e62cbf147ee1b05a9e6ba", + "typeString": "literal_string \"ERC721: balance query for the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2669, + "name": "Identifier", + "src": "49598:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2670, + "name": "Identifier", + "src": "49606:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 2671, + "name": "ElementaryTypeName", + "src": "49615:7:1" + } + ], + "id": 2672, + "name": "ElementaryTypeNameExpression", + "src": "49615:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2673, + "name": "Literal", + "src": "49623:1:1" + } + ], + "id": 2674, + "name": "FunctionCall", + "src": "49615:10:1" + } + ], + "id": 2675, + "name": "BinaryOperation", + "src": "49606:19:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a2062616c616e636520717565727920666f7220746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: balance query for the zero address\"", + "value": "ERC721: balance query for the zero address" + }, + "id": 2676, + "name": "Literal", + "src": "49627:44:1" + } + ], + "id": 2677, + "name": "FunctionCall", + "src": "49598:74:1" + } + ], + "id": 2678, + "name": "ExpressionStatement", + "src": "49598:74:1" + }, + { + "attributes": { + "functionReturnParameters": 2668 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 1900, + "type": "function (struct EnumerableSet.UintSet storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2679, + "name": "Identifier", + "src": "49689:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2663, + "type": "address", + "value": "owner" + }, + "id": 2680, + "name": "Identifier", + "src": "49703:5:1" + } + ], + "id": 2681, + "name": "IndexAccess", + "src": "49689:20:1" + } + ], + "id": 2682, + "name": "MemberAccess", + "src": "49689:27:1" + } + ], + "id": 2683, + "name": "FunctionCall", + "src": "49689:29:1" + } + ], + "id": 2684, + "name": "Return", + "src": "49682:36:1" + } + ], + "id": 2685, + "name": "Block", + "src": "49588:137:1" + } + ], + "id": 2686, + "name": "FunctionDefinition", + "src": "49507:218:1" + }, + { + "attributes": { + "baseFunctions": [ + 588 + ], + "functionSelector": "6352211e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "ownerOf", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-ownerOf}." + }, + "id": 2687, + "name": "StructuredDocumentation", + "src": "49731:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2691, + "name": "OverrideSpecifier", + "src": "49836:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2688, + "name": "ElementaryTypeName", + "src": "49799:7:1" + } + ], + "id": 2689, + "name": "VariableDeclaration", + "src": "49799:15:1" + } + ], + "id": 2690, + "name": "ParameterList", + "src": "49798:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2702, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2692, + "name": "ElementaryTypeName", + "src": "49854:7:1" + } + ], + "id": 2693, + "name": "VariableDeclaration", + "src": "49854:7:1" + } + ], + "id": 2694, + "name": "ParameterList", + "src": "49853:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2694 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_7481f3df2a424c0755a1ad2356614e9a5a358d461ea2eae1f89cb21cbad00397", + "typeString": "literal_string \"ERC721: owner query for nonexistent token\"" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "get", + "referencedDeclaration": 2479, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,string memory) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2695, + "name": "Identifier", + "src": "49880:12:1" + } + ], + "id": 2696, + "name": "MemberAccess", + "src": "49880:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2689, + "type": "uint256", + "value": "tokenId" + }, + "id": 2697, + "name": "Identifier", + "src": "49897:7:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: owner query for nonexistent token\"", + "value": "ERC721: owner query for nonexistent token" + }, + "id": 2698, + "name": "Literal", + "src": "49906:43:1" + } + ], + "id": 2699, + "name": "FunctionCall", + "src": "49880:70:1" + } + ], + "id": 2700, + "name": "Return", + "src": "49873:77:1" + } + ], + "id": 2701, + "name": "Block", + "src": "49863:94:1" + } + ], + "id": 2702, + "name": "FunctionDefinition", + "src": "49782:175:1" + }, + { + "attributes": { + "baseFunctions": [ + 665 + ], + "functionSelector": "06fdde03", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "name", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-name}." + }, + "id": 2703, + "name": "StructuredDocumentation", + "src": "49963:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2705, + "name": "OverrideSpecifier", + "src": "50055:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2704, + "name": "ParameterList", + "src": "50032:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2712, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2706, + "name": "ElementaryTypeName", + "src": "50073:6:1" + } + ], + "id": 2707, + "name": "VariableDeclaration", + "src": "50073:13:1" + } + ], + "id": 2708, + "name": "ParameterList", + "src": "50072:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2708 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2614, + "type": "string storage ref", + "value": "_name" + }, + "id": 2709, + "name": "Identifier", + "src": "50105:5:1" + } + ], + "id": 2710, + "name": "Return", + "src": "50098:12:1" + } + ], + "id": 2711, + "name": "Block", + "src": "50088:29:1" + } + ], + "id": 2712, + "name": "FunctionDefinition", + "src": "50019:98:1" + }, + { + "attributes": { + "baseFunctions": [ + 671 + ], + "functionSelector": "95d89b41", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "symbol", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-symbol}." + }, + "id": 2713, + "name": "StructuredDocumentation", + "src": "50123:53:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2715, + "name": "OverrideSpecifier", + "src": "50219:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2714, + "name": "ParameterList", + "src": "50196:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2722, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2716, + "name": "ElementaryTypeName", + "src": "50237:6:1" + } + ], + "id": 2717, + "name": "VariableDeclaration", + "src": "50237:13:1" + } + ], + "id": 2718, + "name": "ParameterList", + "src": "50236:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2718 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2616, + "type": "string storage ref", + "value": "_symbol" + }, + "id": 2719, + "name": "Identifier", + "src": "50269:7:1" + } + ], + "id": 2720, + "name": "Return", + "src": "50262:14:1" + } + ], + "id": 2721, + "name": "Block", + "src": "50252:31:1" + } + ], + "id": 2722, + "name": "FunctionDefinition", + "src": "50181:102:1" + }, + { + "attributes": { + "baseFunctions": [ + 679 + ], + "functionSelector": "c87b56dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Metadata-tokenURI}." + }, + "id": 2723, + "name": "StructuredDocumentation", + "src": "50289:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2727, + "name": "OverrideSpecifier", + "src": "50404:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2790, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2724, + "name": "ElementaryTypeName", + "src": "50367:7:1" + } + ], + "id": 2725, + "name": "VariableDeclaration", + "src": "50367:15:1" + } + ], + "id": 2726, + "name": "ParameterList", + "src": "50366:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2790, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2728, + "name": "ElementaryTypeName", + "src": "50422:6:1" + } + ], + "id": 2729, + "name": "VariableDeclaration", + "src": "50422:13:1" + } + ], + "id": 2730, + "name": "ParameterList", + "src": "50421:15:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a2d45c0fba603d40d82d590051761ca952d1ab9d78cca6d0d464d7b6e961a9cb", + "typeString": "literal_string \"ERC721Metadata: URI query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2731, + "name": "Identifier", + "src": "50447:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2732, + "name": "Identifier", + "src": "50455:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2733, + "name": "Identifier", + "src": "50463:7:1" + } + ], + "id": 2734, + "name": "FunctionCall", + "src": "50455:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI query for nonexistent token\"", + "value": "ERC721Metadata: URI query for nonexistent token" + }, + "id": 2735, + "name": "Literal", + "src": "50473:49:1" + } + ], + "id": 2736, + "name": "FunctionCall", + "src": "50447:76:1" + } + ], + "id": 2737, + "name": "ExpressionStatement", + "src": "50447:76:1" + }, + { + "attributes": { + "assignments": [ + 2739 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2738, + "name": "ElementaryTypeName", + "src": "50534:6:1" + } + ], + "id": 2739, + "name": "VariableDeclaration", + "src": "50534:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 2740, + "name": "Identifier", + "src": "50560:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2741, + "name": "Identifier", + "src": "50571:7:1" + } + ], + "id": 2742, + "name": "IndexAccess", + "src": "50560:19:1" + } + ], + "id": 2743, + "name": "VariableDeclarationStatement", + "src": "50534:45:1" + }, + { + "attributes": { + "assignments": [ + 2745 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "base", + "scope": 2789, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2744, + "name": "ElementaryTypeName", + "src": "50589:6:1" + } + ], + "id": 2745, + "name": "VariableDeclaration", + "src": "50589:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2799, + "type": "function () view returns (string memory)", + "value": "baseURI" + }, + "id": 2746, + "name": "Identifier", + "src": "50610:7:1" + } + ], + "id": 2747, + "name": "FunctionCall", + "src": "50610:9:1" + } + ], + "id": 2748, + "name": "VariableDeclarationStatement", + "src": "50589:30:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2749, + "name": "ElementaryTypeName", + "src": "50692:5:1" + } + ], + "id": 2750, + "name": "ElementaryTypeNameExpression", + "src": "50692:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2751, + "name": "Identifier", + "src": "50698:4:1" + } + ], + "id": 2752, + "name": "FunctionCall", + "src": "50692:11:1" + } + ], + "id": 2753, + "name": "MemberAccess", + "src": "50692:18:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2754, + "name": "Literal", + "src": "50714:1:1" + } + ], + "id": 2755, + "name": "BinaryOperation", + "src": "50692:23:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2756, + "name": "Identifier", + "src": "50738:9:1" + } + ], + "id": 2757, + "name": "Return", + "src": "50731:16:1" + } + ], + "id": 2758, + "name": "Block", + "src": "50717:41:1" + } + ], + "id": 2759, + "name": "IfStatement", + "src": "50688:70:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": ">", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 2760, + "name": "ElementaryTypeName", + "src": "50860:5:1" + } + ], + "id": 2761, + "name": "ElementaryTypeNameExpression", + "src": "50860:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2762, + "name": "Identifier", + "src": "50866:9:1" + } + ], + "id": 2763, + "name": "FunctionCall", + "src": "50860:16:1" + } + ], + "id": 2764, + "name": "MemberAccess", + "src": "50860:23:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 2765, + "name": "Literal", + "src": "50886:1:1" + } + ], + "id": 2766, + "name": "BinaryOperation", + "src": "50860:27:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2767, + "name": "ElementaryTypeName", + "src": "50910:6:1" + } + ], + "id": 2768, + "name": "ElementaryTypeNameExpression", + "src": "50910:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2769, + "name": "Identifier", + "src": "50917:3:1" + } + ], + "id": 2770, + "name": "MemberAccess", + "src": "50917:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2771, + "name": "Identifier", + "src": "50934:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2739, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 2772, + "name": "Identifier", + "src": "50940:9:1" + } + ], + "id": 2773, + "name": "FunctionCall", + "src": "50917:33:1" + } + ], + "id": 2774, + "name": "FunctionCall", + "src": "50910:41:1" + } + ], + "id": 2775, + "name": "Return", + "src": "50903:48:1" + } + ], + "id": 2776, + "name": "Block", + "src": "50889:73:1" + } + ], + "id": 2777, + "name": "IfStatement", + "src": "50856:106:1" + }, + { + "attributes": { + "functionReturnParameters": 2730 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(string storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "string" + }, + "id": 2778, + "name": "ElementaryTypeName", + "src": "51068:6:1" + } + ], + "id": 2779, + "name": "ElementaryTypeNameExpression", + "src": "51068:6:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + }, + { + "typeIdentifier": "t_string_memory_ptr", + "typeString": "string memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodePacked", + "type": "function () pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 2780, + "name": "Identifier", + "src": "51075:3:1" + } + ], + "id": 2781, + "name": "MemberAccess", + "src": "51075:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2745, + "type": "string memory", + "value": "base" + }, + "id": 2782, + "name": "Identifier", + "src": "51092:4:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "string memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "toString", + "referencedDeclaration": 2565, + "type": "function (uint256) pure returns (string memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2725, + "type": "uint256", + "value": "tokenId" + }, + "id": 2783, + "name": "Identifier", + "src": "51098:7:1" + } + ], + "id": 2784, + "name": "MemberAccess", + "src": "51098:16:1" + } + ], + "id": 2785, + "name": "FunctionCall", + "src": "51098:18:1" + } + ], + "id": 2786, + "name": "FunctionCall", + "src": "51075:42:1" + } + ], + "id": 2787, + "name": "FunctionCall", + "src": "51068:50:1" + } + ], + "id": 2788, + "name": "Return", + "src": "51061:57:1" + } + ], + "id": 2789, + "name": "Block", + "src": "50437:688:1" + } + ], + "id": 2790, + "name": "FunctionDefinition", + "src": "50349:776:1" + }, + { + "attributes": { + "functionSelector": "6c0360eb", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "baseURI", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns the base URI set via {_setBaseURI}. This will be\n automatically added as a prefix in {tokenURI} to each token's URI, or\n to the token ID if no specific URI is set for that token ID." + }, + "id": 2791, + "name": "StructuredDocumentation", + "src": "51131:221:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2792, + "name": "ParameterList", + "src": "51373:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2799, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 2793, + "name": "ElementaryTypeName", + "src": "51405:6:1" + } + ], + "id": 2794, + "name": "VariableDeclaration", + "src": "51405:13:1" + } + ], + "id": 2795, + "name": "ParameterList", + "src": "51404:15:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2795 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 2796, + "name": "Identifier", + "src": "51437:8:1" + } + ], + "id": 2797, + "name": "Return", + "src": "51430:15:1" + } + ], + "id": 2798, + "name": "Block", + "src": "51420:32:1" + } + ], + "id": 2799, + "name": "FunctionDefinition", + "src": "51357:95:1" + }, + { + "attributes": { + "baseFunctions": [ + 700 + ], + "functionSelector": "2f745c59", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenOfOwnerByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenOfOwnerByIndex}." + }, + "id": 2800, + "name": "StructuredDocumentation", + "src": "51458:68:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2806, + "name": "OverrideSpecifier", + "src": "51610:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2801, + "name": "ElementaryTypeName", + "src": "51560:7:1" + } + ], + "id": 2802, + "name": "VariableDeclaration", + "src": "51560:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2803, + "name": "ElementaryTypeName", + "src": "51575:7:1" + } + ], + "id": 2804, + "name": "VariableDeclaration", + "src": "51575:13:1" + } + ], + "id": 2805, + "name": "ParameterList", + "src": "51559:30:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2818, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2807, + "name": "ElementaryTypeName", + "src": "51628:7:1" + } + ], + "id": 2808, + "name": "VariableDeclaration", + "src": "51628:7:1" + } + ], + "id": 2809, + "name": "ParameterList", + "src": "51627:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2809 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 1920, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 2810, + "name": "Identifier", + "src": "51654:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2802, + "type": "address", + "value": "owner" + }, + "id": 2811, + "name": "Identifier", + "src": "51668:5:1" + } + ], + "id": 2812, + "name": "IndexAccess", + "src": "51654:20:1" + } + ], + "id": 2813, + "name": "MemberAccess", + "src": "51654:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2804, + "type": "uint256", + "value": "index" + }, + "id": 2814, + "name": "Identifier", + "src": "51678:5:1" + } + ], + "id": 2815, + "name": "FunctionCall", + "src": "51654:30:1" + } + ], + "id": 2816, + "name": "Return", + "src": "51647:37:1" + } + ], + "id": 2817, + "name": "Block", + "src": "51637:54:1" + } + ], + "id": 2818, + "name": "FunctionDefinition", + "src": "51531:160:1" + }, + { + "attributes": { + "baseFunctions": [ + 690 + ], + "functionSelector": "18160ddd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "totalSupply", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-totalSupply}." + }, + "id": 2819, + "name": "StructuredDocumentation", + "src": "51697:60:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2821, + "name": "OverrideSpecifier", + "src": "51805:8:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2820, + "name": "ParameterList", + "src": "51782:2:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2830, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2822, + "name": "ElementaryTypeName", + "src": "51823:7:1" + } + ], + "id": 2823, + "name": "VariableDeclaration", + "src": "51823:7:1" + } + ], + "id": 2824, + "name": "ParameterList", + "src": "51822:9:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2824 + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "uint256", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "referencedDeclaration": 2340, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer) view returns (uint256)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2825, + "name": "Identifier", + "src": "51942:12:1" + } + ], + "id": 2826, + "name": "MemberAccess", + "src": "51942:19:1" + } + ], + "id": 2827, + "name": "FunctionCall", + "src": "51942:21:1" + } + ], + "id": 2828, + "name": "Return", + "src": "51935:28:1" + } + ], + "id": 2829, + "name": "Block", + "src": "51832:138:1" + } + ], + "id": 2830, + "name": "FunctionDefinition", + "src": "51762:208:1" + }, + { + "attributes": { + "baseFunctions": [ + 708 + ], + "functionSelector": "4f6ccce7", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "tokenByIndex", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721Enumerable-tokenByIndex}." + }, + "id": 2831, + "name": "StructuredDocumentation", + "src": "51976:61:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2835, + "name": "OverrideSpecifier", + "src": "52099:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "index", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2832, + "name": "ElementaryTypeName", + "src": "52064:7:1" + } + ], + "id": 2833, + "name": "VariableDeclaration", + "src": "52064:13:1" + } + ], + "id": 2834, + "name": "ParameterList", + "src": "52063:15:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2849, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2836, + "name": "ElementaryTypeName", + "src": "52117:7:1" + } + ], + "id": 2837, + "name": "VariableDeclaration", + "src": "52117:7:1" + } + ], + "id": 2838, + "name": "ParameterList", + "src": "52116:9:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2840, + null + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2848, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2839, + "name": "ElementaryTypeName", + "src": "52137:7:1" + } + ], + "id": 2840, + "name": "VariableDeclaration", + "src": "52137:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple(uint256,address)", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "at", + "referencedDeclaration": 2379, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (uint256,address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 2841, + "name": "Identifier", + "src": "52158:12:1" + } + ], + "id": 2842, + "name": "MemberAccess", + "src": "52158:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2833, + "type": "uint256", + "value": "index" + }, + "id": 2843, + "name": "Identifier", + "src": "52174:5:1" + } + ], + "id": 2844, + "name": "FunctionCall", + "src": "52158:22:1" + } + ], + "id": 2845, + "name": "VariableDeclarationStatement", + "src": "52136:44:1" + }, + { + "attributes": { + "functionReturnParameters": 2838 + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2840, + "type": "uint256", + "value": "tokenId" + }, + "id": 2846, + "name": "Identifier", + "src": "52197:7:1" + } + ], + "id": 2847, + "name": "Return", + "src": "52190:14:1" + } + ], + "id": 2848, + "name": "Block", + "src": "52126:85:1" + } + ], + "id": 2849, + "name": "FunctionDefinition", + "src": "52042:169:1" + }, + { + "attributes": { + "baseFunctions": [ + 616 + ], + "functionSelector": "095ea7b3", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-approve}." + }, + "id": 2850, + "name": "StructuredDocumentation", + "src": "52217:46:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2856, + "name": "OverrideSpecifier", + "src": "52329:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2851, + "name": "ElementaryTypeName", + "src": "52285:7:1" + } + ], + "id": 2852, + "name": "VariableDeclaration", + "src": "52285:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2893, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2853, + "name": "ElementaryTypeName", + "src": "52297:7:1" + } + ], + "id": 2854, + "name": "VariableDeclaration", + "src": "52297:15:1" + } + ], + "id": 2855, + "name": "ParameterList", + "src": "52284:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2857, + "name": "ParameterList", + "src": "52338:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 2859 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2892, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2858, + "name": "ElementaryTypeName", + "src": "52348:7:1" + } + ], + "id": 2859, + "name": "VariableDeclaration", + "src": "52348:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2860, + "name": "Identifier", + "src": "52364:6:1" + } + ], + "id": 2861, + "name": "MemberAccess", + "src": "52364:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2862, + "name": "Identifier", + "src": "52379:7:1" + } + ], + "id": 2863, + "name": "FunctionCall", + "src": "52364:23:1" + } + ], + "id": 2864, + "name": "VariableDeclarationStatement", + "src": "52348:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", + "typeString": "literal_string \"ERC721: approval to current owner\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2865, + "name": "Identifier", + "src": "52397:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2866, + "name": "Identifier", + "src": "52405:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2867, + "name": "Identifier", + "src": "52411:5:1" + } + ], + "id": 2868, + "name": "BinaryOperation", + "src": "52405:11:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approval to current owner\"", + "value": "ERC721: approval to current owner" + }, + "id": 2869, + "name": "Literal", + "src": "52418:35:1" + } + ], + "id": 2870, + "name": "FunctionCall", + "src": "52397:57:1" + } + ], + "id": 2871, + "name": "ExpressionStatement", + "src": "52397:57:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_6d83cef3e0cb19b8320a9c5feb26b56bbb08f152a8e61b12eca3302d8d68b23d", + "typeString": "literal_string \"ERC721: approve caller is not owner nor approved for all\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2872, + "name": "Identifier", + "src": "52465:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2873, + "name": "Identifier", + "src": "52473:10:1" + } + ], + "id": 2874, + "name": "FunctionCall", + "src": "52473:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2875, + "name": "Identifier", + "src": "52489:5:1" + } + ], + "id": 2876, + "name": "BinaryOperation", + "src": "52473:21:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 2877, + "name": "Identifier", + "src": "52498:6:1" + } + ], + "id": 2878, + "name": "MemberAccess", + "src": "52498:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2859, + "type": "address", + "value": "owner" + }, + "id": 2879, + "name": "Identifier", + "src": "52522:5:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2880, + "name": "Identifier", + "src": "52529:10:1" + } + ], + "id": 2881, + "name": "FunctionCall", + "src": "52529:12:1" + } + ], + "id": 2882, + "name": "FunctionCall", + "src": "52498:44:1" + } + ], + "id": 2883, + "name": "BinaryOperation", + "src": "52473:69:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve caller is not owner nor approved for all\"", + "value": "ERC721: approve caller is not owner nor approved for all" + }, + "id": 2884, + "name": "Literal", + "src": "52556:58:1" + } + ], + "id": 2885, + "name": "FunctionCall", + "src": "52465:159:1" + } + ], + "id": 2886, + "name": "ExpressionStatement", + "src": "52465:159:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 2887, + "name": "Identifier", + "src": "52635:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2852, + "type": "address", + "value": "to" + }, + "id": 2888, + "name": "Identifier", + "src": "52644:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2854, + "type": "uint256", + "value": "tokenId" + }, + "id": 2889, + "name": "Identifier", + "src": "52648:7:1" + } + ], + "id": 2890, + "name": "FunctionCall", + "src": "52635:21:1" + } + ], + "id": 2891, + "name": "ExpressionStatement", + "src": "52635:21:1" + } + ], + "id": 2892, + "name": "Block", + "src": "52338:325:1" + } + ], + "id": 2893, + "name": "FunctionDefinition", + "src": "52268:395:1" + }, + { + "attributes": { + "baseFunctions": [ + 624 + ], + "functionSelector": "081812fc", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "getApproved", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-getApproved}." + }, + "id": 2894, + "name": "StructuredDocumentation", + "src": "52669:50:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2898, + "name": "OverrideSpecifier", + "src": "52782:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2895, + "name": "ElementaryTypeName", + "src": "52745:7:1" + } + ], + "id": 2896, + "name": "VariableDeclaration", + "src": "52745:15:1" + } + ], + "id": 2897, + "name": "ParameterList", + "src": "52744:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2914, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2899, + "name": "ElementaryTypeName", + "src": "52800:7:1" + } + ], + "id": 2900, + "name": "VariableDeclaration", + "src": "52800:7:1" + } + ], + "id": 2901, + "name": "ParameterList", + "src": "52799:9:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_9291e0f44949204f2e9b40e6be090924979d6047b2365868f4e9f027722eb89d", + "typeString": "literal_string \"ERC721: approved query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2902, + "name": "Identifier", + "src": "52819:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 2903, + "name": "Identifier", + "src": "52827:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2904, + "name": "Identifier", + "src": "52835:7:1" + } + ], + "id": 2905, + "name": "FunctionCall", + "src": "52827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approved query for nonexistent token\"", + "value": "ERC721: approved query for nonexistent token" + }, + "id": 2906, + "name": "Literal", + "src": "52845:46:1" + } + ], + "id": 2907, + "name": "FunctionCall", + "src": "52819:73:1" + } + ], + "id": 2908, + "name": "ExpressionStatement", + "src": "52819:73:1" + }, + { + "attributes": { + "functionReturnParameters": 2901 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 2909, + "name": "Identifier", + "src": "52910:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2896, + "type": "uint256", + "value": "tokenId" + }, + "id": 2910, + "name": "Identifier", + "src": "52926:7:1" + } + ], + "id": 2911, + "name": "IndexAccess", + "src": "52910:24:1" + } + ], + "id": 2912, + "name": "Return", + "src": "52903:31:1" + } + ], + "id": 2913, + "name": "Block", + "src": "52809:132:1" + } + ], + "id": 2914, + "name": "FunctionDefinition", + "src": "52724:217:1" + }, + { + "attributes": { + "baseFunctions": [ + 632 + ], + "functionSelector": "a22cb465", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "setApprovalForAll", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-setApprovalForAll}." + }, + "id": 2915, + "name": "StructuredDocumentation", + "src": "52947:56:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2921, + "name": "OverrideSpecifier", + "src": "53083:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2916, + "name": "ElementaryTypeName", + "src": "53035:7:1" + } + ], + "id": 2917, + "name": "VariableDeclaration", + "src": "53035:16:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "approved", + "scope": 2948, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2918, + "name": "ElementaryTypeName", + "src": "53053:4:1" + } + ], + "id": 2919, + "name": "VariableDeclaration", + "src": "53053:13:1" + } + ], + "id": 2920, + "name": "ParameterList", + "src": "53034:33:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2922, + "name": "ParameterList", + "src": "53092:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", + "typeString": "literal_string \"ERC721: approve to caller\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2923, + "name": "Identifier", + "src": "53102:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2924, + "name": "Identifier", + "src": "53110:8:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2925, + "name": "Identifier", + "src": "53122:10:1" + } + ], + "id": 2926, + "name": "FunctionCall", + "src": "53122:12:1" + } + ], + "id": 2927, + "name": "BinaryOperation", + "src": "53110:24:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20617070726f766520746f2063616c6c6572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: approve to caller\"", + "value": "ERC721: approve to caller" + }, + "id": 2928, + "name": "Literal", + "src": "53136:27:1" + } + ], + "id": 2929, + "name": "FunctionCall", + "src": "53102:62:1" + } + ], + "id": 2930, + "name": "ExpressionStatement", + "src": "53102:62:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2931, + "name": "Identifier", + "src": "53175:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2932, + "name": "Identifier", + "src": "53194:10:1" + } + ], + "id": 2933, + "name": "FunctionCall", + "src": "53194:12:1" + } + ], + "id": 2935, + "name": "IndexAccess", + "src": "53175:32:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2934, + "name": "Identifier", + "src": "53208:8:1" + } + ], + "id": 2936, + "name": "IndexAccess", + "src": "53175:42:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2937, + "name": "Identifier", + "src": "53220:8:1" + } + ], + "id": 2938, + "name": "Assignment", + "src": "53175:53:1" + } + ], + "id": 2939, + "name": "ExpressionStatement", + "src": "53175:53:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_bool", + "typeString": "bool" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 572, + "type": "function (address,address,bool)", + "value": "ApprovalForAll" + }, + "id": 2940, + "name": "Identifier", + "src": "53243:14:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2941, + "name": "Identifier", + "src": "53258:10:1" + } + ], + "id": 2942, + "name": "FunctionCall", + "src": "53258:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2917, + "type": "address", + "value": "operator" + }, + "id": 2943, + "name": "Identifier", + "src": "53272:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2919, + "type": "bool", + "value": "approved" + }, + "id": 2944, + "name": "Identifier", + "src": "53282:8:1" + } + ], + "id": 2945, + "name": "FunctionCall", + "src": "53243:48:1" + } + ], + "id": 2946, + "name": "EmitStatement", + "src": "53238:53:1" + } + ], + "id": 2947, + "name": "Block", + "src": "53092:206:1" + } + ], + "id": 2948, + "name": "FunctionDefinition", + "src": "53008:290:1" + }, + { + "attributes": { + "baseFunctions": [ + 642 + ], + "functionSelector": "e985e9c5", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "isApprovedForAll", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-isApprovedForAll}." + }, + "id": 2949, + "name": "StructuredDocumentation", + "src": "53304:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2955, + "name": "OverrideSpecifier", + "src": "53443:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2950, + "name": "ElementaryTypeName", + "src": "53390:7:1" + } + ], + "id": 2951, + "name": "VariableDeclaration", + "src": "53390:13:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "operator", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2952, + "name": "ElementaryTypeName", + "src": "53405:7:1" + } + ], + "id": 2953, + "name": "VariableDeclaration", + "src": "53405:16:1" + } + ], + "id": 2954, + "name": "ParameterList", + "src": "53389:33:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 2966, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 2956, + "name": "ElementaryTypeName", + "src": "53461:4:1" + } + ], + "id": 2957, + "name": "VariableDeclaration", + "src": "53461:4:1" + } + ], + "id": 2958, + "name": "ParameterList", + "src": "53460:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 2958 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "mapping(address => bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2612, + "type": "mapping(address => mapping(address => bool))", + "value": "_operatorApprovals" + }, + "id": 2959, + "name": "Identifier", + "src": "53484:18:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2951, + "type": "address", + "value": "owner" + }, + "id": 2960, + "name": "Identifier", + "src": "53503:5:1" + } + ], + "id": 2961, + "name": "IndexAccess", + "src": "53484:25:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2953, + "type": "address", + "value": "operator" + }, + "id": 2962, + "name": "Identifier", + "src": "53510:8:1" + } + ], + "id": 2963, + "name": "IndexAccess", + "src": "53484:35:1" + } + ], + "id": 2964, + "name": "Return", + "src": "53477:42:1" + } + ], + "id": 2965, + "name": "Block", + "src": "53467:59:1" + } + ], + "id": 2966, + "name": "FunctionDefinition", + "src": "53364:162:1" + }, + { + "attributes": { + "baseFunctions": [ + 608 + ], + "functionSelector": "23b872dd", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "transferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-transferFrom}." + }, + "id": 2967, + "name": "StructuredDocumentation", + "src": "53532:51:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 2975, + "name": "OverrideSpecifier", + "src": "53668:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2968, + "name": "ElementaryTypeName", + "src": "53610:7:1" + } + ], + "id": 2969, + "name": "VariableDeclaration", + "src": "53610:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2970, + "name": "ElementaryTypeName", + "src": "53624:7:1" + } + ], + "id": 2971, + "name": "VariableDeclaration", + "src": "53624:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 2993, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2972, + "name": "ElementaryTypeName", + "src": "53636:7:1" + } + ], + "id": 2973, + "name": "VariableDeclaration", + "src": "53636:15:1" + } + ], + "id": 2974, + "name": "ParameterList", + "src": "53609:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 2976, + "name": "ParameterList", + "src": "53677:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 2977, + "name": "Identifier", + "src": "53739:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 2978, + "name": "Identifier", + "src": "53747:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 2979, + "name": "Identifier", + "src": "53766:10:1" + } + ], + "id": 2980, + "name": "FunctionCall", + "src": "53766:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2981, + "name": "Identifier", + "src": "53780:7:1" + } + ], + "id": 2982, + "name": "FunctionCall", + "src": "53747:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 2983, + "name": "Literal", + "src": "53790:51:1" + } + ], + "id": 2984, + "name": "FunctionCall", + "src": "53739:103:1" + } + ], + "id": 2985, + "name": "ExpressionStatement", + "src": "53739:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 2986, + "name": "Identifier", + "src": "53853:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2969, + "type": "address", + "value": "from" + }, + "id": 2987, + "name": "Identifier", + "src": "53863:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2971, + "type": "address", + "value": "to" + }, + "id": 2988, + "name": "Identifier", + "src": "53869:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2973, + "type": "uint256", + "value": "tokenId" + }, + "id": 2989, + "name": "Identifier", + "src": "53873:7:1" + } + ], + "id": 2990, + "name": "FunctionCall", + "src": "53853:28:1" + } + ], + "id": 2991, + "name": "ExpressionStatement", + "src": "53853:28:1" + } + ], + "id": 2992, + "name": "Block", + "src": "53677:211:1" + } + ], + "id": 2993, + "name": "FunctionDefinition", + "src": "53588:300:1" + }, + { + "attributes": { + "baseFunctions": [ + 598 + ], + "functionSelector": "42842e0e", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 2994, + "name": "StructuredDocumentation", + "src": "53894:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3002, + "name": "OverrideSpecifier", + "src": "54038:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2995, + "name": "ElementaryTypeName", + "src": "53980:7:1" + } + ], + "id": 2996, + "name": "VariableDeclaration", + "src": "53980:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 2997, + "name": "ElementaryTypeName", + "src": "53994:7:1" + } + ], + "id": 2998, + "name": "VariableDeclaration", + "src": "53994:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3012, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 2999, + "name": "ElementaryTypeName", + "src": "54006:7:1" + } + ], + "id": 3000, + "name": "VariableDeclaration", + "src": "54006:15:1" + } + ], + "id": 3001, + "name": "ParameterList", + "src": "53979:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3003, + "name": "ParameterList", + "src": "54047:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3012, + 3042 + ], + "referencedDeclaration": 3042, + "type": "function (address,address,uint256,bytes memory)", + "value": "safeTransferFrom" + }, + "id": 3004, + "name": "Identifier", + "src": "54057:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2996, + "type": "address", + "value": "from" + }, + "id": 3005, + "name": "Identifier", + "src": "54074:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2998, + "type": "address", + "value": "to" + }, + "id": 3006, + "name": "Identifier", + "src": "54080:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3000, + "type": "uint256", + "value": "tokenId" + }, + "id": 3007, + "name": "Identifier", + "src": "54084:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3008, + "name": "Literal", + "src": "54093:2:1" + } + ], + "id": 3009, + "name": "FunctionCall", + "src": "54057:39:1" + } + ], + "id": 3010, + "name": "ExpressionStatement", + "src": "54057:39:1" + } + ], + "id": 3011, + "name": "Block", + "src": "54047:56:1" + } + ], + "id": 3012, + "name": "FunctionDefinition", + "src": "53954:149:1" + }, + { + "attributes": { + "baseFunctions": [ + 654 + ], + "functionSelector": "b88d4fde", + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "safeTransferFrom", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "public" + }, + "children": [ + { + "attributes": { + "text": " @dev See {IERC721-safeTransferFrom}." + }, + "id": 3013, + "name": "StructuredDocumentation", + "src": "54109:55:1" + }, + { + "attributes": { + "overrides": [ + null + ] + }, + "id": 3023, + "name": "OverrideSpecifier", + "src": "54273:8:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3014, + "name": "ElementaryTypeName", + "src": "54195:7:1" + } + ], + "id": 3015, + "name": "VariableDeclaration", + "src": "54195:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3016, + "name": "ElementaryTypeName", + "src": "54209:7:1" + } + ], + "id": 3017, + "name": "VariableDeclaration", + "src": "54209:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3042, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3018, + "name": "ElementaryTypeName", + "src": "54221:7:1" + } + ], + "id": 3019, + "name": "VariableDeclaration", + "src": "54221:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3042, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3020, + "name": "ElementaryTypeName", + "src": "54238:5:1" + } + ], + "id": 3021, + "name": "VariableDeclaration", + "src": "54238:18:1" + } + ], + "id": 3022, + "name": "ParameterList", + "src": "54194:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3024, + "name": "ParameterList", + "src": "54282:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_c8682f3ad98807db59a6ec6bb812b72fed0a66e3150fa8239699ee83885247f2", + "typeString": "literal_string \"ERC721: transfer caller is not owner nor approved\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3025, + "name": "Identifier", + "src": "54292:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3127, + "type": "function (address,uint256) view returns (bool)", + "value": "_isApprovedOrOwner" + }, + "id": 3026, + "name": "Identifier", + "src": "54300:18:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3027, + "name": "Identifier", + "src": "54319:10:1" + } + ], + "id": 3028, + "name": "FunctionCall", + "src": "54319:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3029, + "name": "Identifier", + "src": "54333:7:1" + } + ], + "id": 3030, + "name": "FunctionCall", + "src": "54300:41:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f766564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer caller is not owner nor approved\"", + "value": "ERC721: transfer caller is not owner nor approved" + }, + "id": 3031, + "name": "Literal", + "src": "54343:51:1" + } + ], + "id": 3032, + "name": "FunctionCall", + "src": "54292:103:1" + } + ], + "id": 3033, + "name": "ExpressionStatement", + "src": "54292:103:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3071, + "type": "function (address,address,uint256,bytes memory)", + "value": "_safeTransfer" + }, + "id": 3034, + "name": "Identifier", + "src": "54405:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3015, + "type": "address", + "value": "from" + }, + "id": 3035, + "name": "Identifier", + "src": "54419:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3017, + "type": "address", + "value": "to" + }, + "id": 3036, + "name": "Identifier", + "src": "54425:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3019, + "type": "uint256", + "value": "tokenId" + }, + "id": 3037, + "name": "Identifier", + "src": "54429:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3021, + "type": "bytes memory", + "value": "_data" + }, + "id": 3038, + "name": "Identifier", + "src": "54438:5:1" + } + ], + "id": 3039, + "name": "FunctionCall", + "src": "54405:39:1" + } + ], + "id": 3040, + "name": "ExpressionStatement", + "src": "54405:39:1" + } + ], + "id": 3041, + "name": "Block", + "src": "54282:169:1" + } + ], + "id": 3042, + "name": "FunctionDefinition", + "src": "54169:282:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n `_data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3043, + "name": "StructuredDocumentation", + "src": "54457:851:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3044, + "name": "ElementaryTypeName", + "src": "55336:7:1" + } + ], + "id": 3045, + "name": "VariableDeclaration", + "src": "55336:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3046, + "name": "ElementaryTypeName", + "src": "55350:7:1" + } + ], + "id": 3047, + "name": "VariableDeclaration", + "src": "55350:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3071, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3048, + "name": "ElementaryTypeName", + "src": "55362:7:1" + } + ], + "id": 3049, + "name": "VariableDeclaration", + "src": "55362:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3071, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3050, + "name": "ElementaryTypeName", + "src": "55379:5:1" + } + ], + "id": 3051, + "name": "VariableDeclaration", + "src": "55379:18:1" + } + ], + "id": 3052, + "name": "ParameterList", + "src": "55335:63:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3053, + "name": "ParameterList", + "src": "55416:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3371, + "type": "function (address,address,uint256)", + "value": "_transfer" + }, + "id": 3054, + "name": "Identifier", + "src": "55426:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3055, + "name": "Identifier", + "src": "55436:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3056, + "name": "Identifier", + "src": "55442:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3057, + "name": "Identifier", + "src": "55446:7:1" + } + ], + "id": 3058, + "name": "FunctionCall", + "src": "55426:28:1" + } + ], + "id": 3059, + "name": "ExpressionStatement", + "src": "55426:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3060, + "name": "Identifier", + "src": "55464:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3061, + "name": "Identifier", + "src": "55472:22:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3045, + "type": "address", + "value": "from" + }, + "id": 3062, + "name": "Identifier", + "src": "55495:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3047, + "type": "address", + "value": "to" + }, + "id": 3063, + "name": "Identifier", + "src": "55501:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3049, + "type": "uint256", + "value": "tokenId" + }, + "id": 3064, + "name": "Identifier", + "src": "55505:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3051, + "type": "bytes memory", + "value": "_data" + }, + "id": 3065, + "name": "Identifier", + "src": "55514:5:1" + } + ], + "id": 3066, + "name": "FunctionCall", + "src": "55472:48:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3067, + "name": "Literal", + "src": "55522:52:1" + } + ], + "id": 3068, + "name": "FunctionCall", + "src": "55464:111:1" + } + ], + "id": 3069, + "name": "ExpressionStatement", + "src": "55464:111:1" + } + ], + "id": 3070, + "name": "Block", + "src": "55416:166:1" + } + ], + "id": 3071, + "name": "FunctionDefinition", + "src": "55313:269:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_exists", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." + }, + "id": 3072, + "name": "StructuredDocumentation", + "src": "55588:292:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3073, + "name": "ElementaryTypeName", + "src": "55902:7:1" + } + ], + "id": 3074, + "name": "VariableDeclaration", + "src": "55902:15:1" + } + ], + "id": 3075, + "name": "ParameterList", + "src": "55901:17:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3085, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3076, + "name": "ElementaryTypeName", + "src": "55950:4:1" + } + ], + "id": 3077, + "name": "VariableDeclaration", + "src": "55950:4:1" + } + ], + "id": 3078, + "name": "ParameterList", + "src": "55949:6:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3078 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "contains", + "referencedDeclaration": 2326, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3079, + "name": "Identifier", + "src": "55973:12:1" + } + ], + "id": 3080, + "name": "MemberAccess", + "src": "55973:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3074, + "type": "uint256", + "value": "tokenId" + }, + "id": 3081, + "name": "Identifier", + "src": "55995:7:1" + } + ], + "id": 3082, + "name": "FunctionCall", + "src": "55973:30:1" + } + ], + "id": 3083, + "name": "Return", + "src": "55966:37:1" + } + ], + "id": 3084, + "name": "Block", + "src": "55956:54:1" + } + ], + "id": 3085, + "name": "FunctionDefinition", + "src": "55885:125:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_isApprovedOrOwner", + "scope": 3498, + "stateMutability": "view", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3086, + "name": "StructuredDocumentation", + "src": "56016:147:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "spender", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3087, + "name": "ElementaryTypeName", + "src": "56196:7:1" + } + ], + "id": 3088, + "name": "VariableDeclaration", + "src": "56196:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3089, + "name": "ElementaryTypeName", + "src": "56213:7:1" + } + ], + "id": 3090, + "name": "VariableDeclaration", + "src": "56213:15:1" + } + ], + "id": 3091, + "name": "ParameterList", + "src": "56195:34:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3127, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3092, + "name": "ElementaryTypeName", + "src": "56261:4:1" + } + ], + "id": 3093, + "name": "VariableDeclaration", + "src": "56261:4:1" + } + ], + "id": 3094, + "name": "ParameterList", + "src": "56260:6:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_5797d1ccb08b83980dd0c07ea40d8f6a64d35fff736a19bdd17522954cb0899c", + "typeString": "literal_string \"ERC721: operator query for nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3095, + "name": "Identifier", + "src": "56277:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3096, + "name": "Identifier", + "src": "56285:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3097, + "name": "Identifier", + "src": "56293:7:1" + } + ], + "id": 3098, + "name": "FunctionCall", + "src": "56285:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: operator query for nonexistent token\"", + "value": "ERC721: operator query for nonexistent token" + }, + "id": 3099, + "name": "Literal", + "src": "56303:46:1" + } + ], + "id": 3100, + "name": "FunctionCall", + "src": "56277:73:1" + } + ], + "id": 3101, + "name": "ExpressionStatement", + "src": "56277:73:1" + }, + { + "attributes": { + "assignments": [ + 3103 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3126, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3102, + "name": "ElementaryTypeName", + "src": "56360:7:1" + } + ], + "id": 3103, + "name": "VariableDeclaration", + "src": "56360:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3104, + "name": "Identifier", + "src": "56376:6:1" + } + ], + "id": 3105, + "name": "MemberAccess", + "src": "56376:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3106, + "name": "Identifier", + "src": "56391:7:1" + } + ], + "id": 3107, + "name": "FunctionCall", + "src": "56376:23:1" + } + ], + "id": 3108, + "name": "VariableDeclarationStatement", + "src": "56360:39:1" + }, + { + "attributes": { + "functionReturnParameters": 3094 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "||", + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3109, + "name": "Identifier", + "src": "56417:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3110, + "name": "Identifier", + "src": "56428:5:1" + } + ], + "id": 3111, + "name": "BinaryOperation", + "src": "56417:16:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2914, + "type": "function (uint256) view returns (address)", + "value": "getApproved" + }, + "id": 3112, + "name": "Identifier", + "src": "56437:11:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3090, + "type": "uint256", + "value": "tokenId" + }, + "id": 3113, + "name": "Identifier", + "src": "56449:7:1" + } + ], + "id": 3114, + "name": "FunctionCall", + "src": "56437:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3115, + "name": "Identifier", + "src": "56461:7:1" + } + ], + "id": 3116, + "name": "BinaryOperation", + "src": "56437:31:1" + } + ], + "id": 3117, + "name": "BinaryOperation", + "src": "56417:51:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isApprovedForAll", + "referencedDeclaration": 2966, + "type": "function (address,address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3118, + "name": "Identifier", + "src": "56472:6:1" + } + ], + "id": 3119, + "name": "MemberAccess", + "src": "56472:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3103, + "type": "address", + "value": "owner" + }, + "id": 3120, + "name": "Identifier", + "src": "56496:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3088, + "type": "address", + "value": "spender" + }, + "id": 3121, + "name": "Identifier", + "src": "56503:7:1" + } + ], + "id": 3122, + "name": "FunctionCall", + "src": "56472:39:1" + } + ], + "id": 3123, + "name": "BinaryOperation", + "src": "56417:94:1" + } + ], + "id": 3124, + "name": "TupleExpression", + "src": "56416:96:1" + } + ], + "id": 3125, + "name": "Return", + "src": "56409:103:1" + } + ], + "id": 3126, + "name": "Block", + "src": "56267:252:1" + } + ], + "id": 3127, + "name": "FunctionDefinition", + "src": "56168:351:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\nd*\n - `tokenId` must not exist.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." + }, + "id": 3128, + "name": "StructuredDocumentation", + "src": "56525:320:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3129, + "name": "ElementaryTypeName", + "src": "56869:7:1" + } + ], + "id": 3130, + "name": "VariableDeclaration", + "src": "56869:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3142, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3131, + "name": "ElementaryTypeName", + "src": "56881:7:1" + } + ], + "id": 3132, + "name": "VariableDeclaration", + "src": "56881:15:1" + } + ], + "id": 3133, + "name": "ParameterList", + "src": "56868:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3134, + "name": "ParameterList", + "src": "56915:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", + "typeString": "literal_string \"\"" + } + ], + "overloadedDeclarations": [ + 3142, + 3171 + ], + "referencedDeclaration": 3171, + "type": "function (address,uint256,bytes memory)", + "value": "_safeMint" + }, + "id": 3135, + "name": "Identifier", + "src": "56925:9:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3130, + "type": "address", + "value": "to" + }, + "id": 3136, + "name": "Identifier", + "src": "56935:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3132, + "type": "uint256", + "value": "tokenId" + }, + "id": 3137, + "name": "Identifier", + "src": "56939:7:1" + }, + { + "attributes": { + "hexvalue": "", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"\"", + "value": "" + }, + "id": 3138, + "name": "Literal", + "src": "56948:2:1" + } + ], + "id": 3139, + "name": "FunctionCall", + "src": "56925:26:1" + } + ], + "id": 3140, + "name": "ExpressionStatement", + "src": "56925:26:1" + } + ], + "id": 3141, + "name": "Block", + "src": "56915:43:1" + } + ], + "id": 3142, + "name": "FunctionDefinition", + "src": "56850:108:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_safeMint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." + }, + "id": 3143, + "name": "StructuredDocumentation", + "src": "56964:210:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3144, + "name": "ElementaryTypeName", + "src": "57198:7:1" + } + ], + "id": 3145, + "name": "VariableDeclaration", + "src": "57198:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3171, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3146, + "name": "ElementaryTypeName", + "src": "57210:7:1" + } + ], + "id": 3147, + "name": "VariableDeclaration", + "src": "57210:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3171, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3148, + "name": "ElementaryTypeName", + "src": "57227:5:1" + } + ], + "id": 3149, + "name": "VariableDeclaration", + "src": "57227:18:1" + } + ], + "id": 3150, + "name": "ParameterList", + "src": "57197:49:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3151, + "name": "ParameterList", + "src": "57264:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3230, + "type": "function (address,uint256)", + "value": "_mint" + }, + "id": 3152, + "name": "Identifier", + "src": "57274:5:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3153, + "name": "Identifier", + "src": "57280:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3154, + "name": "Identifier", + "src": "57284:7:1" + } + ], + "id": 3155, + "name": "FunctionCall", + "src": "57274:18:1" + } + ], + "id": 3156, + "name": "ExpressionStatement", + "src": "57274:18:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3157, + "name": "Identifier", + "src": "57302:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3462, + "type": "function (address,address,uint256,bytes memory) returns (bool)", + "value": "_checkOnERC721Received" + }, + "id": 3158, + "name": "Identifier", + "src": "57310:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3159, + "name": "ElementaryTypeName", + "src": "57333:7:1" + } + ], + "id": 3160, + "name": "ElementaryTypeNameExpression", + "src": "57333:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3161, + "name": "Literal", + "src": "57341:1:1" + } + ], + "id": 3162, + "name": "FunctionCall", + "src": "57333:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3145, + "type": "address", + "value": "to" + }, + "id": 3163, + "name": "Identifier", + "src": "57345:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3147, + "type": "uint256", + "value": "tokenId" + }, + "id": 3164, + "name": "Identifier", + "src": "57349:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3149, + "type": "bytes memory", + "value": "_data" + }, + "id": 3165, + "name": "Identifier", + "src": "57358:5:1" + } + ], + "id": 3166, + "name": "FunctionCall", + "src": "57310:54:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3167, + "name": "Literal", + "src": "57366:52:1" + } + ], + "id": 3168, + "name": "FunctionCall", + "src": "57302:117:1" + } + ], + "id": 3169, + "name": "ExpressionStatement", + "src": "57302:117:1" + } + ], + "id": 3170, + "name": "Block", + "src": "57264:162:1" + } + ], + "id": 3171, + "name": "FunctionDefinition", + "src": "57179:247:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_mint", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." + }, + "id": 3172, + "name": "StructuredDocumentation", + "src": "57432:311:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3173, + "name": "ElementaryTypeName", + "src": "57763:7:1" + } + ], + "id": 3174, + "name": "VariableDeclaration", + "src": "57763:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3230, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3175, + "name": "ElementaryTypeName", + "src": "57775:7:1" + } + ], + "id": 3176, + "name": "VariableDeclaration", + "src": "57775:15:1" + } + ], + "id": 3177, + "name": "ParameterList", + "src": "57762:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3178, + "name": "ParameterList", + "src": "57809:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", + "typeString": "literal_string \"ERC721: mint to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3179, + "name": "Identifier", + "src": "57819:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3180, + "name": "Identifier", + "src": "57827:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3181, + "name": "ElementaryTypeName", + "src": "57833:7:1" + } + ], + "id": 3182, + "name": "ElementaryTypeNameExpression", + "src": "57833:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3183, + "name": "Literal", + "src": "57841:1:1" + } + ], + "id": 3184, + "name": "FunctionCall", + "src": "57833:10:1" + } + ], + "id": 3185, + "name": "BinaryOperation", + "src": "57827:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: mint to the zero address\"", + "value": "ERC721: mint to the zero address" + }, + "id": 3186, + "name": "Literal", + "src": "57845:34:1" + } + ], + "id": 3187, + "name": "FunctionCall", + "src": "57819:61:1" + } + ], + "id": 3188, + "name": "ExpressionStatement", + "src": "57819:61:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", + "typeString": "literal_string \"ERC721: token already minted\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3189, + "name": "Identifier", + "src": "57890:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3190, + "name": "Identifier", + "src": "57899:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3191, + "name": "Identifier", + "src": "57907:7:1" + } + ], + "id": 3192, + "name": "FunctionCall", + "src": "57899:16:1" + } + ], + "id": 3193, + "name": "UnaryOperation", + "src": "57898:17:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: token already minted\"", + "value": "ERC721: token already minted" + }, + "id": 3194, + "name": "Literal", + "src": "57917:30:1" + } + ], + "id": 3195, + "name": "FunctionCall", + "src": "57890:58:1" + } + ], + "id": 3196, + "name": "ExpressionStatement", + "src": "57890:58:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3197, + "name": "Identifier", + "src": "57959:20:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3198, + "name": "ElementaryTypeName", + "src": "57980:7:1" + } + ], + "id": 3199, + "name": "ElementaryTypeNameExpression", + "src": "57980:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3200, + "name": "Literal", + "src": "57988:1:1" + } + ], + "id": 3201, + "name": "FunctionCall", + "src": "57980:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3202, + "name": "Identifier", + "src": "57992:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3203, + "name": "Identifier", + "src": "57996:7:1" + } + ], + "id": 3204, + "name": "FunctionCall", + "src": "57959:45:1" + } + ], + "id": 3205, + "name": "ExpressionStatement", + "src": "57959:45:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3206, + "name": "Identifier", + "src": "58015:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3207, + "name": "Identifier", + "src": "58029:2:1" + } + ], + "id": 3208, + "name": "IndexAccess", + "src": "58015:17:1" + } + ], + "id": 3209, + "name": "MemberAccess", + "src": "58015:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3210, + "name": "Identifier", + "src": "58037:7:1" + } + ], + "id": 3211, + "name": "FunctionCall", + "src": "58015:30:1" + } + ], + "id": 3212, + "name": "ExpressionStatement", + "src": "58015:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3213, + "name": "Identifier", + "src": "58056:12:1" + } + ], + "id": 3215, + "name": "MemberAccess", + "src": "58056:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3216, + "name": "Identifier", + "src": "58073:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3217, + "name": "Identifier", + "src": "58082:2:1" + } + ], + "id": 3218, + "name": "FunctionCall", + "src": "58056:29:1" + } + ], + "id": 3219, + "name": "ExpressionStatement", + "src": "58056:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3220, + "name": "Identifier", + "src": "58101:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3221, + "name": "ElementaryTypeName", + "src": "58110:7:1" + } + ], + "id": 3222, + "name": "ElementaryTypeNameExpression", + "src": "58110:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3223, + "name": "Literal", + "src": "58118:1:1" + } + ], + "id": 3224, + "name": "FunctionCall", + "src": "58110:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3174, + "type": "address", + "value": "to" + }, + "id": 3225, + "name": "Identifier", + "src": "58122:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3176, + "type": "uint256", + "value": "tokenId" + }, + "id": 3226, + "name": "Identifier", + "src": "58126:7:1" + } + ], + "id": 3227, + "name": "FunctionCall", + "src": "58101:33:1" + } + ], + "id": 3228, + "name": "EmitStatement", + "src": "58096:38:1" + } + ], + "id": 3229, + "name": "Block", + "src": "57809:332:1" + } + ], + "id": 3230, + "name": "FunctionDefinition", + "src": "57748:393:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_burn", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." + }, + "id": 3231, + "name": "StructuredDocumentation", + "src": "58147:206:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3299, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3232, + "name": "ElementaryTypeName", + "src": "58373:7:1" + } + ], + "id": 3233, + "name": "VariableDeclaration", + "src": "58373:15:1" + } + ], + "id": 3234, + "name": "ParameterList", + "src": "58372:17:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3235, + "name": "ParameterList", + "src": "58407:0:1" + }, + { + "children": [ + { + "attributes": { + "assignments": [ + 3237 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "owner", + "scope": 3298, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3236, + "name": "ElementaryTypeName", + "src": "58417:7:1" + } + ], + "id": 3237, + "name": "VariableDeclaration", + "src": "58417:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3238, + "name": "Identifier", + "src": "58433:6:1" + } + ], + "id": 3239, + "name": "MemberAccess", + "src": "58433:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3240, + "name": "Identifier", + "src": "58448:7:1" + } + ], + "id": 3241, + "name": "FunctionCall", + "src": "58433:23:1" + } + ], + "id": 3242, + "name": "VariableDeclarationStatement", + "src": "58417:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3243, + "name": "Identifier", + "src": "58485:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3244, + "name": "Identifier", + "src": "58506:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3245, + "name": "ElementaryTypeName", + "src": "58513:7:1" + } + ], + "id": 3246, + "name": "ElementaryTypeNameExpression", + "src": "58513:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3247, + "name": "Literal", + "src": "58521:1:1" + } + ], + "id": 3248, + "name": "FunctionCall", + "src": "58513:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3249, + "name": "Identifier", + "src": "58525:7:1" + } + ], + "id": 3250, + "name": "FunctionCall", + "src": "58485:48:1" + } + ], + "id": 3251, + "name": "ExpressionStatement", + "src": "58485:48:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3252, + "name": "Identifier", + "src": "58571:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3253, + "name": "ElementaryTypeName", + "src": "58580:7:1" + } + ], + "id": 3254, + "name": "ElementaryTypeNameExpression", + "src": "58580:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3255, + "name": "Literal", + "src": "58588:1:1" + } + ], + "id": 3256, + "name": "FunctionCall", + "src": "58580:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3257, + "name": "Identifier", + "src": "58592:7:1" + } + ], + "id": 3258, + "name": "FunctionCall", + "src": "58571:29:1" + } + ], + "id": 3259, + "name": "ExpressionStatement", + "src": "58571:29:1" + }, + { + "attributes": {}, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "length", + "type": "uint256" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes storage pointer", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_string_storage", + "typeString": "string storage ref" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes storage pointer)" + }, + "children": [ + { + "attributes": { + "name": "bytes" + }, + "id": 3260, + "name": "ElementaryTypeName", + "src": "58650:5:1" + } + ], + "id": 3261, + "name": "ElementaryTypeNameExpression", + "src": "58650:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3262, + "name": "Identifier", + "src": "58656:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3263, + "name": "Identifier", + "src": "58667:7:1" + } + ], + "id": 3264, + "name": "IndexAccess", + "src": "58656:19:1" + } + ], + "id": 3265, + "name": "FunctionCall", + "src": "58650:26:1" + } + ], + "id": 3266, + "name": "MemberAccess", + "src": "58650:33:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3267, + "name": "Literal", + "src": "58687:1:1" + } + ], + "id": 3268, + "name": "BinaryOperation", + "src": "58650:38:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "delete", + "prefix": true, + "type": "tuple()" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3269, + "name": "Identifier", + "src": "58711:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3270, + "name": "Identifier", + "src": "58722:7:1" + } + ], + "id": 3271, + "name": "IndexAccess", + "src": "58711:19:1" + } + ], + "id": 3272, + "name": "UnaryOperation", + "src": "58704:26:1" + } + ], + "id": 3273, + "name": "ExpressionStatement", + "src": "58704:26:1" + } + ], + "id": 3274, + "name": "Block", + "src": "58690:51:1" + } + ], + "id": 3275, + "name": "IfStatement", + "src": "58646:95:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3276, + "name": "Identifier", + "src": "58751:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3277, + "name": "Identifier", + "src": "58765:5:1" + } + ], + "id": 3278, + "name": "IndexAccess", + "src": "58751:20:1" + } + ], + "id": 3279, + "name": "MemberAccess", + "src": "58751:27:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3280, + "name": "Identifier", + "src": "58779:7:1" + } + ], + "id": 3281, + "name": "FunctionCall", + "src": "58751:36:1" + } + ], + "id": 3282, + "name": "ExpressionStatement", + "src": "58751:36:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 2306, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3283, + "name": "Identifier", + "src": "58798:12:1" + } + ], + "id": 3285, + "name": "MemberAccess", + "src": "58798:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3286, + "name": "Identifier", + "src": "58818:7:1" + } + ], + "id": 3287, + "name": "FunctionCall", + "src": "58798:28:1" + } + ], + "id": 3288, + "name": "ExpressionStatement", + "src": "58798:28:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3289, + "name": "Identifier", + "src": "58842:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3237, + "type": "address", + "value": "owner" + }, + "id": 3290, + "name": "Identifier", + "src": "58851:5:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3291, + "name": "ElementaryTypeName", + "src": "58858:7:1" + } + ], + "id": 3292, + "name": "ElementaryTypeNameExpression", + "src": "58858:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3293, + "name": "Literal", + "src": "58866:1:1" + } + ], + "id": 3294, + "name": "FunctionCall", + "src": "58858:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3233, + "type": "uint256", + "value": "tokenId" + }, + "id": 3295, + "name": "Identifier", + "src": "58870:7:1" + } + ], + "id": 3296, + "name": "FunctionCall", + "src": "58842:36:1" + } + ], + "id": 3297, + "name": "EmitStatement", + "src": "58837:41:1" + } + ], + "id": 3298, + "name": "Block", + "src": "58407:478:1" + } + ], + "id": 3299, + "name": "FunctionDefinition", + "src": "58358:527:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_transfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." + }, + "id": 3300, + "name": "StructuredDocumentation", + "src": "58891:313:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3301, + "name": "ElementaryTypeName", + "src": "59228:7:1" + } + ], + "id": 3302, + "name": "VariableDeclaration", + "src": "59228:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3303, + "name": "ElementaryTypeName", + "src": "59242:7:1" + } + ], + "id": 3304, + "name": "VariableDeclaration", + "src": "59242:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3371, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3305, + "name": "ElementaryTypeName", + "src": "59254:7:1" + } + ], + "id": 3306, + "name": "VariableDeclaration", + "src": "59254:15:1" + } + ], + "id": 3307, + "name": "ParameterList", + "src": "59227:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3308, + "name": "ParameterList", + "src": "59288:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_a01073130a885d6c1c1af6ac75fc3b1c4f9403c235362962bbf528e2bd87d950", + "typeString": "literal_string \"ERC721: transfer of token that is not own\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3309, + "name": "Identifier", + "src": "59298:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3310, + "name": "Identifier", + "src": "59306:6:1" + } + ], + "id": 3311, + "name": "MemberAccess", + "src": "59306:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3312, + "name": "Identifier", + "src": "59321:7:1" + } + ], + "id": 3313, + "name": "FunctionCall", + "src": "59306:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3314, + "name": "Identifier", + "src": "59333:4:1" + } + ], + "id": 3315, + "name": "BinaryOperation", + "src": "59306:31:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer of token that is not own\"", + "value": "ERC721: transfer of token that is not own" + }, + "id": 3316, + "name": "Literal", + "src": "59339:43:1" + } + ], + "id": 3317, + "name": "FunctionCall", + "src": "59298:85:1" + } + ], + "id": 3318, + "name": "ExpressionStatement", + "src": "59298:85:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", + "typeString": "literal_string \"ERC721: transfer to the zero address\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3319, + "name": "Identifier", + "src": "59411:7:1" + }, + { + "attributes": { + "commonType": { + "typeIdentifier": "t_address", + "typeString": "address" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!=", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3320, + "name": "Identifier", + "src": "59419:2:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3321, + "name": "ElementaryTypeName", + "src": "59425:7:1" + } + ], + "id": 3322, + "name": "ElementaryTypeNameExpression", + "src": "59425:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3323, + "name": "Literal", + "src": "59433:1:1" + } + ], + "id": 3324, + "name": "FunctionCall", + "src": "59425:10:1" + } + ], + "id": 3325, + "name": "BinaryOperation", + "src": "59419:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to the zero address\"", + "value": "ERC721: transfer to the zero address" + }, + "id": 3326, + "name": "Literal", + "src": "59437:38:1" + } + ], + "id": 3327, + "name": "FunctionCall", + "src": "59411:65:1" + } + ], + "id": 3328, + "name": "ExpressionStatement", + "src": "59411:65:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3497, + "type": "function (address,address,uint256)", + "value": "_beforeTokenTransfer" + }, + "id": 3329, + "name": "Identifier", + "src": "59487:20:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3330, + "name": "Identifier", + "src": "59508:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3331, + "name": "Identifier", + "src": "59514:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3332, + "name": "Identifier", + "src": "59518:7:1" + } + ], + "id": 3333, + "name": "FunctionCall", + "src": "59487:39:1" + } + ], + "id": 3334, + "name": "ExpressionStatement", + "src": "59487:39:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3486, + "type": "function (address,uint256)", + "value": "_approve" + }, + "id": 3335, + "name": "Identifier", + "src": "59588:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_rational_0_by_1", + "typeString": "int_const 0" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(address)" + }, + "children": [ + { + "attributes": { + "name": "address" + }, + "id": 3336, + "name": "ElementaryTypeName", + "src": "59597:7:1" + } + ], + "id": 3337, + "name": "ElementaryTypeNameExpression", + "src": "59597:7:1" + }, + { + "attributes": { + "hexvalue": "30", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "number", + "type": "int_const 0", + "value": "0" + }, + "id": 3338, + "name": "Literal", + "src": "59605:1:1" + } + ], + "id": 3339, + "name": "FunctionCall", + "src": "59597:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3340, + "name": "Identifier", + "src": "59609:7:1" + } + ], + "id": 3341, + "name": "FunctionCall", + "src": "59588:29:1" + } + ], + "id": 3342, + "name": "ExpressionStatement", + "src": "59588:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "remove", + "referencedDeclaration": 1866, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3343, + "name": "Identifier", + "src": "59628:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3344, + "name": "Identifier", + "src": "59642:4:1" + } + ], + "id": 3345, + "name": "IndexAccess", + "src": "59628:19:1" + } + ], + "id": 3346, + "name": "MemberAccess", + "src": "59628:26:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3347, + "name": "Identifier", + "src": "59655:7:1" + } + ], + "id": 3348, + "name": "FunctionCall", + "src": "59628:35:1" + } + ], + "id": 3349, + "name": "ExpressionStatement", + "src": "59628:35:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "add", + "referencedDeclaration": 1846, + "type": "function (struct EnumerableSet.UintSet storage pointer,uint256) returns (bool)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "type": "struct EnumerableSet.UintSet storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2600, + "type": "mapping(address => struct EnumerableSet.UintSet storage ref)", + "value": "_holderTokens" + }, + "id": 3350, + "name": "Identifier", + "src": "59673:13:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3351, + "name": "Identifier", + "src": "59687:2:1" + } + ], + "id": 3352, + "name": "IndexAccess", + "src": "59673:17:1" + } + ], + "id": 3353, + "name": "MemberAccess", + "src": "59673:21:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3354, + "name": "Identifier", + "src": "59695:7:1" + } + ], + "id": 3355, + "name": "FunctionCall", + "src": "59673:30:1" + } + ], + "id": 3356, + "name": "ExpressionStatement", + "src": "59673:30:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": false, + "member_name": "set", + "referencedDeclaration": 2286, + "type": "function (struct EnumerableMap.UintToAddressMap storage pointer,uint256,address) returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2602, + "type": "struct EnumerableMap.UintToAddressMap storage ref", + "value": "_tokenOwners" + }, + "id": 3357, + "name": "Identifier", + "src": "59714:12:1" + } + ], + "id": 3359, + "name": "MemberAccess", + "src": "59714:16:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3360, + "name": "Identifier", + "src": "59731:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3361, + "name": "Identifier", + "src": "59740:2:1" + } + ], + "id": 3362, + "name": "FunctionCall", + "src": "59714:29:1" + } + ], + "id": 3363, + "name": "ExpressionStatement", + "src": "59714:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 554, + "type": "function (address,address,uint256)", + "value": "Transfer" + }, + "id": 3364, + "name": "Identifier", + "src": "59759:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3302, + "type": "address", + "value": "from" + }, + "id": 3365, + "name": "Identifier", + "src": "59768:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3304, + "type": "address", + "value": "to" + }, + "id": 3366, + "name": "Identifier", + "src": "59774:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3306, + "type": "uint256", + "value": "tokenId" + }, + "id": 3367, + "name": "Identifier", + "src": "59778:7:1" + } + ], + "id": 3368, + "name": "FunctionCall", + "src": "59759:27:1" + } + ], + "id": 3369, + "name": "EmitStatement", + "src": "59754:32:1" + } + ], + "id": 3370, + "name": "Block", + "src": "59288:505:1" + } + ], + "id": 3371, + "name": "FunctionDefinition", + "src": "59209:584:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setTokenURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Sets `_tokenURI` as the tokenURI of `tokenId`.\n Requirements:\n - `tokenId` must exist." + }, + "id": 3372, + "name": "StructuredDocumentation", + "src": "59799:136:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3393, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3373, + "name": "ElementaryTypeName", + "src": "59962:7:1" + } + ], + "id": 3374, + "name": "VariableDeclaration", + "src": "59962:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_tokenURI", + "scope": 3393, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3375, + "name": "ElementaryTypeName", + "src": "59979:6:1" + } + ], + "id": 3376, + "name": "VariableDeclaration", + "src": "59979:23:1" + } + ], + "id": 3377, + "name": "ParameterList", + "src": "59961:42:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3378, + "name": "ParameterList", + "src": "60021:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bool", + "typeString": "bool" + }, + { + "typeIdentifier": "t_stringliteral_94be4a260caaeac1b145f03ffa2e70bc612b64982d04f24073aaf3a5f9009978", + "typeString": "literal_string \"ERC721Metadata: URI set of nonexistent token\"" + } + ], + "overloadedDeclarations": [ + 4294967278, + 4294967278 + ], + "referencedDeclaration": 4294967278, + "type": "function (bool,string memory) pure", + "value": "require" + }, + "id": 3379, + "name": "Identifier", + "src": "60031:7:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3085, + "type": "function (uint256) view returns (bool)", + "value": "_exists" + }, + "id": 3380, + "name": "Identifier", + "src": "60039:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3381, + "name": "Identifier", + "src": "60047:7:1" + } + ], + "id": 3382, + "name": "FunctionCall", + "src": "60039:16:1" + }, + { + "attributes": { + "hexvalue": "4552433732314d657461646174613a2055524920736574206f66206e6f6e6578697374656e7420746f6b656e", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721Metadata: URI set of nonexistent token\"", + "value": "ERC721Metadata: URI set of nonexistent token" + }, + "id": 3383, + "name": "Literal", + "src": "60057:46:1" + } + ], + "id": 3384, + "name": "FunctionCall", + "src": "60031:73:1" + } + ], + "id": 3385, + "name": "ExpressionStatement", + "src": "60031:73:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2620, + "type": "mapping(uint256 => string storage ref)", + "value": "_tokenURIs" + }, + "id": 3386, + "name": "Identifier", + "src": "60114:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3374, + "type": "uint256", + "value": "tokenId" + }, + "id": 3387, + "name": "Identifier", + "src": "60125:7:1" + } + ], + "id": 3388, + "name": "IndexAccess", + "src": "60114:19:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3376, + "type": "string memory", + "value": "_tokenURI" + }, + "id": 3389, + "name": "Identifier", + "src": "60136:9:1" + } + ], + "id": 3390, + "name": "Assignment", + "src": "60114:31:1" + } + ], + "id": 3391, + "name": "ExpressionStatement", + "src": "60114:31:1" + } + ], + "id": 3392, + "name": "Block", + "src": "60021:131:1" + } + ], + "id": 3393, + "name": "FunctionDefinition", + "src": "59940:212:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_setBaseURI", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to set the base URI for all token IDs. It is\n automatically added as a prefix to the value returned in {tokenURI},\n or to the token ID if {tokenURI} is empty." + }, + "id": 3394, + "name": "StructuredDocumentation", + "src": "60158:212:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "baseURI_", + "scope": 3404, + "stateVariable": false, + "storageLocation": "memory", + "type": "string", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "string", + "type": "string" + }, + "id": 3395, + "name": "ElementaryTypeName", + "src": "60396:6:1" + } + ], + "id": 3396, + "name": "VariableDeclaration", + "src": "60396:22:1" + } + ], + "id": 3397, + "name": "ParameterList", + "src": "60395:24:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3398, + "name": "ParameterList", + "src": "60437:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "string storage ref" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2622, + "type": "string storage ref", + "value": "_baseURI" + }, + "id": 3399, + "name": "Identifier", + "src": "60447:8:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3396, + "type": "string memory", + "value": "baseURI_" + }, + "id": 3400, + "name": "Identifier", + "src": "60458:8:1" + } + ], + "id": 3401, + "name": "Assignment", + "src": "60447:19:1" + } + ], + "id": 3402, + "name": "ExpressionStatement", + "src": "60447:19:1" + } + ], + "id": 3403, + "name": "Block", + "src": "60437:36:1" + } + ], + "id": 3404, + "name": "FunctionDefinition", + "src": "60375:98:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_checkOnERC721Received", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": false, + "visibility": "private" + }, + "children": [ + { + "attributes": { + "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param _data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" + }, + "id": 3405, + "name": "StructuredDocumentation", + "src": "60479:542:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3406, + "name": "ElementaryTypeName", + "src": "61058:7:1" + } + ], + "id": 3407, + "name": "VariableDeclaration", + "src": "61058:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3408, + "name": "ElementaryTypeName", + "src": "61072:7:1" + } + ], + "id": 3409, + "name": "VariableDeclaration", + "src": "61072:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3410, + "name": "ElementaryTypeName", + "src": "61084:7:1" + } + ], + "id": 3411, + "name": "VariableDeclaration", + "src": "61084:15:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "_data", + "scope": 3462, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3412, + "name": "ElementaryTypeName", + "src": "61101:5:1" + } + ], + "id": 3413, + "name": "VariableDeclaration", + "src": "61101:18:1" + } + ], + "id": 3414, + "name": "ParameterList", + "src": "61057:63:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "", + "scope": 3462, + "stateVariable": false, + "storageLocation": "default", + "type": "bool", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bool", + "type": "bool" + }, + "id": 3415, + "name": "ElementaryTypeName", + "src": "61146:4:1" + } + ], + "id": 3416, + "name": "VariableDeclaration", + "src": "61146:4:1" + } + ], + "id": 3417, + "name": "ParameterList", + "src": "61145:6:1" + }, + { + "children": [ + { + "attributes": {}, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "!", + "prefix": true, + "type": "bool" + }, + "children": [ + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bool", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "isContract", + "referencedDeclaration": 1154, + "type": "function (address) view returns (bool)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3418, + "name": "Identifier", + "src": "61171:2:1" + } + ], + "id": 3419, + "name": "MemberAccess", + "src": "61171:13:1" + } + ], + "id": 3420, + "name": "FunctionCall", + "src": "61171:15:1" + } + ], + "id": 3421, + "name": "UnaryOperation", + "src": "61170:16:1" + }, + { + "children": [ + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "hexvalue": "74727565", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "bool", + "type": "bool", + "value": "true" + }, + "id": 3422, + "name": "Literal", + "src": "61209:4:1" + } + ], + "id": 3423, + "name": "Return", + "src": "61202:11:1" + } + ], + "id": 3424, + "name": "Block", + "src": "61188:36:1" + } + ], + "id": 3425, + "name": "IfStatement", + "src": "61166:58:1" + }, + { + "attributes": { + "assignments": [ + 3427 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "returndata", + "scope": 3461, + "stateVariable": false, + "storageLocation": "memory", + "type": "bytes", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes", + "type": "bytes" + }, + "id": 3426, + "name": "ElementaryTypeName", + "src": "61233:5:1" + } + ], + "id": 3427, + "name": "VariableDeclaration", + "src": "61233:23:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", + "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "functionCall", + "referencedDeclaration": 1225, + "type": "function (address,bytes memory,string memory) returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3428, + "name": "Identifier", + "src": "61259:2:1" + } + ], + "id": 3429, + "name": "MemberAccess", + "src": "61259:15:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes memory", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + { + "typeIdentifier": "t_address_payable", + "typeString": "address payable" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + }, + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "encodeWithSelector", + "type": "function (bytes4) pure returns (bytes memory)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3430, + "name": "Identifier", + "src": "61275:3:1" + } + ], + "id": 3431, + "name": "MemberAccess", + "src": "61275:22:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "selector", + "type": "bytes4" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "onERC721Received", + "referencedDeclaration": 725, + "type": "function (address,address,uint256,bytes memory) external returns (bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "contract IERC721Receiver", + "type_conversion": true + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 726, + "type": "type(contract IERC721Receiver)", + "value": "IERC721Receiver" + }, + "id": 3432, + "name": "Identifier", + "src": "61311:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3409, + "type": "address", + "value": "to" + }, + "id": 3433, + "name": "Identifier", + "src": "61327:2:1" + } + ], + "id": 3434, + "name": "FunctionCall", + "src": "61311:19:1" + } + ], + "id": 3435, + "name": "MemberAccess", + "src": "61311:36:1" + } + ], + "id": 3436, + "name": "MemberAccess", + "src": "61311:45:1" + }, + { + "attributes": { + "arguments": [ + null + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address payable", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + null + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 518, + "type": "function () view returns (address payable)", + "value": "_msgSender" + }, + "id": 3437, + "name": "Identifier", + "src": "61370:10:1" + } + ], + "id": 3438, + "name": "FunctionCall", + "src": "61370:12:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3407, + "type": "address", + "value": "from" + }, + "id": 3439, + "name": "Identifier", + "src": "61396:4:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3411, + "type": "uint256", + "value": "tokenId" + }, + "id": 3440, + "name": "Identifier", + "src": "61414:7:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3413, + "type": "bytes memory", + "value": "_data" + }, + "id": 3441, + "name": "Identifier", + "src": "61435:5:1" + } + ], + "id": 3442, + "name": "FunctionCall", + "src": "61275:175:1" + }, + { + "attributes": { + "hexvalue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "token": "string", + "type": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"", + "value": "ERC721: transfer to non ERC721Receiver implementer" + }, + "id": 3443, + "name": "Literal", + "src": "61452:52:1" + } + ], + "id": 3444, + "name": "FunctionCall", + "src": "61259:246:1" + } + ], + "id": 3445, + "name": "VariableDeclarationStatement", + "src": "61233:272:1" + }, + { + "attributes": { + "assignments": [ + 3447 + ] + }, + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "retval", + "scope": 3461, + "stateVariable": false, + "storageLocation": "default", + "type": "bytes4", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "bytes4", + "type": "bytes4" + }, + "id": 3446, + "name": "ElementaryTypeName", + "src": "61515:6:1" + } + ], + "id": 3447, + "name": "VariableDeclaration", + "src": "61515:13:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "bytes4", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_bytes_memory_ptr", + "typeString": "bytes memory" + }, + { + "typeIdentifier": "t_type$_t_bytes4_$", + "typeString": "type(bytes4)" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "member_name": "decode", + "type": "function () pure" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 4294967295, + "type": "abi", + "value": "abi" + }, + "id": 3448, + "name": "Identifier", + "src": "61531:3:1" + } + ], + "id": 3449, + "name": "MemberAccess", + "src": "61531:10:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3427, + "type": "bytes memory", + "value": "returndata" + }, + "id": 3450, + "name": "Identifier", + "src": "61542:10:1" + }, + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": true, + "lValueRequested": false, + "type": "type(bytes4)" + }, + "children": [ + { + "attributes": { + "name": "bytes4" + }, + "id": 3451, + "name": "ElementaryTypeName", + "src": "61555:6:1" + } + ], + "id": 3452, + "name": "ElementaryTypeNameExpression", + "src": "61555:6:1" + } + ], + "id": 3453, + "name": "TupleExpression", + "src": "61554:8:1" + } + ], + "id": 3454, + "name": "FunctionCall", + "src": "61531:32:1" + } + ], + "id": 3455, + "name": "VariableDeclarationStatement", + "src": "61515:48:1" + }, + { + "attributes": { + "functionReturnParameters": 3417 + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isInlineArray": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "type": "bool" + }, + "children": [ + { + "attributes": { + "commonType": { + "typeIdentifier": "t_bytes4", + "typeString": "bytes4" + }, + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "==", + "type": "bool" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3447, + "type": "bytes4", + "value": "retval" + }, + "id": 3456, + "name": "Identifier", + "src": "61581:6:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2596, + "type": "bytes4", + "value": "_ERC721_RECEIVED" + }, + "id": 3457, + "name": "Identifier", + "src": "61591:16:1" + } + ], + "id": 3458, + "name": "BinaryOperation", + "src": "61581:26:1" + } + ], + "id": 3459, + "name": "TupleExpression", + "src": "61580:28:1" + } + ], + "id": 3460, + "name": "Return", + "src": "61573:35:1" + } + ], + "id": 3461, + "name": "Block", + "src": "61156:459:1" + } + ], + "id": 3462, + "name": "FunctionDefinition", + "src": "61026:589:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_approve", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." + }, + "id": 3463, + "name": "StructuredDocumentation", + "src": "61621:101:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3464, + "name": "ElementaryTypeName", + "src": "61745:7:1" + } + ], + "id": 3465, + "name": "VariableDeclaration", + "src": "61745:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3486, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3466, + "name": "ElementaryTypeName", + "src": "61757:7:1" + } + ], + "id": 3467, + "name": "VariableDeclaration", + "src": "61757:15:1" + } + ], + "id": 3468, + "name": "ParameterList", + "src": "61744:29:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3469, + "name": "ParameterList", + "src": "61791:0:1" + }, + { + "children": [ + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "operator": "=", + "type": "address" + }, + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": true, + "isPure": false, + "lValueRequested": true, + "type": "address" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 2606, + "type": "mapping(uint256 => address)", + "value": "_tokenApprovals" + }, + "id": 3470, + "name": "Identifier", + "src": "61801:15:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3471, + "name": "Identifier", + "src": "61817:7:1" + } + ], + "id": 3472, + "name": "IndexAccess", + "src": "61801:24:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3473, + "name": "Identifier", + "src": "61828:2:1" + } + ], + "id": 3474, + "name": "Assignment", + "src": "61801:29:1" + } + ], + "id": 3475, + "name": "ExpressionStatement", + "src": "61801:29:1" + }, + { + "children": [ + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "tuple()", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_address", + "typeString": "address" + }, + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 563, + "type": "function (address,address,uint256)", + "value": "Approval" + }, + "id": 3476, + "name": "Identifier", + "src": "61845:8:1" + }, + { + "attributes": { + "isConstant": false, + "isLValue": false, + "isPure": false, + "isStructConstructorCall": false, + "lValueRequested": false, + "names": [ + null + ], + "tryCall": false, + "type": "address", + "type_conversion": false + }, + "children": [ + { + "attributes": { + "argumentTypes": [ + { + "typeIdentifier": "t_uint256", + "typeString": "uint256" + } + ], + "isConstant": false, + "isLValue": false, + "isPure": false, + "lValueRequested": false, + "member_name": "ownerOf", + "referencedDeclaration": 2702, + "type": "function (uint256) view returns (address)" + }, + "children": [ + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3498, + "type": "type(contract ERC721)", + "value": "ERC721" + }, + "id": 3477, + "name": "Identifier", + "src": "61854:6:1" + } + ], + "id": 3478, + "name": "MemberAccess", + "src": "61854:14:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3479, + "name": "Identifier", + "src": "61869:7:1" + } + ], + "id": 3480, + "name": "FunctionCall", + "src": "61854:23:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3465, + "type": "address", + "value": "to" + }, + "id": 3481, + "name": "Identifier", + "src": "61879:2:1" + }, + { + "attributes": { + "overloadedDeclarations": [ + null + ], + "referencedDeclaration": 3467, + "type": "uint256", + "value": "tokenId" + }, + "id": 3482, + "name": "Identifier", + "src": "61883:7:1" + } + ], + "id": 3483, + "name": "FunctionCall", + "src": "61845:46:1" + } + ], + "id": 3484, + "name": "EmitStatement", + "src": "61840:51:1" + } + ], + "id": 3485, + "name": "Block", + "src": "61791:125:1" + } + ], + "id": 3486, + "name": "FunctionDefinition", + "src": "61727:189:1" + }, + { + "attributes": { + "implemented": true, + "isConstructor": false, + "kind": "function", + "modifiers": [ + null + ], + "name": "_beforeTokenTransfer", + "scope": 3498, + "stateMutability": "nonpayable", + "virtual": true, + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "text": " @dev Hook that is called before any token transfer. This includes minting\n and burning.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be\n transferred to `to`.\n - When `from` is zero, `tokenId` will be minted for `to`.\n - When `to` is zero, ``from``'s `tokenId` will be burned.\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." + }, + "id": 3487, + "name": "StructuredDocumentation", + "src": "61922:585:1" + }, + { + "children": [ + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "from", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3488, + "name": "ElementaryTypeName", + "src": "62542:7:1" + } + ], + "id": 3489, + "name": "VariableDeclaration", + "src": "62542:12:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "to", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "address", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "address", + "stateMutability": "nonpayable", + "type": "address" + }, + "id": 3490, + "name": "ElementaryTypeName", + "src": "62556:7:1" + } + ], + "id": 3491, + "name": "VariableDeclaration", + "src": "62556:10:1" + }, + { + "attributes": { + "constant": false, + "mutability": "mutable", + "name": "tokenId", + "scope": 3497, + "stateVariable": false, + "storageLocation": "default", + "type": "uint256", + "visibility": "internal" + }, + "children": [ + { + "attributes": { + "name": "uint256", + "type": "uint256" + }, + "id": 3492, + "name": "ElementaryTypeName", + "src": "62568:7:1" + } + ], + "id": 3493, + "name": "VariableDeclaration", + "src": "62568:15:1" + } + ], + "id": 3494, + "name": "ParameterList", + "src": "62541:43:1" + }, + { + "attributes": { + "parameters": [ + null + ] + }, + "children": [], + "id": 3495, + "name": "ParameterList", + "src": "62602:0:1" + }, + { + "attributes": { + "statements": [ + null + ] + }, + "children": [], + "id": 3496, + "name": "Block", + "src": "62602:3:1" + } + ], + "id": 3497, + "name": "FunctionDefinition", + "src": "62512:93:1" + } + ], + "id": 3498, + "name": "ContractDefinition", + "src": "46080:16527:1" + } + ], + "id": 3499, + "name": "SourceUnit", + "src": "84:62524:1" + }, + "compiler": { + "name": "solc", + "version": "0.7.6+commit.7338295f.Emscripten.clang" + }, + "networks": {}, + "schemaVersion": "3.3.4", + "updatedAt": "2021-03-13T11:18:08.565Z", + "devdoc": { + "details": "String operations.", + "kind": "dev", + "methods": {}, + "version": 1 + }, + "userdoc": { + "kind": "user", + "methods": {}, + "version": 1 + } +} \ No newline at end of file diff --git a/src/bootstrap.min.css b/src/bootstrap.min.css new file mode 100644 index 0000000..aac2e30 --- /dev/null +++ b/src/bootstrap.min.css @@ -0,0 +1,12 @@ +/*! + * Bootswatch v4.5.3 + * Homepage: https://bootswatch.com + * Copyright 2012-2020 Thomas Park + * Licensed under MIT + * Based on Bootstrap +*//*! + * Bootstrap v4.5.3 (https://getbootstrap.com/) + * Copyright 2011-2020 The Bootstrap Authors + * Copyright 2011-2020 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */@import url(https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;600&display=swap);:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#d9534f;--orange:#fd7e14;--yellow:#f0ad4e;--green:#4bbf73;--teal:#20c997;--cyan:#1f9bcf;--white:#fff;--gray:#919aa1;--gray-dark:#343a40;--primary:#1a1a1a;--secondary:#fff;--success:#4bbf73;--info:#1f9bcf;--warning:#f0ad4e;--danger:#d9534f;--light:#fff;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:"Nunito Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:"Nunito Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-size:.875rem;font-weight:400;line-height:1.5;color:#55595c;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#1a1a1a;text-decoration:none;background-color:transparent}a:hover{color:#000;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#919aa1;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:600;line-height:1.2;color:#1a1a1a}.h1,h1{font-size:2rem}.h2,h2{font-size:1.75rem}.h3,h3{font-size:1.5rem}.h4,h4{font-size:1.25rem}.h5,h5{font-size:1rem}.h6,h6{font-size:.75rem}.lead{font-size:1.09375rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.09375rem}.blockquote-footer{display:block;font-size:80%;color:#919aa1}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #eceeef;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#919aa1}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#1a1a1a}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#1a1a1a}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-sm-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-sm-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-sm-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-sm-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-sm-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-sm-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-md-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-md-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-md-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-md-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-md-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-md-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-lg-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-lg-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-lg-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-lg-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-lg-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-lg-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.row-cols-xl-1>*{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.row-cols-xl-2>*{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.row-cols-xl-3>*{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.row-cols-xl-4>*{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.row-cols-xl-5>*{-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.row-cols-xl-6>*{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#55595c}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid rgba(0,0,0,.05)}.table thead th{vertical-align:bottom;border-bottom:2px solid rgba(0,0,0,.05)}.table tbody+tbody{border-top:2px solid rgba(0,0,0,.05)}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid rgba(0,0,0,.05)}.table-bordered td,.table-bordered th{border:1px solid rgba(0,0,0,.05)}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#55595c;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#bfbfbf}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#888}.table-hover .table-primary:hover{background-color:#b2b2b2}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#b2b2b2}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#fff}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#fff}.table-hover .table-secondary:hover{background-color:#f2f2f2}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#f2f2f2}.table-success,.table-success>td,.table-success>th{background-color:#cdedd8}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#a1deb6}.table-hover .table-success:hover{background-color:#bae6c9}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#bae6c9}.table-info,.table-info>td,.table-info>th{background-color:#c0e3f2}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#8bcbe6}.table-hover .table-info:hover{background-color:#abdaee}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdaee}.table-warning,.table-warning>td,.table-warning>th{background-color:#fbe8cd}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#f7d4a3}.table-hover .table-warning:hover{background-color:#f9ddb5}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#f9ddb5}.table-danger,.table-danger>td,.table-danger>th{background-color:#f4cfce}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#eba6a3}.table-hover .table-danger:hover{background-color:#efbbb9}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#efbbb9}.table-light,.table-light>td,.table-light>th{background-color:#fff}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fff}.table-hover .table-light:hover{background-color:#f2f2f2}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#f2f2f2}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#55595c;background-color:#f7f7f9;border-color:rgba(0,0,0,.05)}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + 1.5rem);padding:.75rem 1.5rem;font-size:.875rem;font-weight:400;line-height:1.5;color:#55595c;background-color:#f7f7f9;background-clip:padding-box;border:0 solid #ced4da;border-radius:0;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #55595c}.form-control:focus{color:#55595c;background-color:#f7f7f9;border-color:#5a5a5a;outline:0;box-shadow:0 0 0 .2rem rgba(26,26,26,.25)}.form-control::-webkit-input-placeholder{color:#919aa1;opacity:1}.form-control::-moz-placeholder{color:#919aa1;opacity:1}.form-control:-ms-input-placeholder{color:#919aa1;opacity:1}.form-control::-ms-input-placeholder{color:#919aa1;opacity:1}.form-control::placeholder{color:#919aa1;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#eceeef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}select.form-control:focus::-ms-value{color:#55595c;background-color:#f7f7f9}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:.75rem;padding-bottom:.75rem;margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:2rem;padding-bottom:2rem;font-size:1.09375rem;line-height:1.5}.col-form-label-sm{padding-top:.5rem;padding-bottom:.5rem;font-size:.765625rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding:.75rem 0;margin-bottom:0;font-size:.875rem;line-height:1.5;color:#55595c;background-color:transparent;border:solid transparent;border-width:0 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + 1rem);padding:.5rem 1rem;font-size:.765625rem;line-height:1.5}.form-control-lg{height:calc(1.5em + 4rem);padding:2rem 2rem;font-size:1.09375rem;line-height:1.5}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{color:#919aa1}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#4bbf73}.valid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.765625rem;line-height:1.5;color:#fff;background-color:rgba(75,191,115,.9)}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#4bbf73;padding-right:calc(1.5em + 1.5rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%234bbf73' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .375rem) center;background-size:calc(.75em + .75rem) calc(.75em + .75rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#4bbf73;box-shadow:0 0 0 .2rem rgba(75,191,115,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + 1.5rem);background-position:top calc(.375em + .375rem) right calc(.375em + .375rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#4bbf73;padding-right:calc(.75em + 3.625rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 1.5rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%234bbf73' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #f7f7f9 no-repeat center right 2.5rem/calc(.75em + .75rem) calc(.75em + .75rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#4bbf73;box-shadow:0 0 0 .2rem rgba(75,191,115,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#4bbf73}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#4bbf73}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#4bbf73}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#71cc90;background-color:#71cc90}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(75,191,115,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#4bbf73}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#4bbf73}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#4bbf73;box-shadow:0 0 0 .2rem rgba(75,191,115,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#d9534f}.invalid-tooltip{position:absolute;top:100%;left:0;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.765625rem;line-height:1.5;color:#fff;background-color:rgba(217,83,79,.9)}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#d9534f;padding-right:calc(1.5em + 1.5rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23d9534f' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23d9534f' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .375rem) center;background-size:calc(.75em + .75rem) calc(.75em + .75rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#d9534f;box-shadow:0 0 0 .2rem rgba(217,83,79,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + 1.5rem);background-position:top calc(.375em + .375rem) right calc(.375em + .375rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#d9534f;padding-right:calc(.75em + 3.625rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 1.5rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23d9534f' viewBox='0 0 12 12'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23d9534f' stroke='none'/%3e%3c/svg%3e") #f7f7f9 no-repeat center right 2.5rem/calc(.75em + .75rem) calc(.75em + .75rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#d9534f;box-shadow:0 0 0 .2rem rgba(217,83,79,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#d9534f}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#d9534f}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#d9534f}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e27c79;background-color:#e27c79}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(217,83,79,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#d9534f}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#d9534f}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#d9534f;box-shadow:0 0 0 .2rem rgba(217,83,79,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:600;color:#55595c;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:0 solid transparent;padding:.75rem 1.5rem;font-size:.875rem;line-height:1.5rem;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#55595c;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(26,26,26,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#1a1a1a;border-color:#1a1a1a}.btn-primary:hover{color:#fff;background-color:#070707;border-color:#010101}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#070707;border-color:#010101;box-shadow:0 0 0 .2rem rgba(60,60,60,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#1a1a1a;border-color:#1a1a1a}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#010101;border-color:#000}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(60,60,60,.5)}.btn-secondary{color:#1a1a1a;background-color:#fff;border-color:#fff}.btn-secondary:hover{color:#1a1a1a;background-color:#ececec;border-color:#e6e6e6}.btn-secondary.focus,.btn-secondary:focus{color:#1a1a1a;background-color:#ececec;border-color:#e6e6e6;box-shadow:0 0 0 .2rem rgba(221,221,221,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#1a1a1a;background-color:#fff;border-color:#fff}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#1a1a1a;background-color:#e6e6e6;border-color:#dfdfdf}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(221,221,221,.5)}.btn-success{color:#fff;background-color:#4bbf73;border-color:#4bbf73}.btn-success:hover{color:#fff;background-color:#3ca861;border-color:#389f5c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#3ca861;border-color:#389f5c;box-shadow:0 0 0 .2rem rgba(102,201,136,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#4bbf73;border-color:#4bbf73}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#389f5c;border-color:#359556}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(102,201,136,.5)}.btn-info{color:#fff;background-color:#1f9bcf;border-color:#1f9bcf}.btn-info:hover{color:#fff;background-color:#1a82ae;border-color:#187aa3}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#1a82ae;border-color:#187aa3;box-shadow:0 0 0 .2rem rgba(65,170,214,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#1f9bcf;border-color:#1f9bcf}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#187aa3;border-color:#177198}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(65,170,214,.5)}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning:hover{color:#fff;background-color:#ed9d2b;border-color:#ec971f}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ed9d2b;border-color:#ec971f;box-shadow:0 0 0 .2rem rgba(242,185,105,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#fff;background-color:#ec971f;border-color:#ea9214}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(242,185,105,.5)}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-danger:hover{color:#fff;background-color:#d23430;border-color:#c9302c}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#d23430;border-color:#c9302c;box-shadow:0 0 0 .2rem rgba(223,109,105,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#c9302c;border-color:#bf2e29}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(223,109,105,.5)}.btn-light{color:#1a1a1a;background-color:#fff;border-color:#fff}.btn-light:hover{color:#1a1a1a;background-color:#ececec;border-color:#e6e6e6}.btn-light.focus,.btn-light:focus{color:#1a1a1a;background-color:#ececec;border-color:#e6e6e6;box-shadow:0 0 0 .2rem rgba(221,221,221,.5)}.btn-light.disabled,.btn-light:disabled{color:#1a1a1a;background-color:#fff;border-color:#fff}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#1a1a1a;background-color:#e6e6e6;border-color:#dfdfdf}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(221,221,221,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{color:#fff;background-color:#23272b;border-color:#1d2124;box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#1a1a1a;border-color:#1a1a1a}.btn-outline-primary:hover{color:#fff;background-color:#1a1a1a;border-color:#1a1a1a}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(26,26,26,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#1a1a1a;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#1a1a1a;border-color:#1a1a1a}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(26,26,26,.5)}.btn-outline-secondary{color:#fff;border-color:#fff}.btn-outline-secondary:hover{color:#1a1a1a;background-color:#fff;border-color:#fff}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(255,255,255,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#fff;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#1a1a1a;background-color:#fff;border-color:#fff}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,255,255,.5)}.btn-outline-success{color:#4bbf73;border-color:#4bbf73}.btn-outline-success:hover{color:#fff;background-color:#4bbf73;border-color:#4bbf73}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(75,191,115,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#4bbf73;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#4bbf73;border-color:#4bbf73}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(75,191,115,.5)}.btn-outline-info{color:#1f9bcf;border-color:#1f9bcf}.btn-outline-info:hover{color:#fff;background-color:#1f9bcf;border-color:#1f9bcf}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(31,155,207,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#1f9bcf;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#1f9bcf;border-color:#1f9bcf}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(31,155,207,.5)}.btn-outline-warning{color:#f0ad4e;border-color:#f0ad4e}.btn-outline-warning:hover{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(240,173,78,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#f0ad4e;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(240,173,78,.5)}.btn-outline-danger{color:#d9534f;border-color:#d9534f}.btn-outline-danger:hover{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(217,83,79,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#d9534f;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#d9534f;border-color:#d9534f}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(217,83,79,.5)}.btn-outline-light{color:#fff;border-color:#fff}.btn-outline-light:hover{color:#1a1a1a;background-color:#fff;border-color:#fff}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(255,255,255,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#fff;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#1a1a1a;background-color:#fff;border-color:#fff}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,255,255,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#1a1a1a;text-decoration:none}.btn-link:hover{color:#000;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline}.btn-link.disabled,.btn-link:disabled{color:#919aa1;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:2rem 2rem;font-size:1.09375rem;line-height:1.5;border-radius:0}.btn-group-sm>.btn,.btn-sm{padding:.5rem 1rem;font-size:.765625rem;line-height:1.5;border-radius:0}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:.875rem;color:#55595c;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15)}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #f7f7f9}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#1a1a1a;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#0d0d0d;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#1a1a1a}.dropdown-item.disabled,.dropdown-item:disabled{color:#919aa1;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.765625rem;color:#919aa1;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#1a1a1a}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:0}.dropdown-toggle-split{padding-right:1.125rem;padding-left:1.125rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:1.5rem;padding-left:1.5rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:0}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:0}.input-group-prepend{margin-right:0}.input-group-append{margin-left:0}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.75rem 1.5rem;margin-bottom:0;font-size:.875rem;font-weight:400;line-height:1.5;color:#55595c;text-align:center;white-space:nowrap;background-color:#eceeef;border:0 solid #ced4da}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 4rem)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:2rem 2rem;font-size:1.09375rem;line-height:1.5}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + 1rem)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:.765625rem;line-height:1.5}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:2.5rem}.custom-control{position:relative;z-index:1;display:block;min-height:1.3125rem;padding-left:1.5rem;-webkit-print-color-adjust:exact;color-adjust:exact}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;left:0;z-index:-1;width:1rem;height:1.15625rem;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#1a1a1a;background-color:#1a1a1a}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(26,26,26,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#5a5a5a}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#737373;border-color:#737373}.custom-control-input:disabled~.custom-control-label,.custom-control-input[disabled]~.custom-control-label{color:#919aa1}.custom-control-input:disabled~.custom-control-label::before,.custom-control-input[disabled]~.custom-control-label::before{background-color:#eceeef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.15625rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#f7f7f9;border:#adb5bd solid 0}.custom-control-label::after{position:absolute;top:.15625rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#1a1a1a;background-color:#1a1a1a}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(26,26,26,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(26,26,26,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(26,26,26,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:.15625rem;left:-2.25rem;width:1rem;height:1rem;background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#f7f7f9;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(26,26,26,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + 1.5rem);padding:.75rem 2.5rem .75rem 1.5rem;font-size:.875rem;font-weight:400;line-height:1.5;color:#55595c;vertical-align:middle;background:#f7f7f9 url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 1.5rem center/8px 10px;border:0 solid #ced4da;border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#5a5a5a;outline:0;box-shadow:0 0 0 .2rem rgba(26,26,26,.25)}.custom-select:focus::-ms-value{color:#55595c;background-color:#f7f7f9}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:1.5rem;background-image:none}.custom-select:disabled{color:#919aa1;background-color:#f7f7f9}.custom-select::-ms-expand{display:none}.custom-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #55595c}.custom-select-sm{height:calc(1.5em + 1rem);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:.765625rem}.custom-select-lg{height:calc(1.5em + 4rem);padding-top:2rem;padding-bottom:2rem;padding-left:2rem;font-size:1.09375rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + 1.5rem);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + 1.5rem);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#5a5a5a;box-shadow:0 0 0 .2rem rgba(26,26,26,.25)}.custom-file-input:disabled~.custom-file-label,.custom-file-input[disabled]~.custom-file-label{background-color:#eceeef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + 1.5rem);padding:.75rem 1.5rem;font-weight:400;line-height:1.5;color:#55595c;background-color:#f7f7f9;border:0 solid #ced4da}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + 1.5rem);padding:.75rem 1.5rem;line-height:1.5;color:#55595c;content:"Browse";background-color:#eceeef;border-left:inherit}.custom-range{width:100%;height:1.4rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(26,26,26,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(26,26,26,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(26,26,26,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#1a1a1a;border:0;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#737373}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#eceeef;border-color:transparent}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#1a1a1a;border:0;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{-moz-transition:none;transition:none}}.custom-range::-moz-range-thumb:active{background-color:#737373}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#eceeef;border-color:transparent}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#1a1a1a;border:0;-ms-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{-ms-transition:none;transition:none}}.custom-range::-ms-thumb:active{background-color:#737373}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#eceeef}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#eceeef}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#919aa1;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #eceeef}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#f7f7f9 #f7f7f9 #eceeef}.nav-tabs .nav-link.disabled{color:#919aa1;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#55595c;background-color:#fff;border-color:#eceeef #eceeef #fff}.nav-tabs .dropdown-menu{margin-top:-1px}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#1a1a1a}.nav-fill .nav-item,.nav-fill>.nav-link{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:1.5rem 1rem}.navbar .container,.navbar .container-fluid,.navbar .container-lg,.navbar .container-md,.navbar .container-sm,.navbar .container-xl{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.335938rem;padding-bottom:.335938rem;margin-right:1rem;font-size:1.09375rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.09375rem;line-height:1;background-color:transparent;border:1px solid transparent}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid,.navbar-expand-sm>.container-lg,.navbar-expand-sm>.container-md,.navbar-expand-sm>.container-sm,.navbar-expand-sm>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid,.navbar-expand-md>.container-lg,.navbar-expand-md>.container-md,.navbar-expand-md>.container-sm,.navbar-expand-md>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid,.navbar-expand-lg>.container-lg,.navbar-expand-lg>.container-md,.navbar-expand-lg>.container-sm,.navbar-expand-lg>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid,.navbar-expand-xl>.container-lg,.navbar-expand-xl>.container-md,.navbar-expand-xl>.container-sm,.navbar-expand-xl>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid,.navbar-expand>.container-lg,.navbar-expand>.container-md,.navbar-expand>.container-sm,.navbar-expand>.container-xl{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:#1a1a1a}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:#1a1a1a}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:#1a1a1a}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:#1a1a1a}.navbar-light .navbar-toggler{color:rgba(0,0,0,.3);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.3%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.3)}.navbar-light .navbar-text a{color:#1a1a1a}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:#1a1a1a}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:#fff}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.5%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125)}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0}.card>.list-group:last-child{border-bottom-width:0}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;min-height:1px;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img,.card-img-bottom,.card-img-top{-ms-flex-negative:0;flex-shrink:0;width:100%}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{-ms-flex:1 0 0%;flex:1 0 0%;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion{overflow-anchor:none}.accordion>.card{overflow:hidden}.accordion>.card:not(:last-of-type){border-bottom:0}.accordion>.card>.card-header{margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:transparent}.breadcrumb-item{display:-ms-flexbox;display:flex}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#919aa1;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#919aa1}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#1a1a1a;background-color:#fff;border:1px solid transparent}.page-link:hover{z-index:2;color:#000;text-decoration:none;background-color:#f7f7f9;border-color:transparent}.page-link:focus{z-index:3;outline:0;box-shadow:0 0 0 .2rem rgba(26,26,26,.25)}.page-item:first-child .page-link{margin-left:0}.page-item.active .page-link{z-index:3;color:#fff;background-color:#1a1a1a;border-color:#1a1a1a}.page-item.disabled .page-link{color:#919aa1;pointer-events:none;cursor:auto;background-color:#fff;border-color:transparent}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.09375rem;line-height:1.5}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.765625rem;line-height:1.5}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em}.badge-primary{color:#fff;background-color:#1a1a1a}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#010101}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(26,26,26,.5)}.badge-secondary{color:#1a1a1a;background-color:#fff}a.badge-secondary:focus,a.badge-secondary:hover{color:#1a1a1a;background-color:#e6e6e6}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,255,255,.5)}.badge-success{color:#fff;background-color:#4bbf73}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#389f5c}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(75,191,115,.5)}.badge-info{color:#fff;background-color:#1f9bcf}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#187aa3}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(31,155,207,.5)}.badge-warning{color:#fff;background-color:#f0ad4e}a.badge-warning:focus,a.badge-warning:hover{color:#fff;background-color:#ec971f}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(240,173,78,.5)}.badge-danger{color:#fff;background-color:#d9534f}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#c9302c}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(217,83,79,.5)}.badge-light{color:#1a1a1a;background-color:#fff}a.badge-light:focus,a.badge-light:hover{color:#1a1a1a;background-color:#e6e6e6}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,255,255,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#f7f7f9}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3.8125rem}.alert-dismissible .close{position:absolute;top:0;right:0;z-index:2;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#0e0e0e;background-color:#d1d1d1;border-color:#bfbfbf}.alert-primary hr{border-top-color:#b2b2b2}.alert-primary .alert-link{color:#000}.alert-secondary{color:#858585;background-color:#fff;border-color:#fff}.alert-secondary hr{border-top-color:#f2f2f2}.alert-secondary .alert-link{color:#6c6c6c}.alert-success{color:#27633c;background-color:#dbf2e3;border-color:#cdedd8}.alert-success hr{border-top-color:#bae6c9}.alert-success .alert-link{color:#193e26}.alert-info{color:#10516c;background-color:#d2ebf5;border-color:#c0e3f2}.alert-info hr{border-top-color:#abdaee}.alert-info .alert-link{color:#093040}.alert-warning{color:#7d5a29;background-color:#fcefdc;border-color:#fbe8cd}.alert-warning hr{border-top-color:#f9ddb5}.alert-warning .alert-link{color:#573e1c}.alert-danger{color:#712b29;background-color:#f7dddc;border-color:#f4cfce}.alert-danger hr{border-top-color:#efbbb9}.alert-danger .alert-link{color:#4c1d1b}.alert-light{color:#858585;background-color:#fff;border-color:#fff}.alert-light hr{border-top-color:#f2f2f2}.alert-light .alert-link{color:#6c6c6c}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;line-height:0;font-size:.65625rem;background-color:#f7f7f9}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#1a1a1a;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#55595c;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#55595c;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#55595c;background-color:#f7f7f9}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item.disabled,.list-group-item:disabled{color:#919aa1;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#1a1a1a;border-color:#1a1a1a}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#0e0e0e;background-color:#bfbfbf}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#0e0e0e;background-color:#b2b2b2}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#0e0e0e;border-color:#0e0e0e}.list-group-item-secondary{color:#858585;background-color:#fff}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#858585;background-color:#f2f2f2}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#858585;border-color:#858585}.list-group-item-success{color:#27633c;background-color:#cdedd8}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#27633c;background-color:#bae6c9}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#27633c;border-color:#27633c}.list-group-item-info{color:#10516c;background-color:#c0e3f2}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#10516c;background-color:#abdaee}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#10516c;border-color:#10516c}.list-group-item-warning{color:#7d5a29;background-color:#fbe8cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#7d5a29;background-color:#f9ddb5}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#7d5a29;border-color:#7d5a29}.list-group-item-danger{color:#712b29;background-color:#f4cfce}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#712b29;background-color:#efbbb9}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#712b29;border-color:#712b29}.list-group-item-light{color:#858585;background-color:#fff}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#858585;background-color:#f2f2f2}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#858585;border-color:#858585}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.3125rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0}a.close.disabled{pointer-events:none}.toast{-ms-flex-preferred-size:350px;flex-basis:350px;max-width:350px;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);opacity:0}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#919aa1;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal.modal-static .modal-dialog{-webkit-transform:scale(1.02);transform:scale(1.02)}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);height:-webkit-min-content;height:-moz-min-content;height:min-content;content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #eceeef}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:.75rem;border-top:1px solid #eceeef}.modal-footer>*{margin:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem);height:-webkit-min-content;height:-moz-min-content;height:min-content}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:"Nunito Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.765625rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:"Nunito Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.765625rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2)}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:.875rem;color:#1a1a1a;background-color:#f7f7f7;border-bottom:1px solid #ebebeb}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#55595c}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#1a1a1a!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#010101!important}.bg-secondary{background-color:#fff!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#e6e6e6!important}.bg-success{background-color:#4bbf73!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#389f5c!important}.bg-info{background-color:#1f9bcf!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#187aa3!important}.bg-warning{background-color:#f0ad4e!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#ec971f!important}.bg-danger{background-color:#d9534f!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#c9302c!important}.bg-light{background-color:#fff!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#e6e6e6!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #eceeef!important}.border-top{border-top:1px solid #eceeef!important}.border-right{border-right:1px solid #eceeef!important}.border-bottom{border-bottom:1px solid #eceeef!important}.border-left{border-left:1px solid #eceeef!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#1a1a1a!important}.border-secondary{border-color:#fff!important}.border-success{border-color:#4bbf73!important}.border-info{border-color:#1f9bcf!important}.border-warning{border-color:#f0ad4e!important}.border-danger{border-color:#d9534f!important}.border-light{border-color:#fff!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;-ms-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;-ms-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#1a1a1a!important}a.text-primary:focus,a.text-primary:hover{color:#000!important}.text-secondary{color:#fff!important}a.text-secondary:focus,a.text-secondary:hover{color:#d9d9d9!important}.text-success{color:#4bbf73!important}a.text-success:focus,a.text-success:hover{color:#328c51!important}.text-info{color:#1f9bcf!important}a.text-info:focus,a.text-info:hover{color:#15698c!important}.text-warning{color:#f0ad4e!important}a.text-warning:focus,a.text-warning:hover{color:#df8a13!important}.text-danger{color:#d9534f!important}a.text-danger:focus,a.text-danger:hover{color:#b52b27!important}.text-light{color:#fff!important}a.text-light:focus,a.text-light:hover{color:#d9d9d9!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#55595c!important}.text-muted{color:#919aa1!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;word-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #eceeef!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:rgba(0,0,0,.05)}.table .thead-dark th{color:inherit;border-color:rgba(0,0,0,.05)}}.navbar{font-size:.765625rem;text-transform:uppercase;font-weight:600}.navbar-nav .nav-link{padding-top:.715rem;padding-bottom:.715rem}.navbar-brand{margin-right:2rem}.bg-primary{background-color:#1a1a1a!important}.bg-light{border:1px solid rgba(0,0,0,.1)}.bg-light.navbar-fixed-top{border-width:0 0 1px}.bg-light.navbar-bottom-top{border-width:1px 0 0}.nav-item{margin-right:2rem}.btn{font-size:.765625rem;text-transform:uppercase}.btn-group-sm>.btn,.btn-sm{font-size:10px}.btn-warning,.btn-warning:focus,.btn-warning:hover,.btn-warning:not([disabled]):not(.disabled):active{color:#fff}.btn-outline-secondary{border-color:#919aa1;color:#919aa1}.btn-outline-secondary:not([disabled]):not(.disabled):active,.btn-outline-secondary:not([disabled]):not(.disabled):focus,.btn-outline-secondary:not([disabled]):not(.disabled):hover{background-color:#ced4da;border-color:#ced4da;color:#fff}.btn-outline-secondary:not([disabled]):not(.disabled):focus{box-shadow:0 0 0 .2rem rgba(206,212,218,.5)}[class*=btn-outline-]{border-width:2px}.border-secondary{border:1px solid #ced4da!important}body{font-weight:200;letter-spacing:1px}h1,h2,h3,h4,h5,h6{text-transform:uppercase;letter-spacing:3px}.text-secondary{color:#55595c!important}th{font-size:.765625rem;text-transform:uppercase}.table td,.table th{padding:1.5rem}.table-sm td,.table-sm th{padding:.75rem}.custom-switch .custom-control-label::after{top:calc(.15625rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px)}.dropdown-menu{font-size:.765625rem;text-transform:none}.badge{padding-top:.28rem}.badge-pill{border-radius:10rem}.list-group-item .h1,.list-group-item .h2,.list-group-item .h3,.list-group-item .h4,.list-group-item .h5,.list-group-item .h6,.list-group-item h1,.list-group-item h2,.list-group-item h3,.list-group-item h4,.list-group-item h5,.list-group-item h6{color:inherit}.card-header,.card-title{color:inherit} \ No newline at end of file diff --git a/src/components/AccountDetails/AccountDetails.jsx b/src/components/AccountDetails/AccountDetails.jsx new file mode 100644 index 0000000..d487f67 --- /dev/null +++ b/src/components/AccountDetails/AccountDetails.jsx @@ -0,0 +1,27 @@ +import React from "react"; + +const AccountDetails = ({ + accountAddress, + accountBalance, +}) => { + return ( +
+
+

+ CryptoBoy NFT Marketplace +

+

+ This is an NFT marketplace where you can mint ERC721 implemented{" "} + Crypto Boy NFTs and manage them. +

+
+

Account address :

+

{accountAddress}

+

Account balance :

+

{accountBalance} Ξ

+
+
+ ); +}; + +export default AccountDetails; diff --git a/src/components/AllCryptoBoys/AllCryptoBoys.jsx b/src/components/AllCryptoBoys/AllCryptoBoys.jsx new file mode 100644 index 0000000..6a9d628 --- /dev/null +++ b/src/components/AllCryptoBoys/AllCryptoBoys.jsx @@ -0,0 +1,69 @@ +import React, { useState, useEffect } from "react"; +import CryptoBoyNFTImage from "../CryptoBoyNFTImage/CryptoBoyNFTImage"; +import CryptoBoyNFTDetails from "../CryptoBoyNFTDetails/CryptoBoyNFTDetails"; +import Loading from "../Loading/Loading"; + +const AllCryptoBoys = ({ + cryptoBoys, + accountAddress, + totalTokensMinted, + changeTokenPrice, + toggleForSale, + buyCryptoBoy, +}) => { + const [loading, setLoading] = useState(false); + + useEffect(() => { + if (cryptoBoys.length !== 0) { + if (cryptoBoys[0].metaData !== undefined) { + setLoading(loading); + } else { + setLoading(false); + } + } + }, [cryptoBoys]); + + return ( +
+
+
+
+ Total No. of CryptoBoy's Minted On The Platform :{" "} + {totalTokensMinted} +
+
+
+
+ {cryptoBoys.map((cryptoboy) => { + return ( +
+ {!loading ? ( + + ) : ( + + )} + +
+ ); + })} +
+
+ ); +}; + +export default AllCryptoBoys; diff --git a/src/components/App.css b/src/components/App.css new file mode 100644 index 0000000..c79435e --- /dev/null +++ b/src/components/App.css @@ -0,0 +1,7 @@ +input::-webkit-input-placeholder { + font-size: 1rem; +} + +input[type="color"]:hover { + cursor: pointer; +} diff --git a/src/components/App.js b/src/components/App.js new file mode 100755 index 0000000..b16daed --- /dev/null +++ b/src/components/App.js @@ -0,0 +1,374 @@ +import React, { Component } from "react"; +import { BrowserRouter as Router, Switch, Route } from "react-router-dom"; +import "./App.css"; +import Web3 from "web3"; +import CryptoBoys from "../abis/CryptoBoys.json"; + +import FormAndPreview from "../components/FormAndPreview/FormAndPreview"; +import AllCryptoBoys from "./AllCryptoBoys/AllCryptoBoys"; +import AccountDetails from "./AccountDetails/AccountDetails"; +import ContractNotDeployed from "./ContractNotDeployed/ContractNotDeployed"; +import ConnectToMetamask from "./ConnectMetamask/ConnectToMetamask"; +import Loading from "./Loading/Loading"; +import Navbar from "./Navbar/Navbar"; +import MyCryptoBoys from "./MyCryptoBoys/MyCryptoBoys"; +import Queries from "./Queries/Queries"; + +const ipfsClient = require("ipfs-http-client"); +const ipfs = ipfsClient({ + host: "ipfs.infura.io", + port: 5001, + protocol: "https", +}); + +class App extends Component { + constructor(props) { + super(props); + this.state = { + accountAddress: "", + accountBalance: "", + cryptoBoysContract: null, + cryptoBoysCount: 0, + cryptoBoys: [], + loading: true, + metamaskConnected: false, + contractDetected: false, + totalTokensMinted: 0, + totalTokensOwnedByAccount: 0, + nameIsUsed: false, + colorIsUsed: false, + colorsUsed: [], + lastMintTime: null, + }; + } + + componentWillMount = async () => { + await this.loadWeb3(); + await this.loadBlockchainData(); + await this.setMetaData(); + await this.setMintBtnTimer(); + }; + + setMintBtnTimer = () => { + const mintBtn = document.getElementById("mintBtn"); + if (mintBtn !== undefined && mintBtn !== null) { + this.setState({ + lastMintTime: localStorage.getItem(this.state.accountAddress), + }); + this.state.lastMintTime === undefined || this.state.lastMintTime === null + ? (mintBtn.innerHTML = "Mint My Crypto Boy") + : this.checkIfCanMint(parseInt(this.state.lastMintTime)); + } + }; + + checkIfCanMint = (lastMintTime) => { + const mintBtn = document.getElementById("mintBtn"); + const timeGap = 300000; //5min in milliseconds + const countDownTime = lastMintTime + timeGap; + const interval = setInterval(() => { + const now = new Date().getTime(); + const diff = countDownTime - now; + if (diff < 0) { + mintBtn.removeAttribute("disabled"); + mintBtn.innerHTML = "Mint My Crypto Boy"; + localStorage.removeItem(this.state.accountAddress); + clearInterval(interval); + } else { + const minutes = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60)); + const seconds = Math.floor((diff % (1000 * 60)) / 1000); + mintBtn.setAttribute("disabled", true); + mintBtn.innerHTML = `Next mint in ${minutes}m ${seconds}s`; + } + }, 1000); + }; + + loadWeb3 = async () => { + if (window.ethereum) { + window.web3 = new Web3(window.ethereum); + } else if (window.web3) { + window.web3 = new Web3(window.web3.currentProvider); + } else { + window.alert( + "Non-Ethereum browser detected. You should consider trying MetaMask!" + ); + } + }; + + loadBlockchainData = async () => { + const web3 = window.web3; + const accounts = await web3.eth.getAccounts(); + if (accounts.length === 0) { + this.setState({ metamaskConnected: false }); + } else { + this.setState({ metamaskConnected: true }); + this.setState({ loading: true }); + this.setState({ accountAddress: accounts[0] }); + let accountBalance = await web3.eth.getBalance(accounts[0]); + accountBalance = web3.utils.fromWei(accountBalance, "Ether"); + this.setState({ accountBalance }); + this.setState({ loading: false }); + const networkId = await web3.eth.net.getId(); + const networkData = CryptoBoys.networks[networkId]; + if (networkData) { + this.setState({ loading: true }); + const cryptoBoysContract = web3.eth.Contract( + CryptoBoys.abi, + networkData.address + ); + this.setState({ cryptoBoysContract }); + this.setState({ contractDetected: true }); + const cryptoBoysCount = await cryptoBoysContract.methods + .cryptoBoyCounter() + .call(); + this.setState({ cryptoBoysCount }); + for (var i = 1; i <= cryptoBoysCount; i++) { + const cryptoBoy = await cryptoBoysContract.methods + .allCryptoBoys(i) + .call(); + this.setState({ + cryptoBoys: [...this.state.cryptoBoys, cryptoBoy], + }); + } + let totalTokensMinted = await cryptoBoysContract.methods + .getNumberOfTokensMinted() + .call(); + totalTokensMinted = totalTokensMinted.toNumber(); + this.setState({ totalTokensMinted }); + let totalTokensOwnedByAccount = await cryptoBoysContract.methods + .getTotalNumberOfTokensOwnedByAnAddress(this.state.accountAddress) + .call(); + totalTokensOwnedByAccount = totalTokensOwnedByAccount.toNumber(); + this.setState({ totalTokensOwnedByAccount }); + this.setState({ loading: false }); + } else { + this.setState({ contractDetected: false }); + } + } + }; + + connectToMetamask = async () => { + await window.ethereum.enable(); + this.setState({ metamaskConnected: true }); + window.location.reload(); + }; + + setMetaData = async () => { + if (this.state.cryptoBoys.length !== 0) { + this.state.cryptoBoys.map(async (cryptoboy) => { + const result = await fetch(cryptoboy.tokenURI); + const metaData = await result.json(); + this.setState({ + cryptoBoys: this.state.cryptoBoys.map((cryptoboy) => + cryptoboy.tokenId.toNumber() === Number(metaData.tokenId) + ? { + ...cryptoboy, + metaData, + } + : cryptoboy + ), + }); + }); + } + }; + + mintMyNFT = async (colors, name, tokenPrice) => { + this.setState({ loading: true }); + const colorsArray = Object.values(colors); + let colorsUsed = []; + for (let i = 0; i < colorsArray.length; i++) { + if (colorsArray[i] !== "") { + let colorIsUsed = await this.state.cryptoBoysContract.methods + .colorExists(colorsArray[i]) + .call(); + if (colorIsUsed) { + colorsUsed = [...colorsUsed, colorsArray[i]]; + } else { + continue; + } + } + } + const nameIsUsed = await this.state.cryptoBoysContract.methods + .tokenNameExists(name) + .call(); + if (colorsUsed.length === 0 && !nameIsUsed) { + const { + cardBorderColor, + cardBackgroundColor, + headBorderColor, + headBackgroundColor, + leftEyeBorderColor, + rightEyeBorderColor, + leftEyeBackgroundColor, + rightEyeBackgroundColor, + leftPupilBackgroundColor, + rightPupilBackgroundColor, + mouthColor, + neckBackgroundColor, + neckBorderColor, + bodyBackgroundColor, + bodyBorderColor, + } = colors; + let previousTokenId; + previousTokenId = await this.state.cryptoBoysContract.methods + .cryptoBoyCounter() + .call(); + previousTokenId = previousTokenId.toNumber(); + const tokenId = previousTokenId + 1; + const tokenObject = { + tokenName: "Crypto Boy", + tokenSymbol: "CB", + tokenId: `${tokenId}`, + name: name, + metaData: { + type: "color", + colors: { + cardBorderColor, + cardBackgroundColor, + headBorderColor, + headBackgroundColor, + leftEyeBorderColor, + rightEyeBorderColor, + leftEyeBackgroundColor, + rightEyeBackgroundColor, + leftPupilBackgroundColor, + rightPupilBackgroundColor, + mouthColor, + neckBackgroundColor, + neckBorderColor, + bodyBackgroundColor, + bodyBorderColor, + }, + }, + }; + const cid = await ipfs.add(JSON.stringify(tokenObject)); + let tokenURI = `https://ipfs.infura.io/ipfs/${cid.path}`; + const price = window.web3.utils.toWei(tokenPrice.toString(), "Ether"); + this.state.cryptoBoysContract.methods + .mintCryptoBoy(name, tokenURI, price, colorsArray) + .send({ from: this.state.accountAddress }) + .on("confirmation", () => { + localStorage.setItem(this.state.accountAddress, new Date().getTime()); + this.setState({ loading: false }); + window.location.reload(); + }); + } else { + if (nameIsUsed) { + this.setState({ nameIsUsed: true }); + this.setState({ loading: false }); + } else if (colorsUsed.length !== 0) { + this.setState({ colorIsUsed: true }); + this.setState({ colorsUsed }); + this.setState({ loading: false }); + } + } + }; + + toggleForSale = (tokenId) => { + this.setState({ loading: true }); + this.state.cryptoBoysContract.methods + .toggleForSale(tokenId) + .send({ from: this.state.accountAddress }) + .on("confirmation", () => { + this.setState({ loading: false }); + window.location.reload(); + }); + }; + + changeTokenPrice = (tokenId, newPrice) => { + this.setState({ loading: true }); + const newTokenPrice = window.web3.utils.toWei(newPrice, "Ether"); + this.state.cryptoBoysContract.methods + .changeTokenPrice(tokenId, newTokenPrice) + .send({ from: this.state.accountAddress }) + .on("confirmation", () => { + this.setState({ loading: false }); + window.location.reload(); + }); + }; + + buyCryptoBoy = (tokenId, price) => { + this.setState({ loading: true }); + this.state.cryptoBoysContract.methods + .buyToken(tokenId) + .send({ from: this.state.accountAddress, value: price }) + .on("confirmation", () => { + this.setState({ loading: false }); + window.location.reload(); + }); + }; + + render() { + return ( +
+ {!this.state.metamaskConnected ? ( + + ) : !this.state.contractDetected ? ( + + ) : this.state.loading ? ( + + ) : ( + + + + ( + + )} + /> + ( + + )} + /> + ( + + )} + /> + ( + + )} + /> + ( + + )} + /> + + + )} +
+ ); + } +} + +export default App; diff --git a/src/components/ConnectMetamask/ConnectToMetamask.jsx b/src/components/ConnectMetamask/ConnectToMetamask.jsx new file mode 100644 index 0000000..ca61087 --- /dev/null +++ b/src/components/ConnectMetamask/ConnectToMetamask.jsx @@ -0,0 +1,31 @@ +import React from "react"; +import metamaskIcon from "./metamask.svg"; + +const ConnectToMetamask = ({ connectToMetamask }) => { + return ( +
+

+ CryptoBoy NFT Marketplace +

+

+ This is an NFT marketplace where you can mint your ERC721 implemented{" "} + Crypto Boy NFTs and manage them. +

+
+ +
+ ); +}; + +export default ConnectToMetamask; diff --git a/src/components/ConnectMetamask/metamask.svg b/src/components/ConnectMetamask/metamask.svg new file mode 100644 index 0000000..2371f19 --- /dev/null +++ b/src/components/ConnectMetamask/metamask.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/ContractNotDeployed/ContractNotDeployed.jsx b/src/components/ContractNotDeployed/ContractNotDeployed.jsx new file mode 100644 index 0000000..d88d770 --- /dev/null +++ b/src/components/ContractNotDeployed/ContractNotDeployed.jsx @@ -0,0 +1,16 @@ +import React from "react"; + +const ContractNotDeployed = () => { + return ( +
+

Crypto Boys Contract Not Deployed To This Network.

+
+

+ Connect Metamask to Kovan Testnet Or localhost : 7545 running a custom RPC + like Ganache. +

+
+ ); +}; + +export default ContractNotDeployed; diff --git a/src/components/CryptoBoyNFTDetails/CryptoBoyNFTDetails.jsx b/src/components/CryptoBoyNFTDetails/CryptoBoyNFTDetails.jsx new file mode 100644 index 0000000..dbe606c --- /dev/null +++ b/src/components/CryptoBoyNFTDetails/CryptoBoyNFTDetails.jsx @@ -0,0 +1,176 @@ +import React, { Component } from "react"; + +class CryptoBoyNFTDetails extends Component { + constructor(props) { + super(props); + this.state = { + newCryptoBoyPrice: "", + }; + } + + callChangeTokenPriceFromApp = (tokenId, newPrice) => { + this.props.changeTokenPrice(tokenId, newPrice); + }; + + render() { + return ( +
+

+ Token Id :{" "} + {this.props.cryptoboy.tokenId.toNumber()} +

+

+ Name :{" "} + {this.props.cryptoboy.tokenName} +

+

+ Minted By :{" "} + {this.props.cryptoboy.mintedBy.substr(0, 5) + + "..." + + this.props.cryptoboy.mintedBy.slice( + this.props.cryptoboy.mintedBy.length - 5 + )} +

+

+ Owned By :{" "} + {this.props.cryptoboy.currentOwner.substr(0, 5) + + "..." + + this.props.cryptoboy.currentOwner.slice( + this.props.cryptoboy.currentOwner.length - 5 + )} +

+

+ Previous Owner :{" "} + {this.props.cryptoboy.previousOwner.substr(0, 5) + + "..." + + this.props.cryptoboy.previousOwner.slice( + this.props.cryptoboy.previousOwner.length - 5 + )} +

+

+ Price :{" "} + {window.web3.utils.fromWei( + this.props.cryptoboy.price.toString(), + "Ether" + )}{" "} + Ξ +

+

+ No. of Transfers :{" "} + {this.props.cryptoboy.numberOfTransfers.toNumber()} +

+
+ {this.props.accountAddress === this.props.cryptoboy.currentOwner ? ( +
{ + e.preventDefault(); + this.callChangeTokenPriceFromApp( + this.props.cryptoboy.tokenId.toNumber(), + this.state.newCryptoBoyPrice + ); + }} + > +
+ {" "} + + this.setState({ + newCryptoBoyPrice: e.target.value, + }) + } + /> +
+ +
+ ) : null} +
+
+ {this.props.accountAddress === this.props.cryptoboy.currentOwner ? ( + this.props.cryptoboy.forSale ? ( + + ) : ( + + ) + ) : null} +
+
+ {this.props.accountAddress !== this.props.cryptoboy.currentOwner ? ( + this.props.cryptoboy.forSale ? ( + + ) : ( + <> + +

Currently not for sale!

+ + ) + ) : null} +
+
+ ); + } +} + +export default CryptoBoyNFTDetails; diff --git a/src/components/CryptoBoyNFTImage/CryptoBoyNFTImage.jsx b/src/components/CryptoBoyNFTImage/CryptoBoyNFTImage.jsx new file mode 100644 index 0000000..cc5f32e --- /dev/null +++ b/src/components/CryptoBoyNFTImage/CryptoBoyNFTImage.jsx @@ -0,0 +1,155 @@ +import React from "react"; + +const CryptoBoyNFTImage = ({ colors }) => { + const { + cardBorderColor, + cardBackgroundColor, + headBorderColor, + headBackgroundColor, + leftEyeBorderColor, + rightEyeBorderColor, + leftEyeBackgroundColor, + rightEyeBackgroundColor, + leftPupilBackgroundColor, + rightPupilBackgroundColor, + mouthColor, + neckBackgroundColor, + neckBorderColor, + bodyBackgroundColor, + bodyBorderColor, + } = colors; + + const cryptoboy_card = { + width: "280px", + height: "260px", + margin: "auto", + backgroundColor: `${cardBackgroundColor}`, + border: `10px solid ${cardBorderColor}`, + }; + + const head = { + zIndex: "1", + width: "100px", + height: "100px", + borderRadius: "50%", + margin: "2rem auto 0", + border: `8px solid ${headBorderColor}`, + backgroundColor: `${headBackgroundColor}`, + position: "relative", + }; + + const eyeLeft = { + zIndex: "1", + width: "60px", + height: "60px", + backgroundColor: `${leftEyeBackgroundColor}`, + borderRadius: "50%", + position: "absolute", + top: "0rem", + left: "-1.5rem", + border: `6px solid ${leftEyeBorderColor}`, + }; + + const eyeRight = { + zIndex: "1", + width: "70px", + height: "70px", + backgroundColor: `${rightEyeBackgroundColor}`, + borderRadius: "50%", + position: "absolute", + top: "-1.2rem", + left: "2.8rem", + border: `6px solid ${rightEyeBorderColor}`, + }; + + const pupilLeft = { + width: "20px", + height: "20px", + backgroundColor: `${leftPupilBackgroundColor}`, + borderRadius: "50%", + position: "absolute", + left: "1rem", + top: "1rem", + }; + + const pupilRight = { + width: "30px", + height: "30px", + backgroundColor: `${rightPupilBackgroundColor}`, + borderRadius: "50%", + position: "absolute", + left: "1rem", + top: "1rem", + }; + + const mouth = { + position: "absolute", + top: "12px", + left: "0", + right: "0", + height: "60px", + width: "60px", + margin: "3px auto", + borderRadius: "100%", + borderBottom: `8px solid ${mouthColor}`, + }; + + const neck = { + position: "relative", + left: "7.7rem", + top: "-0.1rem", + width: "15px", + height: "30px", + backgroundColor: `${neckBackgroundColor}`, + border: `4px solid ${neckBorderColor}`, + }; + + const body = { + height: "50px", + width: "90px", + margin: "-0.4rem auto", + border: `5px solid ${bodyBorderColor}`, + borderRadius: "100% 100% 100% 100% / 100% 100% 0% 0%", + backgroundColor: `${bodyBackgroundColor}`, + position: "relative", + left: "0.1rem", + }; + + const leftHand = { + position: "absolute", + top: "20px", + width: "15px", + height: "20px", + borderRight: `5px solid ${bodyBorderColor}`, + }; + + const rightHand = { + position: "absolute", + top: "20px", + width: "15px", + height: "20px", + borderRight: `5px solid ${bodyBorderColor}`, + right: "1rem", + }; + + return ( +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ); +}; + +export default CryptoBoyNFTImage; diff --git a/src/components/FormAndPreview/FormAndPreview.jsx b/src/components/FormAndPreview/FormAndPreview.jsx new file mode 100644 index 0000000..e9e4d64 --- /dev/null +++ b/src/components/FormAndPreview/FormAndPreview.jsx @@ -0,0 +1,506 @@ +import React, { Component } from "react"; +import CryptoBoyNFTImage from "../CryptoBoyNFTImage/CryptoBoyNFTImage"; + +class FormAndPreview extends Component { + constructor(props) { + super(props); + this.state = { + userSelectedColors: [ + { + cardBorderColor: "", + cardBackgroundColor: "", + headBorderColor: "", + headBackgroundColor: "", + leftEyeBorderColor: "", + rightEyeBorderColor: "", + leftEyeBackgroundColor: "", + rightEyeBackgroundColor: "", + leftPupilBackgroundColor: "", + rightPupilBackgroundColor: "", + mouthColor: "", + neckBackgroundColor: "", + neckBorderColor: "", + bodyBackgroundColor: "", + bodyBorderColor: "", + }, + ], + cryptoBoyName: "", + cryptoBoyPrice: "", + }; + } + + componentDidMount = async () => { + await this.props.setMintBtnTimer(); + }; + + callMintMyNFTFromApp = (e) => { + e.preventDefault(); + this.props.mintMyNFT( + this.state.userSelectedColors[0], + this.state.cryptoBoyName, + this.state.cryptoBoyPrice + ); + }; + + render() { + return ( +
+
+
+
Color Your Crypto Boy As You Want It To be!
+
+
+
+
+
+
+ + + this.setState({ + userSelectedColors: [ + { + ...this.state.userSelectedColors[0], + cardBorderColor: e.target.value, + }, + ], + }) + } + /> +
+
+ + + this.setState({ + userSelectedColors: [ + { + ...this.state.userSelectedColors[0], + cardBackgroundColor: e.target.value, + }, + ], + }) + } + /> +
+
+ + + this.setState({ + userSelectedColors: [ + { + ...this.state.userSelectedColors[0], + headBorderColor: e.target.value, + }, + ], + }) + } + /> +
+
+ + + this.setState({ + userSelectedColors: [ + { + ...this.state.userSelectedColors[0], + headBackgroundColor: e.target.value, + }, + ], + }) + } + /> +
+
+
+
+ + + this.setState({ + userSelectedColors: [ + { + ...this.state.userSelectedColors[0], + leftEyeBorderColor: e.target.value, + }, + ], + }) + } + /> +
+
+ + + this.setState({ + userSelectedColors: [ + { + ...this.state.userSelectedColors[0], + rightEyeBorderColor: e.target.value, + }, + ], + }) + } + /> +
+
+ + + this.setState({ + userSelectedColors: [ + { + ...this.state.userSelectedColors[0], + leftEyeBackgroundColor: e.target.value, + }, + ], + }) + } + /> +
+
+ + + this.setState({ + userSelectedColors: [ + { + ...this.state.userSelectedColors[0], + rightEyeBackgroundColor: e.target.value, + }, + ], + }) + } + /> +
+
+
+ +
+
+
+
+
+ + + this.setState({ + userSelectedColors: [ + { + ...this.state.userSelectedColors[0], + leftPupilBackgroundColor: e.target.value, + }, + ], + }) + } + /> +
+
+ + + this.setState({ + userSelectedColors: [ + { + ...this.state.userSelectedColors[0], + rightPupilBackgroundColor: e.target.value, + }, + ], + }) + } + /> +
+
+ + + this.setState({ + userSelectedColors: [ + { + ...this.state.userSelectedColors[0], + mouthColor: e.target.value, + }, + ], + }) + } + /> +
+
+ + + this.setState({ + userSelectedColors: [ + { + ...this.state.userSelectedColors[0], + neckBackgroundColor: e.target.value, + }, + ], + }) + } + /> +
+
+
+
+ + + this.setState({ + userSelectedColors: [ + { + ...this.state.userSelectedColors[0], + neckBorderColor: e.target.value, + }, + ], + }) + } + /> +
+
+ + + this.setState({ + userSelectedColors: [ + { + ...this.state.userSelectedColors[0], + bodyBackgroundColor: e.target.value, + }, + ], + }) + } + /> +
+
+ + + this.setState({ + userSelectedColors: [ + { + ...this.state.userSelectedColors[0], + bodyBorderColor: e.target.value, + }, + ], + }) + } + /> +
+
+
+
+ + + this.setState({ cryptoBoyName: e.target.value }) + } + /> +
+
+ + + this.setState({ cryptoBoyPrice: e.target.value }) + } + /> +
+ +
+ {this.props.nameIsUsed ? ( +
+ + This name is taken! +
+ ) : this.props.colorIsUsed ? ( + <> +
+ + {this.props.colorsUsed.length > 1 ? ( + These colors are used! + ) : ( + This color is used! + )} +
+
+ {this.props.colorsUsed.map((color, index) => ( +
+ ))} +
+ + ) : null} +
+
+
+
+
+ ); + } +} + +export default FormAndPreview; diff --git a/src/components/Loading/Loading.jsx b/src/components/Loading/Loading.jsx new file mode 100644 index 0000000..111ce34 --- /dev/null +++ b/src/components/Loading/Loading.jsx @@ -0,0 +1,8 @@ +import React from "react"; +import loadingGIF from "./loading.gif"; + +const Loading = () => { + return Loading..; +}; + +export default Loading; diff --git a/src/components/Loading/loading.gif b/src/components/Loading/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..1b1015a0f3b5106d9820fac2aed742980a179d1a GIT binary patch literal 30624 zcmeF(WmHuCzc>Cp$`?^lt_gUxn1uK=)p(L@9@RKo;eu>f#*c(|~z z(An8pUtjTLU5&!Vjs?ahk3@ zp<2f>3_SaGVs##yUl<5$@hrFZ8QMi9w7B_?MCcR@TnrxDk8hg~2%Cs%Ti6JXnmVMS zW91bRms8O)v~Y006c`bkl%D(OWm#?W$NurTrS&}|JsY2}guJS@k)@-DcTi+paz@_c z!t%P7j)95!<&Aw513UjQNd+|>V=E_5pWvwYl+1fiiYn?`I|nB}f8RVnGja%sNGYDt zHL-T~@(sC~a5L+EL2>2VwyvS6g_W&CDo(;QJ{m>OuXTqoqY+Qfrxwd;`bp~sn}k#I z9n)Ez6h74`B-f$YoZf9=qkCG}X7l=)5{~t;T;`t*@5*~e9VbkC79apD7Px??bQ(av zXYCuT4X_7kG@N?eY>UxPZjtpf-j`hvgxS2}9=@@F2LKP$;?ip03ybG23+r-N>mm}s z%l@*3hEkY|LVP|zf$W+3X7M{6cM7+#SvS}{)(LeEpY)PQ7GNiZfZ zuAXQ~=D|C;kbc&3IcZWcPT+mN8Y3NUhKDu5zMs{07M)hvilo4eT$(z z1&;iDC@2lvSPK87GKTX%~fjS{(y8(wu;jWsA2(T;22x!ta0p~C!zH^coQcq~7r zmx}u;C-ME(^V%83>3jX8cY?)puj3BhYp^KE1OU_R`|r~mp2{uc-nyn>9l_Gc*?u>z z^JtQ|-zinE#b;e=Lm%_su40}B5V*JH6PWR)B23hBjo!{ zXF%3|ArtL~-DXlA@<|r-d2)mOa)kqf_PZY~heSCrxM37=quj>rrnZ8uN0vv0t=Ij- zI0d`&0`IO5pMMc5Jq#d$HM*|bI>lrWho(X}o}?4wj##-)M;t%cbns4S8NQ(}@ZILt zg%|WYW4F#qa@|PNHMX74F!jm4p5>BK{VDq*n)I2+r!_kU!47br15IqI7wBm)r_NIc z5l7C^r(1Em7kJ~jzdkCE{N(i_hM)TzM}_g-;hPd0cTt56@j*-ck0npXlvdVTESHb? z?7~a3HiG8USE_5i+eg2RJHUT$pw-RSrQTqR@NVStRq=mw+*$o{{mJA7 z_3!VLP4atl@gjABeI~l9K?BxabwNYU397*(UIlf*W4>*wArm1Bbs*tg;~weaQ2h5GQ7w^U~$ezb|ajaci_JrlVxQ(jx91{WH-Z&LA~^iw5cT8!`w{ z$TG+^NH@s1e?$#=sQ0&Me=6E!U?m76!4MdX4amZRK%tWOB>?<6VL&gBof8{)TnJ`z zpW)6gQIh2g{nAfoad-gnj1S{iZnyb@7p6M#%aGy%vwHy_d~ZuxTedIes^|?G-74a# z3!fU@pdCI=YVaN9R(M&_=-i@%QZz0FWad7wezsD$!C872nRDbKC-4S8-gALJCrT_E zj_9^g6xXAG>hO`mg4+0r(yiG38wm!Y-uNAVcw3~R3s$8f9;N+7rW+vcY|cNpuiGO& zQ7~R=#a7aa2Y15|d2bbu)A58SEb6fVev+W-?#{~n*o5ShSoT9)w=y;R@Xb0n-For0 zMWR~?a+%qos|KAN+FkP5T@-BGpsB*%Kp{oxfOR6iyJeBPyOE;*nT&vzpr0L*hw<+xu{AykVz(>3olthpT^>{P0oH^5h1FN~fwNtnO3j`<5!c-MZHxl`5R&HhK z9i9=ZKO~nyh4e;kf~Wuqb&-j%bPgE_Pb9yyseAUEnkPtK$RUOEmATzVx6 zjuB7qDx zA%T6ulj9!#EaBF~jI~cf+@0u>=1*1c4p$vFXOa}Z-C{)zCz90{UgUIM z`6fxT{woch&yaKNm81CXjnW3=nj7UkKH)bi-=&NVResA1_pa5Y7*$T3Pzztd`mc@o zzCqnD^=o0&bwIbU4ORcRAzHHFV$NoV_glV@iV)qpts|ivPS>Ur1)O~661OA&Cq;v^RpHSJ-6Y0X zB2rjMoyMv=nxmPBmakH02=0y%K)PVGl{A<$yJJPPTxcw-G}tS;-zJH5%z~A}qukzhwL;?{8y9fArY7p=g z!UHPyy_ZOE(d+>#Rp0Er#q+*`n~$8>rb|!oBLM&hyaHbIBkY#}QE7ak9h|64$0;^Y zIHH6coV0vlsp;@c_exdKFqfWJb~_g|g1CG*vykij{36O8Ze{aQOKc{7t<6WsfO z_^PX1baLMA5CGrq9K;-b+WIrb1wgd%U>k%-#mJ4QMRWBxR0V5BjVcO{B;^^;AWfB+ zbZgz-GAC#<-Gp1YgAMFZq}8GGip_t4sz24JjumV+Mbn7AEGaxnH@4c0yJ!RIiHOB^ zQ3>q?_?+d54*U6zCn)rm3Rht|2^7D-CxfA3R3ZcKDUVU;-%rC9Oi@(g%&N8*ymz0fz<8-z%C&@y(+zRFdQ?@3v|AyX^GHBs2- zfmI6a+OTW1t_~c$E#}EFFUsna4Q4tJuo4LX~?6BCYw`luIrFBQc7fU-*PAzi|s*QOI zHOBLJ(VSbe`_8@?e;QePIJg`4h6+97OF>M9`>D|@@?M6|u&4iM;tN?{G7)ae@#m1q z;()Ey${#iabSF?E)}Qbw{`2zP9~#OzL;t1z&)OAAdQe#m0rm%JkYo^YkZO>5zr)_| z1o)e`zmwiy+7@e#Z!pfyK}y?T17RctD$MExV6kWhr%5q3d-JchG3d3N>OW_xgTlDC zgn{4qU;t;XDn6shvc!x!>G4C#lI-$s zKF$SRm9&3DJGWdt8{dWe<+>q7Gwkb2+Iw^;N-GW2o2vuB*f(Fi2rCw+fwX?=+c3Wx zkjj7-A5W>J`!<}aIj^$kmqMf6T%x7KiZ!jKw!9Rh$}|;yD*^7KrJ>HW@ZwfH9I1qB z$MLX!(%Lm!>N#^Hi|!{zuu@az9Xk#2^?SkifEDfI*1+rc!dF;7wH+xR_eV(;iU%;9 z=yH%Tk{`L$*P%2RE32>E^;EX*^elmFEVIS?&_L=sUGbYaj1sn+wNps$I-H#oXLeRF z(xivwm&4C49P&(Pd7`DqM*o0a69KTc z3SpZCoDEPc!{V`g6@9MBb?^~);X}vFkrQE&R%YklR&Cfi7Ec@|SeRGTIQ}$^$u!b5qtZES05z){v!lID8^@7Z zG9yV7A4rWWG@r!RkPM76aZR?ItI9KA$Jl?grwK)99DyaW=rk{IlcS*O9e@ z*mRoLUnIT3?s&y!7lxoJP5#a9gfmE2Y@CwTQTCo|x>~Nx8C6=x z6nd_kG;98;nGlZMbm3)ExRS;qG&}>4#01pQ|xWEAd<)Q`P@(qy2 zT7U0m&>cEPKOM|4ULC;V7aFGcY*Hy=w^R7}k&=dg~L{(w@izMoELF32N=bFw* z03LgavOG<>v&TA#TRxLLkBkIAcW+2ucpm`^^-+CXc7Bu-SIlOV4Z=UQP_K9L#Wh^4 z7GMUgZq!7RJ`E(A7^}rqlcxDOh4lO?5JBJOUwI|G-YXAeqkI3>n!+E+ym4#300X>L z`Mg7j*j#3ahp!)o7r#9o$Xtxx!jv&6Bc@zS8mKk^T;o^XTtW&;B1x)AMacpWFs|XG z8rO7K4M2>xmTAJP_i!9(H*^@Q2J^i13iX;8%hV*mN%)}(_xpG`j_=A6)AfSqg44}M zy;iBu3SA#p7sdQQfHK#*= zPXE+d1%#FwW51{0?!=vNAQLp%7W=vwXtpI=wGu_~fToCi`Wfwk)O0f=+ZxtnKn@iI z6FE&ELn5fF;t6KYaMKn9UB~i7gu_63i%o+lXl2A$Rc_%Zzsxq|EHW=YEak};46{$3 ze=y+ga_BKgW1e6nZzrX;&t`YAkbt*_S4`jsa7Tj%%>0fM(_uj@vC#y5Hp1F?;E<)Y z1Fn5^&D3+@aphz{!=mE!)w*d#VkA}6gK2PCdm9tC>wSkd=8KVQDF7#neex6W48gQR z(7WH_khY$sQBr8MxMj^=t(hieqvVn4#c+ibb6DQ%l6wB$6$$swkfbj=3 zdX(YH`Q*Zn+31ocexC1TtDW}o$kBSPiEy5GFGJyUSm?9=TA@iyaGor=z~nx4tN%GW_VX5Hmysnc-_{D_Vg3t)ak4mH zr#IZ6e#OyjcZ@b%D)v-b+IrO^&Lvq_gs>{k_IDHbB3QBkw?>q0xjn$)bt4(Y@)k z?>b=P_;?`E%x!>Wz@c;!&t~RTV6#a$ACQ+^vBj!X z)}=1h5e!@|k7Q}_EKnsn1hr^$B>4^PS4`{;I$BRkE*1_=N~~I1Pf1K#Do%3OzwULe z+EyK+g0YK|T@s$ja>_)YGGVX;so>$EYr>eU8bJ(2X%3z`p+pm}&A>HuJ5LYrNM~`n zfBgO&685#YNhc>B@RS_=R(wSB^fH&foFr})*bg9~cjfoI;TWe z#oNpMs)gBzR}zFdSumlQ?0Ijsa*q(1+So&0KGYQmAI0j)`SA8C2?`kcHy_QCd-(1i zIURA9_x_{TbYf>;J}4Kr#G0Kw&W#EjFRekqA8EG&Lr3Zoo9CaBf zTOiUk!y4{Cl;J{x{}kQ^;l|4fO`&lZGBJU1y3$z~9lGrjE6lC|-VpEsh)KS9;%tK8 zK`7>yfM>b8Fsssz%T3D^7g8o)J?Cd$_j}pXcfIRL^SNu0*$eD)2VBninvcFx+)qlA z&r#nT1Ur~SkC89DfQ7z+-w$9oHRJNdu>ZoV!g$V@R4*Ou*DG&Z&1PRs6`dMH+I8A3 z(+p?cjX_U;u4#UvSTyECv+7h84Qzj|AhCo8M-D_DYX7a~ zU#dw9zlRC*)S%!Sy7OUCR;Tb5&){gan;JAFfyZMCZesN^E|i^k_|zuDY{HJJ0fzQq zR9eRMzc4FvnMsx4$s$=XTo_{T{#HTnP|rR=)=?#EJdNwpU9ereWJSwnNN=|GGa$pH7kQfl!_qixgE@cxQ} z=W>kIuuHLMW`SF!Ua+le;vqegB>>ofT3!+uc4{OumTd1^L%(51b4eB2yQtT;2HAzApq#YS!15SmqY+F;4W>I9KH)D$Rj3Ab%|Svh3`X=1~nlWEQb&?CndO|HBpxEb=9iM>jB z5r$keg2h{IjKm^i+3%j4+D4HV9;xHO^G~Q-r%!~|pnxyW41m!K`D0=?CyHgUIp>SJ zGLL{|ahciPyquw@&%x$8^FP1wuIE|dS)9z7uir0{^vgVbY#a@v6PTWFcIggZX%M&% zgJoRkEX^9I(LC7+w zt@nEr0x<_+2e}5R_d6>>-u*$_zm~WLf9v*Fx|w?^qtJkm9)JU*^DoV#nDWQ@x6kL*GtsQh}%8BIA0c-qv#V~ z9T+nj_Yk)-{fe*R*FNnqy;Gylmh00So3C8ul6Xuiy0c!`z4sPpY0c%5Sm?Z@#>n73 z^UUlSe;69*epANQkUVt*^8yzXS4b6ch%O1=WFGVJXp>&GuU!Oag4Y>x0sdXJar7*o$s3+$~HNy+}{lt{dNYZKj=RM zR)Gz4GXem1GzknVslAPEx`>0fYF3nhqv6h7nwH{Gw za`FJ#Z=ilvoYg>y5hd8AvE!bes7zZf+j|^?3N$sS6J_a^Q#5illWjuE(}}(9f8DSC zFx||OzP+zw;3QGrbWrMC+<=voU!moYL})Uk8;LF0#wk%=!CE*1{$A7F`OuR6x(qG3 z!p`h|VKjK5vXI^EQeJna{pGrSD{7!wyAoV|@2CMo_Oe+6!P!b2PM3%Bwyq(T_!Osv zkkeWAM*9-*X|Pau`RS$HzAQ7PyPn^HaNiq=|B#y$=ba0k*?4O5RQcR@* z(oJipYT$;*wk%Q3B)9>{^mV#2O=DIO;(6D$gv%@6$WwL#xay|6chy#%nx|D!_T8S%K zkNLCe_V-)@LJJ}dVhk#FA=3VFTLn@Lvh5GdkcVggmh3MjE2u`$q3H+|;({>hO!9$> zbf8(!L*29!k#nWz&7aglh)`UttorX_e z2UnGh=(4i@=Ql^IZV++!iX~X4r7p}!af7C$G?JFnZ|uEOeT_BU_WtQAzZ0H)+}2E| zcYGH=E*P5BkDt1a7*6wD>6@ro`8qvzO+c!qc1M1(uXHL#W#4}L%D9`evvYFvkBW`H zTawC$2Zs;yUks(EUaT1XDM&yeYA*QQq@qv4-lP_I*_}dr{9|eg{gI`TmyBF=CzF^A z*8MbD&71vN3K?EL5b1Y#((wB_=WI^KqXTWX}|Fh++wJNg2pO<_Jb*#85Sl~&gy~`9yI`7hO!r@GN zE)$vW3ZD+`$1DFc3(5bO)Bd~bd-sI?Y<&-c?{{hXdu{>Q2L(AO=KaPIihK}-keL6V zq0ZkL{-uTs$^b1p0FUqn1U`wp_x%_6$?BT!-d}^h z<=#_^ys->q9v^+>`>}q1N4?Or!h0k=E_^U1x*GF!)G}>rd5YGo!3s5wE+#hfmUtTN zdA=fIZzi9>@$S&Ml^zLWx9ql&<>|ca4G^&S^1dFMV{hwT;Ww5>9@y(%@je}YX|zsu z%Eyd-kshc^76kZ3%YRJ1Nt<XekVP&U(MBhJSMO>dl*Lb*Dns zLvQGAjYTo`%r4A-Smfq?@n!ean}ZeK`a|H5uDcGlCf1#Tpf*fRL2+G@PN7Oj>~5eE zd+DZ5#}@0S=`6bLm-3hf_X^zBh(M5-t;O*wtV0-3n|&m_hmOs|y{DS{Edc0pA%=UB zP!Z`p^|)76x7wM5RLl~EGQ`1m$8N>?zdPQ<`T9LPsn-7n{|n@61L=F~rurufuiet) z?plie$UNj;n#eRYCu2PHwM^DTb!)EFt%x$r<qSE6OJ3lO#QPQf;8TY9v_7hB%wd(m7oks=b*ucblX-0*|uvMX!C-!2vCtyb-$9{L_fh8U|k3Kj-{t_P)H3~j7I2IP2Q+SWu}Rnm~LIxI%&pkuTu?aJf$3() zh592aF1EP>1u6*yt^@|<0739m*FP`ULB}(WO8%K;kX8^|5Lmx!R7f-^-~HwcVh-Bm zgQSCi`v=SZ9>e~{>Pd69xyT!&YKSYeXF}=Dr;aky$6Fi+9_k88IF9z8fB1-So#xJ0 zy{DEBY?s$ru~yHiiuBvUB3a~?>|kEFZ-;+gC@Nk!*xL);oLyOYaX5WQ+nofX7Eet=u)Lf- zgGM1&)u~Nsd`PI09BBp^JCUr($bpw`l0dGOXfd|2Tuwq7x-&Ji_WX-wJ>jP6T=p+t z(J}kVoowdKAHJo_7`fMT9T(>gwjXuTeBFe~oWniqNgqF=BXmCYbu=3lf&4*|Dzx`H zTU_AD4>au4y$14ZoPdFFiaS$_Fc)+%LlPlAaxplV`a5ChT$wXRxygx=(nhI$gmWFhgx=+ zc$7Ev+R3(TT$gk90Ixk-cOY9>DHm=GvO@dgFzBe6Fy7dRDKy9o#~!LM=H=ER4@2lk z5U&Ac!W=L+c_VOCuWJ0HZHD)B{mVqSKJafrD zC+w`9lBlkYnS+6Ugay2Wn!a6M;gmupR#Zj~Wmt^-}om)Is(mr9; zbHlpXmA$;G<(JlqA_pc3IFutdU zkp|v__%40*WEtFvFAF{7vqw(KpXxvU@G*g8T&{_KF^IJ+bbVZEDUK;7G`wfZ+0-0) zXx8=S?2FBqffv40%^BYsp4-=4T1`PUr29_EU#(6V)>lfI;k6?%SQ*ayGN1u*XC3Yl z{c&EjN9;E=Xdzhxj5H%{lpqCuABW(>xcFc%<7Voh=350Acw*=sv#v?)vG*?8hb8hOhS|d3KopX~K8DnHJYsjAsXfDvfs+$wAMlEvi1vN#Xyri5S+zMH zz!I8?K-3ElIMTbPS2`nIZ8pXNH#%^nD8_@pn5I)z)^f?Dyp(v1<9u$D<1ZvjUT3gL&g0hV$>+k?*e=3Kn!$^Y5)Z-(L-U^8g~LC# z?#z~{V!{_ue&IYm>0|foV_$gaoc66dnOU>KaPU2Z)F{Ot0p!t70bqHDWmwEZssc`b z7OUr)z$}s>G-9EZb|?Z3tRGYc3K%b(3L1zcf9xN+;Q>WPh`Y0BEKZsTad(Eq&!;bU zyXT=^hQ0ba zg;X`X4v$qsup?(FXsGB-1bBo>G{mG ziYKaoA4DJRz1BNVw88W>5R=eCy zUdT6gZM>Qq+qtz50Om32jEte_b;JB77Rb-DSnKA@7<01`A+e;C4n)IMz( z*5*|L%*t`2hiBtdG~l4AZE39+BcVRvELCV}LmRS(a$mnsLg9EDKHW)omU+MxdP?X%xoi4GkxK`*ubiJY|jdx39^vjyHy zD=ZvEz%lnYduYoPvcDCb#)i3Gm94sSDXBv(2Z5ldZ2_Mi1dn~MG7n{&03LWNt=!#` zY$!)kYg4?RQ!A3Zp8fF1rE2qvSNX}WuaIr^Au;}%&zly-f9mEQ>gcy|2 zpcMDJp9ih)L6kwbLD2mUa(`%sJjDOq$@}Y09z+@Qo?-Wz862jah-N!+{i*3gy|hzy z@B0_~bj=>0di=cog!xO`Sz!OT>qYb801BL*Y2bpbvR6+$=U9dWPo?jfr>dv6E;?58 zWyTNCCiqTKNZUUF2c<-NJ}nLvCmjA2dyOJ9zO|O|03|fw(CixCZ2?7Nfr>L@Law$-{2^!#9ya`5Uf9q2vLiv z3j9Lz+_@_XaVq3{f8tYbey2F#=N$bb>ocC=yWf9I2$5GNqjFF?@0zBHY0-O!vne1j zz?n)}q*KAt!&#GzOVM3KMvYk@SDF?fu0jOqdhnp;nwq#EiJomewORI;IrcPLi=Olu zbWT+gz(ei#Lz@Aqbn7(2U!}2vC!v|3OO3fxTm|=hbXiX%MAkp{*`v^(??jKk?0t8% z_>n6~JOO$8gGB9KZ>x06$LNnTU0Q22u=iz`KPcpbY44OJN|IqnPLP@ANNIXnGm=#r zI(R`(z!92(x-~c)tt8hA6AFCL%7Y@vX`+wLml5=NI-=W*Pj|3d9Hrqb?*j~5TuBzX z5*Y&mn8=JiCXWpGfSuq5!_e`-iGgmX$Yl61kxAH!#_p#4^q_kVG@u;O7>TIB=-rf{ z6kOo*$h6~?bi+BI*{=<>dpHNNUqdx}gp7M1SE}p_gpT}91fQAM>@lXLaA06d<&_SC zzG7q|>K8qn7`_~lbsfoCQRyOj5O>Fs6zRyJh~iw`MBWf%*mAYv5UrZK&5}3clB$`x zjX)d5S5K#$wNW0=RK?4DzN1}1bWHV%3Q@{)<7bc0@cj;u@`E-9d)1T)wl4R09PJja zh=tm?B{QuKdIdA-jKcF@C{!=fBD+s{qc}UkmnElh*-NkGIW3mU8luMBsuwyzSk1t_ zU(3i%NiGuI*8}^D6>DlofX1B;BB^=6voXe|pTtkIo!>?*91dR3e@jK)zW_+9-o=TZz9~ zt^=$r#ywpM`+vD;lfQ41Y2l3C#ewu@E;_SI?|zvP!} zUV98-38_{Mrls-y^_Jb4*zw9s^9Sk%*2|9gD;q`g-xiAPYDgP&#`eP{3~*YsIKi;F zc(Oh5JXQ$+8a{WR7;x&BloQ~HTq9pJwz7Th%>!RLCBE>|3-1EOYNB4@H+@EL7knzp zzY?+pr_50JCBsRV6;Zc87*lFH0!Gk}icRs3o6Fx^USB-ZQMU{2ST)_$b-O1Ete@k2 zs*5G>b4`2=?-H2hjR@TH#9*$b)E#sl;>cxl0JaNL#%=?Yz%+3<(hOX$1k;A5V4HUN zmw-~ZzAUAbM&e^hbDNT(CXB^s9IGvjvAL|x@c}&9%B-8)L&N6%5!=T5?CGsGSj3*` z4crxRvm`$6ODEq^vjOK zgEpE08o$2xLKsnVV_B{e^TdzqNdcf*F@>dDDUqk_28u4j{G(RZcABXyD$?SHp76l! zUj6(kXv(1&7u#F0J0 z!WP^@UQp)d0$ViuFQ*3*P|SOH-|AQFla;z`_`}D8T%Vqo*PrU3J31G(@bWD?>3sgP zCwS895KkU&rmt*vwNIyD3$5QZU&F7A2kq3d`!< z%QO*Aia@PkZslHlO*Mb*8V_st-nmZgw)|HJIp1pk{{Q_;sQ$f;4JZCI{6VNeenGB5 z#z8p`5)IM~QV(k6LF7T<5903+-Tt+X)%+W{{}8wrFo1?q00Ebvf8xTr=%YvaSuz*C zu0MP5RJ}mqc^KP8i$eRy!6+W9C7U4UcMNa>e%UVHtEVW=o?K{;zdYNEN+0}gS9^8+ zd&XF0*Hm2qYOUmMY{^8E3XP}|i2q4Kp;7^caZV}_xUG8C$?r<>=Z;%v?(5(vtEp8l z&URrzyI`QD$oYc}&c2c~<_9dIeQLJ25R@Ph&dDdGm-}gMm%2#WQ`Y2rOa;hAt-ro} z8R-$9O2L(F$x=5O9K#=cTv;6+$YQ*Iu+N1WZ0joM$_-(yYy1&_qsV<1Ka6<*z!|hs zDTf+3A`As5Pyp0@X{B09LlUe&}2A?JW0o-EPgAA-b71UTgK*6kM>ET z5U9mfZS$j<(U%u^dg8=Vw+=s*C5;N;eB?+tjfR@yt6jA3RY$rbywGm0%slAWTRxupj3%R)yfD%GsFyFMJu`J1T6 z03hK6W86_do6#@DRD?NHj&L^lTtKH@qTV;W!7OsRT^S+0j)v3Wu^vjQs zEWG3??+vK*D5fV6HsvOE=a(}q5wfyy(D`cIhLwP^YVe>*#vz}^pr>V=LhM_=)L=VA zbfH2F8Ub*O3tuE!+56O#Q$W8V)Ydrrjs9SVKv^5mF?_<~$e5dV-cYo|a=D`I#f?09 z7zs5`M+|?r2Ur1^q79<@q2(P%Mg<4lEQ&caGaCMAzRH>YYvG*gZn=AL&vSoNZ~91LjhR4<@b%axHq0qCtJWW;ynMOGRdw+20cf3uL1F-e)vB7Ii= znofH12Jyr>el7ZCd1vT+kv5JzhYF6pyOdO|mJ`zk6lFVAiY4;I9pxJz?tb{L==4g* z_&qy6&QTq1pC&Kq!G%VSESDzav8%lPAEeq;0y-40{8LV#9cl{xSr-nX>vtm#;_A0v z5Mxj_gADs!y+VdTdwP&(zYRkk{=J0q9}XQPS;h6RxCS^%RYc+(1^>ki4ZFb|gap4> zpsCnFLaL>h#cAkRgZ8TWH=CjWc!ahAxe3Z?Ggy3LFvYIIcB1hI_tv)o`k>`W?}vCP zI~ebt8mboko%lR}zSIa>XrC>nSt;EK_#DmU89mf*MLoD#$Rb3+$t79HhKF z_1?4Ro^yW&pEm4bC+r+=Cw+_DJo+u;7{fiG^=WjwJ#WapJv~w_(M2|MKU}>EKLdE$oPo2Ye7O3Dg3U}p)6eS&<~HtqjpXa zQsAty(zWOwETDmk%vnvQlCU5&(zWTOYQnho2=w2z=u#=neM(F%yA}>V=m5uvlREMm zk1hku-r{bRyi}{HZIX6cCt*kW2xJ&X&S{xsltXOsS-E>&X_NO@R@_gu)j%;2 zI7vNhV!#}wfirsWo~P6Z9xc~Lt2ibu+bPR>r_@Mk`Qy=#DlIS5x=tSO$`aI@R@Y24 z8Ta8P8e8sVG#VVq{j|CZvHhKJEQV~36!p*`X}x=C5d()4r7Sn$fPBBD4v1VcQViU>b|$jDdFd!b4)P6>zUmgLKa8am9^`mU#+e z$D<~!0GGNrILQx%&m1Q-p@`N&S49;@#jc8l)Q;;p1S zmr^QB_Q;95TP>BoYq=A%>{GAoMUTN>nY%|n&AgbCmj|1Fcp9VsC1=B%bS`Eg@>leu z#}(Ph2KaYAc_868fXO+gomdj3O5MY%nQ9R$-=kD2S)c#Pg_eB`z z)y&f??2marM+vxmt9B^^mYOFR9DM5^Z-)E7=W6jfa-oPr*Dj#4<#U8Y7b$)Z-ZNH| z`{M%(*51Fz;OdM!bV`};;%H>5>W{$?sr;>)t5o&KW;Q9cdU&SE|L7f||304m*KgEo z`m19Wka)lA)88YB-!?)jLLNc@LL@>q{t@N=K6?9~%p;^QI6$8)A`GWx6~f=J0KoiI zES(;=<+JW5iR}1{6PD_v=hw0Bs2n_OpeQaSzJr^5=?HMHfdN;;-fdfH#?j7Z!LbCZ z1!)#Lo|9MZzXc!C@Q){eGf&~nyAAJcmfh5-I0d!w*(NSc*SxR*pIs^Ihj`hm40&O4 ztnk1IP*Und_Q30GJav2Hk_lxJUgZqft;D3S3b5ODCN6LE4lxn9*9#Os{O zr@nEtyKoJM#qWg9(^k=P9Yj*WVRI9-eo zYfTBkpbgz$v$NOOrX@gsyGN2YlGRK@*yAXuuh>H0Cq^?Y*KeSz`kL{4?1 z$JkQ1a6s23MxMsXLv?+?F1(4YM>`}E-tR<@VYLxvSj@0;%fng?nr0o+KNuk-Zn(TV z1G~dKN<)LM=!IaMsk&G^VQf!BV>1mR;5Ojsg|;|F%YY0#;1oKMSBVKym;T)3#ZfRmg`QX*F zMQo%rBTueRp>FXT9%&MjWPsd>gc;s-SswPhp^8^L{ZM{#I~E?hS%mj%VS7| z_K1iUa~vre;f=sx6Jh6UpIi5I!m#9Jr+T=Y9Jxlm!BH8t%|CgXvk9bFFk<5oz>hfu zLR$2kp}gdrT-b5J3VRoy&yRDIb58DY{jjBdc$P{&@~$C#AWhRmZ`E$mZREo6pxRO; z+;)PNbKO{wYun`m8z4I1&AP)i|6xm^n6fRu^2O`rRvm69DCYY)m8)4k4St?W^B*wV zlL`u?4G$(vi0_kMKR0L6%!0nglr$c`@1jAxG$*Rj0MbMdfa^i!sRXAV1^$AQSUu+Y zw4{;tS^KIiN@1=<6MiQ50l2o!O>AT{T*tPs^6=t8w1YcLht`8tOP4+CrLJ?_Ve8B_ESwtEG8#5#@7;0?>oqJD`Fgb4Kzp2^_j?U7%}t!M?9JUjlPG0 z$vQ0&a^~_#KNfS75daTLAc*+J5EQlEE$ecQQdvD9(C$c_zI=V@fbLIrA(;ZSgpYh30 ze%~J7p$1lyZC)ik1GlHHpUM0*7QH1ray|Lbn~B;L@wuWuSkUkRi1umaa=XpNN?zc( z*s8pU4m7rP%a4n%UKF^b_W!kaoyXO%V}A0TnnPh@c`xrFWzXNJnWJK#Hgo1pz^M+v|+;?u_rvn>Tak-Vf*7{+tiL zthLwvuchUYci)q`ke`21YvH~*?d!bAgZf(w59K{+Kxw;pMO9(tIyZiWi-pcR7 zF<=RN4HC#9X`cWV=Inh$qEKTWE3r3gPM0F2F(y1D(H+>ctw@4ShE(tURiQ7D86P`j zw=3g6b()sf#&)aC(+zrMOmzad;ew7neexRL)@p5vF&{?2KZ-A%NAv5VM+jNj{*%(n zb%<`x6nH8vUWo{o}K8n5)F42{>eoiYpmegjV>Y`VblPMh41e zU8{9W-~|}+vK{vfeRY4Dz#&YK@}opiJI!P&WVkoZ(u(IU*c|YezveHh zUABjr*h>`qAoIMkAb#Vk2xzVUE>b~sWrn>JD{T@fML%2JF6*b4LG%w$VlC*MRDjT3 z=O(&vn@+(n%c8NK{9B|tojBOcH7VAwdKR9uNIhN+00QUVEg|WvqPcya7NAf@3^+^# zqk~+>0SuP+w@)`Cxip9nHZ{0XX1bxAWFgQ2ZKNagBulTrNJc!Z0K3oX6@*L6HM#ne zEi-MR{&%mLYOvE++XcVvNk;EYY*Bh9IW9==6paWQ;FR$jyYFsbG4C|bbQ(&PFa;jIkmcCG0Qax*;`vymRq40UaOKQaiMuT_5 z07Tk*-H-wCL#XRJHCX|+CwL0)2zu0*f)A;RaZj)aw zy3~DBcaUwv3RwH~U~|R;M$4xA0)k_L*@H_RD_%?7ZB2EG$Y*ZYo=?nPKhDm3Re<80 zgd;*O?0rG81GF!{ii_LZR_PKQ-B>x}N^qKXNfH|obQL#Qdi54()n+@(bLtbGCG}8{ zP)rHDrHU$GBwjVg#SQW^)`M2{Hk84y<(aEX9QEKzCWX?3LY#!1?%rt|^}_NuQWuhB zt!R)^wnC~ms&Ywqz8K5u?NiaEUQ_jSc&X91hH`m47MK?ojxJda(q862kYRuF6>#3( zkH2pz^kX@XK$vf<0ZnHSEq=k_Q>Xspf{djuiM{rpdvpPOfSrMW$Wp(>rpTF0O79fV zVRIofu+gh{GA7P#8UL>y(fGgcvzh$cRO6@j1(^qu4-}7}JOn`q(hlSwNWq^H@)z^K z2l(#asmAZHr{;UsfQX?p-~e2-GM>$VjxbK-R|8ZR?!wrv=*b_Zc}c=acMNUt>(>|$ z9aB!0MH3;A#|Z8KtG=>_kdi<&+zi|fg4`FWd{7r!?kkEo`|UX*djkrsb$q`RIJmLw z0*jIr#f7T@E(8mK<9~(UA-Wa-xC%zt)+Y*ky5`>X9Xkt~{xk$iFJi4^QRR~Tu3K2s zNuPnIUEGxsqpNU8set54CNgBD;Te|uN~YS@t=aBbce5_d^#GOBM;k*#%-Iu5o*|K0 z5qFBIkQZGEr9BgM2&UzD0|nL?3gKo&i{9kYSLWXBTP|ONzlA{{Mk+)tI82jB{~Wpx z)5x+-Y;5KrfMSsgjUfU&d<#9#ba>$yW4?%iz7_)7R>=f_diJ-f#U(452>TWuq>H)* zTs75T-LY;Hj+H#f*ykq4b4ZQVR=Ew6>F}%_XOoe9c($nJNS8W0Q@K^DPA=L^q0{GJ zr|c7>&nVf1@JANvRy(VDnuFcfdb9^uEFt>s6W3EwEV{~lcvkFCpC*qOxnD%ccgR}x z2liBOJ$(Zz_~C#fX4>nj)>fvvrNCoWd;(e7khjzZvPR}h$Z*J8Z?r9?r5vL;*V$ZR z4ID1(b4uypdv)xb*a+JRhQ$awB5gOX%uY5t@fh{MCC8Ct-szhuRAPnAwB5<3yd3)z zvDh?Le=lRog+B+y3IXcY(P{m#@sDK#k{@O_>_gHPD&CyWTT!Hiv0TZaMMI1>*WEkw4V!??UjF2tr~IndQl1NURI>mBLCTY)Nyw1Mq%&s zW#~I#poSLleoVPZ_23$4yFFKiy=XVTe=3r?RK?O5GHy<9yY8gJfs`00mf(6Wsws189!%9soGW2Hw}Q@$UR798Vm)hsrkb zb)_G$LD;UNaDLg1!bGdoEo;Z>gQJznVGxiBEwGdJ2iSBOqkhN6zz zNpCu6ZoEH$aNRFOztiYDCWr*AN{Cxf$lY_6JYU0#>8NtWWi&Vz6g105*3X)@|2ocW zgQx`Q834gwIG#r*DSv_hj7?cd7*U=*+SI*KDK|Q0o!u@ zg+3=ckqG2~btW~#{62~hmMrE60;EK{2|#ZRt~|qDJ!nBkQeG_^EnPZ#EgnW1PXPX~ zHY1vRseaHO4+B8nL4lA`#NN@*_zvyVw?&7f-!JeSo-Ig!jD{AHuhh%=c60);WTJ-V|8sgB^g(JhA7 z=&v#IV!dIld30ht$Ysh9U0d006(c z;Gvk-zWY;gc@Y{364=yNlES zC%BDN&h6Jq-J)g2YMgUTIUi)`o>RX-RUuJ&}Rezw*UTKIIhXD0)b@~QdYHdFmmmt%*6f4ziaWk8Mod5M7jG-OY}AeU(! zY*?)#1NzeOyiO1s>&uDps?&;sL6d4X>sH33SvfWbE_mDtQA#p(+M2y}oWX4FCpm>K z+T$rPZx{lRVa9pAj^TUi33cJ0Ejyg#)?b=V_;3E_INuzueZO;`1e=Mzn6fanpZJR5Ey~LiQy&}&|!M=V%)dM3qbDmKX9>! ziNvF3X1Rv)#K0uRUl@LeL@L=^3AD#O?J+bCR)yRVYN(zu@{-bGz%NUC? z%cdh|?VT9{O?#|Ov;roSs>LI29Asc}6Rw$QOlT|XVT18ZKqkpEnJ(>*^EQwdlXRi) zFRMw8gFlt@HxLcP(Au|~Gn~7XyL9%jzy{vpiRxZ>W)I=Qnlp(F7P3O(WAFQH!OyT# zs0Gk`YX}6pyviXAy5tNU4)rC+>PX0|3~H#)lFk3r6@v{~FDnfxGDxN05Tf_~|1@-v|evjFK%nTyE%=X4m%8EyY=i zG?(TT)I67d#+@>sa&BqVBU_i5DlHc)9tsoYpxyRLwj^qKp-`UHi%`LoCinX)*<*_j zN?(t$9Ih*(&XhP~#!n`D=+(qNedum`xGM2fSYJivciK`_Pf>c5@G|Mx>AGzb=MNR} z{NbmYEjQCYI3 { + const { + tokenId, + tokenName, + price, + mintedBy, + previousOwner, + numberOfTransfers, + } = props.cryptoboy; + return ( +
+

+ Token Id :{" "} + {tokenId.toNumber()} +

+

+ Name : {tokenName} +

+

+ Price :{" "} + {window.web3.utils.fromWei(price.toString(), "Ether")} Ξ +

+

+ No. of Transfers :{" "} + {numberOfTransfers.toNumber()} +

+ {props.accountAddress === mintedBy && + props.accountAddress !== previousOwner ? ( +
+ Minted +
+ ) : ( +
Bought
+ )} +
+ ); +}; + +export default MyCryptoBoyNFTDetails; diff --git a/src/components/MyCryptoBoys/MyCryptoBoys.jsx b/src/components/MyCryptoBoys/MyCryptoBoys.jsx new file mode 100644 index 0000000..a314596 --- /dev/null +++ b/src/components/MyCryptoBoys/MyCryptoBoys.jsx @@ -0,0 +1,73 @@ +import React, { useState, useEffect } from "react"; +import CryptoBoyNFTImage from "../CryptoBoyNFTImage/CryptoBoyNFTImage"; +import MyCryptoBoyNFTDetails from "../MyCryptoBoyNFTDetails/MyCryptoBoyNFTDetails"; +import Loading from "../Loading/Loading"; + +const MyCryptoBoys = ({ + accountAddress, + cryptoBoys, + totalTokensOwnedByAccount, +}) => { + const [loading, setLoading] = useState(false); + const [myCryptoBoys, setMyCryptoBoys] = useState([]); + + useEffect(() => { + if (cryptoBoys.length !== 0) { + if (cryptoBoys[0].metaData !== undefined) { + setLoading(loading); + } else { + setLoading(false); + } + } + const my_crypto_boys = cryptoBoys.filter( + (cryptoboy) => cryptoboy.currentOwner === accountAddress + ); + setMyCryptoBoys(my_crypto_boys); + }, [cryptoBoys]); + + return ( +
+
+
+
+ Total No. of CryptoBoy's You Own : {totalTokensOwnedByAccount} +
+
+
+
+ {myCryptoBoys.map((cryptoboy) => { + return ( +
+
+
+ {!loading ? ( + + ) : ( + + )} +
+
+ +
+
+
+ ); + })} +
+
+ ); +}; + +export default MyCryptoBoys; diff --git a/src/components/Navbar/Navbar.jsx b/src/components/Navbar/Navbar.jsx new file mode 100644 index 0000000..a62210b --- /dev/null +++ b/src/components/Navbar/Navbar.jsx @@ -0,0 +1,55 @@ +import React from "react"; +import { Link } from "react-router-dom"; + +const Navbar = () => { + return ( + + ); +}; + +export default Navbar; diff --git a/src/components/Queries/Queries.jsx b/src/components/Queries/Queries.jsx new file mode 100644 index 0000000..d799156 --- /dev/null +++ b/src/components/Queries/Queries.jsx @@ -0,0 +1,129 @@ +import React, { useState } from "react"; + +const Queries = (props) => { + const [tokenIdForOwner, setTokenIdForOwner] = useState(""); + const [tokenOwner, setTokenOwner] = useState(""); + const [tokenIdForOwnerNotFound, setTokenIdForOwnerNotFound] = useState(false); + + const [tokenIdForMetadata, setTokenIdForMetadata] = useState(""); + const [tokenMetadata, setTokenMetadata] = useState(""); + const [tokenMetadataLink, setTokenMetadataLink] = useState(""); + const [tokenIdForMetadataNotFound, setTokenIdForMetadataNotFound] = useState( + false + ); + + const getTokenOwner = async (e) => { + e.preventDefault(); + try { + const owner = await props.cryptoBoysContract.methods + .getTokenOwner(tokenIdForOwner) + .call(); + setTokenOwner(owner); + setTimeout(() => { + setTokenOwner(""); + setTokenIdForOwner(""); + }, 5000); + } catch (e) { + setTokenIdForOwnerNotFound(true); + setTokenIdForOwner(""); + } + }; + + const getTokenMetadata = async (e) => { + e.preventDefault(); + try { + const metadata = await props.cryptoBoysContract.methods + .getTokenMetaData(tokenIdForMetadata) + .call(); + setTokenMetadata( + metadata.substr(0, 60) + "..." + metadata.slice(metadata.length - 5) + ); + setTokenMetadataLink(metadata); + setTimeout(() => { + setTokenMetadata(""); + setTokenIdForMetadata(""); + }, 5000); + } catch (e) { + setTokenIdForMetadataNotFound(true); + setTokenIdForMetadata(""); + } + }; + + return ( +
+
+
+
Queries
+
+
+
+
+
+
Get Token Owner
+
+
+ setTokenIdForOwner(e.target.value)} + /> +
+ + {tokenIdForOwnerNotFound ? ( +
+ + Non-Existent Token Id +
+ ) : null} +
+

{tokenOwner}

+
+
+
Get Token Metadata
+
+
+ setTokenIdForMetadata(e.target.value)} + /> +
+ + {tokenIdForMetadataNotFound ? ( +
+ + Non-Existent Token Id +
+ ) : null} +
+

+ + {tokenMetadata} + +

+
+
+
+
+ ); +}; + +export default Queries; diff --git a/src/contracts/CryptoBoys.sol b/src/contracts/CryptoBoys.sol new file mode 100644 index 0000000..94c40c1 --- /dev/null +++ b/src/contracts/CryptoBoys.sol @@ -0,0 +1,137 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.4.21 <0.8.0; +pragma abicoder v2; + +import "./ERC721.sol"; + +contract CryptoBoys is ERC721 { + + string public collectionName; + string public collectionNameSymbol; + + uint256 public cryptoBoyCounter; + + struct CryptoBoy { + uint256 tokenId; + string tokenName; + string tokenURI; + address payable mintedBy; + address payable currentOwner; + address payable previousOwner; + uint256 price; + uint256 numberOfTransfers; + bool forSale; + } + + mapping(uint256 => CryptoBoy) public allCryptoBoys; + + mapping(string => bool) public tokenNameExists; + mapping(string => bool) public colorExists; + mapping(string => bool) public tokenURIExists; + + constructor() ERC721("Crypto Boys Collection", "CB") { + collectionName = name(); + collectionNameSymbol = symbol(); + } + + function mintCryptoBoy(string memory _name, string memory _tokenURI, uint256 _price, string[] calldata _colors) external { + + require(msg.sender != address(0)); + cryptoBoyCounter ++; + require(!_exists(cryptoBoyCounter)); + + for(uint i=0; i<_colors.length; i++) { + require(!colorExists[_colors[i]]); + } + require(!tokenURIExists[_tokenURI]); + require(!tokenNameExists[_name]); + + _mint(msg.sender, cryptoBoyCounter); + _setTokenURI(cryptoBoyCounter, _tokenURI); + + for (uint i=0; i<_colors.length; i++) { + colorExists[_colors[i]] = true; + } + tokenURIExists[_tokenURI] = true; + tokenNameExists[_name] = true; + + CryptoBoy memory newCryptoBoy = CryptoBoy( + cryptoBoyCounter, + _name, + _tokenURI, + msg.sender, + msg.sender, + address(0), + _price, + 0, + true); + allCryptoBoys[cryptoBoyCounter] = newCryptoBoy; + } + + function getTokenOwner(uint256 _tokenId) public view returns(address) { + address _tokenOwner = ownerOf(_tokenId); + return _tokenOwner; + } + + function getTokenMetaData(uint _tokenId) public view returns(string memory) { + string memory tokenMetaData = tokenURI(_tokenId); + return tokenMetaData; + } + + function getNumberOfTokensMinted() public view returns(uint256) { + uint256 totalNumberOfTokensMinted = totalSupply(); + return totalNumberOfTokensMinted; + } + + function getTotalNumberOfTokensOwnedByAnAddress(address _owner) public view returns(uint256) { + uint256 totalNumberOfTokensOwned = balanceOf(_owner); + return totalNumberOfTokensOwned; + } + + function getTokenExists(uint256 _tokenId) public view returns(bool) { + bool tokenExists = _exists(_tokenId); + return tokenExists; + } + + function buyToken(uint256 _tokenId) public payable { + require(msg.sender != address(0)); + require(_exists(_tokenId)); + address tokenOwner = ownerOf(_tokenId); + require(tokenOwner != address(0)); + require(tokenOwner != msg.sender); + CryptoBoy memory cryptoboy = allCryptoBoys[_tokenId]; + require(msg.value >= cryptoboy.price); + require(cryptoboy.forSale); + _transfer(tokenOwner, msg.sender, _tokenId); + address payable sendTo = cryptoboy.currentOwner; + sendTo.transfer(msg.value); + cryptoboy.previousOwner = cryptoboy.currentOwner; + cryptoboy.currentOwner = msg.sender; + cryptoboy.numberOfTransfers += 1; + allCryptoBoys[_tokenId] = cryptoboy; + } + + function changeTokenPrice(uint256 _tokenId, uint256 _newPrice) public { + require(msg.sender != address(0)); + require(_exists(_tokenId)); + address tokenOwner = ownerOf(_tokenId); + require(tokenOwner == msg.sender); + CryptoBoy memory cryptoboy = allCryptoBoys[_tokenId]; + cryptoboy.price = _newPrice; + allCryptoBoys[_tokenId] = cryptoboy; + } + + function toggleForSale(uint256 _tokenId) public { + require(msg.sender != address(0)); + require(_exists(_tokenId)); + address tokenOwner = ownerOf(_tokenId); + require(tokenOwner == msg.sender); + CryptoBoy memory cryptoboy = allCryptoBoys[_tokenId]; + if(cryptoboy.forSale) { + cryptoboy.forSale = false; + } else { + cryptoboy.forSale = true; + } + allCryptoBoys[_tokenId] = cryptoboy; + } +} \ No newline at end of file diff --git a/src/contracts/ERC721.sol b/src/contracts/ERC721.sol new file mode 100644 index 0000000..a8fbf94 --- /dev/null +++ b/src/contracts/ERC721.sol @@ -0,0 +1,1776 @@ +// SPDX-License-Identifier: MIT + +// File: @openzeppelin/contracts/utils/Context.sol +pragma solidity >=0.6.0 <0.8.0; + +/* + * @dev Provides information about the current execution context, including the + * sender of the transaction and its data. While these are generally available + * via msg.sender and msg.data, they should not be accessed in such a direct + * manner, since when dealing with GSN meta-transactions the account sending and + * paying for execution may not be the actual sender (as far as an application + * is concerned). + * + * This contract is only required for intermediate, library-like contracts. + */ +abstract contract Context { + function _msgSender() internal view virtual returns (address payable) { + return msg.sender; + } + + function _msgData() internal view virtual returns (bytes memory) { + this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 + return msg.data; + } +} + +// File: @openzeppelin/contracts/introspection/IERC165.sol + +pragma solidity >=0.6.0 <0.8.0; + +/** + * @dev Interface of the ERC165 standard, as defined in the + * https://eips.ethereum.org/EIPS/eip-165[EIP]. + * + * Implementers can declare support of contract interfaces, which can then be + * queried by others ({ERC165Checker}). + * + * For an implementation, see {ERC165}. + */ +interface IERC165 { + /** + * @dev Returns true if this contract implements the interface defined by + * `interfaceId`. See the corresponding + * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] + * to learn more about how these ids are created. + * + * This function call must use less than 30 000 gas. + */ + function supportsInterface(bytes4 interfaceId) external view returns (bool); +} + +// File: @openzeppelin/contracts/token/ERC721/IERC721.sol +pragma solidity >=0.6.2 <0.8.0; + + +/** + * @dev Required interface of an ERC721 compliant contract. + */ +interface IERC721 is IERC165 { + /** + * @dev Emitted when `tokenId` token is transferred from `from` to `to`. + */ + event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); + + /** + * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. + */ + event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); + + /** + * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. + */ + event ApprovalForAll(address indexed owner, address indexed operator, bool approved); + + /** + * @dev Returns the number of tokens in ``owner``'s account. + */ + function balanceOf(address owner) external view returns (uint256 balance); + + /** + * @dev Returns the owner of the `tokenId` token. + * + * Requirements: + * + * - `tokenId` must exist. + */ + function ownerOf(uint256 tokenId) external view returns (address owner); + + /** + * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients + * are aware of the ERC721 protocol to prevent tokens from being forever locked. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must exist and be owned by `from`. + * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. + * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. + * + * Emits a {Transfer} event. + */ + function safeTransferFrom(address from, address to, uint256 tokenId) external; + + /** + * @dev Transfers `tokenId` token from `from` to `to`. + * + * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must be owned by `from`. + * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. + * + * Emits a {Transfer} event. + */ + function transferFrom(address from, address to, uint256 tokenId) external; + + /** + * @dev Gives permission to `to` to transfer `tokenId` token to another account. + * The approval is cleared when the token is transferred. + * + * Only a single account can be approved at a time, so approving the zero address clears previous approvals. + * + * Requirements: + * + * - The caller must own the token or be an approved operator. + * - `tokenId` must exist. + * + * Emits an {Approval} event. + */ + function approve(address to, uint256 tokenId) external; + + /** + * @dev Returns the account approved for `tokenId` token. + * + * Requirements: + * + * - `tokenId` must exist. + */ + function getApproved(uint256 tokenId) external view returns (address operator); + + /** + * @dev Approve or remove `operator` as an operator for the caller. + * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. + * + * Requirements: + * + * - The `operator` cannot be the caller. + * + * Emits an {ApprovalForAll} event. + */ + function setApprovalForAll(address operator, bool _approved) external; + + /** + * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. + * + * See {setApprovalForAll} + */ + function isApprovedForAll(address owner, address operator) external view returns (bool); + + /** + * @dev Safely transfers `tokenId` token from `from` to `to`. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must exist and be owned by `from`. + * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. + * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. + * + * Emits a {Transfer} event. + */ + function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external; +} + +// File: @openzeppelin/contracts/token/ERC721/IERC721Metadata.sol +pragma solidity >=0.6.2 <0.8.0; + + +/** + * @title ERC-721 Non-Fungible Token Standard, optional metadata extension + * @dev See https://eips.ethereum.org/EIPS/eip-721 + */ +interface IERC721Metadata is IERC721 { + + /** + * @dev Returns the token collection name. + */ + function name() external view returns (string memory); + + /** + * @dev Returns the token collection symbol. + */ + function symbol() external view returns (string memory); + + /** + * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. + */ + function tokenURI(uint256 tokenId) external view returns (string memory); +} + +// File: @openzeppelin/contracts/token/ERC721/IERC721Enumerable.sol + + +pragma solidity >=0.6.2 <0.8.0; + + +/** + * @title ERC-721 Non-Fungible Token Standard, optional enumeration extension + * @dev See https://eips.ethereum.org/EIPS/eip-721 + */ +interface IERC721Enumerable is IERC721 { + + /** + * @dev Returns the total amount of tokens stored by the contract. + */ + function totalSupply() external view returns (uint256); + + /** + * @dev Returns a token ID owned by `owner` at a given `index` of its token list. + * Use along with {balanceOf} to enumerate all of ``owner``'s tokens. + */ + function tokenOfOwnerByIndex(address owner, uint256 index) external view returns (uint256 tokenId); + + /** + * @dev Returns a token ID at a given `index` of all the tokens stored by the contract. + * Use along with {totalSupply} to enumerate all tokens. + */ + function tokenByIndex(uint256 index) external view returns (uint256); +} + +// File: @openzeppelin/contracts/token/ERC721/IERC721Receiver.sol + + +pragma solidity >=0.6.0 <0.8.0; + +/** + * @title ERC721 token receiver interface + * @dev Interface for any contract that wants to support safeTransfers + * from ERC721 asset contracts. + */ +interface IERC721Receiver { + /** + * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} + * by `operator` from `from`, this function is called. + * + * It must return its Solidity selector to confirm the token transfer. + * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. + * + * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`. + */ + function onERC721Received(address operator, address from, uint256 tokenId, bytes calldata data) external returns (bytes4); +} + +// File: @openzeppelin/contracts/introspection/ERC165.sol +pragma solidity >=0.6.0 <0.8.0; + + +/** + * @dev Implementation of the {IERC165} interface. + * + * Contracts may inherit from this and call {_registerInterface} to declare + * their support of an interface. + */ +abstract contract ERC165 is IERC165 { + /* + * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7 + */ + bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7; + + /** + * @dev Mapping of interface ids to whether or not it's supported. + */ + mapping(bytes4 => bool) private _supportedInterfaces; + + constructor () { + // Derived contracts need only register support for their own interfaces, + // we register support for ERC165 itself here + _registerInterface(_INTERFACE_ID_ERC165); + } + + /** + * @dev See {IERC165-supportsInterface}. + * + * Time complexity O(1), guaranteed to always use less than 30 000 gas. + */ + function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) { + return _supportedInterfaces[interfaceId]; + } + + /** + * @dev Registers the contract as an implementer of the interface defined by + * `interfaceId`. Support of the actual ERC165 interface is automatic and + * registering its interface id is not required. + * + * See {IERC165-supportsInterface}. + * + * Requirements: + * + * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`). + */ + function _registerInterface(bytes4 interfaceId) internal virtual { + require(interfaceId != 0xffffffff, "ERC165: invalid interface id"); + _supportedInterfaces[interfaceId] = true; + } +} + +// File: @openzeppelin/contracts/math/SafeMath.sol +pragma solidity >=0.6.0 <0.8.0; + +/** + * @dev Wrappers over Solidity's arithmetic operations with added overflow + * checks. + * + * Arithmetic operations in Solidity wrap on overflow. This can easily result + * in bugs, because programmers usually assume that an overflow raises an + * error, which is the standard behavior in high level programming languages. + * `SafeMath` restores this intuition by reverting the transaction when an + * operation overflows. + * + * Using this library instead of the unchecked operations eliminates an entire + * class of bugs, so it's recommended to use it always. + */ +library SafeMath { + /** + * @dev Returns the addition of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { + uint256 c = a + b; + if (c < a) return (false, 0); + return (true, c); + } + + /** + * @dev Returns the substraction of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { + if (b > a) return (false, 0); + return (true, a - b); + } + + /** + * @dev Returns the multiplication of two unsigned integers, with an overflow flag. + * + * _Available since v3.4._ + */ + function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { + // Gas optimization: this is cheaper than requiring 'a' not being zero, but the + // benefit is lost if 'b' is also tested. + // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 + if (a == 0) return (true, 0); + uint256 c = a * b; + if (c / a != b) return (false, 0); + return (true, c); + } + + /** + * @dev Returns the division of two unsigned integers, with a division by zero flag. + * + * _Available since v3.4._ + */ + function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { + if (b == 0) return (false, 0); + return (true, a / b); + } + + /** + * @dev Returns the remainder of dividing two unsigned integers, with a division by zero flag. + * + * _Available since v3.4._ + */ + function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { + if (b == 0) return (false, 0); + return (true, a % b); + } + + /** + * @dev Returns the addition of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `+` operator. + * + * Requirements: + * + * - Addition cannot overflow. + */ + function add(uint256 a, uint256 b) internal pure returns (uint256) { + uint256 c = a + b; + require(c >= a, "SafeMath: addition overflow"); + return c; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting on + * overflow (when the result is negative). + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint256 a, uint256 b) internal pure returns (uint256) { + require(b <= a, "SafeMath: subtraction overflow"); + return a - b; + } + + /** + * @dev Returns the multiplication of two unsigned integers, reverting on + * overflow. + * + * Counterpart to Solidity's `*` operator. + * + * Requirements: + * + * - Multiplication cannot overflow. + */ + function mul(uint256 a, uint256 b) internal pure returns (uint256) { + if (a == 0) return 0; + uint256 c = a * b; + require(c / a == b, "SafeMath: multiplication overflow"); + return c; + } + + /** + * @dev Returns the integer division of two unsigned integers, reverting on + * division by zero. The result is rounded towards zero. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint256 a, uint256 b) internal pure returns (uint256) { + require(b > 0, "SafeMath: division by zero"); + return a / b; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * reverting when dividing by zero. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint256 a, uint256 b) internal pure returns (uint256) { + require(b > 0, "SafeMath: modulo by zero"); + return a % b; + } + + /** + * @dev Returns the subtraction of two unsigned integers, reverting with custom message on + * overflow (when the result is negative). + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {trySub}. + * + * Counterpart to Solidity's `-` operator. + * + * Requirements: + * + * - Subtraction cannot overflow. + */ + function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + require(b <= a, errorMessage); + return a - b; + } + + /** + * @dev Returns the integer division of two unsigned integers, reverting with custom message on + * division by zero. The result is rounded towards zero. + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {tryDiv}. + * + * Counterpart to Solidity's `/` operator. Note: this function uses a + * `revert` opcode (which leaves remaining gas untouched) while Solidity + * uses an invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + require(b > 0, errorMessage); + return a / b; + } + + /** + * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), + * reverting with custom message when dividing by zero. + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {tryMod}. + * + * Counterpart to Solidity's `%` operator. This function uses a `revert` + * opcode (which leaves remaining gas untouched) while Solidity uses an + * invalid opcode to revert (consuming all remaining gas). + * + * Requirements: + * + * - The divisor cannot be zero. + */ + function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { + require(b > 0, errorMessage); + return a % b; + } +} + +// File: @openzeppelin/contracts/utils/Address.sol +pragma solidity >=0.6.2 <0.8.0; + +/** + * @dev Collection of functions related to the address type + */ +library Address { + /** + * @dev Returns true if `account` is a contract. + * + * [IMPORTANT] + * ==== + * It is unsafe to assume that an address for which this function returns + * false is an externally-owned account (EOA) and not a contract. + * + * Among others, `isContract` will return false for the following + * types of addresses: + * + * - an externally-owned account + * - a contract in construction + * - an address where a contract will be created + * - an address where a contract lived, but was destroyed + * ==== + */ + function isContract(address account) internal view returns (bool) { + // This method relies on extcodesize, which returns 0 for contracts in + // construction, since the code is only stored at the end of the + // constructor execution. + + uint256 size; + // solhint-disable-next-line no-inline-assembly + assembly { size := extcodesize(account) } + return size > 0; + } + + /** + * @dev Replacement for Solidity's `transfer`: sends `amount` wei to + * `recipient`, forwarding all available gas and reverting on errors. + * + * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost + * of certain opcodes, possibly making contracts go over the 2300 gas limit + * imposed by `transfer`, making them unable to receive funds via + * `transfer`. {sendValue} removes this limitation. + * + * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. + * + * IMPORTANT: because control is transferred to `recipient`, care must be + * taken to not create reentrancy vulnerabilities. Consider using + * {ReentrancyGuard} or the + * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. + */ + function sendValue(address payable recipient, uint256 amount) internal { + require(address(this).balance >= amount, "Address: insufficient balance"); + + // solhint-disable-next-line avoid-low-level-calls, avoid-call-value + (bool success, ) = recipient.call{ value: amount }(""); + require(success, "Address: unable to send value, recipient may have reverted"); + } + + /** + * @dev Performs a Solidity function call using a low level `call`. A + * plain`call` is an unsafe replacement for a function call: use this + * function instead. + * + * If `target` reverts with a revert reason, it is bubbled up by this + * function (like regular Solidity function calls). + * + * Returns the raw returned data. To convert to the expected return value, + * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. + * + * Requirements: + * + * - `target` must be a contract. + * - calling `target` with `data` must not revert. + * + * _Available since v3.1._ + */ + function functionCall(address target, bytes memory data) internal returns (bytes memory) { + return functionCall(target, data, "Address: low-level call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with + * `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { + return functionCallWithValue(target, data, 0, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but also transferring `value` wei to `target`. + * + * Requirements: + * + * - the calling contract must have an ETH balance of at least `value`. + * - the called Solidity function must be `payable`. + * + * _Available since v3.1._ + */ + function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { + return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); + } + + /** + * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but + * with `errorMessage` as a fallback revert reason when `target` reverts. + * + * _Available since v3.1._ + */ + function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { + require(address(this).balance >= value, "Address: insufficient balance for call"); + require(isContract(target), "Address: call to non-contract"); + + // solhint-disable-next-line avoid-low-level-calls + (bool success, bytes memory returndata) = target.call{ value: value }(data); + return _verifyCallResult(success, returndata, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but performing a static call. + * + * _Available since v3.3._ + */ + function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { + return functionStaticCall(target, data, "Address: low-level static call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], + * but performing a static call. + * + * _Available since v3.3._ + */ + function functionStaticCall(address target, bytes memory data, string memory errorMessage) internal view returns (bytes memory) { + require(isContract(target), "Address: static call to non-contract"); + + // solhint-disable-next-line avoid-low-level-calls + (bool success, bytes memory returndata) = target.staticcall(data); + return _verifyCallResult(success, returndata, errorMessage); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], + * but performing a delegate call. + * + * _Available since v3.4._ + */ + function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { + return functionDelegateCall(target, data, "Address: low-level delegate call failed"); + } + + /** + * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], + * but performing a delegate call. + * + * _Available since v3.4._ + */ + function functionDelegateCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { + require(isContract(target), "Address: delegate call to non-contract"); + + // solhint-disable-next-line avoid-low-level-calls + (bool success, bytes memory returndata) = target.delegatecall(data); + return _verifyCallResult(success, returndata, errorMessage); + } + + function _verifyCallResult(bool success, bytes memory returndata, string memory errorMessage) private pure returns(bytes memory) { + if (success) { + return returndata; + } else { + // Look for revert reason and bubble it up if present + if (returndata.length > 0) { + // The easiest way to bubble the revert reason is using memory via assembly + + // solhint-disable-next-line no-inline-assembly + assembly { + let returndata_size := mload(returndata) + revert(add(32, returndata), returndata_size) + } + } else { + revert(errorMessage); + } + } + } +} + +// File: @openzeppelin/contracts/utils/EnumerableSet.sol +pragma solidity >=0.6.0 <0.8.0; + +/** + * @dev Library for managing + * https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets] of primitive + * types. + * + * Sets have the following properties: + * + * - Elements are added, removed, and checked for existence in constant time + * (O(1)). + * - Elements are enumerated in O(n). No guarantees are made on the ordering. + * + * ``` + * contract Example { + * // Add the library methods + * using EnumerableSet for EnumerableSet.AddressSet; + * + * // Declare a set state variable + * EnumerableSet.AddressSet private mySet; + * } + * ``` + * + * As of v3.3.0, sets of type `bytes32` (`Bytes32Set`), `address` (`AddressSet`) + * and `uint256` (`UintSet`) are supported. + */ +library EnumerableSet { + // To implement this library for multiple types with as little code + // repetition as possible, we write it in terms of a generic Set type with + // bytes32 values. + // The Set implementation uses private functions, and user-facing + // implementations (such as AddressSet) are just wrappers around the + // underlying Set. + // This means that we can only create new EnumerableSets for types that fit + // in bytes32. + + struct Set { + // Storage of set values + bytes32[] _values; + + // Position of the value in the `values` array, plus 1 because index 0 + // means a value is not in the set. + mapping (bytes32 => uint256) _indexes; + } + + /** + * @dev Add a value to a set. O(1). + * + * Returns true if the value was added to the set, that is if it was not + * already present. + */ + function _add(Set storage set, bytes32 value) private returns (bool) { + if (!_contains(set, value)) { + set._values.push(value); + // The value is stored at length-1, but we add 1 to all indexes + // and use 0 as a sentinel value + set._indexes[value] = set._values.length; + return true; + } else { + return false; + } + } + + /** + * @dev Removes a value from a set. O(1). + * + * Returns true if the value was removed from the set, that is if it was + * present. + */ + function _remove(Set storage set, bytes32 value) private returns (bool) { + // We read and store the value's index to prevent multiple reads from the same storage slot + uint256 valueIndex = set._indexes[value]; + + if (valueIndex != 0) { // Equivalent to contains(set, value) + // To delete an element from the _values array in O(1), we swap the element to delete with the last one in + // the array, and then remove the last element (sometimes called as 'swap and pop'). + // This modifies the order of the array, as noted in {at}. + + uint256 toDeleteIndex = valueIndex - 1; + uint256 lastIndex = set._values.length - 1; + + // When the value to delete is the last one, the swap operation is unnecessary. However, since this occurs + // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement. + + bytes32 lastvalue = set._values[lastIndex]; + + // Move the last value to the index where the value to delete is + set._values[toDeleteIndex] = lastvalue; + // Update the index for the moved value + set._indexes[lastvalue] = toDeleteIndex + 1; // All indexes are 1-based + + // Delete the slot where the moved value was stored + set._values.pop(); + + // Delete the index for the deleted slot + delete set._indexes[value]; + + return true; + } else { + return false; + } + } + + /** + * @dev Returns true if the value is in the set. O(1). + */ + function _contains(Set storage set, bytes32 value) private view returns (bool) { + return set._indexes[value] != 0; + } + + /** + * @dev Returns the number of values on the set. O(1). + */ + function _length(Set storage set) private view returns (uint256) { + return set._values.length; + } + + /** + * @dev Returns the value stored at position `index` in the set. O(1). + * + * Note that there are no guarantees on the ordering of values inside the + * array, and it may change when more values are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function _at(Set storage set, uint256 index) private view returns (bytes32) { + require(set._values.length > index, "EnumerableSet: index out of bounds"); + return set._values[index]; + } + + // Bytes32Set + + struct Bytes32Set { + Set _inner; + } + + /** + * @dev Add a value to a set. O(1). + * + * Returns true if the value was added to the set, that is if it was not + * already present. + */ + function add(Bytes32Set storage set, bytes32 value) internal returns (bool) { + return _add(set._inner, value); + } + + /** + * @dev Removes a value from a set. O(1). + * + * Returns true if the value was removed from the set, that is if it was + * present. + */ + function remove(Bytes32Set storage set, bytes32 value) internal returns (bool) { + return _remove(set._inner, value); + } + + /** + * @dev Returns true if the value is in the set. O(1). + */ + function contains(Bytes32Set storage set, bytes32 value) internal view returns (bool) { + return _contains(set._inner, value); + } + + /** + * @dev Returns the number of values in the set. O(1). + */ + function length(Bytes32Set storage set) internal view returns (uint256) { + return _length(set._inner); + } + + /** + * @dev Returns the value stored at position `index` in the set. O(1). + * + * Note that there are no guarantees on the ordering of values inside the + * array, and it may change when more values are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function at(Bytes32Set storage set, uint256 index) internal view returns (bytes32) { + return _at(set._inner, index); + } + + // AddressSet + + struct AddressSet { + Set _inner; + } + + /** + * @dev Add a value to a set. O(1). + * + * Returns true if the value was added to the set, that is if it was not + * already present. + */ + function add(AddressSet storage set, address value) internal returns (bool) { + return _add(set._inner, bytes32(uint256(uint160(value)))); + } + + /** + * @dev Removes a value from a set. O(1). + * + * Returns true if the value was removed from the set, that is if it was + * present. + */ + function remove(AddressSet storage set, address value) internal returns (bool) { + return _remove(set._inner, bytes32(uint256(uint160(value)))); + } + + /** + * @dev Returns true if the value is in the set. O(1). + */ + function contains(AddressSet storage set, address value) internal view returns (bool) { + return _contains(set._inner, bytes32(uint256(uint160(value)))); + } + + /** + * @dev Returns the number of values in the set. O(1). + */ + function length(AddressSet storage set) internal view returns (uint256) { + return _length(set._inner); + } + + /** + * @dev Returns the value stored at position `index` in the set. O(1). + * + * Note that there are no guarantees on the ordering of values inside the + * array, and it may change when more values are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function at(AddressSet storage set, uint256 index) internal view returns (address) { + return address(uint160(uint256(_at(set._inner, index)))); + } + + + // UintSet + + struct UintSet { + Set _inner; + } + + /** + * @dev Add a value to a set. O(1). + * + * Returns true if the value was added to the set, that is if it was not + * already present. + */ + function add(UintSet storage set, uint256 value) internal returns (bool) { + return _add(set._inner, bytes32(value)); + } + + /** + * @dev Removes a value from a set. O(1). + * + * Returns true if the value was removed from the set, that is if it was + * present. + */ + function remove(UintSet storage set, uint256 value) internal returns (bool) { + return _remove(set._inner, bytes32(value)); + } + + /** + * @dev Returns true if the value is in the set. O(1). + */ + function contains(UintSet storage set, uint256 value) internal view returns (bool) { + return _contains(set._inner, bytes32(value)); + } + + /** + * @dev Returns the number of values on the set. O(1). + */ + function length(UintSet storage set) internal view returns (uint256) { + return _length(set._inner); + } + + /** + * @dev Returns the value stored at position `index` in the set. O(1). + * + * Note that there are no guarantees on the ordering of values inside the + * array, and it may change when more values are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function at(UintSet storage set, uint256 index) internal view returns (uint256) { + return uint256(_at(set._inner, index)); + } +} + +// File: @openzeppelin/contracts/utils/EnumerableMap.sol +pragma solidity >=0.6.0 <0.8.0; + +/** + * @dev Library for managing an enumerable variant of Solidity's + * https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`] + * type. + * + * Maps have the following properties: + * + * - Entries are added, removed, and checked for existence in constant time + * (O(1)). + * - Entries are enumerated in O(n). No guarantees are made on the ordering. + * + * ``` + * contract Example { + * // Add the library methods + * using EnumerableMap for EnumerableMap.UintToAddressMap; + * + * // Declare a set state variable + * EnumerableMap.UintToAddressMap private myMap; + * } + * ``` + * + * As of v3.0.0, only maps of type `uint256 -> address` (`UintToAddressMap`) are + * supported. + */ +library EnumerableMap { + // To implement this library for multiple types with as little code + // repetition as possible, we write it in terms of a generic Map type with + // bytes32 keys and values. + // The Map implementation uses private functions, and user-facing + // implementations (such as Uint256ToAddressMap) are just wrappers around + // the underlying Map. + // This means that we can only create new EnumerableMaps for types that fit + // in bytes32. + + struct MapEntry { + bytes32 _key; + bytes32 _value; + } + + struct Map { + // Storage of map keys and values + MapEntry[] _entries; + + // Position of the entry defined by a key in the `entries` array, plus 1 + // because index 0 means a key is not in the map. + mapping (bytes32 => uint256) _indexes; + } + + /** + * @dev Adds a key-value pair to a map, or updates the value for an existing + * key. O(1). + * + * Returns true if the key was added to the map, that is if it was not + * already present. + */ + function _set(Map storage map, bytes32 key, bytes32 value) private returns (bool) { + // We read and store the key's index to prevent multiple reads from the same storage slot + uint256 keyIndex = map._indexes[key]; + + if (keyIndex == 0) { // Equivalent to !contains(map, key) + map._entries.push(MapEntry({ _key: key, _value: value })); + // The entry is stored at length-1, but we add 1 to all indexes + // and use 0 as a sentinel value + map._indexes[key] = map._entries.length; + return true; + } else { + map._entries[keyIndex - 1]._value = value; + return false; + } + } + + /** + * @dev Removes a key-value pair from a map. O(1). + * + * Returns true if the key was removed from the map, that is if it was present. + */ + function _remove(Map storage map, bytes32 key) private returns (bool) { + // We read and store the key's index to prevent multiple reads from the same storage slot + uint256 keyIndex = map._indexes[key]; + + if (keyIndex != 0) { // Equivalent to contains(map, key) + // To delete a key-value pair from the _entries array in O(1), we swap the entry to delete with the last one + // in the array, and then remove the last entry (sometimes called as 'swap and pop'). + // This modifies the order of the array, as noted in {at}. + + uint256 toDeleteIndex = keyIndex - 1; + uint256 lastIndex = map._entries.length - 1; + + // When the entry to delete is the last one, the swap operation is unnecessary. However, since this occurs + // so rarely, we still do the swap anyway to avoid the gas cost of adding an 'if' statement. + + MapEntry storage lastEntry = map._entries[lastIndex]; + + // Move the last entry to the index where the entry to delete is + map._entries[toDeleteIndex] = lastEntry; + // Update the index for the moved entry + map._indexes[lastEntry._key] = toDeleteIndex + 1; // All indexes are 1-based + + // Delete the slot where the moved entry was stored + map._entries.pop(); + + // Delete the index for the deleted slot + delete map._indexes[key]; + + return true; + } else { + return false; + } + } + + /** + * @dev Returns true if the key is in the map. O(1). + */ + function _contains(Map storage map, bytes32 key) private view returns (bool) { + return map._indexes[key] != 0; + } + + /** + * @dev Returns the number of key-value pairs in the map. O(1). + */ + function _length(Map storage map) private view returns (uint256) { + return map._entries.length; + } + + /** + * @dev Returns the key-value pair stored at position `index` in the map. O(1). + * + * Note that there are no guarantees on the ordering of entries inside the + * array, and it may change when more entries are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function _at(Map storage map, uint256 index) private view returns (bytes32, bytes32) { + require(map._entries.length > index, "EnumerableMap: index out of bounds"); + + MapEntry storage entry = map._entries[index]; + return (entry._key, entry._value); + } + + /** + * @dev Tries to returns the value associated with `key`. O(1). + * Does not revert if `key` is not in the map. + */ + function _tryGet(Map storage map, bytes32 key) private view returns (bool, bytes32) { + uint256 keyIndex = map._indexes[key]; + if (keyIndex == 0) return (false, 0); // Equivalent to contains(map, key) + return (true, map._entries[keyIndex - 1]._value); // All indexes are 1-based + } + + /** + * @dev Returns the value associated with `key`. O(1). + * + * Requirements: + * + * - `key` must be in the map. + */ + function _get(Map storage map, bytes32 key) private view returns (bytes32) { + uint256 keyIndex = map._indexes[key]; + require(keyIndex != 0, "EnumerableMap: nonexistent key"); // Equivalent to contains(map, key) + return map._entries[keyIndex - 1]._value; // All indexes are 1-based + } + + /** + * @dev Same as {_get}, with a custom error message when `key` is not in the map. + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {_tryGet}. + */ + function _get(Map storage map, bytes32 key, string memory errorMessage) private view returns (bytes32) { + uint256 keyIndex = map._indexes[key]; + require(keyIndex != 0, errorMessage); // Equivalent to contains(map, key) + return map._entries[keyIndex - 1]._value; // All indexes are 1-based + } + + // UintToAddressMap + + struct UintToAddressMap { + Map _inner; + } + + /** + * @dev Adds a key-value pair to a map, or updates the value for an existing + * key. O(1). + * + * Returns true if the key was added to the map, that is if it was not + * already present. + */ + function set(UintToAddressMap storage map, uint256 key, address value) internal returns (bool) { + return _set(map._inner, bytes32(key), bytes32(uint256(uint160(value)))); + } + + /** + * @dev Removes a value from a set. O(1). + * + * Returns true if the key was removed from the map, that is if it was present. + */ + function remove(UintToAddressMap storage map, uint256 key) internal returns (bool) { + return _remove(map._inner, bytes32(key)); + } + + /** + * @dev Returns true if the key is in the map. O(1). + */ + function contains(UintToAddressMap storage map, uint256 key) internal view returns (bool) { + return _contains(map._inner, bytes32(key)); + } + + /** + * @dev Returns the number of elements in the map. O(1). + */ + function length(UintToAddressMap storage map) internal view returns (uint256) { + return _length(map._inner); + } + + /** + * @dev Returns the element stored at position `index` in the set. O(1). + * Note that there are no guarantees on the ordering of values inside the + * array, and it may change when more values are added or removed. + * + * Requirements: + * + * - `index` must be strictly less than {length}. + */ + function at(UintToAddressMap storage map, uint256 index) internal view returns (uint256, address) { + (bytes32 key, bytes32 value) = _at(map._inner, index); + return (uint256(key), address(uint160(uint256(value)))); + } + + /** + * @dev Tries to returns the value associated with `key`. O(1). + * Does not revert if `key` is not in the map. + * + * _Available since v3.4._ + */ + function tryGet(UintToAddressMap storage map, uint256 key) internal view returns (bool, address) { + (bool success, bytes32 value) = _tryGet(map._inner, bytes32(key)); + return (success, address(uint160(uint256(value)))); + } + + /** + * @dev Returns the value associated with `key`. O(1). + * + * Requirements: + * + * - `key` must be in the map. + */ + function get(UintToAddressMap storage map, uint256 key) internal view returns (address) { + return address(uint160(uint256(_get(map._inner, bytes32(key))))); + } + + /** + * @dev Same as {get}, with a custom error message when `key` is not in the map. + * + * CAUTION: This function is deprecated because it requires allocating memory for the error + * message unnecessarily. For custom revert reasons use {tryGet}. + */ + function get(UintToAddressMap storage map, uint256 key, string memory errorMessage) internal view returns (address) { + return address(uint160(uint256(_get(map._inner, bytes32(key), errorMessage)))); + } +} + +// File: @openzeppelin/contracts/utils/Strings.sol +pragma solidity >=0.6.0 <0.8.0; + +/** + * @dev String operations. + */ +library Strings { + /** + * @dev Converts a `uint256` to its ASCII `string` representation. + */ + function toString(uint256 value) internal pure returns (string memory) { + // Inspired by OraclizeAPI's implementation - MIT licence + // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol + + if (value == 0) { + return "0"; + } + uint256 temp = value; + uint256 digits; + while (temp != 0) { + digits++; + temp /= 10; + } + bytes memory buffer = new bytes(digits); + uint256 index = digits - 1; + temp = value; + while (temp != 0) { + buffer[index--] = bytes1(uint8(48 + temp % 10)); + temp /= 10; + } + return string(buffer); + } +} + +// File: @openzeppelin/contracts/token/ERC721/ERC721.sol +pragma solidity >=0.6.0 <0.8.0; + +/** + * @title ERC721 Non-Fungible Token Standard basic implementation + * @dev see https://eips.ethereum.org/EIPS/eip-721 + */ +contract ERC721 is Context, ERC165, IERC721, IERC721Metadata, IERC721Enumerable { + using SafeMath for uint256; + using Address for address; + using EnumerableSet for EnumerableSet.UintSet; + using EnumerableMap for EnumerableMap.UintToAddressMap; + using Strings for uint256; + + // Equals to `bytes4(keccak256("onERC721Received(address,address,uint256,bytes)"))` + // which can be also obtained as `IERC721Receiver(0).onERC721Received.selector` + bytes4 private constant _ERC721_RECEIVED = 0x150b7a02; + + // Mapping from holder address to their (enumerable) set of owned tokens + mapping (address => EnumerableSet.UintSet) private _holderTokens; + + // Enumerable mapping from token ids to their owners + EnumerableMap.UintToAddressMap private _tokenOwners; + + // Mapping from token ID to approved address + mapping (uint256 => address) private _tokenApprovals; + + // Mapping from owner to operator approvals + mapping (address => mapping (address => bool)) private _operatorApprovals; + + // Token name + string private _name; + + // Token symbol + string private _symbol; + + // Optional mapping for token URIs + mapping (uint256 => string) private _tokenURIs; + + // Base URI + string private _baseURI; + + /* + * bytes4(keccak256('balanceOf(address)')) == 0x70a08231 + * bytes4(keccak256('ownerOf(uint256)')) == 0x6352211e + * bytes4(keccak256('approve(address,uint256)')) == 0x095ea7b3 + * bytes4(keccak256('getApproved(uint256)')) == 0x081812fc + * bytes4(keccak256('setApprovalForAll(address,bool)')) == 0xa22cb465 + * bytes4(keccak256('isApprovedForAll(address,address)')) == 0xe985e9c5 + * bytes4(keccak256('transferFrom(address,address,uint256)')) == 0x23b872dd + * bytes4(keccak256('safeTransferFrom(address,address,uint256)')) == 0x42842e0e + * bytes4(keccak256('safeTransferFrom(address,address,uint256,bytes)')) == 0xb88d4fde + * + * => 0x70a08231 ^ 0x6352211e ^ 0x095ea7b3 ^ 0x081812fc ^ + * 0xa22cb465 ^ 0xe985e9c5 ^ 0x23b872dd ^ 0x42842e0e ^ 0xb88d4fde == 0x80ac58cd + */ + bytes4 private constant _INTERFACE_ID_ERC721 = 0x80ac58cd; + + /* + * bytes4(keccak256('name()')) == 0x06fdde03 + * bytes4(keccak256('symbol()')) == 0x95d89b41 + * bytes4(keccak256('tokenURI(uint256)')) == 0xc87b56dd + * + * => 0x06fdde03 ^ 0x95d89b41 ^ 0xc87b56dd == 0x5b5e139f + */ + bytes4 private constant _INTERFACE_ID_ERC721_METADATA = 0x5b5e139f; + + /* + * bytes4(keccak256('totalSupply()')) == 0x18160ddd + * bytes4(keccak256('tokenOfOwnerByIndex(address,uint256)')) == 0x2f745c59 + * bytes4(keccak256('tokenByIndex(uint256)')) == 0x4f6ccce7 + * + * => 0x18160ddd ^ 0x2f745c59 ^ 0x4f6ccce7 == 0x780e9d63 + */ + bytes4 private constant _INTERFACE_ID_ERC721_ENUMERABLE = 0x780e9d63; + + /** + * @dev Initializes the contract by setting a `name` and a `symbol` to the token collection. + */ + constructor (string memory name_, string memory symbol_) { + _name = name_; + _symbol = symbol_; + + // register the supported interfaces to conform to ERC721 via ERC165 + _registerInterface(_INTERFACE_ID_ERC721); + _registerInterface(_INTERFACE_ID_ERC721_METADATA); + _registerInterface(_INTERFACE_ID_ERC721_ENUMERABLE); + } + + /** + * @dev See {IERC721-balanceOf}. + */ + function balanceOf(address owner) public view virtual override returns (uint256) { + require(owner != address(0), "ERC721: balance query for the zero address"); + return _holderTokens[owner].length(); + } + + /** + * @dev See {IERC721-ownerOf}. + */ + function ownerOf(uint256 tokenId) public view virtual override returns (address) { + return _tokenOwners.get(tokenId, "ERC721: owner query for nonexistent token"); + } + + /** + * @dev See {IERC721Metadata-name}. + */ + function name() public view virtual override returns (string memory) { + return _name; + } + + /** + * @dev See {IERC721Metadata-symbol}. + */ + function symbol() public view virtual override returns (string memory) { + return _symbol; + } + + /** + * @dev See {IERC721Metadata-tokenURI}. + */ + function tokenURI(uint256 tokenId) public view virtual override returns (string memory) { + require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token"); + + string memory _tokenURI = _tokenURIs[tokenId]; + string memory base = baseURI(); + + // If there is no base URI, return the token URI. + if (bytes(base).length == 0) { + return _tokenURI; + } + // If both are set, concatenate the baseURI and tokenURI (via abi.encodePacked). + if (bytes(_tokenURI).length > 0) { + return string(abi.encodePacked(base, _tokenURI)); + } + // If there is a baseURI but no tokenURI, concatenate the tokenID to the baseURI. + return string(abi.encodePacked(base, tokenId.toString())); + } + + /** + * @dev Returns the base URI set via {_setBaseURI}. This will be + * automatically added as a prefix in {tokenURI} to each token's URI, or + * to the token ID if no specific URI is set for that token ID. + */ + function baseURI() public view virtual returns (string memory) { + return _baseURI; + } + + /** + * @dev See {IERC721Enumerable-tokenOfOwnerByIndex}. + */ + function tokenOfOwnerByIndex(address owner, uint256 index) public view virtual override returns (uint256) { + return _holderTokens[owner].at(index); + } + + /** + * @dev See {IERC721Enumerable-totalSupply}. + */ + function totalSupply() public view virtual override returns (uint256) { + // _tokenOwners are indexed by tokenIds, so .length() returns the number of tokenIds + return _tokenOwners.length(); + } + + /** + * @dev See {IERC721Enumerable-tokenByIndex}. + */ + function tokenByIndex(uint256 index) public view virtual override returns (uint256) { + (uint256 tokenId, ) = _tokenOwners.at(index); + return tokenId; + } + + /** + * @dev See {IERC721-approve}. + */ + function approve(address to, uint256 tokenId) public virtual override { + address owner = ERC721.ownerOf(tokenId); + require(to != owner, "ERC721: approval to current owner"); + + require(_msgSender() == owner || ERC721.isApprovedForAll(owner, _msgSender()), + "ERC721: approve caller is not owner nor approved for all" + ); + + _approve(to, tokenId); + } + + /** + * @dev See {IERC721-getApproved}. + */ + function getApproved(uint256 tokenId) public view virtual override returns (address) { + require(_exists(tokenId), "ERC721: approved query for nonexistent token"); + + return _tokenApprovals[tokenId]; + } + + /** + * @dev See {IERC721-setApprovalForAll}. + */ + function setApprovalForAll(address operator, bool approved) public virtual override { + require(operator != _msgSender(), "ERC721: approve to caller"); + + _operatorApprovals[_msgSender()][operator] = approved; + emit ApprovalForAll(_msgSender(), operator, approved); + } + + /** + * @dev See {IERC721-isApprovedForAll}. + */ + function isApprovedForAll(address owner, address operator) public view virtual override returns (bool) { + return _operatorApprovals[owner][operator]; + } + + /** + * @dev See {IERC721-transferFrom}. + */ + function transferFrom(address from, address to, uint256 tokenId) public virtual override { + //solhint-disable-next-line max-line-length + require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); + + _transfer(from, to, tokenId); + } + + /** + * @dev See {IERC721-safeTransferFrom}. + */ + function safeTransferFrom(address from, address to, uint256 tokenId) public virtual override { + safeTransferFrom(from, to, tokenId, ""); + } + + /** + * @dev See {IERC721-safeTransferFrom}. + */ + function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public virtual override { + require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721: transfer caller is not owner nor approved"); + _safeTransfer(from, to, tokenId, _data); + } + + /** + * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients + * are aware of the ERC721 protocol to prevent tokens from being forever locked. + * + * `_data` is additional data, it has no specified format and it is sent in call to `to`. + * + * This internal function is equivalent to {safeTransferFrom}, and can be used to e.g. + * implement alternative mechanisms to perform token transfer, such as signature-based. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must exist and be owned by `from`. + * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. + * + * Emits a {Transfer} event. + */ + function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal virtual { + _transfer(from, to, tokenId); + require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); + } + + /** + * @dev Returns whether `tokenId` exists. + * + * Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}. + * + * Tokens start existing when they are minted (`_mint`), + * and stop existing when they are burned (`_burn`). + */ + function _exists(uint256 tokenId) internal view virtual returns (bool) { + return _tokenOwners.contains(tokenId); + } + + /** + * @dev Returns whether `spender` is allowed to manage `tokenId`. + * + * Requirements: + * + * - `tokenId` must exist. + */ + function _isApprovedOrOwner(address spender, uint256 tokenId) internal view virtual returns (bool) { + require(_exists(tokenId), "ERC721: operator query for nonexistent token"); + address owner = ERC721.ownerOf(tokenId); + return (spender == owner || getApproved(tokenId) == spender || ERC721.isApprovedForAll(owner, spender)); + } + + /** + * @dev Safely mints `tokenId` and transfers it to `to`. + * + * Requirements: + d* + * - `tokenId` must not exist. + * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. + * + * Emits a {Transfer} event. + */ + function _safeMint(address to, uint256 tokenId) internal virtual { + _safeMint(to, tokenId, ""); + } + + /** + * @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is + * forwarded in {IERC721Receiver-onERC721Received} to contract recipients. + */ + function _safeMint(address to, uint256 tokenId, bytes memory _data) internal virtual { + _mint(to, tokenId); + require(_checkOnERC721Received(address(0), to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer"); + } + + /** + * @dev Mints `tokenId` and transfers it to `to`. + * + * WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible + * + * Requirements: + * + * - `tokenId` must not exist. + * - `to` cannot be the zero address. + * + * Emits a {Transfer} event. + */ + function _mint(address to, uint256 tokenId) internal virtual { + require(to != address(0), "ERC721: mint to the zero address"); + require(!_exists(tokenId), "ERC721: token already minted"); + + _beforeTokenTransfer(address(0), to, tokenId); + + _holderTokens[to].add(tokenId); + + _tokenOwners.set(tokenId, to); + + emit Transfer(address(0), to, tokenId); + } + + /** + * @dev Destroys `tokenId`. + * The approval is cleared when the token is burned. + * + * Requirements: + * + * - `tokenId` must exist. + * + * Emits a {Transfer} event. + */ + function _burn(uint256 tokenId) internal virtual { + address owner = ERC721.ownerOf(tokenId); // internal owner + + _beforeTokenTransfer(owner, address(0), tokenId); + + // Clear approvals + _approve(address(0), tokenId); + + // Clear metadata (if any) + if (bytes(_tokenURIs[tokenId]).length != 0) { + delete _tokenURIs[tokenId]; + } + + _holderTokens[owner].remove(tokenId); + + _tokenOwners.remove(tokenId); + + emit Transfer(owner, address(0), tokenId); + } + + /** + * @dev Transfers `tokenId` from `from` to `to`. + * As opposed to {transferFrom}, this imposes no restrictions on msg.sender. + * + * Requirements: + * + * - `to` cannot be the zero address. + * - `tokenId` token must be owned by `from`. + * + * Emits a {Transfer} event. + */ + function _transfer(address from, address to, uint256 tokenId) internal virtual { + require(ERC721.ownerOf(tokenId) == from, "ERC721: transfer of token that is not own"); // internal owner + require(to != address(0), "ERC721: transfer to the zero address"); + + _beforeTokenTransfer(from, to, tokenId); + + // Clear approvals from the previous owner + _approve(address(0), tokenId); + + _holderTokens[from].remove(tokenId); + _holderTokens[to].add(tokenId); + + _tokenOwners.set(tokenId, to); + + emit Transfer(from, to, tokenId); + } + + /** + * @dev Sets `_tokenURI` as the tokenURI of `tokenId`. + * + * Requirements: + * + * - `tokenId` must exist. + */ + function _setTokenURI(uint256 tokenId, string memory _tokenURI) internal virtual { + require(_exists(tokenId), "ERC721Metadata: URI set of nonexistent token"); + _tokenURIs[tokenId] = _tokenURI; + } + + /** + * @dev Internal function to set the base URI for all token IDs. It is + * automatically added as a prefix to the value returned in {tokenURI}, + * or to the token ID if {tokenURI} is empty. + */ + function _setBaseURI(string memory baseURI_) internal virtual { + _baseURI = baseURI_; + } + + /** + * @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address. + * The call is not executed if the target address is not a contract. + * + * @param from address representing the previous owner of the given token ID + * @param to target address that will receive the tokens + * @param tokenId uint256 ID of the token to be transferred + * @param _data bytes optional data to send along with the call + * @return bool whether the call correctly returned the expected magic value + */ + function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data) + private returns (bool) + { + if (!to.isContract()) { + return true; + } + bytes memory returndata = to.functionCall(abi.encodeWithSelector( + IERC721Receiver(to).onERC721Received.selector, + _msgSender(), + from, + tokenId, + _data + ), "ERC721: transfer to non ERC721Receiver implementer"); + bytes4 retval = abi.decode(returndata, (bytes4)); + return (retval == _ERC721_RECEIVED); + } + + /** + * @dev Approve `to` to operate on `tokenId` + * + * Emits an {Approval} event. + */ + function _approve(address to, uint256 tokenId) internal virtual { + _tokenApprovals[tokenId] = to; + emit Approval(ERC721.ownerOf(tokenId), to, tokenId); // internal owner + } + + /** + * @dev Hook that is called before any token transfer. This includes minting + * and burning. + * + * Calling conditions: + * + * - When `from` and `to` are both non-zero, ``from``'s `tokenId` will be + * transferred to `to`. + * - When `from` is zero, `tokenId` will be minted for `to`. + * - When `to` is zero, ``from``'s `tokenId` will be burned. + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * + * To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]. + */ + function _beforeTokenTransfer(address from, address to, uint256 tokenId) internal virtual { } +} diff --git a/src/contracts/Migrations.sol b/src/contracts/Migrations.sol new file mode 100644 index 0000000..b4fba04 --- /dev/null +++ b/src/contracts/Migrations.sol @@ -0,0 +1,24 @@ +// SPDX-License-Identifier: MIT +pragma solidity >=0.4.21 <0.8.0; + +contract Migrations { + address public owner; + uint public last_completed_migration; + + constructor() { + owner = msg.sender; + } + + modifier restricted() { + if (msg.sender == owner) _; + } + + function setCompleted(uint completed) public restricted { + last_completed_migration = completed; + } + + function upgrade(address new_address) public restricted { + Migrations upgraded = Migrations(new_address); + upgraded.setCompleted(last_completed_migration); + } +} diff --git a/src/index.js b/src/index.js new file mode 100755 index 0000000..3d47a81 --- /dev/null +++ b/src/index.js @@ -0,0 +1,13 @@ +import React from "react"; +import ReactDOM from "react-dom"; +import App from "./components/App"; +import * as serviceWorker from "./serviceWorker"; + +import "./bootstrap.min.css"; + +ReactDOM.render(, document.getElementById("root")); + +// If you want your app to work offline and load faster, you can change +// unregister() to register() below. Note this comes with some pitfalls. +// Learn more about service workers: https://bit.ly/CRA-PWA +serviceWorker.unregister(); diff --git a/src/serviceWorker.js b/src/serviceWorker.js new file mode 100755 index 0000000..f8c7e50 --- /dev/null +++ b/src/serviceWorker.js @@ -0,0 +1,135 @@ +// This optional code is used to register a service worker. +// register() is not called by default. + +// This lets the app load faster on subsequent visits in production, and gives +// it offline capabilities. However, it also means that developers (and users) +// will only see deployed updates on subsequent visits to a page, after all the +// existing tabs open on the page have been closed, since previously cached +// resources are updated in the background. + +// To learn more about the benefits of this model and instructions on how to +// opt-in, read https://bit.ly/CRA-PWA + +const isLocalhost = Boolean( + window.location.hostname === 'localhost' || + // [::1] is the IPv6 localhost address. + window.location.hostname === '[::1]' || + // 127.0.0.1/8 is considered localhost for IPv4. + window.location.hostname.match( + /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ + ) +); + +export function register(config) { + if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { + // The URL constructor is available in all browsers that support SW. + const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href); + if (publicUrl.origin !== window.location.origin) { + // Our service worker won't work if PUBLIC_URL is on a different origin + // from what our page is served on. This might happen if a CDN is used to + // serve assets; see https://github.com/facebook/create-react-app/issues/2374 + return; + } + + window.addEventListener('load', () => { + const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; + + if (isLocalhost) { + // This is running on localhost. Let's check if a service worker still exists or not. + checkValidServiceWorker(swUrl, config); + + // Add some additional logging to localhost, pointing developers to the + // service worker/PWA documentation. + navigator.serviceWorker.ready.then(() => { + console.log( + 'This web app is being served cache-first by a service ' + + 'worker. To learn more, visit https://bit.ly/CRA-PWA' + ); + }); + } else { + // Is not localhost. Just register service worker + registerValidSW(swUrl, config); + } + }); + } +} + +function registerValidSW(swUrl, config) { + navigator.serviceWorker + .register(swUrl) + .then(registration => { + registration.onupdatefound = () => { + const installingWorker = registration.installing; + if (installingWorker == null) { + return; + } + installingWorker.onstatechange = () => { + if (installingWorker.state === 'installed') { + if (navigator.serviceWorker.controller) { + // At this point, the updated precached content has been fetched, + // but the previous service worker will still serve the older + // content until all client tabs are closed. + console.log( + 'New content is available and will be used when all ' + + 'tabs for this page are closed. See https://bit.ly/CRA-PWA.' + ); + + // Execute callback + if (config && config.onUpdate) { + config.onUpdate(registration); + } + } else { + // At this point, everything has been precached. + // It's the perfect time to display a + // "Content is cached for offline use." message. + console.log('Content is cached for offline use.'); + + // Execute callback + if (config && config.onSuccess) { + config.onSuccess(registration); + } + } + } + }; + }; + }) + .catch(error => { + console.error('Error during service worker registration:', error); + }); +} + +function checkValidServiceWorker(swUrl, config) { + // Check if the service worker can be found. If it can't reload the page. + fetch(swUrl) + .then(response => { + // Ensure service worker exists, and that we really are getting a JS file. + const contentType = response.headers.get('content-type'); + if ( + response.status === 404 || + (contentType != null && contentType.indexOf('javascript') === -1) + ) { + // No service worker found. Probably a different app. Reload the page. + navigator.serviceWorker.ready.then(registration => { + registration.unregister().then(() => { + window.location.reload(); + }); + }); + } else { + // Service worker found. Proceed as normal. + registerValidSW(swUrl, config); + } + }) + .catch(() => { + console.log( + 'No internet connection found. App is running in offline mode.' + ); + }); +} + +export function unregister() { + if ('serviceWorker' in navigator) { + navigator.serviceWorker.ready.then(registration => { + registration.unregister(); + }); + } +} diff --git a/test/CryptoBoys.test.js b/test/CryptoBoys.test.js new file mode 100644 index 0000000..5e1633a --- /dev/null +++ b/test/CryptoBoys.test.js @@ -0,0 +1,487 @@ +const { assert } = require("chai"); + +const CryptoBoys = artifacts.require("./CryptoBoys.sol"); + +require("chai") + .use(require("chai-as-promised")) + .should(); + +contract("Crypto Boys", async (accounts) => { + let cryptoBoys, result, cryptoBoyCount; + + before(async () => { + cryptoBoys = await CryptoBoys.deployed(); + }); + + describe("Deployment", async () => { + it("contract has an address", async () => { + const address = await cryptoBoys.address; + assert.notEqual(address, 0x0); + assert.notEqual(address, ""); + assert.notEqual(address, null); + assert.notEqual(address, undefined); + }); + + it("has a name", async () => { + const name = await cryptoBoys.collectionName(); + assert.equal(name, "Crypto Boys Collection"); + }); + + it("has a symbol", async () => { + const symbol = await cryptoBoys.collectionNameSymbol(); + assert.equal(symbol, "CB"); + }); + }); + + describe("application features", async () => { + it("allows users to mint ERC721 token", async () => { + cryptoBoyCount = await cryptoBoys.cryptoBoyCounter(); + assert.equal(cryptoBoyCount.toNumber(), 0); + + let tokenExists; + tokenExists = await cryptoBoys.getTokenExists(1, { from: accounts[0] }); + assert.equal(tokenExists, false); + + let tokenURIExists; + tokenURIExists = await cryptoBoys.tokenURIExists( + "https://gateway.pinata.cloud/ipfs/QmYFmJgQGH4uPHRYN15Xdv4aLd9o4Aq63y1e4GgN6kj5aK/2", + { from: accounts[0] } + ); + assert.equal(tokenURIExists, false); + + let tokenNameExists; + tokenNameExists = await cryptoBoys.tokenNameExists("myCBNFT", { + from: accounts[0], + }); + assert.equal(tokenNameExists, false); + + let colorExists; + const colorsArray1 = [ + "#2a2b2e", + "#5a5a66", + "#a4c2a8", + "#aceb98", + "#87ff65", + "#995d81", + "#eb8258", + "#f6f740", + "#d8dc6a", + "#6689a1", + "#fe938c", + "#e6b89c", + "#ead2ac", + "#9cafb7", + "#4281a4", + ]; + for (let i = 0; i < colorsArray1.length; i++) { + colorExists = await cryptoBoys.colorExists(colorsArray1[i], { + from: accounts[0], + }); + assert.equal(colorExists, false); + } + + result = await cryptoBoys.mintCryptoBoy( + "myCBNFT", + "https://gateway.pinata.cloud/ipfs/QmYFmJgQGH4uPHRYN15Xdv4aLd9o4Aq63y1e4GgN6kj5aK/2", + web3.utils.toWei("1", "Ether"), + colorsArray1, + { from: accounts[0] } + ); + + cryptoBoyCount = await cryptoBoys.cryptoBoyCounter(); + assert.equal(cryptoBoyCount.toNumber(), 1); + + tokenExists = await cryptoBoys.getTokenExists(1, { from: accounts[0] }); + assert.equal(tokenExists, true); + + tokenURIExists = await cryptoBoys.tokenURIExists( + "https://gateway.pinata.cloud/ipfs/QmYFmJgQGH4uPHRYN15Xdv4aLd9o4Aq63y1e4GgN6kj5aK/2", + { from: accounts[0] } + ); + assert.equal(tokenURIExists, true); + + tokenNameExists = await cryptoBoys.tokenNameExists("myCBNFT", { + from: accounts[0], + }); + assert.equal(tokenNameExists, true); + + for (let i = 0; i < colorsArray1.length; i++) { + colorExists = await cryptoBoys.colorExists(colorsArray1[i], { + from: accounts[0], + }); + assert.equal(colorExists, true); + } + + let cryptoboy; + cryptoboy = await cryptoBoys.allCryptoBoys(1, { + from: accounts[0], + }); + assert.equal(cryptoboy.tokenId.toNumber(), 1); + assert.equal(cryptoboy.tokenName, "myCBNFT"); + assert.equal( + cryptoboy.tokenURI, + "https://gateway.pinata.cloud/ipfs/QmYFmJgQGH4uPHRYN15Xdv4aLd9o4Aq63y1e4GgN6kj5aK/2" + ); + assert.equal(cryptoboy.mintedBy, accounts[0]); + assert.equal(cryptoboy.currentOwner, accounts[0]); + assert.equal( + cryptoboy.previousOwner, + 0x0000000000000000000000000000000000000000 + ); + assert.equal(web3.utils.fromWei(cryptoboy.price, "ether"), 1); + assert.equal(cryptoboy.numberOfTransfers.toNumber(), 0); + assert.equal(cryptoboy.forSale, true); + + const colorsArray2 = [ + "#212b2e", + "#515a66", + "#a1c2a8", + "#a1eb98", + "#81ff65", + "#915d81", + "#e18258", + "#f1f740", + "#d1dc6a", + "#6189a1", + "#f1938c", + "#e1b89c", + "#e1d2ac", + "#91afb7", + "#4181a4", + ]; + + await cryptoBoys.mintCryptoBoy( + "myCBNFT2", + "https://gateway.pinata.cloud/ipfs/QmYFmJgQGH4uPQRYN15Xdv4aLd9o4Aq63y1e4GgN6kj5aK/2", + web3.utils.toWei("1", "Ether"), + colorsArray2, + { from: accounts[1] } + ); + + const colorsArray3 = [ + "#232b2e", + "#535a66", + "#a3c2a8", + "#a3eb98", + "#83ff65", + "#935d81", + "#e38258", + "#f3f740", + "#d3dc6a", + "#6389a1", + "#f3938c", + "#e3b89c", + "#e3d2ac", + "#93afb7", + "#4381a4", + ]; + + // same token uri -reject + await cryptoBoys.mintCryptoBoy( + "myCBNFT3", + "https://gateway.pinata.cloud/ipfs/QmYFmJgQGH4uPQRYN15Xdv4aLd9o4Aq63y1e4GgN6kj5aK/2", + web3.utils.toWei("1", "Ether"), + colorsArray3, + { from: accounts[3] } + ).should.be.rejected; + + const colorsArray4 = [ + "#252b2e", + "#555a66", + "#a5c2a8", + "#a5eb98", + "#85ff65", + "#955d81", + "#e58258", + "#f5f740", + "#d5dc6a", + "#6589a1", + "#f5938c", + "#e5b89c", + "#e5d2ac", + "#95afb7", + "#4581a4", + ]; + + // 0x0 adress sending txn - reject + await cryptoBoys.mintCryptoBoy( + "myCBNFT4", + "https://gateway.pinata.cloud/ipfs/QmYFmJgQGH4uPQRYN14Xdv4aLd9o4Aq63y1e4GgN6kj5aK/2", + web3.utils.toWei("1", "Ether"), + colorsArray4, + { from: 0x0000000000000000000000000000000000000000 } + ).should.be.rejected; + + const colorsArray5 = [ + "#2d2b2e", + "#5d5a66", + "#adc2a8", + "#adeb98", + "#8dff65", + "#9d5d81", + "#ed8258", + "#fdf740", + "#dddc6a", + "#6d89a1", + "#fd938c", + "#edb89c", + "#edd2ac", + "#9dafb7", + "#4d81a4", + ]; + + await cryptoBoys.mintCryptoBoy( + "myCBNFT5", + "https://gateway.pinata.cloud/ipfs/QmYFmJgQGH4uPRRYN15Xdv4aLd9o4Aq63y1e4GgN6kj5aK/2", + web3.utils.toWei("1", "Ether"), + colorsArray5, + { from: accounts[0] } + ); + + const colorsArray6 = [ + "#2f2b2e", + "#5f5a66", + "#afc2a8", + "#afeb98", + "#8fff65", + "#9f5d81", + "#ef8258", + "#fff740", + "#dfdc6a", + "#6f89a1", + "#ff938c", + "#efb89c", + "#efd2ac", + "#9fafb7", + "#4f81a4", + ]; + + await cryptoBoys.mintCryptoBoy( + "myCBNFT6", + "https://gateway.pinata.cloud/ipfs/QmYFmJgQGH4uPSRYN15Xdv4aLd9o4Aq63y1e4GgN6kj5aK/2", + web3.utils.toWei("1", "Ether"), + colorsArray6, + { from: accounts[0] } + ); + + const colorsArray7 = [ + "#2a2b22", + "#5a5a62", + "#a4c2a2", + "#aceb92", + "#87ff62", + "#995d82", + "#eb8252", + "#f6f742", + "#d8dc62", + "#6689a2", + "#fe9382", + "#e6b892", + "#ead2a2", + "#9cafb2", + "#4281a2", + ]; + + // same token name - reject + await cryptoBoys.mintCryptoBoy( + "myCBNFT6", + "https://gateway.pinata.cloud/ipfs/QmYFmJgQGH4uPSRYN15Xdv4aLd3o4Aq63y1e4GgN6kj5aK/2", + web3.utils.toWei("1", "Ether"), + colorsArray7, + { from: accounts[0] } + ).should.be.rejected; + + const colorsArray8 = [ + "#2a242e", + "#5a5466", + "#a4c4a8", + "#ace498", + "#87f465", + "#995481", + "#eb8458", + "#f6f440", + "#d8d46a", + "#6684a1", + "#fe948c", + "#e6b49c", + "#f6f740", + "#9ca4b7", + "#4284a4", + ]; + + // same color/colors - reject (13th value of array8 is same as 8th value of array1) + await cryptoBoys.mintCryptoBoy( + "myCBNFT8", + "https://gateway.pinata.cloud/ipfs/QmYFmJgQGH4uPSRYN15Xdv4aLd3o4Bq46y1f4GgN6kj5aK/2", + web3.utils.toWei("1", "Ether"), + colorsArray8, + { from: accounts[0] } + ).should.be.rejected; + }); + + it("returns address of the token's owner", async () => { + const tokenOwner = await cryptoBoys.getTokenOwner(2); + assert.equal(tokenOwner, accounts[1]); + }); + + // returns tokenURI of the token + it("returns metadata of a token", async () => { + const tokenMetaData = await cryptoBoys.getTokenMetaData(2); + assert.equal( + tokenMetaData, + "https://gateway.pinata.cloud/ipfs/QmYFmJgQGH4uPQRYN15Xdv4aLd9o4Aq63y1e4GgN6kj5aK/2" + ); + }); + + it("returns total number of tokens minted so far", async () => { + const totalNumberOfTokensMinted = await cryptoBoys.getNumberOfTokensMinted(); + assert.equal(totalNumberOfTokensMinted.toNumber(), 4); + }); + + it("returns total number of tokens owned by an address", async () => { + const totalNumberOfTokensOwnedByAnAddress = await cryptoBoys.getTotalNumberOfTokensOwnedByAnAddress( + accounts[0] + ); + assert.equal(totalNumberOfTokensOwnedByAnAddress.toNumber(), 3); + }); + + it("allows users to buy token for specified ethers", async () => { + const oldTokenOwner = await cryptoBoys.getTokenOwner(1); + assert.equal(oldTokenOwner, accounts[0]); + + let oldTokenOwnerBalance; + oldTokenOwnerBalance = await web3.eth.getBalance(accounts[0]); + oldTokenOwnerBalance = new web3.utils.BN(oldTokenOwnerBalance); + + let oldTotalNumberOfTokensOwnedBySeller; + oldTotalNumberOfTokensOwnedBySeller = await cryptoBoys.getTotalNumberOfTokensOwnedByAnAddress( + accounts[0] + ); + assert.equal(oldTotalNumberOfTokensOwnedBySeller.toNumber(), 3); + + let cryptoBoy; + cryptoBoy = await cryptoBoys.allCryptoBoys(1, { + from: accounts[0], + }); + assert.equal(cryptoBoy.numberOfTransfers.toNumber(), 0); + + result = await cryptoBoys.buyToken(1, { + from: accounts[2], + value: web3.utils.toWei("1", "Ether"), + }); + + const newTokenOwner = await cryptoBoys.getTokenOwner(1); + assert.equal(newTokenOwner, accounts[2]); + + let newTokenOwnerBalance; + newTokenOwnerBalance = await web3.eth.getBalance(accounts[0]); + newTokenOwnerBalance = new web3.utils.BN(newTokenOwnerBalance); + + let newTotalNumberOfTokensOwnedBySeller; + newTotalNumberOfTokensOwnedBySeller = await cryptoBoys.getTotalNumberOfTokensOwnedByAnAddress( + accounts[0] + ); + assert.equal(newTotalNumberOfTokensOwnedBySeller.toNumber(), 2); + + cryptoBoy = await cryptoBoys.allCryptoBoys(1, { + from: accounts[0], + }); + assert.equal(cryptoBoy.numberOfTransfers.toNumber(), 1); + + let price; + price = web3.utils.toWei("1", "Ether"); + price = new web3.utils.BN(price); + + const exepectedBalance = oldTokenOwnerBalance.add(price); + assert.equal( + newTokenOwnerBalance.toString(), + exepectedBalance.toString() + ); + + cryptoBoy = await cryptoBoys.allCryptoBoys(1, { + from: accounts[0], + }); + assert.equal(cryptoBoy.currentOwner, accounts[2]); + + await cryptoBoys.buyToken(2, { + from: 0x0000000000000000000000000000000000000000, + value: web3.utils.toWei("1", "Ether"), + }).should.be.rejected; + + await cryptoBoys.buyToken(56, { + from: accounts[4], + value: web3.utils.toWei("1", "Ether"), + }).should.be.rejected; + + await cryptoBoys.buyToken(3, { + from: accounts[0], + value: web3.utils.toWei("1", "Ether"), + }).should.be.rejected; + }); + + it("allows users to change token price", async () => { + let cryptoBoyPrice; + cryptoBoyPrice = await cryptoBoys.allCryptoBoys(1, { + from: accounts[0], + }); + assert.equal(web3.utils.fromWei(cryptoBoyPrice.price, "ether"), 1); + + result = await cryptoBoys.changeTokenPrice( + 1, + web3.utils.toWei("2", "Ether"), + { + from: accounts[2], + } + ); + + cryptoBoyPrice = await cryptoBoys.allCryptoBoys(1, { + from: accounts[0], + }); + assert.equal(web3.utils.fromWei(cryptoBoyPrice.price, "ether"), 2); + + await cryptoBoys.changeTokenPrice(1, web3.utils.toWei("3", "Ether"), { + from: 0x0000000000000000000000000000000000000000, + }).should.be.rejected; + + await cryptoBoys.changeTokenPrice(82, web3.utils.toWei("3", "Ether"), { + from: accounts[2], + }).should.be.rejected; + + await cryptoBoys.changeTokenPrice(1, web3.utils.toWei("3", "Ether"), { + from: accounts[6], + }).should.be.rejected; + }); + + it("allows users to toggle between setting the token for sale or not for sale", async () => { + let cryptoboy; + cryptoboy = await cryptoBoys.allCryptoBoys(1, { + from: accounts[0], + }); + assert.equal(cryptoboy.forSale, true); + + result = await cryptoBoys.toggleForSale(1, { from: accounts[2] }); + + cryptoboy = await cryptoBoys.allCryptoBoys(1, { + from: accounts[0], + }); + assert.equal(cryptoboy.forSale, false); + + result = await cryptoBoys.toggleForSale(1, { from: accounts[2] }); + + cryptoboy = await cryptoBoys.allCryptoBoys(1, { + from: accounts[0], + }); + assert.equal(cryptoboy.forSale, true); + + await cryptoBoys.toggleForSale(1, { + from: 0x0000000000000000000000000000000000000000, + }).should.be.rejected; + + await cryptoBoys.toggleForSale(94, { from: accounts[2] }).should.be + .rejected; + + await cryptoBoys.toggleForSale(1, { from: accounts[8] }).should.be + .rejected; + }); + }); +}); diff --git a/truffle-config.js b/truffle-config.js new file mode 100644 index 0000000..d4b5a0d --- /dev/null +++ b/truffle-config.js @@ -0,0 +1,23 @@ +require("babel-register"); +require("babel-polyfill"); + +module.exports = { + networks: { + development: { + host: "127.0.0.1", + port: 7545, + network_id: "*", // Match any network id + }, + }, + contracts_directory: "./src/contracts/", + contracts_build_directory: "./src/abis/", + compilers: { + solc: { + version: "pragma", + optimizer: { + enabled: true, + runs: 200, + }, + }, + }, +};